@effect-aws/client-sfn 1.2.0 → 1.4.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.
@@ -1,172 +1,221 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import { CreateActivityCommandInput, CreateActivityCommandOutput, CreateStateMachineAliasCommandInput, CreateStateMachineAliasCommandOutput, CreateStateMachineCommandInput, CreateStateMachineCommandOutput, DeleteActivityCommandInput, DeleteActivityCommandOutput, DeleteStateMachineAliasCommandInput, DeleteStateMachineAliasCommandOutput, DeleteStateMachineCommandInput, DeleteStateMachineCommandOutput, DeleteStateMachineVersionCommandInput, DeleteStateMachineVersionCommandOutput, DescribeActivityCommandInput, DescribeActivityCommandOutput, DescribeExecutionCommandInput, DescribeExecutionCommandOutput, DescribeMapRunCommandInput, DescribeMapRunCommandOutput, DescribeStateMachineAliasCommandInput, DescribeStateMachineAliasCommandOutput, DescribeStateMachineCommandInput, DescribeStateMachineCommandOutput, DescribeStateMachineForExecutionCommandInput, DescribeStateMachineForExecutionCommandOutput, GetActivityTaskCommandInput, GetActivityTaskCommandOutput, GetExecutionHistoryCommandInput, GetExecutionHistoryCommandOutput, ListActivitiesCommandInput, ListActivitiesCommandOutput, ListExecutionsCommandInput, ListExecutionsCommandOutput, ListMapRunsCommandInput, ListMapRunsCommandOutput, ListStateMachineAliasesCommandInput, ListStateMachineAliasesCommandOutput, ListStateMachineVersionsCommandInput, ListStateMachineVersionsCommandOutput, ListStateMachinesCommandInput, ListStateMachinesCommandOutput, ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput, PublishStateMachineVersionCommandInput, PublishStateMachineVersionCommandOutput, RedriveExecutionCommandInput, RedriveExecutionCommandOutput, SendTaskFailureCommandInput, SendTaskFailureCommandOutput, SendTaskHeartbeatCommandInput, SendTaskHeartbeatCommandOutput, SendTaskSuccessCommandInput, SendTaskSuccessCommandOutput, StartExecutionCommandInput, StartExecutionCommandOutput, StartSyncExecutionCommandInput, StartSyncExecutionCommandOutput, StopExecutionCommandInput, StopExecutionCommandOutput, TagResourceCommandInput, TagResourceCommandOutput, TestStateCommandInput, TestStateCommandOutput, UntagResourceCommandInput, UntagResourceCommandOutput, UpdateMapRunCommandInput, UpdateMapRunCommandOutput, UpdateStateMachineAliasCommandInput, UpdateStateMachineAliasCommandOutput, UpdateStateMachineCommandInput, UpdateStateMachineCommandOutput } from "@aws-sdk/client-sfn";
5
- import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types";
6
- import { Context, Effect, Layer } from "effect";
7
- import { ActivityDoesNotExistError, ActivityLimitExceededError, ActivityWorkerLimitExceededError, ConflictError, ExecutionAlreadyExistsError, ExecutionDoesNotExistError, ExecutionLimitExceededError, ExecutionNotRedrivableError, InvalidArnError, InvalidDefinitionError, InvalidExecutionInputError, InvalidLoggingConfigurationError, InvalidNameError, InvalidOutputError, InvalidTokenError, InvalidTracingConfigurationError, MissingRequiredParameterError, ResourceNotFoundError, SdkError, ServiceQuotaExceededError, StateMachineAlreadyExistsError, StateMachineDeletingError, StateMachineDoesNotExistError, StateMachineLimitExceededError, StateMachineTypeNotSupportedError, TaskDoesNotExistError, TaskTimedOutError, TooManyTagsError, ValidationError } from "./Errors";
4
+ import { type CreateActivityCommandInput, type CreateActivityCommandOutput, type CreateStateMachineCommandInput, type CreateStateMachineCommandOutput, type CreateStateMachineAliasCommandInput, type CreateStateMachineAliasCommandOutput, type DeleteActivityCommandInput, type DeleteActivityCommandOutput, type DeleteStateMachineCommandInput, type DeleteStateMachineCommandOutput, type DeleteStateMachineAliasCommandInput, type DeleteStateMachineAliasCommandOutput, type DeleteStateMachineVersionCommandInput, type DeleteStateMachineVersionCommandOutput, type DescribeActivityCommandInput, type DescribeActivityCommandOutput, type DescribeExecutionCommandInput, type DescribeExecutionCommandOutput, type DescribeMapRunCommandInput, type DescribeMapRunCommandOutput, type DescribeStateMachineCommandInput, type DescribeStateMachineCommandOutput, type DescribeStateMachineAliasCommandInput, type DescribeStateMachineAliasCommandOutput, type DescribeStateMachineForExecutionCommandInput, type DescribeStateMachineForExecutionCommandOutput, type GetActivityTaskCommandInput, type GetActivityTaskCommandOutput, type GetExecutionHistoryCommandInput, type GetExecutionHistoryCommandOutput, type ListActivitiesCommandInput, type ListActivitiesCommandOutput, type ListExecutionsCommandInput, type ListExecutionsCommandOutput, type ListMapRunsCommandInput, type ListMapRunsCommandOutput, type ListStateMachineAliasesCommandInput, type ListStateMachineAliasesCommandOutput, type ListStateMachinesCommandInput, type ListStateMachinesCommandOutput, type ListStateMachineVersionsCommandInput, type ListStateMachineVersionsCommandOutput, type ListTagsForResourceCommandInput, type ListTagsForResourceCommandOutput, type PublishStateMachineVersionCommandInput, type PublishStateMachineVersionCommandOutput, type RedriveExecutionCommandInput, type RedriveExecutionCommandOutput, type SendTaskFailureCommandInput, type SendTaskFailureCommandOutput, type SendTaskHeartbeatCommandInput, type SendTaskHeartbeatCommandOutput, type SendTaskSuccessCommandInput, type SendTaskSuccessCommandOutput, type StartExecutionCommandInput, type StartExecutionCommandOutput, type StartSyncExecutionCommandInput, type StartSyncExecutionCommandOutput, type StopExecutionCommandInput, type StopExecutionCommandOutput, type TagResourceCommandInput, type TagResourceCommandOutput, type TestStateCommandInput, type TestStateCommandOutput, type UntagResourceCommandInput, type UntagResourceCommandOutput, type UpdateMapRunCommandInput, type UpdateMapRunCommandOutput, type UpdateStateMachineCommandInput, type UpdateStateMachineCommandOutput, type UpdateStateMachineAliasCommandInput, type UpdateStateMachineAliasCommandOutput, type ValidateStateMachineDefinitionCommandInput, type ValidateStateMachineDefinitionCommandOutput } from "@aws-sdk/client-sfn";
5
+ import { Effect, Layer } from "effect";
6
+ import { ActivityAlreadyExistsError, ActivityDoesNotExistError, ActivityLimitExceededError, ActivityWorkerLimitExceededError, ConflictError, ExecutionAlreadyExistsError, ExecutionDoesNotExistError, ExecutionLimitExceededError, ExecutionNotRedrivableError, InvalidArnError, InvalidDefinitionError, InvalidEncryptionConfigurationError, InvalidExecutionInputError, InvalidLoggingConfigurationError, InvalidNameError, InvalidOutputError, InvalidTokenError, InvalidTracingConfigurationError, KmsAccessDeniedError, KmsInvalidStateError, KmsThrottlingError, MissingRequiredParameterError, ResourceNotFoundError, ServiceQuotaExceededError, StateMachineAlreadyExistsError, StateMachineDeletingError, StateMachineDoesNotExistError, StateMachineLimitExceededError, StateMachineTypeNotSupportedError, TaskDoesNotExistError, TaskTimedOutError, TooManyTagsError, ValidationError, SdkError } from "./Errors";
8
7
  import { SFNClientInstance } from "./SFNClientInstance";
