@effect-aws/client-kinesis 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @effect-aws/client-kinesis
2
2
 
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#80](https://github.com/floydspace/effect-aws/pull/80) [`4b16fbe`](https://github.com/floydspace/effect-aws/commit/4b16fbebce8131df7798ee92f43cf6b7df3e907c) Thanks [@floydspace](https://github.com/floydspace)! - simplify layers configuration (closes #78)
8
+
9
+ ## 1.0.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [#75](https://github.com/floydspace/effect-aws/pull/75) [`9dc170d`](https://github.com/floydspace/effect-aws/commit/9dc170d975c04888bbc7ca7b241b4b5265668fb5) Thanks [@godu](https://github.com/godu)! - export the HttpHandlerOptions type
14
+
3
15
  ## 1.0.0
4
16
 
5
17
  ### Major Changes
package/README.md CHANGED
@@ -14,13 +14,13 @@ npm install --save @effect-aws/client-kinesis
14
14
  With default KinesisClient instance:
15
15
 
16
16
  ```typescript
17
- import { KinesisService, DefaultKinesisServiceLayer } from "@effect-aws/client-kinesis";
17
+ import { Kinesis } from "@effect-aws/client-kinesis";
18
18
 
19
- const program = KinesisService.putRecord(args);
19
+ const program = Kinesis.putRecord(args);
20
20
 
21
21
  const result = pipe(
22
22
  program,
23
- Effect.provide(DefaultKinesisServiceLayer),
23
+ Effect.provide(Kinesis.defaultLayer),
24
24
  Effect.runPromise,
25
25
  );
26
26
  ```
