truemark-cdk-lib 1.22.2 → 1.22.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Construct } from 'constructs';
|
|
2
|
-
import {
|
|
2
|
+
import { GitPushFilter, PipelineType } from 'aws-cdk-lib/aws-codepipeline';
|
|
3
3
|
import { AddStageOpts, CodePipeline, IFileSetProducer, StageDeployment, Wave, WaveOptions } from 'aws-cdk-lib/pipelines';
|
|
4
4
|
import { ComputeType, IBuildImage } from 'aws-cdk-lib/aws-codebuild';
|
|
5
5
|
import { PipelineNotificationRule } from './pipeline-notification-rule';
|
|
@@ -230,9 +230,13 @@ export interface CdkPipelineProps {
|
|
|
230
230
|
*/
|
|
231
231
|
readonly disableAutoTrigger?: boolean;
|
|
232
232
|
/**
|
|
233
|
-
*
|
|
233
|
+
* Git push filter configuration for the pipeline trigger.
|
|
234
|
+
* Allows filtering which git events trigger the pipeline based on branch patterns,
|
|
235
|
+
* file paths, or tag patterns. Only applicable when using CodeStar connections.
|
|
236
|
+
*
|
|
237
|
+
* @default - No filtering, all pushes to the branch trigger the pipeline
|
|
234
238
|
*/
|
|
235
|
-
readonly
|
|
239
|
+
readonly gitPushFilter?: GitPushFilter[];
|
|
236
240
|
}
|
|
237
241
|
/**
|
|
238
242
|
* An abstraction to ease CDK pipeline creation and configuration.
|
|
@@ -101,7 +101,6 @@ class CdkPipeline extends constructs_1.Construct {
|
|
|
101
101
|
pipelineType: (_a = props.pipelineType) !== null && _a !== void 0 ? _a : aws_codepipeline_1.PipelineType.V2,
|
|
102
102
|
artifactBucket,
|
|
103
103
|
pipelineName: props.pipelineName,
|
|
104
|
-
triggers: props.triggers,
|
|
105
104
|
});
|
|
106
105
|
let input;
|
|
107
106
|
if (props.connectionArn !== undefined) {
|
|
@@ -260,6 +259,27 @@ class CdkPipeline extends constructs_1.Construct {
|
|
|
260
259
|
TriggerEvents: 'NONE',
|
|
261
260
|
});
|
|
262
261
|
}
|
|
262
|
+
// Apply GitPushFilter if provided
|
|
263
|
+
if (props.gitPushFilter && props.gitPushFilter.length > 0) {
|
|
264
|
+
const cfnPipeline = underlyingPipeline.node.defaultChild;
|
|
265
|
+
cfnPipeline.addPropertyOverride('Stages.0.Actions.0.Configuration.TriggerConfiguration.GitConfiguration.Push', props.gitPushFilter.map((filter) => ({
|
|
266
|
+
Branches: filter.branchesIncludes
|
|
267
|
+
? { Includes: filter.branchesIncludes }
|
|
268
|
+
: filter.branchesExcludes
|
|
269
|
+
? { Excludes: filter.branchesExcludes }
|
|
270
|
+
: undefined,
|
|
271
|
+
FilePaths: filter.filePathsIncludes
|
|
272
|
+
? { Includes: filter.filePathsIncludes }
|
|
273
|
+
: filter.filePathsExcludes
|
|
274
|
+
? { Excludes: filter.filePathsExcludes }
|
|
275
|
+
: undefined,
|
|
276
|
+
Tags: filter.tagsIncludes
|
|
277
|
+
? { Includes: filter.tagsIncludes }
|
|
278
|
+
: filter.tagsExcludes
|
|
279
|
+
? { Excludes: filter.tagsExcludes }
|
|
280
|
+
: undefined,
|
|
281
|
+
})));
|
|
282
|
+
}
|
|
263
283
|
// Handle pipeline notifications
|
|
264
284
|
if (props.slackChannelConfiguration && props.slackChannelConfigurationArn) {
|
|
265
285
|
throw new Error('Only one of slackChannelConfiguration and slackChannelConfigurationArn can be specified');
|
|
@@ -299,4 +319,4 @@ class CdkPipeline extends constructs_1.Construct {
|
|
|
299
319
|
}
|
|
300
320
|
}
|
|
301
321
|
exports.CdkPipeline = CdkPipeline;
|
|
302
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXBpcGVsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy1jb2RlcGlwZWxpbmUvbGliL2Nkay1waXBlbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsbUVBS3NDO0FBQ3RDLGlEQUF3QztBQUN4Qyx1REFBaUQ7QUFDakQscURBUytCO0FBQy9CLDZEQUttQztBQUNuQyw2RUFBc0U7QUFDdEUsNkNBQThDO0FBQzlDLCtEQUFzRDtBQUN0RCxtQ0FBMkM7QUFDM0MsaURBQTREO0FBSTVEOzs7R0FHRztBQUNILElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQiw2QkFBYyxDQUFBO0lBQ2QsNkJBQWMsQ0FBQTtJQUNkLDZCQUFjLENBQUE7SUFDZCw2QkFBYyxDQUFBO0lBQ2QsNkJBQWMsQ0FBQTtBQUNoQixDQUFDLEVBTlcsV0FBVywyQkFBWCxXQUFXLFFBTXRCO0FBRUQ7OztHQUdHO0FBQ0gsSUFBWSxTQWFYO0FBYkQsV0FBWSxTQUFTO0lBQ25CLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFiVyxTQUFTLHlCQUFULFNBQVMsUUFhcEI7QUFFRDs7O0dBR0c7QUFDSCxJQUFZLFdBTVg7QUFORCxXQUFZLFdBQVc7SUFDckIsbUNBQW9CLENBQUE7SUFDcEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQU5XLFdBQVcsMkJB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LHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDaEUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRSxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQ3JELG1CQUFtQixFQUNuQixLQUFLLENBQUMsb0JBQW9CLENBQzNCLENBQUM7Z0JBQ0YsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsS0FBWSxFQUFFLE9BQXNCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxPQUFPLENBQUMsRUFBVSxFQUFFLE9BQXFCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQXBRRCxrQ0FvUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBDZm5QaXBlbGluZSxcbiAgUGlwZWxpbmUsXG4gIFBpcGVsaW5lVHlwZSxcbiAgVHJpZ2dlclByb3BzLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lJztcbmltcG9ydCB7S2V5fSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB7QXJ0aWZhY3RCdWNrZXR9IGZyb20gJy4vYXJ0aWZhY3QtYnVja2V0JztcbmltcG9ydCB7XG4gIEFkZFN0YWdlT3B0cyxcbiAgQ29kZVBpcGVsaW5lLFxuICBDb2RlUGlwZWxpbmVTb3VyY2UsXG4gIElGaWxlU2V0UHJvZHVjZXIsXG4gIFNoZWxsU3RlcCxcbiAgU3RhZ2VEZXBsb3ltZW50LFxuICBXYXZlLFxuICBXYXZlT3B0aW9ucyxcbn0gZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB7XG4gIEJ1aWxkU3BlYyxcbiAgQ29tcHV0ZVR5cGUsXG4gIElCdWlsZEltYWdlLFxuICBMaW51eEJ1aWxkSW1hZ2UsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0IHtQaXBlbGluZU5vdGlmaWNhdGlvblJ1bGV9IGZyb20gJy4vcGlwZWxpbmUtbm90aWZpY2F0aW9uLXJ1bGUnO1xuaW1wb3J0IHtBcm4sIFN0YWNrLCBTdGFnZX0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtSZXBvc2l0b3J5fSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWNvbW1pdCc7XG5pbXBvcnQge05vZGVQYWNrYWdlTWFuYWdlcn0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQge0VmZmVjdCwgUG9saWN5U3RhdGVtZW50fSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7SVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb259IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jaGF0Ym90JztcbmltcG9ydCB7SVRvcGljfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zJztcblxuLyoqXG4gKiBOb2RlIHJ1bnRpbWVzIHN1cHBvcnRlZCBieSBDb2RlYkJ1aWxkXG4gKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZGVidWlsZC9sYXRlc3QvdXNlcmd1aWRlL2F2YWlsYWJsZS1ydW50aW1lcy5odG1sXG4gKi9cbmV4cG9ydCBlbnVtIE5vZGVWZXJzaW9uIHtcbiAgTk9ERV8xNiA9ICcxNicsXG4gIE5PREVfMTggPSAnMTgnLFxuICBOT0RFXzIwID0gJzIwJyxcbiAgTk9ERV8yMiA9ICcyMicsXG4gIE5PREVfMjQgPSAnMjQnLFxufVxuXG4vKipcbiAqIEdvIHJ1bnRpbWVzIHN1cHBvcnRlZCBieSBDb2RlQnVpbGRcbiAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29kZWJ1aWxkL2xhdGVzdC91c2VyZ3VpZGUvYXZhaWxhYmxlLXJ1bnRpbWVzLmh0bWxcbiAqL1xuZXhwb3J0IGVudW0gR29WZXJzaW9uIHtcbiAgR09fMV8xMiA9ICcxLjEyJyxcbiAgR09fMV8xMyA9ICcxLjEzJyxcbiAgR09fMV8xNCA9ICcxLjE0JyxcbiAgR09fMV8xNSA9ICcxLjE1JyxcbiAgR09fMV8xNiA9ICcxLjE2JyxcbiAgR09fMV8xNyA9ICcxLjE3JyxcbiAgR09fMV8xOCA9ICcxLjE4JyxcbiAgR09fMV8yMCA9ICcxLjIwJyxcbiAgR09fMV8yMSA9ICcxLjIxJyxcbiAgR09fMV8yMiA9ICcxLjIyJyxcbiAgR09fMV8yMyA9ICcxLjIzJyxcbiAgR09fMV8yNCA9ICcxLjI0Jyxcbn1cblxuLyoqXG4gKiBKYXZhIHJ1bnRpbWVzIHN1cHBvcnRlZCBieSBDb2RlQnVpbGRcbiAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29kZWJ1aWxkL2xhdGVzdC91c2VyZ3VpZGUvYXZhaWxhYmxlLXJ1bnRpbWVzLmh0bWxcbiAqL1xuZXhwb3J0IGVudW0gSmF2YVZlcnNpb24ge1xuICBKQVZBXzggPSAnY29ycmV0dG84JyxcbiAgSkFWQV8xMSA9ICdjb3JyZXR0bzExJyxcbiAgSkFWQV8xNiA9ICdjb3JyZXR0bzE3JyxcbiAgSkFWQV8yMSA9ICdjb3JyZXR0bzIxJyxcbiAgSkFWQV8yNSA9ICdjb3JyZXR0bzI1Jyxcbn1cblxuLyoqXG4gKiBEb3RuZXQgcnVudGltZXMgc3VwcG9ydGVkIGJ5IENvZGVCdWlsZFxuICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2RlYnVpbGQvbGF0ZXN0L3VzZXJndWlkZS9hdmFpbGFibGUtcnVudGltZXMuaHRtbGRvdG5ldFxuICovXG5leHBvcnQgZW51bSBEb3RuZXRWZXJzaW9uIHtcbiAgRE9UTkVUXzNfMSA9ICczLjEnLFxuICBET1RORVRfNV8wID0gJzUuMCcsXG4gIERPVE5FVF82XzAgPSAnNi4wJyxcbiAgRE9UTkVUXzhfMCA9ICc4LjAnLFxufVxuXG5leHBvcnQgZW51bSBQeXRob25WZXJzaW9uIHtcbiAgUFlUSE9OXzNfNyA9ICczLjcnLFxuICBQWVRIT05fM184ID0gJzMuOCcsXG4gIFBZVEhPTl8zXzkgPSAnMy45JyxcbiAgUFlUSE9OXzNfMTAgPSAnMy4xMCcsXG4gIFBZVEhPTl8zXzExID0gJzMuMTEnLFxuICBQWVRIT05fM18xMiA9ICczLjEyJyxcbiAgUFlUSE9OXzNfMTMgPSAnMy4xMycsXG4gIFBZVEhPTl8zXzE0ID0gJzMuMTQnLFxufVxuXG5jb25zdCBET0NLRVJfQlVJTERYX1NFVFVQX0NPTU1BTkRTID0gW1xuICBcImVjaG8gJyMhL2Jpbi9iYXNoJyA+IC91c3IvbG9jYWwvYmluL2J1aWxkeC5zaFwiLFxuICAnZWNobyBcXCdbWyBcIiQxXCIgPT0gXCJidWlsZFwiIF1dICYmIGRvY2tlciBidWlsZHggYnVpbGQgLS1sb2FkIFwiJHtAOjJ9XCIgfHwgZG9ja2VyIFwiJEBcIlxcJyA+PiAvdXNyL2xvY2FsL2Jpbi9idWlsZHguc2gnLFxuICAnY2htb2QgK3ggL3Vzci9sb2NhbC9iaW4vYnVpbGR4LnNoJyxcbiAgJ2VjaG8gXCJBcmNoaXRlY3R1cmU6ICQodW5hbWUgLW0pXCInLFxuICAnZG9ja2VyIGJ1aWxkeCBjcmVhdGUgLS11c2UgLS1uYW1lIG11bHRpLWFyY2gtYnVpbGRlcicsXG4gICdkb2NrZXIgYnVpbGR4IGxzJyxcbl07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgQ2RrUGlwZWxpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGtQaXBlbGluZVByb3BzIHtcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIENESyB3aWxsIG5hbWUgdGhlIHBpcGVsaW5lLiBTZXQgdGhpcyB0byBvdmVycmlkZSB0aGUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lTmFtZT86IHN0cmluZztcblxuICByZWFkb25seSBwaXBlbGluZVR5cGU/OiBQaXBlbGluZVR5cGU7XG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIENESyB3aWxsIGNyZWF0ZSBLTVMga2V5cyBmb3IgY3Jvc3MgYWNjb3VudCBkZXBsb3ltZW50cy4gVGhpc1xuICAgKiBjYW4gYmUgY29zdGx5IGlmIHlvdSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHBpcGVsaW5lcy4gVGhpcyBwcm9wZXJ0eVxuICAgKiBhbGxvd3MgYSBjb21tb24ga2V5IHRvIGJlIHNoYXJlZCBhY3Jvc3MgcGlwZWxpbmVzLlxuICAgKlxuICAgKiBZb3UgbXVzdCBjaGFuZ2UgQGF3cy1jZGsvYXdzLWNvZGVwaXBlbGluZTpjcm9zc0FjY291bnRLZXlzRGVmYXVsdFZhbHVlVG9GYWxzZSB0byBmYWxzZSBpbiB5b3VyIGNkay5qc29uXG4gICAqIGZpbGUgdG8gYXZvaWQgZXJyb3JzLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYWNjb3VudCBJRHMgdGhpcyBwaXBlbGluZSB3aWxsIGRlcGxveSBpbnRvLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBcm4gb2YgdGhlIENvZGVTdGFyIGNvbm5lY3Rpb24gdXNlZCB0byBhY2Nlc3MgdGhlIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnkuIElmIG5vdCBzZXQsIHRoaXNcbiAgICogY29uc3RydWN0IGFzc3VtZXMgdGhlIHJlcG9zaXRvcnkgaXMgaW4gQVdTIENvZGVDb21taXQuXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTb3VyY2UgY29kZSByZXBvc2l0b3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggdG8gdXNlIGluc2lkZSB0aGUgc291cmNlIGNvZGUgcmVwb3NpdG9yeS5cbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzZWxmLW11dGF0aW9uLiBVc2VmdWwgZm9yIGNkayBwaXBlbGluZSBkZXZlbG9wbWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZk11dGF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGRvY2tlciBmb3IgdGhlICdzeW50aCcgc3RlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyRW5hYmxlZEZvclN5bnRoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGRvY2tlciBmb3IgdGhlIHNlbGYtbXV0YXRlIHN0ZXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckVuYWJsZWRGb3JTZWxmTXV0YXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUeXBlIG9mIGNvbXB1dGUgdG8gdXNlIGZvciB0aGlzIGJ1aWxkLiBEZWZhdWx0IGlzIENvbXB1dGVUeXBlLlNNQUxMLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcHV0ZVR5cGU/OiBDb21wdXRlVHlwZTtcblxuICAvKipcbiAgICogVGhlIGltYWdlIHRvIHVzZSBmb3IgYnVpbGRzLiBJZiBub25lIGlzIHNlbGVjdGVkIHRoZSBkZWZhdWx0IGRlZmluZWQgaW4gQVdTIENESyBpcyB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJbWFnZT86IElCdWlsZEltYWdlO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTbGFjayBjaGFubmVsIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBub3RpZmljYXRpb25zLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFNsYWNrIGNoYW5uZWwgY29uZmlndXJhdGlvbiB0byB1c2UgZm9yIG5vdGlmaWNhdGlvbnMuIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIHNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25Bcm4uXG4gICAqL1xuICByZWFkb25seSBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uPzogSVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBTTlMgdG9waWMgdG8gdXNlIGZvciBub3RpZmljYXRpb25zLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBub3RpZmljYXRpb25Ub3BpYy5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvblRvcGljQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgU05TIHRvcGljIHRvIHVzZSBmb3Igbm90aWZpY2F0aW9ucy4gTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggbm90aWZpY2F0aW9uVG9waWNBcm4uXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25Ub3BpYz86IElUb3BpYztcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygbm90aWZpY2F0aW9uIGV2ZW50cyB0byByZWNlaXZlLkRlZmF1bHQgaXMgREVGQVVMVF9FVkVOVFNcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZHRjb25zb2xlL2xhdGVzdC91c2VyZ3VpZGUvY29uY2VwdHMuaHRtbCNldmVudHMtcmVmLXBpcGVsaW5lXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25FdmVudHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBGaWxlU2V0cyB0byBwdXQgaW4gb3RoZXIgZGlyZWN0b3JpZXNcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxJbnB1dHM/OiBSZWNvcmQ8c3RyaW5nLCBJRmlsZVNldFByb2R1Y2VyPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb21tYW5kcyB0byBydW4gYmVmb3JlIGluc3RhbGwuIElmIHlvdSBvdmVycmlkZSB0aGUgY29tbWFuZHMgcHJvcGVydHksIHRoaXMgaGFzIG5vIGVmZmVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHByZUJ1aWxkQ29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGRlZmF1bHQgY29tbWFuZHMuXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgYXNzZXRzIGluIG11bHRpcGxlIENvZGVCdWlsZCBwcm9qZWN0cy4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hBc3NldHNJblBhcmFsbGVsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGFja2FnZSBtYW5hZ2VyIHRvIHVzZSB3aGVuIGV4ZWN1dGluZyBDREsuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vZGVQYWNrYWdlTWFuYWdlci5QTlBNXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTWFuYWdlcj86IE5vZGVQYWNrYWdlTWFuYWdlcjtcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0aGUgQ0RLIHByb2plY3QgaXMgbG9jYXRlZCBpbiB0aGUgcmVwby5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBcIi5cIlxuICAgKi9cbiAgcmVhZG9ubHkgY2RrRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb2xpY3kgc3RhdGVtZW50cyB0byBhZGQgdG8gdGhlIHJvbGUgdXNlZCBieSBzeW50aC5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGVQb2xpY3k/OiBQb2xpY3lTdGF0ZW1lbnRbXTtcblxuICAvKipcbiAgICogR3JhbnRzIHJlYWQgYWNjZXNzIHRvIHRoZSBwcm92aWRlZCBBV1MgQ29kZUFydGlmYWN0IGRvbWFpbnMuXG4gICAqL1xuICByZWFkb25seSBjb2RlQXJ0aWZhY3REb21haW5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdyYW50cyByZWFkIGFjY2VzcyB0byB0aGUgcHJvdmlkZWQgQVdTIENvZGVBcnRpZmFjdCByZXBvc2l0b3JpZXMuXG4gICAqL1xuICByZWFkb25seSBjb2RlQXJ0aWZhY3RSZXBvc2l0b3JpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiBOb2RlIHRvIHVzZSBpbiB0aGUgcGlwZWxpbmUuIERlZmF1bHQgaXMgTk9ERV8yMFxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVZlcnNpb24/OiBOb2RlVmVyc2lvbiB8IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiBHbyB0byBpbnN0YWxsLiBEZWZhdWx0IGlzIG5vbmUuXG4gICAqL1xuICByZWFkb25seSBnb1ZlcnNpb24/OiBHb1ZlcnNpb24gfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgSmF2YSB0byBpbnN0YWxsLiBEZWZhdWx0IGlzIG5vbmUuXG4gICAqL1xuICByZWFkb25seSBqYXZhVmVyc2lvbj86IEphdmFWZXJzaW9uIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIERvdG5ldCB0byBpbnN0YWxsLiBEZWZhdWx0IGlzIG5vbmUuXG4gICAqL1xuICByZWFkb25seSBkb3RuZXRWZXJzaW9uPzogRG90bmV0VmVyc2lvbiB8IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiBQeXRob24gdG8gaW5zdGFsbC4gRGVmYXVsdCBpcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgcHl0aG9uVmVyc2lvbj86IFB5dGhvblZlcnNpb24gfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29tbWFuZHMgdG8gcnVuIGR1cmluZyB0aGUgaW5zdGFsbCBwaGFzZS5cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxJbnN0YWxsQ29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjbG9uZSB0aGUgQ29kZUNvbW1pdCByZXBvc2l0b3J5IGludG8gdGhlIENvZGVCdWlsZCBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29kZUJ1aWxkQ2xvbmVPdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSB1c2Ugb2YgXCJkb2NrZXIgYnVpbGR4XCIgaW4gdGhlIGFzc2V0IHB1Ymxpc2hpbmcgc3RlcC4gRGVmYXVsdCBpcyB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRG9ja2VyQnVpbGR4T25Bc3NldFB1Ymxpc2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIGF1dG9tYXRpYyB0cmlnZ2VyaW5nIG9uIHNvdXJjZSBjb2RlIGNoYW5nZXMuIFdoZW4gdHJ1ZSwgdGhlIHBpcGVsaW5lXG4gICAqIG11c3QgYmUgbWFudWFsbHkgc3RhcnRlZC4gVXNlZnVsIGZvciBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlIChhdXRvLXRyaWdnZXIgZW5hYmxlZClcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVBdXRvVHJpZ2dlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSB0cmlnZ2VyIGNvbmZpZ3VyYXRpb24gc3BlY2lmeWluZyBhIHR5cGUgb2YgZXZlbnQsIHN1Y2ggYXMgR2l0IHRhZ3MsIHRoYXQgc3RhcnRzIHRoZSBwaXBlbGluZVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcnM/OiBUcmlnZ2VyUHJvcHNbXTtcbn1cblxuLyoqXG4gKiBBbiBhYnN0cmFjdGlvbiB0byBlYXNlIENESyBwaXBlbGluZSBjcmVhdGlvbiBhbmQgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENka1BpcGVsaW5lIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgcGlwZWxpbmU6IENvZGVQaXBlbGluZTtcbiAgcmVhZG9ubHkgcGlwZWxpbmVOb3RpZmljYXRpb25SdWxlPzogUGlwZWxpbmVOb3RpZmljYXRpb25SdWxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZGtQaXBlbGluZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGVuY3J5cHRpb25LZXkgPSBLZXkuZnJvbUtleUFybih0aGlzLCAnRW5jcnlwdGlvbktleScsIHByb3BzLmtleUFybik7XG5cbiAgICBjb25zdCBhcnRpZmFjdEJ1Y2tldCA9IG5ldyBBcnRpZmFjdEJ1Y2tldCh0aGlzLCAnQXJ0aWZhY3RCdWNrZXQnLCB7XG4gICAgICBlbmNyeXB0aW9uS2V5LFxuICAgICAgYWNjb3VudElkczogcHJvcHMuYWNjb3VudElkcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHVuZGVybHlpbmdQaXBlbGluZSA9IG5ldyBQaXBlbGluZSh0aGlzLCAnUGlwZWxpbmUnLCB7XG4gICAgICBwaXBlbGluZVR5cGU6IHByb3BzLnBpcGVsaW5lVHlwZSA/PyBQaXBlbGluZVR5cGUuVjIsXG4gICAgICBhcnRpZmFjdEJ1Y2tldCxcbiAgICAgIHBpcGVsaW5lTmFtZTogcHJvcHMucGlwZWxpbmVOYW1lLFxuICAgICAgdHJpZ2dlcnM6IHByb3BzLnRyaWdnZXJzLFxuICAgIH0pO1xuXG4gICAgbGV0IGlucHV0OiBDb2RlUGlwZWxpbmVTb3VyY2U7XG4gICAgaWYgKHByb3BzLmNvbm5lY3Rpb25Bcm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaW5wdXQgPSBDb2RlUGlwZWxpbmVTb3VyY2UuY29ubmVjdGlvbihwcm9wcy5yZXBvc2l0b3J5LCBwcm9wcy5icmFuY2gsIHtcbiAgICAgICAgY29ubmVjdGlvbkFybjogcHJvcHMuY29ubmVjdGlvbkFybixcbiAgICAgICAgLy8gVXNlZCBwZXIgd29ya2Fyb3VuZCBpbiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzExMzk5I2lzc3VlY29tbWVudC0xMzY3MTgwNjk2XG4gICAgICAgIGNvZGVCdWlsZENsb25lT3V0cHV0OiBwcm9wcy5jb2RlQnVpbGRDbG9uZU91dHB1dCA/PyBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXBvc2l0b3J5ID0gcHJvcHMucmVwb3NpdG9yeS5zdGFydHNXaXRoKCdhcm46JylcbiAgICAgICAgPyBSZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5QXJuKHRoaXMsICdSZXBvc2l0b3J5JywgcHJvcHMucmVwb3NpdG9yeSlcbiAgICAgICAgOiBSZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5TmFtZSh0aGlzLCAnUmVwb3NpdG9yeScsIHByb3BzLnJlcG9zaXRvcnkpO1xuICAgICAgaW5wdXQgPSBDb2RlUGlwZWxpbmVTb3VyY2UuY29kZUNvbW1pdChyZXBvc2l0b3J5LCBwcm9wcy5icmFuY2gsIHtcbiAgICAgICAgLy8gVXNlZCBwZXIgd29ya2Fyb3VuZCBpbiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzExMzk5I2lzc3VlY29tbWVudC0xMzY3MTgwNjk2XG4gICAgICAgIGNvZGVCdWlsZENsb25lT3V0cHV0OiBwcm9wcy5jb2RlQnVpbGRDbG9uZU91dHB1dCA/PyBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWNrTmFtZSA9IFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZTtcbiAgICBjb25zdCBjZGtEaXJlY3RvcnkgPSBwcm9wcy5jZGtEaXJlY3RvcnkgPz8gJy4nO1xuXG4gICAgbGV0IGNvbW1hbmRzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCA9IHByb3BzLmNvbW1hbmRzO1xuICAgIGlmIChcbiAgICAgIGNvbW1hbmRzID09PSB1bmRlZmluZWQgJiZcbiAgICAgIHByb3BzLnBhY2thZ2VNYW5hZ2VyID09PSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTVxuICAgICkge1xuICAgICAgY29tbWFuZHMgPSBbXG4gICAgICAgIGBjZCAke2Nka0RpcmVjdG9yeSA/PyAnLid9YCxcbiAgICAgICAgJ25wbSAtZyBpIHBucG0nLFxuICAgICAgICAncG5wbSBpIC0tZnJvemVuLWxvY2tmaWxlIC0tcHJlZmVyLW9mZmxpbmUnLFxuICAgICAgICAuLi4ocHJvcHMucHJlQnVpbGRDb21tYW5kcyA/PyBbXSksXG4gICAgICAgICdwbnBtIHJ1biBidWlsZCcsXG4gICAgICAgICdwbnBtIHJ1biB0ZXN0JyxcbiAgICAgICAgYHBucHggY2RrIHN5bnRoICR7c3RhY2tOYW1lfWAsXG4gICAgICBdO1xuICAgIH0gZWxzZSBpZiAoY29tbWFuZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29tbWFuZHMgPSBbXG4gICAgICAgIGBjZCAke2Nka0RpcmVjdG9yeSA/PyAnLid9YCxcbiAgICAgICAgJ25wbSBjaSAtLXByZWZlci1vZmZsaW5lJyxcbiAgICAgICAgLi4uKHByb3BzLnByZUJ1aWxkQ29tbWFuZHMgPz8gW10pLFxuICAgICAgICAnbnBtIHJ1biBidWlsZCcsXG4gICAgICAgICducG0gcnVuIHRlc3QnLFxuICAgICAgICBgbnB4IGNkayBzeW50aCAke3N0YWNrTmFtZX1gLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuXG4gICAgY29uc3QgY29kZUFydGlmYWN0RG9tYWlucyA9IHByb3BzLmNvZGVBcnRpZmFjdERvbWFpbnM/Lm1hcCgoZG9tYWluKSA9PiB7XG4gICAgICByZXR1cm4gZG9tYWluLnN0YXJ0c1dpdGgoJ2Fybjphd3MnKVxuICAgICAgICA/IGRvbWFpblxuICAgICAgICA6IEFybi5mb3JtYXQoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNlcnZpY2U6ICdjb2RlYXJ0aWZhY3QnLFxuICAgICAgICAgICAgICByZXNvdXJjZTogJ2RvbWFpbicsXG4gICAgICAgICAgICAgIHJlc291cmNlTmFtZTogZG9tYWluLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBjb2RlQXJ0aWZhY3RSZXBvc2l0b3JpZXMgPSBwcm9wcy5jb2RlQXJ0aWZhY3RSZXBvc2l0b3JpZXM/Lm1hcChcbiAgICAgIChyZXBvc2l0b3J5KSA9PiB7XG4gICAgICAgIHJldHVybiByZXBvc2l0b3J5LnN0YXJ0c1dpdGgoJ2Fybjphd3MnKVxuICAgICAgICAgID8gcmVwb3NpdG9yeVxuICAgICAgICAgIDogQXJuLmZvcm1hdChcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNlcnZpY2U6ICdjb2RlYXJ0aWZhY3QnLFxuICAgICAgICAgICAgICAgIHJlc291cmNlOiAncmVwb3NpdG9yeScsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiByZXBvc2l0b3J5LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBzdGFjayxcbiAgICAgICAgICAgICk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICBjb25zdCByb2xlUG9saWN5ID0gcHJvcHMucm9sZVBvbGljeSA/PyBbXTtcbiAgICBpZiAoY29kZUFydGlmYWN0RG9tYWlucykge1xuICAgICAgcm9sZVBvbGljeS5wdXNoKFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICByZXNvdXJjZXM6IGNvZGVBcnRpZmFjdERvbWFpbnMsXG4gICAgICAgICAgYWN0aW9uczogWydjb2RlYXJ0aWZhY3Q6R2V0QXV0aG9yaXphdGlvblRva2VuJ10sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIHJvbGVQb2xpY3kucHVzaChcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICBhY3Rpb25zOiBbJ3N0czpHZXRTZXJ2aWNlQmVhcmVyVG9rZW4nXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoY29kZUFydGlmYWN0UmVwb3NpdG9yaWVzKSB7XG4gICAgICByb2xlUG9saWN5LnB1c2goXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogY29kZUFydGlmYWN0UmVwb3NpdG9yaWVzLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICdjb2RlYXJ0aWZhY3Q6RGVzY3JpYmVQYWNrYWdlVmVyc2lvbicsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0OkRlc2NyaWJlUmVwb3NpdG9yeScsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0OkdldFBhY2thZ2VWZXJzaW9uUmVhZG1lJyxcbiAgICAgICAgICAgICdjb2RlYXJ0aWZhY3Q6R2V0UmVwb3NpdG9yeUVuZHBvaW50JyxcbiAgICAgICAgICAgICdjb2RlYXJ0aWZhY3Q6TGlzdFBhY2thZ2VzJyxcbiAgICAgICAgICAgICdjb2RlYXJ0aWZhY3Q6TGlzdFBhY2thZ2VWZXJzaW9ucycsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0Okxpc3RQYWNrYWdlVmVyc2lvbkFzc2V0cycsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0Okxpc3RQYWNrYWdlVmVyc2lvbkRlcGVuZGVuY2llcycsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0OlJlYWRGcm9tUmVwb3NpdG9yeScsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucGlwZWxpbmUgPSBuZXcgQ29kZVBpcGVsaW5lKHRoaXMsICdDb2RlUGlwZWxpbmUnLCB7XG4gICAgICBjb2RlUGlwZWxpbmU6IHVuZGVybHlpbmdQaXBlbGluZSxcbiAgICAgIHNlbGZNdXRhdGlvbjogcHJvcHMuc2VsZk11dGF0aW9uID8/IHRydWUsXG4gICAgICBkb2NrZXJFbmFibGVkRm9yU3ludGg6IHByb3BzLmRvY2tlckVuYWJsZWRGb3JTeW50aCA/PyB0cnVlLFxuICAgICAgZG9ja2VyRW5hYmxlZEZvclNlbGZNdXRhdGlvbjogcHJvcHMuZG9ja2VyRW5hYmxlZEZvclNlbGZNdXRhdGlvbiA/PyB0cnVlLFxuICAgICAgcHVibGlzaEFzc2V0c0luUGFyYWxsZWw6IHByb3BzLnB1Ymxpc2hBc3NldHNJblBhcmFsbGVsID8/IGZhbHNlLFxuICAgICAgc3ludGg6IG5ldyBTaGVsbFN0ZXAoJ1N5bnRoJywge1xuICAgICAgICBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5OiBgJHtjZGtEaXJlY3Rvcnl9L2Nkay5vdXRgLFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgY29tbWFuZHMsXG4gICAgICAgIGFkZGl0aW9uYWxJbnB1dHM6IHByb3BzLmFkZGl0aW9uYWxJbnB1dHMgPz8ge30sXG4gICAgICB9KSxcbiAgICAgIHN5bnRoQ29kZUJ1aWxkRGVmYXVsdHM6IHtcbiAgICAgICAgcGFydGlhbEJ1aWxkU3BlYzogQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICAgIGNhY2hlOiB7XG4gICAgICAgICAgICBwYXRoczogWycvcm9vdC8ubnBtLyoqLyonLCAnL3Jvb3QvLnBucG0tc3RvcmUvKiovKiddLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGhhc2VzOiB7XG4gICAgICAgICAgICBpbnN0YWxsOiB7XG4gICAgICAgICAgICAgICdydW50aW1lLXZlcnNpb25zJzoge1xuICAgICAgICAgICAgICAgIG5vZGVqczogcHJvcHMubm9kZVZlcnNpb24gPz8gTm9kZVZlcnNpb24uTk9ERV8yNCxcbiAgICAgICAgICAgICAgICBnbzogcHJvcHMuZ29WZXJzaW9uLFxuICAgICAgICAgICAgICAgIGphdmE6IHByb3BzLmphdmFWZXJzaW9uLFxuICAgICAgICAgICAgICAgIGRvdG5ldDogcHJvcHMuZG90bmV0VmVyc2lvbixcbiAgICAgICAgICAgICAgICBweXRob246IHByb3BzLnB5dGhvblZlcnNpb24sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICdjb21tYW5kcyc6IFsnbnBtIGNvbmZpZyBzZXQgZnVuZCBmYWxzZScsICducG0gLWcgaSBlc2J1aWxkJ11cbiAgICAgICAgICAgICAgICAuY29uY2F0KHByb3BzLmFkZGl0aW9uYWxJbnN0YWxsQ29tbWFuZHMgPz8gW10pXG4gICAgICAgICAgICAgICAgLmNvbmNhdChbJ25vZGUgLS12ZXJzaW9uJ10pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgYnVpbGRFbnZpcm9ubWVudDoge1xuICAgICAgICAgIHByaXZpbGVnZWQ6IHRydWUsXG4gICAgICAgICAgY29tcHV0ZVR5cGU6IHByb3BzLmNvbXB1dGVUeXBlID8/IENvbXB1dGVUeXBlLlNNQUxMLFxuICAgICAgICAgIGJ1aWxkSW1hZ2U6IHByb3BzLmJ1aWxkSW1hZ2UgPz8gTGludXhCdWlsZEltYWdlLkFNQVpPTl9MSU5VWF8yXzUsXG4gICAgICAgIH0sXG4gICAgICAgIHJvbGVQb2xpY3ksXG4gICAgICB9LFxuICAgICAgYXNzZXRQdWJsaXNoaW5nQ29kZUJ1aWxkRGVmYXVsdHM6IHtcbiAgICAgICAgcGFydGlhbEJ1aWxkU3BlYzogQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgIC4uLigocHJvcHMuZW5hYmxlRG9ja2VyQnVpbGR4T25Bc3NldFB1Ymxpc2ggPz8gdHJ1ZSlcbiAgICAgICAgICAgICAgICA/IHtDREtfRE9DS0VSOiAnL3Vzci9sb2NhbC9iaW4vYnVpbGR4LnNoJ31cbiAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgICAgICAgY29tbWFuZHM6XG4gICAgICAgICAgICAgICAgKHByb3BzLmVuYWJsZURvY2tlckJ1aWxkeE9uQXNzZXRQdWJsaXNoID8/IHRydWUpXG4gICAgICAgICAgICAgICAgICA/IERPQ0tFUl9CVUlMRFhfU0VUVVBfQ09NTUFORFNcbiAgICAgICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIERpc2FibGUgYXV0b21hdGljIHRyaWdnZXJpbmcgaWYgcmVxdWVzdGVkXG4gICAgaWYgKHByb3BzLmRpc2FibGVBdXRvVHJpZ2dlcikge1xuICAgICAgY29uc3QgY2ZuUGlwZWxpbmUgPSB1bmRlcmx5aW5nUGlwZWxpbmUubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuUGlwZWxpbmU7XG4gICAgICBjZm5QaXBlbGluZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgICAnU3RhZ2VzLjAuQWN0aW9ucy4wLkNvbmZpZ3VyYXRpb24uVHJpZ2dlckNvbmZpZ3VyYXRpb24nLFxuICAgICAgICB7XG4gICAgICAgICAgUHJvdmlkZXJUeXBlOiAnQ29kZVN0YXJTb3VyY2VDb25uZWN0aW9uJyxcbiAgICAgICAgICBUcmlnZ2VyRXZlbnRzOiAnTk9ORScsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBwaXBlbGluZSBub3RpZmljYXRpb25zXG4gICAgaWYgKHByb3BzLnNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24gJiYgcHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnT25seSBvbmUgb2Ygc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbiBhbmQgc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybiBjYW4gYmUgc3BlY2lmaWVkJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChwcm9wcy5ub3RpZmljYXRpb25Ub3BpYyAmJiBwcm9wcy5ub3RpZmljYXRpb25Ub3BpY0Fybikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnT25seSBvbmUgb2Ygbm90aWZpY2F0aW9uVG9waWMgYW5kIG5vdGlmaWNhdGlvblRvcGljQXJuIGNhbiBiZSBzcGVjaWZpZWQnLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgcHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbiB8fFxuICAgICAgcHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybiB8fFxuICAgICAgcHJvcHMubm90aWZpY2F0aW9uVG9waWNBcm4gfHxcbiAgICAgIHByb3BzLm5vdGlmaWNhdGlvblRvcGljXG4gICAgKSB7XG4gICAgICB0aGlzLnBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZSA9IG5ldyBQaXBlbGluZU5vdGlmaWNhdGlvblJ1bGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdOb3RpZmljYXRpb24nLFxuICAgICAgICB7XG4gICAgICAgICAgZXZlbnRzOiBwcm9wcy5ub3RpZmljYXRpb25FdmVudHMsXG4gICAgICAgICAgc291cmNlOiB1bmRlcmx5aW5nUGlwZWxpbmUsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgaWYgKHByb3BzLnNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgdGhpcy5waXBlbGluZU5vdGlmaWNhdGlvblJ1bGUuYWRkU2xhY2tDaGFubmVsKFxuICAgICAgICAgIHByb3BzLnNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb24sXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHByb3BzLnNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25Bcm4pIHtcbiAgICAgICAgdGhpcy5waXBlbGluZU5vdGlmaWNhdGlvblJ1bGUuYWRkU2xhY2tDaGFubmVsQXJuKFxuICAgICAgICAgICdTbGFja0NoYW5uZWwnLFxuICAgICAgICAgIHByb3BzLnNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25Bcm4sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMubm90aWZpY2F0aW9uVG9waWMpIHtcbiAgICAgICAgdGhpcy5waXBlbGluZU5vdGlmaWNhdGlvblJ1bGUuYWRkVG9waWMocHJvcHMubm90aWZpY2F0aW9uVG9waWMpO1xuICAgICAgICBwcm9wcy5ub3RpZmljYXRpb25Ub3BpYy5ncmFudFB1Ymxpc2godW5kZXJseWluZ1BpcGVsaW5lLnJvbGUpO1xuICAgICAgfSBlbHNlIGlmIChwcm9wcy5ub3RpZmljYXRpb25Ub3BpY0Fybikge1xuICAgICAgICBjb25zdCB0b3BpYyA9IHRoaXMucGlwZWxpbmVOb3RpZmljYXRpb25SdWxlLmFkZFRvcGljQXJuKFxuICAgICAgICAgICdOb3RpZmljYXRpb25Ub3BpYycsXG4gICAgICAgICAgcHJvcHMubm90aWZpY2F0aW9uVG9waWNBcm4sXG4gICAgICAgICk7XG4gICAgICAgIHRvcGljLmdyYW50UHVibGlzaCh1bmRlcmx5aW5nUGlwZWxpbmUucm9sZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYWRkU3RhZ2Uoc3RhZ2U6IFN0YWdlLCBvcHRpb25zPzogQWRkU3RhZ2VPcHRzKTogU3RhZ2VEZXBsb3ltZW50IHtcbiAgICByZXR1cm4gdGhpcy5waXBlbGluZS5hZGRTdGFnZShzdGFnZSwgb3B0aW9ucyk7XG4gIH1cblxuICBhZGRXYXZlKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiBXYXZlT3B0aW9ucyk6IFdhdmUge1xuICAgIHJldHVybiB0aGlzLnBpcGVsaW5lLmFkZFdhdmUoaWQsIG9wdGlvbnMpO1xuICB9XG59XG4iXX0=
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXBpcGVsaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy1jb2RlcGlwZWxpbmUvbGliL2Nkay1waXBlbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsbUVBS3NDO0FBQ3RDLGlEQUF3QztBQUN4Qyx1REFBaUQ7QUFDakQscURBUytCO0FBQy9CLDZEQUttQztBQUNuQyw2RUFBc0U7QUFDdEUsNkNBQThDO0FBQzlDLCtEQUFzRDtBQUN0RCxtQ0FBMkM7QUFDM0MsaURBQTREO0FBSTVEOzs7R0FHRztBQUNILElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQiw2QkFBYyxDQUFBO0lBQ2QsNkJBQWMsQ0FBQTtJQUNkLDZCQUFjLENBQUE7SUFDZCw2QkFBYyxDQUFBO0lBQ2QsNkJBQWMsQ0FBQTtBQUNoQixDQUFDLEVBTlcsV0FBVywyQkFBWCxXQUFXLFFBTXRCO0FBRUQ7OztHQUdHO0FBQ0gsSUFBWSxTQWFYO0FBYkQsV0FBWSxTQUFTO0lBQ25CLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0lBQ2hCLDZCQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFiVyxTQUFTLHlCQUFULFNBQVMsUUFhcEI7QUFFRDs7O0dBR0c7QUFDSCxJQUFZLFdBTVg7QUFORCxXQUFZLFdBQVc7SUFDckIsbUNBQW9CLENBQUE7SUFDcEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7SUFDdEIscUNBQXNCLENBQUE7QUFDeEIsQ0FBQyxFQU5XLFdBQVcsMkJB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aUJBQWlCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hFLENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FDckQsbUJBQW1CLEVBQ25CLEtBQUssQ0FBQyxvQkFBb0IsQ0FDM0IsQ0FBQztnQkFDRixLQUFLLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZLEVBQUUsT0FBc0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFVLEVBQUUsT0FBcUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBNVJELGtDQTRSQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uc3RydWN0fSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7XG4gIENmblBpcGVsaW5lLFxuICBHaXRQdXNoRmlsdGVyLFxuICBQaXBlbGluZSxcbiAgUGlwZWxpbmVUeXBlLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lJztcbmltcG9ydCB7S2V5fSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB7QXJ0aWZhY3RCdWNrZXR9IGZyb20gJy4vYXJ0aWZhY3QtYnVja2V0JztcbmltcG9ydCB7XG4gIEFkZFN0YWdlT3B0cyxcbiAgQ29kZVBpcGVsaW5lLFxuICBDb2RlUGlwZWxpbmVTb3VyY2UsXG4gIElGaWxlU2V0UHJvZHVjZXIsXG4gIFNoZWxsU3RlcCxcbiAgU3RhZ2VEZXBsb3ltZW50LFxuICBXYXZlLFxuICBXYXZlT3B0aW9ucyxcbn0gZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB7XG4gIEJ1aWxkU3BlYyxcbiAgQ29tcHV0ZVR5cGUsXG4gIElCdWlsZEltYWdlLFxuICBMaW51eEJ1aWxkSW1hZ2UsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0IHtQaXBlbGluZU5vdGlmaWNhdGlvblJ1bGV9IGZyb20gJy4vcGlwZWxpbmUtbm90aWZpY2F0aW9uLXJ1bGUnO1xuaW1wb3J0IHtBcm4sIFN0YWNrLCBTdGFnZX0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtSZXBvc2l0b3J5fSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWNvbW1pdCc7XG5pbXBvcnQge05vZGVQYWNrYWdlTWFuYWdlcn0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQge0VmZmVjdCwgUG9saWN5U3RhdGVtZW50fSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7SVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb259IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jaGF0Ym90JztcbmltcG9ydCB7SVRvcGljfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zJztcblxuLyoqXG4gKiBOb2RlIHJ1bnRpbWVzIHN1cHBvcnRlZCBieSBDb2RlYkJ1aWxkXG4gKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZGVidWlsZC9sYXRlc3QvdXNlcmd1aWRlL2F2YWlsYWJsZS1ydW50aW1lcy5odG1sXG4gKi9cbmV4cG9ydCBlbnVtIE5vZGVWZXJzaW9uIHtcbiAgTk9ERV8xNiA9ICcxNicsXG4gIE5PREVfMTggPSAnMTgnLFxuICBOT0RFXzIwID0gJzIwJyxcbiAgTk9ERV8yMiA9ICcyMicsXG4gIE5PREVfMjQgPSAnMjQnLFxufVxuXG4vKipcbiAqIEdvIHJ1bnRpbWVzIHN1cHBvcnRlZCBieSBDb2RlQnVpbGRcbiAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29kZWJ1aWxkL2xhdGVzdC91c2VyZ3VpZGUvYXZhaWxhYmxlLXJ1bnRpbWVzLmh0bWxcbiAqL1xuZXhwb3J0IGVudW0gR29WZXJzaW9uIHtcbiAgR09fMV8xMiA9ICcxLjEyJyxcbiAgR09fMV8xMyA9ICcxLjEzJyxcbiAgR09fMV8xNCA9ICcxLjE0JyxcbiAgR09fMV8xNSA9ICcxLjE1JyxcbiAgR09fMV8xNiA9ICcxLjE2JyxcbiAgR09fMV8xNyA9ICcxLjE3JyxcbiAgR09fMV8xOCA9ICcxLjE4JyxcbiAgR09fMV8yMCA9ICcxLjIwJyxcbiAgR09fMV8yMSA9ICcxLjIxJyxcbiAgR09fMV8yMiA9ICcxLjIyJyxcbiAgR09fMV8yMyA9ICcxLjIzJyxcbiAgR09fMV8yNCA9ICcxLjI0Jyxcbn1cblxuLyoqXG4gKiBKYXZhIHJ1bnRpbWVzIHN1cHBvcnRlZCBieSBDb2RlQnVpbGRcbiAqIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29kZWJ1aWxkL2xhdGVzdC91c2VyZ3VpZGUvYXZhaWxhYmxlLXJ1bnRpbWVzLmh0bWxcbiAqL1xuZXhwb3J0IGVudW0gSmF2YVZlcnNpb24ge1xuICBKQVZBXzggPSAnY29ycmV0dG84JyxcbiAgSkFWQV8xMSA9ICdjb3JyZXR0bzExJyxcbiAgSkFWQV8xNiA9ICdjb3JyZXR0bzE3JyxcbiAgSkFWQV8yMSA9ICdjb3JyZXR0bzIxJyxcbiAgSkFWQV8yNSA9ICdjb3JyZXR0bzI1Jyxcbn1cblxuLyoqXG4gKiBEb3RuZXQgcnVudGltZXMgc3VwcG9ydGVkIGJ5IENvZGVCdWlsZFxuICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2RlYnVpbGQvbGF0ZXN0L3VzZXJndWlkZS9hdmFpbGFibGUtcnVudGltZXMuaHRtbGRvdG5ldFxuICovXG5leHBvcnQgZW51bSBEb3RuZXRWZXJzaW9uIHtcbiAgRE9UTkVUXzNfMSA9ICczLjEnLFxuICBET1RORVRfNV8wID0gJzUuMCcsXG4gIERPVE5FVF82XzAgPSAnNi4wJyxcbiAgRE9UTkVUXzhfMCA9ICc4LjAnLFxufVxuXG5leHBvcnQgZW51bSBQeXRob25WZXJzaW9uIHtcbiAgUFlUSE9OXzNfNyA9ICczLjcnLFxuICBQWVRIT05fM184ID0gJzMuOCcsXG4gIFBZVEhPTl8zXzkgPSAnMy45JyxcbiAgUFlUSE9OXzNfMTAgPSAnMy4xMCcsXG4gIFBZVEhPTl8zXzExID0gJzMuMTEnLFxuICBQWVRIT05fM18xMiA9ICczLjEyJyxcbiAgUFlUSE9OXzNfMTMgPSAnMy4xMycsXG4gIFBZVEhPTl8zXzE0ID0gJzMuMTQnLFxufVxuXG5jb25zdCBET0NLRVJfQlVJTERYX1NFVFVQX0NPTU1BTkRTID0gW1xuICBcImVjaG8gJyMhL2Jpbi9iYXNoJyA+IC91c3IvbG9jYWwvYmluL2J1aWxkeC5zaFwiLFxuICAnZWNobyBcXCdbWyBcIiQxXCIgPT0gXCJidWlsZFwiIF1dICYmIGRvY2tlciBidWlsZHggYnVpbGQgLS1sb2FkIFwiJHtAOjJ9XCIgfHwgZG9ja2VyIFwiJEBcIlxcJyA+PiAvdXNyL2xvY2FsL2Jpbi9idWlsZHguc2gnLFxuICAnY2htb2QgK3ggL3Vzci9sb2NhbC9iaW4vYnVpbGR4LnNoJyxcbiAgJ2VjaG8gXCJBcmNoaXRlY3R1cmU6ICQodW5hbWUgLW0pXCInLFxuICAnZG9ja2VyIGJ1aWxkeCBjcmVhdGUgLS11c2UgLS1uYW1lIG11bHRpLWFyY2gtYnVpbGRlcicsXG4gICdkb2NrZXIgYnVpbGR4IGxzJyxcbl07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgQ2RrUGlwZWxpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGtQaXBlbGluZVByb3BzIHtcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIENESyB3aWxsIG5hbWUgdGhlIHBpcGVsaW5lLiBTZXQgdGhpcyB0byBvdmVycmlkZSB0aGUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHBpcGVsaW5lTmFtZT86IHN0cmluZztcblxuICByZWFkb25seSBwaXBlbGluZVR5cGU/OiBQaXBlbGluZVR5cGU7XG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIENESyB3aWxsIGNyZWF0ZSBLTVMga2V5cyBmb3IgY3Jvc3MgYWNjb3VudCBkZXBsb3ltZW50cy4gVGhpc1xuICAgKiBjYW4gYmUgY29zdGx5IGlmIHlvdSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHBpcGVsaW5lcy4gVGhpcyBwcm9wZXJ0eVxuICAgKiBhbGxvd3MgYSBjb21tb24ga2V5IHRvIGJlIHNoYXJlZCBhY3Jvc3MgcGlwZWxpbmVzLlxuICAgKlxuICAgKiBZb3UgbXVzdCBjaGFuZ2UgQGF3cy1jZGsvYXdzLWNvZGVwaXBlbGluZTpjcm9zc0FjY291bnRLZXlzRGVmYXVsdFZhbHVlVG9GYWxzZSB0byBmYWxzZSBpbiB5b3VyIGNkay5qc29uXG4gICAqIGZpbGUgdG8gYXZvaWQgZXJyb3JzLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYWNjb3VudCBJRHMgdGhpcyBwaXBlbGluZSB3aWxsIGRlcGxveSBpbnRvLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBcm4gb2YgdGhlIENvZGVTdGFyIGNvbm5lY3Rpb24gdXNlZCB0byBhY2Nlc3MgdGhlIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnkuIElmIG5vdCBzZXQsIHRoaXNcbiAgICogY29uc3RydWN0IGFzc3VtZXMgdGhlIHJlcG9zaXRvcnkgaXMgaW4gQVdTIENvZGVDb21taXQuXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTb3VyY2UgY29kZSByZXBvc2l0b3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggdG8gdXNlIGluc2lkZSB0aGUgc291cmNlIGNvZGUgcmVwb3NpdG9yeS5cbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzZWxmLW11dGF0aW9uLiBVc2VmdWwgZm9yIGNkayBwaXBlbGluZSBkZXZlbG9wbWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZk11dGF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGRvY2tlciBmb3IgdGhlICdzeW50aCcgc3RlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9ja2VyRW5hYmxlZEZvclN5bnRoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGRvY2tlciBmb3IgdGhlIHNlbGYtbXV0YXRlIHN0ZXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlckVuYWJsZWRGb3JTZWxmTXV0YXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUeXBlIG9mIGNvbXB1dGUgdG8gdXNlIGZvciB0aGlzIGJ1aWxkLiBEZWZhdWx0IGlzIENvbXB1dGVUeXBlLlNNQUxMLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcHV0ZVR5cGU/OiBDb21wdXRlVHlwZTtcblxuICAvKipcbiAgICogVGhlIGltYWdlIHRvIHVzZSBmb3IgYnVpbGRzLiBJZiBub25lIGlzIHNlbGVjdGVkIHRoZSBkZWZhdWx0IGRlZmluZWQgaW4gQVdTIENESyBpcyB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJbWFnZT86IElCdWlsZEltYWdlO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTbGFjayBjaGFubmVsIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBub3RpZmljYXRpb25zLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFNsYWNrIGNoYW5uZWwgY29uZmlndXJhdGlvbiB0byB1c2UgZm9yIG5vdGlmaWNhdGlvbnMuIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIHNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25Bcm4uXG4gICAqL1xuICByZWFkb25seSBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uPzogSVNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBTTlMgdG9waWMgdG8gdXNlIGZvciBub3RpZmljYXRpb25zLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBub3RpZmljYXRpb25Ub3BpYy5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvblRvcGljQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgU05TIHRvcGljIHRvIHVzZSBmb3Igbm90aWZpY2F0aW9ucy4gTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggbm90aWZpY2F0aW9uVG9waWNBcm4uXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25Ub3BpYz86IElUb3BpYztcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygbm90aWZpY2F0aW9uIGV2ZW50cyB0byByZWNlaXZlLkRlZmF1bHQgaXMgREVGQVVMVF9FVkVOVFNcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZHRjb25zb2xlL2xhdGVzdC91c2VyZ3VpZGUvY29uY2VwdHMuaHRtbCNldmVudHMtcmVmLXBpcGVsaW5lXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25FdmVudHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBGaWxlU2V0cyB0byBwdXQgaW4gb3RoZXIgZGlyZWN0b3JpZXNcbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxJbnB1dHM/OiBSZWNvcmQ8c3RyaW5nLCBJRmlsZVNldFByb2R1Y2VyPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBjb21tYW5kcyB0byBydW4gYmVmb3JlIGluc3RhbGwuIElmIHlvdSBvdmVycmlkZSB0aGUgY29tbWFuZHMgcHJvcGVydHksIHRoaXMgaGFzIG5vIGVmZmVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHByZUJ1aWxkQ29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGRlZmF1bHQgY29tbWFuZHMuXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgYXNzZXRzIGluIG11bHRpcGxlIENvZGVCdWlsZCBwcm9qZWN0cy4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICovXG4gIHJlYWRvbmx5IHB1Ymxpc2hBc3NldHNJblBhcmFsbGVsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUGFja2FnZSBtYW5hZ2VyIHRvIHVzZSB3aGVuIGV4ZWN1dGluZyBDREsuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vZGVQYWNrYWdlTWFuYWdlci5QTlBNXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTWFuYWdlcj86IE5vZGVQYWNrYWdlTWFuYWdlcjtcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0aGUgQ0RLIHByb2plY3QgaXMgbG9jYXRlZCBpbiB0aGUgcmVwby5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBcIi5cIlxuICAgKi9cbiAgcmVhZG9ubHkgY2RrRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb2xpY3kgc3RhdGVtZW50cyB0byBhZGQgdG8gdGhlIHJvbGUgdXNlZCBieSBzeW50aC5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGVQb2xpY3k/OiBQb2xpY3lTdGF0ZW1lbnRbXTtcblxuICAvKipcbiAgICogR3JhbnRzIHJlYWQgYWNjZXNzIHRvIHRoZSBwcm92aWRlZCBBV1MgQ29kZUFydGlmYWN0IGRvbWFpbnMuXG4gICAqL1xuICByZWFkb25seSBjb2RlQXJ0aWZhY3REb21haW5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdyYW50cyByZWFkIGFjY2VzcyB0byB0aGUgcHJvdmlkZWQgQVdTIENvZGVBcnRpZmFjdCByZXBvc2l0b3JpZXMuXG4gICAqL1xuICByZWFkb25seSBjb2RlQXJ0aWZhY3RSZXBvc2l0b3JpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiBOb2RlIHRvIHVzZSBpbiB0aGUgcGlwZWxpbmUuIERlZmF1bHQgaXMgTk9ERV8yMFxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVZlcnNpb24/OiBOb2RlVmVyc2lvbiB8IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiBHbyB0byBpbnN0YWxsLiBEZWZhdWx0IGlzIG5vbmUuXG4gICAqL1xuICByZWFkb25seSBnb1ZlcnNpb24/OiBHb1ZlcnNpb24gfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgSmF2YSB0byBpbnN0YWxsLiBEZWZhdWx0IGlzIG5vbmUuXG4gICAqL1xuICByZWFkb25seSBqYXZhVmVyc2lvbj86IEphdmFWZXJzaW9uIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIERvdG5ldCB0byBpbnN0YWxsLiBEZWZhdWx0IGlzIG5vbmUuXG4gICAqL1xuICByZWFkb25seSBkb3RuZXRWZXJzaW9uPzogRG90bmV0VmVyc2lvbiB8IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiBQeXRob24gdG8gaW5zdGFsbC4gRGVmYXVsdCBpcyBub25lLlxuICAgKi9cbiAgcmVhZG9ubHkgcHl0aG9uVmVyc2lvbj86IFB5dGhvblZlcnNpb24gfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgY29tbWFuZHMgdG8gcnVuIGR1cmluZyB0aGUgaW5zdGFsbCBwaGFzZS5cbiAgICovXG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxJbnN0YWxsQ29tbWFuZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjbG9uZSB0aGUgQ29kZUNvbW1pdCByZXBvc2l0b3J5IGludG8gdGhlIENvZGVCdWlsZCBwcm9qZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29kZUJ1aWxkQ2xvbmVPdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSB1c2Ugb2YgXCJkb2NrZXIgYnVpbGR4XCIgaW4gdGhlIGFzc2V0IHB1Ymxpc2hpbmcgc3RlcC4gRGVmYXVsdCBpcyB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRG9ja2VyQnVpbGR4T25Bc3NldFB1Ymxpc2g/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXNhYmxlIGF1dG9tYXRpYyB0cmlnZ2VyaW5nIG9uIHNvdXJjZSBjb2RlIGNoYW5nZXMuIFdoZW4gdHJ1ZSwgdGhlIHBpcGVsaW5lXG4gICAqIG11c3QgYmUgbWFudWFsbHkgc3RhcnRlZC4gVXNlZnVsIGZvciBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlIChhdXRvLXRyaWdnZXIgZW5hYmxlZClcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVBdXRvVHJpZ2dlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdpdCBwdXNoIGZpbHRlciBjb25maWd1cmF0aW9uIGZvciB0aGUgcGlwZWxpbmUgdHJpZ2dlci5cbiAgICogQWxsb3dzIGZpbHRlcmluZyB3aGljaCBnaXQgZXZlbnRzIHRyaWdnZXIgdGhlIHBpcGVsaW5lIGJhc2VkIG9uIGJyYW5jaCBwYXR0ZXJucyxcbiAgICogZmlsZSBwYXRocywgb3IgdGFnIHBhdHRlcm5zLiBPbmx5IGFwcGxpY2FibGUgd2hlbiB1c2luZyBDb2RlU3RhciBjb25uZWN0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcsIGFsbCBwdXNoZXMgdG8gdGhlIGJyYW5jaCB0cmlnZ2VyIHRoZSBwaXBlbGluZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0UHVzaEZpbHRlcj86IEdpdFB1c2hGaWx0ZXJbXTtcbn1cblxuLyoqXG4gKiBBbiBhYnN0cmFjdGlvbiB0byBlYXNlIENESyBwaXBlbGluZSBjcmVhdGlvbiBhbmQgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENka1BpcGVsaW5lIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgcGlwZWxpbmU6IENvZGVQaXBlbGluZTtcbiAgcmVhZG9ubHkgcGlwZWxpbmVOb3RpZmljYXRpb25SdWxlPzogUGlwZWxpbmVOb3RpZmljYXRpb25SdWxlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZGtQaXBlbGluZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGVuY3J5cHRpb25LZXkgPSBLZXkuZnJvbUtleUFybih0aGlzLCAnRW5jcnlwdGlvbktleScsIHByb3BzLmtleUFybik7XG5cbiAgICBjb25zdCBhcnRpZmFjdEJ1Y2tldCA9IG5ldyBBcnRpZmFjdEJ1Y2tldCh0aGlzLCAnQXJ0aWZhY3RCdWNrZXQnLCB7XG4gICAgICBlbmNyeXB0aW9uS2V5LFxuICAgICAgYWNjb3VudElkczogcHJvcHMuYWNjb3VudElkcyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHVuZGVybHlpbmdQaXBlbGluZSA9IG5ldyBQaXBlbGluZSh0aGlzLCAnUGlwZWxpbmUnLCB7XG4gICAgICBwaXBlbGluZVR5cGU6IHByb3BzLnBpcGVsaW5lVHlwZSA/PyBQaXBlbGluZVR5cGUuVjIsXG4gICAgICBhcnRpZmFjdEJ1Y2tldCxcbiAgICAgIHBpcGVsaW5lTmFtZTogcHJvcHMucGlwZWxpbmVOYW1lLFxuICAgIH0pO1xuXG4gICAgbGV0IGlucHV0OiBDb2RlUGlwZWxpbmVTb3VyY2U7XG4gICAgaWYgKHByb3BzLmNvbm5lY3Rpb25Bcm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaW5wdXQgPSBDb2RlUGlwZWxpbmVTb3VyY2UuY29ubmVjdGlvbihwcm9wcy5yZXBvc2l0b3J5LCBwcm9wcy5icmFuY2gsIHtcbiAgICAgICAgY29ubmVjdGlvbkFybjogcHJvcHMuY29ubmVjdGlvbkFybixcbiAgICAgICAgLy8gVXNlZCBwZXIgd29ya2Fyb3VuZCBpbiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzExMzk5I2lzc3VlY29tbWVudC0xMzY3MTgwNjk2XG4gICAgICAgIGNvZGVCdWlsZENsb25lT3V0cHV0OiBwcm9wcy5jb2RlQnVpbGRDbG9uZU91dHB1dCA/PyBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXBvc2l0b3J5ID0gcHJvcHMucmVwb3NpdG9yeS5zdGFydHNXaXRoKCdhcm46JylcbiAgICAgICAgPyBSZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5QXJuKHRoaXMsICdSZXBvc2l0b3J5JywgcHJvcHMucmVwb3NpdG9yeSlcbiAgICAgICAgOiBSZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5TmFtZSh0aGlzLCAnUmVwb3NpdG9yeScsIHByb3BzLnJlcG9zaXRvcnkpO1xuICAgICAgaW5wdXQgPSBDb2RlUGlwZWxpbmVTb3VyY2UuY29kZUNvbW1pdChyZXBvc2l0b3J5LCBwcm9wcy5icmFuY2gsIHtcbiAgICAgICAgLy8gVXNlZCBwZXIgd29ya2Fyb3VuZCBpbiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzExMzk5I2lzc3VlY29tbWVudC0xMzY3MTgwNjk2XG4gICAgICAgIGNvZGVCdWlsZENsb25lT3V0cHV0OiBwcm9wcy5jb2RlQnVpbGRDbG9uZU91dHB1dCA/PyBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWNrTmFtZSA9IFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZTtcbiAgICBjb25zdCBjZGtEaXJlY3RvcnkgPSBwcm9wcy5jZGtEaXJlY3RvcnkgPz8gJy4nO1xuXG4gICAgbGV0IGNvbW1hbmRzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCA9IHByb3BzLmNvbW1hbmRzO1xuICAgIGlmIChcbiAgICAgIGNvbW1hbmRzID09PSB1bmRlZmluZWQgJiZcbiAgICAgIHByb3BzLnBhY2thZ2VNYW5hZ2VyID09PSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTVxuICAgICkge1xuICAgICAgY29tbWFuZHMgPSBbXG4gICAgICAgIGBjZCAke2Nka0RpcmVjdG9yeSA/PyAnLid9YCxcbiAgICAgICAgJ25wbSAtZyBpIHBucG0nLFxuICAgICAgICAncG5wbSBpIC0tZnJvemVuLWxvY2tmaWxlIC0tcHJlZmVyLW9mZmxpbmUnLFxuICAgICAgICAuLi4ocHJvcHMucHJlQnVpbGRDb21tYW5kcyA/PyBbXSksXG4gICAgICAgICdwbnBtIHJ1biBidWlsZCcsXG4gICAgICAgICdwbnBtIHJ1biB0ZXN0JyxcbiAgICAgICAgYHBucHggY2RrIHN5bnRoICR7c3RhY2tOYW1lfWAsXG4gICAgICBdO1xuICAgIH0gZWxzZSBpZiAoY29tbWFuZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29tbWFuZHMgPSBbXG4gICAgICAgIGBjZCAke2Nka0RpcmVjdG9yeSA/PyAnLid9YCxcbiAgICAgICAgJ25wbSBjaSAtLXByZWZlci1vZmZsaW5lJyxcbiAgICAgICAgLi4uKHByb3BzLnByZUJ1aWxkQ29tbWFuZHMgPz8gW10pLFxuICAgICAgICAnbnBtIHJ1biBidWlsZCcsXG4gICAgICAgICducG0gcnVuIHRlc3QnLFxuICAgICAgICBgbnB4IGNkayBzeW50aCAke3N0YWNrTmFtZX1gLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuXG4gICAgY29uc3QgY29kZUFydGlmYWN0RG9tYWlucyA9IHByb3BzLmNvZGVBcnRpZmFjdERvbWFpbnM/Lm1hcCgoZG9tYWluKSA9PiB7XG4gICAgICByZXR1cm4gZG9tYWluLnN0YXJ0c1dpdGgoJ2Fybjphd3MnKVxuICAgICAgICA/IGRvbWFpblxuICAgICAgICA6IEFybi5mb3JtYXQoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNlcnZpY2U6ICdjb2RlYXJ0aWZhY3QnLFxuICAgICAgICAgICAgICByZXNvdXJjZTogJ2RvbWFpbicsXG4gICAgICAgICAgICAgIHJlc291cmNlTmFtZTogZG9tYWluLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBjb2RlQXJ0aWZhY3RSZXBvc2l0b3JpZXMgPSBwcm9wcy5jb2RlQXJ0aWZhY3RSZXBvc2l0b3JpZXM/Lm1hcChcbiAgICAgIChyZXBvc2l0b3J5KSA9PiB7XG4gICAgICAgIHJldHVybiByZXBvc2l0b3J5LnN0YXJ0c1dpdGgoJ2Fybjphd3MnKVxuICAgICAgICAgID8gcmVwb3NpdG9yeVxuICAgICAgICAgIDogQXJuLmZvcm1hdChcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNlcnZpY2U6ICdjb2RlYXJ0aWZhY3QnLFxuICAgICAgICAgICAgICAgIHJlc291cmNlOiAncmVwb3NpdG9yeScsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiByZXBvc2l0b3J5LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBzdGFjayxcbiAgICAgICAgICAgICk7XG4gICAgICB9LFxuICAgICk7XG5cbiAgICBjb25zdCByb2xlUG9saWN5ID0gcHJvcHMucm9sZVBvbGljeSA/PyBbXTtcbiAgICBpZiAoY29kZUFydGlmYWN0RG9tYWlucykge1xuICAgICAgcm9sZVBvbGljeS5wdXNoKFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICByZXNvdXJjZXM6IGNvZGVBcnRpZmFjdERvbWFpbnMsXG4gICAgICAgICAgYWN0aW9uczogWydjb2RlYXJ0aWZhY3Q6R2V0QXV0aG9yaXphdGlvblRva2VuJ10sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIHJvbGVQb2xpY3kucHVzaChcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICBhY3Rpb25zOiBbJ3N0czpHZXRTZXJ2aWNlQmVhcmVyVG9rZW4nXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoY29kZUFydGlmYWN0UmVwb3NpdG9yaWVzKSB7XG4gICAgICByb2xlUG9saWN5LnB1c2goXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogY29kZUFydGlmYWN0UmVwb3NpdG9yaWVzLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICdjb2RlYXJ0aWZhY3Q6RGVzY3JpYmVQYWNrYWdlVmVyc2lvbicsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0OkRlc2NyaWJlUmVwb3NpdG9yeScsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0OkdldFBhY2thZ2VWZXJzaW9uUmVhZG1lJyxcbiAgICAgICAgICAgICdjb2RlYXJ0aWZhY3Q6R2V0UmVwb3NpdG9yeUVuZHBvaW50JyxcbiAgICAgICAgICAgICdjb2RlYXJ0aWZhY3Q6TGlzdFBhY2thZ2VzJyxcbiAgICAgICAgICAgICdjb2RlYXJ0aWZhY3Q6TGlzdFBhY2thZ2VWZXJzaW9ucycsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0Okxpc3RQYWNrYWdlVmVyc2lvbkFzc2V0cycsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0Okxpc3RQYWNrYWdlVmVyc2lvbkRlcGVuZGVuY2llcycsXG4gICAgICAgICAgICAnY29kZWFydGlmYWN0OlJlYWRGcm9tUmVwb3NpdG9yeScsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucGlwZWxpbmUgPSBuZXcgQ29kZVBpcGVsaW5lKHRoaXMsICdDb2RlUGlwZWxpbmUnLCB7XG4gICAgICBjb2RlUGlwZWxpbmU6IHVuZGVybHlpbmdQaXBlbGluZSxcbiAgICAgIHNlbGZNdXRhdGlvbjogcHJvcHMuc2VsZk11dGF0aW9uID8/IHRydWUsXG4gICAgICBkb2NrZXJFbmFibGVkRm9yU3ludGg6IHByb3BzLmRvY2tlckVuYWJsZWRGb3JTeW50aCA/PyB0cnVlLFxuICAgICAgZG9ja2VyRW5hYmxlZEZvclNlbGZNdXRhdGlvbjogcHJvcHMuZG9ja2VyRW5hYmxlZEZvclNlbGZNdXRhdGlvbiA/PyB0cnVlLFxuICAgICAgcHVibGlzaEFzc2V0c0luUGFyYWxsZWw6IHByb3BzLnB1Ymxpc2hBc3NldHNJblBhcmFsbGVsID8/IGZhbHNlLFxuICAgICAgc3ludGg6IG5ldyBTaGVsbFN0ZXAoJ1N5bnRoJywge1xuICAgICAgICBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5OiBgJHtjZGtEaXJlY3Rvcnl9L2Nkay5vdXRgLFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgY29tbWFuZHMsXG4gICAgICAgIGFkZGl0aW9uYWxJbnB1dHM6IHByb3BzLmFkZGl0aW9uYWxJbnB1dHMgPz8ge30sXG4gICAgICB9KSxcbiAgICAgIHN5bnRoQ29kZUJ1aWxkRGVmYXVsdHM6IHtcbiAgICAgICAgcGFydGlhbEJ1aWxkU3BlYzogQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICAgIGNhY2hlOiB7XG4gICAgICAgICAgICBwYXRoczogWycvcm9vdC8ubnBtLyoqLyonLCAnL3Jvb3QvLnBucG0tc3RvcmUvKiovKiddLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGhhc2VzOiB7XG4gICAgICAgICAgICBpbnN0YWxsOiB7XG4gICAgICAgICAgICAgICdydW50aW1lLXZlcnNpb25zJzoge1xuICAgICAgICAgICAgICAgIG5vZGVqczogcHJvcHMubm9kZVZlcnNpb24gPz8gTm9kZVZlcnNpb24uTk9ERV8yNCxcbiAgICAgICAgICAgICAgICBnbzogcHJvcHMuZ29WZXJzaW9uLFxuICAgICAgICAgICAgICAgIGphdmE6IHByb3BzLmphdmFWZXJzaW9uLFxuICAgICAgICAgICAgICAgIGRvdG5ldDogcHJvcHMuZG90bmV0VmVyc2lvbixcbiAgICAgICAgICAgICAgICBweXRob246IHByb3BzLnB5dGhvblZlcnNpb24sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICdjb21tYW5kcyc6IFsnbnBtIGNvbmZpZyBzZXQgZnVuZCBmYWxzZScsICducG0gLWcgaSBlc2J1aWxkJ11cbiAgICAgICAgICAgICAgICAuY29uY2F0KHByb3BzLmFkZGl0aW9uYWxJbnN0YWxsQ29tbWFuZHMgPz8gW10pXG4gICAgICAgICAgICAgICAgLmNvbmNhdChbJ25vZGUgLS12ZXJzaW9uJ10pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgYnVpbGRFbnZpcm9ubWVudDoge1xuICAgICAgICAgIHByaXZpbGVnZWQ6IHRydWUsXG4gICAgICAgICAgY29tcHV0ZVR5cGU6IHByb3BzLmNvbXB1dGVUeXBlID8/IENvbXB1dGVUeXBlLlNNQUxMLFxuICAgICAgICAgIGJ1aWxkSW1hZ2U6IHByb3BzLmJ1aWxkSW1hZ2UgPz8gTGludXhCdWlsZEltYWdlLkFNQVpPTl9MSU5VWF8yXzUsXG4gICAgICAgIH0sXG4gICAgICAgIHJvbGVQb2xpY3ksXG4gICAgICB9LFxuICAgICAgYXNzZXRQdWJsaXNoaW5nQ29kZUJ1aWxkRGVmYXVsdHM6IHtcbiAgICAgICAgcGFydGlhbEJ1aWxkU3BlYzogQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgIC4uLigocHJvcHMuZW5hYmxlRG9ja2VyQnVpbGR4T25Bc3NldFB1Ymxpc2ggPz8gdHJ1ZSlcbiAgICAgICAgICAgICAgICA/IHtDREtfRE9DS0VSOiAnL3Vzci9sb2NhbC9iaW4vYnVpbGR4LnNoJ31cbiAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgICAgICAgY29tbWFuZHM6XG4gICAgICAgICAgICAgICAgKHByb3BzLmVuYWJsZURvY2tlckJ1aWxkeE9uQXNzZXRQdWJsaXNoID8/IHRydWUpXG4gICAgICAgICAgICAgICAgICA/IERPQ0tFUl9CVUlMRFhfU0VUVVBfQ09NTUFORFNcbiAgICAgICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIERpc2FibGUgYXV0b21hdGljIHRyaWdnZXJpbmcgaWYgcmVxdWVzdGVkXG4gICAgaWYgKHByb3BzLmRpc2FibGVBdXRvVHJpZ2dlcikge1xuICAgICAgY29uc3QgY2ZuUGlwZWxpbmUgPSB1bmRlcmx5aW5nUGlwZWxpbmUubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuUGlwZWxpbmU7XG4gICAgICBjZm5QaXBlbGluZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgICAnU3RhZ2VzLjAuQWN0aW9ucy4wLkNvbmZpZ3VyYXRpb24uVHJpZ2dlckNvbmZpZ3VyYXRpb24nLFxuICAgICAgICB7XG4gICAgICAgICAgUHJvdmlkZXJUeXBlOiAnQ29kZVN0YXJTb3VyY2VDb25uZWN0aW9uJyxcbiAgICAgICAgICBUcmlnZ2VyRXZlbnRzOiAnTk9ORScsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEFwcGx5IEdpdFB1c2hGaWx0ZXIgaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuZ2l0UHVzaEZpbHRlciAmJiBwcm9wcy5naXRQdXNoRmlsdGVyLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNmblBpcGVsaW5lID0gdW5kZXJseWluZ1BpcGVsaW5lLm5vZGUuZGVmYXVsdENoaWxkIGFzIENmblBpcGVsaW5lO1xuICAgICAgY2ZuUGlwZWxpbmUuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgICAgJ1N0YWdlcy4wLkFjdGlvbnMuMC5Db25maWd1cmF0aW9uLlRyaWdnZXJDb25maWd1cmF0aW9uLkdpdENvbmZpZ3VyYXRpb24uUHVzaCcsXG4gICAgICAgIHByb3BzLmdpdFB1c2hGaWx0ZXIubWFwKChmaWx0ZXIpID0+ICh7XG4gICAgICAgICAgQnJhbmNoZXM6IGZpbHRlci5icmFuY2hlc0luY2x1ZGVzXG4gICAgICAgICAgICA/IHtJbmNsdWRlczogZmlsdGVyLmJyYW5jaGVzSW5jbHVkZXN9XG4gICAgICAgICAgICA6IGZpbHRlci5icmFuY2hlc0V4Y2x1ZGVzXG4gICAgICAgICAgICAgID8ge0V4Y2x1ZGVzOiBmaWx0ZXIuYnJhbmNoZXNFeGNsdWRlc31cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgRmlsZVBhdGhzOiBmaWx0ZXIuZmlsZVBhdGhzSW5jbHVkZXNcbiAgICAgICAgICAgID8ge0luY2x1ZGVzOiBmaWx0ZXIuZmlsZVBhdGhzSW5jbHVkZXN9XG4gICAgICAgICAgICA6IGZpbHRlci5maWxlUGF0aHNFeGNsdWRlc1xuICAgICAgICAgICAgICA/IHtFeGNsdWRlczogZmlsdGVyLmZpbGVQYXRoc0V4Y2x1ZGVzfVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBUYWdzOiBmaWx0ZXIudGFnc0luY2x1ZGVzXG4gICAgICAgICAgICA/IHtJbmNsdWRlczogZmlsdGVyLnRhZ3NJbmNsdWRlc31cbiAgICAgICAgICAgIDogZmlsdGVyLnRhZ3NFeGNsdWRlc1xuICAgICAgICAgICAgICA/IHtFeGNsdWRlczogZmlsdGVyLnRhZ3NFeGNsdWRlc31cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH0pKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHBpcGVsaW5lIG5vdGlmaWNhdGlvbnNcbiAgICBpZiAocHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbiAmJiBwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdPbmx5IG9uZSBvZiBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uIGFuZCBzbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuIGNhbiBiZSBzcGVjaWZpZWQnLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLm5vdGlmaWNhdGlvblRvcGljICYmIHByb3BzLm5vdGlmaWNhdGlvblRvcGljQXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdPbmx5IG9uZSBvZiBub3RpZmljYXRpb25Ub3BpYyBhbmQgbm90aWZpY2F0aW9uVG9waWNBcm4gY2FuIGJlIHNwZWNpZmllZCcsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uIHx8XG4gICAgICBwcm9wcy5zbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuIHx8XG4gICAgICBwcm9wcy5ub3RpZmljYXRpb25Ub3BpY0FybiB8fFxuICAgICAgcHJvcHMubm90aWZpY2F0aW9uVG9waWNcbiAgICApIHtcbiAgICAgIHRoaXMucGlwZWxpbmVOb3RpZmljYXRpb25SdWxlID0gbmV3IFBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ05vdGlmaWNhdGlvbicsXG4gICAgICAgIHtcbiAgICAgICAgICBldmVudHM6IHByb3BzLm5vdGlmaWNhdGlvbkV2ZW50cyxcbiAgICAgICAgICBzb3VyY2U6IHVuZGVybHlpbmdQaXBlbGluZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgICBpZiAocHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbikge1xuICAgICAgICB0aGlzLnBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZS5hZGRTbGFja0NoYW5uZWwoXG4gICAgICAgICAgcHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbixcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybikge1xuICAgICAgICB0aGlzLnBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZS5hZGRTbGFja0NoYW5uZWxBcm4oXG4gICAgICAgICAgJ1NsYWNrQ2hhbm5lbCcsXG4gICAgICAgICAgcHJvcHMuc2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5ub3RpZmljYXRpb25Ub3BpYykge1xuICAgICAgICB0aGlzLnBpcGVsaW5lTm90aWZpY2F0aW9uUnVsZS5hZGRUb3BpYyhwcm9wcy5ub3RpZmljYXRpb25Ub3BpYyk7XG4gICAgICAgIHByb3BzLm5vdGlmaWNhdGlvblRvcGljLmdyYW50UHVibGlzaCh1bmRlcmx5aW5nUGlwZWxpbmUucm9sZSk7XG4gICAgICB9IGVsc2UgaWYgKHByb3BzLm5vdGlmaWNhdGlvblRvcGljQXJuKSB7XG4gICAgICAgIGNvbnN0IHRvcGljID0gdGhpcy5waXBlbGluZU5vdGlmaWNhdGlvblJ1bGUuYWRkVG9waWNBcm4oXG4gICAgICAgICAgJ05vdGlmaWNhdGlvblRvcGljJyxcbiAgICAgICAgICBwcm9wcy5ub3RpZmljYXRpb25Ub3BpY0FybixcbiAgICAgICAgKTtcbiAgICAgICAgdG9waWMuZ3JhbnRQdWJsaXNoKHVuZGVybHlpbmdQaXBlbGluZS5yb2xlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhZGRTdGFnZShzdGFnZTogU3RhZ2UsIG9wdGlvbnM/OiBBZGRTdGFnZU9wdHMpOiBTdGFnZURlcGxveW1lbnQge1xuICAgIHJldHVybiB0aGlzLnBpcGVsaW5lLmFkZFN0YWdlKHN0YWdlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGFkZFdhdmUoaWQ6IHN0cmluZywgb3B0aW9ucz86IFdhdmVPcHRpb25zKTogV2F2ZSB7XG4gICAgcmV0dXJuIHRoaXMucGlwZWxpbmUuYWRkV2F2ZShpZCwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
|