9
- /**
10
- * @since 1.0.0
11
- * @category models
12
- */
13
- export interface SFNService {
8
+ interface HttpHandlerOptions {
9
+ /**
10
+ * The maximum time in milliseconds that the connection phase of a request
11
+ * may take before the connection attempt is abandoned.
12
+ */
13
+ requestTimeout?: number;
14
+ }
15
+ interface SFNService$ {
14
16
  readonly _: unique symbol;
15
17
  /**
16
18
  * @see {@link CreateActivityCommand}
17
19
  */
18
- createActivity(args: CreateActivityCommandInput, options?: __HttpHandlerOptions): Effect.Effect<CreateActivityCommandOutput, SdkError | ActivityLimitExceededError | InvalidNameError | TooManyTagsError>;
20
+ createActivity(args: CreateActivityCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateActivityCommandOutput, SdkError | ActivityAlreadyExistsError | ActivityLimitExceededError | InvalidEncryptionConfigurationError | InvalidNameError | KmsAccessDeniedError | KmsThrottlingError | TooManyTagsError>;
19
21
  /**
20
22
  * @see {@link CreateStateMachineCommand}
21
23
  */
22
- createStateMachine(args: CreateStateMachineCommandInput, options?: __HttpHandlerOptions): Effect.Effect<CreateStateMachineCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidDefinitionError | InvalidLoggingConfigurationError | InvalidNameError | InvalidTracingConfigurationError | StateMachineAlreadyExistsError | StateMachineDeletingError | StateMachineLimitExceededError | StateMachineTypeNotSupportedError | TooManyTagsError | ValidationError>;
24
+ createStateMachine(args: CreateStateMachineCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateStateMachineCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidNameError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | StateMachineAlreadyExistsError | StateMachineDeletingError | StateMachineLimitExceededError | StateMachineTypeNotSupportedError | TooManyTagsError | ValidationError>;
23
25
  /**
24
26
  * @see {@link CreateStateMachineAliasCommand}
25
27
  */
26
- createStateMachineAlias(args: CreateStateMachineAliasCommandInput, options?: __HttpHandlerOptions): Effect.Effect<CreateStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidNameError | ResourceNotFoundError | ServiceQuotaExceededError | StateMachineDeletingError | ValidationError>;
28
+ createStateMachineAlias(args: CreateStateMachineAliasCommandInput, options?: HttpHandlerOptions): Effect.Effect<CreateStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidNameError | ResourceNotFoundError | ServiceQuotaExceededError | StateMachineDeletingError | ValidationError>;
27
29
  /**
28
30
  * @see {@link DeleteActivityCommand}
29
31
  */
30
- deleteActivity(args: DeleteActivityCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DeleteActivityCommandOutput, SdkError | InvalidArnError>;
32
+ deleteActivity(args: DeleteActivityCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteActivityCommandOutput, SdkError | InvalidArnError>;
31
33
  /**
32
34
  * @see {@link DeleteStateMachineCommand}
33
35
  */
34
- deleteStateMachine(args: DeleteStateMachineCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DeleteStateMachineCommandOutput, SdkError | InvalidArnError | ValidationError>;
36
+ deleteStateMachine(args: DeleteStateMachineCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteStateMachineCommandOutput, SdkError | InvalidArnError | ValidationError>;
35
37
  /**
36
38
  * @see {@link DeleteStateMachineAliasCommand}
37
39
  */
38
- deleteStateMachineAlias(args: DeleteStateMachineAliasCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DeleteStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | ResourceNotFoundError | ValidationError>;
40
+ deleteStateMachineAlias(args: DeleteStateMachineAliasCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | ResourceNotFoundError | ValidationError>;
39
41
  /**
40
42
  * @see {@link DeleteStateMachineVersionCommand}
41
43
  */
42
- deleteStateMachineVersion(args: DeleteStateMachineVersionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DeleteStateMachineVersionCommandOutput, SdkError | ConflictError | InvalidArnError | ValidationError>;
44
+ deleteStateMachineVersion(args: DeleteStateMachineVersionCommandInput, options?: HttpHandlerOptions): Effect.Effect<DeleteStateMachineVersionCommandOutput, SdkError | ConflictError | InvalidArnError | ValidationError>;
43
45
  /**
44
46
  * @see {@link DescribeActivityCommand}
45
47
  */
46
- describeActivity(args: DescribeActivityCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeActivityCommandOutput, SdkError | ActivityDoesNotExistError | InvalidArnError>;
48
+ describeActivity(args: DescribeActivityCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeActivityCommandOutput, SdkError | ActivityDoesNotExistError | InvalidArnError>;
47
49
  /**
48
50
  * @see {@link DescribeExecutionCommand}
49
51
  */
50
- describeExecution(args: DescribeExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError>;
52
+ describeExecution(args: DescribeExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
51
53
  /**
52
54
  * @see {@link DescribeMapRunCommand}
53
55
  */
54
- describeMapRun(args: DescribeMapRunCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeMapRunCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
56
+ describeMapRun(args: DescribeMapRunCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeMapRunCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
55
57
  /**
56
58
  * @see {@link DescribeStateMachineCommand}
57
59
  */
58
- describeStateMachine(args: DescribeStateMachineCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeStateMachineCommandOutput, SdkError | InvalidArnError | StateMachineDoesNotExistError>;
60
+ describeStateMachine(args: DescribeStateMachineCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeStateMachineCommandOutput, SdkError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDoesNotExistError>;
59
61
  /**
60
62
  * @see {@link DescribeStateMachineAliasCommand}
61
63
  */
62
- describeStateMachineAlias(args: DescribeStateMachineAliasCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeStateMachineAliasCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | ValidationError>;
64
+ describeStateMachineAlias(args: DescribeStateMachineAliasCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeStateMachineAliasCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | ValidationError>;
63
65
  /**
64
66
  * @see {@link DescribeStateMachineForExecutionCommand}
65
67
  */
66
- describeStateMachineForExecution(args: DescribeStateMachineForExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<DescribeStateMachineForExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError>;
68
+ describeStateMachineForExecution(args: DescribeStateMachineForExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<DescribeStateMachineForExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
67
69
  /**
68
70
  * @see {@link GetActivityTaskCommand}
69
71
  */
70
- getActivityTask(args: GetActivityTaskCommandInput, options?: __HttpHandlerOptions): Effect.Effect<GetActivityTaskCommandOutput, SdkError | ActivityDoesNotExistError | ActivityWorkerLimitExceededError | InvalidArnError>;
72
+ getActivityTask(args: GetActivityTaskCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetActivityTaskCommandOutput, SdkError | ActivityDoesNotExistError | ActivityWorkerLimitExceededError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
71
73
  /**
72
74
  * @see {@link GetExecutionHistoryCommand}
73
75
  */
74
- getExecutionHistory(args: GetExecutionHistoryCommandInput, options?: __HttpHandlerOptions): Effect.Effect<GetExecutionHistoryCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError>;
76
+ getExecutionHistory(args: GetExecutionHistoryCommandInput, options?: HttpHandlerOptions): Effect.Effect<GetExecutionHistoryCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError>;
75
77
  /**
76
78
  * @see {@link ListActivitiesCommand}
77
79
  */
78
- listActivities(args: ListActivitiesCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListActivitiesCommandOutput, SdkError | InvalidTokenError>;
80
+ listActivities(args: ListActivitiesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListActivitiesCommandOutput, SdkError | InvalidTokenError>;
79
81
  /**
80
82
  * @see {@link ListExecutionsCommand}
81
83
  */
82
- listExecutions(args: ListExecutionsCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListExecutionsCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError | ValidationError>;
84
+ listExecutions(args: ListExecutionsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListExecutionsCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError | ValidationError>;
83
85
  /**
84
86
  * @see {@link ListMapRunsCommand}
85
87
  */
86
- listMapRuns(args: ListMapRunsCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListMapRunsCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError>;
88
+ listMapRuns(args: ListMapRunsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListMapRunsCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError>;
87
89
  /**
88
90
  * @see {@link ListStateMachineAliasesCommand}
89
91
  */
90
- listStateMachineAliases(args: ListStateMachineAliasesCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListStateMachineAliasesCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDeletingError | StateMachineDoesNotExistError>;
92
+ listStateMachineAliases(args: ListStateMachineAliasesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListStateMachineAliasesCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDeletingError | StateMachineDoesNotExistError>;
91
93
  /**
92
94
  * @see {@link ListStateMachinesCommand}
93
95
  */
94
- listStateMachines(args: ListStateMachinesCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListStateMachinesCommandOutput, SdkError | InvalidTokenError>;
96
+ listStateMachines(args: ListStateMachinesCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListStateMachinesCommandOutput, SdkError | InvalidTokenError>;
95
97
  /**
96
98
  * @see {@link ListStateMachineVersionsCommand}
97
99
  */
98
- listStateMachineVersions(args: ListStateMachineVersionsCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListStateMachineVersionsCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ValidationError>;
100
+ listStateMachineVersions(args: ListStateMachineVersionsCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListStateMachineVersionsCommandOutput, SdkError | InvalidArnError | InvalidTokenError | ValidationError>;
99
101
  /**
100
102
  * @see {@link ListTagsForResourceCommand}
101
103
  */
102
- listTagsForResource(args: ListTagsForResourceCommandInput, options?: __HttpHandlerOptions): Effect.Effect<ListTagsForResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
104
+ listTagsForResource(args: ListTagsForResourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<ListTagsForResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
103
105
  /**
104
106
  * @see {@link PublishStateMachineVersionCommand}
105
107
  */
106
- publishStateMachineVersion(args: PublishStateMachineVersionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<PublishStateMachineVersionCommandOutput, SdkError | ConflictError | InvalidArnError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
108
+ publishStateMachineVersion(args: PublishStateMachineVersionCommandInput, options?: HttpHandlerOptions): Effect.Effect<PublishStateMachineVersionCommandOutput, SdkError | ConflictError | InvalidArnError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
107
109
  /**
108
110
  * @see {@link RedriveExecutionCommand}
109
111
  */
110
- redriveExecution(args: RedriveExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<RedriveExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | ExecutionLimitExceededError | ExecutionNotRedrivableError | InvalidArnError>;
112
+ redriveExecution(args: RedriveExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<RedriveExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | ExecutionLimitExceededError | ExecutionNotRedrivableError | InvalidArnError | ValidationError>;
111
113
  /**
112
114
  * @see {@link SendTaskFailureCommand}
113
115
  */
114
- sendTaskFailure(args: SendTaskFailureCommandInput, options?: __HttpHandlerOptions): Effect.Effect<SendTaskFailureCommandOutput, SdkError | InvalidTokenError | TaskDoesNotExistError | TaskTimedOutError>;
116
+ sendTaskFailure(args: SendTaskFailureCommandInput, options?: HttpHandlerOptions): Effect.Effect<SendTaskFailureCommandOutput, SdkError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError>;
115
117
  /**
116
118
  * @see {@link SendTaskHeartbeatCommand}
117
119
  */
118
- sendTaskHeartbeat(args: SendTaskHeartbeatCommandInput, options?: __HttpHandlerOptions): Effect.Effect<SendTaskHeartbeatCommandOutput, SdkError | InvalidTokenError | TaskDoesNotExistError | TaskTimedOutError>;
120
+ sendTaskHeartbeat(args: SendTaskHeartbeatCommandInput, options?: HttpHandlerOptions): Effect.Effect<SendTaskHeartbeatCommandOutput, SdkError | InvalidTokenError | TaskDoesNotExistError | TaskTimedOutError>;
119
121
  /**
120
122
  * @see {@link SendTaskSuccessCommand}
121
123
  */
122
- sendTaskSuccess(args: SendTaskSuccessCommandInput, options?: __HttpHandlerOptions): Effect.Effect<SendTaskSuccessCommandOutput, SdkError | InvalidOutputError | InvalidTokenError | TaskDoesNotExistError | TaskTimedOutError>;
124
+ sendTaskSuccess(args: SendTaskSuccessCommandInput, options?: HttpHandlerOptions): Effect.Effect<SendTaskSuccessCommandOutput, SdkError | InvalidOutputError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError>;
123
125
  /**
124
126
  * @see {@link StartExecutionCommand}
125
127
  */
126
- startExecution(args: StartExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<StartExecutionCommandOutput, SdkError | ExecutionAlreadyExistsError | ExecutionLimitExceededError | InvalidArnError | InvalidExecutionInputError | InvalidNameError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
128
+ startExecution(args: StartExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<StartExecutionCommandOutput, SdkError | ExecutionAlreadyExistsError | ExecutionLimitExceededError | InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
127
129
  /**
128
130
  * @see {@link StartSyncExecutionCommand}
129
131
  */
130
- startSyncExecution(args: StartSyncExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<StartSyncExecutionCommandOutput, SdkError | InvalidArnError | InvalidExecutionInputError | InvalidNameError | StateMachineDeletingError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError>;
132
+ startSyncExecution(args: StartSyncExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<StartSyncExecutionCommandOutput, SdkError | InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError>;
131
133
  /**
132
134
  * @see {@link StopExecutionCommand}
133
135
  */
134
- stopExecution(args: StopExecutionCommandInput, options?: __HttpHandlerOptions): Effect.Effect<StopExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | ValidationError>;
136
+ stopExecution(args: StopExecutionCommandInput, options?: HttpHandlerOptions): Effect.Effect<StopExecutionCommandOutput, SdkError | ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | ValidationError>;
135
137
  /**
136
138
  * @see {@link TagResourceCommand}
137
139
  */
138
- tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Effect.Effect<TagResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | TooManyTagsError>;
140
+ tagResource(args: TagResourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<TagResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | TooManyTagsError>;
139
141
  /**
140
142
  * @see {@link TestStateCommand}
141
143
  */
142
- testState(args: TestStateCommandInput, options?: __HttpHandlerOptions): Effect.Effect<TestStateCommandOutput, SdkError | InvalidArnError | InvalidDefinitionError | InvalidExecutionInputError | ValidationError>;
144
+ testState(args: TestStateCommandInput, options?: HttpHandlerOptions): Effect.Effect<TestStateCommandOutput, SdkError | InvalidArnError | InvalidDefinitionError | InvalidExecutionInputError | ValidationError>;
143
145
  /**
144
146
  * @see {@link UntagResourceCommand}
145
147
  */
146
- untagResource(args: UntagResourceCommandInput, options?: __HttpHandlerOptions): Effect.Effect<UntagResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
148
+ untagResource(args: UntagResourceCommandInput, options?: HttpHandlerOptions): Effect.Effect<UntagResourceCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError>;
147
149
  /**
148
150
  * @see {@link UpdateMapRunCommand}
149
151
  */
150
- updateMapRun(args: UpdateMapRunCommandInput, options?: __HttpHandlerOptions): Effect.Effect<UpdateMapRunCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | ValidationError>;
152
+ updateMapRun(args: UpdateMapRunCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateMapRunCommandOutput, SdkError | InvalidArnError | ResourceNotFoundError | ValidationError>;
151
153
  /**
152
154
  * @see {@link UpdateStateMachineCommand}
153
155
  */
154
- updateStateMachine(args: UpdateStateMachineCommandInput, options?: __HttpHandlerOptions): Effect.Effect<UpdateStateMachineCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidDefinitionError | InvalidLoggingConfigurationError | InvalidTracingConfigurationError | MissingRequiredParameterError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
156
+ updateStateMachine(args: UpdateStateMachineCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateStateMachineCommandOutput, SdkError | ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | MissingRequiredParameterError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError>;
155
157
  /**
156
158
  * @see {@link UpdateStateMachineAliasCommand}
157
159
  */
158
- updateStateMachineAlias(args: UpdateStateMachineAliasCommandInput, options?: __HttpHandlerOptions): Effect.Effect<UpdateStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | ResourceNotFoundError | StateMachineDeletingError | ValidationError>;
160
+ updateStateMachineAlias(args: UpdateStateMachineAliasCommandInput, options?: HttpHandlerOptions): Effect.Effect<UpdateStateMachineAliasCommandOutput, SdkError | ConflictError | InvalidArnError | ResourceNotFoundError | StateMachineDeletingError | ValidationError>;
161
+ /**
162
+ * @see {@link ValidateStateMachineDefinitionCommand}
163
+ */
164
+ validateStateMachineDefinition(args: ValidateStateMachineDefinitionCommandInput, options?: HttpHandlerOptions): Effect.Effect<ValidateStateMachineDefinitionCommandOutput, SdkError | ValidationError>;
159
165
  }
166
+ declare const SFNService_base: import("effect/Context").TagClass<SFNService, "@effect-aws/client-sfn/SFNService", SFNService$> & {
167
+ readonly _: Effect.Effect<SFNService$["_"], never, SFNService>;
168
+ createActivity: (args: CreateActivityCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateActivityCommandOutput, ActivityAlreadyExistsError | ActivityLimitExceededError | InvalidEncryptionConfigurationError | InvalidNameError | KmsAccessDeniedError | KmsThrottlingError | TooManyTagsError | SdkError, SFNService>;
169
+ createStateMachine: (args: CreateStateMachineCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateStateMachineCommandOutput, ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidNameError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | StateMachineAlreadyExistsError | StateMachineDeletingError | StateMachineLimitExceededError | StateMachineTypeNotSupportedError | TooManyTagsError | ValidationError | SdkError, SFNService>;
170
+ createStateMachineAlias: (args: CreateStateMachineAliasCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<CreateStateMachineAliasCommandOutput, ConflictError | InvalidArnError | InvalidNameError | ResourceNotFoundError | ServiceQuotaExceededError | StateMachineDeletingError | ValidationError | SdkError, SFNService>;
171
+ deleteActivity: (args: DeleteActivityCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteActivityCommandOutput, InvalidArnError | SdkError, SFNService>;
172
+ deleteStateMachine: (args: DeleteStateMachineCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteStateMachineCommandOutput, InvalidArnError | ValidationError | SdkError, SFNService>;
173
+ deleteStateMachineAlias: (args: DeleteStateMachineAliasCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteStateMachineAliasCommandOutput, ConflictError | InvalidArnError | ResourceNotFoundError | ValidationError | SdkError, SFNService>;
174
+ deleteStateMachineVersion: (args: DeleteStateMachineVersionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DeleteStateMachineVersionCommandOutput, ConflictError | InvalidArnError | ValidationError | SdkError, SFNService>;
175
+ describeActivity: (args: DescribeActivityCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeActivityCommandOutput, ActivityDoesNotExistError | InvalidArnError | SdkError, SFNService>;
176
+ describeExecution: (args: DescribeExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeExecutionCommandOutput, ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
177
+ describeMapRun: (args: DescribeMapRunCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeMapRunCommandOutput, InvalidArnError | ResourceNotFoundError | SdkError, SFNService>;
178
+ describeStateMachine: (args: DescribeStateMachineCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeStateMachineCommandOutput, InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDoesNotExistError | SdkError, SFNService>;
179
+ describeStateMachineAlias: (args: DescribeStateMachineAliasCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeStateMachineAliasCommandOutput, InvalidArnError | ResourceNotFoundError | ValidationError | SdkError, SFNService>;
180
+ describeStateMachineForExecution: (args: DescribeStateMachineForExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<DescribeStateMachineForExecutionCommandOutput, ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
181
+ getActivityTask: (args: GetActivityTaskCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetActivityTaskCommandOutput, ActivityDoesNotExistError | ActivityWorkerLimitExceededError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
182
+ getExecutionHistory: (args: GetExecutionHistoryCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<GetExecutionHistoryCommandOutput, ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | SdkError, SFNService>;
183
+ listActivities: (args: ListActivitiesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListActivitiesCommandOutput, InvalidTokenError | SdkError, SFNService>;
184
+ listExecutions: (args: ListExecutionsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListExecutionsCommandOutput, InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError | ValidationError | SdkError, SFNService>;
185
+ listMapRuns: (args: ListMapRunsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListMapRunsCommandOutput, ExecutionDoesNotExistError | InvalidArnError | InvalidTokenError | SdkError, SFNService>;
186
+ listStateMachineAliases: (args: ListStateMachineAliasesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListStateMachineAliasesCommandOutput, InvalidArnError | InvalidTokenError | ResourceNotFoundError | StateMachineDeletingError | StateMachineDoesNotExistError | SdkError, SFNService>;
187
+ listStateMachines: (args: ListStateMachinesCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListStateMachinesCommandOutput, InvalidTokenError | SdkError, SFNService>;
188
+ listStateMachineVersions: (args: ListStateMachineVersionsCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListStateMachineVersionsCommandOutput, InvalidArnError | InvalidTokenError | ValidationError | SdkError, SFNService>;
189
+ listTagsForResource: (args: ListTagsForResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ListTagsForResourceCommandOutput, InvalidArnError | ResourceNotFoundError | SdkError, SFNService>;
190
+ publishStateMachineVersion: (args: PublishStateMachineVersionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<PublishStateMachineVersionCommandOutput, ConflictError | InvalidArnError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError | SdkError, SFNService>;
191
+ redriveExecution: (args: RedriveExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<RedriveExecutionCommandOutput, ExecutionDoesNotExistError | ExecutionLimitExceededError | ExecutionNotRedrivableError | InvalidArnError | ValidationError | SdkError, SFNService>;
192
+ sendTaskFailure: (args: SendTaskFailureCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<SendTaskFailureCommandOutput, InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError | SdkError, SFNService>;
193
+ sendTaskHeartbeat: (args: SendTaskHeartbeatCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<SendTaskHeartbeatCommandOutput, InvalidTokenError | TaskDoesNotExistError | TaskTimedOutError | SdkError, SFNService>;
194
+ sendTaskSuccess: (args: SendTaskSuccessCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<SendTaskSuccessCommandOutput, InvalidOutputError | InvalidTokenError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | TaskDoesNotExistError | TaskTimedOutError | SdkError, SFNService>;
195
+ startExecution: (args: StartExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StartExecutionCommandOutput, ExecutionAlreadyExistsError | ExecutionLimitExceededError | InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError | SdkError, SFNService>;
196
+ startSyncExecution: (args: StartSyncExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StartSyncExecutionCommandOutput, InvalidArnError | InvalidExecutionInputError | InvalidNameError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | StateMachineDeletingError | StateMachineDoesNotExistError | StateMachineTypeNotSupportedError | SdkError, SFNService>;
197
+ stopExecution: (args: StopExecutionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<StopExecutionCommandOutput, ExecutionDoesNotExistError | InvalidArnError | KmsAccessDeniedError | KmsInvalidStateError | KmsThrottlingError | ValidationError | SdkError, SFNService>;
198
+ tagResource: (args: TagResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<TagResourceCommandOutput, InvalidArnError | ResourceNotFoundError | TooManyTagsError | SdkError, SFNService>;
199
+ testState: (args: TestStateCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<TestStateCommandOutput, InvalidArnError | InvalidDefinitionError | InvalidExecutionInputError | ValidationError | SdkError, SFNService>;
200
+ untagResource: (args: UntagResourceCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UntagResourceCommandOutput, InvalidArnError | ResourceNotFoundError | SdkError, SFNService>;
201
+ updateMapRun: (args: UpdateMapRunCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateMapRunCommandOutput, InvalidArnError | ResourceNotFoundError | ValidationError | SdkError, SFNService>;
202
+ updateStateMachine: (args: UpdateStateMachineCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateStateMachineCommandOutput, ConflictError | InvalidArnError | InvalidDefinitionError | InvalidEncryptionConfigurationError | InvalidLoggingConfigurationError | InvalidTracingConfigurationError | KmsAccessDeniedError | KmsThrottlingError | MissingRequiredParameterError | ServiceQuotaExceededError | StateMachineDeletingError | StateMachineDoesNotExistError | ValidationError | SdkError, SFNService>;
203
+ updateStateMachineAlias: (args: UpdateStateMachineAliasCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<UpdateStateMachineAliasCommandOutput, ConflictError | InvalidArnError | ResourceNotFoundError | StateMachineDeletingError | ValidationError | SdkError, SFNService>;
204
+ validateStateMachineDefinition: (args: ValidateStateMachineDefinitionCommandInput, options?: HttpHandlerOptions | undefined) => Effect.Effect<ValidateStateMachineDefinitionCommandOutput, ValidationError | SdkError, SFNService>;
205
+ } & {
206
+ use: <X>(body: (_: SFNService$) => X) => X extends Effect.Effect<infer A, infer E, infer R> ? Effect.Effect<A, E, R | SFNService> : Effect.Effect<X, never, SFNService>;
207
+ };
160
208
  /**
161
209
  * @since 1.0.0
162
- * @category tags
210
+ * @category models
163
211
  */
164
- export declare const SFNService: Context.Tag<SFNService, SFNService>;
212
+ export declare class SFNService extends SFNService_base {
213
+ }
165
214
  /**
166
215
  * @since 1.0.0
167
216
  * @category constructors
168
217
  */
169
- export declare const makeSFNService: Effect.Effect<SFNService, never, SFNClientInstance>;
218
+ export declare const makeSFNService: Effect.Effect<SFNService$, never, SFNClientInstance>;
170
219
  /**
171
220
  * @since 1.0.0
172
221
  * @category layers
@@ -182,3 +231,4 @@ export declare const SFNServiceLayer: Layer.Layer<SFNService, never, import("./S
182
231
  * @category layers
183
232
  */
184
233
  export declare const DefaultSFNServiceLayer: Layer.Layer<SFNService, never, never>;
234
+ export {};
package/lib/SFNService.js CHANGED
@@ -46,12 +46,15 @@ const commands = {
46
46
  UpdateMapRunCommand: client_sfn_1.UpdateMapRunCommand,
47
47
  UpdateStateMachineCommand: client_sfn_1.UpdateStateMachineCommand,
48
48
  UpdateStateMachineAliasCommand: client_sfn_1.UpdateStateMachineAliasCommand,
49
+ ValidateStateMachineDefinitionCommand: client_sfn_1.ValidateStateMachineDefinitionCommand,
49
50
  };
50
51
  /**
51
52
  * @since 1.0.0
52
- * @category tags
53
+ * @category models
53
54
  */
54
- exports.SFNService = effect_1.Context.GenericTag("@effect-aws/client-sfn/SFNService");
55
+ class SFNService extends effect_1.Effect.Tag("@effect-aws/client-sfn/SFNService")() {
56
+ }
57
+ exports.SFNService = SFNService;
55
58
  /**
56
59
  * @since 1.0.0
57
60
  * @category constructors
@@ -61,9 +64,13 @@ exports.makeSFNService = effect_1.Effect.gen(function* (_) {
61
64
  return effect_1.Record.toEntries(commands).reduce((acc, [command]) => {
62
65
  const CommandCtor = commands[command];
63
66
  const methodImpl = (args, options) => effect_1.Effect.tryPromise({
64
- try: () => client.send(new CommandCtor(args), options !== null && options !== void 0 ? options : {}),
67
+ try: (abortSignal) => client.send(new CommandCtor(args), {
68
+ ...(options !== null && options !== void 0 ? options : {}),
69
+ abortSignal,
70
+ }),
65
71
  catch: (e) => {
66
- if (e instanceof client_sfn_1.SFNServiceException) {
72
+ if (e instanceof client_sfn_1.SFNServiceException &&
73
+ Errors_1.AllServiceErrors.includes(e.name)) {
67
74
  const ServiceException = effect_1.Data.tagged(e.name);
68
75
  return ServiceException({
69
76
  ...e,
@@ -90,7 +97,7 @@ exports.makeSFNService = effect_1.Effect.gen(function* (_) {
90
97
  * @since 1.0.0
91
98
  * @category layers
92
99
  */
93
- exports.BaseSFNServiceLayer = effect_1.Layer.effect(exports.SFNService, exports.makeSFNService);
100
+ exports.BaseSFNServiceLayer = effect_1.Layer.effect(SFNService, exports.makeSFNService);
94
101
  /**
95
102
  * @since 1.0.0
96
103
  * @category layers
@@ -101,4 +108,4 @@ exports.SFNServiceLayer = exports.BaseSFNServiceLayer.pipe(effect_1.Layer.provid
101
108
  * @category layers
102
109
  */
103
110
  exports.DefaultSFNServiceLayer = exports.SFNServiceLayer.pipe(effect_1.Layer.provide(SFNClientInstanceConfig_1.DefaultSFNClientConfigLayer));
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0ZOU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TRk5TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsb0RBOEc2QjtBQUU3QixtQ0FBOEQ7QUFDOUQscUNBK0JrQjtBQUNsQiwyREFBZ0Y7QUFDaEYsdUVBQXdFO0FBRXhFLE1BQU0sUUFBUSxHQUFHO0lBQ2YscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIsZ0NBQWdDLEVBQWhDLDZDQUFnQztJQUNoQyx1QkFBdUIsRUFBdkIsb0NBQXVCO0lBQ3ZCLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQiwyQkFBMkIsRUFBM0Isd0NBQTJCO0lBQzNCLGdDQUFnQyxFQUFoQyw2Q0FBZ0M7SUFDaEMsdUNBQXVDLEVBQXZDLG9EQUF1QztJQUN2QyxzQkFBc0IsRUFBdEIsbUNBQXNCO0lBQ3RCLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQixxQkFBcUIsRUFBckIsa0NBQXFCO0lBQ3JCLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIsOEJBQThCLEVBQTlCLDJDQUE4QjtJQUM5Qix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLCtCQUErQixFQUEvQiw0Q0FBK0I7SUFDL0IsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQixpQ0FBaUMsRUFBakMsOENBQWlDO0lBQ2pDLHVCQUF1QixFQUF2QixvQ0FBdUI7SUFDdkIsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0Qix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLHNCQUFzQixFQUF0QixtQ0FBc0I7SUFDdEIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLG9CQUFvQixFQUFwQixpQ0FBb0I7SUFDcEIsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBaEIsNkJBQWdCO0lBQ2hCLG9CQUFvQixFQUFwQixpQ0FBb0I7SUFDcEIsbUJBQW1CLEVBQW5CLGdDQUFtQjtJQUNuQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7Q0FDL0IsQ0FBQztBQWljRjs7O0dBR0c7QUFDVSxRQUFBLFVBQVUsR0FBRyxnQkFBTyxDQUFDLFVBQVUsQ0FDMUMsbUNBQW1DLENBQ3BDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLGNBQWMsR0FBRyxlQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDbkQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFDQUFpQixDQUFDLENBQUM7SUFFM0MsT0FBTyxlQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUU7UUFDMUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBUSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBUyxFQUFFLE9BQVksRUFBRSxFQUFFLENBQzdDLGVBQU0sQ0FBQyxVQUFVLENBQUM7WUFDaEIsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksRUFBRSxDQUFDO1lBQzVELEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNYLElBQUksQ0FBQyxZQUFZLGdDQUFtQixFQUFFLENBQUM7b0JBQ3JDLE1BQU0sZ0JBQWdCLEdBQUcsYUFBSSxDQUFDLE1BQU0sQ0FFbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUVWLE9BQU8sZ0JBQWdCLENBQUM7d0JBQ3RCLEdBQUcsQ0FBQzt3QkFDSixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDZixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxJQUFJLENBQUMsWUFBWSxLQUFLLEVBQUUsQ0FBQztvQkFDdkIsT0FBTyxJQUFBLGlCQUFRLEVBQUM7d0JBQ2QsR0FBRyxDQUFDO3dCQUNKLElBQUksRUFBRSxVQUFVO3dCQUNoQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDZixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7U0FDRixDQUFDLENBQUM7UUFDTCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUN0RSxVQUFVLEVBQ1YsRUFBRSxDQUNILENBQUM7UUFDRixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM5QyxDQUFDLEVBQUUsRUFBRSxDQUFlLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDVSxRQUFBLG1CQUFtQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQUMsa0JBQVUsRUFBRSxzQkFBYyxDQUFDLENBQUM7QUFFNUU7OztHQUdHO0FBQ1UsUUFBQSxlQUFlLEdBQUcsMkJBQW1CLENBQUMsSUFBSSxDQUNyRCxjQUFLLENBQUMsT0FBTyxDQUFDLDBDQUFzQixDQUFDLENBQ3RDLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLHNCQUFzQixHQUFHLHVCQUFlLENBQUMsSUFBSSxDQUN4RCxjQUFLLENBQUMsT0FBTyxDQUFDLHFEQUEyQixDQUFDLENBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBDcmVhdGVBY3Rpdml0eUNvbW1hbmQsXG4gIENyZWF0ZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICBDcmVhdGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVBY3Rpdml0eUNvbW1hbmQsXG4gIERlbGV0ZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICBEZWxldGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kLFxuICBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kLFxuICBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICBEZXNjcmliZU1hcFJ1bkNvbW1hbmQsXG4gIERlc2NyaWJlTWFwUnVuQ29tbWFuZElucHV0LFxuICBEZXNjcmliZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEFjdGl2aXR5VGFza0NvbW1hbmQsXG4gIEdldEFjdGl2aXR5VGFza0NvbW1hbmRJbnB1dCxcbiAgR2V0QWN0aXZpdHlUYXNrQ29tbWFuZE91dHB1dCxcbiAgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmQsXG4gIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICBMaXN0QWN0aXZpdGllc0NvbW1hbmQsXG4gIExpc3RBY3Rpdml0aWVzQ29tbWFuZElucHV0LFxuICBMaXN0QWN0aXZpdGllc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFeGVjdXRpb25zQ29tbWFuZCxcbiAgTGlzdEV4ZWN1dGlvbnNDb21tYW5kSW5wdXQsXG4gIExpc3RFeGVjdXRpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdE1hcFJ1bnNDb21tYW5kLFxuICBMaXN0TWFwUnVuc0NvbW1hbmRJbnB1dCxcbiAgTGlzdE1hcFJ1bnNDb21tYW5kT3V0cHV0LFxuICBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmQsXG4gIExpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzQ29tbWFuZElucHV0LFxuICBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmRJbnB1dCxcbiAgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgTGlzdFN0YXRlTWFjaGluZXNDb21tYW5kLFxuICBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmRJbnB1dCxcbiAgTGlzdFN0YXRlTWFjaGluZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZCxcbiAgUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmQsXG4gIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICBTRk5TZXJ2aWNlRXhjZXB0aW9uLFxuICBTZW5kVGFza0ZhaWx1cmVDb21tYW5kLFxuICBTZW5kVGFza0ZhaWx1cmVDb21tYW5kSW5wdXQsXG4gIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmRPdXRwdXQsXG4gIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZCxcbiAgU2VuZFRhc2tIZWFydGJlYXRDb21tYW5kSW5wdXQsXG4gIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZE91dHB1dCxcbiAgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZCxcbiAgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZElucHV0LFxuICBTZW5kVGFza1N1Y2Nlc3NDb21tYW5kT3V0cHV0LFxuICBTdGFydEV4ZWN1dGlvbkNvbW1hbmQsXG4gIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICBTdGFydEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmQsXG4gIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgU3RvcEV4ZWN1dGlvbkNvbW1hbmQsXG4gIFN0b3BFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIFN0b3BFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFRlc3RTdGF0ZUNvbW1hbmQsXG4gIFRlc3RTdGF0ZUNvbW1hbmRJbnB1dCxcbiAgVGVzdFN0YXRlQ29tbWFuZE91dHB1dCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVcGRhdGVNYXBSdW5Db21tYW5kLFxuICBVcGRhdGVNYXBSdW5Db21tYW5kSW5wdXQsXG4gIFVwZGF0ZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXNmblwiO1xuaW1wb3J0IHsgSHR0cEhhbmRsZXJPcHRpb25zIGFzIF9fSHR0cEhhbmRsZXJPcHRpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBDb250ZXh0LCBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBY3Rpdml0eURvZXNOb3RFeGlzdEVycm9yLFxuICBBY3Rpdml0eUxpbWl0RXhjZWVkZWRFcnJvcixcbiAgQWN0aXZpdHlXb3JrZXJMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIEV4ZWN1dGlvbkFscmVhZHlFeGlzdHNFcnJvcixcbiAgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3IsXG4gIEV4ZWN1dGlvbkxpbWl0RXhjZWVkZWRFcnJvcixcbiAgRXhlY3V0aW9uTm90UmVkcml2YWJsZUVycm9yLFxuICBJbnZhbGlkQXJuRXJyb3IsXG4gIEludmFsaWREZWZpbml0aW9uRXJyb3IsXG4gIEludmFsaWRFeGVjdXRpb25JbnB1dEVycm9yLFxuICBJbnZhbGlkTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvcixcbiAgSW52YWxpZE5hbWVFcnJvcixcbiAgSW52YWxpZE91dHB1dEVycm9yLFxuICBJbnZhbGlkVG9rZW5FcnJvcixcbiAgSW52YWxpZFRyYWNpbmdDb25maWd1cmF0aW9uRXJyb3IsXG4gIE1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckVycm9yLFxuICBSZXNvdXJjZU5vdEZvdW5kRXJyb3IsXG4gIFNka0Vycm9yLFxuICBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yLFxuICBTdGF0ZU1hY2hpbmVBbHJlYWR5RXhpc3RzRXJyb3IsXG4gIFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3IsXG4gIFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yLFxuICBTdGF0ZU1hY2hpbmVMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxuICBUYXNrRG9lc05vdEV4aXN0RXJyb3IsXG4gIFRhc2tUaW1lZE91dEVycm9yLFxuICBUb29NYW55VGFnc0Vycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHsgU0ZOQ2xpZW50SW5zdGFuY2UsIFNGTkNsaWVudEluc3RhbmNlTGF5ZXIgfSBmcm9tIFwiLi9TRk5DbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdFNGTkNsaWVudENvbmZpZ0xheWVyIH0gZnJvbSBcIi4vU0ZOQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIENyZWF0ZUFjdGl2aXR5Q29tbWFuZCxcbiAgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICBEZWxldGVBY3Rpdml0eUNvbW1hbmQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmQsXG4gIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kLFxuICBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmQsXG4gIERlc2NyaWJlTWFwUnVuQ29tbWFuZCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVGb3JFeGVjdXRpb25Db21tYW5kLFxuICBHZXRBY3Rpdml0eVRhc2tDb21tYW5kLFxuICBHZXRFeGVjdXRpb25IaXN0b3J5Q29tbWFuZCxcbiAgTGlzdEFjdGl2aXRpZXNDb21tYW5kLFxuICBMaXN0RXhlY3V0aW9uc0NvbW1hbmQsXG4gIExpc3RNYXBSdW5zQ29tbWFuZCxcbiAgTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kLFxuICBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmQsXG4gIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmQsXG4gIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kLFxuICBTZW5kVGFza0ZhaWx1cmVDb21tYW5kLFxuICBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmQsXG4gIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmQsXG4gIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZCxcbiAgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZCxcbiAgU3RvcEV4ZWN1dGlvbkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVGVzdFN0YXRlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZU1hcFJ1bkNvbW1hbmQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbn07XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbW9kZWxzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU0ZOU2VydmljZSB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFjdGl2aXR5Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFjdGl2aXR5KFxuICAgIGFyZ3M6IENyZWF0ZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBBY3Rpdml0eUxpbWl0RXhjZWVkZWRFcnJvciB8IEludmFsaWROYW1lRXJyb3IgfCBUb29NYW55VGFnc0Vycm9yXG4gID47XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU3RhdGVNYWNoaW5lKFxuICAgIGFyZ3M6IENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWREZWZpbml0aW9uRXJyb3JcbiAgICB8IEludmFsaWRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkTmFtZUVycm9yXG4gICAgfCBJbnZhbGlkVHJhY2luZ0NvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVTdGF0ZU1hY2hpbmVBbGlhcyhcbiAgICBhcmdzOiBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZE5hbWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZUFjdGl2aXR5Q29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZUFjdGl2aXR5KFxuICAgIGFyZ3M6IERlbGV0ZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZWxldGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTdGF0ZU1hY2hpbmUoXG4gICAgYXJnczogRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTdGF0ZU1hY2hpbmVBbGlhcyhcbiAgICBhcmdzOiBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgZGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbihcbiAgICBhcmdzOiBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IENvbmZsaWN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVBY3Rpdml0eShcbiAgICBhcmdzOiBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEFjdGl2aXR5RG9lc05vdEV4aXN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3JcbiAgPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlRXhlY3V0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlRXhlY3V0aW9uKFxuICAgIGFyZ3M6IERlc2NyaWJlRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvciB8IEludmFsaWRBcm5FcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVNYXBSdW5Db21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVNYXBSdW4oXG4gICAgYXJnczogRGVzY3JpYmVNYXBSdW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlTWFwUnVuQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdGF0ZU1hY2hpbmUoXG4gICAgYXJnczogRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RhdGVNYWNoaW5lQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gID47XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXMoXG4gICAgYXJnczogRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uKFxuICAgIGFyZ3M6IERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvciB8IEludmFsaWRBcm5FcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0QWN0aXZpdHlUYXNrQ29tbWFuZH1cbiAgICovXG4gIGdldEFjdGl2aXR5VGFzayhcbiAgICBhcmdzOiBHZXRBY3Rpdml0eVRhc2tDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFjdGl2aXR5VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWN0aXZpdHlEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgQWN0aXZpdHlXb3JrZXJMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmR9XG4gICAqL1xuICBnZXRFeGVjdXRpb25IaXN0b3J5KFxuICAgIGFyZ3M6IEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBJbnZhbGlkVG9rZW5FcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFjdGl2aXRpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFjdGl2aXRpZXMoXG4gICAgYXJnczogTGlzdEFjdGl2aXRpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PExpc3RBY3Rpdml0aWVzQ29tbWFuZE91dHB1dCwgU2RrRXJyb3IgfCBJbnZhbGlkVG9rZW5FcnJvcj47XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RXhlY3V0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RXhlY3V0aW9ucyhcbiAgICBhcmdzOiBMaXN0RXhlY3V0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdEV4ZWN1dGlvbnNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TWFwUnVuc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TWFwUnVucyhcbiAgICBhcmdzOiBMaXN0TWFwUnVuc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdE1hcFJ1bnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBJbnZhbGlkVG9rZW5FcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFN0YXRlTWFjaGluZUFsaWFzZXMoXG4gICAgYXJnczogTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRUb2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gID47XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RhdGVNYWNoaW5lcyhcbiAgICBhcmdzOiBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFN0YXRlTWFjaGluZXNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnMoXG4gICAgYXJnczogTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnNDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgSW52YWxpZFRva2VuRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb24oXG4gICAgYXJnczogUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVkcml2ZUV4ZWN1dGlvbihcbiAgICBhcmdzOiBSZWRyaXZlRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBSZWRyaXZlRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvclxuICAgIHwgRXhlY3V0aW9uTGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBFeGVjdXRpb25Ob3RSZWRyaXZhYmxlRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2VuZFRhc2tGYWlsdXJlQ29tbWFuZH1cbiAgICovXG4gIHNlbmRUYXNrRmFpbHVyZShcbiAgICBhcmdzOiBTZW5kVGFza0ZhaWx1cmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkVG9rZW5FcnJvciB8IFRhc2tEb2VzTm90RXhpc3RFcnJvciB8IFRhc2tUaW1lZE91dEVycm9yXG4gID47XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmR9XG4gICAqL1xuICBzZW5kVGFza0hlYXJ0YmVhdChcbiAgICBhcmdzOiBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU2VuZFRhc2tIZWFydGJlYXRDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFRva2VuRXJyb3IgfCBUYXNrRG9lc05vdEV4aXN0RXJyb3IgfCBUYXNrVGltZWRPdXRFcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZH1cbiAgICovXG4gIHNlbmRUYXNrU3VjY2VzcyhcbiAgICBhcmdzOiBTZW5kVGFza1N1Y2Nlc3NDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE91dHB1dEVycm9yXG4gICAgfCBJbnZhbGlkVG9rZW5FcnJvclxuICAgIHwgVGFza0RvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBUYXNrVGltZWRPdXRFcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgc3RhcnRFeGVjdXRpb24oXG4gICAgYXJnczogU3RhcnRFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25BbHJlYWR5RXhpc3RzRXJyb3JcbiAgICB8IEV4ZWN1dGlvbkxpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkRXhlY3V0aW9uSW5wdXRFcnJvclxuICAgIHwgSW52YWxpZE5hbWVFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0YXJ0U3luY0V4ZWN1dGlvbihcbiAgICBhcmdzOiBTdGFydFN5bmNFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkRXhlY3V0aW9uSW5wdXRFcnJvclxuICAgIHwgSW52YWxpZE5hbWVFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RvcEV4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdG9wRXhlY3V0aW9uKFxuICAgIGFyZ3M6IFN0b3BFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBUb29NYW55VGFnc0Vycm9yXG4gID47XG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUZXN0U3RhdGVDb21tYW5kfVxuICAgKi9cbiAgdGVzdFN0YXRlKFxuICAgIGFyZ3M6IFRlc3RTdGF0ZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGVzdFN0YXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWREZWZpbml0aW9uRXJyb3JcbiAgICB8IEludmFsaWRFeGVjdXRpb25JbnB1dEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVudGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdW50YWdSZXNvdXJjZShcbiAgICBhcmdzOiBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlTWFwUnVuQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZU1hcFJ1bihcbiAgICBhcmdzOiBVcGRhdGVNYXBSdW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmR9XG4gICAqL1xuICB1cGRhdGVTdGF0ZU1hY2hpbmUoXG4gICAgYXJnczogVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZERlZmluaXRpb25FcnJvclxuICAgIHwgSW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgU2VydmljZVF1b3RhRXhjZWVkZWRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlU3RhdGVNYWNoaW5lQWxpYXMoXG4gICAgYXJnczogVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBDb25mbGljdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY29uc3QgU0ZOU2VydmljZSA9IENvbnRleHQuR2VuZXJpY1RhZzxTRk5TZXJ2aWNlPihcbiAgXCJAZWZmZWN0LWF3cy9jbGllbnQtc2ZuL1NGTlNlcnZpY2VcIixcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlU0ZOU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKFNGTkNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zOiBhbnkpID0+XG4gICAgICBFZmZlY3QudHJ5UHJvbWlzZSh7XG4gICAgICAgIHRyeTogKCkgPT4gY2xpZW50LnNlbmQobmV3IENvbW1hbmRDdG9yKGFyZ3MpLCBvcHRpb25zID8/IHt9KSxcbiAgICAgICAgY2F0Y2g6IChlKSA9PiB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTRk5TZXJ2aWNlRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxTRk5TZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBTRk5TZXJ2aWNlO1xufSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlU0ZOU2VydmljZUxheWVyID0gTGF5ZXIuZWZmZWN0KFNGTlNlcnZpY2UsIG1ha2VTRk5TZXJ2aWNlKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFNGTlNlcnZpY2VMYXllciA9IEJhc2VTRk5TZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShTRk5DbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0U0ZOU2VydmljZUxheWVyID0gU0ZOU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdFNGTkNsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU0ZOU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TRk5TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsb0RBaUg2QjtBQUM3QixtQ0FBcUQ7QUFDckQscUNBcUNrQjtBQUNsQiwyREFBZ0Y7QUFDaEYsdUVBQXdFO0FBVXhFLE1BQU0sUUFBUSxHQUFHO0lBQ2YscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIsZ0NBQWdDLEVBQWhDLDZDQUFnQztJQUNoQyx1QkFBdUIsRUFBdkIsb0NBQXVCO0lBQ3ZCLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQiwyQkFBMkIsRUFBM0Isd0NBQTJCO0lBQzNCLGdDQUFnQyxFQUFoQyw2Q0FBZ0M7SUFDaEMsdUNBQXVDLEVBQXZDLG9EQUF1QztJQUN2QyxzQkFBc0IsRUFBdEIsbUNBQXNCO0lBQ3RCLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQixxQkFBcUIsRUFBckIsa0NBQXFCO0lBQ3JCLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIsOEJBQThCLEVBQTlCLDJDQUE4QjtJQUM5Qix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLCtCQUErQixFQUEvQiw0Q0FBK0I7SUFDL0IsMEJBQTBCLEVBQTFCLHVDQUEwQjtJQUMxQixpQ0FBaUMsRUFBakMsOENBQWlDO0lBQ2pDLHVCQUF1QixFQUF2QixvQ0FBdUI7SUFDdkIsc0JBQXNCLEVBQXRCLG1DQUFzQjtJQUN0Qix3QkFBd0IsRUFBeEIscUNBQXdCO0lBQ3hCLHNCQUFzQixFQUF0QixtQ0FBc0I7SUFDdEIscUJBQXFCLEVBQXJCLGtDQUFxQjtJQUNyQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLG9CQUFvQixFQUFwQixpQ0FBb0I7SUFDcEIsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQixnQkFBZ0IsRUFBaEIsNkJBQWdCO0lBQ2hCLG9CQUFvQixFQUFwQixpQ0FBb0I7SUFDcEIsbUJBQW1CLEVBQW5CLGdDQUFtQjtJQUNuQix5QkFBeUIsRUFBekIsc0NBQXlCO0lBQ3pCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIscUNBQXFDLEVBQXJDLGtEQUFxQztDQUN0QyxDQUFDO0FBc2lCRjs7O0dBR0c7QUFDSCxNQUFhLFVBQVcsU0FBUSxlQUFNLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLEVBRzVFO0NBQUc7QUFITixnQ0FHTTtBQUVOOzs7R0FHRztBQUNVLFFBQUEsY0FBYyxHQUFHLGVBQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNuRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUNBQWlCLENBQUMsQ0FBQztJQUUzQyxPQUFPLGVBQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtRQUMxRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFRLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFTLEVBQUUsT0FBNEIsRUFBRSxFQUFFLENBQzdELGVBQU0sQ0FBQyxVQUFVLENBQUM7WUFDaEIsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakMsR0FBRyxDQUFDLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQztnQkFDbEIsV0FBVzthQUNaLENBQUM7WUFDSixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUNFLENBQUMsWUFBWSxnQ0FBbUI7b0JBQ2hDLHlCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ2pDLENBQUM7b0JBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxhQUFJLENBQUMsTUFBTSxDQUVsQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRVYsT0FBTyxnQkFBZ0IsQ0FBQzt3QkFDdEIsR0FBRyxDQUFDO3dCQUNKLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDO29CQUN2QixPQUFPLElBQUEsaUJBQVEsRUFBQzt3QkFDZCxHQUFHLENBQUM7d0JBQ0osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNMLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQWdCLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDVSxRQUFBLG1CQUFtQixHQUFHLGNBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLHNCQUFjLENBQUMsQ0FBQztBQUU1RTs7O0dBR0c7QUFDVSxRQUFBLGVBQWUsR0FBRywyQkFBbUIsQ0FBQyxJQUFJLENBQ3JELGNBQUssQ0FBQyxPQUFPLENBQUMsMENBQXNCLENBQUMsQ0FDdEMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsdUJBQWUsQ0FBQyxJQUFJLENBQ3hELGNBQUssQ0FBQyxPQUFPLENBQUMscURBQTJCLENBQUMsQ0FDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7XG4gIFNGTlNlcnZpY2VFeGNlcHRpb24sXG4gIENyZWF0ZUFjdGl2aXR5Q29tbWFuZCxcbiAgdHlwZSBDcmVhdGVBY3Rpdml0eUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIHR5cGUgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICB0eXBlIENyZWF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBDcmVhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUFjdGl2aXR5Q29tbWFuZCxcbiAgdHlwZSBEZWxldGVBY3Rpdml0eUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIHR5cGUgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICB0eXBlIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZWxldGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kLFxuICB0eXBlIERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlRXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlTWFwUnVuQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZU1hcFJ1bkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICB0eXBlIERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gIHR5cGUgRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIEdldEFjdGl2aXR5VGFza0NvbW1hbmQsXG4gIHR5cGUgR2V0QWN0aXZpdHlUYXNrQ29tbWFuZElucHV0LFxuICB0eXBlIEdldEFjdGl2aXR5VGFza0NvbW1hbmRPdXRwdXQsXG4gIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kLFxuICB0eXBlIEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gIHR5cGUgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmRPdXRwdXQsXG4gIExpc3RBY3Rpdml0aWVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0QWN0aXZpdGllc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0QWN0aXZpdGllc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RFeGVjdXRpb25zQ29tbWFuZCxcbiAgdHlwZSBMaXN0RXhlY3V0aW9uc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0RXhlY3V0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RNYXBSdW5zQ29tbWFuZCxcbiAgdHlwZSBMaXN0TWFwUnVuc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0TWFwUnVuc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdGF0ZU1hY2hpbmVBbGlhc2VzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIHR5cGUgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICB0eXBlIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFB1Ymxpc2hTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZCxcbiAgdHlwZSBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kLFxuICB0eXBlIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmQsXG4gIHR5cGUgU2VuZFRhc2tGYWlsdXJlQ29tbWFuZElucHV0LFxuICB0eXBlIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmRPdXRwdXQsXG4gIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZCxcbiAgdHlwZSBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmRJbnB1dCxcbiAgdHlwZSBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmRPdXRwdXQsXG4gIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmQsXG4gIHR5cGUgU2VuZFRhc2tTdWNjZXNzQ29tbWFuZElucHV0LFxuICB0eXBlIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZCxcbiAgdHlwZSBTdGFydEV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgdHlwZSBTdGFydEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmQsXG4gIHR5cGUgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFN0b3BFeGVjdXRpb25Db21tYW5kLFxuICB0eXBlIFN0b3BFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gIHR5cGUgU3RvcEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgdHlwZSBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFRlc3RTdGF0ZUNvbW1hbmQsXG4gIHR5cGUgVGVzdFN0YXRlQ29tbWFuZElucHV0LFxuICB0eXBlIFRlc3RTdGF0ZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICB0eXBlIFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gIHR5cGUgVW50YWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZU1hcFJ1bkNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlTWFwUnVuQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIHR5cGUgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZElucHV0LFxuICB0eXBlIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgdHlwZSBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRJbnB1dCxcbiAgdHlwZSBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmQsXG4gIHR5cGUgVmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQ29tbWFuZElucHV0LFxuICB0eXBlIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtc2ZuXCI7XG5pbXBvcnQgeyBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWNvcmQgfSBmcm9tIFwiZWZmZWN0XCI7XG5pbXBvcnQge1xuICBBbGxTZXJ2aWNlRXJyb3JzLFxuICBBY3Rpdml0eUFscmVhZHlFeGlzdHNFcnJvcixcbiAgQWN0aXZpdHlEb2VzTm90RXhpc3RFcnJvcixcbiAgQWN0aXZpdHlMaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIEFjdGl2aXR5V29ya2VyTGltaXRFeGNlZWRlZEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBFeGVjdXRpb25BbHJlYWR5RXhpc3RzRXJyb3IsXG4gIEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yLFxuICBFeGVjdXRpb25MaW1pdEV4Y2VlZGVkRXJyb3IsXG4gIEV4ZWN1dGlvbk5vdFJlZHJpdmFibGVFcnJvcixcbiAgSW52YWxpZEFybkVycm9yLFxuICBJbnZhbGlkRGVmaW5pdGlvbkVycm9yLFxuICBJbnZhbGlkRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25FcnJvcixcbiAgSW52YWxpZEV4ZWN1dGlvbklucHV0RXJyb3IsXG4gIEludmFsaWRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yLFxuICBJbnZhbGlkTmFtZUVycm9yLFxuICBJbnZhbGlkT3V0cHV0RXJyb3IsXG4gIEludmFsaWRUb2tlbkVycm9yLFxuICBJbnZhbGlkVHJhY2luZ0NvbmZpZ3VyYXRpb25FcnJvcixcbiAgS21zQWNjZXNzRGVuaWVkRXJyb3IsXG4gIEttc0ludmFsaWRTdGF0ZUVycm9yLFxuICBLbXNUaHJvdHRsaW5nRXJyb3IsXG4gIE1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckVycm9yLFxuICBSZXNvdXJjZU5vdEZvdW5kRXJyb3IsXG4gIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3IsXG4gIFN0YXRlTWFjaGluZUFscmVhZHlFeGlzdHNFcnJvcixcbiAgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvcixcbiAgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3IsXG4gIFN0YXRlTWFjaGluZUxpbWl0RXhjZWVkZWRFcnJvcixcbiAgU3RhdGVNYWNoaW5lVHlwZU5vdFN1cHBvcnRlZEVycm9yLFxuICBUYXNrRG9lc05vdEV4aXN0RXJyb3IsXG4gIFRhc2tUaW1lZE91dEVycm9yLFxuICBUb29NYW55VGFnc0Vycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIFNka0Vycm9yLFxuICBUYWdnZWRFeGNlcHRpb24sXG59IGZyb20gXCIuL0Vycm9yc1wiO1xuaW1wb3J0IHsgU0ZOQ2xpZW50SW5zdGFuY2UsIFNGTkNsaWVudEluc3RhbmNlTGF5ZXIgfSBmcm9tIFwiLi9TRk5DbGllbnRJbnN0YW5jZVwiO1xuaW1wb3J0IHsgRGVmYXVsdFNGTkNsaWVudENvbmZpZ0xheWVyIH0gZnJvbSBcIi4vU0ZOQ2xpZW50SW5zdGFuY2VDb25maWdcIjtcblxuaW50ZXJmYWNlIEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBjb25uZWN0aW9uIHBoYXNlIG9mIGEgcmVxdWVzdFxuICAgKiBtYXkgdGFrZSBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCBpcyBhYmFuZG9uZWQuXG4gICAqL1xuICByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcbn1cblxuY29uc3QgY29tbWFuZHMgPSB7XG4gIENyZWF0ZUFjdGl2aXR5Q29tbWFuZCxcbiAgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZCxcbiAgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kLFxuICBEZWxldGVBY3Rpdml0eUNvbW1hbmQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmQsXG4gIERlc2NyaWJlQWN0aXZpdHlDb21tYW5kLFxuICBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmQsXG4gIERlc2NyaWJlTWFwUnVuQ29tbWFuZCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kLFxuICBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgRGVzY3JpYmVTdGF0ZU1hY2hpbmVGb3JFeGVjdXRpb25Db21tYW5kLFxuICBHZXRBY3Rpdml0eVRhc2tDb21tYW5kLFxuICBHZXRFeGVjdXRpb25IaXN0b3J5Q29tbWFuZCxcbiAgTGlzdEFjdGl2aXRpZXNDb21tYW5kLFxuICBMaXN0RXhlY3V0aW9uc0NvbW1hbmQsXG4gIExpc3RNYXBSdW5zQ29tbWFuZCxcbiAgTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kLFxuICBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmQsXG4gIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmQsXG4gIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kLFxuICBTZW5kVGFza0ZhaWx1cmVDb21tYW5kLFxuICBTZW5kVGFza0hlYXJ0YmVhdENvbW1hbmQsXG4gIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmQsXG4gIFN0YXJ0RXhlY3V0aW9uQ29tbWFuZCxcbiAgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZCxcbiAgU3RvcEV4ZWN1dGlvbkNvbW1hbmQsXG4gIFRhZ1Jlc291cmNlQ29tbWFuZCxcbiAgVGVzdFN0YXRlQ29tbWFuZCxcbiAgVW50YWdSZXNvdXJjZUNvbW1hbmQsXG4gIFVwZGF0ZU1hcFJ1bkNvbW1hbmQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUNvbW1hbmQsXG4gIFVwZGF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZCxcbiAgVmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uQ29tbWFuZCxcbn07XG5cbmludGVyZmFjZSBTRk5TZXJ2aWNlJCB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZUFjdGl2aXR5Q29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZUFjdGl2aXR5KFxuICAgIGFyZ3M6IENyZWF0ZUFjdGl2aXR5Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlQWN0aXZpdHlDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEFjdGl2aXR5QWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBBY3Rpdml0eUxpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWROYW1lRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRvb01hbnlUYWdzRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ3JlYXRlU3RhdGVNYWNoaW5lQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVN0YXRlTWFjaGluZShcbiAgICBhcmdzOiBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBDcmVhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZERlZmluaXRpb25FcnJvclxuICAgIHwgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkTmFtZUVycm9yXG4gICAgfCBJbnZhbGlkVHJhY2luZ0NvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICAgIHwgVG9vTWFueVRhZ3NFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVN0YXRlTWFjaGluZUFsaWFzKFxuICAgIGFyZ3M6IENyZWF0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgQ3JlYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZE5hbWVFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlQWN0aXZpdHlDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlQWN0aXZpdHkoXG4gICAgYXJnczogRGVsZXRlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxEZWxldGVBY3Rpdml0eUNvbW1hbmRPdXRwdXQsIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU3RhdGVNYWNoaW5lQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN0YXRlTWFjaGluZShcbiAgICBhcmdzOiBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZEFybkVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVN0YXRlTWFjaGluZUFsaWFzKFxuICAgIGFyZ3M6IERlbGV0ZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgRGVsZXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uKFxuICAgIGFyZ3M6IERlbGV0ZVN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZWxldGVTdGF0ZU1hY2hpbmVWZXJzaW9uQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IENvbmZsaWN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVBY3Rpdml0eUNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZUFjdGl2aXR5KFxuICAgIGFyZ3M6IERlc2NyaWJlQWN0aXZpdHlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUFjdGl2aXR5Q29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEFjdGl2aXR5RG9lc05vdEV4aXN0RXJyb3IgfCBJbnZhbGlkQXJuRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVFeGVjdXRpb24oXG4gICAgYXJnczogRGVzY3JpYmVFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZUV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVNYXBSdW5Db21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVNYXBSdW4oXG4gICAgYXJnczogRGVzY3JpYmVNYXBSdW5Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kfVxuICAgKi9cbiAgZGVzY3JpYmVTdGF0ZU1hY2hpbmUoXG4gICAgYXJnczogRGVzY3JpYmVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVN0YXRlTWFjaGluZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVzY3JpYmVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzKFxuICAgIGFyZ3M6IERlc2NyaWJlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBEZXNjcmliZVN0YXRlTWFjaGluZUFsaWFzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvciB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICBkZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbihcbiAgICBhcmdzOiBEZXNjcmliZVN0YXRlTWFjaGluZUZvckV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIERlc2NyaWJlU3RhdGVNYWNoaW5lRm9yRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRBY3Rpdml0eVRhc2tDb21tYW5kfVxuICAgKi9cbiAgZ2V0QWN0aXZpdHlUYXNrKFxuICAgIGFyZ3M6IEdldEFjdGl2aXR5VGFza0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIEdldEFjdGl2aXR5VGFza0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQWN0aXZpdHlEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgQWN0aXZpdHlXb3JrZXJMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0RXhlY3V0aW9uSGlzdG9yeUNvbW1hbmR9XG4gICAqL1xuICBnZXRFeGVjdXRpb25IaXN0b3J5KFxuICAgIGFyZ3M6IEdldEV4ZWN1dGlvbkhpc3RvcnlDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBHZXRFeGVjdXRpb25IaXN0b3J5Q29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBFeGVjdXRpb25Eb2VzTm90RXhpc3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkVG9rZW5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdEFjdGl2aXRpZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdEFjdGl2aXRpZXMoXG4gICAgYXJnczogTGlzdEFjdGl2aXRpZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxMaXN0QWN0aXZpdGllc0NvbW1hbmRPdXRwdXQsIFNka0Vycm9yIHwgSW52YWxpZFRva2VuRXJyb3I+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0RXhlY3V0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0RXhlY3V0aW9ucyhcbiAgICBhcmdzOiBMaXN0RXhlY3V0aW9uc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RFeGVjdXRpb25zQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRUb2tlbkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVUeXBlTm90U3VwcG9ydGVkRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0TWFwUnVuc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0TWFwUnVucyhcbiAgICBhcmdzOiBMaXN0TWFwUnVuc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RNYXBSdW5zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yIHwgSW52YWxpZEFybkVycm9yIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kfVxuICAgKi9cbiAgbGlzdFN0YXRlTWFjaGluZUFsaWFzZXMoXG4gICAgYXJnczogTGlzdFN0YXRlTWFjaGluZUFsaWFzZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBMaXN0U3RhdGVNYWNoaW5lQWxpYXNlc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBJbnZhbGlkVG9rZW5FcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RhdGVNYWNoaW5lcyhcbiAgICBhcmdzOiBMaXN0U3RhdGVNYWNoaW5lc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIExpc3RTdGF0ZU1hY2hpbmVzQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRUb2tlbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTdGF0ZU1hY2hpbmVWZXJzaW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3RhdGVNYWNoaW5lVmVyc2lvbnMoXG4gICAgYXJnczogTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFN0YXRlTWFjaGluZVZlcnNpb25zQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IEludmFsaWRUb2tlbkVycm9yIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kfVxuICAgKi9cbiAgcHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb24oXG4gICAgYXJnczogUHVibGlzaFN0YXRlTWFjaGluZVZlcnNpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBQdWJsaXNoU3RhdGVNYWNoaW5lVmVyc2lvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFJlZHJpdmVFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgcmVkcml2ZUV4ZWN1dGlvbihcbiAgICBhcmdzOiBSZWRyaXZlRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgUmVkcml2ZUV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IEV4ZWN1dGlvbkxpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgRXhlY3V0aW9uTm90UmVkcml2YWJsZUVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZW5kVGFza0ZhaWx1cmVDb21tYW5kfVxuICAgKi9cbiAgc2VuZFRhc2tGYWlsdXJlKFxuICAgIGFyZ3M6IFNlbmRUYXNrRmFpbHVyZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNlbmRUYXNrRmFpbHVyZUNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZFRva2VuRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBUYXNrRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFRhc2tUaW1lZE91dEVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZH1cbiAgICovXG4gIHNlbmRUYXNrSGVhcnRiZWF0KFxuICAgIGFyZ3M6IFNlbmRUYXNrSGVhcnRiZWF0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU2VuZFRhc2tIZWFydGJlYXRDb21tYW5kT3V0cHV0LFxuICAgIFNka0Vycm9yIHwgSW52YWxpZFRva2VuRXJyb3IgfCBUYXNrRG9lc05vdEV4aXN0RXJyb3IgfCBUYXNrVGltZWRPdXRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZW5kVGFza1N1Y2Nlc3NDb21tYW5kfVxuICAgKi9cbiAgc2VuZFRhc2tTdWNjZXNzKFxuICAgIGFyZ3M6IFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFNlbmRUYXNrU3VjY2Vzc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgSW52YWxpZE91dHB1dEVycm9yXG4gICAgfCBJbnZhbGlkVG9rZW5FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc0ludmFsaWRTdGF0ZUVycm9yXG4gICAgfCBLbXNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IFRhc2tEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgVGFza1RpbWVkT3V0RXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3RhcnRFeGVjdXRpb25Db21tYW5kfVxuICAgKi9cbiAgc3RhcnRFeGVjdXRpb24oXG4gICAgYXJnczogU3RhcnRFeGVjdXRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBTdGFydEV4ZWN1dGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgRXhlY3V0aW9uQWxyZWFkeUV4aXN0c0Vycm9yXG4gICAgfCBFeGVjdXRpb25MaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZEV4ZWN1dGlvbklucHV0RXJyb3JcbiAgICB8IEludmFsaWROYW1lRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yXG4gICAgfCBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3RFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFN0YXJ0U3luY0V4ZWN1dGlvbkNvbW1hbmR9XG4gICAqL1xuICBzdGFydFN5bmNFeGVjdXRpb24oXG4gICAgYXJnczogU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgU3RhcnRTeW5jRXhlY3V0aW9uQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWRFeGVjdXRpb25JbnB1dEVycm9yXG4gICAgfCBJbnZhbGlkTmFtZUVycm9yXG4gICAgfCBLbXNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS21zSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRGVsZXRpbmdFcnJvclxuICAgIHwgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTdG9wRXhlY3V0aW9uQ29tbWFuZH1cbiAgICovXG4gIHN0b3BFeGVjdXRpb24oXG4gICAgYXJnczogU3RvcEV4ZWN1dGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFN0b3BFeGVjdXRpb25Db21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEttc0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLbXNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS21zVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVGFnUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgdGFnUmVzb3VyY2UoXG4gICAgYXJnczogVGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBUYWdSZXNvdXJjZUNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBUb29NYW55VGFnc0Vycm9yXG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFRlc3RTdGF0ZUNvbW1hbmR9XG4gICAqL1xuICB0ZXN0U3RhdGUoXG4gICAgYXJnczogVGVzdFN0YXRlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBIdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgVGVzdFN0YXRlQ29tbWFuZE91dHB1dCxcbiAgICB8IFNka0Vycm9yXG4gICAgfCBJbnZhbGlkQXJuRXJyb3JcbiAgICB8IEludmFsaWREZWZpbml0aW9uRXJyb3JcbiAgICB8IEludmFsaWRFeGVjdXRpb25JbnB1dEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVW50YWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB1bnRhZ1Jlc291cmNlKFxuICAgIGFyZ3M6IFVudGFnUmVzb3VyY2VDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgICBTZGtFcnJvciB8IEludmFsaWRBcm5FcnJvciB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVcGRhdGVNYXBSdW5Db21tYW5kfVxuICAgKi9cbiAgdXBkYXRlTWFwUnVuKFxuICAgIGFyZ3M6IFVwZGF0ZU1hcFJ1bkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFVwZGF0ZU1hcFJ1bkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBJbnZhbGlkQXJuRXJyb3IgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU3RhdGVNYWNoaW5lQ29tbWFuZH1cbiAgICovXG4gIHVwZGF0ZVN0YXRlTWFjaGluZShcbiAgICBhcmdzOiBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTdGF0ZU1hY2hpbmVDb21tYW5kT3V0cHV0LFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IENvbmZsaWN0RXJyb3JcbiAgICB8IEludmFsaWRBcm5FcnJvclxuICAgIHwgSW52YWxpZERlZmluaXRpb25FcnJvclxuICAgIHwgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uRXJyb3JcbiAgICB8IEludmFsaWRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yXG4gICAgfCBJbnZhbGlkVHJhY2luZ0NvbmZpZ3VyYXRpb25FcnJvclxuICAgIHwgS21zQWNjZXNzRGVuaWVkRXJyb3JcbiAgICB8IEttc1Rocm90dGxpbmdFcnJvclxuICAgIHwgTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kfVxuICAgKi9cbiAgdXBkYXRlU3RhdGVNYWNoaW5lQWxpYXMoXG4gICAgYXJnczogVXBkYXRlU3RhdGVNYWNoaW5lQWxpYXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IEh0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBVcGRhdGVTdGF0ZU1hY2hpbmVBbGlhc0NvbW1hbmRPdXRwdXQsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQ29uZmxpY3RFcnJvclxuICAgIHwgSW52YWxpZEFybkVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3JcbiAgICB8IFZhbGlkYXRpb25FcnJvclxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBWYWxpZGF0ZVN0YXRlTWFjaGluZURlZmluaXRpb25Db21tYW5kfVxuICAgKi9cbiAgdmFsaWRhdGVTdGF0ZU1hY2hpbmVEZWZpbml0aW9uKFxuICAgIGFyZ3M6IFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIFZhbGlkYXRlU3RhdGVNYWNoaW5lRGVmaW5pdGlvbkNvbW1hbmRPdXRwdXQsXG4gICAgU2RrRXJyb3IgfCBWYWxpZGF0aW9uRXJyb3JcbiAgPjtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIFNGTlNlcnZpY2UgZXh0ZW5kcyBFZmZlY3QuVGFnKFwiQGVmZmVjdC1hd3MvY2xpZW50LXNmbi9TRk5TZXJ2aWNlXCIpPFxuICBTRk5TZXJ2aWNlLFxuICBTRk5TZXJ2aWNlJFxuPigpIHt9XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlU0ZOU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKFNGTkNsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVjb3JkLnRvRW50cmllcyhjb21tYW5kcykucmVkdWNlKChhY2MsIFtjb21tYW5kXSkgPT4ge1xuICAgIGNvbnN0IENvbW1hbmRDdG9yID0gY29tbWFuZHNbY29tbWFuZF0gYXMgYW55O1xuICAgIGNvbnN0IG1ldGhvZEltcGwgPSAoYXJnczogYW55LCBvcHRpb25zPzogSHR0cEhhbmRsZXJPcHRpb25zKSA9PlxuICAgICAgRWZmZWN0LnRyeVByb21pc2Uoe1xuICAgICAgICB0cnk6IChhYm9ydFNpZ25hbCkgPT5cbiAgICAgICAgICBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIHtcbiAgICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgICAgIGFib3J0U2lnbmFsLFxuICAgICAgICAgIH0pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlIGluc3RhbmNlb2YgU0ZOU2VydmljZUV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgQWxsU2VydmljZUVycm9ycy5pbmNsdWRlcyhlLm5hbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBTZXJ2aWNlRXhjZXB0aW9uID0gRGF0YS50YWdnZWQ8XG4gICAgICAgICAgICAgIFRhZ2dlZEV4Y2VwdGlvbjxTRk5TZXJ2aWNlRXhjZXB0aW9uPlxuICAgICAgICAgICAgPihlLm5hbWUpO1xuXG4gICAgICAgICAgICByZXR1cm4gU2VydmljZUV4Y2VwdGlvbih7XG4gICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIFNka0Vycm9yKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbmFtZTogXCJTZGtFcnJvclwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGU7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gKGNvbW1hbmRbMF0udG9Mb3dlckNhc2UoKSArIGNvbW1hbmQuc2xpY2UoMSkpLnJlcGxhY2UoXG4gICAgICAvQ29tbWFuZCQvLFxuICAgICAgXCJcIixcbiAgICApO1xuICAgIHJldHVybiB7IC4uLmFjYywgW21ldGhvZE5hbWVdOiBtZXRob2RJbXBsIH07XG4gIH0sIHt9KSBhcyBTRk5TZXJ2aWNlJDtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgQmFzZVNGTlNlcnZpY2VMYXllciA9IExheWVyLmVmZmVjdChTRk5TZXJ2aWNlLCBtYWtlU0ZOU2VydmljZSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBTRk5TZXJ2aWNlTGF5ZXIgPSBCYXNlU0ZOU2VydmljZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoU0ZOQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdFNGTlNlcnZpY2VMYXllciA9IFNGTlNlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRTRk5DbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
package/lib/esm/Errors.js CHANGED
@@ -1,3 +1,38 @@
1
- import * as Data from "effect/Data";
1
+ import { Data } from "effect";
2
+ export const AllServiceErrors = [
3
+ "ActivityAlreadyExists",
4
+ "ActivityDoesNotExist",
5
+ "ActivityLimitExceeded",
6
+ "ActivityWorkerLimitExceeded",
7
+ "ConflictException",
8
+ "ExecutionAlreadyExists",
9
+ "ExecutionDoesNotExist",
10
+ "ExecutionLimitExceeded",
11
+ "ExecutionNotRedrivable",
12
+ "InvalidArn",
13
+ "InvalidDefinition",
14
+ "InvalidEncryptionConfiguration",
15
+ "InvalidExecutionInput",
16
+ "InvalidLoggingConfiguration",
17
+ "InvalidName",
18
+ "InvalidOutput",
19
+ "InvalidToken",
20
+ "InvalidTracingConfiguration",
21
+ "KmsAccessDeniedException",
22
+ "KmsInvalidStateException",
23
+ "KmsThrottlingException",
24
+ "MissingRequiredParameter",
25
+ "ResourceNotFound",
26
+ "ServiceQuotaExceededException",
27
+ "StateMachineAlreadyExists",
28
+ "StateMachineDeleting",
29
+ "StateMachineDoesNotExist",
30
+ "StateMachineLimitExceeded",
31
+ "StateMachineTypeNotSupported",
32
+ "TaskDoesNotExist",
33
+ "TaskTimedOut",
34
+ "TooManyTags",
35
+ "ValidationException",
36
+ ];
2
37
  export const SdkError = Data.tagged("SdkError");
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4QkEsT0FBTyxLQUFLLElBQUksTUFBTSxhQUFhLENBQUM7QUErQ3BDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFXLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBY3Rpdml0eURvZXNOb3RFeGlzdCxcbiAgQWN0aXZpdHlMaW1pdEV4Y2VlZGVkLFxuICBBY3Rpdml0eVdvcmtlckxpbWl0RXhjZWVkZWQsXG4gIEludmFsaWROYW1lLFxuICBUb29NYW55VGFncyxcbiAgQ29uZmxpY3RFeGNlcHRpb24sXG4gIEludmFsaWRBcm4sXG4gIEludmFsaWREZWZpbml0aW9uLFxuICBJbnZhbGlkTG9nZ2luZ0NvbmZpZ3VyYXRpb24sXG4gIEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbixcbiAgU3RhdGVNYWNoaW5lQWxyZWFkeUV4aXN0cyxcbiAgU3RhdGVNYWNoaW5lRGVsZXRpbmcsXG4gIFN0YXRlTWFjaGluZUxpbWl0RXhjZWVkZWQsXG4gIFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWQsXG4gIFZhbGlkYXRpb25FeGNlcHRpb24sXG4gIFJlc291cmNlTm90Rm91bmQsXG4gIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uLFxuICBFeGVjdXRpb25Eb2VzTm90RXhpc3QsXG4gIFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdCxcbiAgSW52YWxpZFRva2VuLFxuICBFeGVjdXRpb25MaW1pdEV4Y2VlZGVkLFxuICBFeGVjdXRpb25Ob3RSZWRyaXZhYmxlLFxuICBUYXNrRG9lc05vdEV4aXN0LFxuICBUYXNrVGltZWRPdXQsXG4gIEludmFsaWRPdXRwdXQsXG4gIEV4ZWN1dGlvbkFscmVhZHlFeGlzdHMsXG4gIEludmFsaWRFeGVjdXRpb25JbnB1dCxcbiAgTWlzc2luZ1JlcXVpcmVkUGFyYW1ldGVyLFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXNmblwiO1xuaW1wb3J0ICogYXMgRGF0YSBmcm9tIFwiZWZmZWN0L0RhdGFcIjtcblxuZXhwb3J0IHR5cGUgVGFnZ2VkRXhjZXB0aW9uPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PiA9IFQgJiB7XG4gIHJlYWRvbmx5IF90YWc6IFRbXCJuYW1lXCJdO1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aXZpdHlEb2VzTm90RXhpc3RFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxBY3Rpdml0eURvZXNOb3RFeGlzdD47XG5leHBvcnQgdHlwZSBBY3Rpdml0eUxpbWl0RXhjZWVkZWRFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxBY3Rpdml0eUxpbWl0RXhjZWVkZWQ+O1xuZXhwb3J0IHR5cGUgQWN0aXZpdHlXb3JrZXJMaW1pdEV4Y2VlZGVkRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248QWN0aXZpdHlXb3JrZXJMaW1pdEV4Y2VlZGVkPjtcbmV4cG9ydCB0eXBlIEludmFsaWROYW1lRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248SW52YWxpZE5hbWU+O1xuZXhwb3J0IHR5cGUgVG9vTWFueVRhZ3NFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxUb29NYW55VGFncz47XG5leHBvcnQgdHlwZSBDb25mbGljdEVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPENvbmZsaWN0RXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIEludmFsaWRBcm5FcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkQXJuPjtcbmV4cG9ydCB0eXBlIEludmFsaWREZWZpbml0aW9uRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248SW52YWxpZERlZmluaXRpb24+O1xuZXhwb3J0IHR5cGUgSW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248SW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uPjtcbmV4cG9ydCB0eXBlIEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbkVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbj47XG5leHBvcnQgdHlwZSBTdGF0ZU1hY2hpbmVBbHJlYWR5RXhpc3RzRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248U3RhdGVNYWNoaW5lQWxyZWFkeUV4aXN0cz47XG5leHBvcnQgdHlwZSBTdGF0ZU1hY2hpbmVEZWxldGluZ0Vycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFN0YXRlTWFjaGluZURlbGV0aW5nPjtcbmV4cG9ydCB0eXBlIFN0YXRlTWFjaGluZUxpbWl0RXhjZWVkZWRFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxTdGF0ZU1hY2hpbmVMaW1pdEV4Y2VlZGVkPjtcbmV4cG9ydCB0eXBlIFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxTdGF0ZU1hY2hpbmVUeXBlTm90U3VwcG9ydGVkPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25FcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxWYWxpZGF0aW9uRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFJlc291cmNlTm90Rm91bmRFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxSZXNvdXJjZU5vdEZvdW5kPjtcbmV4cG9ydCB0eXBlIFNlcnZpY2VRdW90YUV4Y2VlZGVkRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248U2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgRXhlY3V0aW9uRG9lc05vdEV4aXN0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248RXhlY3V0aW9uRG9lc05vdEV4aXN0PjtcbmV4cG9ydCB0eXBlIFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFN0YXRlTWFjaGluZURvZXNOb3RFeGlzdD47XG5leHBvcnQgdHlwZSBJbnZhbGlkVG9rZW5FcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkVG9rZW4+O1xuZXhwb3J0IHR5cGUgRXhlY3V0aW9uTGltaXRFeGNlZWRlZEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEV4ZWN1dGlvbkxpbWl0RXhjZWVkZWQ+O1xuZXhwb3J0IHR5cGUgRXhlY3V0aW9uTm90UmVkcml2YWJsZUVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEV4ZWN1dGlvbk5vdFJlZHJpdmFibGU+O1xuZXhwb3J0IHR5cGUgVGFza0RvZXNOb3RFeGlzdEVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFRhc2tEb2VzTm90RXhpc3Q+O1xuZXhwb3J0IHR5cGUgVGFza1RpbWVkT3V0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248VGFza1RpbWVkT3V0PjtcbmV4cG9ydCB0eXBlIEludmFsaWRPdXRwdXRFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkT3V0cHV0PjtcbmV4cG9ydCB0eXBlIEV4ZWN1dGlvbkFscmVhZHlFeGlzdHNFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxFeGVjdXRpb25BbHJlYWR5RXhpc3RzPjtcbmV4cG9ydCB0eXBlIEludmFsaWRFeGVjdXRpb25JbnB1dEVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRFeGVjdXRpb25JbnB1dD47XG5leHBvcnQgdHlwZSBNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXJFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxNaXNzaW5nUmVxdWlyZWRQYXJhbWV0ZXI+O1xuZXhwb3J0IHR5cGUgU2RrRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248RXJyb3IgJiB7IG5hbWU6IFwiU2RrRXJyb3JcIiB9PjtcbmV4cG9ydCBjb25zdCBTZGtFcnJvciA9IERhdGEudGFnZ2VkPFNka0Vycm9yPihcIlNka0Vycm9yXCIpO1xuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU5QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5Qix1QkFBdUI7SUFDdkIsc0JBQXNCO0lBQ3RCLHVCQUF1QjtJQUN2Qiw2QkFBNkI7SUFDN0IsbUJBQW1CO0lBQ25CLHdCQUF3QjtJQUN4Qix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QixZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLGdDQUFnQztJQUNoQyx1QkFBdUI7SUFDdkIsNkJBQTZCO0lBQzdCLGFBQWE7SUFDYixlQUFlO0lBQ2YsY0FBYztJQUNkLDZCQUE2QjtJQUM3QiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLHdCQUF3QjtJQUN4QiwwQkFBMEI7SUFDMUIsa0JBQWtCO0lBQ2xCLCtCQUErQjtJQUMvQiwyQkFBMkI7SUFDM0Isc0JBQXNCO0lBQ3RCLDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IsOEJBQThCO0lBQzlCLGtCQUFrQjtJQUNsQixjQUFjO0lBQ2QsYUFBYTtJQUNiLHFCQUFxQjtDQUN0QixDQUFDO0FBc0RGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFXLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBY3Rpdml0eUFscmVhZHlFeGlzdHMsXG4gIEFjdGl2aXR5RG9lc05vdEV4aXN0LFxuICBBY3Rpdml0eUxpbWl0RXhjZWVkZWQsXG4gIEFjdGl2aXR5V29ya2VyTGltaXRFeGNlZWRlZCxcbiAgQ29uZmxpY3RFeGNlcHRpb24sXG4gIEV4ZWN1dGlvbkFscmVhZHlFeGlzdHMsXG4gIEV4ZWN1dGlvbkRvZXNOb3RFeGlzdCxcbiAgRXhlY3V0aW9uTGltaXRFeGNlZWRlZCxcbiAgRXhlY3V0aW9uTm90UmVkcml2YWJsZSxcbiAgSW52YWxpZEFybixcbiAgSW52YWxpZERlZmluaXRpb24sXG4gIEludmFsaWRFbmNyeXB0aW9uQ29uZmlndXJhdGlvbixcbiAgSW52YWxpZEV4ZWN1dGlvbklucHV0LFxuICBJbnZhbGlkTG9nZ2luZ0NvbmZpZ3VyYXRpb24sXG4gIEludmFsaWROYW1lLFxuICBJbnZhbGlkT3V0cHV0LFxuICBJbnZhbGlkVG9rZW4sXG4gIEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbixcbiAgS21zQWNjZXNzRGVuaWVkRXhjZXB0aW9uLFxuICBLbXNJbnZhbGlkU3RhdGVFeGNlcHRpb24sXG4gIEttc1Rocm90dGxpbmdFeGNlcHRpb24sXG4gIE1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlcixcbiAgUmVzb3VyY2VOb3RGb3VuZCxcbiAgU2VydmljZVF1b3RhRXhjZWVkZWRFeGNlcHRpb24sXG4gIFN0YXRlTWFjaGluZUFscmVhZHlFeGlzdHMsXG4gIFN0YXRlTWFjaGluZURlbGV0aW5nLFxuICBTdGF0ZU1hY2hpbmVEb2VzTm90RXhpc3QsXG4gIFN0YXRlTWFjaGluZUxpbWl0RXhjZWVkZWQsXG4gIFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWQsXG4gIFRhc2tEb2VzTm90RXhpc3QsXG4gIFRhc2tUaW1lZE91dCxcbiAgVG9vTWFueVRhZ3MsXG4gIFZhbGlkYXRpb25FeGNlcHRpb24sXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtc2ZuXCI7XG5pbXBvcnQgeyBEYXRhIH0gZnJvbSBcImVmZmVjdFwiO1xuXG5leHBvcnQgY29uc3QgQWxsU2VydmljZUVycm9ycyA9IFtcbiAgXCJBY3Rpdml0eUFscmVhZHlFeGlzdHNcIixcbiAgXCJBY3Rpdml0eURvZXNOb3RFeGlzdFwiLFxuICBcIkFjdGl2aXR5TGltaXRFeGNlZWRlZFwiLFxuICBcIkFjdGl2aXR5V29ya2VyTGltaXRFeGNlZWRlZFwiLFxuICBcIkNvbmZsaWN0RXhjZXB0aW9uXCIsXG4gIFwiRXhlY3V0aW9uQWxyZWFkeUV4aXN0c1wiLFxuICBcIkV4ZWN1dGlvbkRvZXNOb3RFeGlzdFwiLFxuICBcIkV4ZWN1dGlvbkxpbWl0RXhjZWVkZWRcIixcbiAgXCJFeGVjdXRpb25Ob3RSZWRyaXZhYmxlXCIsXG4gIFwiSW52YWxpZEFyblwiLFxuICBcIkludmFsaWREZWZpbml0aW9uXCIsXG4gIFwiSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uXCIsXG4gIFwiSW52YWxpZEV4ZWN1dGlvbklucHV0XCIsXG4gIFwiSW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uXCIsXG4gIFwiSW52YWxpZE5hbWVcIixcbiAgXCJJbnZhbGlkT3V0cHV0XCIsXG4gIFwiSW52YWxpZFRva2VuXCIsXG4gIFwiSW52YWxpZFRyYWNpbmdDb25maWd1cmF0aW9uXCIsXG4gIFwiS21zQWNjZXNzRGVuaWVkRXhjZXB0aW9uXCIsXG4gIFwiS21zSW52YWxpZFN0YXRlRXhjZXB0aW9uXCIsXG4gIFwiS21zVGhyb3R0bGluZ0V4Y2VwdGlvblwiLFxuICBcIk1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlclwiLFxuICBcIlJlc291cmNlTm90Rm91bmRcIixcbiAgXCJTZXJ2aWNlUXVvdGFFeGNlZWRlZEV4Y2VwdGlvblwiLFxuICBcIlN0YXRlTWFjaGluZUFscmVhZHlFeGlzdHNcIixcbiAgXCJTdGF0ZU1hY2hpbmVEZWxldGluZ1wiLFxuICBcIlN0YXRlTWFjaGluZURvZXNOb3RFeGlzdFwiLFxuICBcIlN0YXRlTWFjaGluZUxpbWl0RXhjZWVkZWRcIixcbiAgXCJTdGF0ZU1hY2hpbmVUeXBlTm90U3VwcG9ydGVkXCIsXG4gIFwiVGFza0RvZXNOb3RFeGlzdFwiLFxuICBcIlRhc2tUaW1lZE91dFwiLFxuICBcIlRvb01hbnlUYWdzXCIsXG4gIFwiVmFsaWRhdGlvbkV4Y2VwdGlvblwiLFxuXTtcblxuZXhwb3J0IHR5cGUgVGFnZ2VkRXhjZXB0aW9uPFQgZXh0ZW5kcyB7IG5hbWU6IHN0cmluZyB9PiA9IFQgJiB7XG4gIHJlYWRvbmx5IF90YWc6IFRbXCJuYW1lXCJdO1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aXZpdHlBbHJlYWR5RXhpc3RzRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248QWN0aXZpdHlBbHJlYWR5RXhpc3RzPjtcbmV4cG9ydCB0eXBlIEFjdGl2aXR5RG9lc05vdEV4aXN0RXJyb3IgPSBUYWdnZWRFeGNlcHRpb248QWN0aXZpdHlEb2VzTm90RXhpc3Q+O1xuZXhwb3J0IHR5cGUgQWN0aXZpdHlMaW1pdEV4Y2VlZGVkRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248QWN0aXZpdHlMaW1pdEV4Y2VlZGVkPjtcbmV4cG9ydCB0eXBlIEFjdGl2aXR5V29ya2VyTGltaXRFeGNlZWRlZEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEFjdGl2aXR5V29ya2VyTGltaXRFeGNlZWRlZD47XG5leHBvcnQgdHlwZSBDb25mbGljdEVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPENvbmZsaWN0RXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIEV4ZWN1dGlvbkFscmVhZHlFeGlzdHNFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxFeGVjdXRpb25BbHJlYWR5RXhpc3RzPjtcbmV4cG9ydCB0eXBlIEV4ZWN1dGlvbkRvZXNOb3RFeGlzdEVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPEV4ZWN1dGlvbkRvZXNOb3RFeGlzdD47XG5leHBvcnQgdHlwZSBFeGVjdXRpb25MaW1pdEV4Y2VlZGVkRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248RXhlY3V0aW9uTGltaXRFeGNlZWRlZD47XG5leHBvcnQgdHlwZSBFeGVjdXRpb25Ob3RSZWRyaXZhYmxlRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248RXhlY3V0aW9uTm90UmVkcml2YWJsZT47XG5leHBvcnQgdHlwZSBJbnZhbGlkQXJuRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248SW52YWxpZEFybj47XG5leHBvcnQgdHlwZSBJbnZhbGlkRGVmaW5pdGlvbkVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPEludmFsaWREZWZpbml0aW9uPjtcbmV4cG9ydCB0eXBlIEludmFsaWRFbmNyeXB0aW9uQ29uZmlndXJhdGlvbkVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRFbmNyeXB0aW9uQ29uZmlndXJhdGlvbj47XG5leHBvcnQgdHlwZSBJbnZhbGlkRXhlY3V0aW9uSW5wdXRFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxJbnZhbGlkRXhlY3V0aW9uSW5wdXQ+O1xuZXhwb3J0IHR5cGUgSW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248SW52YWxpZExvZ2dpbmdDb25maWd1cmF0aW9uPjtcbmV4cG9ydCB0eXBlIEludmFsaWROYW1lRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248SW52YWxpZE5hbWU+O1xuZXhwb3J0IHR5cGUgSW52YWxpZE91dHB1dEVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRPdXRwdXQ+O1xuZXhwb3J0IHR5cGUgSW52YWxpZFRva2VuRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248SW52YWxpZFRva2VuPjtcbmV4cG9ydCB0eXBlIEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbkVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPEludmFsaWRUcmFjaW5nQ29uZmlndXJhdGlvbj47XG5leHBvcnQgdHlwZSBLbXNBY2Nlc3NEZW5pZWRFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxLbXNBY2Nlc3NEZW5pZWRFeGNlcHRpb24+O1xuZXhwb3J0IHR5cGUgS21zSW52YWxpZFN0YXRlRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248S21zSW52YWxpZFN0YXRlRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIEttc1Rocm90dGxpbmdFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxLbXNUaHJvdHRsaW5nRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIE1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlckVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPE1pc3NpbmdSZXF1aXJlZFBhcmFtZXRlcj47XG5leHBvcnQgdHlwZSBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248UmVzb3VyY2VOb3RGb3VuZD47XG5leHBvcnQgdHlwZSBTZXJ2aWNlUXVvdGFFeGNlZWRlZEVycm9yID1cbiAgVGFnZ2VkRXhjZXB0aW9uPFNlcnZpY2VRdW90YUV4Y2VlZGVkRXhjZXB0aW9uPjtcbmV4cG9ydCB0eXBlIFN0YXRlTWFjaGluZUFscmVhZHlFeGlzdHNFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxTdGF0ZU1hY2hpbmVBbHJlYWR5RXhpc3RzPjtcbmV4cG9ydCB0eXBlIFN0YXRlTWFjaGluZURlbGV0aW5nRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248U3RhdGVNYWNoaW5lRGVsZXRpbmc+O1xuZXhwb3J0IHR5cGUgU3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0RXJyb3IgPVxuICBUYWdnZWRFeGNlcHRpb248U3RhdGVNYWNoaW5lRG9lc05vdEV4aXN0PjtcbmV4cG9ydCB0eXBlIFN0YXRlTWFjaGluZUxpbWl0RXhjZWVkZWRFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxTdGF0ZU1hY2hpbmVMaW1pdEV4Y2VlZGVkPjtcbmV4cG9ydCB0eXBlIFN0YXRlTWFjaGluZVR5cGVOb3RTdXBwb3J0ZWRFcnJvciA9XG4gIFRhZ2dlZEV4Y2VwdGlvbjxTdGF0ZU1hY2hpbmVUeXBlTm90U3VwcG9ydGVkPjtcbmV4cG9ydCB0eXBlIFRhc2tEb2VzTm90RXhpc3RFcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxUYXNrRG9lc05vdEV4aXN0PjtcbmV4cG9ydCB0eXBlIFRhc2tUaW1lZE91dEVycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFRhc2tUaW1lZE91dD47XG5leHBvcnQgdHlwZSBUb29NYW55VGFnc0Vycm9yID0gVGFnZ2VkRXhjZXB0aW9uPFRvb01hbnlUYWdzPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25FcnJvciA9IFRhZ2dlZEV4Y2VwdGlvbjxWYWxpZGF0aW9uRXhjZXB0aW9uPjtcblxuZXhwb3J0IHR5cGUgU2RrRXJyb3IgPSBUYWdnZWRFeGNlcHRpb248RXJyb3IgJiB7IG5hbWU6IFwiU2RrRXJyb3JcIiB9PjtcbmV4cG9ydCBjb25zdCBTZGtFcnJvciA9IERhdGEudGFnZ2VkPFNka0Vycm9yPihcIlNka0Vycm9yXCIpO1xuIl19