@@ -28,23 +28,15 @@ const result = pipe(
28
28
  With custom KinesisClient instance:
29
29
 
30
30
  ```typescript
31
- import {
32
- KinesisService,
33
- BaseKinesisServiceLayer,
34
- KinesisClientInstance,
35
- } from "@effect-aws/client-kinesis";
31
+ import { Kinesis } from "@effect-aws/client-kinesis";
36
32
 
37
- const program = KinesisService.putRecord(args);
38
-
39
- const KinesisClientInstanceLayer = Layer.succeed(
40
- KinesisClientInstance,
41
- new KinesisClient({ region: "eu-central-1" }),
42
- );
33
+ const program = Kinesis.putRecord(args);
43
34
 
44
35
  const result = await pipe(
45
36
  program,
46
- Effect.provide(BaseKinesisServiceLayer),
47
- Effect.provide(KinesisClientInstanceLayer),
37
+ Effect.provide(
38
+ Kinesis.baseLayer(() => new KinesisClient({ region: "eu-central-1" })),
39
+ ),
48
40
  Effect.runPromise,
49
41
  );
50
42
  ```
@@ -52,34 +44,15 @@ const result = await pipe(
52
44
  With custom KinesisClient configuration:
53
45
 
54
46
  ```typescript
55
- import {
56
- KinesisService,
57
- BaseKinesisServiceLayer,
58
- DefaultKinesisClientConfigLayer,
59
- KinesisClientInstance,
60
- KinesisClientInstanceConfig,
61
- } from "@effect-aws/client-kinesis";
62
-
63
- const program = KinesisService.putRecord(args);
64
-
65
- const KinesisClientInstanceLayer = Layer.provide(
66
- Layer.effect(
67
- KinesisClientInstance,
68
- KinesisClientInstanceConfig.pipe(
69
- Effect.map(
70
- (config) => new KinesisClient({ ...config, region: "eu-central-1" }),
71
- ),
72
- ),
73
- ),
74
- DefaultKinesisClientConfigLayer,
75
- );
47
+ import { Kinesis } from "@effect-aws/client-kinesis";
48
+
49
+ const program = Kinesis.putRecord(args);
76
50
 
77
51
  const result = await pipe(
78
52
  program,
79
- Effect.provide(BaseKinesisServiceLayer),
80
- Effect.provide(KinesisClientInstanceLayer),
53
+ Effect.provide(Kinesis.layer({ region: "eu-central-1" })),
81
54
  Effect.runPromiseExit,
82
55
  );
83
56
  ```
84
57
 
85
- or map over `DefaultKinesisClientConfigLayer` layer context and update the configuration...
58
+ or use `Kinesis.baseLayer((default) => new KinesisClient({ ...default, region: "eu-central-1" }))`
@@ -1,11 +1,15 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import { type AddTagsToStreamCommandInput, type AddTagsToStreamCommandOutput, type CreateStreamCommandInput, type CreateStreamCommandOutput, type DecreaseStreamRetentionPeriodCommandInput, type DecreaseStreamRetentionPeriodCommandOutput, type DeleteResourcePolicyCommandInput, type DeleteResourcePolicyCommandOutput, type DeleteStreamCommandInput, type DeleteStreamCommandOutput, type DeregisterStreamConsumerCommandInput, type DeregisterStreamConsumerCommandOutput, type DescribeLimitsCommandInput, type DescribeLimitsCommandOutput, type DescribeStreamCommandInput, type DescribeStreamCommandOutput, type DescribeStreamConsumerCommandInput, type DescribeStreamConsumerCommandOutput, type DescribeStreamSummaryCommandInput, type DescribeStreamSummaryCommandOutput, type DisableEnhancedMonitoringCommandInput, type DisableEnhancedMonitoringCommandOutput, type EnableEnhancedMonitoringCommandInput, type EnableEnhancedMonitoringCommandOutput, type GetRecordsCommandInput, type GetRecordsCommandOutput, type GetResourcePolicyCommandInput, type GetResourcePolicyCommandOutput, type GetShardIteratorCommandInput, type GetShardIteratorCommandOutput, type IncreaseStreamRetentionPeriodCommandInput, type IncreaseStreamRetentionPeriodCommandOutput, type ListShardsCommandInput, type ListShardsCommandOutput, type ListStreamConsumersCommandInput, type ListStreamConsumersCommandOutput, type ListStreamsCommandInput, type ListStreamsCommandOutput, type ListTagsForStreamCommandInput, type ListTagsForStreamCommandOutput, type MergeShardsCommandInput, type MergeShardsCommandOutput, type PutRecordCommandInput, type PutRecordCommandOutput, type PutRecordsCommandInput, type PutRecordsCommandOutput, type PutResourcePolicyCommandInput, type PutResourcePolicyCommandOutput, type RegisterStreamConsumerCommandInput, type RegisterStreamConsumerCommandOutput, type RemoveTagsFromStreamCommandInput, type RemoveTagsFromStreamCommandOutput, type SplitShardCommandInput, type SplitShardCommandOutput, type StartStreamEncryptionCommandInput, type StartStreamEncryptionCommandOutput, type StopStreamEncryptionCommandInput, type StopStreamEncryptionCommandOutput, type SubscribeToShardCommandInput, type SubscribeToShardCommandOutput, type UpdateShardCountCommandInput, type UpdateShardCountCommandOutput, type UpdateStreamModeCommandInput, type UpdateStreamModeCommandOutput } from "@aws-sdk/client-kinesis";
4
+ import { type KinesisClient, type KinesisClientConfig, type AddTagsToStreamCommandInput, type AddTagsToStreamCommandOutput, type CreateStreamCommandInput, type CreateStreamCommandOutput, type DecreaseStreamRetentionPeriodCommandInput, type DecreaseStreamRetentionPeriodCommandOutput, type DeleteResourcePolicyCommandInput, type DeleteResourcePolicyCommandOutput, type DeleteStreamCommandInput, type DeleteStreamCommandOutput, type DeregisterStreamConsumerCommandInput, type DeregisterStreamConsumerCommandOutput, type DescribeLimitsCommandInput, type DescribeLimitsCommandOutput, type DescribeStreamCommandInput, type DescribeStreamCommandOutput, type DescribeStreamConsumerCommandInput, type DescribeStreamConsumerCommandOutput, type DescribeStreamSummaryCommandInput, type DescribeStreamSummaryCommandOutput, type DisableEnhancedMonitoringCommandInput, type DisableEnhancedMonitoringCommandOutput, type EnableEnhancedMonitoringCommandInput, type EnableEnhancedMonitoringCommandOutput, type GetRecordsCommandInput, type GetRecordsCommandOutput, type GetResourcePolicyCommandInput, type GetResourcePolicyCommandOutput, type GetShardIteratorCommandInput, type GetShardIteratorCommandOutput, type IncreaseStreamRetentionPeriodCommandInput, type IncreaseStreamRetentionPeriodCommandOutput, type ListShardsCommandInput, type ListShardsCommandOutput, type ListStreamConsumersCommandInput, type ListStreamConsumersCommandOutput, type ListStreamsCommandInput, type ListStreamsCommandOutput, type ListTagsForStreamCommandInput, type ListTagsForStreamCommandOutput, type MergeShardsCommandInput, type MergeShardsCommandOutput, type PutRecordCommandInput, type PutRecordCommandOutput, type PutRecordsCommandInput, type PutRecordsCommandOutput, type PutResourcePolicyCommandInput, type PutResourcePolicyCommandOutput, type RegisterStreamConsumerCommandInput, type RegisterStreamConsumerCommandOutput, type RemoveTagsFromStreamCommandInput, type RemoveTagsFromStreamCommandOutput, type SplitShardCommandInput, type SplitShardCommandOutput, type StartStreamEncryptionCommandInput, type StartStreamEncryptionCommandOutput, type StopStreamEncryptionCommandInput, type StopStreamEncryptionCommandOutput, type SubscribeToShardCommandInput, type SubscribeToShardCommandOutput, type UpdateShardCountCommandInput, type UpdateShardCountCommandOutput, type UpdateStreamModeCommandInput, type UpdateStreamModeCommandOutput } from "@aws-sdk/client-kinesis";
5
5
  import { Effect, Layer } from "effect";
6
6
  import { AccessDeniedError, ExpiredIteratorError, ExpiredNextTokenError, InvalidArgumentError, KMSAccessDeniedError, KMSDisabledError, KMSInvalidStateError, KMSNotFoundError, KMSOptInRequiredError, KMSThrottlingError, LimitExceededError, ProvisionedThroughputExceededError, ResourceInUseError, ResourceNotFoundError, ValidationError, SdkError } from "./Errors";
7
7
  import { KinesisClientInstance } from "./KinesisClientInstance";
8
- interface HttpHandlerOptions {
8
+ import { KinesisClientInstanceConfig } from "./KinesisClientInstanceConfig";
9
+ /**
10
+ * @since 1.0.0
11
+ */
12
+ export interface HttpHandlerOptions {
9
13
  /**
10
14
  * The maximum time in milliseconds that the connection phase of a request
11
15
  * may take before the connection attempt is abandoned.
@@ -143,6 +147,11 @@ interface KinesisService$ {
143
147
  */
144
148
  updateStreamMode(args: UpdateStreamModeCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateStreamModeCommandOutput, SdkError | InvalidArgumentError | LimitExceededError | ResourceInUseError | ResourceNotFoundError>;
145
149
  }
150
+ /**
151
+ * @since 1.0.0
152
+ * @category constructors
153
+ */
154
+ export declare const makeKinesisService: Effect.Effect<KinesisService$, never, KinesisClientInstance>;
146
155
  declare const KinesisService_base: import("effect/Context").TagClass<KinesisService, "@effect-aws/client-kinesis/KinesisService", KinesisService$> & {
147
156
  readonly _: Effect.Effect<KinesisService$["_"], never, KinesisService>;
148
157
  addTagsToStream: (args: AddTagsToStreamCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<AddTagsToStreamCommandOutput, AccessDeniedError | InvalidArgumentError | LimitExceededError | ResourceInUseError | ResourceNotFoundError | SdkError, KinesisService>;
@@ -185,25 +194,32 @@ declare const KinesisService_base: import("effect/Context").TagClass<KinesisServ
185
194
  * @category models
186
195
  */
187
196
  export declare class KinesisService extends KinesisService_base {
197
+ static readonly defaultLayer: Layer.Layer<KinesisService, never, never>;
198
+ static readonly layer: (config: KinesisClientConfig) => Layer.Layer<KinesisService, never, never>;
199
+ static readonly baseLayer: (evaluate: (defaultConfig: KinesisClientConfig) => KinesisClient) => Layer.Layer<KinesisService, never, never>;
188
200
  }
189
201
  /**
190
202
  * @since 1.0.0
191
- * @category constructors
203
+ * @category models
204
+ * @alias KinesisService
192
205
  */
193
- export declare const makeKinesisService: Effect.Effect<KinesisService$, never, KinesisClientInstance>;
206
+ export declare const Kinesis: typeof KinesisService;
194
207
  /**
195
208
  * @since 1.0.0
196
209
  * @category layers
210
+ * @deprecated use Kinesis.baseLayer instead
197
211
  */
198
212
  export declare const BaseKinesisServiceLayer: Layer.Layer<KinesisService, never, KinesisClientInstance>;
199
213
  /**
200
214
  * @since 1.0.0
201
215
  * @category layers
216
+ * @deprecated use Kinesis.layer instead
202
217
  */
203
- export declare const KinesisServiceLayer: Layer.Layer<KinesisService, never, import("./KinesisClientInstanceConfig").KinesisClientInstanceConfig>;
218
+ export declare const KinesisServiceLayer: Layer.Layer<KinesisService, never, KinesisClientInstanceConfig>;
204
219
  /**
205
220
  * @since 1.0.0
206
221
  * @category layers
222
+ * @deprecated use Kinesis.defaultLayer instead
207
223
  */
208
224
  export declare const DefaultKinesisServiceLayer: Layer.Layer<KinesisService, never, never>;
209
225
  export {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultKinesisServiceLayer = exports.KinesisServiceLayer = exports.BaseKinesisServiceLayer = exports.makeKinesisService = exports.KinesisService = void 0;
4
+ exports.DefaultKinesisServiceLayer = exports.KinesisServiceLayer = exports.BaseKinesisServiceLayer = exports.Kinesis = exports.KinesisService = exports.makeKinesisService = void 0;
4
5
  /**
5
6
  * @since 1.0.0
6
7
  */
@@ -43,13 +44,6 @@ const commands = {
43
44
  UpdateShardCountCommand: client_kinesis_1.UpdateShardCountCommand,
44
45
  UpdateStreamModeCommand: client_kinesis_1.UpdateStreamModeCommand,
45
46
  };
46
- /**
47
- * @since 1.0.0
48
- * @category models
49
- */
50
- class KinesisService extends effect_1.Effect.Tag("@effect-aws/client-kinesis/KinesisService")() {
51
- }
52
- exports.KinesisService = KinesisService;
53
47
  /**
54
48
  * @since 1.0.0
55
49
  * @category constructors
@@ -88,19 +82,39 @@ exports.makeKinesisService = effect_1.Effect.gen(function* (_) {
88
82
  return { ...acc, [methodName]: methodImpl };
89
83
  }, {});
90
84
  });
85
+ /**
86
+ * @since 1.0.0
87
+ * @category models
88
+ */
89
+ class KinesisService extends effect_1.Effect.Tag("@effect-aws/client-kinesis/KinesisService")() {
90
+ }
91
+ exports.KinesisService = KinesisService;
92
+ _a = KinesisService;
93
+ KinesisService.defaultLayer = effect_1.Layer.effect(_a, exports.makeKinesisService).pipe(effect_1.Layer.provide(KinesisClientInstance_1.KinesisClientInstanceLayer), effect_1.Layer.provide(KinesisClientInstanceConfig_1.DefaultKinesisClientConfigLayer));
94
+ KinesisService.layer = (config) => effect_1.Layer.effect(_a, exports.makeKinesisService).pipe(effect_1.Layer.provide(KinesisClientInstance_1.KinesisClientInstanceLayer), effect_1.Layer.provide(effect_1.Layer.effect(KinesisClientInstanceConfig_1.KinesisClientInstanceConfig, KinesisClientInstanceConfig_1.makeDefaultKinesisClientInstanceConfig.pipe(effect_1.Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
95
+ KinesisService.baseLayer = (evaluate) => effect_1.Layer.effect(_a, exports.makeKinesisService).pipe(effect_1.Layer.provide(effect_1.Layer.effect(KinesisClientInstance_1.KinesisClientInstance, effect_1.Effect.map(KinesisClientInstanceConfig_1.makeDefaultKinesisClientInstanceConfig, evaluate))));
96
+ /**
97
+ * @since 1.0.0
98
+ * @category models
99
+ * @alias KinesisService
100
+ */
101
+ exports.Kinesis = KinesisService;
91
102
  /**
92
103
  * @since 1.0.0
93
104
  * @category layers
105
+ * @deprecated use Kinesis.baseLayer instead
94
106
  */
95
107
  exports.BaseKinesisServiceLayer = effect_1.Layer.effect(KinesisService, exports.makeKinesisService);
96
108
  /**
97
109
  * @since 1.0.0
98
110
  * @category layers
111
+ * @deprecated use Kinesis.layer instead
99
112
  */
100
113
  exports.KinesisServiceLayer = exports.BaseKinesisServiceLayer.pipe(effect_1.Layer.provide(KinesisClientInstance_1.KinesisClientInstanceLayer));
101
114
  /**
102
115
  * @since 1.0.0
103
116
  * @category layers
117
+ * @deprecated use Kinesis.defaultLayer instead
104
118
  */
105
- exports.DefaultKinesisServiceLayer = exports.KinesisServiceLayer.pipe(effect_1.Layer.provide(KinesisClientInstanceConfig_1.DefaultKinesisClientConfigLayer));
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2luZXNpc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvS2luZXNpc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCw0REFrR2lDO0FBQ2pDLG1DQUFxRDtBQUNyRCxxQ0FtQmtCO0FBQ2xCLG1FQUdpQztBQUNqQywrRUFBZ0Y7QUFVaEYsTUFBTSxRQUFRLEdBQUc7SUFDZixzQkFBc0IsRUFBdEIsdUNBQXNCO0lBQ3RCLG1CQUFtQixFQUFuQixvQ0FBbUI7SUFDbkIsb0NBQW9DLEVBQXBDLHFEQUFvQztJQUNwQywyQkFBMkIsRUFBM0IsNENBQTJCO0lBQzNCLG1CQUFtQixFQUFuQixvQ0FBbUI7SUFDbkIsK0JBQStCLEVBQS9CLGdEQUErQjtJQUMvQixxQkFBcUIsRUFBckIsc0NBQXFCO0lBQ3JCLHFCQUFxQixFQUFyQixzQ0FBcUI7SUFDckIsNkJBQTZCLEVBQTdCLDhDQUE2QjtJQUM3Qiw0QkFBNEIsRUFBNUIsNkNBQTRCO0lBQzVCLGdDQUFnQyxFQUFoQyxpREFBZ0M7SUFDaEMsK0JBQStCLEVBQS9CLGdEQUErQjtJQUMvQixpQkFBaUIsRUFBakIsa0NBQWlCO0lBQ2pCLHdCQUF3QixFQUF4Qix5Q0FBd0I7SUFDeEIsdUJBQXVCLEVBQXZCLHdDQUF1QjtJQUN2QixvQ0FBb0MsRUFBcEMscURBQW9DO0lBQ3BDLGlCQUFpQixFQUFqQixrQ0FBaUI7SUFDakIsMEJBQTBCLEVBQTFCLDJDQUEwQjtJQUMxQixrQkFBa0IsRUFBbEIsbUNBQWtCO0lBQ2xCLHdCQUF3QixFQUF4Qix5Q0FBd0I7SUFDeEIsa0JBQWtCLEVBQWxCLG1DQUFrQjtJQUNsQixnQkFBZ0IsRUFBaEIsaUNBQWdCO0lBQ2hCLGlCQUFpQixFQUFqQixrQ0FBaUI7SUFDakIsd0JBQXdCLEVBQXhCLHlDQUF3QjtJQUN4Qiw2QkFBNkIsRUFBN0IsOENBQTZCO0lBQzdCLDJCQUEyQixFQUEzQiw0Q0FBMkI7SUFDM0Is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UUFBQSwwQkFBMEIsR0FBRywyQkFBbUIsQ0FBQyxJQUFJLENBQ2hFLGNBQUssQ0FBQyxPQUFPLENBQUMsNkRBQStCLENBQUMsQ0FDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIEtpbmVzaXNTZXJ2aWNlRXhjZXB0aW9uLFxuICBBZGRUYWdzVG9TdHJlYW1Db21tYW5kLFxuICB0eXBlIEFkZFRhZ3NUb1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRUYWdzVG9TdHJlYW1Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVTdHJlYW1Db21tYW5kLFxuICB0eXBlIENyZWF0ZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmQsXG4gIHR5cGUgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kT3V0cHV0LFxuICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTdHJlYW1Db21tYW5kLFxuICB0eXBlIERlbGV0ZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kLFxuICB0eXBlIERlcmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUxpbWl0c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVMaW1pdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVMaW1pdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0cmVhbUNvbnN1bWVyQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU3RyZWFtQ29uc3VtZXJDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0cmVhbVN1bW1hcnlDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3RyZWFtU3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN0cmVhbVN1bW1hcnlDb21tYW5kT3V0cHV0LFxuICBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZCxcbiAgdHlwZSBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kT3V0cHV0LFxuICBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kLFxuICB0eXBlIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kT3V0cHV0LFxuICBHZXRSZWNvcmRzQ29tbWFuZCxcbiAgdHlwZSBHZXRSZWNvcmRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFJlY29yZHNDb21tYW5kT3V0cHV0LFxuICBHZXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRTaGFyZEl0ZXJhdG9yQ29tbWFuZCxcbiAgdHlwZSBHZXRTaGFyZEl0ZXJhdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNoYXJkSXRlcmF0b3JDb21tYW5kT3V0cHV0LFxuICBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmQsXG4gIHR5cGUgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kT3V0cHV0LFxuICBMaXN0U2hhcmRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2hhcmRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTaGFyZHNDb21tYW5kT3V0cHV0LFxuICBMaXN0U3RyZWFtQ29uc3VtZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U3RyZWFtQ29uc3VtZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTdHJlYW1Db25zdW1lcnNDb21tYW5kT3V0cHV0LFxuICBMaXN0U3RyZWFtc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFN0cmVhbXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFN0cmVhbXNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBNZXJnZVNoYXJkc0NvbW1hbmQsXG4gIHR5cGUgTWVyZ2VTaGFyZHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTWVyZ2VTaGFyZHNDb21tYW5kT3V0cHV0LFxuICBQdXRSZWNvcmRDb21tYW5kLFxuICB0eXBlIFB1dFJlY29yZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSZWNvcmRDb21tYW5kT3V0cHV0LFxuICBQdXRSZWNvcmRzQ29tbWFuZCxcbiAgdHlwZSBQdXRSZWNvcmRzQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJlY29yZHNDb21tYW5kT3V0cHV0LFxuICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBSZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZCxcbiAgdHlwZSBSZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZElucHV0LFxuICB0eXBlIFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVUYWdzRnJvbVN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlVGFnc0Zyb21TdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVGFnc0Zyb21TdHJlYW1Db21tYW5kT3V0cHV0LFxuICBTcGxpdFNoYXJkQ29tbWFuZCxcbiAgdHlwZSBTcGxpdFNoYXJkQ29tbWFuZElucHV0LFxuICB0eXBlIFNwbGl0U2hhcmRDb21tYW5kT3V0cHV0LFxuICBTdGFydFN0cmVhbUVuY3J5cHRpb25Db21tYW5kLFxuICB0eXBlIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydFN0cmVhbUVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICBTdG9wU3RyZWFtRW5jcnlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RvcFN0cmVhbUVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcFN0cmVhbUVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICBTdWJzY3JpYmVUb1NoYXJkQ29tbWFuZCxcbiAgdHlwZSBTdWJzY3JpYmVUb1NoYXJkQ29tbWFuZElucHV0LFxuICB0eXBlIFN1YnNjcmliZVRvU2hhcmRDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTaGFyZENvdW50Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTaGFyZENvdW50Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNoYXJkQ291bnRDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTdHJlYW1Nb2RlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTdHJlYW1Nb2RlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVN0cmVhbU1vZGVDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWtpbmVzaXNcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjY2Vzc0RlbmllZEVycm9yLFxuICBFeHBpcmVkSXRlcmF0b3JFcnJvcixcbiAgRXhwaXJlZE5leHRUb2tlbkVycm9yLFxuICBJbnZhbGlkQXJndW1lbnRFcnJvcixcbiAgS01TQWNjZXNzRGVuaWVkRXJyb3IsXG4gIEtNU0Rpc2FibGVkRXJyb3IsXG4gIEtNU0ludmFsaWRTdGF0ZUVycm9yLFxuICBLTVNOb3RGb3VuZEVycm9yLFxuICBLTVNPcHRJblJlcXVpcmVkRXJyb3IsXG4gIEtNU1Rocm90dGxpbmdFcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yLFxuICBSZXNvdXJjZUluVXNlRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7XG4gIEtpbmVzaXNDbGllbnRJbnN0YW5jZSxcbiAgS2luZXNpc0NsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL0tpbmVzaXNDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdEtpbmVzaXNDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL0tpbmVzaXNDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG5pbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQWRkVGFnc1RvU3RyZWFtQ29tbWFuZCxcbiAgQ3JlYXRlU3RyZWFtQ29tbWFuZCxcbiAgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kLFxuICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVN0cmVhbUNvbW1hbmQsXG4gIERlcmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmQsXG4gIERlc2NyaWJlTGltaXRzQ29tbWFuZCxcbiAgRGVzY3JpYmVTdHJlYW1Db21tYW5kLFxuICBEZXNjcmliZVN0cmVhbUNvbnN1bWVyQ29tbWFuZCxcbiAgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5Q29tbWFuZCxcbiAgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmQsXG4gIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmQsXG4gIEdldFJlY29yZHNDb21tYW5kLFxuICBHZXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIEdldFNoYXJkSXRlcmF0b3JDb21tYW5kLFxuICBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmQsXG4gIExpc3RTaGFyZHNDb21tYW5kLFxuICBMaXN0U3RyZWFtQ29uc3VtZXJzQ29tbWFuZCxcbiAgTGlzdFN0cmVhbXNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclN0cmVhbUNvbW1hbmQsXG4gIE1lcmdlU2hhcmRzQ29tbWFuZCxcbiAgUHV0UmVjb3JkQ29tbWFuZCxcbiAgUHV0UmVjb3Jkc0NvbW1hbmQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgUmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmQsXG4gIFJlbW92ZVRhZ3NGcm9tU3RyZWFtQ29tbWFuZCxcbiAgU3BsaXRTaGFyZENvbW1hbmQsXG4gIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbkNvbW1hbmQsXG4gIFN0b3BTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZCxcbiAgU3Vic2NyaWJlVG9TaGFyZENvbW1hbmQsXG4gIFVwZGF0ZVNoYXJkQ291bnRDb21tYW5kLFxuICBVcGRhdGVTdHJlYW1Nb2RlQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBLaW5lc2lzU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRUYWdzVG9TdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgYWRkVGFnc1RvU3RyZWFtKFxuICAgIGFyZ3M6IEFkZFRhZ3NUb1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZFRhZ3NUb1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVN0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVTdHJlYW0oXG4gICAgYXJnczogQ3JlYXRlU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcmd1bWVudEVycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZH1cbiAgICovXG4gIGRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kKFxuICAgIGFyZ3M6IERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN0cmVhbShcbiAgICBhcmdzOiBEZWxldGVTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kfVxuICAgKi9cbiAgZGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyKFxuICAgIGFyZ3M6IERlcmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlcmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJndW1lbnRFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUxpbWl0c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUxpbWl0cyhcbiAgICBhcmdzOiBEZXNjcmliZUxpbWl0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlTGltaXRzQ29tbWFuZE91dHB1dCwgU2RrRXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN0cmVhbShcbiAgICBhcmdzOiBEZXNjcmliZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU3RyZWFtQ29uc3VtZXJDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdHJlYW1Db25zdW1lcihcbiAgICBhcmdzOiBEZXNjcmliZVN0cmVhbUNvbnN1bWVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTdHJlYW1Db25zdW1lckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJndW1lbnRFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN0cmVhbVN1bW1hcnlDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdHJlYW1TdW1tYXJ5KFxuICAgIGFyZ3M6IERlc2NyaWJlU3RyZWFtU3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RyZWFtU3VtbWFyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZH1cbiAgICovXG4gIGRpc2FibGVFbmhhbmNlZE1vbml0b3JpbmcoXG4gICAgYXJnczogRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kfVxuICAgKi9cbiAgZW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nKFxuICAgIGFyZ3M6IEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJlY29yZHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0UmVjb3JkcyhcbiAgICBhcmdzOiBHZXRSZWNvcmRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UmVjb3Jkc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEV4cGlyZWRJdGVyYXRvckVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgS01TQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEtNU0Rpc2FibGVkRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLTVNOb3RGb3VuZEVycm9yXG4gICAgfCBLTVNPcHRJblJlcXVpcmVkRXJyb3JcbiAgICB8IEtNU1Rocm90dGxpbmdFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJlc291cmNlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldFJlc291cmNlUG9saWN5KFxuICAgIGFyZ3M6IEdldFJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTaGFyZEl0ZXJhdG9yQ29tbWFuZH1cbiAgICovXG4gIGdldFNoYXJkSXRlcmF0b3IoXG4gICAgYXJnczogR2V0U2hhcmRJdGVyYXRvckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFNoYXJkSXRlcmF0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZH1cbiAgICovXG4gIGluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kKFxuICAgIGFyZ3M6IEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2hhcmRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTaGFyZHMoXG4gICAgYXJnczogTGlzdFNoYXJkc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTaGFyZHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBFeHBpcmVkTmV4dFRva2VuRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTdHJlYW1Db25zdW1lcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFN0cmVhbUNvbnN1bWVycyhcbiAgICBhcmdzOiBMaXN0U3RyZWFtQ29uc3VtZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFN0cmVhbUNvbnN1bWVyc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhwaXJlZE5leHRUb2tlbkVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U3RyZWFtc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RyZWFtcyhcbiAgICBhcmdzOiBMaXN0U3RyZWFtc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTdHJlYW1zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEV4cGlyZWROZXh0VG9rZW5FcnJvciB8IEludmFsaWRBcmd1bWVudEVycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yU3RyZWFtKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTWVyZ2VTaGFyZHNDb21tYW5kfVxuICAgKi9cbiAgbWVyZ2VTaGFyZHMoXG4gICAgYXJnczogTWVyZ2VTaGFyZHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNZXJnZVNoYXJkc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmVjb3JkQ29tbWFuZH1cbiAgICovXG4gIHB1dFJlY29yZChcbiAgICBhcmdzOiBQdXRSZWNvcmRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZWNvcmRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgS01TQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEtNU0Rpc2FibGVkRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLTVNOb3RGb3VuZEVycm9yXG4gICAgfCBLTVNPcHRJblJlcXVpcmVkRXJyb3JcbiAgICB8IEtNU1Rocm90dGxpbmdFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJlY29yZHNDb21tYW5kfVxuICAgKi9cbiAgcHV0UmVjb3JkcyhcbiAgICBhcmdzOiBQdXRSZWNvcmRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UmVjb3Jkc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBLTVNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS01TRGlzYWJsZWRFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEtNU05vdEZvdW5kRXJyb3JcbiAgICB8IEtNU09wdEluUmVxdWlyZWRFcnJvclxuICAgIHwgS01TVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0UmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kfVxuICAgKi9cbiAgcmVnaXN0ZXJTdHJlYW1Db25zdW1lcihcbiAgICBhcmdzOiBSZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVGFnc0Zyb21TdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlVGFnc0Zyb21TdHJlYW0oXG4gICAgYXJnczogUmVtb3ZlVGFnc0Zyb21TdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVUYWdzRnJvbVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNwbGl0U2hhcmRDb21tYW5kfVxuICAgKi9cbiAgc3BsaXRTaGFyZChcbiAgICBhcmdzOiBTcGxpdFNoYXJkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3BsaXRTaGFyZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0U3RyZWFtRW5jcnlwdGlvbihcbiAgICBhcmdzOiBTdGFydFN0cmVhbUVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFN0cmVhbUVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgS01TQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEtNU0Rpc2FibGVkRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLTVNOb3RGb3VuZEVycm9yXG4gICAgfCBLTVNPcHRJblJlcXVpcmVkRXJyb3JcbiAgICB8IEtNU1Rocm90dGxpbmdFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wU3RyZWFtRW5jcnlwdGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdG9wU3RyZWFtRW5jcnlwdGlvbihcbiAgICBhcmdzOiBTdG9wU3RyZWFtRW5jcnlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3Vic2NyaWJlVG9TaGFyZENvbW1hbmR9XG4gICAqL1xuICBzdWJzY3JpYmVUb1NoYXJkKFxuICAgIGFyZ3M6IFN1YnNjcmliZVRvU2hhcmRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdWJzY3JpYmVUb1NoYXJkQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU2hhcmRDb3VudENvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVTaGFyZENvdW50KFxuICAgIGFyZ3M6IFVwZGF0ZVNoYXJkQ291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTaGFyZENvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTdHJlYW1Nb2RlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVN0cmVhbU1vZGUoXG4gICAgYXJnczogVXBkYXRlU3RyZWFtTW9kZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVN0cmVhbU1vZGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBLaW5lc2lzU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWtpbmVzaXMvS2luZXNpc1NlcnZpY2VcIixcbik8S2luZXNpc1NlcnZpY2UsIEtpbmVzaXNTZXJ2aWNlJD4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZUtpbmVzaXNTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oS2luZXNpc0NsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgS2luZXNpc1NlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248S2luZXNpc1NlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIEtpbmVzaXNTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZUtpbmVzaXNTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIEtpbmVzaXNTZXJ2aWNlLFxuICBtYWtlS2luZXNpc1NlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgS2luZXNpc1NlcnZpY2VMYXllciA9IEJhc2VLaW5lc2lzU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoS2luZXNpc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRLaW5lc2lzU2VydmljZUxheWVyID0gS2luZXNpc1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRLaW5lc2lzQ2xpZW50Q29uZmlnTGF5ZXIpLFxuKTtcbiJdfQ==
119
+ exports.DefaultKinesisServiceLayer = KinesisService.defaultLayer;
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2luZXNpc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvS2luZXNpc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztHQUVHO0FBQ0gsNERBb0dpQztBQUNqQyxtQ0FBcUQ7QUFDckQscUNBbUJrQjtBQUNsQixtRUFHaUM7QUFDakMsK0VBSXVDO0FBYXZDLE1BQU0sUUFBUSxHQUFHO0lBQ2Ysc0JBQXNCLEVBQXRCLHVDQUFzQjtJQUN0QixtQkFBbUIsRUFBbkIsb0NBQW1CO0lBQ25CLG9DQUFvQyxFQUFwQyxxREFBb0M7SUFDcEMsMkJBQTJCLEVBQTNCLDRDQUEyQjtJQUMzQixtQkFBbUIsRUFBbkIsb0NBQW1CO0lBQ25CLCtCQUErQixFQUEvQixnREFBK0I7SUFDL0IscUJBQXFCLEVBQXJCLHNDQUFxQjtJQUNyQixxQkFBcUIsRUFBckIsc0NBQXFCO0lBQ3JCLDZCQUE2QixFQUE3Qiw4Q0FBNkI7SUFDN0IsNEJBQTRCLEVBQTVCLDZDQUE0QjtJQUM1QixnQ0FBZ0MsRUFBaEMsaURBQWdDO0lBQ2hDLCtCQUErQixFQUEvQixnREFBK0I7SUFDL0IsaUJBQWlCLEVBQWpCLGtDQUFpQjtJQUNqQix3QkFBd0IsRUFBeEIseUNBQXdCO0lBQ3hCLHVCQUF1QixFQUF2Qix3Q0FBdUI7SUFDdkIsb0NBQW9DLEVBQXBDLHFEQUFvQztJQUNwQyxpQkFBaUIsRUFBakIsa0NBQWlCO0lBQ2pCLDBCQUEwQixFQUExQiwyQ0FBMEI7SUFDMUIsa0JBQWtCLEVBQWxCLG1DQUFrQjtJQUNsQix3QkFBd0IsRUFBeEIseUNBQXdCO0lBQ3hCLGtCQUFrQixFQUFsQixtQ0FBa0I7SUFDbEIsZ0JBQWdCLEVBQWhCLGlDQUFnQjtJQUNoQixpQkFBaUIsRUFBakIsa0NBQWlCO0lBQ2pCLHdCQUF3QixFQUF4Qix5Q0FBd0I7SUFDeEIsNkJBQTZCLEVBQTdCLDhDQUE2QjtJQUM3QiwyQkFBMkIsRUFBM0IsNENBQTJCO0lBQzNC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Q3RELGNBQUssQ0FBQyxNQUFNLENBQUMsRUFBSSxFQUFFLDBCQUFrQixDQUFDLENBQUMsSUFBSSxDQUN6QyxjQUFLLENBQUMsT0FBTyxDQUFDLGtEQUEwQixDQUFDLEVBQ3pDLGNBQUssQ0FBQyxPQUFPLENBQ1gsY0FBSyxDQUFDLE1BQU0sQ0FDVix5REFBMkIsRUFDM0Isb0VBQXNDLENBQUMsSUFBSSxDQUN6QyxlQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ2pFLENBQ0YsQ0FDRixDQUNGLEFBWGtCLENBV2pCO0FBQ1ksd0JBQVMsR0FBRyxDQUMxQixRQUErRCxFQUMvRCxFQUFFLENBQ0YsY0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFJLEVBQUUsMEJBQWtCLENBQUMsQ0FBQyxJQUFJLENBQ3pDLGNBQUssQ0FBQyxPQUFPLENBQ1gsY0FBSyxDQUFDLE1BQU0sQ0FDViw2Q0FBcUIsRUFDckIsZUFBTSxDQUFDLEdBQUcsQ0FBQyxvRUFBc0MsRUFBRSxRQUFRLENBQUMsQ0FDN0QsQ0FDRixDQUNGLEFBVnNCLENBVXJCO0FBR047Ozs7R0FJRztBQUNVLFFBQUEsT0FBTyxHQUFHLGNBQWMsQ0FBQztBQUV0Qzs7OztHQUlHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxjQUFLLENBQUMsTUFBTSxDQUNqRCxjQUFjLEVBQ2QsMEJBQWtCLENBQ25CLENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRywrQkFBdUIsQ0FBQyxJQUFJLENBQzdELGNBQUssQ0FBQyxPQUFPLENBQUMsa0RBQTBCLENBQUMsQ0FDMUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDVSxRQUFBLDBCQUEwQixHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBLaW5lc2lzU2VydmljZUV4Y2VwdGlvbixcbiAgdHlwZSBLaW5lc2lzQ2xpZW50LFxuICB0eXBlIEtpbmVzaXNDbGllbnRDb25maWcsXG4gIEFkZFRhZ3NUb1N0cmVhbUNvbW1hbmQsXG4gIHR5cGUgQWRkVGFnc1RvU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFRhZ3NUb1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZCxcbiAgdHlwZSBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIERlcmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmQsXG4gIHR5cGUgRGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlcmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTGltaXRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUxpbWl0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUxpbWl0c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RyZWFtQ29uc3VtZXJDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3RyZWFtQ29uc3VtZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTdHJlYW1Db25zdW1lckNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RyZWFtU3VtbWFyeUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5Q29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU3RyZWFtU3VtbWFyeUNvbW1hbmRPdXRwdXQsXG4gIERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kLFxuICB0eXBlIERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRPdXRwdXQsXG4gIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmQsXG4gIHR5cGUgRW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRPdXRwdXQsXG4gIEdldFJlY29yZHNDb21tYW5kLFxuICB0eXBlIEdldFJlY29yZHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UmVjb3Jkc0NvbW1hbmRPdXRwdXQsXG4gIEdldFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBHZXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIEdldFNoYXJkSXRlcmF0b3JDb21tYW5kLFxuICB0eXBlIEdldFNoYXJkSXRlcmF0b3JDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0U2hhcmRJdGVyYXRvckNvbW1hbmRPdXRwdXQsXG4gIEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZCxcbiAgdHlwZSBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmRPdXRwdXQsXG4gIExpc3RTaGFyZHNDb21tYW5kLFxuICB0eXBlIExpc3RTaGFyZHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNoYXJkc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdHJlYW1Db25zdW1lcnNDb21tYW5kLFxuICB0eXBlIExpc3RTdHJlYW1Db25zdW1lcnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFN0cmVhbUNvbnN1bWVyc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdHJlYW1zQ29tbWFuZCxcbiAgdHlwZSBMaXN0U3RyZWFtc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U3RyZWFtc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0ZvclN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0ZvclN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIE1lcmdlU2hhcmRzQ29tbWFuZCxcbiAgdHlwZSBNZXJnZVNoYXJkc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBNZXJnZVNoYXJkc0NvbW1hbmRPdXRwdXQsXG4gIFB1dFJlY29yZENvbW1hbmQsXG4gIHR5cGUgUHV0UmVjb3JkQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJlY29yZENvbW1hbmRPdXRwdXQsXG4gIFB1dFJlY29yZHNDb21tYW5kLFxuICB0eXBlIFB1dFJlY29yZHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UmVjb3Jkc0NvbW1hbmRPdXRwdXQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgdHlwZSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kLFxuICB0eXBlIFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVRhZ3NGcm9tU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVUYWdzRnJvbVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVUYWdzRnJvbVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gIFNwbGl0U2hhcmRDb21tYW5kLFxuICB0eXBlIFNwbGl0U2hhcmRDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3BsaXRTaGFyZENvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnRTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0b3BTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdG9wU3RyZWFtRW5jcnlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdG9wU3RyZWFtRW5jcnlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN1YnNjcmliZVRvU2hhcmRDb21tYW5kLFxuICB0eXBlIFN1YnNjcmliZVRvU2hhcmRDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3Vic2NyaWJlVG9TaGFyZENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNoYXJkQ291bnRDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVNoYXJkQ291bnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU2hhcmRDb3VudENvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVN0cmVhbU1vZGVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVN0cmVhbU1vZGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU3RyZWFtTW9kZUNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQta2luZXNpc1wiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIEV4cGlyZWRJdGVyYXRvckVycm9yLFxuICBFeHBpcmVkTmV4dFRva2VuRXJyb3IsXG4gIEludmFsaWRBcmd1bWVudEVycm9yLFxuICBLTVNBY2Nlc3NEZW5pZWRFcnJvcixcbiAgS01TRGlzYWJsZWRFcnJvcixcbiAgS01TSW52YWxpZFN0YXRlRXJyb3IsXG4gIEtNU05vdEZvdW5kRXJyb3IsXG4gIEtNU09wdEluUmVxdWlyZWRFcnJvcixcbiAgS01TVGhyb3R0bGluZ0Vycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3IsXG4gIFJlc291cmNlSW5Vc2VFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgS2luZXNpc0NsaWVudEluc3RhbmNlLFxuICBLaW5lc2lzQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vS2luZXNpc0NsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0S2luZXNpc0NsaWVudENvbmZpZ0xheWVyLFxuICBtYWtlRGVmYXVsdEtpbmVzaXNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgS2luZXNpc0NsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9LaW5lc2lzQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBZGRUYWdzVG9TdHJlYW1Db21tYW5kLFxuICBDcmVhdGVTdHJlYW1Db21tYW5kLFxuICBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmQsXG4gIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgRGVsZXRlU3RyZWFtQ29tbWFuZCxcbiAgRGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZCxcbiAgRGVzY3JpYmVMaW1pdHNDb21tYW5kLFxuICBEZXNjcmliZVN0cmVhbUNvbW1hbmQsXG4gIERlc2NyaWJlU3RyZWFtQ29uc3VtZXJDb21tYW5kLFxuICBEZXNjcmliZVN0cmVhbVN1bW1hcnlDb21tYW5kLFxuICBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZCxcbiAgRW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZCxcbiAgR2V0UmVjb3Jkc0NvbW1hbmQsXG4gIEdldFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgR2V0U2hhcmRJdGVyYXRvckNvbW1hbmQsXG4gIEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZCxcbiAgTGlzdFNoYXJkc0NvbW1hbmQsXG4gIExpc3RTdHJlYW1Db25zdW1lcnNDb21tYW5kLFxuICBMaXN0U3RyZWFtc0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yU3RyZWFtQ29tbWFuZCxcbiAgTWVyZ2VTaGFyZHNDb21tYW5kLFxuICBQdXRSZWNvcmRDb21tYW5kLFxuICBQdXRSZWNvcmRzQ29tbWFuZCxcbiAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICBSZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZCxcbiAgUmVtb3ZlVGFnc0Zyb21TdHJlYW1Db21tYW5kLFxuICBTcGxpdFNoYXJkQ29tbWFuZCxcbiAgU3RhcnRTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZCxcbiAgU3RvcFN0cmVhbUVuY3J5cHRpb25Db21tYW5kLFxuICBTdWJzY3JpYmVUb1NoYXJkQ29tbWFuZCxcbiAgVXBkYXRlU2hhcmRDb3VudENvbW1hbmQsXG4gIFVwZGF0ZVN0cmVhbU1vZGVDb21tYW5kLFxufTtcblxuaW50ZXJmYWNlIEtpbmVzaXNTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFRhZ3NUb1N0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBhZGRUYWdzVG9TdHJlYW0oXG4gICAgYXJnczogQWRkVGFnc1RvU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkVGFnc1RvU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVN0cmVhbShcbiAgICBhcmdzOiBDcmVhdGVTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFyZ3VtZW50RXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3IgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kfVxuICAgKi9cbiAgZGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QoXG4gICAgYXJnczogRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVJlc291cmNlUG9saWN5KFxuICAgIGFyZ3M6IERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU3RyZWFtKFxuICAgIGFyZ3M6IERlbGV0ZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlcmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmR9XG4gICAqL1xuICBkZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIoXG4gICAgYXJnczogRGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcmd1bWVudEVycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlTGltaXRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlTGltaXRzKFxuICAgIGFyZ3M6IERlc2NyaWJlTGltaXRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8RGVzY3JpYmVMaW1pdHNDb21tYW5kT3V0cHV0LCBTZGtFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvcj47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU3RyZWFtKFxuICAgIGFyZ3M6IERlc2NyaWJlU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdHJlYW1Db25zdW1lckNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN0cmVhbUNvbnN1bWVyKFxuICAgIGFyZ3M6IERlc2NyaWJlU3RyZWFtQ29uc3VtZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVN0cmVhbUNvbnN1bWVyQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcmd1bWVudEVycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU3RyZWFtU3VtbWFyeUNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN0cmVhbVN1bW1hcnkoXG4gICAgYXJnczogRGVzY3JpYmVTdHJlYW1TdW1tYXJ5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kfVxuICAgKi9cbiAgZGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZyhcbiAgICBhcmdzOiBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmR9XG4gICAqL1xuICBlbmFibGVFbmhhbmNlZE1vbml0b3JpbmcoXG4gICAgYXJnczogRW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UmVjb3Jkc0NvbW1hbmR9XG4gICAqL1xuICBnZXRSZWNvcmRzKFxuICAgIGFyZ3M6IEdldFJlY29yZHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRSZWNvcmRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgRXhwaXJlZEl0ZXJhdG9yRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBLTVNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS01TRGlzYWJsZWRFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEtNU05vdEZvdW5kRXJyb3JcbiAgICB8IEtNU09wdEluUmVxdWlyZWRFcnJvclxuICAgIHwgS01TVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZ2V0UmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNoYXJkSXRlcmF0b3JDb21tYW5kfVxuICAgKi9cbiAgZ2V0U2hhcmRJdGVyYXRvcihcbiAgICBhcmdzOiBHZXRTaGFyZEl0ZXJhdG9yQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0U2hhcmRJdGVyYXRvckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kfVxuICAgKi9cbiAgaW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2QoXG4gICAgYXJnczogSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTaGFyZHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFNoYXJkcyhcbiAgICBhcmdzOiBMaXN0U2hhcmRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFNoYXJkc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEV4cGlyZWROZXh0VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFN0cmVhbUNvbnN1bWVyc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RyZWFtQ29uc3VtZXJzKFxuICAgIGFyZ3M6IExpc3RTdHJlYW1Db25zdW1lcnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U3RyZWFtQ29uc3VtZXJzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeHBpcmVkTmV4dFRva2VuRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTdHJlYW1zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTdHJlYW1zKFxuICAgIGFyZ3M6IExpc3RTdHJlYW1zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFN0cmVhbXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRXhwaXJlZE5leHRUb2tlbkVycm9yIHwgSW52YWxpZEFyZ3VtZW50RXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NGb3JTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JTdHJlYW0oXG4gICAgYXJnczogTGlzdFRhZ3NGb3JTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBNZXJnZVNoYXJkc0NvbW1hbmR9XG4gICAqL1xuICBtZXJnZVNoYXJkcyhcbiAgICBhcmdzOiBNZXJnZVNoYXJkc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIE1lcmdlU2hhcmRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSZWNvcmRDb21tYW5kfVxuICAgKi9cbiAgcHV0UmVjb3JkKFxuICAgIGFyZ3M6IFB1dFJlY29yZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJlY29yZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBLTVNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS01TRGlzYWJsZWRFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEtNU05vdEZvdW5kRXJyb3JcbiAgICB8IEtNU09wdEluUmVxdWlyZWRFcnJvclxuICAgIHwgS01TVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmVjb3Jkc0NvbW1hbmR9XG4gICAqL1xuICBwdXRSZWNvcmRzKFxuICAgIGFyZ3M6IFB1dFJlY29yZHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZWNvcmRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IEtNU0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLTVNEaXNhYmxlZEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS01TTm90Rm91bmRFcnJvclxuICAgIHwgS01TT3B0SW5SZXF1aXJlZEVycm9yXG4gICAgfCBLTVNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBwdXRSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmR9XG4gICAqL1xuICByZWdpc3RlclN0cmVhbUNvbnN1bWVyKFxuICAgIGFyZ3M6IFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVUYWdzRnJvbVN0cmVhbUNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVUYWdzRnJvbVN0cmVhbShcbiAgICBhcmdzOiBSZW1vdmVUYWdzRnJvbVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVRhZ3NGcm9tU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3BsaXRTaGFyZENvbW1hbmR9XG4gICAqL1xuICBzcGxpdFNoYXJkKFxuICAgIGFyZ3M6IFNwbGl0U2hhcmRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTcGxpdFNoYXJkQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydFN0cmVhbUVuY3J5cHRpb25Db21tYW5kfVxuICAgKi9cbiAgc3RhcnRTdHJlYW1FbmNyeXB0aW9uKFxuICAgIGFyZ3M6IFN0YXJ0U3RyZWFtRW5jcnlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBLTVNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS01TRGlzYWJsZWRFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEtNU05vdEZvdW5kRXJyb3JcbiAgICB8IEtNU09wdEluUmVxdWlyZWRFcnJvclxuICAgIHwgS01TVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0b3BTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0b3BTdHJlYW1FbmNyeXB0aW9uKFxuICAgIGFyZ3M6IFN0b3BTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RvcFN0cmVhbUVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdWJzY3JpYmVUb1NoYXJkQ29tbWFuZH1cbiAgICovXG4gIHN1YnNjcmliZVRvU2hhcmQoXG4gICAgYXJnczogU3Vic2NyaWJlVG9TaGFyZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN1YnNjcmliZVRvU2hhcmRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTaGFyZENvdW50Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVNoYXJkQ291bnQoXG4gICAgYXJnczogVXBkYXRlU2hhcmRDb3VudENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVNoYXJkQ291bnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVN0cmVhbU1vZGVDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlU3RyZWFtTW9kZShcbiAgICBhcmdzOiBVcGRhdGVTdHJlYW1Nb2RlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlU3RyZWFtTW9kZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VLaW5lc2lzU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKEtpbmVzaXNDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIEtpbmVzaXNTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPEtpbmVzaXNTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBLaW5lc2lzU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQta2luZXNpcy9LaW5lc2lzU2VydmljZVwiLFxuKTxLaW5lc2lzU2VydmljZSwgS2luZXNpc1NlcnZpY2UkPigpIHtcbiAgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRMYXllciA9IExheWVyLmVmZmVjdCh0aGlzLCBtYWtlS2luZXNpc1NlcnZpY2UpLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShLaW5lc2lzQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0S2luZXNpc0NsaWVudENvbmZpZ0xheWVyKSxcbiAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGxheWVyID0gKGNvbmZpZzogS2luZXNpc0NsaWVudENvbmZpZykgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZUtpbmVzaXNTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShLaW5lc2lzQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgS2luZXNpc0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICAgICAgICAgIG1ha2VEZWZhdWx0S2luZXNpc0NsaWVudEluc3RhbmNlQ29uZmlnLnBpcGUoXG4gICAgICAgICAgICBFZmZlY3QubWFwKChkZWZhdWx0Q29uZmlnKSA9PiAoeyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSkpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIHN0YXRpYyByZWFkb25seSBiYXNlTGF5ZXIgPSAoXG4gICAgZXZhbHVhdGU6IChkZWZhdWx0Q29uZmlnOiBLaW5lc2lzQ2xpZW50Q29uZmlnKSA9PiBLaW5lc2lzQ2xpZW50LFxuICApID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VLaW5lc2lzU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBLaW5lc2lzQ2xpZW50SW5zdGFuY2UsXG4gICAgICAgICAgRWZmZWN0Lm1hcChtYWtlRGVmYXVsdEtpbmVzaXNDbGllbnRJbnN0YW5jZUNvbmZpZywgZXZhbHVhdGUpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICogQGFsaWFzIEtpbmVzaXNTZXJ2aWNlXG4gKi9cbmV4cG9ydCBjb25zdCBLaW5lc2lzID0gS2luZXNpc1NlcnZpY2U7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgS2luZXNpcy5iYXNlTGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQmFzZUtpbmVzaXNTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIEtpbmVzaXNTZXJ2aWNlLFxuICBtYWtlS2luZXNpc1NlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIEtpbmVzaXMubGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgS2luZXNpc1NlcnZpY2VMYXllciA9IEJhc2VLaW5lc2lzU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoS2luZXNpc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBLaW5lc2lzLmRlZmF1bHRMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0S2luZXNpc1NlcnZpY2VMYXllciA9IEtpbmVzaXNTZXJ2aWNlLmRlZmF1bHRMYXllcjtcbiJdfQ==
@@ -1,3 +1,4 @@
1
+ var _a;
1
2
  /**
2
3
  * @since 1.0.0
3
4
  */
@@ -5,7 +6,7 @@ import { KinesisServiceException, AddTagsToStreamCommand, CreateStreamCommand, D
5
6
  import { Data, Effect, Layer, Record } from "effect";
6
7
  import { AllServiceErrors, SdkError, } from "./Errors";
7
8
  import { KinesisClientInstance, KinesisClientInstanceLayer, } from "./KinesisClientInstance";
8
- import { DefaultKinesisClientConfigLayer } from "./KinesisClientInstanceConfig";
9
+ import { DefaultKinesisClientConfigLayer, makeDefaultKinesisClientInstanceConfig, KinesisClientInstanceConfig, } from "./KinesisClientInstanceConfig";
9
10
  const commands = {
10
11
  AddTagsToStreamCommand,
11
12
  CreateStreamCommand,
@@ -40,12 +41,6 @@ const commands = {
40
41
  UpdateShardCountCommand,
41
42
  UpdateStreamModeCommand,
42
43
  };
43
- /**
44
- * @since 1.0.0
45
- * @category models
46
- */
47
- export class KinesisService extends Effect.Tag("@effect-aws/client-kinesis/KinesisService")() {
48
- }
49
44
  /**
50
45
  * @since 1.0.0
51
46
  * @category constructors
@@ -84,19 +79,38 @@ export const makeKinesisService = Effect.gen(function* (_) {
84
79
  return { ...acc, [methodName]: methodImpl };
85
80
  }, {});
86
81
  });
82
+ /**
83
+ * @since 1.0.0
84
+ * @category models
85
+ */
86
+ export class KinesisService extends Effect.Tag("@effect-aws/client-kinesis/KinesisService")() {
87
+ }
88
+ _a = KinesisService;
89
+ KinesisService.defaultLayer = Layer.effect(_a, makeKinesisService).pipe(Layer.provide(KinesisClientInstanceLayer), Layer.provide(DefaultKinesisClientConfigLayer));
90
+ KinesisService.layer = (config) => Layer.effect(_a, makeKinesisService).pipe(Layer.provide(KinesisClientInstanceLayer), Layer.provide(Layer.effect(KinesisClientInstanceConfig, makeDefaultKinesisClientInstanceConfig.pipe(Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
91
+ KinesisService.baseLayer = (evaluate) => Layer.effect(_a, makeKinesisService).pipe(Layer.provide(Layer.effect(KinesisClientInstance, Effect.map(makeDefaultKinesisClientInstanceConfig, evaluate))));
92
+ /**
93
+ * @since 1.0.0
94
+ * @category models
95
+ * @alias KinesisService
96
+ */
97
+ export const Kinesis = KinesisService;
87
98
  /**
88
99
  * @since 1.0.0
89
100
  * @category layers
101
+ * @deprecated use Kinesis.baseLayer instead
90
102
  */
91
103
  export const BaseKinesisServiceLayer = Layer.effect(KinesisService, makeKinesisService);
92
104
  /**
93
105
  * @since 1.0.0
94
106
  * @category layers
107
+ * @deprecated use Kinesis.layer instead
95
108
  */
96
109
  export const KinesisServiceLayer = BaseKinesisServiceLayer.pipe(Layer.provide(KinesisClientInstanceLayer));
97
110
  /**
98
111
  * @since 1.0.0
99
112
  * @category layers
113
+ * @deprecated use Kinesis.defaultLayer instead
100
114
  */
101
- export const DefaultKinesisServiceLayer = KinesisServiceLayer.pipe(Layer.provide(DefaultKinesisClientConfigLayer));
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2luZXNpc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvS2luZXNpc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUd0QixtQkFBbUIsRUFHbkIsb0NBQW9DLEVBR3BDLDJCQUEyQixFQUczQixtQkFBbUIsRUFHbkIsK0JBQStCLEVBRy9CLHFCQUFxQixFQUdyQixxQkFBcUIsRUFHckIsNkJBQTZCLEVBRzdCLDRCQUE0QixFQUc1QixnQ0FBZ0MsRUFHaEMsK0JBQStCLEVBRy9CLGlCQUFpQixFQUdqQix3QkFBd0IsRUFHeEIsdUJBQXVCLEVBR3ZCLG9DQUFvQyxFQUdwQyxpQkFBaUIsRUFHakIsMEJBQTBCLEVBRzFCLGtCQUFrQixFQUdsQix3QkFBd0IsRUFHeEIsa0JBQWtCLEVBR2xCLGdCQUFnQixFQUdoQixpQkFBaUIsRUFHakIsd0JBQXdCLEVBR3hCLDZCQUE2QixFQUc3QiwyQkFBMkIsRUFHM0IsaUJBQWlCLEVBR2pCLDRCQUE0QixFQUc1QiwyQkFBMkIsRUFHM0IsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUd2Qix1QkFBdUIsR0FHeEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3JELE9BQU8sRUFDTCxnQkFBZ0IsRUFnQmhCLFFBQVEsR0FFVCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLDBCQUEwQixHQUMzQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBVWhGLE1BQU0sUUFBUSxHQUFHO0lBQ2Ysc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQixvQ0FBb0M7SUFDcEMsMkJBQTJCO0lBQzNCLG1CQUFtQjtJQUNuQiwrQkFBK0I7SUFDL0IscUJBQXFCO0lBQ3JCLHFCQUFxQjtJQUNyQiw2QkFBNkI7SUFDN0IsNEJBQTRCO0lBQzVCLGdDQUFnQztJQUNoQywrQkFBK0I7SUFDL0IsaUJBQWlCO0lBQ2pCLHdCQUF3QjtJQUN4Qix1QkFBdUI7SUFDdkIsb0NBQW9DO0lBQ3BDLGlCQUFpQjtJQUNqQiwwQkFBMEI7SUFDMUIsa0JBQWtCO0lBQ2xCLHdCQUF3QjtJQUN4QixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQix3QkFBd0I7SUFDeEIsNkJBQTZCO0lBQzdCLDJCQUEyQjtJQUMzQixpQkFBaUI7SUFDakIsNEJBQTRCO0lBQzVCLDJCQUEyQjtJQUMzQix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtDQUN4QixDQUFDO0FBOGZGOzs7R0FHRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsTUFBTSxDQUFDLEdBQUcsQ0FDNUMsMkNBQTJDLENBQzVDLEVBQW1DO0NBQUc7QUFFdkM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQ3ZELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRS9DLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1FBQzFELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQVEsQ0FBQztRQUM3QyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVMsRUFBRSxPQUE0QixFQUFFLEVBQUUsQ0FDN0QsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNoQixHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQyxHQUFHLENBQUMsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksRUFBRSxDQUFDO2dCQUNsQixXQUFXO2FBQ1osQ0FBQztZQUNKLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNYLElBQ0UsQ0FBQyxZQUFZLHVCQUF1QjtvQkFDcEMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDakMsQ0FBQztvQkFDRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBRWxDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFVixPQUFPLGdCQUFnQixDQUFDO3dCQUN0QixHQUFHLENBQUM7d0JBQ0osT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO3dCQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7cUJBQ2YsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFLENBQUM7b0JBQ3ZCLE9BQU8sUUFBUSxDQUFDO3dCQUNkLEdBQUcsQ0FBQzt3QkFDSixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO3dCQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7cUJBQ2YsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0wsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDdEUsVUFBVSxFQUNWLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDOUMsQ0FBQyxFQUFFLEVBQUUsQ0FBb0IsQ0FBQztBQUM1QixDQUFDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ2pELGNBQWMsRUFDZCxrQkFBa0IsQ0FDbkIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FDN0QsS0FBSyxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUMxQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUNoRSxLQUFLLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBLaW5lc2lzU2VydmljZUV4Y2VwdGlvbixcbiAgQWRkVGFnc1RvU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBBZGRUYWdzVG9TdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkVGFnc1RvU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kLFxuICB0eXBlIERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZElucHV0LFxuICB0eXBlIERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICB0eXBlIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU3RyZWFtQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgRGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZCxcbiAgdHlwZSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVMaW1pdHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlTGltaXRzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlTGltaXRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTdHJlYW1Db21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTdHJlYW1Db25zdW1lckNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTdHJlYW1Db25zdW1lckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5Q29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0cmVhbVN1bW1hcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5Q29tbWFuZE91dHB1dCxcbiAgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmQsXG4gIHR5cGUgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZE91dHB1dCxcbiAgRW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZCxcbiAgdHlwZSBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZE91dHB1dCxcbiAgR2V0UmVjb3Jkc0NvbW1hbmQsXG4gIHR5cGUgR2V0UmVjb3Jkc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRSZWNvcmRzQ29tbWFuZE91dHB1dCxcbiAgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICB0eXBlIEdldFJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgR2V0U2hhcmRJdGVyYXRvckNvbW1hbmQsXG4gIHR5cGUgR2V0U2hhcmRJdGVyYXRvckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRTaGFyZEl0ZXJhdG9yQ29tbWFuZE91dHB1dCxcbiAgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kLFxuICB0eXBlIEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZElucHV0LFxuICB0eXBlIEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNoYXJkc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNoYXJkc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2hhcmRzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFN0cmVhbUNvbnN1bWVyc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFN0cmVhbUNvbnN1bWVyc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U3RyZWFtQ29uc3VtZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFN0cmVhbXNDb21tYW5kLFxuICB0eXBlIExpc3RTdHJlYW1zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTdHJlYW1zQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NGb3JTdHJlYW1Db21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzRm9yU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgTWVyZ2VTaGFyZHNDb21tYW5kLFxuICB0eXBlIE1lcmdlU2hhcmRzQ29tbWFuZElucHV0LFxuICB0eXBlIE1lcmdlU2hhcmRzQ29tbWFuZE91dHB1dCxcbiAgUHV0UmVjb3JkQ29tbWFuZCxcbiAgdHlwZSBQdXRSZWNvcmRDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UmVjb3JkQ29tbWFuZE91dHB1dCxcbiAgUHV0UmVjb3Jkc0NvbW1hbmQsXG4gIHR5cGUgUHV0UmVjb3Jkc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSZWNvcmRzQ29tbWFuZE91dHB1dCxcbiAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICB0eXBlIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgUmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmQsXG4gIHR5cGUgUmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlVGFnc0Zyb21TdHJlYW1Db21tYW5kLFxuICB0eXBlIFJlbW92ZVRhZ3NGcm9tU3RyZWFtQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVRhZ3NGcm9tU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgU3BsaXRTaGFyZENvbW1hbmQsXG4gIHR5cGUgU3BsaXRTaGFyZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBTcGxpdFNoYXJkQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdGFydFN0cmVhbUVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgU3RvcFN0cmVhbUVuY3J5cHRpb25Db21tYW5kLFxuICB0eXBlIFN0b3BTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFN0b3BTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgU3Vic2NyaWJlVG9TaGFyZENvbW1hbmQsXG4gIHR5cGUgU3Vic2NyaWJlVG9TaGFyZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdWJzY3JpYmVUb1NoYXJkQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU2hhcmRDb3VudENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU2hhcmRDb3VudENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTaGFyZENvdW50Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU3RyZWFtTW9kZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU3RyZWFtTW9kZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTdHJlYW1Nb2RlQ29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1raW5lc2lzXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBY2Nlc3NEZW5pZWRFcnJvcixcbiAgRXhwaXJlZEl0ZXJhdG9yRXJyb3IsXG4gIEV4cGlyZWROZXh0VG9rZW5FcnJvcixcbiAgSW52YWxpZEFyZ3VtZW50RXJyb3IsXG4gIEtNU0FjY2Vzc0RlbmllZEVycm9yLFxuICBLTVNEaXNhYmxlZEVycm9yLFxuICBLTVNJbnZhbGlkU3RhdGVFcnJvcixcbiAgS01TTm90Rm91bmRFcnJvcixcbiAgS01TT3B0SW5SZXF1aXJlZEVycm9yLFxuICBLTVNUaHJvdHRsaW5nRXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvcixcbiAgUmVzb3VyY2VJblVzZUVycm9yLFxuICBSZXNvdXJjZU5vdEZvdW5kRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQge1xuICBLaW5lc2lzQ2xpZW50SW5zdGFuY2UsXG4gIEtpbmVzaXNDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9LaW5lc2lzQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRLaW5lc2lzQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9LaW5lc2lzQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFkZFRhZ3NUb1N0cmVhbUNvbW1hbmQsXG4gIENyZWF0ZVN0cmVhbUNvbW1hbmQsXG4gIERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZCxcbiAgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICBEZWxldGVTdHJlYW1Db21tYW5kLFxuICBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kLFxuICBEZXNjcmliZUxpbWl0c0NvbW1hbmQsXG4gIERlc2NyaWJlU3RyZWFtQ29tbWFuZCxcbiAgRGVzY3JpYmVTdHJlYW1Db25zdW1lckNvbW1hbmQsXG4gIERlc2NyaWJlU3RyZWFtU3VtbWFyeUNvbW1hbmQsXG4gIERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kLFxuICBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kLFxuICBHZXRSZWNvcmRzQ29tbWFuZCxcbiAgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kLFxuICBHZXRTaGFyZEl0ZXJhdG9yQ29tbWFuZCxcbiAgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kLFxuICBMaXN0U2hhcmRzQ29tbWFuZCxcbiAgTGlzdFN0cmVhbUNvbnN1bWVyc0NvbW1hbmQsXG4gIExpc3RTdHJlYW1zQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JTdHJlYW1Db21tYW5kLFxuICBNZXJnZVNoYXJkc0NvbW1hbmQsXG4gIFB1dFJlY29yZENvbW1hbmQsXG4gIFB1dFJlY29yZHNDb21tYW5kLFxuICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kLFxuICBSZW1vdmVUYWdzRnJvbVN0cmVhbUNvbW1hbmQsXG4gIFNwbGl0U2hhcmRDb21tYW5kLFxuICBTdGFydFN0cmVhbUVuY3J5cHRpb25Db21tYW5kLFxuICBTdG9wU3RyZWFtRW5jcnlwdGlvbkNvbW1hbmQsXG4gIFN1YnNjcmliZVRvU2hhcmRDb21tYW5kLFxuICBVcGRhdGVTaGFyZENvdW50Q29tbWFuZCxcbiAgVXBkYXRlU3RyZWFtTW9kZUNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgS2luZXNpc1NlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkVGFnc1RvU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGFkZFRhZ3NUb1N0cmVhbShcbiAgICBhcmdzOiBBZGRUYWdzVG9TdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBZGRUYWdzVG9TdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU3RyZWFtKFxuICAgIGFyZ3M6IENyZWF0ZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJndW1lbnRFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IFJlc291cmNlSW5Vc2VFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmR9XG4gICAqL1xuICBkZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZChcbiAgICBhcmdzOiBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVN0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTdHJlYW0oXG4gICAgYXJnczogRGVsZXRlU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZH1cbiAgICovXG4gIGRlcmVnaXN0ZXJTdHJlYW1Db25zdW1lcihcbiAgICBhcmdzOiBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFyZ3VtZW50RXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVMaW1pdHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVMaW1pdHMoXG4gICAgYXJnczogRGVzY3JpYmVMaW1pdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZXNjcmliZUxpbWl0c0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdHJlYW0oXG4gICAgYXJnczogRGVzY3JpYmVTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN0cmVhbUNvbnN1bWVyQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU3RyZWFtQ29uc3VtZXIoXG4gICAgYXJnczogRGVzY3JpYmVTdHJlYW1Db25zdW1lckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RyZWFtQ29uc3VtZXJDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFyZ3VtZW50RXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5Q29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU3RyZWFtU3VtbWFyeShcbiAgICBhcmdzOiBEZXNjcmliZVN0cmVhbVN1bW1hcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVN0cmVhbVN1bW1hcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmR9XG4gICAqL1xuICBkaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nKFxuICAgIGFyZ3M6IERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZH1cbiAgICovXG4gIGVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZyhcbiAgICBhcmdzOiBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRSZWNvcmRzQ29tbWFuZH1cbiAgICovXG4gIGdldFJlY29yZHMoXG4gICAgYXJnczogR2V0UmVjb3Jkc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFJlY29yZHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBFeHBpcmVkSXRlcmF0b3JFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IEtNU0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLTVNEaXNhYmxlZEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS01TTm90Rm91bmRFcnJvclxuICAgIHwgS01TT3B0SW5SZXF1aXJlZEVycm9yXG4gICAgfCBLTVNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRSZXNvdXJjZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBnZXRSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBHZXRSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U2hhcmRJdGVyYXRvckNvbW1hbmR9XG4gICAqL1xuICBnZXRTaGFyZEl0ZXJhdG9yKFxuICAgIGFyZ3M6IEdldFNoYXJkSXRlcmF0b3JDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRTaGFyZEl0ZXJhdG9yQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmR9XG4gICAqL1xuICBpbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZChcbiAgICBhcmdzOiBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNoYXJkc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U2hhcmRzKFxuICAgIGFyZ3M6IExpc3RTaGFyZHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U2hhcmRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgRXhwaXJlZE5leHRUb2tlbkVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U3RyZWFtQ29uc3VtZXJzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTdHJlYW1Db25zdW1lcnMoXG4gICAgYXJnczogTGlzdFN0cmVhbUNvbnN1bWVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTdHJlYW1Db25zdW1lcnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV4cGlyZWROZXh0VG9rZW5FcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFN0cmVhbXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFN0cmVhbXMoXG4gICAgYXJnczogTGlzdFN0cmVhbXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U3RyZWFtc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBFeHBpcmVkTmV4dFRva2VuRXJyb3IgfCBJbnZhbGlkQXJndW1lbnRFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0ZvclN0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFnc0ZvclN0cmVhbShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzRm9yU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIE1lcmdlU2hhcmRzQ29tbWFuZH1cbiAgICovXG4gIG1lcmdlU2hhcmRzKFxuICAgIGFyZ3M6IE1lcmdlU2hhcmRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTWVyZ2VTaGFyZHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJlY29yZENvbW1hbmR9XG4gICAqL1xuICBwdXRSZWNvcmQoXG4gICAgYXJnczogUHV0UmVjb3JkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UmVjb3JkQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IEtNU0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLTVNEaXNhYmxlZEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS01TTm90Rm91bmRFcnJvclxuICAgIHwgS01TT3B0SW5SZXF1aXJlZEVycm9yXG4gICAgfCBLTVNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXRSZWNvcmRzQ29tbWFuZH1cbiAgICovXG4gIHB1dFJlY29yZHMoXG4gICAgYXJnczogUHV0UmVjb3Jkc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1dFJlY29yZHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgS01TQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEtNU0Rpc2FibGVkRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLTVNOb3RGb3VuZEVycm9yXG4gICAgfCBLTVNPcHRJblJlcXVpcmVkRXJyb3JcbiAgICB8IEtNU1Rocm90dGxpbmdFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIHB1dFJlc291cmNlUG9saWN5KFxuICAgIGFyZ3M6IFB1dFJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZH1cbiAgICovXG4gIHJlZ2lzdGVyU3RyZWFtQ29uc3VtZXIoXG4gICAgYXJnczogUmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVRhZ3NGcm9tU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZVRhZ3NGcm9tU3RyZWFtKFxuICAgIGFyZ3M6IFJlbW92ZVRhZ3NGcm9tU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlVGFnc0Zyb21TdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTcGxpdFNoYXJkQ29tbWFuZH1cbiAgICovXG4gIHNwbGl0U2hhcmQoXG4gICAgYXJnczogU3BsaXRTaGFyZENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNwbGl0U2hhcmRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdGFydFN0cmVhbUVuY3J5cHRpb24oXG4gICAgYXJnczogU3RhcnRTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IEtNU0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLTVNEaXNhYmxlZEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS01TTm90Rm91bmRFcnJvclxuICAgIHwgS01TT3B0SW5SZXF1aXJlZEVycm9yXG4gICAgfCBLTVNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RvcFN0cmVhbUVuY3J5cHRpb25Db21tYW5kfVxuICAgKi9cbiAgc3RvcFN0cmVhbUVuY3J5cHRpb24oXG4gICAgYXJnczogU3RvcFN0cmVhbUVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdG9wU3RyZWFtRW5jcnlwdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN1YnNjcmliZVRvU2hhcmRDb21tYW5kfVxuICAgKi9cbiAgc3Vic2NyaWJlVG9TaGFyZChcbiAgICBhcmdzOiBTdWJzY3JpYmVUb1NoYXJkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3Vic2NyaWJlVG9TaGFyZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNoYXJkQ291bnRDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlU2hhcmRDb3VudChcbiAgICBhcmdzOiBVcGRhdGVTaGFyZENvdW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlU2hhcmRDb3VudENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU3RyZWFtTW9kZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVTdHJlYW1Nb2RlKFxuICAgIGFyZ3M6IFVwZGF0ZVN0cmVhbU1vZGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTdHJlYW1Nb2RlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgS2luZXNpc1NlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1raW5lc2lzL0tpbmVzaXNTZXJ2aWNlXCIsXG4pPEtpbmVzaXNTZXJ2aWNlLCBLaW5lc2lzU2VydmljZSQ+KCkge31cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VLaW5lc2lzU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKEtpbmVzaXNDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIEtpbmVzaXNTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPEtpbmVzaXNTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBLaW5lc2lzU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VLaW5lc2lzU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBLaW5lc2lzU2VydmljZSxcbiAgbWFrZUtpbmVzaXNTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEtpbmVzaXNTZXJ2aWNlTGF5ZXIgPSBCYXNlS2luZXNpc1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKEtpbmVzaXNDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0S2luZXNpc1NlcnZpY2VMYXllciA9IEtpbmVzaXNTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0S2luZXNpc0NsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
115
+ export const DefaultKinesisServiceLayer = KinesisService.defaultLayer;
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2luZXNpc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvS2luZXNpc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLHVCQUF1QixFQUd2QixzQkFBc0IsRUFHdEIsbUJBQW1CLEVBR25CLG9DQUFvQyxFQUdwQywyQkFBMkIsRUFHM0IsbUJBQW1CLEVBR25CLCtCQUErQixFQUcvQixxQkFBcUIsRUFHckIscUJBQXFCLEVBR3JCLDZCQUE2QixFQUc3Qiw0QkFBNEIsRUFHNUIsZ0NBQWdDLEVBR2hDLCtCQUErQixFQUcvQixpQkFBaUIsRUFHakIsd0JBQXdCLEVBR3hCLHVCQUF1QixFQUd2QixvQ0FBb0MsRUFHcEMsaUJBQWlCLEVBR2pCLDBCQUEwQixFQUcxQixrQkFBa0IsRUFHbEIsd0JBQXdCLEVBR3hCLGtCQUFrQixFQUdsQixnQkFBZ0IsRUFHaEIsaUJBQWlCLEVBR2pCLHdCQUF3QixFQUd4Qiw2QkFBNkIsRUFHN0IsMkJBQTJCLEVBRzNCLGlCQUFpQixFQUdqQiw0QkFBNEIsRUFHNUIsMkJBQTJCLEVBRzNCLHVCQUF1QixFQUd2Qix1QkFBdUIsRUFHdkIsdUJBQXVCLEdBR3hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBZ0JoQixRQUFRLEdBRVQsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUNMLHFCQUFxQixFQUNyQiwwQkFBMEIsR0FDM0IsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUN0QywyQkFBMkIsR0FDNUIsTUFBTSwrQkFBK0IsQ0FBQztBQWF2QyxNQUFNLFFBQVEsR0FBRztJQUNmLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFD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bkIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQzdELEtBQUssQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FDMUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgS2luZXNpc1NlcnZpY2VFeGNlcHRpb24sXG4gIHR5cGUgS2luZXNpc0NsaWVudCxcbiAgdHlwZSBLaW5lc2lzQ2xpZW50Q29uZmlnLFxuICBBZGRUYWdzVG9TdHJlYW1Db21tYW5kLFxuICB0eXBlIEFkZFRhZ3NUb1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRUYWdzVG9TdHJlYW1Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVTdHJlYW1Db21tYW5kLFxuICB0eXBlIENyZWF0ZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBEZWNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmQsXG4gIHR5cGUgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kT3V0cHV0LFxuICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTdHJlYW1Db21tYW5kLFxuICB0eXBlIERlbGV0ZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kLFxuICB0eXBlIERlcmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUxpbWl0c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVMaW1pdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVMaW1pdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0cmVhbUNvbnN1bWVyQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0cmVhbUNvbnN1bWVyQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlU3RyZWFtQ29uc3VtZXJDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0cmVhbVN1bW1hcnlDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3RyZWFtU3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN0cmVhbVN1bW1hcnlDb21tYW5kT3V0cHV0LFxuICBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZCxcbiAgdHlwZSBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kT3V0cHV0LFxuICBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kLFxuICB0eXBlIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kT3V0cHV0LFxuICBHZXRSZWNvcmRzQ29tbWFuZCxcbiAgdHlwZSBHZXRSZWNvcmRzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFJlY29yZHNDb21tYW5kT3V0cHV0LFxuICBHZXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRTaGFyZEl0ZXJhdG9yQ29tbWFuZCxcbiAgdHlwZSBHZXRTaGFyZEl0ZXJhdG9yQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFNoYXJkSXRlcmF0b3JDb21tYW5kT3V0cHV0LFxuICBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmQsXG4gIHR5cGUgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kSW5wdXQsXG4gIHR5cGUgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kT3V0cHV0LFxuICBMaXN0U2hhcmRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2hhcmRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTaGFyZHNDb21tYW5kT3V0cHV0LFxuICBMaXN0U3RyZWFtQ29uc3VtZXJzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U3RyZWFtQ29uc3VtZXJzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTdHJlYW1Db25zdW1lcnNDb21tYW5kT3V0cHV0LFxuICBMaXN0U3RyZWFtc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFN0cmVhbXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFN0cmVhbXNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JTdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JTdHJlYW1Db21tYW5kT3V0cHV0LFxuICBNZXJnZVNoYXJkc0NvbW1hbmQsXG4gIHR5cGUgTWVyZ2VTaGFyZHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTWVyZ2VTaGFyZHNDb21tYW5kT3V0cHV0LFxuICBQdXRSZWNvcmRDb21tYW5kLFxuICB0eXBlIFB1dFJlY29yZENvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXRSZWNvcmRDb21tYW5kT3V0cHV0LFxuICBQdXRSZWNvcmRzQ29tbWFuZCxcbiAgdHlwZSBQdXRSZWNvcmRzQ29tbWFuZElucHV0LFxuICB0eXBlIFB1dFJlY29yZHNDb21tYW5kT3V0cHV0LFxuICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIHR5cGUgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICBSZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZCxcbiAgdHlwZSBSZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZElucHV0LFxuICB0eXBlIFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kT3V0cHV0LFxuICBSZW1vdmVUYWdzRnJvbVN0cmVhbUNvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlVGFnc0Zyb21TdHJlYW1Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVGFnc0Zyb21TdHJlYW1Db21tYW5kT3V0cHV0LFxuICBTcGxpdFNoYXJkQ29tbWFuZCxcbiAgdHlwZSBTcGxpdFNoYXJkQ29tbWFuZElucHV0LFxuICB0eXBlIFNwbGl0U2hhcmRDb21tYW5kT3V0cHV0LFxuICBTdGFydFN0cmVhbUVuY3J5cHRpb25Db21tYW5kLFxuICB0eXBlIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydFN0cmVhbUVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICBTdG9wU3RyZWFtRW5jcnlwdGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RvcFN0cmVhbUVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcFN0cmVhbUVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICBTdWJzY3JpYmVUb1NoYXJkQ29tbWFuZCxcbiAgdHlwZSBTdWJzY3JpYmVUb1NoYXJkQ29tbWFuZElucHV0LFxuICB0eXBlIFN1YnNjcmliZVRvU2hhcmRDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTaGFyZENvdW50Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTaGFyZENvdW50Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNoYXJkQ291bnRDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTdHJlYW1Nb2RlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTdHJlYW1Nb2RlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVN0cmVhbU1vZGVDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWtpbmVzaXNcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjY2Vzc0RlbmllZEVycm9yLFxuICBFeHBpcmVkSXRlcmF0b3JFcnJvcixcbiAgRXhwaXJlZE5leHRUb2tlbkVycm9yLFxuICBJbnZhbGlkQXJndW1lbnRFcnJvcixcbiAgS01TQWNjZXNzRGVuaWVkRXJyb3IsXG4gIEtNU0Rpc2FibGVkRXJyb3IsXG4gIEtNU0ludmFsaWRTdGF0ZUVycm9yLFxuICBLTVNOb3RGb3VuZEVycm9yLFxuICBLTVNPcHRJblJlcXVpcmVkRXJyb3IsXG4gIEtNU1Rocm90dGxpbmdFcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yLFxuICBSZXNvdXJjZUluVXNlRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7XG4gIEtpbmVzaXNDbGllbnRJbnN0YW5jZSxcbiAgS2luZXNpc0NsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL0tpbmVzaXNDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdEtpbmVzaXNDbGllbnRDb25maWdMYXllcixcbiAgbWFrZURlZmF1bHRLaW5lc2lzQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIEtpbmVzaXNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbn0gZnJvbSBcIi4vS2luZXNpc0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEhhbmRsZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGNvbm5lY3Rpb24gcGhhc2Ugb2YgYSByZXF1ZXN0XG4gICAqIG1heSB0YWtlIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBhdHRlbXB0IGlzIGFiYW5kb25lZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5jb25zdCBjb21tYW5kcyA9IHtcbiAgQWRkVGFnc1RvU3RyZWFtQ29tbWFuZCxcbiAgQ3JlYXRlU3RyZWFtQ29tbWFuZCxcbiAgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kLFxuICBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIERlbGV0ZVN0cmVhbUNvbW1hbmQsXG4gIERlcmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmQsXG4gIERlc2NyaWJlTGltaXRzQ29tbWFuZCxcbiAgRGVzY3JpYmVTdHJlYW1Db21tYW5kLFxuICBEZXNjcmliZVN0cmVhbUNvbnN1bWVyQ29tbWFuZCxcbiAgRGVzY3JpYmVTdHJlYW1TdW1tYXJ5Q29tbWFuZCxcbiAgRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmQsXG4gIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmQsXG4gIEdldFJlY29yZHNDb21tYW5kLFxuICBHZXRSZXNvdXJjZVBvbGljeUNvbW1hbmQsXG4gIEdldFNoYXJkSXRlcmF0b3JDb21tYW5kLFxuICBJbmNyZWFzZVN0cmVhbVJldGVudGlvblBlcmlvZENvbW1hbmQsXG4gIExpc3RTaGFyZHNDb21tYW5kLFxuICBMaXN0U3RyZWFtQ29uc3VtZXJzQ29tbWFuZCxcbiAgTGlzdFN0cmVhbXNDb21tYW5kLFxuICBMaXN0VGFnc0ZvclN0cmVhbUNvbW1hbmQsXG4gIE1lcmdlU2hhcmRzQ29tbWFuZCxcbiAgUHV0UmVjb3JkQ29tbWFuZCxcbiAgUHV0UmVjb3Jkc0NvbW1hbmQsXG4gIFB1dFJlc291cmNlUG9saWN5Q29tbWFuZCxcbiAgUmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmQsXG4gIFJlbW92ZVRhZ3NGcm9tU3RyZWFtQ29tbWFuZCxcbiAgU3BsaXRTaGFyZENvbW1hbmQsXG4gIFN0YXJ0U3RyZWFtRW5jcnlwdGlvbkNvbW1hbmQsXG4gIFN0b3BTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZCxcbiAgU3Vic2NyaWJlVG9TaGFyZENvbW1hbmQsXG4gIFVwZGF0ZVNoYXJkQ291bnRDb21tYW5kLFxuICBVcGRhdGVTdHJlYW1Nb2RlQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBLaW5lc2lzU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRUYWdzVG9TdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgYWRkVGFnc1RvU3RyZWFtKFxuICAgIGFyZ3M6IEFkZFRhZ3NUb1N0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZFRhZ3NUb1N0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVN0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVTdHJlYW0oXG4gICAgYXJnczogQ3JlYXRlU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcmd1bWVudEVycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZH1cbiAgICovXG4gIGRlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kKFxuICAgIGFyZ3M6IERlY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVjcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVSZXNvdXJjZVBvbGljeShcbiAgICBhcmdzOiBEZWxldGVSZXNvdXJjZVBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVJlc291cmNlUG9saWN5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN0cmVhbShcbiAgICBhcmdzOiBEZWxldGVTdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kfVxuICAgKi9cbiAgZGVyZWdpc3RlclN0cmVhbUNvbnN1bWVyKFxuICAgIGFyZ3M6IERlcmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlcmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJndW1lbnRFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUxpbWl0c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUxpbWl0cyhcbiAgICBhcmdzOiBEZXNjcmliZUxpbWl0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PERlc2NyaWJlTGltaXRzQ29tbWFuZE91dHB1dCwgU2RrRXJyb3IgfCBMaW1pdEV4Y2VlZGVkRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN0cmVhbUNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN0cmVhbShcbiAgICBhcmdzOiBEZXNjcmliZVN0cmVhbUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RyZWFtQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU3RyZWFtQ29uc3VtZXJDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdHJlYW1Db25zdW1lcihcbiAgICBhcmdzOiBEZXNjcmliZVN0cmVhbUNvbnN1bWVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTdHJlYW1Db25zdW1lckNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJndW1lbnRFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN0cmVhbVN1bW1hcnlDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdHJlYW1TdW1tYXJ5KFxuICAgIGFyZ3M6IERlc2NyaWJlU3RyZWFtU3VtbWFyeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RyZWFtU3VtbWFyeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNhYmxlRW5oYW5jZWRNb25pdG9yaW5nQ29tbWFuZH1cbiAgICovXG4gIGRpc2FibGVFbmhhbmNlZE1vbml0b3JpbmcoXG4gICAgYXJnczogRGlzYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc2FibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBFbmFibGVFbmhhbmNlZE1vbml0b3JpbmdDb21tYW5kfVxuICAgKi9cbiAgZW5hYmxlRW5oYW5jZWRNb25pdG9yaW5nKFxuICAgIGFyZ3M6IEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEVuYWJsZUVuaGFuY2VkTW9uaXRvcmluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJlY29yZHNDb21tYW5kfVxuICAgKi9cbiAgZ2V0UmVjb3JkcyhcbiAgICBhcmdzOiBHZXRSZWNvcmRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UmVjb3Jkc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEV4cGlyZWRJdGVyYXRvckVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgS01TQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEtNU0Rpc2FibGVkRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLTVNOb3RGb3VuZEVycm9yXG4gICAgfCBLTVNPcHRJblJlcXVpcmVkRXJyb3JcbiAgICB8IEtNU1Rocm90dGxpbmdFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFJlc291cmNlUG9saWN5Q29tbWFuZH1cbiAgICovXG4gIGdldFJlc291cmNlUG9saWN5KFxuICAgIGFyZ3M6IEdldFJlc291cmNlUG9saWN5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UmVzb3VyY2VQb2xpY3lDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTaGFyZEl0ZXJhdG9yQ29tbWFuZH1cbiAgICovXG4gIGdldFNoYXJkSXRlcmF0b3IoXG4gICAgYXJnczogR2V0U2hhcmRJdGVyYXRvckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFNoYXJkSXRlcmF0b3JDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZH1cbiAgICovXG4gIGluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kKFxuICAgIGFyZ3M6IEluY3JlYXNlU3RyZWFtUmV0ZW50aW9uUGVyaW9kQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgSW5jcmVhc2VTdHJlYW1SZXRlbnRpb25QZXJpb2RDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2hhcmRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTaGFyZHMoXG4gICAgYXJnczogTGlzdFNoYXJkc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTaGFyZHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBFeHBpcmVkTmV4dFRva2VuRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTdHJlYW1Db25zdW1lcnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFN0cmVhbUNvbnN1bWVycyhcbiAgICBhcmdzOiBMaXN0U3RyZWFtQ29uc3VtZXJzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFN0cmVhbUNvbnN1bWVyc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhwaXJlZE5leHRUb2tlbkVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U3RyZWFtc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RyZWFtcyhcbiAgICBhcmdzOiBMaXN0U3RyZWFtc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTdHJlYW1zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEV4cGlyZWROZXh0VG9rZW5FcnJvciB8IEludmFsaWRBcmd1bWVudEVycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yU3RyZWFtQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzRm9yU3RyZWFtKFxuICAgIGFyZ3M6IExpc3RUYWdzRm9yU3RyZWFtQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JTdHJlYW1Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTWVyZ2VTaGFyZHNDb21tYW5kfVxuICAgKi9cbiAgbWVyZ2VTaGFyZHMoXG4gICAgYXJnczogTWVyZ2VTaGFyZHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBNZXJnZVNoYXJkc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmVjb3JkQ29tbWFuZH1cbiAgICovXG4gIHB1dFJlY29yZChcbiAgICBhcmdzOiBQdXRSZWNvcmRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZWNvcmRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgS01TQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEtNU0Rpc2FibGVkRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLTVNOb3RGb3VuZEVycm9yXG4gICAgfCBLTVNPcHRJblJlcXVpcmVkRXJyb3JcbiAgICB8IEtNU1Rocm90dGxpbmdFcnJvclxuICAgIHwgUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1dFJlY29yZHNDb21tYW5kfVxuICAgKi9cbiAgcHV0UmVjb3JkcyhcbiAgICBhcmdzOiBQdXRSZWNvcmRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHV0UmVjb3Jkc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBLTVNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS01TRGlzYWJsZWRFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEtNU05vdEZvdW5kRXJyb3JcbiAgICB8IEtNU09wdEluUmVxdWlyZWRFcnJvclxuICAgIHwgS01TVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBQcm92aXNpb25lZFRocm91Z2hwdXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0UmVzb3VyY2VQb2xpY3koXG4gICAgYXJnczogUHV0UmVzb3VyY2VQb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXRSZXNvdXJjZVBvbGljeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlZ2lzdGVyU3RyZWFtQ29uc3VtZXJDb21tYW5kfVxuICAgKi9cbiAgcmVnaXN0ZXJTdHJlYW1Db25zdW1lcihcbiAgICBhcmdzOiBSZWdpc3RlclN0cmVhbUNvbnN1bWVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVnaXN0ZXJTdHJlYW1Db25zdW1lckNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVGFnc0Zyb21TdHJlYW1Db21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlVGFnc0Zyb21TdHJlYW0oXG4gICAgYXJnczogUmVtb3ZlVGFnc0Zyb21TdHJlYW1Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVUYWdzRnJvbVN0cmVhbUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNwbGl0U2hhcmRDb21tYW5kfVxuICAgKi9cbiAgc3BsaXRTaGFyZChcbiAgICBhcmdzOiBTcGxpdFNoYXJkQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3BsaXRTaGFyZENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0U3RyZWFtRW5jcnlwdGlvbihcbiAgICBhcmdzOiBTdGFydFN0cmVhbUVuY3J5cHRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFN0cmVhbUVuY3J5cHRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBJbnZhbGlkQXJndW1lbnRFcnJvclxuICAgIHwgS01TQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEtNU0Rpc2FibGVkRXJyb3JcbiAgICB8IEtNU0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLTVNOb3RGb3VuZEVycm9yXG4gICAgfCBLTVNPcHRJblJlcXVpcmVkRXJyb3JcbiAgICB8IEtNU1Rocm90dGxpbmdFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUluVXNlRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wU3RyZWFtRW5jcnlwdGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdG9wU3RyZWFtRW5jcnlwdGlvbihcbiAgICBhcmdzOiBTdG9wU3RyZWFtRW5jcnlwdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BTdHJlYW1FbmNyeXB0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3Vic2NyaWJlVG9TaGFyZENvbW1hbmR9XG4gICAqL1xuICBzdWJzY3JpYmVUb1NoYXJkKFxuICAgIGFyZ3M6IFN1YnNjcmliZVRvU2hhcmRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdWJzY3JpYmVUb1NoYXJkQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU2hhcmRDb3VudENvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVTaGFyZENvdW50KFxuICAgIGFyZ3M6IFVwZGF0ZVNoYXJkQ291bnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTaGFyZENvdW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgSW52YWxpZEFyZ3VtZW50RXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VJblVzZUVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTdHJlYW1Nb2RlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVN0cmVhbU1vZGUoXG4gICAgYXJnczogVXBkYXRlU3RyZWFtTW9kZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVN0cmVhbU1vZGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcmd1bWVudEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlSW5Vc2VFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlS2luZXNpc1NlcnZpY2UgPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBjbGllbnQgPSB5aWVsZCogXyhLaW5lc2lzQ2xpZW50SW5zdGFuY2UpO1xuXG4gIHJldHVybiBSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKGFib3J0U2lnbmFsKSA9PlxuICAgICAgICAgIGNsaWVudC5zZW5kKG5ldyBDb21tYW5kQ3RvcihhcmdzKSwge1xuICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgYWJvcnRTaWduYWwsXG4gICAgICAgICAgfSksXG4gICAgICAgIGNhdGNoOiAoZSkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGUgaW5zdGFuY2VvZiBLaW5lc2lzU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxLaW5lc2lzU2VydmljZUV4Y2VwdGlvbj5cbiAgICAgICAgICAgID4oZS5uYW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIFNlcnZpY2VFeGNlcHRpb24oe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBTZGtFcnJvcih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG5hbWU6IFwiU2RrRXJyb3JcIixcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IChjb21tYW5kWzBdLnRvTG93ZXJDYXNlKCkgKyBjb21tYW5kLnNsaWNlKDEpKS5yZXBsYWNlKFxuICAgICAgL0NvbW1hbmQkLyxcbiAgICAgIFwiXCIsXG4gICAgKTtcbiAgICByZXR1cm4geyAuLi5hY2MsIFttZXRob2ROYW1lXTogbWV0aG9kSW1wbCB9O1xuICB9LCB7fSkgYXMgS2luZXNpc1NlcnZpY2UkO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBLaW5lc2lzU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LWtpbmVzaXMvS2luZXNpc1NlcnZpY2VcIixcbik8S2luZXNpc1NlcnZpY2UsIEtpbmVzaXNTZXJ2aWNlJD4oKSB7XG4gIHN0YXRpYyByZWFkb25seSBkZWZhdWx0TGF5ZXIgPSBMYXllci5lZmZlY3QodGhpcywgbWFrZUtpbmVzaXNTZXJ2aWNlKS5waXBlKFxuICAgIExheWVyLnByb3ZpZGUoS2luZXNpc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgIExheWVyLnByb3ZpZGUoRGVmYXVsdEtpbmVzaXNDbGllbnRDb25maWdMYXllciksXG4gICk7XG4gIHN0YXRpYyByZWFkb25seSBsYXllciA9IChjb25maWc6IEtpbmVzaXNDbGllbnRDb25maWcpID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VLaW5lc2lzU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoS2luZXNpc0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIEtpbmVzaXNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgICAgICAgICBtYWtlRGVmYXVsdEtpbmVzaXNDbGllbnRJbnN0YW5jZUNvbmZpZy5waXBlKFxuICAgICAgICAgICAgRWZmZWN0Lm1hcCgoZGVmYXVsdENvbmZpZykgPT4gKHsgLi4uZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0pKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuICBzdGF0aWMgcmVhZG9ubHkgYmFzZUxheWVyID0gKFxuICAgIGV2YWx1YXRlOiAoZGVmYXVsdENvbmZpZzogS2luZXNpc0NsaWVudENvbmZpZykgPT4gS2luZXNpc0NsaWVudCxcbiAgKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlS2luZXNpc1NlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgS2luZXNpc0NsaWVudEluc3RhbmNlLFxuICAgICAgICAgIEVmZmVjdC5tYXAobWFrZURlZmF1bHRLaW5lc2lzQ2xpZW50SW5zdGFuY2VDb25maWcsIGV2YWx1YXRlKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqIEBhbGlhcyBLaW5lc2lzU2VydmljZVxuICovXG5leHBvcnQgY29uc3QgS2luZXNpcyA9IEtpbmVzaXNTZXJ2aWNlO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIEtpbmVzaXMuYmFzZUxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VLaW5lc2lzU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBLaW5lc2lzU2VydmljZSxcbiAgbWFrZUtpbmVzaXNTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBLaW5lc2lzLmxheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IEtpbmVzaXNTZXJ2aWNlTGF5ZXIgPSBCYXNlS2luZXNpc1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKEtpbmVzaXNDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgS2luZXNpcy5kZWZhdWx0TGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdEtpbmVzaXNTZXJ2aWNlTGF5ZXIgPSBLaW5lc2lzU2VydmljZS5kZWZhdWx0TGF5ZXI7XG4iXX0=
package/package.json CHANGED
@@ -33,7 +33,7 @@
33
33
  "publishConfig": {
34
34
  "access": "public"
35
35
  },
36
- "version": "1.0.0",
36
+ "version": "1.1.0",
37
37
  "types": "lib/index.d.ts",
38
38
  "module": "lib/esm/index.js",
39
39
  "sideEffects": [],