@effect-aws/client-opensearch 1.0.1 → 1.2.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 +12 -0
- package/README.md +13 -40
- package/lib/OpenSearchService.d.ts +58 -5
- package/lib/OpenSearchService.js +32 -10
- package/lib/esm/OpenSearchService.js +32 -10
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @effect-aws/client-opensearch
|
|
2
2
|
|
|
3
|
+
## 1.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`b24f980`](https://github.com/floydspace/effect-aws/commit/b24f98045ee3383c54d1152054e5b77f01d5f5e3) Thanks [@floydspace](https://github.com/floydspace)! - update services
|
|
8
|
+
|
|
9
|
+
## 1.1.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [#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)
|
|
14
|
+
|
|
3
15
|
## 1.0.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -14,13 +14,13 @@ npm install --save @effect-aws/client-opensearch
|
|
|
14
14
|
With default OpenSearchClient instance:
|
|
15
15
|
|
|
16
16
|
```typescript
|
|
17
|
-
import {
|
|
17
|
+
import { OpenSearch } from "@effect-aws/client-opensearch";
|
|
18
18
|
|
|
19
|
-
const program =
|
|
19
|
+
const program = OpenSearch.describeDomains(args);
|
|
20
20
|
|
|
21
21
|
const result = pipe(
|
|
22
22
|
program,
|
|
23
|
-
Effect.provide(
|
|
23
|
+
Effect.provide(OpenSearch.defaultLayer),
|
|
24
24
|
Effect.runPromise,
|
|
25
25
|
);
|
|
26
26
|
```
|
|
@@ -28,23 +28,15 @@ const result = pipe(
|
|
|
28
28
|
With custom OpenSearchClient instance:
|
|
29
29
|
|
|
30
30
|
```typescript
|
|
31
|
-
import {
|
|
32
|
-
OpenSearchService,
|
|
33
|
-
BaseOpenSearchServiceLayer,
|
|
34
|
-
OpenSearchClientInstance,
|
|
35
|
-
} from "@effect-aws/client-opensearch";
|
|
31
|
+
import { OpenSearch } from "@effect-aws/client-opensearch";
|
|
36
32
|
|
|
37
|
-
const program =
|
|
38
|
-
|
|
39
|
-
const OpenSearchClientInstanceLayer = Layer.succeed(
|
|
40
|
-
OpenSearchClientInstance,
|
|
41
|
-
new OpenSearchClient({ region: "eu-central-1" }),
|
|
42
|
-
);
|
|
33
|
+
const program = OpenSearch.describeDomains(args);
|
|
43
34
|
|
|
44
35
|
const result = await pipe(
|
|
45
36
|
program,
|
|
46
|
-
Effect.provide(
|
|
47
|
-
|
|
37
|
+
Effect.provide(
|
|
38
|
+
OpenSearch.baseLayer(() => new OpenSearchClient({ 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 OpenSearchClient configuration:
|
|
53
45
|
|
|
54
46
|
```typescript
|
|
55
|
-
import {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
DefaultOpenSearchClientConfigLayer,
|
|
59
|
-
OpenSearchClientInstance,
|
|
60
|
-
OpenSearchClientInstanceConfig,
|
|
61
|
-
} from "@effect-aws/client-opensearch";
|
|
62
|
-
|
|
63
|
-
const program = OpenSearchService.describeDomains(args);
|
|
64
|
-
|
|
65
|
-
const OpenSearchClientInstanceLayer = Layer.provide(
|
|
66
|
-
Layer.effect(
|
|
67
|
-
OpenSearchClientInstance,
|
|
68
|
-
OpenSearchClientInstanceConfig.pipe(
|
|
69
|
-
Effect.map(
|
|
70
|
-
(config) => new OpenSearchClient({ ...config, region: "eu-central-1" }),
|
|
71
|
-
),
|
|
72
|
-
),
|
|
73
|
-
),
|
|
74
|
-
DefaultOpenSearchClientConfigLayer,
|
|
75
|
-
);
|
|
47
|
+
import { OpenSearch } from "@effect-aws/client-opensearch";
|
|
48
|
+
|
|
49
|
+
const program = OpenSearch.describeDomains(args);
|
|
76
50
|
|
|
77
51
|
const result = await pipe(
|
|
78
52
|
program,
|
|
79
|
-
Effect.provide(
|
|
80
|
-
Effect.provide(OpenSearchClientInstanceLayer),
|
|
53
|
+
Effect.provide(OpenSearch.layer({ region: "eu-central-1" })),
|
|
81
54
|
Effect.runPromiseExit,
|
|
82
55
|
);
|
|
83
56
|
```
|
|
84
57
|
|
|
85
|
-
or
|
|
58
|
+
or use `OpenSearch.baseLayer((default) => new OpenSearchClient({ ...default, region: "eu-central-1" }))`
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import { type AcceptInboundConnectionCommandInput, type AcceptInboundConnectionCommandOutput, type AddDataSourceCommandInput, type AddDataSourceCommandOutput, type AddTagsCommandInput, type AddTagsCommandOutput, type AssociatePackageCommandInput, type AssociatePackageCommandOutput, type AuthorizeVpcEndpointAccessCommandInput, type AuthorizeVpcEndpointAccessCommandOutput, type CancelDomainConfigChangeCommandInput, type CancelDomainConfigChangeCommandOutput, type CancelServiceSoftwareUpdateCommandInput, type CancelServiceSoftwareUpdateCommandOutput, type CreateApplicationCommandInput, type CreateApplicationCommandOutput, type CreateDomainCommandInput, type CreateDomainCommandOutput, type CreateOutboundConnectionCommandInput, type CreateOutboundConnectionCommandOutput, type CreatePackageCommandInput, type CreatePackageCommandOutput, type CreateVpcEndpointCommandInput, type CreateVpcEndpointCommandOutput, type DeleteApplicationCommandInput, type DeleteApplicationCommandOutput, type DeleteDataSourceCommandInput, type DeleteDataSourceCommandOutput, type DeleteDomainCommandInput, type DeleteDomainCommandOutput, type DeleteInboundConnectionCommandInput, type DeleteInboundConnectionCommandOutput, type DeleteOutboundConnectionCommandInput, type DeleteOutboundConnectionCommandOutput, type DeletePackageCommandInput, type DeletePackageCommandOutput, type DeleteVpcEndpointCommandInput, type DeleteVpcEndpointCommandOutput, type DescribeDomainCommandInput, type DescribeDomainCommandOutput, type DescribeDomainAutoTunesCommandInput, type DescribeDomainAutoTunesCommandOutput, type DescribeDomainChangeProgressCommandInput, type DescribeDomainChangeProgressCommandOutput, type DescribeDomainConfigCommandInput, type DescribeDomainConfigCommandOutput, type DescribeDomainHealthCommandInput, type DescribeDomainHealthCommandOutput, type DescribeDomainNodesCommandInput, type DescribeDomainNodesCommandOutput, type DescribeDomainsCommandInput, type DescribeDomainsCommandOutput, type DescribeDryRunProgressCommandInput, type DescribeDryRunProgressCommandOutput, type DescribeInboundConnectionsCommandInput, type DescribeInboundConnectionsCommandOutput, type DescribeInstanceTypeLimitsCommandInput, type DescribeInstanceTypeLimitsCommandOutput, type DescribeOutboundConnectionsCommandInput, type DescribeOutboundConnectionsCommandOutput, type DescribePackagesCommandInput, type DescribePackagesCommandOutput, type DescribeReservedInstanceOfferingsCommandInput, type DescribeReservedInstanceOfferingsCommandOutput, type DescribeReservedInstancesCommandInput, type DescribeReservedInstancesCommandOutput, type DescribeVpcEndpointsCommandInput, type DescribeVpcEndpointsCommandOutput, type DissociatePackageCommandInput, type DissociatePackageCommandOutput, type GetApplicationCommandInput, type GetApplicationCommandOutput, type GetCompatibleVersionsCommandInput, type GetCompatibleVersionsCommandOutput, type GetDataSourceCommandInput, type GetDataSourceCommandOutput, type GetDomainMaintenanceStatusCommandInput, type GetDomainMaintenanceStatusCommandOutput, type GetPackageVersionHistoryCommandInput, type GetPackageVersionHistoryCommandOutput, type GetUpgradeHistoryCommandInput, type GetUpgradeHistoryCommandOutput, type GetUpgradeStatusCommandInput, type GetUpgradeStatusCommandOutput, type ListApplicationsCommandInput, type ListApplicationsCommandOutput, type ListDataSourcesCommandInput, type ListDataSourcesCommandOutput, type ListDomainMaintenancesCommandInput, type ListDomainMaintenancesCommandOutput, type ListDomainNamesCommandInput, type ListDomainNamesCommandOutput, type ListDomainsForPackageCommandInput, type ListDomainsForPackageCommandOutput, type ListInstanceTypeDetailsCommandInput, type ListInstanceTypeDetailsCommandOutput, type ListPackagesForDomainCommandInput, type ListPackagesForDomainCommandOutput, type ListScheduledActionsCommandInput, type ListScheduledActionsCommandOutput, type ListTagsCommandInput, type ListTagsCommandOutput, type ListVersionsCommandInput, type ListVersionsCommandOutput, type ListVpcEndpointAccessCommandInput, type ListVpcEndpointAccessCommandOutput, type ListVpcEndpointsCommandInput, type ListVpcEndpointsCommandOutput, type ListVpcEndpointsForDomainCommandInput, type ListVpcEndpointsForDomainCommandOutput, type PurchaseReservedInstanceOfferingCommandInput, type PurchaseReservedInstanceOfferingCommandOutput, type RejectInboundConnectionCommandInput, type RejectInboundConnectionCommandOutput, type RemoveTagsCommandInput, type RemoveTagsCommandOutput, type RevokeVpcEndpointAccessCommandInput, type RevokeVpcEndpointAccessCommandOutput, type StartDomainMaintenanceCommandInput, type StartDomainMaintenanceCommandOutput, type StartServiceSoftwareUpdateCommandInput, type StartServiceSoftwareUpdateCommandOutput, type UpdateApplicationCommandInput, type UpdateApplicationCommandOutput, type UpdateDataSourceCommandInput, type UpdateDataSourceCommandOutput, type UpdateDomainConfigCommandInput, type UpdateDomainConfigCommandOutput, type UpdatePackageCommandInput, type UpdatePackageCommandOutput, type UpdateScheduledActionCommandInput, type UpdateScheduledActionCommandOutput, type UpdateVpcEndpointCommandInput, type UpdateVpcEndpointCommandOutput, type UpgradeDomainCommandInput, type UpgradeDomainCommandOutput } from "@aws-sdk/client-opensearch";
|
|
4
|
+
import { type OpenSearchClient, type OpenSearchClientConfig, type AcceptInboundConnectionCommandInput, type AcceptInboundConnectionCommandOutput, type AddDataSourceCommandInput, type AddDataSourceCommandOutput, type AddDirectQueryDataSourceCommandInput, type AddDirectQueryDataSourceCommandOutput, type AddTagsCommandInput, type AddTagsCommandOutput, type AssociatePackageCommandInput, type AssociatePackageCommandOutput, type AssociatePackagesCommandInput, type AssociatePackagesCommandOutput, type AuthorizeVpcEndpointAccessCommandInput, type AuthorizeVpcEndpointAccessCommandOutput, type CancelDomainConfigChangeCommandInput, type CancelDomainConfigChangeCommandOutput, type CancelServiceSoftwareUpdateCommandInput, type CancelServiceSoftwareUpdateCommandOutput, type CreateApplicationCommandInput, type CreateApplicationCommandOutput, type CreateDomainCommandInput, type CreateDomainCommandOutput, type CreateOutboundConnectionCommandInput, type CreateOutboundConnectionCommandOutput, type CreatePackageCommandInput, type CreatePackageCommandOutput, type CreateVpcEndpointCommandInput, type CreateVpcEndpointCommandOutput, type DeleteApplicationCommandInput, type DeleteApplicationCommandOutput, type DeleteDataSourceCommandInput, type DeleteDataSourceCommandOutput, type DeleteDirectQueryDataSourceCommandInput, type DeleteDirectQueryDataSourceCommandOutput, type DeleteDomainCommandInput, type DeleteDomainCommandOutput, type DeleteInboundConnectionCommandInput, type DeleteInboundConnectionCommandOutput, type DeleteOutboundConnectionCommandInput, type DeleteOutboundConnectionCommandOutput, type DeletePackageCommandInput, type DeletePackageCommandOutput, type DeleteVpcEndpointCommandInput, type DeleteVpcEndpointCommandOutput, type DescribeDomainCommandInput, type DescribeDomainCommandOutput, type DescribeDomainAutoTunesCommandInput, type DescribeDomainAutoTunesCommandOutput, type DescribeDomainChangeProgressCommandInput, type DescribeDomainChangeProgressCommandOutput, type DescribeDomainConfigCommandInput, type DescribeDomainConfigCommandOutput, type DescribeDomainHealthCommandInput, type DescribeDomainHealthCommandOutput, type DescribeDomainNodesCommandInput, type DescribeDomainNodesCommandOutput, type DescribeDomainsCommandInput, type DescribeDomainsCommandOutput, type DescribeDryRunProgressCommandInput, type DescribeDryRunProgressCommandOutput, type DescribeInboundConnectionsCommandInput, type DescribeInboundConnectionsCommandOutput, type DescribeInstanceTypeLimitsCommandInput, type DescribeInstanceTypeLimitsCommandOutput, type DescribeOutboundConnectionsCommandInput, type DescribeOutboundConnectionsCommandOutput, type DescribePackagesCommandInput, type DescribePackagesCommandOutput, type DescribeReservedInstanceOfferingsCommandInput, type DescribeReservedInstanceOfferingsCommandOutput, type DescribeReservedInstancesCommandInput, type DescribeReservedInstancesCommandOutput, type DescribeVpcEndpointsCommandInput, type DescribeVpcEndpointsCommandOutput, type DissociatePackageCommandInput, type DissociatePackageCommandOutput, type DissociatePackagesCommandInput, type DissociatePackagesCommandOutput, type GetApplicationCommandInput, type GetApplicationCommandOutput, type GetCompatibleVersionsCommandInput, type GetCompatibleVersionsCommandOutput, type GetDataSourceCommandInput, type GetDataSourceCommandOutput, type GetDirectQueryDataSourceCommandInput, type GetDirectQueryDataSourceCommandOutput, type GetDomainMaintenanceStatusCommandInput, type GetDomainMaintenanceStatusCommandOutput, type GetPackageVersionHistoryCommandInput, type GetPackageVersionHistoryCommandOutput, type GetUpgradeHistoryCommandInput, type GetUpgradeHistoryCommandOutput, type GetUpgradeStatusCommandInput, type GetUpgradeStatusCommandOutput, type ListApplicationsCommandInput, type ListApplicationsCommandOutput, type ListDataSourcesCommandInput, type ListDataSourcesCommandOutput, type ListDirectQueryDataSourcesCommandInput, type ListDirectQueryDataSourcesCommandOutput, type ListDomainMaintenancesCommandInput, type ListDomainMaintenancesCommandOutput, type ListDomainNamesCommandInput, type ListDomainNamesCommandOutput, type ListDomainsForPackageCommandInput, type ListDomainsForPackageCommandOutput, type ListInstanceTypeDetailsCommandInput, type ListInstanceTypeDetailsCommandOutput, type ListPackagesForDomainCommandInput, type ListPackagesForDomainCommandOutput, type ListScheduledActionsCommandInput, type ListScheduledActionsCommandOutput, type ListTagsCommandInput, type ListTagsCommandOutput, type ListVersionsCommandInput, type ListVersionsCommandOutput, type ListVpcEndpointAccessCommandInput, type ListVpcEndpointAccessCommandOutput, type ListVpcEndpointsCommandInput, type ListVpcEndpointsCommandOutput, type ListVpcEndpointsForDomainCommandInput, type ListVpcEndpointsForDomainCommandOutput, type PurchaseReservedInstanceOfferingCommandInput, type PurchaseReservedInstanceOfferingCommandOutput, type RejectInboundConnectionCommandInput, type RejectInboundConnectionCommandOutput, type RemoveTagsCommandInput, type RemoveTagsCommandOutput, type RevokeVpcEndpointAccessCommandInput, type RevokeVpcEndpointAccessCommandOutput, type StartDomainMaintenanceCommandInput, type StartDomainMaintenanceCommandOutput, type StartServiceSoftwareUpdateCommandInput, type StartServiceSoftwareUpdateCommandOutput, type UpdateApplicationCommandInput, type UpdateApplicationCommandOutput, type UpdateDataSourceCommandInput, type UpdateDataSourceCommandOutput, type UpdateDirectQueryDataSourceCommandInput, type UpdateDirectQueryDataSourceCommandOutput, type UpdateDomainConfigCommandInput, type UpdateDomainConfigCommandOutput, type UpdatePackageCommandInput, type UpdatePackageCommandOutput, type UpdatePackageScopeCommandInput, type UpdatePackageScopeCommandOutput, type UpdateScheduledActionCommandInput, type UpdateScheduledActionCommandOutput, type UpdateVpcEndpointCommandInput, type UpdateVpcEndpointCommandOutput, type UpgradeDomainCommandInput, type UpgradeDomainCommandOutput } from "@aws-sdk/client-opensearch";
|
|
5
5
|
import { Effect, Layer } from "effect";
|
|
6
6
|
import { AccessDeniedError, BaseError, ConflictError, DependencyFailureError, DisabledOperationError, InternalError, InvalidPaginationTokenError, InvalidTypeError, LimitExceededError, ResourceAlreadyExistsError, ResourceNotFoundError, SlotNotAvailableError, ValidationError, SdkError } from "./Errors";
|
|
7
7
|
import { OpenSearchClientInstance } from "./OpenSearchClientInstance";
|
|
8
|
+
import { OpenSearchClientInstanceConfig } from "./OpenSearchClientInstanceConfig";
|
|
8
9
|
/**
|
|
9
|
-
* @since 1.0.
|
|
10
|
+
* @since 1.0.0
|
|
10
11
|
*/
|
|
11
12
|
export interface HttpHandlerOptions {
|
|
12
13
|
/**
|
|
@@ -25,6 +26,10 @@ interface OpenSearchService$ {
|
|
|
25
26
|
* @see {@link AddDataSourceCommand}
|
|
26
27
|
*/
|
|
27
28
|
addDataSource(args: AddDataSourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<AddDataSourceCommandOutput, SdkError | BaseError | DependencyFailureError | DisabledOperationError | InternalError | LimitExceededError | ResourceNotFoundError | ValidationError>;
|
|
29
|
+
/**
|
|
30
|
+
* @see {@link AddDirectQueryDataSourceCommand}
|
|
31
|
+
*/
|
|
32
|
+
addDirectQueryDataSource(args: AddDirectQueryDataSourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<AddDirectQueryDataSourceCommandOutput, SdkError | BaseError | DisabledOperationError | InternalError | LimitExceededError | ResourceNotFoundError | ValidationError>;
|
|
28
33
|
/**
|
|
29
34
|
* @see {@link AddTagsCommand}
|
|
30
35
|
*/
|
|
@@ -33,6 +38,10 @@ interface OpenSearchService$ {
|
|
|
33
38
|
* @see {@link AssociatePackageCommand}
|
|
34
39
|
*/
|
|
35
40
|
associatePackage(args: AssociatePackageCommandInput, options?: HttpHandlerOptions): Effect.Effect<AssociatePackageCommandOutput, SdkError | AccessDeniedError | BaseError | ConflictError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
41
|
+
/**
|
|
42
|
+
* @see {@link AssociatePackagesCommand}
|
|
43
|
+
*/
|
|
44
|
+
associatePackages(args: AssociatePackagesCommandInput, options?: HttpHandlerOptions): Effect.Effect<AssociatePackagesCommandOutput, SdkError | BaseError | ConflictError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
36
45
|
/**
|
|
37
46
|
* @see {@link AuthorizeVpcEndpointAccessCommand}
|
|
38
47
|
*/
|
|
@@ -73,6 +82,10 @@ interface OpenSearchService$ {
|
|
|
73
82
|
* @see {@link DeleteDataSourceCommand}
|
|
74
83
|
*/
|
|
75
84
|
deleteDataSource(args: DeleteDataSourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteDataSourceCommandOutput, SdkError | BaseError | DependencyFailureError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
85
|
+
/**
|
|
86
|
+
* @see {@link DeleteDirectQueryDataSourceCommand}
|
|
87
|
+
*/
|
|
88
|
+
deleteDirectQueryDataSource(args: DeleteDirectQueryDataSourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteDirectQueryDataSourceCommandOutput, SdkError | BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
76
89
|
/**
|
|
77
90
|
* @see {@link DeleteDomainCommand}
|
|
78
91
|
*/
|
|
@@ -157,6 +170,10 @@ interface OpenSearchService$ {
|
|
|
157
170
|
* @see {@link DissociatePackageCommand}
|
|
158
171
|
*/
|
|
159
172
|
dissociatePackage(args: DissociatePackageCommandInput, options?: HttpHandlerOptions): Effect.Effect<DissociatePackageCommandOutput, SdkError | AccessDeniedError | BaseError | ConflictError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
173
|
+
/**
|
|
174
|
+
* @see {@link DissociatePackagesCommand}
|
|
175
|
+
*/
|
|
176
|
+
dissociatePackages(args: DissociatePackagesCommandInput, options?: HttpHandlerOptions): Effect.Effect<DissociatePackagesCommandOutput, SdkError | BaseError | ConflictError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
160
177
|
/**
|
|
161
178
|
* @see {@link GetApplicationCommand}
|
|
162
179
|
*/
|
|
@@ -169,6 +186,10 @@ interface OpenSearchService$ {
|
|
|
169
186
|
* @see {@link GetDataSourceCommand}
|
|
170
187
|
*/
|
|
171
188
|
getDataSource(args: GetDataSourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetDataSourceCommandOutput, SdkError | BaseError | DependencyFailureError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
189
|
+
/**
|
|
190
|
+
* @see {@link GetDirectQueryDataSourceCommand}
|
|
191
|
+
*/
|
|
192
|
+
getDirectQueryDataSource(args: GetDirectQueryDataSourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetDirectQueryDataSourceCommandOutput, SdkError | BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
172
193
|
/**
|
|
173
194
|
* @see {@link GetDomainMaintenanceStatusCommand}
|
|
174
195
|
*/
|
|
@@ -193,6 +214,10 @@ interface OpenSearchService$ {
|
|
|
193
214
|
* @see {@link ListDataSourcesCommand}
|
|
194
215
|
*/
|
|
195
216
|
listDataSources(args: ListDataSourcesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListDataSourcesCommandOutput, SdkError | BaseError | DependencyFailureError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
217
|
+
/**
|
|
218
|
+
* @see {@link ListDirectQueryDataSourcesCommand}
|
|
219
|
+
*/
|
|
220
|
+
listDirectQueryDataSources(args: ListDirectQueryDataSourcesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListDirectQueryDataSourcesCommandOutput, SdkError | BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
196
221
|
/**
|
|
197
222
|
* @see {@link ListDomainMaintenancesCommand}
|
|
198
223
|
*/
|
|
@@ -269,6 +294,10 @@ interface OpenSearchService$ {
|
|
|
269
294
|
* @see {@link UpdateDataSourceCommand}
|
|
270
295
|
*/
|
|
271
296
|
updateDataSource(args: UpdateDataSourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateDataSourceCommandOutput, SdkError | BaseError | DependencyFailureError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
297
|
+
/**
|
|
298
|
+
* @see {@link UpdateDirectQueryDataSourceCommand}
|
|
299
|
+
*/
|
|
300
|
+
updateDirectQueryDataSource(args: UpdateDirectQueryDataSourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateDirectQueryDataSourceCommandOutput, SdkError | BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
272
301
|
/**
|
|
273
302
|
* @see {@link UpdateDomainConfigCommand}
|
|
274
303
|
*/
|
|
@@ -277,6 +306,10 @@ interface OpenSearchService$ {
|
|
|
277
306
|
* @see {@link UpdatePackageCommand}
|
|
278
307
|
*/
|
|
279
308
|
updatePackage(args: UpdatePackageCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdatePackageCommandOutput, SdkError | AccessDeniedError | BaseError | InternalError | LimitExceededError | ResourceNotFoundError | ValidationError>;
|
|
309
|
+
/**
|
|
310
|
+
* @see {@link UpdatePackageScopeCommand}
|
|
311
|
+
*/
|
|
312
|
+
updatePackageScope(args: UpdatePackageScopeCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdatePackageScopeCommandOutput, SdkError | BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError>;
|
|
280
313
|
/**
|
|
281
314
|
* @see {@link UpdateScheduledActionCommand}
|
|
282
315
|
*/
|
|
@@ -290,12 +323,19 @@ interface OpenSearchService$ {
|
|
|
290
323
|
*/
|
|
291
324
|
upgradeDomain(args: UpgradeDomainCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpgradeDomainCommandOutput, SdkError | BaseError | DisabledOperationError | InternalError | ResourceAlreadyExistsError | ResourceNotFoundError | ValidationError>;
|
|
292
325
|
}
|
|
326
|
+
/**
|
|
327
|
+
* @since 1.0.0
|
|
328
|
+
* @category constructors
|
|
329
|
+
*/
|
|
330
|
+
export declare const makeOpenSearchService: Effect.Effect<OpenSearchService$, never, OpenSearchClientInstance>;
|
|
293
331
|
declare const OpenSearchService_base: import("effect/Context").TagClass<OpenSearchService, "@effect-aws/client-opensearch/OpenSearchService", OpenSearchService$> & {
|
|
294
332
|
readonly _: Effect.Effect<OpenSearchService$["_"], never, OpenSearchService>;
|
|
295
333
|
acceptInboundConnection: (args: AcceptInboundConnectionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<AcceptInboundConnectionCommandOutput, DisabledOperationError | LimitExceededError | ResourceNotFoundError | SdkError, OpenSearchService>;
|
|
296
334
|
addDataSource: (args: AddDataSourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<AddDataSourceCommandOutput, BaseError | DependencyFailureError | DisabledOperationError | InternalError | LimitExceededError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
335
|
+
addDirectQueryDataSource: (args: AddDirectQueryDataSourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<AddDirectQueryDataSourceCommandOutput, BaseError | DisabledOperationError | InternalError | LimitExceededError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
297
336
|
addTags: (args: AddTagsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<AddTagsCommandOutput, BaseError | InternalError | LimitExceededError | ValidationError | SdkError, OpenSearchService>;
|
|
298
337
|
associatePackage: (args: AssociatePackageCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<AssociatePackageCommandOutput, AccessDeniedError | BaseError | ConflictError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
338
|
+
associatePackages: (args: AssociatePackagesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<AssociatePackagesCommandOutput, BaseError | ConflictError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
299
339
|
authorizeVpcEndpointAccess: (args: AuthorizeVpcEndpointAccessCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<AuthorizeVpcEndpointAccessCommandOutput, BaseError | DisabledOperationError | InternalError | LimitExceededError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
300
340
|
cancelDomainConfigChange: (args: CancelDomainConfigChangeCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CancelDomainConfigChangeCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
301
341
|
cancelServiceSoftwareUpdate: (args: CancelServiceSoftwareUpdateCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CancelServiceSoftwareUpdateCommandOutput, BaseError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
@@ -306,6 +346,7 @@ declare const OpenSearchService_base: import("effect/Context").TagClass<OpenSear
|
|
|
306
346
|
createVpcEndpoint: (args: CreateVpcEndpointCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateVpcEndpointCommandOutput, BaseError | ConflictError | DisabledOperationError | InternalError | LimitExceededError | ValidationError | SdkError, OpenSearchService>;
|
|
307
347
|
deleteApplication: (args: DeleteApplicationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteApplicationCommandOutput, AccessDeniedError | BaseError | ConflictError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
308
348
|
deleteDataSource: (args: DeleteDataSourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteDataSourceCommandOutput, BaseError | DependencyFailureError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
349
|
+
deleteDirectQueryDataSource: (args: DeleteDirectQueryDataSourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteDirectQueryDataSourceCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
309
350
|
deleteDomain: (args: DeleteDomainCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteDomainCommandOutput, BaseError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
310
351
|
deleteInboundConnection: (args: DeleteInboundConnectionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteInboundConnectionCommandOutput, DisabledOperationError | ResourceNotFoundError | SdkError, OpenSearchService>;
|
|
311
352
|
deleteOutboundConnection: (args: DeleteOutboundConnectionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteOutboundConnectionCommandOutput, DisabledOperationError | ResourceNotFoundError | SdkError, OpenSearchService>;
|
|
@@ -327,15 +368,18 @@ declare const OpenSearchService_base: import("effect/Context").TagClass<OpenSear
|
|
|
327
368
|
describeReservedInstances: (args: DescribeReservedInstancesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeReservedInstancesCommandOutput, DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
328
369
|
describeVpcEndpoints: (args: DescribeVpcEndpointsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeVpcEndpointsCommandOutput, BaseError | DisabledOperationError | InternalError | ValidationError | SdkError, OpenSearchService>;
|
|
329
370
|
dissociatePackage: (args: DissociatePackageCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DissociatePackageCommandOutput, AccessDeniedError | BaseError | ConflictError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
371
|
+
dissociatePackages: (args: DissociatePackagesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DissociatePackagesCommandOutput, BaseError | ConflictError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
330
372
|
getApplication: (args: GetApplicationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetApplicationCommandOutput, AccessDeniedError | BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
331
373
|
getCompatibleVersions: (args: GetCompatibleVersionsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetCompatibleVersionsCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
332
374
|
getDataSource: (args: GetDataSourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetDataSourceCommandOutput, BaseError | DependencyFailureError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
375
|
+
getDirectQueryDataSource: (args: GetDirectQueryDataSourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetDirectQueryDataSourceCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
333
376
|
getDomainMaintenanceStatus: (args: GetDomainMaintenanceStatusCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetDomainMaintenanceStatusCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
334
377
|
getPackageVersionHistory: (args: GetPackageVersionHistoryCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetPackageVersionHistoryCommandOutput, AccessDeniedError | BaseError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
335
378
|
getUpgradeHistory: (args: GetUpgradeHistoryCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetUpgradeHistoryCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
336
379
|
getUpgradeStatus: (args: GetUpgradeStatusCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetUpgradeStatusCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
337
380
|
listApplications: (args: ListApplicationsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListApplicationsCommandOutput, AccessDeniedError | BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
338
381
|
listDataSources: (args: ListDataSourcesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListDataSourcesCommandOutput, BaseError | DependencyFailureError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
382
|
+
listDirectQueryDataSources: (args: ListDirectQueryDataSourcesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListDirectQueryDataSourcesCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
339
383
|
listDomainMaintenances: (args: ListDomainMaintenancesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListDomainMaintenancesCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
340
384
|
listDomainNames: (args: ListDomainNamesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListDomainNamesCommandOutput, BaseError | ValidationError | SdkError, OpenSearchService>;
|
|
341
385
|
listDomainsForPackage: (args: ListDomainsForPackageCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListDomainsForPackageCommandOutput, AccessDeniedError | BaseError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
@@ -355,8 +399,10 @@ declare const OpenSearchService_base: import("effect/Context").TagClass<OpenSear
|
|
|
355
399
|
startServiceSoftwareUpdate: (args: StartServiceSoftwareUpdateCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StartServiceSoftwareUpdateCommandOutput, BaseError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
356
400
|
updateApplication: (args: UpdateApplicationCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateApplicationCommandOutput, AccessDeniedError | BaseError | ConflictError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
357
401
|
updateDataSource: (args: UpdateDataSourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateDataSourceCommandOutput, BaseError | DependencyFailureError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
402
|
+
updateDirectQueryDataSource: (args: UpdateDirectQueryDataSourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateDirectQueryDataSourceCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
358
403
|
updateDomainConfig: (args: UpdateDomainConfigCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateDomainConfigCommandOutput, BaseError | InternalError | InvalidTypeError | LimitExceededError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
359
404
|
updatePackage: (args: UpdatePackageCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdatePackageCommandOutput, AccessDeniedError | BaseError | InternalError | LimitExceededError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
405
|
+
updatePackageScope: (args: UpdatePackageScopeCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdatePackageScopeCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
360
406
|
updateScheduledAction: (args: UpdateScheduledActionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateScheduledActionCommandOutput, BaseError | ConflictError | InternalError | LimitExceededError | ResourceNotFoundError | SlotNotAvailableError | ValidationError | SdkError, OpenSearchService>;
|
|
361
407
|
updateVpcEndpoint: (args: UpdateVpcEndpointCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateVpcEndpointCommandOutput, BaseError | ConflictError | DisabledOperationError | InternalError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
362
408
|
upgradeDomain: (args: UpgradeDomainCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpgradeDomainCommandOutput, BaseError | DisabledOperationError | InternalError | ResourceAlreadyExistsError | ResourceNotFoundError | ValidationError | SdkError, OpenSearchService>;
|
|
@@ -368,25 +414,32 @@ declare const OpenSearchService_base: import("effect/Context").TagClass<OpenSear
|
|
|
368
414
|
* @category models
|
|
369
415
|
*/
|
|
370
416
|
export declare class OpenSearchService extends OpenSearchService_base {
|
|
417
|
+
static readonly defaultLayer: Layer.Layer<OpenSearchService, never, never>;
|
|
418
|
+
static readonly layer: (config: OpenSearchClientConfig) => Layer.Layer<OpenSearchService, never, never>;
|
|
419
|
+
static readonly baseLayer: (evaluate: (defaultConfig: OpenSearchClientConfig) => OpenSearchClient) => Layer.Layer<OpenSearchService, never, never>;
|
|
371
420
|
}
|
|
372
421
|
/**
|
|
373
422
|
* @since 1.0.0
|
|
374
|
-
* @category
|
|
423
|
+
* @category models
|
|
424
|
+
* @alias OpenSearchService
|
|
375
425
|
*/
|
|
376
|
-
export declare const
|
|
426
|
+
export declare const OpenSearch: typeof OpenSearchService;
|
|
377
427
|
/**
|
|
378
428
|
* @since 1.0.0
|
|
379
429
|
* @category layers
|
|
430
|
+
* @deprecated use OpenSearch.baseLayer instead
|
|
380
431
|
*/
|
|
381
432
|
export declare const BaseOpenSearchServiceLayer: Layer.Layer<OpenSearchService, never, OpenSearchClientInstance>;
|
|
382
433
|
/**
|
|
383
434
|
* @since 1.0.0
|
|
384
435
|
* @category layers
|
|
436
|
+
* @deprecated use OpenSearch.layer instead
|
|
385
437
|
*/
|
|
386
|
-
export declare const OpenSearchServiceLayer: Layer.Layer<OpenSearchService, never,
|
|
438
|
+
export declare const OpenSearchServiceLayer: Layer.Layer<OpenSearchService, never, OpenSearchClientInstanceConfig>;
|
|
387
439
|
/**
|
|
388
440
|
* @since 1.0.0
|
|
389
441
|
* @category layers
|
|
442
|
+
* @deprecated use OpenSearch.defaultLayer instead
|
|
390
443
|
*/
|
|
391
444
|
export declare const DefaultOpenSearchServiceLayer: Layer.Layer<OpenSearchService, never, never>;
|
|
392
445
|
export {};
|
package/lib/OpenSearchService.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DefaultOpenSearchServiceLayer = exports.OpenSearchServiceLayer = exports.BaseOpenSearchServiceLayer = exports.
|
|
4
|
+
exports.DefaultOpenSearchServiceLayer = exports.OpenSearchServiceLayer = exports.BaseOpenSearchServiceLayer = exports.OpenSearch = exports.OpenSearchService = exports.makeOpenSearchService = void 0;
|
|
4
5
|
/**
|
|
5
6
|
* @since 1.0.0
|
|
6
7
|
*/
|
|
@@ -12,8 +13,10 @@ const OpenSearchClientInstanceConfig_1 = require("./OpenSearchClientInstanceConf
|
|
|
12
13
|
const commands = {
|
|
13
14
|
AcceptInboundConnectionCommand: client_opensearch_1.AcceptInboundConnectionCommand,
|
|
14
15
|
AddDataSourceCommand: client_opensearch_1.AddDataSourceCommand,
|
|
16
|
+
AddDirectQueryDataSourceCommand: client_opensearch_1.AddDirectQueryDataSourceCommand,
|
|
15
17
|
AddTagsCommand: client_opensearch_1.AddTagsCommand,
|
|
16
18
|
AssociatePackageCommand: client_opensearch_1.AssociatePackageCommand,
|
|
19
|
+
AssociatePackagesCommand: client_opensearch_1.AssociatePackagesCommand,
|
|
17
20
|
AuthorizeVpcEndpointAccessCommand: client_opensearch_1.AuthorizeVpcEndpointAccessCommand,
|
|
18
21
|
CancelDomainConfigChangeCommand: client_opensearch_1.CancelDomainConfigChangeCommand,
|
|
19
22
|
CancelServiceSoftwareUpdateCommand: client_opensearch_1.CancelServiceSoftwareUpdateCommand,
|
|
@@ -24,6 +27,7 @@ const commands = {
|
|
|
24
27
|
CreateVpcEndpointCommand: client_opensearch_1.CreateVpcEndpointCommand,
|
|
25
28
|
DeleteApplicationCommand: client_opensearch_1.DeleteApplicationCommand,
|
|
26
29
|
DeleteDataSourceCommand: client_opensearch_1.DeleteDataSourceCommand,
|
|
30
|
+
DeleteDirectQueryDataSourceCommand: client_opensearch_1.DeleteDirectQueryDataSourceCommand,
|
|
27
31
|
DeleteDomainCommand: client_opensearch_1.DeleteDomainCommand,
|
|
28
32
|
DeleteInboundConnectionCommand: client_opensearch_1.DeleteInboundConnectionCommand,
|
|
29
33
|
DeleteOutboundConnectionCommand: client_opensearch_1.DeleteOutboundConnectionCommand,
|
|
@@ -45,15 +49,18 @@ const commands = {
|
|
|
45
49
|
DescribeReservedInstancesCommand: client_opensearch_1.DescribeReservedInstancesCommand,
|
|
46
50
|
DescribeVpcEndpointsCommand: client_opensearch_1.DescribeVpcEndpointsCommand,
|
|
47
51
|
DissociatePackageCommand: client_opensearch_1.DissociatePackageCommand,
|
|
52
|
+
DissociatePackagesCommand: client_opensearch_1.DissociatePackagesCommand,
|
|
48
53
|
GetApplicationCommand: client_opensearch_1.GetApplicationCommand,
|
|
49
54
|
GetCompatibleVersionsCommand: client_opensearch_1.GetCompatibleVersionsCommand,
|
|
50
55
|
GetDataSourceCommand: client_opensearch_1.GetDataSourceCommand,
|
|
56
|
+
GetDirectQueryDataSourceCommand: client_opensearch_1.GetDirectQueryDataSourceCommand,
|
|
51
57
|
GetDomainMaintenanceStatusCommand: client_opensearch_1.GetDomainMaintenanceStatusCommand,
|
|
52
58
|
GetPackageVersionHistoryCommand: client_opensearch_1.GetPackageVersionHistoryCommand,
|
|
53
59
|
GetUpgradeHistoryCommand: client_opensearch_1.GetUpgradeHistoryCommand,
|
|
54
60
|
GetUpgradeStatusCommand: client_opensearch_1.GetUpgradeStatusCommand,
|
|
55
61
|
ListApplicationsCommand: client_opensearch_1.ListApplicationsCommand,
|
|
56
62
|
ListDataSourcesCommand: client_opensearch_1.ListDataSourcesCommand,
|
|
63
|
+
ListDirectQueryDataSourcesCommand: client_opensearch_1.ListDirectQueryDataSourcesCommand,
|
|
57
64
|
ListDomainMaintenancesCommand: client_opensearch_1.ListDomainMaintenancesCommand,
|
|
58
65
|
ListDomainNamesCommand: client_opensearch_1.ListDomainNamesCommand,
|
|
59
66
|
ListDomainsForPackageCommand: client_opensearch_1.ListDomainsForPackageCommand,
|
|
@@ -73,19 +80,14 @@ const commands = {
|
|
|
73
80
|
StartServiceSoftwareUpdateCommand: client_opensearch_1.StartServiceSoftwareUpdateCommand,
|
|
74
81
|
UpdateApplicationCommand: client_opensearch_1.UpdateApplicationCommand,
|
|
75
82
|
UpdateDataSourceCommand: client_opensearch_1.UpdateDataSourceCommand,
|
|
83
|
+
UpdateDirectQueryDataSourceCommand: client_opensearch_1.UpdateDirectQueryDataSourceCommand,
|
|
76
84
|
UpdateDomainConfigCommand: client_opensearch_1.UpdateDomainConfigCommand,
|
|
77
85
|
UpdatePackageCommand: client_opensearch_1.UpdatePackageCommand,
|
|
86
|
+
UpdatePackageScopeCommand: client_opensearch_1.UpdatePackageScopeCommand,
|
|
78
87
|
UpdateScheduledActionCommand: client_opensearch_1.UpdateScheduledActionCommand,
|
|
79
88
|
UpdateVpcEndpointCommand: client_opensearch_1.UpdateVpcEndpointCommand,
|
|
80
89
|
UpgradeDomainCommand: client_opensearch_1.UpgradeDomainCommand,
|
|
81
90
|
};
|
|
82
|
-
/**
|
|
83
|
-
* @since 1.0.0
|
|
84
|
-
* @category models
|
|
85
|
-
*/
|
|
86
|
-
class OpenSearchService extends effect_1.Effect.Tag("@effect-aws/client-opensearch/OpenSearchService")() {
|
|
87
|
-
}
|
|
88
|
-
exports.OpenSearchService = OpenSearchService;
|
|
89
91
|
/**
|
|
90
92
|
* @since 1.0.0
|
|
91
93
|
* @category constructors
|
|
@@ -124,19 +126,39 @@ exports.makeOpenSearchService = effect_1.Effect.gen(function* (_) {
|
|
|
124
126
|
return { ...acc, [methodName]: methodImpl };
|
|
125
127
|
}, {});
|
|
126
128
|
});
|
|
129
|
+
/**
|
|
130
|
+
* @since 1.0.0
|
|
131
|
+
* @category models
|
|
132
|
+
*/
|
|
133
|
+
class OpenSearchService extends effect_1.Effect.Tag("@effect-aws/client-opensearch/OpenSearchService")() {
|
|
134
|
+
}
|
|
135
|
+
exports.OpenSearchService = OpenSearchService;
|
|
136
|
+
_a = OpenSearchService;
|
|
137
|
+
OpenSearchService.defaultLayer = effect_1.Layer.effect(_a, exports.makeOpenSearchService).pipe(effect_1.Layer.provide(OpenSearchClientInstance_1.OpenSearchClientInstanceLayer), effect_1.Layer.provide(OpenSearchClientInstanceConfig_1.DefaultOpenSearchClientConfigLayer));
|
|
138
|
+
OpenSearchService.layer = (config) => effect_1.Layer.effect(_a, exports.makeOpenSearchService).pipe(effect_1.Layer.provide(OpenSearchClientInstance_1.OpenSearchClientInstanceLayer), effect_1.Layer.provide(effect_1.Layer.effect(OpenSearchClientInstanceConfig_1.OpenSearchClientInstanceConfig, OpenSearchClientInstanceConfig_1.makeDefaultOpenSearchClientInstanceConfig.pipe(effect_1.Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
|
|
139
|
+
OpenSearchService.baseLayer = (evaluate) => effect_1.Layer.effect(_a, exports.makeOpenSearchService).pipe(effect_1.Layer.provide(effect_1.Layer.effect(OpenSearchClientInstance_1.OpenSearchClientInstance, effect_1.Effect.map(OpenSearchClientInstanceConfig_1.makeDefaultOpenSearchClientInstanceConfig, evaluate))));
|
|
140
|
+
/**
|
|
141
|
+
* @since 1.0.0
|
|
142
|
+
* @category models
|
|
143
|
+
* @alias OpenSearchService
|
|
144
|
+
*/
|
|
145
|
+
exports.OpenSearch = OpenSearchService;
|
|
127
146
|
/**
|
|
128
147
|
* @since 1.0.0
|
|
129
148
|
* @category layers
|
|
149
|
+
* @deprecated use OpenSearch.baseLayer instead
|
|
130
150
|
*/
|
|
131
151
|
exports.BaseOpenSearchServiceLayer = effect_1.Layer.effect(OpenSearchService, exports.makeOpenSearchService);
|
|
132
152
|
/**
|
|
133
153
|
* @since 1.0.0
|
|
134
154
|
* @category layers
|
|
155
|
+
* @deprecated use OpenSearch.layer instead
|
|
135
156
|
*/
|
|
136
157
|
exports.OpenSearchServiceLayer = exports.BaseOpenSearchServiceLayer.pipe(effect_1.Layer.provide(OpenSearchClientInstance_1.OpenSearchClientInstanceLayer));
|
|
137
158
|
/**
|
|
138
159
|
* @since 1.0.0
|
|
139
160
|
* @category layers
|
|
161
|
+
* @deprecated use OpenSearch.defaultLayer instead
|
|
140
162
|
*/
|
|
141
|
-
exports.DefaultOpenSearchServiceLayer =
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlblNlYXJjaFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT3BlblNlYXJjaFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxrRUE4TW9DO0FBQ3BDLG1DQUFxRDtBQUNyRCxxQ0FpQmtCO0FBQ2xCLHlFQUdvQztBQUNwQyxxRkFBc0Y7QUFhdEYsTUFBTSxRQUFRLEdBQUc7SUFDZiw4QkFBOEIsRUFBOUIsa0RBQThCO0lBQzlCLG9CQUFvQixFQUFwQix3Q0FBb0I7SUFDcEIsY0FBYyxFQUFkLGtDQUFjO0lBQ2QsdUJBQXVCLEVBQXZCLDJDQUF1QjtJQUN2QixpQ0FBaUMsRUFBakMscURBQWlDO0lBQ2pDLCtCQUErQixFQUEvQixtREFBK0I7SUFDL0Isa0NBQWtDLEVBQWxDLHNEQUFrQztJQUNsQyx3QkFBd0IsRUFBeEIsNENBQXdCO0lBQ3hCLG1CQUFtQixFQUFuQix1Q0FBbUI7SUFDbkIsK0JBQStCLEVBQS9CLG1EQUErQjtJQUMvQixvQkFBb0IsRUFBcEIsd0NBQW9CO0lBQ3BCLHdCQUF3QixFQUF4Qiw0Q0FBd0I7SUFDeEIsd0JBQXdCLEVBQXhCLDRDQUF3QjtJQUN4Qix1QkFBdUIsRUFBdkIsMkNBQXVCO0lBQ3ZCLG1CQUFtQixFQUFuQix1Q0FBbUI7SUFDbkIsOEJBQThCLEVBQTlCLGtEQUE4QjtJQUM5QiwrQkFBK0IsRUFBL0IsbURBQStCO0lBQy9CLG9CQUFvQixFQUFwQix3Q0FBb0I7SUFDcEIsd0JBQXdCLEVBQXhCLDRDQUF3QjtJQUN4QixxQkFBcUIsRUFBckIseUNBQXFCO0lBQ3JCLDhCQUE4QixFQUE5QixrREFBOEI7SUFDOUIsbUNBQW1DLEVBQW5DLHVEQUFtQztJQUNuQywyQkFBMkIsRUFBM0IsK0NBQTJCO0lBQzNCLDJCQUEyQixFQUEzQiwrQ0FBMkI7SUFDM0IsMEJBQTBCLEVBQTFCLDhDQUEwQjtJQUMxQixzQkFBc0IsRUFBdEIsMENBQXNCO0lBQ3RCLDZCQUE2QixFQUE3QixpREFBNkI7SUFDN0IsaUNBQWlDLEVBQWpDLHFEQUFpQztJQUNqQyxpQ0FBaUMsRUFBakMscURBQWlDO0lBQ2pDLGtDQUFrQyxFQUFsQyxzREFBa0M7SUFDbEMsdUJBQXVCLEVBQXZCLDJDQUF1QjtJQUN2Qix3Q0FBd0MsRUFBeEMsNERBQXdDO0lBQ3hDLGdDQUFnQyxFQUFoQyxvREFBZ0M7SUFDaEMsMkJBQTJCLEVBQTNCLCtDQUEyQjtJQUMzQix3QkFBd0IsRUFBeEIsNENBQXdCO0lBQ3hCLHFCQUFxQixFQUFyQix5Q0FBcUI7SUFDckIsNEJBQTRCLEVBQTVCLGdEQUE0QjtJQUM1QixvQkFBb0IsRUFBcEIsd0NBQW9CO0lBQ3BCLGlDQUFpQyxFQUFqQyxxREFBaUM7SUFDakMsK0JBQStCLEVBQS9CLG1EQUErQjtJQUMvQix3QkFBd0IsRUFBeEIsNENBQXdCO0lBQ3hCLHVCQUF1QixFQUF2QiwyQ0FBdUI7SUFDdkIsdUJBQXVCLEVBQXZCLDJDQUF1QjtJQUN2QixzQkFBc0IsRUFBdEIsMENBQXNCO0lBQ3RCLDZCQUE2QixFQUE3QixpREFBNkI7SUFDN0Isc0JBQXNCLEVBQXRCLDBDQUFzQjtJQUN0Qiw0QkFBNEIsRUFBNUIsZ0RBQTRCO0lBQzVCLDhCQUE4QixFQUE5QixrREFBOEI7SUFDOUIsNEJBQTRCLEVBQTVCLGdEQUE0QjtJQUM1QiwyQkFBMkIsRUFBM0IsK0NBQTJCO0lBQzNCLGVBQWUsRUFBZixtQ0FBZTtJQUNmLG1CQUFtQixFQUFuQix1Q0FBbUI7SUFDbkIsNEJBQTRCLEVBQTVCLGdEQUE0QjtJQUM1Qix1QkFBdUIsRUFBdkIsMkNBQXVCO0lBQ3ZCLGdDQUFnQyxFQUFoQyxvREFBZ0M7SUFDaEMsdUNBQXVDLEVBQXZDLDJEQUF1QztJQUN2Qyw4QkFBOEIsRUFBOUIsa0RBQThCO0lBQzlCLGlCQUFpQixFQUFqQixxQ0FBaUI7SUFDakIsOEJBQThCLEVBQTlCLGtEQUE4QjtJQUM5Qiw2QkFBNkIsRUFBN0IsaURBQTZCO0lBQzdCLGlDQUFpQyxFQUFqQyxxREFBaUM7SUFDakMsd0JBQXdCLEVBQXhCLDRDQUF3QjtJQUN4Qix1QkFBdUIsRUFBdkIsMkNBQXVCO0lBQ3ZCLHlCQUF5QixFQUF6Qiw2Q0FBeUI7SUFDekIsb0JBQW9CLEVBQXBCLHdDQUFvQjtJQUNwQiw0QkFBNEIsRUFBNUIsZ0RBQTRCO0lBQzVCLHdCQUF3QixFQUF4Qiw0Q0FBd0I7SUFDeEIsb0JBQW9CLEVBQXBCLHdDQUFvQjtDQUNyQixDQUFDO0FBZ2lDRjs7O0dBR0c7QUFDSCxNQUFhLGlCQUFrQixTQUFRLGVBQU0sQ0FBQyxHQUFHLENBQy9DLGlEQUFpRCxDQUNsRCxFQUF5QztDQUFHO0FBRjdDLDhDQUU2QztBQUU3Qzs7O0dBR0c7QUFDVSxRQUFBLHFCQUFxQixHQUFHLGVBQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUMxRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsbURBQXdCLENBQUMsQ0FBQztJQUVsRCxPQUFPLGVBQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtRQUMxRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFRLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFTLEVBQUUsT0FBNEIsRUFBRSxFQUFFLENBQzdELGVBQU0sQ0FBQyxVQUFVLENBQUM7WUFDaEIsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakMsR0FBRyxDQUFDLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQztnQkFDbEIsV0FBVzthQUNaLENBQUM7WUFDSixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUNFLENBQUMsWUFBWSw4Q0FBMEI7b0JBQ3ZDLHlCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ2pDLENBQUM7b0JBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxhQUFJLENBQUMsTUFBTSxDQUVsQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRVYsT0FBTyxnQkFBZ0IsQ0FBQzt3QkFDdEIsR0FBRyxDQUFDO3dCQUNKLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDO29CQUN2QixPQUFPLElBQUEsaUJBQVEsRUFBQzt3QkFDZCxHQUFHLENBQUM7d0JBQ0osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNMLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQXVCLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDVSxRQUFBLDBCQUEwQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQ3BELGlCQUFpQixFQUNqQiw2QkFBcUIsQ0FDdEIsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsa0NBQTBCLENBQUMsSUFBSSxDQUNuRSxjQUFLLENBQUMsT0FBTyxDQUFDLHdEQUE2QixDQUFDLENBQzdDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDZCQUE2QixHQUFHLDhCQUFzQixDQUFDLElBQUksQ0FDdEUsY0FBSyxDQUFDLE9BQU8sQ0FBQyxtRUFBa0MsQ0FBQyxDQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgT3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24sXG4gIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEFkZERhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIEFkZERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEFkZFRhZ3NDb21tYW5kLFxuICB0eXBlIEFkZFRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkVGFnc0NvbW1hbmRPdXRwdXQsXG4gIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmQsXG4gIHR5cGUgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZElucHV0LFxuICB0eXBlIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmRPdXRwdXQsXG4gIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIHR5cGUgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZURvbWFpbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIENyZWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZURvbWFpbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRG9tYWluc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUGFja2FnZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUGFja2FnZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIEdldEFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBHZXRBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIEdldERhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIEdldERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZCxcbiAgdHlwZSBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmQsXG4gIHR5cGUgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZCxcbiAgdHlwZSBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kLFxuICB0eXBlIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kLFxuICB0eXBlIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REYXRhU291cmNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdERhdGFTb3VyY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REYXRhU291cmNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kLFxuICB0eXBlIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REb21haW5OYW1lc0NvbW1hbmQsXG4gIHR5cGUgTGlzdERvbWFpbk5hbWVzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REb21haW5OYW1lc0NvbW1hbmRPdXRwdXQsXG4gIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmQsXG4gIHR5cGUgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmQsXG4gIHR5cGUgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VGFnc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWcGNFbmRwb2ludHNDb21tYW5kLFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kLFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmRPdXRwdXQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmRPdXRwdXQsXG4gIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVRhZ3NDb21tYW5kLFxuICB0eXBlIFJlbW92ZVRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmVtb3ZlVGFnc0NvbW1hbmRPdXRwdXQsXG4gIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kLFxuICB0eXBlIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZCxcbiAgdHlwZSBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgdHlwZSBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gIFVwZ3JhZGVEb21haW5Db21tYW5kLFxuICB0eXBlIFVwZ3JhZGVEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBncmFkZURvbWFpbkNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtb3BlbnNlYXJjaFwiO1xuaW1wb3J0IHsgRGF0YSwgRWZmZWN0LCBMYXllciwgUmVjb3JkIH0gZnJvbSBcImVmZmVjdFwiO1xuaW1wb3J0IHtcbiAgQWxsU2VydmljZUVycm9ycyxcbiAgQWNjZXNzRGVuaWVkRXJyb3IsXG4gIEJhc2VFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgRGVwZW5kZW5jeUZhaWx1cmVFcnJvcixcbiAgRGlzYWJsZWRPcGVyYXRpb25FcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yLFxuICBJbnZhbGlkVHlwZUVycm9yLFxuICBMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yLFxuICBSZXNvdXJjZU5vdEZvdW5kRXJyb3IsXG4gIFNsb3ROb3RBdmFpbGFibGVFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBTZGtFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7XG4gIE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZSxcbiAgT3BlblNlYXJjaENsaWVudEluc3RhbmNlTGF5ZXIsXG59IGZyb20gXCIuL09wZW5TZWFyY2hDbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdE9wZW5TZWFyY2hDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL09wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgQWRkRGF0YVNvdXJjZUNvbW1hbmQsXG4gIEFkZFRhZ3NDb21tYW5kLFxuICBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kLFxuICBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIENyZWF0ZURvbWFpbkNvbW1hbmQsXG4gIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIENyZWF0ZVBhY2thZ2VDb21tYW5kLFxuICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmQsXG4gIERlbGV0ZURvbWFpbkNvbW1hbmQsXG4gIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgRGVsZXRlUGFja2FnZUNvbW1hbmQsXG4gIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Db21tYW5kLFxuICBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluc0NvbW1hbmQsXG4gIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kLFxuICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZCxcbiAgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kLFxuICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmQsXG4gIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgR2V0QXBwbGljYXRpb25Db21tYW5kLFxuICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kLFxuICBHZXREYXRhU291cmNlQ29tbWFuZCxcbiAgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kLFxuICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kLFxuICBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmQsXG4gIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kLFxuICBMaXN0QXBwbGljYXRpb25zQ29tbWFuZCxcbiAgTGlzdERhdGFTb3VyY2VzQ29tbWFuZCxcbiAgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmQsXG4gIExpc3REb21haW5OYW1lc0NvbW1hbmQsXG4gIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmQsXG4gIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZCxcbiAgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZCxcbiAgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kLFxuICBMaXN0VGFnc0NvbW1hbmQsXG4gIExpc3RWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIExpc3RWcGNFbmRwb2ludHNDb21tYW5kLFxuICBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZCxcbiAgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kLFxuICBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIFJlbW92ZVRhZ3NDb21tYW5kLFxuICBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kLFxuICBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIFVwZGF0ZVBhY2thZ2VDb21tYW5kLFxuICBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kLFxuICBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIFVwZ3JhZGVEb21haW5Db21tYW5kLFxufTtcblxuaW50ZXJmYWNlIE9wZW5TZWFyY2hTZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGFjY2VwdEluYm91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZERhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgYWRkRGF0YVNvdXJjZShcbiAgICBhcmdzOiBBZGREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFRhZ3NDb21tYW5kfVxuICAgKi9cbiAgYWRkVGFncyhcbiAgICBhcmdzOiBBZGRUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkVGFnc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBJbnRlcm5hbEVycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgYXNzb2NpYXRlUGFja2FnZShcbiAgICBhcmdzOiBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgYXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3MoXG4gICAgYXJnczogQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxEb21haW5Db25maWdDaGFuZ2UoXG4gICAgYXJnczogQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGUoXG4gICAgYXJnczogQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFwcGxpY2F0aW9uKFxuICAgIGFyZ3M6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEb21haW5Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRG9tYWluKFxuICAgIGFyZ3M6IENyZWF0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVQYWNrYWdlKFxuICAgIGFyZ3M6IENyZWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlVnBjRW5kcG9pbnQoXG4gICAgYXJnczogQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBcHBsaWNhdGlvbihcbiAgICBhcmdzOiBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURhdGFTb3VyY2UoXG4gICAgYXJnczogRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURvbWFpbihcbiAgICBhcmdzOiBEZWxldGVEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlSW5ib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVPdXRib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVQYWNrYWdlKFxuICAgIGFyZ3M6IERlbGV0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVWcGNFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVWcGNFbmRwb2ludChcbiAgICBhcmdzOiBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbihcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluQXV0b1R1bmVzKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluQ29uZmlnKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5IZWFsdGgoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluTm9kZXMoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWlucyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgSW50ZXJuYWxFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3MoXG4gICAgYXJnczogRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzKFxuICAgIGFyZ3M6IERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUGFja2FnZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVQYWNrYWdlcyhcbiAgICBhcmdzOiBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5ncyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlcyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVWcGNFbmRwb2ludHMoXG4gICAgYXJnczogRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgZGlzc29jaWF0ZVBhY2thZ2UoXG4gICAgYXJnczogRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QXBwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0QXBwbGljYXRpb24oXG4gICAgYXJnczogR2V0QXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGdldENvbXBhdGlibGVWZXJzaW9ucyhcbiAgICBhcmdzOiBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBnZXREYXRhU291cmNlKFxuICAgIGFyZ3M6IEdldERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIGdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzKFxuICAgIGFyZ3M6IEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZH1cbiAgICovXG4gIGdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeShcbiAgICBhcmdzOiBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZH1cbiAgICovXG4gIGdldFVwZ3JhZGVIaXN0b3J5KFxuICAgIGFyZ3M6IEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICBnZXRVcGdyYWRlU3RhdHVzKFxuICAgIGFyZ3M6IEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFwcGxpY2F0aW9ucyhcbiAgICBhcmdzOiBMaXN0QXBwbGljYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERhdGFTb3VyY2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3REYXRhU291cmNlcyhcbiAgICBhcmdzOiBMaXN0RGF0YVNvdXJjZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RGF0YVNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RG9tYWluTWFpbnRlbmFuY2VzKFxuICAgIGFyZ3M6IExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REb21haW5OYW1lc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RG9tYWluTmFtZXMoXG4gICAgYXJnczogTGlzdERvbWFpbk5hbWVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERvbWFpbk5hbWVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEJhc2VFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdERvbWFpbnNGb3JQYWNrYWdlKFxuICAgIGFyZ3M6IExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEluc3RhbmNlVHlwZURldGFpbHMoXG4gICAgYXJnczogTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kfVxuICAgKi9cbiAgbGlzdFBhY2thZ2VzRm9yRG9tYWluKFxuICAgIGFyZ3M6IExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFNjaGVkdWxlZEFjdGlvbnMoXG4gICAgYXJnczogTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFnaW5hdGlvblRva2VuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RUYWdzKFxuICAgIGFyZ3M6IExpc3RUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWZXJzaW9ucyhcbiAgICBhcmdzOiBMaXN0VmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWcGNFbmRwb2ludEFjY2VzcyhcbiAgICBhcmdzOiBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWcGNFbmRwb2ludHNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFZwY0VuZHBvaW50cyhcbiAgICBhcmdzOiBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgSW50ZXJuYWxFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWcGNFbmRwb2ludHNGb3JEb21haW4oXG4gICAgYXJnczogTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZH1cbiAgICovXG4gIHB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nKFxuICAgIGFyZ3M6IFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIHJlamVjdEluYm91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZW1vdmVUYWdzQ29tbWFuZH1cbiAgICovXG4gIHJlbW92ZVRhZ3MoXG4gICAgYXJnczogUmVtb3ZlVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlbW92ZVRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgSW50ZXJuYWxFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICByZXZva2VWcGNFbmRwb2ludEFjY2VzcyhcbiAgICBhcmdzOiBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kfVxuICAgKi9cbiAgc3RhcnREb21haW5NYWludGVuYW5jZShcbiAgICBhcmdzOiBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmR9XG4gICAqL1xuICBzdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZShcbiAgICBhcmdzOiBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZUFwcGxpY2F0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRGF0YVNvdXJjZShcbiAgICBhcmdzOiBVcGRhdGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVEb21haW5Db25maWdDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlRG9tYWluQ29uZmlnKFxuICAgIGFyZ3M6IFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlUGFja2FnZShcbiAgICBhcmdzOiBVcGRhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlU2NoZWR1bGVkQWN0aW9uKFxuICAgIGFyZ3M6IFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU2xvdE5vdEF2YWlsYWJsZUVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlVnBjRW5kcG9pbnQoXG4gICAgYXJnczogVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGdyYWRlRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIHVwZ3JhZGVEb21haW4oXG4gICAgYXJnczogVXBncmFkZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZ3JhZGVEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBjbGFzcyBPcGVuU2VhcmNoU2VydmljZSBleHRlbmRzIEVmZmVjdC5UYWcoXG4gIFwiQGVmZmVjdC1hd3MvY2xpZW50LW9wZW5zZWFyY2gvT3BlblNlYXJjaFNlcnZpY2VcIixcbik8T3BlblNlYXJjaFNlcnZpY2UsIE9wZW5TZWFyY2hTZXJ2aWNlJD4oKSB7fVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZU9wZW5TZWFyY2hTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oT3BlblNlYXJjaENsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgT3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248T3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIE9wZW5TZWFyY2hTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZU9wZW5TZWFyY2hTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIE9wZW5TZWFyY2hTZXJ2aWNlLFxuICBtYWtlT3BlblNlYXJjaFNlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgT3BlblNlYXJjaFNlcnZpY2VMYXllciA9IEJhc2VPcGVuU2VhcmNoU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoT3BlblNlYXJjaENsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRPcGVuU2VhcmNoU2VydmljZUxheWVyID0gT3BlblNlYXJjaFNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRPcGVuU2VhcmNoQ2xpZW50Q29uZmlnTGF5ZXIpLFxuKTtcbiJdfQ==
|
|
163
|
+
exports.DefaultOpenSearchServiceLayer = OpenSearchService.defaultLayer;
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlblNlYXJjaFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT3BlblNlYXJjaFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztHQUVHO0FBQ0gsa0VBd09vQztBQUNwQyxtQ0FBcUQ7QUFDckQscUNBaUJrQjtBQUNsQix5RUFHb0M7QUFDcEMscUZBSTBDO0FBYTFDLE1BQU0sUUFBUSxHQUFHO0lBQ2YsOEJBQThCLEVBQTlCLGtEQUE4QjtJQUM5QixvQkFBb0IsRUFBcEIsd0NBQW9CO0lBQ3BCLCtCQUErQixFQUEvQixtREFBK0I7SUFDL0IsY0FBYyxFQUFkLGtDQUFjO0lBQ2QsdUJBQXVCLEVBQXZCLDJDQUF1QjtJQUN2Qix3QkFBd0IsRUFBeEIsNENBQXdCO0lBQ3hCLGlDQUFpQyxFQUFqQyxxREFBaUM7SUFDakMsK0JBQStCLEVBQS9CLG1EQUErQjtJQUMvQixrQ0FBa0MsRUFBbEMsc0RBQWtDO0lBQ2xDLHdCQUF3QixFQUF4Qiw0Q0FBd0I7SUFDeEIsbUJBQW1CLEVBQW5CLHVDQUFtQjtJQUNuQiwrQkFBK0IsRUFBL0IsbURBQStCO0lBQy9CLG9CQUFvQixFQUFwQix3Q0FBb0I7SUFDcEIsd0JBQXdCLEVBQXhCLDRDQUF3QjtJQUN4Qix3QkFBd0IsRUFBeEIsNENBQXdCO0lBQ3hCLHVCQUF1QixFQUF2QiwyQ0FBdUI7SUFDdkIsa0NBQWtDLEVBQWxDLHNEQUFrQztJQUNsQyxtQkFBbUIsRUFBbkIsdUNBQW1CO0lBQ25CLDhCQUE4QixFQUE5QixrREFBOEI7SUFDOUIsK0JBQStCLEVBQS9CLG1EQUErQjtJQUMvQixvQkFBb0IsRUFBcEIsd0NBQW9CO0lBQ3BCLHdCQUF3QixFQUF4Qiw0Q0FBd0I7SUFDeEIscUJBQXFCLEVBQXJCLHlDQUFxQjtJQUNyQiw4QkFBOEIsRUFBOUIsa0RBQThCO0lBQzlCLG1DQUFtQyxFQUFuQyx1REFBbUM7SUFDbkMsMkJBQTJCLEVBQTNCLCtDQUEyQjtJQUMz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Q0FBQztBQUVGOzs7O0dBSUc7QUFDVSxRQUFBLHNCQUFzQixHQUFHLGtDQUEwQixDQUFDLElBQUksQ0FDbkUsY0FBSyxDQUFDLE9BQU8sQ0FBQyx3REFBNkIsQ0FBQyxDQUM3QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNVLFFBQUEsNkJBQTZCLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHtcbiAgT3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24sXG4gIHR5cGUgT3BlblNlYXJjaENsaWVudCxcbiAgdHlwZSBPcGVuU2VhcmNoQ2xpZW50Q29uZmlnLFxuICBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBBZGREYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBBZGREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBBZGREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIEFkZERpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBBZGRUYWdzQ29tbWFuZCxcbiAgdHlwZSBBZGRUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFRhZ3NDb21tYW5kT3V0cHV0LFxuICBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBBc3NvY2lhdGVQYWNrYWdlc0NvbW1hbmQsXG4gIHR5cGUgQXNzb2NpYXRlUGFja2FnZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXNzb2NpYXRlUGFja2FnZXNDb21tYW5kT3V0cHV0LFxuICBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kLFxuICB0eXBlIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICB0eXBlIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVEb21haW5Db21tYW5kLFxuICB0eXBlIENyZWF0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEb21haW5Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIERlbGV0ZURpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEb21haW5Db21tYW5kLFxuICB0eXBlIERlbGV0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEb21haW5Db21tYW5kT3V0cHV0LFxuICBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUGFja2FnZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmQsXG4gIHR5cGUgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBEaXNzb2NpYXRlUGFja2FnZXNDb21tYW5kLFxuICB0eXBlIERpc3NvY2lhdGVQYWNrYWdlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEaXNzb2NpYXRlUGFja2FnZXNDb21tYW5kT3V0cHV0LFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0QXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBHZXREYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBHZXREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBHZXREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIEdldERpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmQsXG4gIHR5cGUgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kLFxuICB0eXBlIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmQsXG4gIHR5cGUgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZCxcbiAgdHlwZSBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBMaXN0QXBwbGljYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0QXBwbGljYXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0RGF0YVNvdXJjZXNDb21tYW5kLFxuICB0eXBlIExpc3REYXRhU291cmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RGF0YVNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RGlyZWN0UXVlcnlEYXRhU291cmNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdERpcmVjdFF1ZXJ5RGF0YVNvdXJjZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdERpcmVjdFF1ZXJ5RGF0YVNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluTmFtZXNDb21tYW5kLFxuICB0eXBlIExpc3REb21haW5OYW1lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RG9tYWluTmFtZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kLFxuICB0eXBlIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kT3V0cHV0LFxuICBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kLFxuICB0eXBlIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0VmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIExpc3RWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICB0eXBlIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBSZW1vdmVUYWdzQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVRhZ3NDb21tYW5kT3V0cHV0LFxuICBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZCxcbiAgdHlwZSBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kT3V0cHV0LFxuICBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIHR5cGUgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kLFxuICB0eXBlIFVwZGF0ZURpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVEb21haW5Db25maWdDb21tYW5kLFxuICB0eXBlIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVQYWNrYWdlU2NvcGVDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVBhY2thZ2VTY29wZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVQYWNrYWdlU2NvcGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kLFxuICB0eXBlIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBVcGdyYWRlRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBVcGdyYWRlRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZ3JhZGVEb21haW5Db21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LW9wZW5zZWFyY2hcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjY2Vzc0RlbmllZEVycm9yLFxuICBCYXNlRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIERlcGVuZGVuY3lGYWlsdXJlRXJyb3IsXG4gIERpc2FibGVkT3BlcmF0aW9uRXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIEludmFsaWRQYWdpbmF0aW9uVG9rZW5FcnJvcixcbiAgSW52YWxpZFR5cGVFcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBTbG90Tm90QXZhaWxhYmxlRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQge1xuICBPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2UsXG4gIE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9PcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRPcGVuU2VhcmNoQ2xpZW50Q29uZmlnTGF5ZXIsXG4gIG1ha2VEZWZhdWx0T3BlblNlYXJjaENsaWVudEluc3RhbmNlQ29uZmlnLFxuICBPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VDb25maWcsXG59IGZyb20gXCIuL09wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgQWRkRGF0YVNvdXJjZUNvbW1hbmQsXG4gIEFkZERpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmQsXG4gIEFkZFRhZ3NDb21tYW5kLFxuICBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgQXNzb2NpYXRlUGFja2FnZXNDb21tYW5kLFxuICBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmQsXG4gIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlRG9tYWluQ29tbWFuZCxcbiAgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlUGFja2FnZUNvbW1hbmQsXG4gIENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kLFxuICBEZWxldGVEYXRhU291cmNlQ29tbWFuZCxcbiAgRGVsZXRlRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZCxcbiAgRGVsZXRlRG9tYWluQ29tbWFuZCxcbiAgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICBEZWxldGVQYWNrYWdlQ29tbWFuZCxcbiAgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbkNvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5zQ29tbWFuZCxcbiAgRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmQsXG4gIERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kLFxuICBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZCxcbiAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmQsXG4gIERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kLFxuICBEaXNzb2NpYXRlUGFja2FnZXNDb21tYW5kLFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmQsXG4gIEdldERhdGFTb3VyY2VDb21tYW5kLFxuICBHZXREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kLFxuICBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmQsXG4gIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmQsXG4gIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZCxcbiAgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmQsXG4gIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kLFxuICBMaXN0RGF0YVNvdXJjZXNDb21tYW5kLFxuICBMaXN0RGlyZWN0UXVlcnlEYXRhU291cmNlc0NvbW1hbmQsXG4gIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kLFxuICBMaXN0RG9tYWluTmFtZXNDb21tYW5kLFxuICBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kLFxuICBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmQsXG4gIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmQsXG4gIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZCxcbiAgTGlzdFRhZ3NDb21tYW5kLFxuICBMaXN0VmVyc2lvbnNDb21tYW5kLFxuICBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZCxcbiAgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICBSZW1vdmVUYWdzQ29tbWFuZCxcbiAgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZCxcbiAgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kLFxuICBVcGRhdGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kLFxuICBVcGRhdGVEb21haW5Db25maWdDb21tYW5kLFxuICBVcGRhdGVQYWNrYWdlQ29tbWFuZCxcbiAgVXBkYXRlUGFja2FnZVNjb3BlQ29tbWFuZCxcbiAgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZCxcbiAgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kLFxuICBVcGdyYWRlRG9tYWluQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBPcGVuU2VhcmNoU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBhY2NlcHRJbmJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGREYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGFkZERhdGFTb3VyY2UoXG4gICAgYXJnczogQWRkRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgYWRkRGlyZWN0UXVlcnlEYXRhU291cmNlKFxuICAgIGFyZ3M6IEFkZERpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZERpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFkZFRhZ3NDb21tYW5kfVxuICAgKi9cbiAgYWRkVGFncyhcbiAgICBhcmdzOiBBZGRUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQWRkVGFnc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBJbnRlcm5hbEVycm9yIHwgTGltaXRFeGNlZWRlZEVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgYXNzb2NpYXRlUGFja2FnZShcbiAgICBhcmdzOiBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXNzb2NpYXRlUGFja2FnZXNDb21tYW5kfVxuICAgKi9cbiAgYXNzb2NpYXRlUGFja2FnZXMoXG4gICAgYXJnczogQXNzb2NpYXRlUGFja2FnZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBc3NvY2lhdGVQYWNrYWdlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICBhdXRob3JpemVWcGNFbmRwb2ludEFjY2VzcyhcbiAgICBhcmdzOiBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZH1cbiAgICovXG4gIGNhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZShcbiAgICBhcmdzOiBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZH1cbiAgICovXG4gIGNhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZShcbiAgICBhcmdzOiBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlQXBwbGljYXRpb24oXG4gICAgYXJnczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZURvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVEb21haW4oXG4gICAgYXJnczogQ3JlYXRlRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRUeXBlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVBhY2thZ2UoXG4gICAgYXJnczogQ3JlYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRUeXBlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVWcGNFbmRwb2ludChcbiAgICBhcmdzOiBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFwcGxpY2F0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGF0YVNvdXJjZShcbiAgICBhcmdzOiBEZWxldGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRGlyZWN0UXVlcnlEYXRhU291cmNlKFxuICAgIGFyZ3M6IERlbGV0ZURpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEb21haW5Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlRG9tYWluKFxuICAgIGFyZ3M6IERlbGV0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVJbmJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVBhY2thZ2UoXG4gICAgYXJnczogRGVsZXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVZwY0VuZHBvaW50KFxuICAgIGFyZ3M6IERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5BdXRvVHVuZXMoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3MoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5Db25maWcoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbkhlYWx0aChcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5Ob2RlcyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5zKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBJbnRlcm5hbEVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEcnlSdW5Qcm9ncmVzcyhcbiAgICBhcmdzOiBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUluYm91bmRDb25uZWN0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBJbnZhbGlkUGFnaW5hdGlvblRva2VuRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHMoXG4gICAgYXJnczogRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBJbnZhbGlkUGFnaW5hdGlvblRva2VuRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVBhY2thZ2VzKFxuICAgIGFyZ3M6IERlc2NyaWJlUGFja2FnZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzKFxuICAgIGFyZ3M6IERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVZwY0VuZHBvaW50cyhcbiAgICBhcmdzOiBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBkaXNzb2NpYXRlUGFja2FnZShcbiAgICBhcmdzOiBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEaXNzb2NpYXRlUGFja2FnZXNDb21tYW5kfVxuICAgKi9cbiAgZGlzc29jaWF0ZVBhY2thZ2VzKFxuICAgIGFyZ3M6IERpc3NvY2lhdGVQYWNrYWdlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERpc3NvY2lhdGVQYWNrYWdlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBcHBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBnZXRBcHBsaWNhdGlvbihcbiAgICBhcmdzOiBHZXRBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgZ2V0Q29tcGF0aWJsZVZlcnNpb25zKFxuICAgIGFyZ3M6IEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGdldERhdGFTb3VyY2UoXG4gICAgYXJnczogR2V0RGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGdldERpcmVjdFF1ZXJ5RGF0YVNvdXJjZShcbiAgICBhcmdzOiBHZXREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXMoXG4gICAgYXJnczogR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kfVxuICAgKi9cbiAgZ2V0UGFja2FnZVZlcnNpb25IaXN0b3J5KFxuICAgIGFyZ3M6IEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kfVxuICAgKi9cbiAgZ2V0VXBncmFkZUhpc3RvcnkoXG4gICAgYXJnczogR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIGdldFVwZ3JhZGVTdGF0dXMoXG4gICAgYXJnczogR2V0VXBncmFkZVN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0QXBwbGljYXRpb25zKFxuICAgIGFyZ3M6IExpc3RBcHBsaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0QXBwbGljYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RGF0YVNvdXJjZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERhdGFTb3VyY2VzKFxuICAgIGFyZ3M6IExpc3REYXRhU291cmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REYXRhU291cmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RGlyZWN0UXVlcnlEYXRhU291cmNlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RGlyZWN0UXVlcnlEYXRhU291cmNlcyhcbiAgICBhcmdzOiBMaXN0RGlyZWN0UXVlcnlEYXRhU291cmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REaXJlY3RRdWVyeURhdGFTb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERvbWFpbk1haW50ZW5hbmNlcyhcbiAgICBhcmdzOiBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RG9tYWluTmFtZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERvbWFpbk5hbWVzKFxuICAgIGFyZ3M6IExpc3REb21haW5OYW1lc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REb21haW5OYW1lc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGxpc3REb21haW5zRm9yUGFja2FnZShcbiAgICBhcmdzOiBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RJbnN0YW5jZVR5cGVEZXRhaWxzKFxuICAgIGFyZ3M6IExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQYWNrYWdlc0ZvckRvbWFpbihcbiAgICBhcmdzOiBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTY2hlZHVsZWRBY3Rpb25zKFxuICAgIGFyZ3M6IExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFncyhcbiAgICBhcmdzOiBMaXN0VGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VmVyc2lvbnMoXG4gICAgYXJnczogTGlzdFZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VnBjRW5kcG9pbnRBY2Nlc3MoXG4gICAgYXJnczogTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWcGNFbmRwb2ludHMoXG4gICAgYXJnczogTGlzdFZwY0VuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IEludGVybmFsRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluKFxuICAgIGFyZ3M6IExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmR9XG4gICAqL1xuICBwdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZyhcbiAgICBhcmdzOiBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWplY3RJbmJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZW1vdmVUYWdzKFxuICAgIGFyZ3M6IFJlbW92ZVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVUYWdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEJhc2VFcnJvciB8IEludGVybmFsRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgcmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3MoXG4gICAgYXJnczogUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0RG9tYWluTWFpbnRlbmFuY2UoXG4gICAgYXJnczogU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGUoXG4gICAgYXJnczogU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBcHBsaWNhdGlvbihcbiAgICBhcmdzOiBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVEYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZURhdGFTb3VyY2UoXG4gICAgYXJnczogVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZURpcmVjdFF1ZXJ5RGF0YVNvdXJjZShcbiAgICBhcmdzOiBVcGRhdGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZURvbWFpbkNvbmZpZyhcbiAgICBhcmdzOiBVcGRhdGVEb21haW5Db25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVBhY2thZ2UoXG4gICAgYXJnczogVXBkYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUGFja2FnZVNjb3BlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVBhY2thZ2VTY29wZShcbiAgICBhcmdzOiBVcGRhdGVQYWNrYWdlU2NvcGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVQYWNrYWdlU2NvcGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVNjaGVkdWxlZEFjdGlvbihcbiAgICBhcmdzOiBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNsb3ROb3RBdmFpbGFibGVFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVZwY0VuZHBvaW50KFxuICAgIGFyZ3M6IFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBncmFkZURvbWFpbkNvbW1hbmR9XG4gICAqL1xuICB1cGdyYWRlRG9tYWluKFxuICAgIGFyZ3M6IFVwZ3JhZGVEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGdyYWRlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZU9wZW5TZWFyY2hTZXJ2aWNlID0gRWZmZWN0LmdlbihmdW5jdGlvbiogKF8pIHtcbiAgY29uc3QgY2xpZW50ID0geWllbGQqIF8oT3BlblNlYXJjaENsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgT3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24gJiZcbiAgICAgICAgICAgIEFsbFNlcnZpY2VFcnJvcnMuaW5jbHVkZXMoZS5uYW1lKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgU2VydmljZUV4Y2VwdGlvbiA9IERhdGEudGFnZ2VkPFxuICAgICAgICAgICAgICBUYWdnZWRFeGNlcHRpb248T3BlblNlYXJjaFNlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIE9wZW5TZWFyY2hTZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgT3BlblNlYXJjaFNlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1vcGVuc2VhcmNoL09wZW5TZWFyY2hTZXJ2aWNlXCIsXG4pPE9wZW5TZWFyY2hTZXJ2aWNlLCBPcGVuU2VhcmNoU2VydmljZSQ+KCkge1xuICBzdGF0aWMgcmVhZG9ubHkgZGVmYXVsdExheWVyID0gTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VPcGVuU2VhcmNoU2VydmljZSkucGlwZShcbiAgICBMYXllci5wcm92aWRlKE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICBMYXllci5wcm92aWRlKERlZmF1bHRPcGVuU2VhcmNoQ2xpZW50Q29uZmlnTGF5ZXIpLFxuICApO1xuICBzdGF0aWMgcmVhZG9ubHkgbGF5ZXIgPSAoY29uZmlnOiBPcGVuU2VhcmNoQ2xpZW50Q29uZmlnKSA9PlxuICAgIExheWVyLmVmZmVjdCh0aGlzLCBtYWtlT3BlblNlYXJjaFNlcnZpY2UpLnBpcGUoXG4gICAgICBMYXllci5wcm92aWRlKE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUxheWVyKSxcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gICAgICAgICAgbWFrZURlZmF1bHRPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VDb25maWcucGlwZShcbiAgICAgICAgICAgIEVmZmVjdC5tYXAoKGRlZmF1bHRDb25maWcpID0+ICh7IC4uLmRlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGJhc2VMYXllciA9IChcbiAgICBldmFsdWF0ZTogKGRlZmF1bHRDb25maWc6IE9wZW5TZWFyY2hDbGllbnRDb25maWcpID0+IE9wZW5TZWFyY2hDbGllbnQsXG4gICkgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZU9wZW5TZWFyY2hTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShcbiAgICAgICAgTGF5ZXIuZWZmZWN0KFxuICAgICAgICAgIE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZSxcbiAgICAgICAgICBFZmZlY3QubWFwKG1ha2VEZWZhdWx0T3BlblNlYXJjaENsaWVudEluc3RhbmNlQ29uZmlnLCBldmFsdWF0ZSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKiBAYWxpYXMgT3BlblNlYXJjaFNlcnZpY2VcbiAqL1xuZXhwb3J0IGNvbnN0IE9wZW5TZWFyY2ggPSBPcGVuU2VhcmNoU2VydmljZTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBPcGVuU2VhcmNoLmJhc2VMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlT3BlblNlYXJjaFNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChcbiAgT3BlblNlYXJjaFNlcnZpY2UsXG4gIG1ha2VPcGVuU2VhcmNoU2VydmljZSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgT3BlblNlYXJjaC5sYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBPcGVuU2VhcmNoU2VydmljZUxheWVyID0gQmFzZU9wZW5TZWFyY2hTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIE9wZW5TZWFyY2guZGVmYXVsdExheWVyIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRPcGVuU2VhcmNoU2VydmljZUxheWVyID0gT3BlblNlYXJjaFNlcnZpY2UuZGVmYXVsdExheWVyO1xuIl19
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
/**
|
|
2
3
|
* @since 1.0.0
|
|
3
4
|
*/
|
|
4
|
-
import { OpenSearchServiceException, AcceptInboundConnectionCommand, AddDataSourceCommand, AddTagsCommand, AssociatePackageCommand, AuthorizeVpcEndpointAccessCommand, CancelDomainConfigChangeCommand, CancelServiceSoftwareUpdateCommand, CreateApplicationCommand, CreateDomainCommand, CreateOutboundConnectionCommand, CreatePackageCommand, CreateVpcEndpointCommand, DeleteApplicationCommand, DeleteDataSourceCommand, DeleteDomainCommand, DeleteInboundConnectionCommand, DeleteOutboundConnectionCommand, DeletePackageCommand, DeleteVpcEndpointCommand, DescribeDomainCommand, DescribeDomainAutoTunesCommand, DescribeDomainChangeProgressCommand, DescribeDomainConfigCommand, DescribeDomainHealthCommand, DescribeDomainNodesCommand, DescribeDomainsCommand, DescribeDryRunProgressCommand, DescribeInboundConnectionsCommand, DescribeInstanceTypeLimitsCommand, DescribeOutboundConnectionsCommand, DescribePackagesCommand, DescribeReservedInstanceOfferingsCommand, DescribeReservedInstancesCommand, DescribeVpcEndpointsCommand, DissociatePackageCommand, GetApplicationCommand, GetCompatibleVersionsCommand, GetDataSourceCommand, GetDomainMaintenanceStatusCommand, GetPackageVersionHistoryCommand, GetUpgradeHistoryCommand, GetUpgradeStatusCommand, ListApplicationsCommand, ListDataSourcesCommand, ListDomainMaintenancesCommand, ListDomainNamesCommand, ListDomainsForPackageCommand, ListInstanceTypeDetailsCommand, ListPackagesForDomainCommand, ListScheduledActionsCommand, ListTagsCommand, ListVersionsCommand, ListVpcEndpointAccessCommand, ListVpcEndpointsCommand, ListVpcEndpointsForDomainCommand, PurchaseReservedInstanceOfferingCommand, RejectInboundConnectionCommand, RemoveTagsCommand, RevokeVpcEndpointAccessCommand, StartDomainMaintenanceCommand, StartServiceSoftwareUpdateCommand, UpdateApplicationCommand, UpdateDataSourceCommand, UpdateDomainConfigCommand, UpdatePackageCommand, UpdateScheduledActionCommand, UpdateVpcEndpointCommand, UpgradeDomainCommand, } from "@aws-sdk/client-opensearch";
|
|
5
|
+
import { OpenSearchServiceException, AcceptInboundConnectionCommand, AddDataSourceCommand, AddDirectQueryDataSourceCommand, AddTagsCommand, AssociatePackageCommand, AssociatePackagesCommand, AuthorizeVpcEndpointAccessCommand, CancelDomainConfigChangeCommand, CancelServiceSoftwareUpdateCommand, CreateApplicationCommand, CreateDomainCommand, CreateOutboundConnectionCommand, CreatePackageCommand, CreateVpcEndpointCommand, DeleteApplicationCommand, DeleteDataSourceCommand, DeleteDirectQueryDataSourceCommand, DeleteDomainCommand, DeleteInboundConnectionCommand, DeleteOutboundConnectionCommand, DeletePackageCommand, DeleteVpcEndpointCommand, DescribeDomainCommand, DescribeDomainAutoTunesCommand, DescribeDomainChangeProgressCommand, DescribeDomainConfigCommand, DescribeDomainHealthCommand, DescribeDomainNodesCommand, DescribeDomainsCommand, DescribeDryRunProgressCommand, DescribeInboundConnectionsCommand, DescribeInstanceTypeLimitsCommand, DescribeOutboundConnectionsCommand, DescribePackagesCommand, DescribeReservedInstanceOfferingsCommand, DescribeReservedInstancesCommand, DescribeVpcEndpointsCommand, DissociatePackageCommand, DissociatePackagesCommand, GetApplicationCommand, GetCompatibleVersionsCommand, GetDataSourceCommand, GetDirectQueryDataSourceCommand, GetDomainMaintenanceStatusCommand, GetPackageVersionHistoryCommand, GetUpgradeHistoryCommand, GetUpgradeStatusCommand, ListApplicationsCommand, ListDataSourcesCommand, ListDirectQueryDataSourcesCommand, ListDomainMaintenancesCommand, ListDomainNamesCommand, ListDomainsForPackageCommand, ListInstanceTypeDetailsCommand, ListPackagesForDomainCommand, ListScheduledActionsCommand, ListTagsCommand, ListVersionsCommand, ListVpcEndpointAccessCommand, ListVpcEndpointsCommand, ListVpcEndpointsForDomainCommand, PurchaseReservedInstanceOfferingCommand, RejectInboundConnectionCommand, RemoveTagsCommand, RevokeVpcEndpointAccessCommand, StartDomainMaintenanceCommand, StartServiceSoftwareUpdateCommand, UpdateApplicationCommand, UpdateDataSourceCommand, UpdateDirectQueryDataSourceCommand, UpdateDomainConfigCommand, UpdatePackageCommand, UpdatePackageScopeCommand, UpdateScheduledActionCommand, UpdateVpcEndpointCommand, UpgradeDomainCommand, } from "@aws-sdk/client-opensearch";
|
|
5
6
|
import { Data, Effect, Layer, Record } from "effect";
|
|
6
7
|
import { AllServiceErrors, SdkError, } from "./Errors";
|
|
7
8
|
import { OpenSearchClientInstance, OpenSearchClientInstanceLayer, } from "./OpenSearchClientInstance";
|
|
8
|
-
import { DefaultOpenSearchClientConfigLayer } from "./OpenSearchClientInstanceConfig";
|
|
9
|
+
import { DefaultOpenSearchClientConfigLayer, makeDefaultOpenSearchClientInstanceConfig, OpenSearchClientInstanceConfig, } from "./OpenSearchClientInstanceConfig";
|
|
9
10
|
const commands = {
|
|
10
11
|
AcceptInboundConnectionCommand,
|
|
11
12
|
AddDataSourceCommand,
|
|
13
|
+
AddDirectQueryDataSourceCommand,
|
|
12
14
|
AddTagsCommand,
|
|
13
15
|
AssociatePackageCommand,
|
|
16
|
+
AssociatePackagesCommand,
|
|
14
17
|
AuthorizeVpcEndpointAccessCommand,
|
|
15
18
|
CancelDomainConfigChangeCommand,
|
|
16
19
|
CancelServiceSoftwareUpdateCommand,
|
|
@@ -21,6 +24,7 @@ const commands = {
|
|
|
21
24
|
CreateVpcEndpointCommand,
|
|
22
25
|
DeleteApplicationCommand,
|
|
23
26
|
DeleteDataSourceCommand,
|
|
27
|
+
DeleteDirectQueryDataSourceCommand,
|
|
24
28
|
DeleteDomainCommand,
|
|
25
29
|
DeleteInboundConnectionCommand,
|
|
26
30
|
DeleteOutboundConnectionCommand,
|
|
@@ -42,15 +46,18 @@ const commands = {
|
|
|
42
46
|
DescribeReservedInstancesCommand,
|
|
43
47
|
DescribeVpcEndpointsCommand,
|
|
44
48
|
DissociatePackageCommand,
|
|
49
|
+
DissociatePackagesCommand,
|
|
45
50
|
GetApplicationCommand,
|
|
46
51
|
GetCompatibleVersionsCommand,
|
|
47
52
|
GetDataSourceCommand,
|
|
53
|
+
GetDirectQueryDataSourceCommand,
|
|
48
54
|
GetDomainMaintenanceStatusCommand,
|
|
49
55
|
GetPackageVersionHistoryCommand,
|
|
50
56
|
GetUpgradeHistoryCommand,
|
|
51
57
|
GetUpgradeStatusCommand,
|
|
52
58
|
ListApplicationsCommand,
|
|
53
59
|
ListDataSourcesCommand,
|
|
60
|
+
ListDirectQueryDataSourcesCommand,
|
|
54
61
|
ListDomainMaintenancesCommand,
|
|
55
62
|
ListDomainNamesCommand,
|
|
56
63
|
ListDomainsForPackageCommand,
|
|
@@ -70,18 +77,14 @@ const commands = {
|
|
|
70
77
|
StartServiceSoftwareUpdateCommand,
|
|
71
78
|
UpdateApplicationCommand,
|
|
72
79
|
UpdateDataSourceCommand,
|
|
80
|
+
UpdateDirectQueryDataSourceCommand,
|
|
73
81
|
UpdateDomainConfigCommand,
|
|
74
82
|
UpdatePackageCommand,
|
|
83
|
+
UpdatePackageScopeCommand,
|
|
75
84
|
UpdateScheduledActionCommand,
|
|
76
85
|
UpdateVpcEndpointCommand,
|
|
77
86
|
UpgradeDomainCommand,
|
|
78
87
|
};
|
|
79
|
-
/**
|
|
80
|
-
* @since 1.0.0
|
|
81
|
-
* @category models
|
|
82
|
-
*/
|
|
83
|
-
export class OpenSearchService extends Effect.Tag("@effect-aws/client-opensearch/OpenSearchService")() {
|
|
84
|
-
}
|
|
85
88
|
/**
|
|
86
89
|
* @since 1.0.0
|
|
87
90
|
* @category constructors
|
|
@@ -120,19 +123,38 @@ export const makeOpenSearchService = Effect.gen(function* (_) {
|
|
|
120
123
|
return { ...acc, [methodName]: methodImpl };
|
|
121
124
|
}, {});
|
|
122
125
|
});
|
|
126
|
+
/**
|
|
127
|
+
* @since 1.0.0
|
|
128
|
+
* @category models
|
|
129
|
+
*/
|
|
130
|
+
export class OpenSearchService extends Effect.Tag("@effect-aws/client-opensearch/OpenSearchService")() {
|
|
131
|
+
}
|
|
132
|
+
_a = OpenSearchService;
|
|
133
|
+
OpenSearchService.defaultLayer = Layer.effect(_a, makeOpenSearchService).pipe(Layer.provide(OpenSearchClientInstanceLayer), Layer.provide(DefaultOpenSearchClientConfigLayer));
|
|
134
|
+
OpenSearchService.layer = (config) => Layer.effect(_a, makeOpenSearchService).pipe(Layer.provide(OpenSearchClientInstanceLayer), Layer.provide(Layer.effect(OpenSearchClientInstanceConfig, makeDefaultOpenSearchClientInstanceConfig.pipe(Effect.map((defaultConfig) => ({ ...defaultConfig, ...config }))))));
|
|
135
|
+
OpenSearchService.baseLayer = (evaluate) => Layer.effect(_a, makeOpenSearchService).pipe(Layer.provide(Layer.effect(OpenSearchClientInstance, Effect.map(makeDefaultOpenSearchClientInstanceConfig, evaluate))));
|
|
136
|
+
/**
|
|
137
|
+
* @since 1.0.0
|
|
138
|
+
* @category models
|
|
139
|
+
* @alias OpenSearchService
|
|
140
|
+
*/
|
|
141
|
+
export const OpenSearch = OpenSearchService;
|
|
123
142
|
/**
|
|
124
143
|
* @since 1.0.0
|
|
125
144
|
* @category layers
|
|
145
|
+
* @deprecated use OpenSearch.baseLayer instead
|
|
126
146
|
*/
|
|
127
147
|
export const BaseOpenSearchServiceLayer = Layer.effect(OpenSearchService, makeOpenSearchService);
|
|
128
148
|
/**
|
|
129
149
|
* @since 1.0.0
|
|
130
150
|
* @category layers
|
|
151
|
+
* @deprecated use OpenSearch.layer instead
|
|
131
152
|
*/
|
|
132
153
|
export const OpenSearchServiceLayer = BaseOpenSearchServiceLayer.pipe(Layer.provide(OpenSearchClientInstanceLayer));
|
|
133
154
|
/**
|
|
134
155
|
* @since 1.0.0
|
|
135
156
|
* @category layers
|
|
157
|
+
* @deprecated use OpenSearch.defaultLayer instead
|
|
136
158
|
*/
|
|
137
|
-
export const DefaultOpenSearchServiceLayer =
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlblNlYXJjaFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvT3BlblNlYXJjaFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLDhCQUE4QixFQUc5QixvQkFBb0IsRUFHcEIsY0FBYyxFQUdkLHVCQUF1QixFQUd2QixpQ0FBaUMsRUFHakMsK0JBQStCLEVBRy9CLGtDQUFrQyxFQUdsQyx3QkFBd0IsRUFHeEIsbUJBQW1CLEVBR25CLCtCQUErQixFQUcvQixvQkFBb0IsRUFHcEIsd0JBQXdCLEVBR3hCLHdCQUF3QixFQUd4Qix1QkFBdUIsRUFHdkIsbUJBQW1CLEVBR25CLDhCQUE4QixFQUc5QiwrQkFBK0IsRUFHL0Isb0JBQW9CLEVBR3BCLHdCQUF3QixFQUd4QixxQkFBcUIsRUFHckIsOEJBQThCLEVBRzlCLG1DQUFtQyxFQUduQywyQkFBMkIsRUFHM0IsMkJBQTJCLEVBRzNCLDBCQUEwQixFQUcxQixzQkFBc0IsRUFHdEIsNkJBQTZCLEVBRzdCLGlDQUFpQyxFQUdqQyxpQ0FBaUMsRUFHakMsa0NBQWtDLEVBR2xDLHVCQUF1QixFQUd2Qix3Q0FBd0MsRUFHeEMsZ0NBQWdDLEVBR2hDLDJCQUEyQixFQUczQix3QkFBd0IsRUFHeEIscUJBQXFCLEVBR3JCLDRCQUE0QixFQUc1QixvQkFBb0IsRUFHcEIsaUNBQWlDLEVBR2pDLCtCQUErQixFQUcvQix3QkFBd0IsRUFHeEIsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUd2QixzQkFBc0IsRUFHdEIsNkJBQTZCLEVBRzdCLHNCQUFzQixFQUd0Qiw0QkFBNEIsRUFHNUIsOEJBQThCLEVBRzlCLDRCQUE0QixFQUc1QiwyQkFBMkIsRUFHM0IsZUFBZSxFQUdmLG1CQUFtQixFQUduQiw0QkFBNEIsRUFHNUIsdUJBQXVCLEVBR3ZCLGdDQUFnQyxFQUdoQyx1Q0FBdUMsRUFHdkMsOEJBQThCLEVBRzlC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RUFBRSxDQUF1QixDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDcEQsaUJBQWlCLEVBQ2pCLHFCQUFxQixDQUN0QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsMEJBQTBCLENBQUMsSUFBSSxDQUNuRSxLQUFLLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQzdDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQ3RFLEtBQUssQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIE9wZW5TZWFyY2hTZXJ2aWNlRXhjZXB0aW9uLFxuICBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBBZGREYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBBZGREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBBZGRUYWdzQ29tbWFuZCxcbiAgdHlwZSBBZGRUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIEFkZFRhZ3NDb21tYW5kT3V0cHV0LFxuICBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kLFxuICB0eXBlIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kT3V0cHV0LFxuICBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICB0eXBlIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVEb21haW5Db21tYW5kLFxuICB0eXBlIENyZWF0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVEb21haW5Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVEb21haW5Db21tYW5kLFxuICB0eXBlIERlbGV0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEb21haW5Db21tYW5kT3V0cHV0LFxuICBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBEZWxldGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURvbWFpbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUGFja2FnZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmQsXG4gIHR5cGUgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgR2V0QXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0QXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBHZXREYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBHZXREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmQsXG4gIHR5cGUgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kLFxuICB0eXBlIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmQsXG4gIHR5cGUgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZCxcbiAgdHlwZSBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kT3V0cHV0LFxuICBMaXN0QXBwbGljYXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0QXBwbGljYXRpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0RGF0YVNvdXJjZXNDb21tYW5kLFxuICB0eXBlIExpc3REYXRhU291cmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RGF0YVNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluTmFtZXNDb21tYW5kLFxuICB0eXBlIExpc3REb21haW5OYW1lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RG9tYWluTmFtZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kLFxuICB0eXBlIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kT3V0cHV0LFxuICBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kLFxuICB0eXBlIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFRhZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NDb21tYW5kT3V0cHV0LFxuICBMaXN0VmVyc2lvbnNDb21tYW5kLFxuICB0eXBlIExpc3RWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICB0eXBlIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gIHR5cGUgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kT3V0cHV0LFxuICBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIHR5cGUgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICBSZW1vdmVUYWdzQ29tbWFuZCxcbiAgdHlwZSBSZW1vdmVUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIFJlbW92ZVRhZ3NDb21tYW5kT3V0cHV0LFxuICBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZCxcbiAgdHlwZSBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kT3V0cHV0LFxuICBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmQsXG4gIHR5cGUgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVEb21haW5Db25maWdDb21tYW5kLFxuICB0eXBlIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kLFxuICB0eXBlIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kT3V0cHV0LFxuICBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIHR5cGUgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICBVcGdyYWRlRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBVcGdyYWRlRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZ3JhZGVEb21haW5Db21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LW9wZW5zZWFyY2hcIjtcbmltcG9ydCB7IERhdGEsIEVmZmVjdCwgTGF5ZXIsIFJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEFsbFNlcnZpY2VFcnJvcnMsXG4gIEFjY2Vzc0RlbmllZEVycm9yLFxuICBCYXNlRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIERlcGVuZGVuY3lGYWlsdXJlRXJyb3IsXG4gIERpc2FibGVkT3BlcmF0aW9uRXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIEludmFsaWRQYWdpbmF0aW9uVG9rZW5FcnJvcixcbiAgSW52YWxpZFR5cGVFcnJvcixcbiAgTGltaXRFeGNlZWRlZEVycm9yLFxuICBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvcixcbiAgUmVzb3VyY2VOb3RGb3VuZEVycm9yLFxuICBTbG90Tm90QXZhaWxhYmxlRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgU2RrRXJyb3IsXG4gIFRhZ2dlZEV4Y2VwdGlvbixcbn0gZnJvbSBcIi4vRXJyb3JzXCI7XG5pbXBvcnQge1xuICBPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2UsXG4gIE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUxheWVyLFxufSBmcm9tIFwiLi9PcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRPcGVuU2VhcmNoQ2xpZW50Q29uZmlnTGF5ZXIgfSBmcm9tIFwiLi9PcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIEFkZERhdGFTb3VyY2VDb21tYW5kLFxuICBBZGRUYWdzQ29tbWFuZCxcbiAgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmQsXG4gIEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZCxcbiAgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZCxcbiAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICBDcmVhdGVEb21haW5Db21tYW5kLFxuICBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICBDcmVhdGVQYWNrYWdlQ29tbWFuZCxcbiAgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kLFxuICBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kLFxuICBEZWxldGVEb21haW5Db21tYW5kLFxuICBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIERlbGV0ZVBhY2thZ2VDb21tYW5kLFxuICBEZWxldGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbnNDb21tYW5kLFxuICBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZCxcbiAgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kLFxuICBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmQsXG4gIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlUGFja2FnZXNDb21tYW5kLFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kLFxuICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZCxcbiAgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kLFxuICBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmQsXG4gIEdldEFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZCxcbiAgR2V0RGF0YVNvdXJjZUNvbW1hbmQsXG4gIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZCxcbiAgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZCxcbiAgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kLFxuICBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZCxcbiAgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmQsXG4gIExpc3REYXRhU291cmNlc0NvbW1hbmQsXG4gIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kLFxuICBMaXN0RG9tYWluTmFtZXNDb21tYW5kLFxuICBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kLFxuICBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmQsXG4gIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmQsXG4gIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZCxcbiAgTGlzdFRhZ3NDb21tYW5kLFxuICBMaXN0VmVyc2lvbnNDb21tYW5kLFxuICBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZCxcbiAgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmQsXG4gIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZCxcbiAgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICBSZW1vdmVUYWdzQ29tbWFuZCxcbiAgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZCxcbiAgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kLFxuICBVcGRhdGVEb21haW5Db25maWdDb21tYW5kLFxuICBVcGRhdGVQYWNrYWdlQ29tbWFuZCxcbiAgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZCxcbiAgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kLFxuICBVcGdyYWRlRG9tYWluQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBPcGVuU2VhcmNoU2VydmljZSQge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBhY2NlcHRJbmJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGREYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGFkZERhdGFTb3VyY2UoXG4gICAgYXJnczogQWRkRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZERhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRUYWdzQ29tbWFuZH1cbiAgICovXG4gIGFkZFRhZ3MoXG4gICAgYXJnczogQWRkVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZFRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgSW50ZXJuYWxFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGFzc29jaWF0ZVBhY2thZ2UoXG4gICAgYXJnczogQXNzb2NpYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIGF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzKFxuICAgIGFyZ3M6IEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kfVxuICAgKi9cbiAgY2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlKFxuICAgIGFyZ3M6IENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kfVxuICAgKi9cbiAgY2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlKFxuICAgIGFyZ3M6IENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVBcHBsaWNhdGlvbihcbiAgICBhcmdzOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZURvbWFpbihcbiAgICBhcmdzOiBDcmVhdGVEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVPdXRib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlUGFja2FnZShcbiAgICBhcmdzOiBDcmVhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVZwY0VuZHBvaW50KFxuICAgIGFyZ3M6IENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQXBwbGljYXRpb24oXG4gICAgYXJnczogRGVsZXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEYXRhU291cmNlKFxuICAgIGFyZ3M6IERlbGV0ZURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZURvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVEb21haW4oXG4gICAgYXJnczogRGVsZXRlRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUluYm91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uKFxuICAgIGFyZ3M6IERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlUGFja2FnZShcbiAgICBhcmdzOiBEZWxldGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlVnBjRW5kcG9pbnQoXG4gICAgYXJnczogRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5Db21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW4oXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbkF1dG9UdW5lcyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzcyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbkNvbmZpZyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluSGVhbHRoKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbk5vZGVzKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbnMoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEJhc2VFcnJvciB8IEludGVybmFsRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURyeVJ1blByb2dyZXNzKFxuICAgIGFyZ3M6IERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IEludmFsaWRQYWdpbmF0aW9uVG9rZW5FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0cyhcbiAgICBhcmdzOiBEZXNjcmliZUluc3RhbmNlVHlwZUxpbWl0c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRUeXBlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9ucyhcbiAgICBhcmdzOiBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IEludmFsaWRQYWdpbmF0aW9uVG9rZW5FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUGFja2FnZXMoXG4gICAgYXJnczogRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUGFja2FnZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3MoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXMoXG4gICAgYXJnczogRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlVnBjRW5kcG9pbnRzKFxuICAgIGFyZ3M6IERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGRpc3NvY2lhdGVQYWNrYWdlKFxuICAgIGFyZ3M6IERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldEFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIGdldEFwcGxpY2F0aW9uKFxuICAgIGFyZ3M6IEdldEFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0QXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldENvbXBhdGlibGVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBnZXRDb21wYXRpYmxlVmVyc2lvbnMoXG4gICAgYXJnczogR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERhdGFTb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgZ2V0RGF0YVNvdXJjZShcbiAgICBhcmdzOiBHZXREYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGF0YVNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEZXBlbmRlbmN5RmFpbHVyZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICBnZXREb21haW5NYWludGVuYW5jZVN0YXR1cyhcbiAgICBhcmdzOiBHZXREb21haW5NYWludGVuYW5jZVN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeUNvbW1hbmR9XG4gICAqL1xuICBnZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnkoXG4gICAgYXJnczogR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmR9XG4gICAqL1xuICBnZXRVcGdyYWRlSGlzdG9yeShcbiAgICBhcmdzOiBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0VXBncmFkZVN0YXR1cyhcbiAgICBhcmdzOiBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0QXBwbGljYXRpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RBcHBsaWNhdGlvbnMoXG4gICAgYXJnczogTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REYXRhU291cmNlc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RGF0YVNvdXJjZXMoXG4gICAgYXJnczogTGlzdERhdGFTb3VyY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERhdGFTb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERvbWFpbk1haW50ZW5hbmNlcyhcbiAgICBhcmdzOiBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RG9tYWluTmFtZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERvbWFpbk5hbWVzKFxuICAgIGFyZ3M6IExpc3REb21haW5OYW1lc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REb21haW5OYW1lc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGxpc3REb21haW5zRm9yUGFja2FnZShcbiAgICBhcmdzOiBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RJbnN0YW5jZVR5cGVEZXRhaWxzKFxuICAgIGFyZ3M6IExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGxpc3RQYWNrYWdlc0ZvckRvbWFpbihcbiAgICBhcmdzOiBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTY2hlZHVsZWRBY3Rpb25zKFxuICAgIGFyZ3M6IExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VGFnc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VGFncyhcbiAgICBhcmdzOiBMaXN0VGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RUYWdzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VmVyc2lvbnMoXG4gICAgYXJnczogTGlzdFZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VnBjRW5kcG9pbnRBY2Nlc3MoXG4gICAgYXJnczogTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RWcGNFbmRwb2ludHMoXG4gICAgYXJnczogTGlzdFZwY0VuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWcGNFbmRwb2ludHNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvciB8IEludGVybmFsRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluKFxuICAgIGFyZ3M6IExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmR9XG4gICAqL1xuICBwdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZyhcbiAgICBhcmdzOiBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICByZWplY3RJbmJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlVGFnc0NvbW1hbmR9XG4gICAqL1xuICByZW1vdmVUYWdzKFxuICAgIGFyZ3M6IFJlbW92ZVRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZW1vdmVUYWdzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEJhc2VFcnJvciB8IEludGVybmFsRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgcmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3MoXG4gICAgYXJnczogUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZXZva2VWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0RG9tYWluTWFpbnRlbmFuY2UoXG4gICAgYXJnczogU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kfVxuICAgKi9cbiAgc3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGUoXG4gICAgYXJnczogU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVBcHBsaWNhdGlvbihcbiAgICBhcmdzOiBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVEYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZURhdGFTb3VyY2UoXG4gICAgYXJnczogVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZURvbWFpbkNvbmZpZyhcbiAgICBhcmdzOiBVcGRhdGVEb21haW5Db25maWdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVBhY2thZ2UoXG4gICAgYXJnczogVXBkYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVNjaGVkdWxlZEFjdGlvbihcbiAgICBhcmdzOiBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFNsb3ROb3RBdmFpbGFibGVFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVZwY0VuZHBvaW50KFxuICAgIGFyZ3M6IFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBncmFkZURvbWFpbkNvbW1hbmR9XG4gICAqL1xuICB1cGdyYWRlRG9tYWluKFxuICAgIGFyZ3M6IFVwZ3JhZGVEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGdyYWRlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgT3BlblNlYXJjaFNlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFxuICBcIkBlZmZlY3QtYXdzL2NsaWVudC1vcGVuc2VhcmNoL09wZW5TZWFyY2hTZXJ2aWNlXCIsXG4pPE9wZW5TZWFyY2hTZXJ2aWNlLCBPcGVuU2VhcmNoU2VydmljZSQ+KCkge31cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VPcGVuU2VhcmNoU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIE9wZW5TZWFyY2hTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPE9wZW5TZWFyY2hTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBPcGVuU2VhcmNoU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VPcGVuU2VhcmNoU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBPcGVuU2VhcmNoU2VydmljZSxcbiAgbWFrZU9wZW5TZWFyY2hTZXJ2aWNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IE9wZW5TZWFyY2hTZXJ2aWNlTGF5ZXIgPSBCYXNlT3BlblNlYXJjaFNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0T3BlblNlYXJjaFNlcnZpY2VMYXllciA9IE9wZW5TZWFyY2hTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0T3BlblNlYXJjaENsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
|
|
159
|
+
export const DefaultOpenSearchServiceLayer = OpenSearchService.defaultLayer;
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlblNlYXJjaFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvT3BlblNlYXJjaFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLDBCQUEwQixFQUcxQiw4QkFBOEIsRUFHOUIsb0JBQW9CLEVBR3BCLCtCQUErQixFQUcvQixjQUFjLEVBR2QsdUJBQXVCLEVBR3ZCLHdCQUF3QixFQUd4QixpQ0FBaUMsRUFHakMsK0JBQStCLEVBRy9CLGtDQUFrQyxFQUdsQyx3QkFBd0IsRUFHeEIsbUJBQW1CLEVBR25CLCtCQUErQixFQUcvQixvQkFBb0IsRUFHcEIsd0JBQXdCLEVBR3hCLHdCQUF3QixFQUd4Qix1QkFBdUIsRUFHdkIsa0NBQWtDLEVBR2xDLG1CQUFtQixFQUduQiw4QkFBOEIsRUFHOUIsK0JBQStCLEVBRy9CLG9CQUFvQixFQUdwQix3QkFBd0IsRUFHeEIscUJBQXFCLEVBR3JCLDhCQUE4QixFQUc5QixtQ0FBbUMsRUFHbkMsMkJBQTJCLEVBRzNCLDJCQUEyQixFQUczQiwwQkFBMEIsRUFHMUIsc0JBQXNCLEVBR3RCLDZCQUE2QixFQUc3QixpQ0FBaUMsRUFHakMsaUNBQWlDLEVBR2pDLGtDQUFrQyxFQUdsQyx1QkFBdUIsRUFHdkIsd0NBQXdDLEVBR3hDLGdDQUFnQyxFQUdoQywyQkFBMkIsRUFHM0Isd0JBQXdCLEVBR3hCLHlCQUF5QixFQUd6QixxQkFBcUIsRUFHckIsNEJBQTRCLEVBRzVCLG9CQUFvQixFQUdwQiwrQkFBK0IsRUFHL0IsaUNBQWlDLEVBR2pDLCtCQUErQixFQUcvQix3QkFBd0IsRUFHeEIsdUJBQXVCLEVBR3ZCLHVCQUF1QixFQUd2QixzQkFBc0IsRUFHdEIsaUNBQWlDLEVBR2pDLDZCQUE2QixFQUc3QixzQkFBc0IsRUFHdEIsNEJBQTRCLEVBRzVCLDhCQUE4QixFQUc5Qiw0QkFBNEIsRUFHNUIsMkJBQTJCLEVBRzNCLGVBQWUsRUFH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SyxDQUFDLE1BQU0sQ0FDVix3QkFBd0IsRUFDeEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyx5Q0FBeUMsRUFBRSxRQUFRLENBQUMsQ0FDaEUsQ0FDRixDQUNGLEFBVnNCLENBVXJCO0FBR047Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQztBQUU1Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDcEQsaUJBQWlCLEVBQ2pCLHFCQUFxQixDQUN0QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FDbkUsS0FBSyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUM3QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLGlCQUFpQixDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIE9wZW5TZWFyY2hTZXJ2aWNlRXhjZXB0aW9uLFxuICB0eXBlIE9wZW5TZWFyY2hDbGllbnQsXG4gIHR5cGUgT3BlblNlYXJjaENsaWVudENvbmZpZyxcbiAgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICB0eXBlIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEFjY2VwdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgQWRkRGF0YVNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgQWRkRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGREYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgQWRkRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBBZGREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQWRkRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgQWRkVGFnc0NvbW1hbmQsXG4gIHR5cGUgQWRkVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBBZGRUYWdzQ29tbWFuZE91dHB1dCxcbiAgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmQsXG4gIHR5cGUgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgQXNzb2NpYXRlUGFja2FnZXNDb21tYW5kLFxuICB0eXBlIEFzc29jaWF0ZVBhY2thZ2VzQ29tbWFuZElucHV0LFxuICB0eXBlIEFzc29jaWF0ZVBhY2thZ2VzQ29tbWFuZE91dHB1dCxcbiAgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICB0eXBlIEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIEF1dGhvcml6ZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZCxcbiAgdHlwZSBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZE91dHB1dCxcbiAgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZCxcbiAgdHlwZSBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICB0eXBlIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlUGFja2FnZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVZwY0VuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlQXBwbGljYXRpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUGFja2FnZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlVnBjRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEb21haW5Db21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEb21haW5zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZURvbWFpbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVEb21haW5zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlSW5ib3VuZENvbm5lY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmQsXG4gIHR5cGUgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZElucHV0LFxuICB0eXBlIERlc2NyaWJlVnBjRW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kLFxuICB0eXBlIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZElucHV0LFxuICB0eXBlIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgRGlzc29jaWF0ZVBhY2thZ2VzQ29tbWFuZCxcbiAgdHlwZSBEaXNzb2NpYXRlUGFja2FnZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGlzc29jaWF0ZVBhY2thZ2VzQ29tbWFuZE91dHB1dCxcbiAgR2V0QXBwbGljYXRpb25Db21tYW5kLFxuICB0eXBlIEdldEFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgR2V0RGF0YVNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgR2V0RGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXREYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgR2V0RGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBHZXREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kLFxuICB0eXBlIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZElucHV0LFxuICB0eXBlIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZCxcbiAgdHlwZSBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZE91dHB1dCxcbiAgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kLFxuICB0eXBlIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZElucHV0LFxuICB0eXBlIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZE91dHB1dCxcbiAgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmQsXG4gIHR5cGUgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QXBwbGljYXRpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdERhdGFTb3VyY2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RGF0YVNvdXJjZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdERhdGFTb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdERpcmVjdFF1ZXJ5RGF0YVNvdXJjZXNDb21tYW5kLFxuICB0eXBlIExpc3REaXJlY3RRdWVyeURhdGFTb3VyY2VzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3REaXJlY3RRdWVyeURhdGFTb3VyY2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmQsXG4gIHR5cGUgTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZE91dHB1dCxcbiAgTGlzdERvbWFpbk5hbWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0RG9tYWluTmFtZXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdERvbWFpbk5hbWVzQ29tbWFuZE91dHB1dCxcbiAgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZCxcbiAgdHlwZSBMaXN0RG9tYWluc0ZvclBhY2thZ2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kLFxuICB0eXBlIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZCxcbiAgdHlwZSBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgTGlzdFNjaGVkdWxlZEFjdGlvbnNDb21tYW5kLFxuICB0eXBlIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRhZ3NDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RUYWdzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFZlcnNpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0VmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmQsXG4gIHR5cGUgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kLFxuICB0eXBlIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZElucHV0LFxuICB0eXBlIFB1cmNoYXNlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nQ29tbWFuZE91dHB1dCxcbiAgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kLFxuICB0eXBlIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgUmVtb3ZlVGFnc0NvbW1hbmQsXG4gIHR5cGUgUmVtb3ZlVGFnc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBSZW1vdmVUYWdzQ29tbWFuZE91dHB1dCxcbiAgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICB0eXBlIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZE91dHB1dCxcbiAgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmQsXG4gIHR5cGUgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZE91dHB1dCxcbiAgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICB0eXBlIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICB0eXBlIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVEb21haW5Db25maWdDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlUGFja2FnZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlUGFja2FnZVNjb3BlQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVQYWNrYWdlU2NvcGVDb21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlUGFja2FnZVNjb3BlQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTY2hlZHVsZWRBY3Rpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlVnBjRW5kcG9pbnRDb21tYW5kLFxuICB0eXBlIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgVXBncmFkZURvbWFpbkNvbW1hbmQsXG4gIHR5cGUgVXBncmFkZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGdyYWRlRG9tYWluQ29tbWFuZE91dHB1dCxcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1vcGVuc2VhcmNoXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBY2Nlc3NEZW5pZWRFcnJvcixcbiAgQmFzZUVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBEZXBlbmRlbmN5RmFpbHVyZUVycm9yLFxuICBEaXNhYmxlZE9wZXJhdGlvbkVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBJbnZhbGlkUGFnaW5hdGlvblRva2VuRXJyb3IsXG4gIEludmFsaWRUeXBlRXJyb3IsXG4gIExpbWl0RXhjZWVkZWRFcnJvcixcbiAgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgU2xvdE5vdEF2YWlsYWJsZUVycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgT3BlblNlYXJjaENsaWVudEluc3RhbmNlLFxuICBPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vT3BlblNlYXJjaENsaWVudEluc3RhbmNlXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0T3BlblNlYXJjaENsaWVudENvbmZpZ0xheWVyLFxuICBtYWtlRGVmYXVsdE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgT3BlblNlYXJjaENsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9PcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwSGFuZGxlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgY29ubmVjdGlvbiBwaGFzZSBvZiBhIHJlcXVlc3RcbiAgICogbWF5IHRha2UgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGF0dGVtcHQgaXMgYWJhbmRvbmVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIEFkZERhdGFTb3VyY2VDb21tYW5kLFxuICBBZGREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kLFxuICBBZGRUYWdzQ29tbWFuZCxcbiAgQXNzb2NpYXRlUGFja2FnZUNvbW1hbmQsXG4gIEFzc29jaWF0ZVBhY2thZ2VzQ29tbWFuZCxcbiAgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kLFxuICBDYW5jZWxEb21haW5Db25maWdDaGFuZ2VDb21tYW5kLFxuICBDYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kLFxuICBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gIENyZWF0ZURvbWFpbkNvbW1hbmQsXG4gIENyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmQsXG4gIENyZWF0ZVBhY2thZ2VDb21tYW5kLFxuICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmQsXG4gIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmQsXG4gIERlbGV0ZURpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmQsXG4gIERlbGV0ZURvbWFpbkNvbW1hbmQsXG4gIERlbGV0ZUluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgRGVsZXRlUGFja2FnZUNvbW1hbmQsXG4gIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Db21tYW5kLFxuICBEZXNjcmliZURvbWFpbkF1dG9UdW5lc0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kLFxuICBEZXNjcmliZURvbWFpbkNvbmZpZ0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluSGVhbHRoQ29tbWFuZCxcbiAgRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmQsXG4gIERlc2NyaWJlRG9tYWluc0NvbW1hbmQsXG4gIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kLFxuICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmQsXG4gIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZCxcbiAgRGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zQ29tbWFuZCxcbiAgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5nc0NvbW1hbmQsXG4gIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kLFxuICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmQsXG4gIERpc3NvY2lhdGVQYWNrYWdlQ29tbWFuZCxcbiAgRGlzc29jaWF0ZVBhY2thZ2VzQ29tbWFuZCxcbiAgR2V0QXBwbGljYXRpb25Db21tYW5kLFxuICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kLFxuICBHZXREYXRhU291cmNlQ29tbWFuZCxcbiAgR2V0RGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZCxcbiAgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kLFxuICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kLFxuICBHZXRVcGdyYWRlSGlzdG9yeUNvbW1hbmQsXG4gIEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kLFxuICBMaXN0QXBwbGljYXRpb25zQ29tbWFuZCxcbiAgTGlzdERhdGFTb3VyY2VzQ29tbWFuZCxcbiAgTGlzdERpcmVjdFF1ZXJ5RGF0YVNvdXJjZXNDb21tYW5kLFxuICBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZCxcbiAgTGlzdERvbWFpbk5hbWVzQ29tbWFuZCxcbiAgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZCxcbiAgTGlzdEluc3RhbmNlVHlwZURldGFpbHNDb21tYW5kLFxuICBMaXN0UGFja2FnZXNGb3JEb21haW5Db21tYW5kLFxuICBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmQsXG4gIExpc3RUYWdzQ29tbWFuZCxcbiAgTGlzdFZlcnNpb25zQ29tbWFuZCxcbiAgTGlzdFZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmQsXG4gIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kLFxuICBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmQsXG4gIFJlamVjdEluYm91bmRDb25uZWN0aW9uQ29tbWFuZCxcbiAgUmVtb3ZlVGFnc0NvbW1hbmQsXG4gIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZCxcbiAgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmQsXG4gIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZCxcbiAgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICBVcGRhdGVEYXRhU291cmNlQ29tbWFuZCxcbiAgVXBkYXRlRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZCxcbiAgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZCxcbiAgVXBkYXRlUGFja2FnZUNvbW1hbmQsXG4gIFVwZGF0ZVBhY2thZ2VTY29wZUNvbW1hbmQsXG4gIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmQsXG4gIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZCxcbiAgVXBncmFkZURvbWFpbkNvbW1hbmQsXG59O1xuXG5pbnRlcmZhY2UgT3BlblNlYXJjaFNlcnZpY2UkIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgYWNjZXB0SW5ib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogQWNjZXB0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBY2NlcHRJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkRGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBhZGREYXRhU291cmNlKFxuICAgIGFyZ3M6IEFkZERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBZGREYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGFkZERpcmVjdFF1ZXJ5RGF0YVNvdXJjZShcbiAgICBhcmdzOiBBZGREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBZGREaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBZGRUYWdzQ29tbWFuZH1cbiAgICovXG4gIGFkZFRhZ3MoXG4gICAgYXJnczogQWRkVGFnc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFkZFRhZ3NDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgSW50ZXJuYWxFcnJvciB8IExpbWl0RXhjZWVkZWRFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBBc3NvY2lhdGVQYWNrYWdlQ29tbWFuZH1cbiAgICovXG4gIGFzc29jaWF0ZVBhY2thZ2UoXG4gICAgYXJnczogQXNzb2NpYXRlUGFja2FnZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEFzc29jaWF0ZVBhY2thZ2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEFzc29jaWF0ZVBhY2thZ2VzQ29tbWFuZH1cbiAgICovXG4gIGFzc29jaWF0ZVBhY2thZ2VzKFxuICAgIGFyZ3M6IEFzc29jaWF0ZVBhY2thZ2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQXNzb2NpYXRlUGFja2FnZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgYXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3MoXG4gICAgYXJnczogQXV0aG9yaXplVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBBdXRob3JpemVWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbERvbWFpbkNvbmZpZ0NoYW5nZUNvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxEb21haW5Db25maWdDaGFuZ2UoXG4gICAgYXJnczogQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsRG9tYWluQ29uZmlnQ2hhbmdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENhbmNlbFNlcnZpY2VTb2Z0d2FyZVVwZGF0ZUNvbW1hbmR9XG4gICAqL1xuICBjYW5jZWxTZXJ2aWNlU29mdHdhcmVVcGRhdGUoXG4gICAgYXJnczogQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ2FuY2VsU2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFwcGxpY2F0aW9uKFxuICAgIGFyZ3M6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVEb21haW5Db21tYW5kfVxuICAgKi9cbiAgY3JlYXRlRG9tYWluKFxuICAgIGFyZ3M6IENyZWF0ZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIENyZWF0ZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZU91dGJvdW5kQ29ubmVjdGlvbihcbiAgICBhcmdzOiBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVPdXRib3VuZENvbm5lY3Rpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VBbHJlYWR5RXhpc3RzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVQYWNrYWdlKFxuICAgIGFyZ3M6IENyZWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkVHlwZUVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlVnBjRW5kcG9pbnQoXG4gICAgYXJnczogQ3JlYXRlVnBjRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVWcGNFbmRwb2ludENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVBcHBsaWNhdGlvbihcbiAgICBhcmdzOiBEZWxldGVBcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVEYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURhdGFTb3VyY2UoXG4gICAgYXJnczogRGVsZXRlRGF0YVNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURpcmVjdFF1ZXJ5RGF0YVNvdXJjZShcbiAgICBhcmdzOiBEZWxldGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEaXJlY3RRdWVyeURhdGFTb3VyY2VDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlRG9tYWluQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZURvbWFpbihcbiAgICBhcmdzOiBEZWxldGVEb21haW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVEb21haW5Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlSW5ib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogRGVsZXRlSW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZU91dGJvdW5kQ29ubmVjdGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVPdXRib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlT3V0Ym91bmRDb25uZWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVQYWNrYWdlKFxuICAgIGFyZ3M6IERlbGV0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVWcGNFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVWcGNFbmRwb2ludChcbiAgICBhcmdzOiBEZWxldGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlbGV0ZVZwY0VuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbihcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluQXV0b1R1bmVzKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQXV0b1R1bmVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5BdXRvVHVuZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5DaGFuZ2VQcm9ncmVzc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQ2hhbmdlUHJvZ3Jlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkNoYW5nZVByb2dyZXNzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluQ29uZmlnKFxuICAgIGFyZ3M6IERlc2NyaWJlRG9tYWluQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVEb21haW5Db25maWdDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVEb21haW5IZWFsdGgoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5IZWFsdGhDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbkhlYWx0aENvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURvbWFpbk5vZGVzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWluTm9kZXMoXG4gICAgYXJnczogRGVzY3JpYmVEb21haW5Ob2Rlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRG9tYWluTm9kZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVEb21haW5zQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRG9tYWlucyhcbiAgICBhcmdzOiBEZXNjcmliZURvbWFpbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZURvbWFpbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgSW50ZXJuYWxFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZURyeVJ1blByb2dyZXNzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3MoXG4gICAgYXJnczogRGVzY3JpYmVEcnlSdW5Qcm9ncmVzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlRHJ5UnVuUHJvZ3Jlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnMoXG4gICAgYXJnczogRGVzY3JpYmVJbmJvdW5kQ29ubmVjdGlvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUluYm91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzKFxuICAgIGFyZ3M6IERlc2NyaWJlSW5zdGFuY2VUeXBlTGltaXRzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVJbnN0YW5jZVR5cGVMaW1pdHNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFR5cGVFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZU91dGJvdW5kQ29ubmVjdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVPdXRib3VuZENvbm5lY3Rpb25zKFxuICAgIGFyZ3M6IERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlT3V0Ym91bmRDb25uZWN0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgSW52YWxpZFBhZ2luYXRpb25Ub2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUGFja2FnZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVQYWNrYWdlcyhcbiAgICBhcmdzOiBEZXNjcmliZVBhY2thZ2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVQYWNrYWdlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZU9mZmVyaW5ncyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlUmVzZXJ2ZWRJbnN0YW5jZXNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlcyhcbiAgICBhcmdzOiBEZXNjcmliZVJlc2VydmVkSW5zdGFuY2VzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVSZXNlcnZlZEluc3RhbmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVWcGNFbmRwb2ludHMoXG4gICAgYXJnczogRGVzY3JpYmVWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVZwY0VuZHBvaW50c0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kfVxuICAgKi9cbiAgZGlzc29jaWF0ZVBhY2thZ2UoXG4gICAgYXJnczogRGlzc29jaWF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNzb2NpYXRlUGFja2FnZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGlzc29jaWF0ZVBhY2thZ2VzQ29tbWFuZH1cbiAgICovXG4gIGRpc3NvY2lhdGVQYWNrYWdlcyhcbiAgICBhcmdzOiBEaXNzb2NpYXRlUGFja2FnZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEaXNzb2NpYXRlUGFja2FnZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QXBwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgZ2V0QXBwbGljYXRpb24oXG4gICAgYXJnczogR2V0QXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0Q29tcGF0aWJsZVZlcnNpb25zQ29tbWFuZH1cbiAgICovXG4gIGdldENvbXBhdGlibGVWZXJzaW9ucyhcbiAgICBhcmdzOiBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRDb21wYXRpYmxlVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBnZXREYXRhU291cmNlKFxuICAgIGFyZ3M6IEdldERhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXREYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICBnZXREaXJlY3RRdWVyeURhdGFTb3VyY2UoXG4gICAgYXJnczogR2V0RGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZH1cbiAgICovXG4gIGdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzKFxuICAgIGFyZ3M6IEdldERvbWFpbk1haW50ZW5hbmNlU3RhdHVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0RG9tYWluTWFpbnRlbmFuY2VTdGF0dXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0UGFja2FnZVZlcnNpb25IaXN0b3J5Q29tbWFuZH1cbiAgICovXG4gIGdldFBhY2thZ2VWZXJzaW9uSGlzdG9yeShcbiAgICBhcmdzOiBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRQYWNrYWdlVmVyc2lvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZH1cbiAgICovXG4gIGdldFVwZ3JhZGVIaXN0b3J5KFxuICAgIGFyZ3M6IEdldFVwZ3JhZGVIaXN0b3J5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgR2V0VXBncmFkZUhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0VXBncmFkZVN0YXR1c0NvbW1hbmR9XG4gICAqL1xuICBnZXRVcGdyYWRlU3RhdHVzKFxuICAgIGFyZ3M6IEdldFVwZ3JhZGVTdGF0dXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRVcGdyYWRlU3RhdHVzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RBcHBsaWNhdGlvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFwcGxpY2F0aW9ucyhcbiAgICBhcmdzOiBMaXN0QXBwbGljYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEFwcGxpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERhdGFTb3VyY2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3REYXRhU291cmNlcyhcbiAgICBhcmdzOiBMaXN0RGF0YVNvdXJjZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RGF0YVNvdXJjZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGVwZW5kZW5jeUZhaWx1cmVFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERpcmVjdFF1ZXJ5RGF0YVNvdXJjZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdERpcmVjdFF1ZXJ5RGF0YVNvdXJjZXMoXG4gICAgYXJnczogTGlzdERpcmVjdFF1ZXJ5RGF0YVNvdXJjZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RGlyZWN0UXVlcnlEYXRhU291cmNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RG9tYWluTWFpbnRlbmFuY2VzQ29tbWFuZH1cbiAgICovXG4gIGxpc3REb21haW5NYWludGVuYW5jZXMoXG4gICAgYXJnczogTGlzdERvbWFpbk1haW50ZW5hbmNlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3REb21haW5NYWludGVuYW5jZXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdERvbWFpbk5hbWVzQ29tbWFuZH1cbiAgICovXG4gIGxpc3REb21haW5OYW1lcyhcbiAgICBhcmdzOiBMaXN0RG9tYWluTmFtZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0RG9tYWluTmFtZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgQmFzZUVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3REb21haW5zRm9yUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICBsaXN0RG9tYWluc0ZvclBhY2thZ2UoXG4gICAgYXJnczogTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdERvbWFpbnNGb3JQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0SW5zdGFuY2VUeXBlRGV0YWlscyhcbiAgICBhcmdzOiBMaXN0SW5zdGFuY2VUeXBlRGV0YWlsc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RJbnN0YW5jZVR5cGVEZXRhaWxzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQYWNrYWdlc0ZvckRvbWFpbkNvbW1hbmR9XG4gICAqL1xuICBsaXN0UGFja2FnZXNGb3JEb21haW4oXG4gICAgYXJnczogTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFBhY2thZ2VzRm9yRG9tYWluQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U2NoZWR1bGVkQWN0aW9ucyhcbiAgICBhcmdzOiBMaXN0U2NoZWR1bGVkQWN0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTY2hlZHVsZWRBY3Rpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYWdpbmF0aW9uVG9rZW5FcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFRhZ3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3MoXG4gICAgYXJnczogTGlzdFRhZ3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VmVyc2lvbnNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFZlcnNpb25zKFxuICAgIGFyZ3M6IExpc3RWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0VnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdFZwY0VuZHBvaW50QWNjZXNzKFxuICAgIGFyZ3M6IExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RWcGNFbmRwb2ludEFjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFZwY0VuZHBvaW50c0NvbW1hbmR9XG4gICAqL1xuICBsaXN0VnBjRW5kcG9pbnRzKFxuICAgIGFyZ3M6IExpc3RWcGNFbmRwb2ludHNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VnBjRW5kcG9pbnRzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEJhc2VFcnJvciB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3IgfCBJbnRlcm5hbEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RWcGNFbmRwb2ludHNGb3JEb21haW5Db21tYW5kfVxuICAgKi9cbiAgbGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbihcbiAgICBhcmdzOiBMaXN0VnBjRW5kcG9pbnRzRm9yRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFZwY0VuZHBvaW50c0ZvckRvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kfVxuICAgKi9cbiAgcHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmcoXG4gICAgYXJnczogUHVyY2hhc2VSZXNlcnZlZEluc3RhbmNlT2ZmZXJpbmdDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdXJjaGFzZVJlc2VydmVkSW5zdGFuY2VPZmZlcmluZ0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kfVxuICAgKi9cbiAgcmVqZWN0SW5ib3VuZENvbm5lY3Rpb24oXG4gICAgYXJnczogUmVqZWN0SW5ib3VuZENvbm5lY3Rpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWplY3RJbmJvdW5kQ29ubmVjdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlbW92ZVRhZ3NDb21tYW5kfVxuICAgKi9cbiAgcmVtb3ZlVGFncyhcbiAgICBhcmdzOiBSZW1vdmVUYWdzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVtb3ZlVGFnc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBCYXNlRXJyb3IgfCBJbnRlcm5hbEVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIHJldm9rZVZwY0VuZHBvaW50QWNjZXNzKFxuICAgIGFyZ3M6IFJldm9rZVZwY0VuZHBvaW50QWNjZXNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmV2b2tlVnBjRW5kcG9pbnRBY2Nlc3NDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnREb21haW5NYWludGVuYW5jZUNvbW1hbmR9XG4gICAqL1xuICBzdGFydERvbWFpbk1haW50ZW5hbmNlKFxuICAgIGFyZ3M6IFN0YXJ0RG9tYWluTWFpbnRlbmFuY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydERvbWFpbk1haW50ZW5hbmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlKFxuICAgIGFyZ3M6IFN0YXJ0U2VydmljZVNvZnR3YXJlVXBkYXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRTZXJ2aWNlU29mdHdhcmVVcGRhdGVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlQXBwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlQXBwbGljYXRpb24oXG4gICAgYXJnczogVXBkYXRlQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVBcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEJhc2VFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgRGlzYWJsZWRPcGVyYXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlRGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVEYXRhU291cmNlKFxuICAgIGFyZ3M6IFVwZGF0ZURhdGFTb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERlcGVuZGVuY3lGYWlsdXJlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZURpcmVjdFF1ZXJ5RGF0YVNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVEaXJlY3RRdWVyeURhdGFTb3VyY2UoXG4gICAgYXJnczogVXBkYXRlRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRGlyZWN0UXVlcnlEYXRhU291cmNlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZURvbWFpbkNvbmZpZ0NvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVEb21haW5Db25maWcoXG4gICAgYXJnczogVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlRG9tYWluQ29uZmlnQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRUeXBlRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlUGFja2FnZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVQYWNrYWdlKFxuICAgIGFyZ3M6IFVwZGF0ZVBhY2thZ2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVQYWNrYWdlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVBhY2thZ2VTY29wZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVQYWNrYWdlU2NvcGUoXG4gICAgYXJnczogVXBkYXRlUGFja2FnZVNjb3BlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlUGFja2FnZVNjb3BlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVNjaGVkdWxlZEFjdGlvbkNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVTY2hlZHVsZWRBY3Rpb24oXG4gICAgYXJnczogVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBkYXRlU2NoZWR1bGVkQWN0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IExpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTbG90Tm90QXZhaWxhYmxlRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVWcGNFbmRwb2ludChcbiAgICBhcmdzOiBVcGRhdGVWcGNFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVZwY0VuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBCYXNlRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IERpc2FibGVkT3BlcmF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZ3JhZGVEb21haW5Db21tYW5kfVxuICAgKi9cbiAgdXBncmFkZURvbWFpbihcbiAgICBhcmdzOiBVcGdyYWRlRG9tYWluQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVXBncmFkZURvbWFpbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQmFzZUVycm9yXG4gICAgfCBEaXNhYmxlZE9wZXJhdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBSZXNvdXJjZUFscmVhZHlFeGlzdHNFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBjb25zdHJ1Y3RvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VPcGVuU2VhcmNoU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZSk7XG5cbiAgcmV0dXJuIFJlY29yZC50b0VudHJpZXMoY29tbWFuZHMpLnJlZHVjZSgoYWNjLCBbY29tbWFuZF0pID0+IHtcbiAgICBjb25zdCBDb21tYW5kQ3RvciA9IGNvbW1hbmRzW2NvbW1hbmRdIGFzIGFueTtcbiAgICBjb25zdCBtZXRob2RJbXBsID0gKGFyZ3M6IGFueSwgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucykgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoYWJvcnRTaWduYWwpID0+XG4gICAgICAgICAgY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCB7XG4gICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICBhYm9ydFNpZ25hbCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZSBpbnN0YW5jZW9mIE9wZW5TZWFyY2hTZXJ2aWNlRXhjZXB0aW9uICYmXG4gICAgICAgICAgICBBbGxTZXJ2aWNlRXJyb3JzLmluY2x1ZGVzKGUubmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPE9wZW5TZWFyY2hTZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBPcGVuU2VhcmNoU2VydmljZSQ7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIE9wZW5TZWFyY2hTZXJ2aWNlIGV4dGVuZHMgRWZmZWN0LlRhZyhcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtb3BlbnNlYXJjaC9PcGVuU2VhcmNoU2VydmljZVwiLFxuKTxPcGVuU2VhcmNoU2VydmljZSwgT3BlblNlYXJjaFNlcnZpY2UkPigpIHtcbiAgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRMYXllciA9IExheWVyLmVmZmVjdCh0aGlzLCBtYWtlT3BlblNlYXJjaFNlcnZpY2UpLnBpcGUoXG4gICAgTGF5ZXIucHJvdmlkZShPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgTGF5ZXIucHJvdmlkZShEZWZhdWx0T3BlblNlYXJjaENsaWVudENvbmZpZ0xheWVyKSxcbiAgKTtcbiAgc3RhdGljIHJlYWRvbmx5IGxheWVyID0gKGNvbmZpZzogT3BlblNlYXJjaENsaWVudENvbmZpZykgPT5cbiAgICBMYXllci5lZmZlY3QodGhpcywgbWFrZU9wZW5TZWFyY2hTZXJ2aWNlKS5waXBlKFxuICAgICAgTGF5ZXIucHJvdmlkZShPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2VMYXllciksXG4gICAgICBMYXllci5wcm92aWRlKFxuICAgICAgICBMYXllci5lZmZlY3QoXG4gICAgICAgICAgT3BlblNlYXJjaENsaWVudEluc3RhbmNlQ29uZmlnLFxuICAgICAgICAgIG1ha2VEZWZhdWx0T3BlblNlYXJjaENsaWVudEluc3RhbmNlQ29uZmlnLnBpcGUoXG4gICAgICAgICAgICBFZmZlY3QubWFwKChkZWZhdWx0Q29uZmlnKSA9PiAoeyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSkpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIHN0YXRpYyByZWFkb25seSBiYXNlTGF5ZXIgPSAoXG4gICAgZXZhbHVhdGU6IChkZWZhdWx0Q29uZmlnOiBPcGVuU2VhcmNoQ2xpZW50Q29uZmlnKSA9PiBPcGVuU2VhcmNoQ2xpZW50LFxuICApID0+XG4gICAgTGF5ZXIuZWZmZWN0KHRoaXMsIG1ha2VPcGVuU2VhcmNoU2VydmljZSkucGlwZShcbiAgICAgIExheWVyLnByb3ZpZGUoXG4gICAgICAgIExheWVyLmVmZmVjdChcbiAgICAgICAgICBPcGVuU2VhcmNoQ2xpZW50SW5zdGFuY2UsXG4gICAgICAgICAgRWZmZWN0Lm1hcChtYWtlRGVmYXVsdE9wZW5TZWFyY2hDbGllbnRJbnN0YW5jZUNvbmZpZywgZXZhbHVhdGUpLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IG1vZGVsc1xuICogQGFsaWFzIE9wZW5TZWFyY2hTZXJ2aWNlXG4gKi9cbmV4cG9ydCBjb25zdCBPcGVuU2VhcmNoID0gT3BlblNlYXJjaFNlcnZpY2U7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKiBAZGVwcmVjYXRlZCB1c2UgT3BlblNlYXJjaC5iYXNlTGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgQmFzZU9wZW5TZWFyY2hTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIE9wZW5TZWFyY2hTZXJ2aWNlLFxuICBtYWtlT3BlblNlYXJjaFNlcnZpY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICogQGRlcHJlY2F0ZWQgdXNlIE9wZW5TZWFyY2gubGF5ZXIgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgT3BlblNlYXJjaFNlcnZpY2VMYXllciA9IEJhc2VPcGVuU2VhcmNoU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoT3BlblNlYXJjaENsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqIEBkZXByZWNhdGVkIHVzZSBPcGVuU2VhcmNoLmRlZmF1bHRMYXllciBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0T3BlblNlYXJjaFNlcnZpY2VMYXllciA9IE9wZW5TZWFyY2hTZXJ2aWNlLmRlZmF1bHRMYXllcjtcbiJdfQ==
|