@aws-cdk/aws-glue-alpha 2.207.0-alpha.0 → 2.209.0-alpha.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.
Binary file
package/lib/code.js CHANGED
@@ -30,7 +30,7 @@ class Code {
30
30
  }
31
31
  exports.Code = Code;
32
32
  _a = JSII_RTTI_SYMBOL_1;
33
- Code[_a] = { fqn: "@aws-cdk/aws-glue-alpha.Code", version: "2.207.0-alpha.0" };
33
+ Code[_a] = { fqn: "@aws-cdk/aws-glue-alpha.Code", version: "2.209.0-alpha.0" };
34
34
  /**
35
35
  * Glue job Code from an S3 bucket.
36
36
  */
@@ -52,7 +52,7 @@ class S3Code extends Code {
52
52
  }
53
53
  exports.S3Code = S3Code;
54
54
  _b = JSII_RTTI_SYMBOL_1;
55
- S3Code[_b] = { fqn: "@aws-cdk/aws-glue-alpha.S3Code", version: "2.207.0-alpha.0" };
55
+ S3Code[_b] = { fqn: "@aws-cdk/aws-glue-alpha.S3Code", version: "2.209.0-alpha.0" };
56
56
  /**
57
57
  * Job Code from a local file.
58
58
  */
@@ -65,7 +65,7 @@ class AssetCode extends Code {
65
65
  this.path = path;
66
66
  this.options = options;
67
67
  if (fs.lstatSync(this.path).isDirectory()) {
68
- throw new Error(`Code path ${this.path} is a directory. Only files are supported`);
68
+ throw new cdk.UnscopedValidationError(`Code path ${this.path} is a directory. Only files are supported`);
69
69
  }
70
70
  }
71
71
  bind(scope, grantable) {
@@ -77,7 +77,7 @@ class AssetCode extends Code {
77
77
  });
78
78
  }
79
79
  else if (cdk.Stack.of(this.asset) !== cdk.Stack.of(scope)) {
80
- throw new Error(`Asset is already associated with another stack '${cdk.Stack.of(this.asset).stackName}'. ` +
80
+ throw new cdk.UnscopedValidationError(`Asset is already associated with another stack '${cdk.Stack.of(this.asset).stackName}'. ` +
81
81
  'Create a new Code instance for every stack.');
82
82
  }
83
83
  this.asset.grantRead(grantable);
@@ -97,5 +97,5 @@ class AssetCode extends Code {
97
97
  }
98
98
  exports.AssetCode = AssetCode;
99
99
  _c = JSII_RTTI_SYMBOL_1;
100
- AssetCode[_c] = { fqn: "@aws-cdk/aws-glue-alpha.AssetCode", version: "2.207.0-alpha.0" };
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFHekIsc0RBQXNEO0FBQ3RELHdDQUF3QztBQUN4Qyw0RUFBZ0U7QUFHaEU7O0dBRUc7QUFDSCxNQUFzQixJQUFJO0lBQ3hCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQWtCLEVBQUUsR0FBVztRQUN0RCxPQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztLQUNoQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVksRUFBRSxPQUErQjtRQUNuRSxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUNyQzs7QUFqQkgsb0JBdUJDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsTUFBTyxTQUFRLElBQUk7SUFDOUIsWUFBNkIsTUFBa0IsRUFBbUIsR0FBVztRQUMzRSxLQUFLLEVBQUUsQ0FBQztRQURtQixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQW1CLFFBQUcsR0FBSCxHQUFHLENBQVE7S0FFNUU7SUFFTSxJQUFJLENBQUMsTUFBNEIsRUFBRSxTQUF5QjtRQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU87WUFDTCxVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDbEMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHO2FBQ3BCO1NBQ0YsQ0FBQztLQUNIOztBQWJILHdCQWNDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLElBQUk7SUFHakM7O09BRUc7SUFDSCxZQUE2QixJQUFZLEVBQW1CLFVBQWlDLEVBQUc7UUFDOUYsS0FBSyxFQUFFLENBQUM7UUFEbUIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFtQixZQUFPLEdBQVAsT0FBTyxDQUE2QjtRQUc5RixJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLDJDQUEyQyxDQUFDLENBQUM7UUFDckYsQ0FBQztLQUNGO0lBRU0sSUFBSSxDQUFDLEtBQTJCLEVBQUUsU0FBeUI7UUFDaEUscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtnQkFDeEUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsS0FBSztnQkFDeEcsNkNBQTZDLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsT0FBTztZQUNMLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO2dCQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO2FBQ2xDO1NBQ0YsQ0FBQztLQUNIO0lBRUQ7O09BRUc7SUFDSyxRQUFRLENBQUMsQ0FBUztRQUN4QixPQUFPLElBQUEsMEJBQU8sRUFBQyxDQUFDLENBQUMsQ0FBQztLQUNuQjs7QUF2Q0gsOEJBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzYXNzZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgbWQ1aGFzaCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgR2x1ZSBKb2IncyBDb2RlIGFzc2V0cyAoYW4gYXNzZXQgY2FuIGJlIGEgc2NyaXB0cywgYSBqYXIsIGEgcHl0aG9uIGZpbGUgb3IgYW55IG90aGVyIGZpbGUpLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29kZSB7XG4gIC8qKlxuICAgKiBKb2IgY29kZSBhcyBhbiBTMyBvYmplY3QuXG4gICAqIEBwYXJhbSBidWNrZXQgVGhlIFMzIGJ1Y2tldFxuICAgKiBAcGFyYW0ga2V5IFRoZSBvYmplY3Qga2V5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21CdWNrZXQoYnVja2V0OiBzMy5JQnVja2V0LCBrZXk6IHN0cmluZyk6IFMzQ29kZSB7XG4gICAgcmV0dXJuIG5ldyBTM0NvZGUoYnVja2V0LCBrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEpvYiBjb2RlIGZyb20gYSBsb2NhbCBkaXNrIHBhdGguXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIGNvZGUgZmlsZSAobm90IGEgZGlyZWN0b3J5KS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFzc2V0KHBhdGg6IHN0cmluZywgb3B0aW9ucz86IHMzYXNzZXRzLkFzc2V0T3B0aW9ucyk6IEFzc2V0Q29kZSB7XG4gICAgcmV0dXJuIG5ldyBBc3NldENvZGUocGF0aCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIEpvYiBpcyBpbml0aWFsaXplZCB0byBhbGxvdyB0aGlzIG9iamVjdCB0byBiaW5kLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJpbmQoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBncmFudGFibGU6IGlhbS5JR3JhbnRhYmxlKTogQ29kZUNvbmZpZztcbn1cblxuLyoqXG4gKiBHbHVlIGpvYiBDb2RlIGZyb20gYW4gUzMgYnVja2V0LlxuICovXG5leHBvcnQgY2xhc3MgUzNDb2RlIGV4dGVuZHMgQ29kZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYnVja2V0OiBzMy5JQnVja2V0LCBwcml2YXRlIHJlYWRvbmx5IGtleTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGdyYW50YWJsZTogaWFtLklHcmFudGFibGUpOiBDb2RlQ29uZmlnIHtcbiAgICB0aGlzLmJ1Y2tldC5ncmFudFJlYWQoZ3JhbnRhYmxlLCB0aGlzLmtleSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHMzTG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0TmFtZTogdGhpcy5idWNrZXQuYnVja2V0TmFtZSxcbiAgICAgICAgb2JqZWN0S2V5OiB0aGlzLmtleSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEpvYiBDb2RlIGZyb20gYSBsb2NhbCBmaWxlLlxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRDb2RlIGV4dGVuZHMgQ29kZSB7XG4gIHByaXZhdGUgYXNzZXQ/OiBzM2Fzc2V0cy5Bc3NldDtcblxuICAvKipcbiAgICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gdGhlIENvZGUgZmlsZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGF0aDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IHMzYXNzZXRzLkFzc2V0T3B0aW9ucyA9IHsgfSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBpZiAoZnMubHN0YXRTeW5jKHRoaXMucGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlIHBhdGggJHt0aGlzLnBhdGh9IGlzIGEgZGlyZWN0b3J5LiBPbmx5IGZpbGVzIGFyZSBzdXBwb3J0ZWRgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYmluZChzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGdyYW50YWJsZTogaWFtLklHcmFudGFibGUpOiBDb2RlQ29uZmlnIHtcbiAgICAvLyBJZiB0aGUgc2FtZSBBc3NldENvZGUgaXMgdXNlZCBtdWx0aXBsZSB0aW1lcywgcmV0YWluIG9ubHkgdGhlIGZpcnN0IGluc3RhbnRpYXRpb24uXG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aGlzLmFzc2V0ID0gbmV3IHMzYXNzZXRzLkFzc2V0KHNjb3BlLCBgQ29kZSR7dGhpcy5oYXNoY29kZSh0aGlzLnBhdGgpfWAsIHtcbiAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGNkay5TdGFjay5vZih0aGlzLmFzc2V0KSAhPT0gY2RrLlN0YWNrLm9mKHNjb3BlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBc3NldCBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCBhbm90aGVyIHN0YWNrICcke2Nkay5TdGFjay5vZih0aGlzLmFzc2V0KS5zdGFja05hbWV9Jy4gYCArXG4gICAgICAgICdDcmVhdGUgYSBuZXcgQ29kZSBpbnN0YW5jZSBmb3IgZXZlcnkgc3RhY2suJyk7XG4gICAgfVxuICAgIHRoaXMuYXNzZXQuZ3JhbnRSZWFkKGdyYW50YWJsZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHMzTG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0TmFtZTogdGhpcy5hc3NldC5zM0J1Y2tldE5hbWUsXG4gICAgICAgIG9iamVjdEtleTogdGhpcy5hc3NldC5zM09iamVjdEtleSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYXNoIGEgc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIGhhc2hjb2RlKHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG1kNWhhc2gocyk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXN1bHQgb2YgYmluZGluZyBgQ29kZWAgaW50byBhIGBKb2JgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVDb25maWcge1xuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIG9mIHRoZSBjb2RlIGluIFMzLlxuICAgKi9cbiAgcmVhZG9ubHkgczNMb2NhdGlvbjogczMuTG9jYXRpb247XG59XG4iXX0=
100
+ AssetCode[_c] = { fqn: "@aws-cdk/aws-glue-alpha.AssetCode", version: "2.209.0-alpha.0" };
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFHekIsc0RBQXNEO0FBQ3RELHdDQUF3QztBQUN4Qyw0RUFBZ0U7QUFHaEU7O0dBRUc7QUFDSCxNQUFzQixJQUFJO0lBQ3hCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQWtCLEVBQUUsR0FBVztRQUN0RCxPQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztLQUNoQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVksRUFBRSxPQUErQjtRQUNuRSxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztLQUNyQzs7QUFqQkgsb0JBdUJDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsTUFBTyxTQUFRLElBQUk7SUFDOUIsWUFBNkIsTUFBa0IsRUFBbUIsR0FBVztRQUMzRSxLQUFLLEVBQUUsQ0FBQztRQURtQixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQW1CLFFBQUcsR0FBSCxHQUFHLENBQVE7S0FFNUU7SUFFTSxJQUFJLENBQUMsTUFBNEIsRUFBRSxTQUF5QjtRQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU87WUFDTCxVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDbEMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHO2FBQ3BCO1NBQ0YsQ0FBQztLQUNIOztBQWJILHdCQWNDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLElBQUk7SUFHakM7O09BRUc7SUFDSCxZQUE2QixJQUFZLEVBQW1CLFVBQWlDLEVBQUc7UUFDOUYsS0FBSyxFQUFFLENBQUM7UUFEbUIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFtQixZQUFPLEdBQVAsT0FBTyxDQUE2QjtRQUc5RixJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLDJDQUEyQyxDQUFDLENBQUM7UUFDM0csQ0FBQztLQUNGO0lBRU0sSUFBSSxDQUFDLEtBQTJCLEVBQUUsU0FBeUI7UUFDaEUscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtnQkFDeEUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUQsTUFBTSxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxtREFBbUQsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsS0FBSztnQkFDOUgsNkNBQTZDLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsT0FBTztZQUNMLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO2dCQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO2FBQ2xDO1NBQ0YsQ0FBQztLQUNIO0lBRUQ7O09BRUc7SUFDSyxRQUFRLENBQUMsQ0FBUztRQUN4QixPQUFPLElBQUEsMEJBQU8sRUFBQyxDQUFDLENBQUMsQ0FBQztLQUNuQjs7QUF2Q0gsOEJBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzYXNzZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgbWQ1aGFzaCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgR2x1ZSBKb2IncyBDb2RlIGFzc2V0cyAoYW4gYXNzZXQgY2FuIGJlIGEgc2NyaXB0cywgYSBqYXIsIGEgcHl0aG9uIGZpbGUgb3IgYW55IG90aGVyIGZpbGUpLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29kZSB7XG4gIC8qKlxuICAgKiBKb2IgY29kZSBhcyBhbiBTMyBvYmplY3QuXG4gICAqIEBwYXJhbSBidWNrZXQgVGhlIFMzIGJ1Y2tldFxuICAgKiBAcGFyYW0ga2V5IFRoZSBvYmplY3Qga2V5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21CdWNrZXQoYnVja2V0OiBzMy5JQnVja2V0LCBrZXk6IHN0cmluZyk6IFMzQ29kZSB7XG4gICAgcmV0dXJuIG5ldyBTM0NvZGUoYnVja2V0LCBrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEpvYiBjb2RlIGZyb20gYSBsb2NhbCBkaXNrIHBhdGguXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIGNvZGUgZmlsZSAobm90IGEgZGlyZWN0b3J5KS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUFzc2V0KHBhdGg6IHN0cmluZywgb3B0aW9ucz86IHMzYXNzZXRzLkFzc2V0T3B0aW9ucyk6IEFzc2V0Q29kZSB7XG4gICAgcmV0dXJuIG5ldyBBc3NldENvZGUocGF0aCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIEpvYiBpcyBpbml0aWFsaXplZCB0byBhbGxvdyB0aGlzIG9iamVjdCB0byBiaW5kLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJpbmQoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBncmFudGFibGU6IGlhbS5JR3JhbnRhYmxlKTogQ29kZUNvbmZpZztcbn1cblxuLyoqXG4gKiBHbHVlIGpvYiBDb2RlIGZyb20gYW4gUzMgYnVja2V0LlxuICovXG5leHBvcnQgY2xhc3MgUzNDb2RlIGV4dGVuZHMgQ29kZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYnVja2V0OiBzMy5JQnVja2V0LCBwcml2YXRlIHJlYWRvbmx5IGtleTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKF9zY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGdyYW50YWJsZTogaWFtLklHcmFudGFibGUpOiBDb2RlQ29uZmlnIHtcbiAgICB0aGlzLmJ1Y2tldC5ncmFudFJlYWQoZ3JhbnRhYmxlLCB0aGlzLmtleSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHMzTG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0TmFtZTogdGhpcy5idWNrZXQuYnVja2V0TmFtZSxcbiAgICAgICAgb2JqZWN0S2V5OiB0aGlzLmtleSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEpvYiBDb2RlIGZyb20gYSBsb2NhbCBmaWxlLlxuICovXG5leHBvcnQgY2xhc3MgQXNzZXRDb2RlIGV4dGVuZHMgQ29kZSB7XG4gIHByaXZhdGUgYXNzZXQ/OiBzM2Fzc2V0cy5Bc3NldDtcblxuICAvKipcbiAgICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gdGhlIENvZGUgZmlsZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcGF0aDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IHMzYXNzZXRzLkFzc2V0T3B0aW9ucyA9IHsgfSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBpZiAoZnMubHN0YXRTeW5jKHRoaXMucGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5VbnNjb3BlZFZhbGlkYXRpb25FcnJvcihgQ29kZSBwYXRoICR7dGhpcy5wYXRofSBpcyBhIGRpcmVjdG9yeS4gT25seSBmaWxlcyBhcmUgc3VwcG9ydGVkYCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBncmFudGFibGU6IGlhbS5JR3JhbnRhYmxlKTogQ29kZUNvbmZpZyB7XG4gICAgLy8gSWYgdGhlIHNhbWUgQXNzZXRDb2RlIGlzIHVzZWQgbXVsdGlwbGUgdGltZXMsIHJldGFpbiBvbmx5IHRoZSBmaXJzdCBpbnN0YW50aWF0aW9uLlxuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhpcy5hc3NldCA9IG5ldyBzM2Fzc2V0cy5Bc3NldChzY29wZSwgYENvZGUke3RoaXMuaGFzaGNvZGUodGhpcy5wYXRoKX1gLCB7XG4gICAgICAgIHBhdGg6IHRoaXMucGF0aCxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChjZGsuU3RhY2sub2YodGhpcy5hc3NldCkgIT09IGNkay5TdGFjay5vZihzY29wZSkpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoYEFzc2V0IGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoIGFub3RoZXIgc3RhY2sgJyR7Y2RrLlN0YWNrLm9mKHRoaXMuYXNzZXQpLnN0YWNrTmFtZX0nLiBgICtcbiAgICAgICAgJ0NyZWF0ZSBhIG5ldyBDb2RlIGluc3RhbmNlIGZvciBldmVyeSBzdGFjay4nKTtcbiAgICB9XG4gICAgdGhpcy5hc3NldC5ncmFudFJlYWQoZ3JhbnRhYmxlKTtcbiAgICByZXR1cm4ge1xuICAgICAgczNMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXROYW1lOiB0aGlzLmFzc2V0LnMzQnVja2V0TmFtZSxcbiAgICAgICAgb2JqZWN0S2V5OiB0aGlzLmFzc2V0LnMzT2JqZWN0S2V5LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEhhc2ggYSBzdHJpbmdcbiAgICovXG4gIHByaXZhdGUgaGFzaGNvZGUoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbWQ1aGFzaChzKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBiaW5kaW5nIGBDb2RlYCBpbnRvIGEgYEpvYmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gb2YgdGhlIGNvZGUgaW4gUzMuXG4gICAqL1xuICByZWFkb25seSBzM0xvY2F0aW9uOiBzMy5Mb2NhdGlvbjtcbn1cbiJdfQ==
package/lib/connection.js CHANGED
@@ -36,7 +36,7 @@ class ConnectionType {
36
36
  }
37
37
  exports.ConnectionType = ConnectionType;
38
38
  _a = JSII_RTTI_SYMBOL_1;
39
- ConnectionType[_a] = { fqn: "@aws-cdk/aws-glue-alpha.ConnectionType", version: "2.207.0-alpha.0" };
39
+ ConnectionType[_a] = { fqn: "@aws-cdk/aws-glue-alpha.ConnectionType", version: "2.209.0-alpha.0" };
40
40
  /**
41
41
  * Designates a connection to a database through Java Database Connectivity (JDBC).
42
42
  */
@@ -243,7 +243,7 @@ let Connection = Connection_1 = class Connection extends cdk.Resource {
243
243
  };
244
244
  exports.Connection = Connection;
245
245
  _b = JSII_RTTI_SYMBOL_1;
246
- Connection[_b] = { fqn: "@aws-cdk/aws-glue-alpha.Connection", version: "2.207.0-alpha.0" };
246
+ Connection[_b] = { fqn: "@aws-cdk/aws-glue-alpha.Connection", version: "2.209.0-alpha.0" };
247
247
  /** Uniquely identifies this class. */
248
248
  Connection.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.Connection';
249
249
  __decorate([
@@ -14,7 +14,7 @@ class InputFormat {
14
14
  }
15
15
  exports.InputFormat = InputFormat;
16
16
  _a = JSII_RTTI_SYMBOL_1;
17
- InputFormat[_a] = { fqn: "@aws-cdk/aws-glue-alpha.InputFormat", version: "2.207.0-alpha.0" };
17
+ InputFormat[_a] = { fqn: "@aws-cdk/aws-glue-alpha.InputFormat", version: "2.209.0-alpha.0" };
18
18
  /**
19
19
  * InputFormat for Avro files.
20
20
  *
@@ -58,7 +58,7 @@ class OutputFormat {
58
58
  }
59
59
  exports.OutputFormat = OutputFormat;
60
60
  _b = JSII_RTTI_SYMBOL_1;
61
- OutputFormat[_b] = { fqn: "@aws-cdk/aws-glue-alpha.OutputFormat", version: "2.207.0-alpha.0" };
61
+ OutputFormat[_b] = { fqn: "@aws-cdk/aws-glue-alpha.OutputFormat", version: "2.209.0-alpha.0" };
62
62
  /**
63
63
  * Writes text data with a null key (value only).
64
64
  *
@@ -95,7 +95,7 @@ class SerializationLibrary {
95
95
  }
96
96
  exports.SerializationLibrary = SerializationLibrary;
97
97
  _c = JSII_RTTI_SYMBOL_1;
98
- SerializationLibrary[_c] = { fqn: "@aws-cdk/aws-glue-alpha.SerializationLibrary", version: "2.207.0-alpha.0" };
98
+ SerializationLibrary[_c] = { fqn: "@aws-cdk/aws-glue-alpha.SerializationLibrary", version: "2.209.0-alpha.0" };
99
99
  /**
100
100
  * @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/serde2/avro/AvroSerDe.html
101
101
  */
@@ -148,7 +148,7 @@ class ClassificationString {
148
148
  }
149
149
  exports.ClassificationString = ClassificationString;
150
150
  _d = JSII_RTTI_SYMBOL_1;
151
- ClassificationString[_d] = { fqn: "@aws-cdk/aws-glue-alpha.ClassificationString", version: "2.207.0-alpha.0" };
151
+ ClassificationString[_d] = { fqn: "@aws-cdk/aws-glue-alpha.ClassificationString", version: "2.209.0-alpha.0" };
152
152
  /**
153
153
  * @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-avro
154
154
  */
@@ -195,7 +195,7 @@ class DataFormat {
195
195
  }
196
196
  exports.DataFormat = DataFormat;
197
197
  _e = JSII_RTTI_SYMBOL_1;
198
- DataFormat[_e] = { fqn: "@aws-cdk/aws-glue-alpha.DataFormat", version: "2.207.0-alpha.0" };
198
+ DataFormat[_e] = { fqn: "@aws-cdk/aws-glue-alpha.DataFormat", version: "2.209.0-alpha.0" };
199
199
  /**
200
200
  * DataFormat for Apache Web Server Logs. Also works for CloudFront logs
201
201
  *
@@ -27,7 +27,7 @@ class DataQualityTargetTable {
27
27
  }
28
28
  exports.DataQualityTargetTable = DataQualityTargetTable;
29
29
  _a = JSII_RTTI_SYMBOL_1;
30
- DataQualityTargetTable[_a] = { fqn: "@aws-cdk/aws-glue-alpha.DataQualityTargetTable", version: "2.207.0-alpha.0" };
30
+ DataQualityTargetTable[_a] = { fqn: "@aws-cdk/aws-glue-alpha.DataQualityTargetTable", version: "2.209.0-alpha.0" };
31
31
  /**
32
32
  * A Glue Data Quality ruleset.
33
33
  */
@@ -89,7 +89,7 @@ let DataQualityRuleset = DataQualityRuleset_1 = class DataQualityRuleset extends
89
89
  };
90
90
  exports.DataQualityRuleset = DataQualityRuleset;
91
91
  _b = JSII_RTTI_SYMBOL_1;
92
- DataQualityRuleset[_b] = { fqn: "@aws-cdk/aws-glue-alpha.DataQualityRuleset", version: "2.207.0-alpha.0" };
92
+ DataQualityRuleset[_b] = { fqn: "@aws-cdk/aws-glue-alpha.DataQualityRuleset", version: "2.209.0-alpha.0" };
93
93
  /** Uniquely identifies this class. */
94
94
  DataQualityRuleset.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.DataQualityRuleset';
95
95
  exports.DataQualityRuleset = DataQualityRuleset = DataQualityRuleset_1 = __decorate([
package/lib/database.js CHANGED
@@ -85,7 +85,7 @@ let Database = class Database extends core_1.Resource {
85
85
  };
86
86
  exports.Database = Database;
87
87
  _a = JSII_RTTI_SYMBOL_1;
88
- Database[_a] = { fqn: "@aws-cdk/aws-glue-alpha.Database", version: "2.207.0-alpha.0" };
88
+ Database[_a] = { fqn: "@aws-cdk/aws-glue-alpha.Database", version: "2.209.0-alpha.0" };
89
89
  /** Uniquely identifies this class. */
90
90
  Database.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.Database';
91
91
  exports.Database = Database = __decorate([
@@ -93,12 +93,12 @@ exports.Database = Database = __decorate([
93
93
  ], Database);
94
94
  function validateLocationUri(locationUri) {
95
95
  if (locationUri.length < 1 || locationUri.length > 1024) {
96
- throw new Error(`locationUri length must be (inclusively) between 1 and 1024, got ${locationUri.length}`);
96
+ throw new core_1.UnscopedValidationError(`locationUri length must be (inclusively) between 1 and 1024, got ${locationUri.length}`);
97
97
  }
98
98
  }
99
99
  function validateDescription(description) {
100
100
  if (description.length > 2048) {
101
- throw new Error(`description length must be less than or equal to 2048, got ${description.length}`);
101
+ throw new core_1.UnscopedValidationError(`description length must be less than or equal to 2048, got ${description.length}`);
102
102
  }
103
103
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBc0Y7QUFFdEYsbURBQW1EO0FBQ25ELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFvRDFFOztHQUVHO0FBRUksSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFTLFNBQVEsZUFBUTtJQUk3QixNQUFNLENBQUMsZUFBZSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFdBQW1CO1FBQzdFLE1BQU0sS0FBSyxHQUFHLFlBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUIsTUFBTSxNQUFPLFNBQVEsZUFBUTtZQUE3Qjs7Z0JBQ1MsZ0JBQVcsR0FBRyxXQUFXLENBQUM7Z0JBQzFCLGlCQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsZ0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQWEsQ0FBQztnQkFDeEYsZUFBVSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RSxjQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNuQyxDQUFDO1NBQUE7UUFFRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQTJCRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXVCLEVBQUU7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7Z0JBQzlCLFdBQUksQ0FBQyxNQUFNLENBQUM7b0JBQ1YsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFO2lCQUNoRSxDQUFDO1NBQ0wsQ0FBQyxDQUFDOzs7Ozs7K0NBaERNLFFBQVE7Ozs7UUFpRGpCLG1DQUFtQztRQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVsQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxJQUFJLGFBQWEsR0FBc0M7WUFDckQsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztTQUMvQixDQUFDO1FBRUYsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7WUFDckMsYUFBYSxHQUFHO2dCQUNkLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsR0FBRyxhQUFhO2FBQ2pCLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLHNCQUFXLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNqRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsYUFBYTtTQUNkLENBQUMsQ0FBQztRQUVILCtHQUErRztRQUMvRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUN0QyxPQUFPLEVBQUUsTUFBTTtZQUNmLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDLENBQUM7UUFFSCx1RkFBdUY7UUFDdkYsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6QyxPQUFPLEVBQUUsTUFBTTtZQUNmLFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FBQztLQUNKOztBQXpGVSw0QkFBUTs7O0FBQ25CLHNDQUFzQztBQUNmLDhCQUFxQixHQUFXLGtDQUFrQyxBQUE3QyxDQUE4QzttQkFGL0UsUUFBUTtJQURwQixvQ0FBa0I7R0FDTixRQUFRLENBMEZwQjtBQUVELFNBQVMsbUJBQW1CLENBQUMsV0FBbUI7SUFDOUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3hELE1BQU0sSUFBSSxLQUFLLENBQUMsb0VBQW9FLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVHLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxXQUFtQjtJQUM5QyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdEcsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcm5Gb3JtYXQsIElSZXNvdXJjZSwgTGF6eSwgTmFtZXMsIFJlc291cmNlLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5EYXRhYmFzZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBJRGF0YWJhc2UgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgY2F0YWxvZy5cbiAgICovXG4gIHJlYWRvbmx5IGNhdGFsb2dBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNhdGFsb2cgaWQgb2YgdGhlIGRhdGFiYXNlICh1c3VhbGx5LCB0aGUgQVdTIGFjY291bnQgaWQpXG4gICAqL1xuICByZWFkb25seSBjYXRhbG9nSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZGF0YWJhc2UuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZ2VuZXJhdGVkIGJ5IENESy5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIG9mIHRoZSBkYXRhYmFzZSAoZm9yIGV4YW1wbGUsIGFuIEhERlMgcGF0aCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZC4gVGhpcyBmaWVsZCBpcyBvcHRpb25hbCBpbiBBV1M6OkdsdWU6OkRhdGFiYXNlIERhdGFiYXNlSW5wdXRcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1nbHVlLWRhdGFiYXNlLWRhdGFiYXNlaW5wdXQuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb25Vcmk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gb2YgdGhlIGRhdGFiYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRhdGFiYXNlIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIEdsdWUgZGF0YWJhc2UuXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBEYXRhYmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSURhdGFiYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZ2x1ZS1hbHBoYS5EYXRhYmFzZSc7XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tRGF0YWJhc2VBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZGF0YWJhc2VBcm46IHN0cmluZyk6IElEYXRhYmFzZSB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSk7XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElEYXRhYmFzZSB7XG4gICAgICBwdWJsaWMgZGF0YWJhc2VBcm4gPSBkYXRhYmFzZUFybjtcbiAgICAgIHB1YmxpYyBkYXRhYmFzZU5hbWUgPSBzdGFjay5zcGxpdEFybihkYXRhYmFzZUFybiwgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZSE7XG4gICAgICBwdWJsaWMgY2F0YWxvZ0FybiA9IHN0YWNrLmZvcm1hdEFybih7IHNlcnZpY2U6ICdnbHVlJywgcmVzb3VyY2U6ICdjYXRhbG9nJyB9KTtcbiAgICAgIHB1YmxpYyBjYXRhbG9nSWQgPSBzdGFjay5hY2NvdW50O1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBHbHVlIGNhdGFsb2cgaW4gd2hpY2ggdGhpcyBkYXRhYmFzZSBpcyBzdG9yZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2F0YWxvZ0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2F0YWxvZyBpZCBvZiB0aGUgZGF0YWJhc2UgKHVzdWFsbHksIHRoZSBBV1MgYWNjb3VudCBpZCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2F0YWxvZ0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFSTiBvZiB0aGlzIGRhdGFiYXNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhpcyBkYXRhYmFzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogTG9jYXRpb24gVVJJIG9mIHRoaXMgZGF0YWJhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb25Vcmk/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFiYXNlUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5kYXRhYmFzZU5hbWUgPz9cbiAgICAgICAgTGF6eS5zdHJpbmcoe1xuICAgICAgICAgIHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7fSkudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgfSksXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsaWRhdGVEZXNjcmlwdGlvbihwcm9wcy5kZXNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgbGV0IGRhdGFiYXNlSW5wdXQ6IENmbkRhdGFiYXNlLkRhdGFiYXNlSW5wdXRQcm9wZXJ0eSA9IHtcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgIH07XG5cbiAgICBpZiAocHJvcHMubG9jYXRpb25VcmkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFsaWRhdGVMb2NhdGlvblVyaShwcm9wcy5sb2NhdGlvblVyaSk7XG4gICAgICB0aGlzLmxvY2F0aW9uVXJpID0gcHJvcHMubG9jYXRpb25Vcmk7XG4gICAgICBkYXRhYmFzZUlucHV0ID0ge1xuICAgICAgICBsb2NhdGlvblVyaTogdGhpcy5sb2NhdGlvblVyaSxcbiAgICAgICAgLi4uZGF0YWJhc2VJbnB1dCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5jYXRhbG9nSWQgPSBTdGFjay5vZih0aGlzKS5hY2NvdW50O1xuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbkRhdGFiYXNlKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGNhdGFsb2dJZDogdGhpcy5jYXRhbG9nSWQsXG4gICAgICBkYXRhYmFzZUlucHV0LFxuICAgIH0pO1xuXG4gICAgLy8gc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9nbHVlLXNwZWNpZnlpbmctcmVzb3VyY2UtYXJucy5odG1sI2RhdGEtY2F0YWxvZy1yZXNvdXJjZS1hcm5zXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZShyZXNvdXJjZS5yZWYpO1xuICAgIHRoaXMuZGF0YWJhc2VBcm4gPSB0aGlzLnN0YWNrLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnZ2x1ZScsXG4gICAgICByZXNvdXJjZTogJ2RhdGFiYXNlJyxcbiAgICAgIHJlc291cmNlTmFtZTogdGhpcy5kYXRhYmFzZU5hbWUsXG4gICAgfSk7XG5cbiAgICAvLyBjYXRhbG9nSWQgaXMgaW1wbGljaXRseSB0aGUgYWNjb3VudElkLCB3aGljaCBpcyB3aHkgd2UgZG9uJ3QgcGFzcyB0aGUgY2F0YWxvZ0lkIGhlcmVcbiAgICB0aGlzLmNhdGFsb2dBcm4gPSBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dsdWUnLFxuICAgICAgcmVzb3VyY2U6ICdjYXRhbG9nJyxcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUxvY2F0aW9uVXJpKGxvY2F0aW9uVXJpOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKGxvY2F0aW9uVXJpLmxlbmd0aCA8IDEgfHwgbG9jYXRpb25VcmkubGVuZ3RoID4gMTAyNCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbG9jYXRpb25VcmkgbGVuZ3RoIG11c3QgYmUgKGluY2x1c2l2ZWx5KSBiZXR3ZWVuIDEgYW5kIDEwMjQsIGdvdCAke2xvY2F0aW9uVXJpLmxlbmd0aH1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCA+IDIwNDgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGRlc2NyaXB0aW9uIGxlbmd0aCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAyMDQ4LCBnb3QgJHtkZXNjcmlwdGlvbi5sZW5ndGh9YCk7XG4gIH1cbn1cbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBK0c7QUFFL0csbURBQW1EO0FBQ25ELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFvRDFFOztHQUVHO0FBRUksSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFTLFNBQVEsZUFBUTtJQUk3QixNQUFNLENBQUMsZUFBZSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFdBQW1CO1FBQzdFLE1BQU0sS0FBSyxHQUFHLFlBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUIsTUFBTSxNQUFPLFNBQVEsZUFBUTtZQUE3Qjs7Z0JBQ1MsZ0JBQVcsR0FBRyxXQUFXLENBQUM7Z0JBQzFCLGlCQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsZ0JBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFlBQWEsQ0FBQztnQkFDeEYsZUFBVSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RSxjQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNuQyxDQUFDO1NBQUE7UUFFRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQTJCRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXVCLEVBQUU7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7Z0JBQzlCLFdBQUksQ0FBQyxNQUFNLENBQUM7b0JBQ1YsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFO2lCQUNoRSxDQUFDO1NBQ0wsQ0FBQyxDQUFDOzs7Ozs7K0NBaERNLFFBQVE7Ozs7UUFpRGpCLG1DQUFtQztRQUNuQyxJQUFBLHdDQUFvQixFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVsQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxJQUFJLGFBQWEsR0FBc0M7WUFDckQsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztTQUMvQixDQUFDO1FBRUYsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7WUFDckMsYUFBYSxHQUFHO2dCQUNkLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsR0FBRyxhQUFhO2FBQ2pCLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLHNCQUFXLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNqRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsYUFBYTtTQUNkLENBQUMsQ0FBQztRQUVILCtHQUErRztRQUMvRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUN0QyxPQUFPLEVBQUUsTUFBTTtZQUNmLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDLENBQUM7UUFFSCx1RkFBdUY7UUFDdkYsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6QyxPQUFPLEVBQUUsTUFBTTtZQUNmLFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FBQztLQUNKOztBQXpGVSw0QkFBUTs7O0FBQ25CLHNDQUFzQztBQUNmLDhCQUFxQixHQUFXLGtDQUFrQyxBQUE3QyxDQUE4QzttQkFGL0UsUUFBUTtJQURwQixvQ0FBa0I7R0FDTixRQUFRLENBMEZwQjtBQUVELFNBQVMsbUJBQW1CLENBQUMsV0FBbUI7SUFDOUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3hELE1BQU0sSUFBSSw4QkFBdUIsQ0FBQyxvRUFBb0UsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDOUgsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLFdBQW1CO0lBQzlDLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksOEJBQXVCLENBQUMsOERBQThELFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJuRm9ybWF0LCBJUmVzb3VyY2UsIExhenksIE5hbWVzLCBSZXNvdXJjZSwgU3RhY2ssIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmbkRhdGFiYXNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdsdWUnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRhYmFzZSBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBjYXRhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgY2F0YWxvZ0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2F0YWxvZyBpZCBvZiB0aGUgZGF0YWJhc2UgKHVzdWFsbHksIHRoZSBBV1MgYWNjb3VudCBpZClcbiAgICovXG4gIHJlYWRvbmx5IGNhdGFsb2dJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBkYXRhYmFzZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBnZW5lcmF0ZWQgYnkgQ0RLLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gb2YgdGhlIGRhdGFiYXNlIChmb3IgZXhhbXBsZSwgYW4gSERGUyBwYXRoKS5cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkLiBUaGlzIGZpZWxkIGlzIG9wdGlvbmFsIGluIEFXUzo6R2x1ZTo6RGF0YWJhc2UgRGF0YWJhc2VJbnB1dFxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWdsdWUtZGF0YWJhc2UtZGF0YWJhc2VpbnB1dC5odG1sXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvblVyaT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgZGF0YWJhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGF0YWJhc2UgZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgR2x1ZSBkYXRhYmFzZS5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIERhdGFiYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJRGF0YWJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1nbHVlLWFscGhhLkRhdGFiYXNlJztcblxuICBwdWJsaWMgc3RhdGljIGZyb21EYXRhYmFzZUFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBkYXRhYmFzZUFybjogc3RyaW5nKTogSURhdGFiYXNlIHtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHNjb3BlKTtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSURhdGFiYXNlIHtcbiAgICAgIHB1YmxpYyBkYXRhYmFzZUFybiA9IGRhdGFiYXNlQXJuO1xuICAgICAgcHVibGljIGRhdGFiYXNlTmFtZSA9IHN0YWNrLnNwbGl0QXJuKGRhdGFiYXNlQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lITtcbiAgICAgIHB1YmxpYyBjYXRhbG9nQXJuID0gc3RhY2suZm9ybWF0QXJuKHsgc2VydmljZTogJ2dsdWUnLCByZXNvdXJjZTogJ2NhdGFsb2cnIH0pO1xuICAgICAgcHVibGljIGNhdGFsb2dJZCA9IHN0YWNrLmFjY291bnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhlIEdsdWUgY2F0YWxvZyBpbiB3aGljaCB0aGlzIGRhdGFiYXNlIGlzIHN0b3JlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjYXRhbG9nQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYXRhbG9nIGlkIG9mIHRoZSBkYXRhYmFzZSAodXN1YWxseSwgdGhlIEFXUyBhY2NvdW50IGlkKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjYXRhbG9nSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQVJOIG9mIHRoaXMgZGF0YWJhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2VBcm46IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGlzIGRhdGFiYXNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMb2NhdGlvbiBVUkkgb2YgdGhpcyBkYXRhYmFzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsb2NhdGlvblVyaT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWJhc2VQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLmRhdGFiYXNlTmFtZSA/P1xuICAgICAgICBMYXp5LnN0cmluZyh7XG4gICAgICAgICAgcHJvZHVjZTogKCkgPT4gTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHt9KS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICB9KSxcbiAgICB9KTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YWxpZGF0ZURlc2NyaXB0aW9uKHByb3BzLmRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBsZXQgZGF0YWJhc2VJbnB1dDogQ2ZuRGF0YWJhc2UuRGF0YWJhc2VJbnB1dFByb3BlcnR5ID0ge1xuICAgICAgbmFtZTogdGhpcy5waHlzaWNhbE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgfTtcblxuICAgIGlmIChwcm9wcy5sb2NhdGlvblVyaSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YWxpZGF0ZUxvY2F0aW9uVXJpKHByb3BzLmxvY2F0aW9uVXJpKTtcbiAgICAgIHRoaXMubG9jYXRpb25VcmkgPSBwcm9wcy5sb2NhdGlvblVyaTtcbiAgICAgIGRhdGFiYXNlSW5wdXQgPSB7XG4gICAgICAgIGxvY2F0aW9uVXJpOiB0aGlzLmxvY2F0aW9uVXJpLFxuICAgICAgICAuLi5kYXRhYmFzZUlucHV0LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmNhdGFsb2dJZCA9IFN0YWNrLm9mKHRoaXMpLmFjY291bnQ7XG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuRGF0YWJhc2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgY2F0YWxvZ0lkOiB0aGlzLmNhdGFsb2dJZCxcbiAgICAgIGRhdGFiYXNlSW5wdXQsXG4gICAgfSk7XG5cbiAgICAvLyBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2dsdWUtc3BlY2lmeWluZy1yZXNvdXJjZS1hcm5zLmh0bWwjZGF0YS1jYXRhbG9nLXJlc291cmNlLWFybnNcbiAgICB0aGlzLmRhdGFiYXNlTmFtZSA9IHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHJlc291cmNlLnJlZik7XG4gICAgdGhpcy5kYXRhYmFzZUFybiA9IHRoaXMuc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdnbHVlJyxcbiAgICAgIHJlc291cmNlOiAnZGF0YWJhc2UnLFxuICAgICAgcmVzb3VyY2VOYW1lOiB0aGlzLmRhdGFiYXNlTmFtZSxcbiAgICB9KTtcblxuICAgIC8vIGNhdGFsb2dJZCBpcyBpbXBsaWNpdGx5IHRoZSBhY2NvdW50SWQsIHdoaWNoIGlzIHdoeSB3ZSBkb24ndCBwYXNzIHRoZSBjYXRhbG9nSWQgaGVyZVxuICAgIHRoaXMuY2F0YWxvZ0FybiA9IFN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnZ2x1ZScsXG4gICAgICByZXNvdXJjZTogJ2NhdGFsb2cnLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlTG9jYXRpb25VcmkobG9jYXRpb25Vcmk6IHN0cmluZyk6IHZvaWQge1xuICBpZiAobG9jYXRpb25VcmkubGVuZ3RoIDwgMSB8fCBsb2NhdGlvblVyaS5sZW5ndGggPiAxMDI0KSB7XG4gICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGBsb2NhdGlvblVyaSBsZW5ndGggbXVzdCBiZSAoaW5jbHVzaXZlbHkpIGJldHdlZW4gMSBhbmQgMTAyNCwgZ290ICR7bG9jYXRpb25VcmkubGVuZ3RofWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoID4gMjA0OCkge1xuICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihgZGVzY3JpcHRpb24gbGVuZ3RoIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDIwNDgsIGdvdCAke2Rlc2NyaXB0aW9uLmxlbmd0aH1gKTtcbiAgfVxufVxuIl19
@@ -14,6 +14,7 @@ const aws_glue_1 = require("aws-cdk-lib/aws-glue");
14
14
  const table_base_1 = require("./table-base");
15
15
  const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
16
16
  const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
17
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
17
18
  /**
18
19
  * A Glue table that targets an external data location (e.g. A table in a Redshift Cluster).
19
20
  * @resource AWS::Glue::Table
@@ -59,7 +60,7 @@ let ExternalTable = class ExternalTable extends table_base_1.TableBase {
59
60
  },
60
61
  parameters: props.storageParameters ? props.storageParameters.reduce((acc, param) => {
61
62
  if (param.key in acc) {
62
- throw new Error(`Duplicate storage parameter key: ${param.key}`);
63
+ throw new aws_cdk_lib_1.ValidationError(`Duplicate storage parameter key: ${param.key}`, this);
63
64
  }
64
65
  const key = param.key;
65
66
  acc[key] = param.value;
@@ -112,7 +113,7 @@ let ExternalTable = class ExternalTable extends table_base_1.TableBase {
112
113
  };
113
114
  exports.ExternalTable = ExternalTable;
114
115
  _a = JSII_RTTI_SYMBOL_1;
115
- ExternalTable[_a] = { fqn: "@aws-cdk/aws-glue-alpha.ExternalTable", version: "2.207.0-alpha.0" };
116
+ ExternalTable[_a] = { fqn: "@aws-cdk/aws-glue-alpha.ExternalTable", version: "2.209.0-alpha.0" };
116
117
  /** Uniquely identifies this class. */
117
118
  ExternalTable.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.ExternalTable';
118
119
  __decorate([
@@ -155,4 +156,4 @@ function renderColumns(columns) {
155
156
  };
156
157
  });
157
158
  }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlcm5hbC10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxtREFBZ0Q7QUFLaEQsNkNBQXlFO0FBQ3pFLDhFQUE4RjtBQUM5RiwwRUFBMEU7QUFvQjFFOzs7R0FHRztBQUVJLElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWMsU0FBUSxzQkFBUztJQXlCMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQzs7Ozs7OytDQTFCZixhQUFhOzs7O1FBMkJ0QixtQ0FBbUM7UUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDL0MsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUztZQUVuQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBRXpDLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQ3ZCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksbUJBQW1CO2dCQUV6RSxhQUFhLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7Z0JBRWpELFVBQVUsRUFBRTtvQkFDVixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLEtBQUs7b0JBQzlELG9CQUFvQixFQUFFLElBQUk7b0JBQzFCLDZCQUE2QixFQUFFLEtBQUssQ0FBQyx3QkFBd0I7b0JBQzdELGdCQUFnQixFQUFF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LE9BQU8sR0FBRyxDQUFDO0tBQ1o7O0FBdEhVLHNDQUFhOzs7QUFDeEIsc0NBQXNDO0FBQ2YsbUNBQXFCLEdBQVcsdUNBQXVDLEFBQWxELENBQW1EO0FBMkZ4RjtJQUROLElBQUEsa0NBQWMsR0FBRTs4Q0FJaEI7QUFRTTtJQUROLElBQUEsa0NBQWMsR0FBRTsrQ0FJaEI7QUFRTTtJQUROLElBQUEsa0NBQWMsR0FBRTttREFJaEI7d0JBdEhVLGFBQWE7SUFEekIsb0NBQWtCO0dBQ04sYUFBYSxDQXVIekI7QUFFRCxNQUFNLGVBQWUsR0FBRztJQUN0Qix3QkFBd0I7SUFDeEIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLHNCQUFzQjtJQUN0Qix1QkFBdUI7Q0FDeEIsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQixzQkFBc0I7SUFDdEIsc0JBQXNCO0lBQ3RCLHNCQUFzQjtDQUN2QixDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsT0FBZ0M7SUFDckQsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMxQixPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1NBQ3hCLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5UYWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUNvbm5lY3Rpb24gfSBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IHsgUGFydGl0aW9uSW5kZXgsIFRhYmxlQmFzZSwgVGFibGVCYXNlUHJvcHMgfSBmcm9tICcuL3RhYmxlLWJhc2UnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEsIE1ldGhvZE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbFRhYmxlUHJvcHMgZXh0ZW5kcyBUYWJsZUJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbiB0aGUgdGFibGUgd2lsbCB1c2Ugd2hlbiBwZXJmb3JtaW5nIHJlYWRzIGFuZCB3cml0ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gY29ubmVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbjogSUNvbm5lY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIHNvdXJjZSBsb2NhdGlvbiBvZiB0aGUgZ2x1ZSB0YWJsZSwgKGUuZy4gYGRlZmF1bHRfZGJfcHVibGljX2V4YW1wbGVgIGZvciBSZWRzaGlmdCkuXG4gICAqXG4gICAqIElmIHRoaXMgcHJvcGVydHkgaXMgc2V0LCBpdCB3aWxsIG92ZXJyaWRlIGJvdGggYGJ1Y2tldGAgYW5kIGBzM1ByZWZpeGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gb3V0c291cmNlZCBkYXRhIHNvdXJjZSBsb2NhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZXJuYWxEYXRhTG9jYXRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIEdsdWUgdGFibGUgdGhhdCB0YXJnZXRzIGFuIGV4dGVybmFsIGRhdGEgbG9jYXRpb24gKGUuZy4gQSB0YWJsZSBpbiBhIFJlZHNoaWZ0IENsdXN0ZXIpLlxuICogQHJlc291cmNlIEFXUzo6R2x1ZTo6VGFibGVcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEV4dGVybmFsVGFibGUgZXh0ZW5kcyBUYWJsZUJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1nbHVlLWFscGhhLkV4dGVybmFsVGFibGUnO1xuICAvKipcbiAgICogTmFtZSBvZiB0aGlzIHRhYmxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhpcyB0YWJsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbiBhc3NvY2lhdGVkIHRvIHRoaXMgdGFibGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uOiBJQ29ubmVjdGlvbjtcblxuICAvKipcbiAgICogVGhpcyB0YWJsZSdzIHBhcnRpdGlvbiBpbmRleGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcnRpdGlvbkluZGV4ZXM/OiBQYXJ0aXRpb25JbmRleFtdO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0YWJsZVJlc291cmNlOiBDZm5UYWJsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXh0ZXJuYWxUYWJsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG4gICAgdGhpcy5jb25uZWN0aW9uID0gcHJvcHMuY29ubmVjdGlvbjtcbiAgICB0aGlzLnRhYmxlUmVzb3VyY2UgPSBuZXcgQ2ZuVGFibGUodGhpcywgJ1RhYmxlJywge1xuICAgICAgY2F0YWxvZ0lkOiBwcm9wcy5kYXRhYmFzZS5jYXRhbG9nSWQsXG5cbiAgICAgIGRhdGFiYXNlTmFtZTogcHJvcHMuZGF0YWJhc2UuZGF0YWJhc2VOYW1lLFxuXG4gICAgICB0YWJsZUlucHV0OiB7XG4gICAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYCR7dGhpcy5waHlzaWNhbE5hbWV9IGdlbmVyYXRlZCBieSBDREtgLFxuXG4gICAgICAgIHBhcnRpdGlvbktleXM6IHJlbmRlckNvbHVtbnMocHJvcHMucGFydGl0aW9uS2V5cyksXG5cbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICdjbGFzc2lmaWNhdGlvbic6IHByb3BzLmRhdGFGb3JtYXQuY2xhc3NpZmljYXRpb25TdHJpbmc/LnZhbHVlLFxuICAgICAgICAgICdoYXNfZW5jcnlwdGVkX2RhdGEnOiB0cnVlLFxuICAgICAgICAgICdwYXJ0aXRpb25fZmlsdGVyaW5nLmVuYWJsZWQnOiBwcm9wcy5lbmFibGVQYXJ0aXRpb25GaWx0ZXJpbmcsXG4gICAgICAgICAgJ2Nvbm5lY3Rpb25OYW1lJzogcHJvcHMuY29ubmVjdGlvbi5jb25uZWN0aW9uTmFtZSxcbiAgICAgICAgICAuLi5wcm9wcy5wYXJhbWV0ZXJzLFxuICAgICAgICB9LFxuICAgICAgICBzdG9yYWdlRGVzY3JpcHRvcjoge1xuICAgICAgICAgIGxvY2F0aW9uOiBwcm9wcy5leHRlcm5hbERhdGFMb2NhdGlvbixcbiAgICAgICAgICBjb21wcmVzc2VkOiB0aGlzLmNvbXByZXNzZWQsXG4gICAgICAgICAgc3RvcmVkQXNTdWJEaXJlY3RvcmllczogcHJvcHMuc3RvcmVkQXNTdWJEaXJlY3RvcmllcyA/PyBmYWxzZSxcbiAgICAgICAgICBjb2x1bW5zOiByZW5kZXJDb2x1bW5zKHByb3BzLmNvbHVtbnMpLFxuICAgICAgICAgIGlucHV0Rm9ybWF0OiBwcm9wcy5kYXRhRm9ybWF0LmlucHV0Rm9ybWF0LmNsYXNzTmFtZSxcbiAgICAgICAgICBvdXRwdXRGb3JtYXQ6IHByb3BzLmRhdGFGb3JtYXQub3V0cHV0Rm9ybWF0LmNsYXNzTmFtZSxcbiAgICAgICAgICBzZXJkZUluZm86IHtcbiAgICAgICAgICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBwcm9wcy5kYXRhRm9ybWF0LnNlcmlhbGl6YXRpb25MaWJyYXJ5LmNsYXNzTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHByb3BzLnN0b3JhZ2VQYXJhbWV0ZXJzID8gcHJvcHMuc3RvcmFnZVBhcmFtZXRlcnMucmVkdWNlKChhY2MsIHBhcmFtKSA9PiB7XG4gICAgICAgICAgICBpZiAocGFyYW0ua2V5IGluIGFjYykge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSBzdG9yYWdlIHBhcmFtZXRlciBrZXk6ICR7cGFyYW0ua2V5fWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qga2V5ID0gcGFyYW0ua2V5O1xuICAgICAgICAgICAgYWNjW2tleV0gPSBwYXJhbS52YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgfSwge30gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG5cbiAgICAgICAgdGFibGVUeXBlOiAnRVhURVJOQUxfVEFCTEUnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMudGFibGVOYW1lID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUodGhpcy50YWJsZVJlc291cmNlLnJlZik7XG4gICAgdGhpcy50YWJsZUFybiA9IHRoaXMuc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdnbHVlJyxcbiAgICAgIHJlc291cmNlOiAndGFibGUnLFxuICAgICAgcmVzb3VyY2VOYW1lOiBgJHt0aGlzLmRhdGFiYXNlLmRhdGFiYXNlTmFtZX0vJHt0aGlzLnRhYmxlTmFtZX1gLFxuICAgIH0pO1xuICAgIHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgPSB0aGlzLnRhYmxlUmVzb3VyY2U7XG5cbiAgICAvLyBQYXJ0aXRpb24gaW5kZXggY3JlYXRpb24gcmVsaWVzIG9uIGNyZWF0ZWQgdGFibGUuXG4gICAgaWYgKHByb3BzLnBhcnRpdGlvbkluZGV4ZXMpIHtcbiAgICAgIHRoaXMucGFydGl0aW9uSW5kZXhlcyA9IHByb3BzLnBhcnRpdGlvbkluZGV4ZXM7XG4gICAgICB0aGlzLnBhcnRpdGlvbkluZGV4ZXMuZm9yRWFjaCgoaW5kZXgpID0+IHRoaXMuYWRkUGFydGl0aW9uSW5kZXgoaW5kZXgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0byB0aGUgdGFibGVcbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgdGhlIHByaW5jaXBhbFxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgY29uc3QgcmV0ID0gdGhpcy5ncmFudChncmFudGVlLCByZWFkUGVybWlzc2lvbnMpO1xuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgd3JpdGUgcGVybWlzc2lvbnMgdG8gdGhlIHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIHRoZSBwcmluY2lwYWxcbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBncmFudFdyaXRlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICBjb25zdCByZXQgPSB0aGlzLmdyYW50KGdyYW50ZWUsIHdyaXRlUGVybWlzc2lvbnMpO1xuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBhbmQgd3JpdGUgcGVybWlzc2lvbnMgdG8gdGhlIHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIHRoZSBwcmluY2lwYWxcbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBncmFudFJlYWRXcml0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgY29uc3QgcmV0ID0gdGhpcy5ncmFudChncmFudGVlLCBbLi4ucmVhZFBlcm1pc3Npb25zLCAuLi53cml0ZVBlcm1pc3Npb25zXSk7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxufVxuXG5jb25zdCByZWFkUGVybWlzc2lvbnMgPSBbXG4gICdnbHVlOkJhdGNoR2V0UGFydGl0aW9uJyxcbiAgJ2dsdWU6R2V0UGFydGl0aW9uJyxcbiAgJ2dsdWU6R2V0UGFydGl0aW9ucycsXG4gICdnbHVlOkdldFRhYmxlJyxcbiAgJ2dsdWU6R2V0VGFibGVzJyxcbiAgJ2dsdWU6R2V0VGFibGVWZXJzaW9uJyxcbiAgJ2dsdWU6R2V0VGFibGVWZXJzaW9ucycsXG5dO1xuXG5jb25zdCB3cml0ZVBlcm1pc3Npb25zID0gW1xuICAnZ2x1ZTpCYXRjaENyZWF0ZVBhcnRpdGlvbicsXG4gICdnbHVlOkJhdGNoRGVsZXRlUGFydGl0aW9uJyxcbiAgJ2dsdWU6Q3JlYXRlUGFydGl0aW9uJyxcbiAgJ2dsdWU6RGVsZXRlUGFydGl0aW9uJyxcbiAgJ2dsdWU6VXBkYXRlUGFydGl0aW9uJyxcbl07XG5cbmZ1bmN0aW9uIHJlbmRlckNvbHVtbnMoY29sdW1ucz86IEFycmF5PENvbHVtbiB8IENvbHVtbj4pIHtcbiAgaWYgKGNvbHVtbnMgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIGNvbHVtbnMubWFwKGNvbHVtbiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGNvbHVtbi5uYW1lLFxuICAgICAgdHlwZTogY29sdW1uLnR5cGUuaW5wdXRTdHJpbmcsXG4gICAgICBjb21tZW50OiBjb2x1bW4uY29tbWVudCxcbiAgICB9O1xuICB9KTtcbn1cbiJdfQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlcm5hbC10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxtREFBZ0Q7QUFLaEQsNkNBQXlFO0FBQ3pFLDhFQUE4RjtBQUM5RiwwRUFBMEU7QUFDMUUsNkNBQThDO0FBb0I5Qzs7O0dBR0c7QUFFSSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsc0JBQVM7SUF5QjFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7Ozs7OzsrQ0ExQmYsYUFBYTs7OztRQTJCdEIsbUNBQW1DO1FBQ25DLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksbUJBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQy9DLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVM7WUFFbkMsWUFBWSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWTtZQUV6QyxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUN2QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLG1CQUFtQjtnQkFFekUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO2dCQUVqRCxVQUFVLEVBQUU7b0JBQ1YsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLO29CQUM5RCxvQkFBb0IsRUFBRSxJQUFJO29CQUMxQiw2QkFBNkIsRUFBRSxLQUFLLENBQUMsd0JBQXdCO29CQUM3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QWdCLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sR0FBRyxDQUFDO0tBQ1o7O0FBdEhVLHNDQUFhOzs7QUFDeEIsc0NBQXNDO0FBQ2YsbUNBQXFCLEdBQVcsdUNBQXVDLEFBQWxELENBQW1EO0FBMkZ4RjtJQUROLElBQUEsa0NBQWMsR0FBRTs4Q0FJaEI7QUFRTTtJQUROLElBQUEsa0NBQWMsR0FBRTsrQ0FJaEI7QUFRTTtJQUROLElBQUEsa0NBQWMsR0FBRTttREFJaEI7d0JBdEhVLGFBQWE7SUFEekIsb0NBQWtCO0dBQ04sYUFBYSxDQXVIekI7QUFFRCxNQUFNLGVBQWUsR0FBRztJQUN0Qix3QkFBd0I7SUFDeEIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLHNCQUFzQjtJQUN0Qix1QkFBdUI7Q0FDeEIsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQixzQkFBc0I7SUFDdEIsc0JBQXNCO0lBQ3RCLHNCQUFzQjtDQUN2QixDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsT0FBZ0M7SUFDckQsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMxQixPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1NBQ3hCLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5UYWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUNvbm5lY3Rpb24gfSBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IHsgUGFydGl0aW9uSW5kZXgsIFRhYmxlQmFzZSwgVGFibGVCYXNlUHJvcHMgfSBmcm9tICcuL3RhYmxlLWJhc2UnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEsIE1ldGhvZE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbFRhYmxlUHJvcHMgZXh0ZW5kcyBUYWJsZUJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbiB0aGUgdGFibGUgd2lsbCB1c2Ugd2hlbiBwZXJmb3JtaW5nIHJlYWRzIGFuZCB3cml0ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gY29ubmVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbjogSUNvbm5lY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIHNvdXJjZSBsb2NhdGlvbiBvZiB0aGUgZ2x1ZSB0YWJsZSwgKGUuZy4gYGRlZmF1bHRfZGJfcHVibGljX2V4YW1wbGVgIGZvciBSZWRzaGlmdCkuXG4gICAqXG4gICAqIElmIHRoaXMgcHJvcGVydHkgaXMgc2V0LCBpdCB3aWxsIG92ZXJyaWRlIGJvdGggYGJ1Y2tldGAgYW5kIGBzM1ByZWZpeGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gb3V0c291cmNlZCBkYXRhIHNvdXJjZSBsb2NhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZXJuYWxEYXRhTG9jYXRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIEdsdWUgdGFibGUgdGhhdCB0YXJnZXRzIGFuIGV4dGVybmFsIGRhdGEgbG9jYXRpb24gKGUuZy4gQSB0YWJsZSBpbiBhIFJlZHNoaWZ0IENsdXN0ZXIpLlxuICogQHJlc291cmNlIEFXUzo6R2x1ZTo6VGFibGVcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEV4dGVybmFsVGFibGUgZXh0ZW5kcyBUYWJsZUJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1nbHVlLWFscGhhLkV4dGVybmFsVGFibGUnO1xuICAvKipcbiAgICogTmFtZSBvZiB0aGlzIHRhYmxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhpcyB0YWJsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbiBhc3NvY2lhdGVkIHRvIHRoaXMgdGFibGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uOiBJQ29ubmVjdGlvbjtcblxuICAvKipcbiAgICogVGhpcyB0YWJsZSdzIHBhcnRpdGlvbiBpbmRleGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcnRpdGlvbkluZGV4ZXM/OiBQYXJ0aXRpb25JbmRleFtdO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0YWJsZVJlc291cmNlOiBDZm5UYWJsZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXh0ZXJuYWxUYWJsZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG4gICAgdGhpcy5jb25uZWN0aW9uID0gcHJvcHMuY29ubmVjdGlvbjtcbiAgICB0aGlzLnRhYmxlUmVzb3VyY2UgPSBuZXcgQ2ZuVGFibGUodGhpcywgJ1RhYmxlJywge1xuICAgICAgY2F0YWxvZ0lkOiBwcm9wcy5kYXRhYmFzZS5jYXRhbG9nSWQsXG5cbiAgICAgIGRhdGFiYXNlTmFtZTogcHJvcHMuZGF0YWJhc2UuZGF0YWJhc2VOYW1lLFxuXG4gICAgICB0YWJsZUlucHV0OiB7XG4gICAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24gfHwgYCR7dGhpcy5waHlzaWNhbE5hbWV9IGdlbmVyYXRlZCBieSBDREtgLFxuXG4gICAgICAgIHBhcnRpdGlvbktleXM6IHJlbmRlckNvbHVtbnMocHJvcHMucGFydGl0aW9uS2V5cyksXG5cbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICdjbGFzc2lmaWNhdGlvbic6IHByb3BzLmRhdGFGb3JtYXQuY2xhc3NpZmljYXRpb25TdHJpbmc/LnZhbHVlLFxuICAgICAgICAgICdoYXNfZW5jcnlwdGVkX2RhdGEnOiB0cnVlLFxuICAgICAgICAgICdwYXJ0aXRpb25fZmlsdGVyaW5nLmVuYWJsZWQnOiBwcm9wcy5lbmFibGVQYXJ0aXRpb25GaWx0ZXJpbmcsXG4gICAgICAgICAgJ2Nvbm5lY3Rpb25OYW1lJzogcHJvcHMuY29ubmVjdGlvbi5jb25uZWN0aW9uTmFtZSxcbiAgICAgICAgICAuLi5wcm9wcy5wYXJhbWV0ZXJzLFxuICAgICAgICB9LFxuICAgICAgICBzdG9yYWdlRGVzY3JpcHRvcjoge1xuICAgICAgICAgIGxvY2F0aW9uOiBwcm9wcy5leHRlcm5hbERhdGFMb2NhdGlvbixcbiAgICAgICAgICBjb21wcmVzc2VkOiB0aGlzLmNvbXByZXNzZWQsXG4gICAgICAgICAgc3RvcmVkQXNTdWJEaXJlY3RvcmllczogcHJvcHMuc3RvcmVkQXNTdWJEaXJlY3RvcmllcyA/PyBmYWxzZSxcbiAgICAgICAgICBjb2x1bW5zOiByZW5kZXJDb2x1bW5zKHByb3BzLmNvbHVtbnMpLFxuICAgICAgICAgIGlucHV0Rm9ybWF0OiBwcm9wcy5kYXRhRm9ybWF0LmlucHV0Rm9ybWF0LmNsYXNzTmFtZSxcbiAgICAgICAgICBvdXRwdXRGb3JtYXQ6IHByb3BzLmRhdGFGb3JtYXQub3V0cHV0Rm9ybWF0LmNsYXNzTmFtZSxcbiAgICAgICAgICBzZXJkZUluZm86IHtcbiAgICAgICAgICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBwcm9wcy5kYXRhRm9ybWF0LnNlcmlhbGl6YXRpb25MaWJyYXJ5LmNsYXNzTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHByb3BzLnN0b3JhZ2VQYXJhbWV0ZXJzID8gcHJvcHMuc3RvcmFnZVBhcmFtZXRlcnMucmVkdWNlKChhY2MsIHBhcmFtKSA9PiB7XG4gICAgICAgICAgICBpZiAocGFyYW0ua2V5IGluIGFjYykge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBEdXBsaWNhdGUgc3RvcmFnZSBwYXJhbWV0ZXIga2V5OiAke3BhcmFtLmtleX1gLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGtleSA9IHBhcmFtLmtleTtcbiAgICAgICAgICAgIGFjY1trZXldID0gcGFyYW0udmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgIH0sIHt9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuXG4gICAgICAgIHRhYmxlVHlwZTogJ0VYVEVSTkFMX1RBQkxFJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnRhYmxlTmFtZSA9IHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMudGFibGVSZXNvdXJjZS5yZWYpO1xuICAgIHRoaXMudGFibGVBcm4gPSB0aGlzLnN0YWNrLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnZ2x1ZScsXG4gICAgICByZXNvdXJjZTogJ3RhYmxlJyxcbiAgICAgIHJlc291cmNlTmFtZTogYCR7dGhpcy5kYXRhYmFzZS5kYXRhYmFzZU5hbWV9LyR7dGhpcy50YWJsZU5hbWV9YCxcbiAgICB9KTtcbiAgICB0aGlzLm5vZGUuZGVmYXVsdENoaWxkID0gdGhpcy50YWJsZVJlc291cmNlO1xuXG4gICAgLy8gUGFydGl0aW9uIGluZGV4IGNyZWF0aW9uIHJlbGllcyBvbiBjcmVhdGVkIHRhYmxlLlxuICAgIGlmIChwcm9wcy5wYXJ0aXRpb25JbmRleGVzKSB7XG4gICAgICB0aGlzLnBhcnRpdGlvbkluZGV4ZXMgPSBwcm9wcy5wYXJ0aXRpb25JbmRleGVzO1xuICAgICAgdGhpcy5wYXJ0aXRpb25JbmRleGVzLmZvckVhY2goKGluZGV4KSA9PiB0aGlzLmFkZFBhcnRpdGlvbkluZGV4KGluZGV4KSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG8gdGhlIHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIHRoZSBwcmluY2lwYWxcbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IHJldCA9IHRoaXMuZ3JhbnQoZ3JhbnRlZSwgcmVhZFBlcm1pc3Npb25zKTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHdyaXRlIHBlcm1pc3Npb25zIHRvIHRoZSB0YWJsZVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSB0aGUgcHJpbmNpcGFsXG4gICAqL1xuICBATWV0aG9kTWV0YWRhdGEoKVxuICBwdWJsaWMgZ3JhbnRXcml0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgY29uc3QgcmV0ID0gdGhpcy5ncmFudChncmFudGVlLCB3cml0ZVBlcm1pc3Npb25zKTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvIHRoZSB0YWJsZVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSB0aGUgcHJpbmNpcGFsXG4gICAqL1xuICBATWV0aG9kTWV0YWRhdGEoKVxuICBwdWJsaWMgZ3JhbnRSZWFkV3JpdGUoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IHJldCA9IHRoaXMuZ3JhbnQoZ3JhbnRlZSwgWy4uLnJlYWRQZXJtaXNzaW9ucywgLi4ud3JpdGVQZXJtaXNzaW9uc10pO1xuICAgIHJldHVybiByZXQ7XG4gIH1cbn1cblxuY29uc3QgcmVhZFBlcm1pc3Npb25zID0gW1xuICAnZ2x1ZTpCYXRjaEdldFBhcnRpdGlvbicsXG4gICdnbHVlOkdldFBhcnRpdGlvbicsXG4gICdnbHVlOkdldFBhcnRpdGlvbnMnLFxuICAnZ2x1ZTpHZXRUYWJsZScsXG4gICdnbHVlOkdldFRhYmxlcycsXG4gICdnbHVlOkdldFRhYmxlVmVyc2lvbicsXG4gICdnbHVlOkdldFRhYmxlVmVyc2lvbnMnLFxuXTtcblxuY29uc3Qgd3JpdGVQZXJtaXNzaW9ucyA9IFtcbiAgJ2dsdWU6QmF0Y2hDcmVhdGVQYXJ0aXRpb24nLFxuICAnZ2x1ZTpCYXRjaERlbGV0ZVBhcnRpdGlvbicsXG4gICdnbHVlOkNyZWF0ZVBhcnRpdGlvbicsXG4gICdnbHVlOkRlbGV0ZVBhcnRpdGlvbicsXG4gICdnbHVlOlVwZGF0ZVBhcnRpdGlvbicsXG5dO1xuXG5mdW5jdGlvbiByZW5kZXJDb2x1bW5zKGNvbHVtbnM/OiBBcnJheTxDb2x1bW4gfCBDb2x1bW4+KSB7XG4gIGlmIChjb2x1bW5zID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiBjb2x1bW5zLm1hcChjb2x1bW4gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBjb2x1bW4ubmFtZSxcbiAgICAgIHR5cGU6IGNvbHVtbi50eXBlLmlucHV0U3RyaW5nLFxuICAgICAgY29tbWVudDogY29sdW1uLmNvbW1lbnQsXG4gICAgfTtcbiAgfSk7XG59XG4iXX0=
package/lib/jobs/job.js CHANGED
@@ -171,7 +171,7 @@ class JobBase extends cdk.Resource {
171
171
  }
172
172
  exports.JobBase = JobBase;
173
173
  _a = JSII_RTTI_SYMBOL_1;
174
- JobBase[_a] = { fqn: "@aws-cdk/aws-glue-alpha.JobBase", version: "2.207.0-alpha.0" };
174
+ JobBase[_a] = { fqn: "@aws-cdk/aws-glue-alpha.JobBase", version: "2.209.0-alpha.0" };
175
175
  /**
176
176
  * A Glue Job.
177
177
  * @resource AWS::Glue::Job
@@ -215,7 +215,7 @@ class Job extends JobBase {
215
215
  const reservedArgs = new Set(['--debug', '--mode', '--JOB_NAME']);
216
216
  Object.keys(defaultArguments).forEach((arg) => {
217
217
  if (reservedArgs.has(arg)) {
218
- throw new Error(`The ${arg} argument is reserved by Glue. Don't set it`);
218
+ throw new cdk.ValidationError(`The ${arg} argument is reserved by Glue. Don't set it`, this);
219
219
  }
220
220
  });
221
221
  }
@@ -277,7 +277,7 @@ class Job extends JobBase {
277
277
  }
278
278
  exports.Job = Job;
279
279
  _b = JSII_RTTI_SYMBOL_1;
280
- Job[_b] = { fqn: "@aws-cdk/aws-glue-alpha.Job", version: "2.207.0-alpha.0" };
280
+ Job[_b] = { fqn: "@aws-cdk/aws-glue-alpha.Job", version: "2.209.0-alpha.0" };
281
281
  /**
282
282
  * Create a CloudWatch Metric that's based on Glue Job events
283
283
  * {@see https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html#glue-event-types}
@@ -295,4 +295,4 @@ function metricRule(rule, props) {
295
295
  ...props,
296
296
  }).attachTo(rule);
297
297
  }
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlEQUF5RDtBQUN6RCxpREFBaUQ7QUFDakQsMkNBQTJDO0FBRTNDLHdDQUF3QztBQUd4Qyw0Q0FBNkU7QUFzSDdFOzs7Ozs7R0FNRztBQUNILE1BQXNCLE9BQVEsU0FBUSxHQUFHLENBQUMsUUFBUTtJQUtoRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksT0FBTyxDQUFDLEVBQVUsRUFBRSxVQUFpQyxFQUFFO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDbkIsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHFCQUFxQixDQUFDO1lBQzVELE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVEOzs7Ozs7T0FNRztJQUNPLGFBQWEsQ0FBQyxFQUFVLEVBQUUsUUFBa0IsRUFBRSxVQUFpQyxFQUFFOzs7Ozs7Ozs7O1FBQ3pGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzVCLFdBQVcsRUFBRSxnQ0FBZ0MsSUFBSSxDQUFDLE9BQU8sVUFBVSxRQUFRLFFBQVE7WUFDbkYsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuQixNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQ2xCO1NBQ0YsQ0FBQyxD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LEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDaEUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDbkUsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLGlCQUFpQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztLQUNiO0lBRVMsZUFBZSxDQUFDLElBQVU7Ozs7Ozs7Ozs7UUFDbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUN6RCxPQUFPLFFBQVEsVUFBVSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7S0FDaEU7O0FBbEZILGtCQW1GQzs7O0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsVUFBVSxDQUFDLElBQWtCLEVBQUUsS0FBZ0M7SUFDdEUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDM0IsU0FBUyxFQUFFLFlBQVk7UUFDdkIsVUFBVSxFQUFFLGdCQUFnQjtRQUM1QixhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUMxQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHO1FBQy9CLEdBQUcsS0FBSztLQUNULENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ29kZSB9IGZyb20gJy4uL2NvZGUnO1xuaW1wb3J0IHsgTWV0cmljVHlwZSwgSm9iU3RhdGUsIFdvcmtlclR5cGUsIEdsdWVWZXJzaW9uIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IElDb25uZWN0aW9uIH0gZnJvbSAnLi4vY29ubmVjdGlvbic7XG5pbXBvcnQgeyBJU2VjdXJpdHlDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vc2VjdXJpdHktY29uZmlndXJhdGlvbic7XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIG5ldyBvciBhbiBpbXBvcnRlZCBHbHVlIEpvYlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElKb2IgZXh0ZW5kcyBjZGsuSVJlc291cmNlLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgam9iLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBqb2JOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGpvYi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgam9iQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBDbG91ZFdhdGNoIGV2ZW50IHJ1bGUgdHJpZ2dlcmVkIHdoZW4gc29tZXRoaW5nIGhhcHBlbnMgd2l0aCB0aGlzIGpvYi5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0V2ZW50VHlwZXMuaHRtbCNnbHVlLWV2ZW50LXR5cGVzXG4gICAqL1xuICBvbkV2ZW50KGlkOiBzdHJpbmcsIG9wdGlvbnM/OiBldmVudHMuT25FdmVudE9wdGlvbnMpOiBldmVudHMuUnVsZTtcblxuICAvKipcbiAgICogRGVmaW5lcyBhIENsb3VkV2F0Y2ggZXZlbnQgcnVsZSB0cmlnZ2VyZWQgd2hlbiB0aGlzIGpvYiBtb3ZlcyB0byB0aGUgU1VDQ0VFREVEIHN0YXRlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXNcbiAgICovXG4gIG9uU3VjY2VzcyhpZDogc3RyaW5nLCBvcHRpb25zPzogZXZlbnRzLk9uRXZlbnRPcHRpb25zKTogZXZlbnRzLlJ1bGU7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBDbG91ZFdhdGNoIGV2ZW50IHJ1bGUgdHJpZ2dlcmVkIHdoZW4gdGhpcyBqb2IgbW92ZXMgdG8gdGhlIEZBSUxFRCBzdGF0ZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0V2ZW50VHlwZXMuaHRtbCNnbHVlLWV2ZW50LXR5cGVzXG4gICAqL1xuICBvbkZhaWx1cmUoaWQ6IHN0cmluZywgb3B0aW9ucz86IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyk6IGV2ZW50cy5SdWxlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgQ2xvdWRXYXRjaCBldmVudCBydWxlIHRyaWdnZXJlZCB3aGVuIHRoaXMgam9iIG1vdmVzIHRvIHRoZSBUSU1FT1VUIHN0YXRlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXNcbiAgICovXG4gIG9uVGltZW91dChpZDogc3RyaW5nLCBvcHRpb25zPzogZXZlbnRzLk9uRXZlbnRPcHRpb25zKTogZXZlbnRzLlJ1bGU7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggbWV0cmljLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBuYW1lIG9mIHRoZSBtZXRyaWMgdHlwaWNhbGx5IHByZWZpeGVkIHdpdGggYGdsdWUuZHJpdmVyLmAsIGBnbHVlLjxleGVjdXRvcklkPi5gIG9yIGBnbHVlLkFMTC5gLlxuICAgKiBAcGFyYW0gdHlwZSB0aGUgbWV0cmljIHR5cGUuXG4gICAqIEBwYXJhbSBwcm9wcyBtZXRyaWMgb3B0aW9ucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvbW9uaXRvcmluZy1hd3NnbHVlLXdpdGgtY2xvdWR3YXRjaC1tZXRyaWNzLmh0bWxcbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHR5cGU6IE1ldHJpY1R5cGUsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggTWV0cmljIGluZGljYXRpbmcgam9iIHN1Y2Nlc3MuXG4gICAqL1xuICBtZXRyaWNTdWNjZXNzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggTWV0cmljIGluZGljYXRpbmcgam9iIGZhaWx1cmUuXG4gICAqL1xuICBtZXRyaWNGYWlsdXJlKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggTWV0cmljIGluZGljYXRpbmcgam9iIHRpbWVvdXQuXG4gICAqL1xuICBtZXRyaWNUaW1lb3V0KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWM7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZW5hYmxpbmcgQ29udGludW91cyBMb2dnaW5nIGZvciBHbHVlIEpvYnMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvbW9uaXRvci1jb250aW51b3VzLWxvZ2dpbmctZW5hYmxlLmh0bWxcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1nbHVlLWFyZ3VtZW50cy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGludW91c0xvZ2dpbmdQcm9wcyB7XG4gIC8qKlxuICAgKiBFbmFibGUgY29udGludW91cyBsb2dnaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmeSBhIGN1c3RvbSBDbG91ZFdhdGNoIGxvZyBncm91cCBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbG9nIGdyb3VwIGlzIGNyZWF0ZWQgd2l0aCBuYW1lIGAvYXdzLWdsdWUvam9icy9sb2dzLXYyL2AuXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cD86IGxvZ3MuSUxvZ0dyb3VwO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGEgY3VzdG9tIENsb3VkV2F0Y2ggbG9nIHN0cmVhbSBwcmVmaXguXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGpvYiBydW4gSUQuXG4gICAqL1xuICByZWFkb25seSBsb2dTdHJlYW1QcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbHRlciBvdXQgbm9uLXVzZWZ1bCBBcGFjaGUgU3BhcmsgZHJpdmVyL2V4ZWN1dG9yIGFuZCBBcGFjaGUgSGFkb29wIFlBUk4gaGVhcnRiZWF0IGxvZyBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBcHBseSB0aGUgcHJvdmlkZWQgY29udmVyc2lvbiBwYXR0ZXJuLlxuICAgKlxuICAgKiBUaGlzIGlzIGEgTG9nNGogQ29udmVyc2lvbiBQYXR0ZXJuIHRvIGN1c3RvbWl6ZSBkcml2ZXIgYW5kIGV4ZWN1dG9yIGxvZ3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAlZHt5eS9NTS9kZCBISDptbTpzc30gJXAgJWN7MX06ICVtJW5gXG4gICAqL1xuICByZWFkb25seSBjb252ZXJzaW9uUGF0dGVybj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGJhc2UgY2xhc3MgaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gaW1wb3J0IGV4aXN0aW5nIEpvYnMgaW50byBhIENESyBhcHAgdG9cbiAqIHJlZmVyZW5jZSBhcyBwYXJ0IG9mIGEgbGFyZ2VyIHN0YWNrIG9yIGNvbnN0cnVjdC4gSm9iQmFzZSBoYXMgdGhlIHN1YnNldFxuICogb2YgYXR0cmlidXRlcyByZXF1aXJlZCB0byBpZGVudGlmeSBhbmQgcmVmZXJlbmNlIGFuIGV4aXN0aW5nIEdsdWUgSm9iLFxuICogYXMgd2VsbCBhcyBzb21lIENsb3VkV2F0Y2ggbWV0cmljIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB0byBjb25maWd1cmUgYW5cbiAqIGV2ZW50LWRyaXZlbiBmbG93IHVzaW5nIHRoZSBqb2IuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBKb2JCYXNlIGV4dGVuZHMgY2RrLlJlc291cmNlIGltcGxlbWVudHMgSUpvYiB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBqb2JBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGpvYk5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBFdmVudCBSdWxlIGZvciB0aGlzIEdsdWUgSm9iIHdoZW4gaXQncyBpbiBhIGdpdmVuIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIG9wdGlvbnMgZXZlbnQgb3B0aW9ucy4gTm90ZSB0aGF0IHNvbWUgdmFsdWVzIGFyZSBvdmVycmlkZGVuIGlmIHByb3ZpZGVkLCB0aGVzZSBhcmVcbiAgICogIC0gZXZlbnRQYXR0ZXJuLnNvdXJjZSA9IFsnYXdzLmdsdWUnXVxuICAgKiAgLSBldmVudFBhdHRlcm4uZGV0YWlsVHlwZSA9IFsnR2x1ZSBKb2IgU3RhdGUgQ2hhbmdlJywgJ0dsdWUgSm9iIFJ1biBTdGF0dXMnXVxuICAgKiAgLSBldmVudFBhdHRlcm4uZGV0YWlsLmpvYk5hbWUgPSBbdGhpcy5qb2JOYW1lXVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXNcbiAgICovXG4gIHB1YmxpYyBvbkV2ZW50KGlkOiBzdHJpbmcsIG9wdGlvbnM6IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyA9IHt9KTogZXZlbnRzLlJ1bGUge1xuICAgIGNvbnN0IHJ1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgaWQsIG9wdGlvbnMpO1xuICAgIHJ1bGUuYWRkVGFyZ2V0KG9wdGlvbnMudGFyZ2V0KTtcbiAgICBydWxlLmFkZEV2ZW50UGF0dGVybih7XG4gICAgICBzb3VyY2U6IFsnYXdzLmdsdWUnXSxcbiAgICAgIGRldGFpbFR5cGU6IFsnR2x1ZSBKb2IgU3RhdGUgQ2hhbmdlJywgJ0dsdWUgSm9iIFJ1biBTdGF0dXMnXSxcbiAgICAgIGRldGFpbDoge1xuICAgICAgICBqb2JOYW1lOiBbdGhpcy5qb2JOYW1lXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBFdmVudCBSdWxlIGZvciB0aGUgdHJhbnNpdGlvbiBpbnRvIHRoZSBpbnB1dCBqb2JTdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBpZC5cbiAgICogQHBhcmFtIGpvYlN0YXRlIHRoZSBqb2Igc3RhdGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbmFsIGV2ZW50IG9wdGlvbnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25TdGF0ZUNoYW5nZShpZDogc3RyaW5nLCBqb2JTdGF0ZTogSm9iU3RhdGUsIG9wdGlvbnM6IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyA9IHt9KTogZXZlbnRzLlJ1bGUge1xuICAgIGNvbnN0IHJ1bGUgPSB0aGlzLm9uRXZlbnQoaWQsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgUnVsZSB0cmlnZ2VyZWQgd2hlbiBHbHVlIGpvYiAke3RoaXMuam9iTmFtZX0gaXMgaW4gJHtqb2JTdGF0ZX0gc3RhdGVgLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgICBydWxlLmFkZEV2ZW50UGF0dGVybih7XG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgc3RhdGU6IFtqb2JTdGF0ZV0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBydWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggRXZlbnQgUnVsZSBtYXRjaGluZyBKb2JTdGF0ZS5TVUNDRUVERUQuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgaWQuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbmFsIGV2ZW50IG9wdGlvbnMuIGRlZmF1bHQgaXMge30uXG4gICAqL1xuICBwdWJsaWMgb25TdWNjZXNzKGlkOiBzdHJpbmcsIG9wdGlvbnM6IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyA9IHt9KTogZXZlbnRzLlJ1bGUge1xuICAgIHJldHVybiB0aGlzLm9uU3RhdGVDaGFuZ2UoaWQsIEpvYlN0YXRlLlNVQ0NFRURFRCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgQ2xvdWRXYXRjaCBFdmVudCBSdWxlIG1hdGNoaW5nIEZBSUxFRCBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBpZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9uYWwgZXZlbnQgb3B0aW9ucy4gZGVmYXVsdCBpcyB7fS5cbiAgICovXG4gIHB1YmxpYyBvbkZhaWx1cmUoaWQ6IHN0cmluZywgb3B0aW9uczogZXZlbnRzLk9uRXZlbnRPcHRpb25zID0ge30pOiBldmVudHMuUnVsZSB7XG4gICAgcmV0dXJuIHRoaXMub25TdGF0ZUNoYW5nZShpZCwgSm9iU3RhdGUuRkFJTEVELCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBDbG91ZFdhdGNoIEV2ZW50IFJ1bGUgbWF0Y2hpbmcgVElNRU9VVCBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBpZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9uYWwgZXZlbnQgb3B0aW9ucy4gZGVmYXVsdCBpcyB7fS5cbiAgICovXG4gIHB1YmxpYyBvblRpbWVvdXQoaWQ6IHN0cmluZywgb3B0aW9uczogZXZlbnRzLk9uRXZlbnRPcHRpb25zID0ge30pOiBldmVudHMuUnVsZSB7XG4gICAgcmV0dXJuIHRoaXMub25TdGF0ZUNoYW5nZShpZCwgSm9iU3RhdGUuVElNRU9VVCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBtZXRyaWMuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRyaWNOYW1lIG5hbWUgb2YgdGhlIG1ldHJpYyB0eXBpY2FsbHkgcHJlZml4ZWQgd2l0aCBgZ2x1ZS5kcml2ZXIuYCwgYGdsdWUuPGV4ZWN1dG9ySWQ+LmAgb3IgYGdsdWUuQUxMLmAuXG4gICAqIEBwYXJhbSB0eXBlIHRoZSBtZXRyaWMgdHlwZS5cbiAgICogQHBhcmFtIHByb3BzIG1ldHJpYyBvcHRpb25zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9tb25pdG9yaW5nLWF3c2dsdWUtd2l0aC1jbG91ZHdhdGNoLW1ldHJpY3MuaHRtbFxuICAgKi9cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHR5cGU6IE1ldHJpY1R5cGUsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZSxcbiAgICAgIG5hbWVzcGFjZTogJ0dsdWUnLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBKb2JOYW1lOiB0aGlzLmpvYk5hbWUsXG4gICAgICAgIEpvYlJ1bklkOiAnQUxMJyxcbiAgICAgICAgVHlwZTogdHlwZSxcbiAgICAgIH0sXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KS5hdHRhY2hUbyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBDbG91ZFdhdGNoIE1ldHJpYyBpbmRpY2F0aW5nIGpvYiBzdWNjZXNzLlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyBpcyBiYXNlZCBvbiB0aGUgUnVsZSByZXR1cm5lZCBieSBuby1hcmdzIG9uU3VjY2VzcygpIGNhbGwuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljU3VjY2Vzcyhwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gbWV0cmljUnVsZSh0aGlzLm1ldHJpY0pvYlN0YXRlUnVsZSgnU3VjY2Vzc01ldHJpY1J1bGUnLCBKb2JTdGF0ZS5TVUNDRUVERUQpLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgQ2xvdWRXYXRjaCBNZXRyaWMgaW5kaWNhdGluZyBqb2IgZmFpbHVyZS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgaXMgYmFzZWQgb24gdGhlIFJ1bGUgcmV0dXJuZWQgYnkgbm8tYXJncyBvbkZhaWx1cmUoKSBjYWxsLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0ZhaWx1cmUocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIG1ldHJpY1J1bGUodGhpcy5tZXRyaWNKb2JTdGF0ZVJ1bGUoJ0ZhaWx1cmVNZXRyaWNSdWxlJywgSm9iU3RhdGUuRkFJTEVEKSwgcHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIENsb3VkV2F0Y2ggTWV0cmljIGluZGljYXRpbmcgam9iIHRpbWVvdXQuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIGlzIGJhc2VkIG9uIHRoZSBSdWxlIHJldHVybmVkIGJ5IG5vLWFyZ3Mgb25UaW1lb3V0KCkgY2FsbC5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNUaW1lb3V0KHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiBtZXRyaWNSdWxlKHRoaXMubWV0cmljSm9iU3RhdGVSdWxlKCdUaW1lb3V0TWV0cmljUnVsZScsIEpvYlN0YXRlLlRJTUVPVVQpLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBvciByZXRyaWV2ZXMgYSBzaW5nbGV0b24gZXZlbnQgcnVsZSBmb3IgdGhlIGlucHV0IGpvYiBzdGF0ZSBmb3IgdXNlIHdpdGggdGhlIG1ldHJpYyBKb2JTdGF0ZSBtZXRob2RzLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgY29uc3RydWN0IGlkLlxuICAgKiBAcGFyYW0gam9iU3RhdGUgdGhlIGpvYiBzdGF0ZS5cbiAgICovXG4gIHByaXZhdGUgbWV0cmljSm9iU3RhdGVSdWxlKGlkOiBzdHJpbmcsIGpvYlN0YXRlOiBKb2JTdGF0ZSk6IGV2ZW50cy5SdWxlIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlLnRyeUZpbmRDaGlsZChpZCkgYXMgZXZlbnRzLlJ1bGUgPz8gdGhpcy5vblN0YXRlQ2hhbmdlKGlkLCBqb2JTdGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgam9iIGFyblxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkSm9iQXJuKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgam9iTmFtZTogc3RyaW5nKSA6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdnbHVlJyxcbiAgICAgIHJlc291cmNlOiAnam9iJyxcbiAgICAgIHJlc291cmNlTmFtZTogam9iTmFtZSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgc3Vic2V0IG9mIEpvYiBhdHRyaWJ1dGVzIGFyZSByZXF1aXJlZCBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIGpvYlxuICogaW50byBhIENESyBwcm9qZWN0LiBUaGlzIGlzIG9ubHkgdXNlZCB3aGVuIHVzaW5nIGZyb21Kb2JBdHRyaWJ1dGVzXG4gKiB0byBpZGVudGlmeSBhbmQgcmVmZXJlbmNlIHRoZSBleGlzdGluZyBqb2IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9iQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgam9iLlxuICAgKi9cbiAgcmVhZG9ubHkgam9iTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzdW1lZCBieSBHbHVlIHRvIHJ1biB0aGlzIGpvYi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbn1cblxuLyoqXG4gKiBKb2JQcm9wcyB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIG5ldyBHbHVlIEpvYnMgdXNpbmcgdGhpcyBMMiBDb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9iUHJvcHMge1xuICAvKipcbiAgICogU2NyaXB0IENvZGUgTG9jYXRpb24gKHJlcXVpcmVkKVxuICAgKiBTY3JpcHQgdG8gcnVuIHdoZW4gdGhlIEdsdWUgam9iIGV4ZWN1dGVzLiBDYW4gYmUgdXBsb2FkZWRcbiAgICogZnJvbSB0aGUgbG9jYWwgZGlyZWN0b3J5IHN0cnVjdHVyZSB1c2luZyBmcm9tQXNzZXRcbiAgICogb3IgcmVmZXJlbmNlZCB2aWEgUzMgbG9jYXRpb24gdXNpbmcgZnJvbUJ1Y2tldFxuICAgKi9cbiAgcmVhZG9ubHkgc2NyaXB0OiBDb2RlO1xuXG4gIC8qKlxuICAgKiBJQU0gUm9sZSAocmVxdWlyZWQpXG4gICAqIElBTSBSb2xlIHRvIHVzZSBmb3IgR2x1ZSBqb2IgZXhlY3V0aW9uXG4gICAqIE11c3QgYmUgc3BlY2lmaWVkIGJ5IHRoZSBkZXZlbG9wZXIgYmVjYXVzZSB0aGUgTDIgZG9lc24ndCBoYXZlIHZpc2liaWxpdHlcbiAgICogaW50byB0aGUgYWN0aW9ucyB0aGUgc2NyaXB0KHMpIHRha2VzIGR1cmluZyB0aGUgam9iIGV4ZWN1dGlvblxuICAgKiBUaGUgcm9sZSBtdXN0IHRydXN0IHRoZSBHbHVlIHNlcnZpY2UgcHJpbmNpcGFsIChnbHVlLmFtYXpvbmF3cy5jb20pXG4gICAqIGFuZCBiZSBncmFudGVkIHN1ZmZpY2llbnQgcGVybWlzc2lvbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2dldHRpbmctc3RhcnRlZC1hY2Nlc3MuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZTogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBHbHVlIGpvYiAob3B0aW9uYWwpXG4gICAqIERldmVsb3Blci1zcGVjaWZpZWQgbmFtZSBvZiB0aGUgR2x1ZSBqb2JcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5hbWUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGpvYk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIChvcHRpb25hbClcbiAgICogRGV2ZWxvcGVyLXNwZWNpZmllZCBkZXNjcmlwdGlvbiBvZiB0aGUgR2x1ZSBqb2JcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB2YWx1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBXb3JrZXJzIChvcHRpb25hbClcbiAgICogTnVtYmVyIG9mIHdvcmtlcnMgZm9yIEdsdWUgdG8gdXNlIGR1cmluZyBqb2IgZXhlY3V0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICByZWFkb25seSBudW1iZXJPZldvcmtlcnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdvcmtlciBUeXBlIChvcHRpb25hbClcbiAgICogVHlwZSBvZiBXb3JrZXIgZm9yIEdsdWUgdG8gdXNlIGR1cmluZyBqb2IgZXhlY3V0aW9uXG4gICAqIEVudW0gb3B0aW9uczogU3RhbmRhcmQsIEdfMVgsIEdfMlgsIEdfMDI1WC4gR180WCwgR184WCwgWl8yWFxuICAgKlxuICAgKiBAZGVmYXVsdCBXb3JrZXJUeXBlLkdfMVhcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtlclR5cGU/OiBXb3JrZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBNYXggQ29uY3VycmVudCBSdW5zIChvcHRpb25hbClcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHJ1bnMgdGhpcyBHbHVlIGpvYiBjYW4gY29uY3VycmVudGx5IHJ1blxuICAgKlxuICAgKiBBbiBlcnJvciBpcyByZXR1cm5lZCB3aGVuIHRoaXMgdGhyZXNob2xkIGlzIHJlYWNoZWQuIFRoZSBtYXhpbXVtIHZhbHVlXG4gICAqIHlvdSBjYW4gc3BlY2lmeSBpcyBjb250cm9sbGVkIGJ5IGEgc2VydmljZSBsaW1pdC5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29uY3VycmVudFJ1bnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgQXJndW1lbnRzIChvcHRpb25hbClcbiAgICogVGhlIGRlZmF1bHQgYXJndW1lbnRzIGZvciBldmVyeSBydW4gb2YgdGhpcyBHbHVlIGpvYixcbiAgICogc3BlY2lmaWVkIGFzIG5hbWUtdmFsdWUgcGFpcnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1nbHVlLWFyZ3VtZW50cy5odG1sXG4gICAqIGZvciBhIGxpc3Qgb2YgcmVzZXJ2ZWQgcGFyYW1ldGVyc1xuICAgKiBAZGVmYXVsdCAtIG5vIGFyZ3VtZW50c1xuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdEFyZ3VtZW50cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIENvbm5lY3Rpb25zIChvcHRpb25hbClcbiAgICogTGlzdCBvZiBjb25uZWN0aW9ucyB0byB1c2UgZm9yIHRoaXMgR2x1ZSBqb2JcbiAgICogQ29ubmVjdGlvbnMgYXJlIHVzZWQgdG8gY29ubmVjdCB0byBvdGhlciBBV1MgU2VydmljZSBvciByZXNvdXJjZXMgd2l0aGluIGEgVlBDLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbXSAtIG5vIGNvbm5lY3Rpb25zIGFyZSBhZGRlZCB0byB0aGUgam9iXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9ucz86IElDb25uZWN0aW9uW107XG5cbiAgLyoqXG4gICAqIE1heCBSZXRyaWVzIChvcHRpb25hbClcbiAgICogTWF4aW11bSBudW1iZXIgb2YgcmV0cnkgYXR0ZW1wdHMgR2x1ZSBwZXJmb3JtcyBpZiB0aGUgam9iIGZhaWxzXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IG1heFJldHJpZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRpbWVvdXQgKG9wdGlvbmFsKVxuICAgKiBUaGUgbWF4aW11bSB0aW1lIHRoYXQgYSBqb2IgcnVuIGNhbiBjb25zdW1lIHJlc291cmNlcyBiZWZvcmUgaXQgaXNcbiAgICogdGVybWluYXRlZCBhbmQgZW50ZXJzIFRJTUVPVVQgc3RhdHVzLiBTcGVjaWZpZWQgaW4gbWludXRlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgMjg4MCAoMiBkYXlzIGZvciBub24tc3RyZWFtaW5nKVxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogU2VjdXJpdHkgQ29uZmlndXJhdGlvbiAob3B0aW9uYWwpXG4gICAqIERlZmluZXMgdGhlIGVuY3J5cHRpb24gb3B0aW9ucyBmb3IgdGhlIEdsdWUgam9iXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2VjdXJpdHkgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5Q29uZmlndXJhdGlvbj86IElTZWN1cml0eUNvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFRhZ3MgKG9wdGlvbmFsKVxuICAgKiBBIGxpc3Qgb2Yga2V5OnZhbHVlIHBhaXJzIG9mIHRhZ3MgdG8gYXBwbHkgdG8gdGhpcyBHbHVlIGpvYiByZXNvdXJjZXNcbiAgICpcbiAgICogQGRlZmF1bHQge30gLSBubyB0YWdzXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogR2x1ZSBWZXJzaW9uXG4gICAqIFRoZSB2ZXJzaW9uIG9mIEdsdWUgdG8gdXNlIHRvIGV4ZWN1dGUgdGhpcyBqb2JcbiAgICpcbiAgICogQGRlZmF1bHQgMy4wIGZvciBFVExcbiAgICovXG4gIHJlYWRvbmx5IGdsdWVWZXJzaW9uPzogR2x1ZVZlcnNpb247XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIGNvbGxlY3Rpb24gb2YgbWV0cmljcyBmb3Igam9iIHByb2ZpbGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwcm9maWxpbmcgbWV0cmljcyBlbWl0dGVkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZ2x1ZS1hcmd1bWVudHMuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUHJvZmlsaW5nTWV0cmljcz8gOmJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgY29udGludW91cyBsb2dnaW5nIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjb250aW51b3VzIGxvZ2dpbmcgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvbW9uaXRvci1jb250aW51b3VzLWxvZ2dpbmctZW5hYmxlLmh0bWxcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWdsdWUtYXJndW1lbnRzLmh0bWxcbiAgICoqL1xuICByZWFkb25seSBjb250aW51b3VzTG9nZ2luZz86IENvbnRpbnVvdXNMb2dnaW5nUHJvcHM7XG59XG5cbi8qKlxuICogQSBHbHVlIEpvYi5cbiAqIEByZXNvdXJjZSBBV1M6OkdsdWU6OkpvYlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSm9iIGV4dGVuZHMgSm9iQmFzZSB7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIGFuIGV4aXN0aW5nIEdsdWUgSm9iIGZyb20gYSBzdWJzZXQgb2YgYXR0cmlidXRlcyB0aGF0IGNhblxuICAgKiBiZSByZWZlcmVuY2VkIGZyb20gd2l0aGluIGFub3RoZXIgU3RhY2sgb3IgQ29uc3RydWN0LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgaWQuXG4gICAqIEBwYXJhbSBhdHRycyBBdHRyaWJ1dGVzIGZvciB0aGUgR2x1ZSBKb2Igd2Ugd2FudCB0byBpbXBvcnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUpvYkF0dHJpYnV0ZXMoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogSm9iQXR0cmlidXRlcyk6IElKb2Ige1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEpvYkJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGpvYk5hbWUgPSBhdHRycy5qb2JOYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGpvYkFybiA9IHRoaXMuYnVpbGRKb2JBcm4oc2NvcGUsIGF0dHJzLmpvYk5hbWUpO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsID0gYXR0cnMucm9sZSA/PyBuZXcgaWFtLlVua25vd25QcmluY2lwYWwoeyByZXNvdXJjZTogdGhpcyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBHbHVlIGFzc3VtZXMgdG8gcnVuIHRoaXMgam9iLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFic3RyYWN0IHJvbGU6IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogQ2hlY2sgbm8gdXNhZ2Ugb2YgcmVzZXJ2ZWQgYXJndW1lbnRzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZ2x1ZS1hcmd1bWVudHMuaHRtbFxuICAgKi9cbiAgcHJvdGVjdGVkIGNoZWNrTm9SZXNlcnZlZEFyZ3MoZGVmYXVsdEFyZ3VtZW50cz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pIHtcbiAgICBpZiAoZGVmYXVsdEFyZ3VtZW50cykge1xuICAgICAgY29uc3QgcmVzZXJ2ZWRBcmdzID0gbmV3IFNldChbJy0tZGVidWcnLCAnLS1tb2RlJywgJy0tSk9CX05BTUUnXSk7XG4gICAgICBPYmplY3Qua2V5cyhkZWZhdWx0QXJndW1lbnRzKS5mb3JFYWNoKChhcmcpID0+IHtcbiAgICAgICAgaWYgKHJlc2VydmVkQXJncy5oYXMoYXJnKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlICR7YXJnfSBhcmd1bWVudCBpcyByZXNlcnZlZCBieSBHbHVlLiBEb24ndCBzZXQgaXRgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBkZWZhdWx0QXJndW1lbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIENvbnRpbnVvdXMgTG9nZ2luZyBQcm9wZXJ0aWVzXG4gICAqIEBwYXJhbSByb2xlIFRoZSBJQU0gcm9sZSB0byB1c2UgZm9yIGNvbnRpbnVvdXMgbG9nZ2luZ1xuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIGNvbnRpbnVvdXMgbG9nZ2luZyBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm5zIFN0cmluZyBjb250YWluaW5nIHRoZSBhcmdzIGZvciB0aGUgY29udGludW91cyBsb2dnaW5nIGNvbW1hbmRcbiAgICovXG4gIHByb3RlY3RlZCBzZXR1cENvbnRpbnVvdXNMb2dnaW5nKHJvbGU6IGlhbS5JUm9sZSwgcHJvcHM6IENvbnRpbnVvdXNMb2dnaW5nUHJvcHMgfCB1bmRlZmluZWQpIDogYW55IHtcbiAgICAvLyBJZiB0aGUgZGV2ZWxvcGVyIGhhcyBleHBsaWNpdGx5IGRpc2FibGVkIGNvbnRpbnVvdXMgbG9nZ2luZyByZXR1cm4gbm8gYXJnc1xuICAgIGlmIChwcm9wcyAmJiAhcHJvcHMuZW5hYmxlZCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIC8vIEVsc2Ugd2UgdHVybiBvbiBjb250aW51b3VzIGxvZ2dpbmcgYnkgZGVmYXVsdC4gRGV0ZXJtaW5lIHdoYXQgbG9nIGdyb3VwIHRvIHVzZS5cbiAgICBjb25zdCBhcmdzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHtcbiAgICAgICctLWVuYWJsZS1jb250aW51b3VzLWNsb3Vkd2F0Y2gtbG9nJzogJ3RydWUnLFxuICAgIH07XG5cbiAgICBpZiAocHJvcHM/LnF1aWV0KSB7XG4gICAgICBhcmdzWyctLWVuYWJsZS1jb250aW51b3VzLWxvZy1maWx0ZXInXSA9ICd0cnVlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgZGV2ZWxvcGVyIHByb3ZpZGVkIGEgbG9nIGdyb3VwLCBhZGQgaXRzIG5hbWUgdG8gdGhlIGFyZ3MgYW5kIHVwZGF0ZSB0aGUgcm9sZS5cbiAgICBpZiAocHJvcHM/LmxvZ0dyb3VwKSB7XG4gICAgICBhcmdzWyctLWNvbnRpbnVvdXMtbG9nLWxvZ0dyb3VwJ10gPSBwcm9wcy5sb2dHcm91cC5sb2dHcm91cE5hbWU7XG4gICAgICBwcm9wcy5sb2dHcm91cC5ncmFudFdyaXRlKHJvbGUpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcz8ubG9nU3RyZWFtUHJlZml4KSB7XG4gICAgICBhcmdzWyctLWNvbnRpbnVvdXMtbG9nLWxvZ1N0cmVhbVByZWZpeCddID0gcHJvcHMubG9nU3RyZWFtUHJlZml4O1xuICAgIH1cblxuICAgIGlmIChwcm9wcz8uY29udmVyc2lvblBhdHRlcm4pIHtcbiAgICAgIGFyZ3NbJy0tY29udGludW91cy1sb2ctY29udmVyc2lvblBhdHRlcm4nXSA9IHByb3BzLmNvbnZlcnNpb25QYXR0ZXJuO1xuICAgIH1cblxuICAgIHJldHVybiBhcmdzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvZGVTM09iamVjdFVybChjb2RlOiBDb2RlKSB7XG4gICAgY29uc3QgczNMb2NhdGlvbiA9IGNvZGUuYmluZCh0aGlzLCB0aGlzLnJvbGUpLnMzTG9jYXRpb247XG4gICAgcmV0dXJuIGBzMzovLyR7czNMb2NhdGlvbi5idWNrZXROYW1lfS8ke3MzTG9jYXRpb24ub2JqZWN0S2V5fWA7XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBDbG91ZFdhdGNoIE1ldHJpYyB0aGF0J3MgYmFzZWQgb24gR2x1ZSBKb2IgZXZlbnRzXG4gKiB7QHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0V2ZW50VHlwZXMuaHRtbCNnbHVlLWV2ZW50LXR5cGVzfVxuICogVGhlIG1ldHJpYyBoYXMgbmFtZXNwYWNlID0gJ0FXUy9FdmVudHMnLCBtZXRyaWNOYW1lID0gJ1RyaWdnZXJlZFJ1bGVzJyBhbmQgUnVsZU5hbWUgPSBydWxlLnJ1bGVOYW1lIGRpbWVuc2lvbi5cbiAqXG4gKiBAcGFyYW0gcnVsZSBmb3IgdXNlIGluIHNldHRpbmcgUnVsZU5hbWUgZGltZW5zaW9uIHZhbHVlXG4gKiBAcGFyYW0gcHJvcHMgbWV0cmljIHByb3BlcnRpZXNcbiAqL1xuZnVuY3Rpb24gbWV0cmljUnVsZShydWxlOiBldmVudHMuSVJ1bGUsIHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICByZXR1cm4gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICBuYW1lc3BhY2U6ICdBV1MvRXZlbnRzJyxcbiAgICBtZXRyaWNOYW1lOiAnVHJpZ2dlcmVkUnVsZXMnLFxuICAgIGRpbWVuc2lvbnNNYXA6IHsgUnVsZU5hbWU6IHJ1bGUucnVsZU5hbWUgfSxcbiAgICBzdGF0aXN0aWM6IGNsb3Vkd2F0Y2guU3RhdHMuU1VNLFxuICAgIC4uLnByb3BzLFxuICB9KS5hdHRhY2hUbyhydWxlKTtcbn1cblxuIl19
298
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiam9iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlEQUF5RDtBQUN6RCxpREFBaUQ7QUFDakQsMkNBQTJDO0FBRTNDLHdDQUF3QztBQUd4Qyw0Q0FBNkU7QUFzSDdFOzs7Ozs7R0FNRztBQUNILE1BQXNCLE9BQVEsU0FBUSxHQUFHLENBQUMsUUFBUTtJQUtoRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksT0FBTyxDQUFDLEVBQVUsRUFBRSxVQUFpQyxFQUFFO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDbkIsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDO1lBQ3BCLFVBQVUsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHFCQUFxQixDQUFDO1lBQzVELE1BQU0sRUFBRTtnQkFDTixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVEOzs7Ozs7T0FNRztJQUNPLGFBQWEsQ0FBQyxFQUFVLEVBQUUsUUFBa0IsRUFBRSxVQUFpQyxFQUFFOzs7Ozs7Ozs7O1FBQ3pGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQzVCLFdBQVcsRUFBRSxnQ0FBZ0MsSUFBSSxDQUFDLE9BQU8sVUFBVSxRQUFRLFFBQVE7WUFDbkYsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuQixNQUFNLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQ2xCO1NBQ0YsQ0FBQyxD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Y2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBldmVudHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDb2RlIH0gZnJvbSAnLi4vY29kZSc7XG5pbXBvcnQgeyBNZXRyaWNUeXBlLCBKb2JTdGF0ZSwgV29ya2VyVHlwZSwgR2x1ZVZlcnNpb24gfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSUNvbm5lY3Rpb24gfSBmcm9tICcuLi9jb25uZWN0aW9uJztcbmltcG9ydCB7IElTZWN1cml0eUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9zZWN1cml0eS1jb25maWd1cmF0aW9uJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgbmV3IG9yIGFuIGltcG9ydGVkIEdsdWUgSm9iXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUpvYiBleHRlbmRzIGNkay5JUmVzb3VyY2UsIGlhbS5JR3JhbnRhYmxlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBqb2IuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGpvYk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgam9iLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBqb2JBcm46IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyBhIENsb3VkV2F0Y2ggZXZlbnQgcnVsZSB0cmlnZ2VyZWQgd2hlbiBzb21ldGhpbmcgaGFwcGVucyB3aXRoIHRoaXMgam9iLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXNcbiAgICovXG4gIG9uRXZlbnQoaWQ6IHN0cmluZywgb3B0aW9ucz86IGV2ZW50cy5PbkV2ZW50T3B0aW9ucyk6IGV2ZW50cy5SdWxlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgQ2xvdWRXYXRjaCBldmVudCBydWxlIHRyaWdnZXJlZCB3aGVuIHRoaXMgam9iIG1vdmVzIHRvIHRoZSBTVUNDRUVERUQgc3RhdGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9FdmVudFR5cGVzLmh0bWwjZ2x1ZS1ldmVudC10eXBlc1xuICAgKi9cbiAgb25TdWNjZXNzKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiBldmVudHMuT25FdmVudE9wdGlvbnMpOiBldmVudHMuUnVsZTtcblxuICAvKipcbiAgICogRGVmaW5lcyBhIENsb3VkV2F0Y2ggZXZlbnQgcnVsZSB0cmlnZ2VyZWQgd2hlbiB0aGlzIGpvYiBtb3ZlcyB0byB0aGUgRkFJTEVEIHN0YXRlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9ldmVudHMvRXZlbnRUeXBlcy5odG1sI2dsdWUtZXZlbnQtdHlwZXNcbiAgICovXG4gIG9uRmFpbHVyZShpZDogc3RyaW5nLCBvcHRpb25zPzogZXZlbnRzLk9uRXZlbnRPcHRpb25zKTogZXZlbnRzLlJ1bGU7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBDbG91ZFdhdGNoIGV2ZW50IHJ1bGUgdHJpZ2dlcmVkIHdoZW4gdGhpcyBqb2IgbW92ZXMgdG8gdGhlIFRJTUVPVVQgc3RhdGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9FdmVudFR5cGVzLmh0bWwjZ2x1ZS1ldmVudC10eXBlc1xuICAgKi9cbiAgb25UaW1lb3V0KGlkOiBzdHJpbmcsIG9wdGlvbnM/OiBldmVudHMuT25FdmVudE9wdGlvbnMpOiBldmVudHMuUnVsZTtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBtZXRyaWMuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRyaWNOYW1lIG5hbWUgb2YgdGhlIG1ldHJpYyB0eXBpY2FsbHkgcHJlZml4ZWQgd2l0aCBgZ2x1ZS5kcml2ZXIuYCwgYGdsdWUuPGV4ZWN1dG9ySWQ+LmAgb3IgYGdsdWUuQUxMLmAuXG4gICAqIEBwYXJhbSB0eXBlIHRoZSBtZXRyaWMgdHlwZS5cbiAgICogQHBhcmFtIHByb3BzIG1ldHJpYyBvcHRpb25zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9tb25pdG9yaW5nLWF3c2dsdWUtd2l0aC1jbG91ZHdhdGNoLW1ldHJpY3MuaHRtbFxuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgdHlwZTogTWV0cmljVHlwZSwgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBNZXRyaWMgaW5kaWNhdGluZyBqb2Igc3VjY2Vzcy5cbiAgICovXG4gIG1ldHJpY1N1Y2Nlc3MocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBNZXRyaWMgaW5kaWNhdGluZyBqb2IgZmFpbHVyZS5cbiAgICovXG4gIG1ldHJpY0ZhaWx1cmUocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBNZXRyaWMgaW5kaWNhdGluZyBqb2IgdGltZW91dC5cbiAgICovXG4gIG1ldHJpY1RpbWVvdXQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBlbmFibGluZyBDb250aW51b3VzIExvZ2dpbmcgZm9yIEdsdWUgSm9icy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9tb25pdG9yLWNvbnRpbnVvdXMtbG9nZ2luZy1lbmFibGUuaHRtbFxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWdsdWUtYXJndW1lbnRzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250aW51b3VzTG9nZ2luZ1Byb3BzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBjb250aW51b3VzIGxvZ2dpbmcuXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGEgY3VzdG9tIENsb3VkV2F0Y2ggbG9nIGdyb3VwIG5hbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBsb2cgZ3JvdXAgaXMgY3JlYXRlZCB3aXRoIG5hbWUgYC9hd3MtZ2x1ZS9qb2JzL2xvZ3MtdjIvYC5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBjdXN0b20gQ2xvdWRXYXRjaCBsb2cgc3RyZWFtIHByZWZpeC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgam9iIHJ1biBJRC5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ1N0cmVhbVByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogRmlsdGVyIG91dCBub24tdXNlZnVsIEFwYWNoZSBTcGFyayBkcml2ZXIvZXhlY3V0b3IgYW5kIEFwYWNoZSBIYWRvb3AgWUFSTiBoZWFydGJlYXQgbG9nIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBxdWlldD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFwcGx5IHRoZSBwcm92aWRlZCBjb252ZXJzaW9uIHBhdHRlcm4uXG4gICAqXG4gICAqIFRoaXMgaXMgYSBMb2c0aiBDb252ZXJzaW9uIFBhdHRlcm4gdG8gY3VzdG9taXplIGRyaXZlciBhbmQgZXhlY3V0b3IgbG9ncy5cbiAgICpcbiAgICogQGRlZmF1bHQgYCVke3l5L01NL2RkIEhIOm1tOnNzfSAlcCAlY3sxfTogJW0lbmBcbiAgICovXG4gIHJlYWRvbmx5IGNvbnZlcnNpb25QYXR0ZXJuPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgYmFzZSBjbGFzcyBpcyBuZWVkZWQgdG8gYmUgYWJsZSB0byBpbXBvcnQgZXhpc3RpbmcgSm9icyBpbnRvIGEgQ0RLIGFwcCB0b1xuICogcmVmZXJlbmNlIGFzIHBhcnQgb2YgYSBsYXJnZXIgc3RhY2sgb3IgY29uc3RydWN0LiBKb2JCYXNlIGhhcyB0aGUgc3Vic2V0XG4gKiBvZiBhdHRyaWJ1dGVzIHJlcXVpcmVkIHRvIGlkZW50aWZ5IGFuZCByZWZlcmVuY2UgYW4gZXhpc3RpbmcgR2x1ZSBKb2IsXG4gKiBhcyB3ZWxsIGFzIHNvbWUgQ2xvdWRXYXRjaCBtZXRyaWMgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIGNvbmZpZ3VyZSBhblxuICogZXZlbnQtZHJpdmVuIGZsb3cgdXNpbmcgdGhlIGpvYi5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEpvYkJhc2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJSm9iIHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGpvYkFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgam9iTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBDbG91ZFdhdGNoIEV2ZW50IFJ1bGUgZm9yIHRoaXMgR2x1ZSBKb2Igd2hlbiBpdCdzIGluIGEgZ2l2ZW4gc3RhdGVcbiAgICpcbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gb3B0aW9ucyBldmVudCBvcHRpb25zLiBOb3RlIHRoYXQgc29tZSB2YWx1ZXMgYXJlIG92ZXJyaWRkZW4gaWYgcHJvdmlkZWQsIHRoZXNlIGFyZVxuICAgKiAgLSBldmVudFBhdHRlcm4uc291cmNlID0gWydhd3MuZ2x1ZSddXG4gICAqICAtIGV2ZW50UGF0dGVybi5kZXRhaWxUeXBlID0gWydHbHVlIEpvYiBTdGF0ZSBDaGFuZ2UnLCAnR2x1ZSBKb2IgUnVuIFN0YXR1cyddXG4gICAqICAtIGV2ZW50UGF0dGVybi5kZXRhaWwuam9iTmFtZSA9IFt0aGlzLmpvYk5hbWVdXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9FdmVudFR5cGVzLmh0bWwjZ2x1ZS1ldmVudC10eXBlc1xuICAgKi9cbiAgcHVibGljIG9uRXZlbnQoaWQ6IHN0cmluZywgb3B0aW9uczogZXZlbnRzLk9uRXZlbnRPcHRpb25zID0ge30pOiBldmVudHMuUnVsZSB7XG4gICAgY29uc3QgcnVsZSA9IG5ldyBldmVudHMuUnVsZSh0aGlzLCBpZCwgb3B0aW9ucyk7XG4gICAgcnVsZS5hZGRUYXJnZXQob3B0aW9ucy50YXJnZXQpO1xuICAgIHJ1bGUuYWRkRXZlbnRQYXR0ZXJuKHtcbiAgICAgIHNvdXJjZTogWydhd3MuZ2x1ZSddLFxuICAgICAgZGV0YWlsVHlwZTogWydHbHVlIEpvYiBTdGF0ZSBDaGFuZ2UnLCAnR2x1ZSBKb2IgUnVuIFN0YXR1cyddLFxuICAgICAgZGV0YWlsOiB7XG4gICAgICAgIGpvYk5hbWU6IFt0aGlzLmpvYk5hbWVdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICByZXR1cm4gcnVsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBDbG91ZFdhdGNoIEV2ZW50IFJ1bGUgZm9yIHRoZSB0cmFuc2l0aW9uIGludG8gdGhlIGlucHV0IGpvYlN0YXRlLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgY29uc3RydWN0IGlkLlxuICAgKiBAcGFyYW0gam9iU3RhdGUgdGhlIGpvYiBzdGF0ZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9uYWwgZXZlbnQgb3B0aW9ucy5cbiAgICovXG4gIHByb3RlY3RlZCBvblN0YXRlQ2hhbmdlKGlkOiBzdHJpbmcsIGpvYlN0YXRlOiBKb2JTdGF0ZSwgb3B0aW9uczogZXZlbnRzLk9uRXZlbnRPcHRpb25zID0ge30pOiBldmVudHMuUnVsZSB7XG4gICAgY29uc3QgcnVsZSA9IHRoaXMub25FdmVudChpZCwge1xuICAgICAgZGVzY3JpcHRpb246IGBSdWxlIHRyaWdnZXJlZCB3aGVuIEdsdWUgam9iICR7dGhpcy5qb2JOYW1lfSBpcyBpbiAke2pvYlN0YXRlfSBzdGF0ZWAsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICAgIHJ1bGUuYWRkRXZlbnRQYXR0ZXJuKHtcbiAgICAgIGRldGFpbDoge1xuICAgICAgICBzdGF0ZTogW2pvYlN0YXRlXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBFdmVudCBSdWxlIG1hdGNoaW5nIEpvYlN0YXRlLlNVQ0NFRURFRC5cbiAgICpcbiAgICogQHBhcmFtIGlkIGNvbnN0cnVjdCBpZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9uYWwgZXZlbnQgb3B0aW9ucy4gZGVmYXVsdCBpcyB7fS5cbiAgICovXG4gIHB1YmxpYyBvblN1Y2Nlc3MoaWQ6IHN0cmluZywgb3B0aW9uczogZXZlbnRzLk9uRXZlbnRPcHRpb25zID0ge30pOiBldmVudHMuUnVsZSB7XG4gICAgcmV0dXJuIHRoaXMub25TdGF0ZUNoYW5nZShpZCwgSm9iU3RhdGUuU1VDQ0VFREVELCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBDbG91ZFdhdGNoIEV2ZW50IFJ1bGUgbWF0Y2hpbmcgRkFJTEVEIHN0YXRlLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgY29uc3RydWN0IGlkLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25hbCBldmVudCBvcHRpb25zLiBkZWZhdWx0IGlzIHt9LlxuICAgKi9cbiAgcHVibGljIG9uRmFpbHVyZShpZDogc3RyaW5nLCBvcHRpb25zOiBldmVudHMuT25FdmVudE9wdGlvbnMgPSB7fSk6IGV2ZW50cy5SdWxlIHtcbiAgICByZXR1cm4gdGhpcy5vblN0YXRlQ2hhbmdlKGlkLCBKb2JTdGF0ZS5GQUlMRUQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIENsb3VkV2F0Y2ggRXZlbnQgUnVsZSBtYXRjaGluZyBUSU1FT1VUIHN0YXRlLlxuICAgKlxuICAgKiBAcGFyYW0gaWQgY29uc3RydWN0IGlkLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25hbCBldmVudCBvcHRpb25zLiBkZWZhdWx0IGlzIHt9LlxuICAgKi9cbiAgcHVibGljIG9uVGltZW91dChpZDogc3RyaW5nLCBvcHRpb25zOiBldmVudHMuT25FdmVudE9wdGlvbnMgPSB7fSk6IGV2ZW50cy5SdWxlIHtcbiAgICByZXR1cm4gdGhpcy5vblN0YXRlQ2hhbmdlKGlkLCBKb2JTdGF0ZS5USU1FT1VULCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBDbG91ZFdhdGNoIG1ldHJpYy5cbiAgICpcbiAgICogQHBhcmFtIG1ldHJpY05hbWUgbmFtZSBvZiB0aGUgbWV0cmljIHR5cGljYWxseSBwcmVmaXhlZCB3aXRoIGBnbHVlLmRyaXZlci5gLCBgZ2x1ZS48ZXhlY3V0b3JJZD4uYCBvciBgZ2x1ZS5BTEwuYC5cbiAgICogQHBhcmFtIHR5cGUgdGhlIG1ldHJpYyB0eXBlLlxuICAgKiBAcGFyYW0gcHJvcHMgbWV0cmljIG9wdGlvbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL21vbml0b3JpbmctYXdzZ2x1ZS13aXRoLWNsb3Vkd2F0Y2gtbWV0cmljcy5odG1sXG4gICAqL1xuICBwdWJsaWMgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgdHlwZTogTWV0cmljVHlwZSwgcHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lLFxuICAgICAgbmFtZXNwYWNlOiAnR2x1ZScsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIEpvYk5hbWU6IHRoaXMuam9iTmFtZSxcbiAgICAgICAgSm9iUnVuSWQ6ICdBTEwnLFxuICAgICAgICBUeXBlOiB0eXBlLFxuICAgICAgfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pLmF0dGFjaFRvKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIENsb3VkV2F0Y2ggTWV0cmljIGluZGljYXRpbmcgam9iIHN1Y2Nlc3MuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIGlzIGJhc2VkIG9uIHRoZSBSdWxlIHJldHVybmVkIGJ5IG5vLWFyZ3Mgb25TdWNjZXNzKCkgY2FsbC5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNTdWNjZXNzKHByb3BzPzogY2xvdWR3YXRjaC5NZXRyaWNPcHRpb25zKTogY2xvdWR3YXRjaC5NZXRyaWMge1xuICAgIHJldHVybiBtZXRyaWNSdWxlKHRoaXMubWV0cmljSm9iU3RhdGVSdWxlKCdTdWNjZXNzTWV0cmljUnVsZScsIEpvYlN0YXRlLlNVQ0NFRURFRCksIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBDbG91ZFdhdGNoIE1ldHJpYyBpbmRpY2F0aW5nIGpvYiBmYWlsdXJlLlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyBpcyBiYXNlZCBvbiB0aGUgUnVsZSByZXR1cm5lZCBieSBuby1hcmdzIG9uRmFpbHVyZSgpIGNhbGwuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRmFpbHVyZShwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgICByZXR1cm4gbWV0cmljUnVsZSh0aGlzLm1ldHJpY0pvYlN0YXRlUnVsZSgnRmFpbHVyZU1ldHJpY1J1bGUnLCBKb2JTdGF0ZS5GQUlMRUQpLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgQ2xvdWRXYXRjaCBNZXRyaWMgaW5kaWNhdGluZyBqb2IgdGltZW91dC5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgaXMgYmFzZWQgb24gdGhlIFJ1bGUgcmV0dXJuZWQgYnkgbm8tYXJncyBvblRpbWVvdXQoKSBjYWxsLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1RpbWVvdXQocHJvcHM/OiBjbG91ZHdhdGNoLk1ldHJpY09wdGlvbnMpOiBjbG91ZHdhdGNoLk1ldHJpYyB7XG4gICAgcmV0dXJuIG1ldHJpY1J1bGUodGhpcy5tZXRyaWNKb2JTdGF0ZVJ1bGUoJ1RpbWVvdXRNZXRyaWNSdWxlJywgSm9iU3RhdGUuVElNRU9VVCksIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIG9yIHJldHJpZXZlcyBhIHNpbmdsZXRvbiBldmVudCBydWxlIGZvciB0aGUgaW5wdXQgam9iIHN0YXRlIGZvciB1c2Ugd2l0aCB0aGUgbWV0cmljIEpvYlN0YXRlIG1ldGhvZHMuXG4gICAqXG4gICAqIEBwYXJhbSBpZCBjb25zdHJ1Y3QgaWQuXG4gICAqIEBwYXJhbSBqb2JTdGF0ZSB0aGUgam9iIHN0YXRlLlxuICAgKi9cbiAgcHJpdmF0ZSBtZXRyaWNKb2JTdGF0ZVJ1bGUoaWQ6IHN0cmluZywgam9iU3RhdGU6IEpvYlN0YXRlKTogZXZlbnRzLlJ1bGUge1xuICAgIHJldHVybiB0aGlzLm5vZGUudHJ5RmluZENoaWxkKGlkKSBhcyBldmVudHMuUnVsZSA/PyB0aGlzLm9uU3RhdGVDaGFuZ2UoaWQsIGpvYlN0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBqb2IgYXJuXG4gICAqL1xuICBwcm90ZWN0ZWQgYnVpbGRKb2JBcm4oc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBqb2JOYW1lOiBzdHJpbmcpIDogc3RyaW5nIHtcbiAgICByZXR1cm4gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dsdWUnLFxuICAgICAgcmVzb3VyY2U6ICdqb2InLFxuICAgICAgcmVzb3VyY2VOYW1lOiBqb2JOYW1lLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQSBzdWJzZXQgb2YgSm9iIGF0dHJpYnV0ZXMgYXJlIHJlcXVpcmVkIGZvciBpbXBvcnRpbmcgYW4gZXhpc3Rpbmcgam9iXG4gKiBpbnRvIGEgQ0RLIHByb2plY3QuIFRoaXMgaXMgb25seSB1c2VkIHdoZW4gdXNpbmcgZnJvbUpvYkF0dHJpYnV0ZXNcbiAqIHRvIGlkZW50aWZ5IGFuZCByZWZlcmVuY2UgdGhlIGV4aXN0aW5nIGpvYi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2JBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBqb2IuXG4gICAqL1xuICByZWFkb25seSBqb2JOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IEdsdWUgdG8gcnVuIHRoaXMgam9iLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxufVxuXG4vKipcbiAqIEpvYlByb3BzIHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgbmV3IEdsdWUgSm9icyB1c2luZyB0aGlzIEwyIENvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2JQcm9wcyB7XG4gIC8qKlxuICAgKiBTY3JpcHQgQ29kZSBMb2NhdGlvbiAocmVxdWlyZWQpXG4gICAqIFNjcmlwdCB0byBydW4gd2hlbiB0aGUgR2x1ZSBqb2IgZXhlY3V0ZXMuIENhbiBiZSB1cGxvYWRlZFxuICAgKiBmcm9tIHRoZSBsb2NhbCBkaXJlY3Rvcnkgc3RydWN0dXJlIHVzaW5nIGZyb21Bc3NldFxuICAgKiBvciByZWZlcmVuY2VkIHZpYSBTMyBsb2NhdGlvbiB1c2luZyBmcm9tQnVja2V0XG4gICAqL1xuICByZWFkb25seSBzY3JpcHQ6IENvZGU7XG5cbiAgLyoqXG4gICAqIElBTSBSb2xlIChyZXF1aXJlZClcbiAgICogSUFNIFJvbGUgdG8gdXNlIGZvciBHbHVlIGpvYiBleGVjdXRpb25cbiAgICogTXVzdCBiZSBzcGVjaWZpZWQgYnkgdGhlIGRldmVsb3BlciBiZWNhdXNlIHRoZSBMMiBkb2Vzbid0IGhhdmUgdmlzaWJpbGl0eVxuICAgKiBpbnRvIHRoZSBhY3Rpb25zIHRoZSBzY3JpcHQocykgdGFrZXMgZHVyaW5nIHRoZSBqb2IgZXhlY3V0aW9uXG4gICAqIFRoZSByb2xlIG11c3QgdHJ1c3QgdGhlIEdsdWUgc2VydmljZSBwcmluY2lwYWwgKGdsdWUuYW1hem9uYXdzLmNvbSlcbiAgICogYW5kIGJlIGdyYW50ZWQgc3VmZmljaWVudCBwZXJtaXNzaW9ucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvZ2V0dGluZy1zdGFydGVkLWFjY2Vzcy5odG1sXG4gICAqL1xuICByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIEdsdWUgam9iIChvcHRpb25hbClcbiAgICogRGV2ZWxvcGVyLXNwZWNpZmllZCBuYW1lIG9mIHRoZSBHbHVlIGpvYlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmFtZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgam9iTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRGVzY3JpcHRpb24gKG9wdGlvbmFsKVxuICAgKiBEZXZlbG9wZXItc3BlY2lmaWVkIGRlc2NyaXB0aW9uIG9mIHRoZSBHbHVlIGpvYlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHZhbHVlXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogTnVtYmVyIG9mIFdvcmtlcnMgKG9wdGlvbmFsKVxuICAgKiBOdW1iZXIgb2Ygd29ya2VycyBmb3IgR2x1ZSB0byB1c2UgZHVyaW5nIGpvYiBleGVjdXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgMTBcbiAgICovXG4gIHJlYWRvbmx5IG51bWJlck9mV29ya2Vycz86IG51bWJlcjtcblxuICAvKipcbiAgICogV29ya2VyIFR5cGUgKG9wdGlvbmFsKVxuICAgKiBUeXBlIG9mIFdvcmtlciBmb3IgR2x1ZSB0byB1c2UgZHVyaW5nIGpvYiBleGVjdXRpb25cbiAgICogRW51bSBvcHRpb25zOiBTdGFuZGFyZCwgR18xWCwgR18yWCwgR18wMjVYLiBHXzRYLCBHXzhYLCBaXzJYXG4gICAqXG4gICAqIEBkZWZhdWx0IFdvcmtlclR5cGUuR18xWFxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2VyVHlwZT86IFdvcmtlclR5cGU7XG5cbiAgLyoqXG4gICAqIE1heCBDb25jdXJyZW50IFJ1bnMgKG9wdGlvbmFsKVxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcnVucyB0aGlzIEdsdWUgam9iIGNhbiBjb25jdXJyZW50bHkgcnVuXG4gICAqXG4gICAqIEFuIGVycm9yIGlzIHJldHVybmVkIHdoZW4gdGhpcyB0aHJlc2hvbGQgaXMgcmVhY2hlZC4gVGhlIG1heGltdW0gdmFsdWVcbiAgICogeW91IGNhbiBzcGVjaWZ5IGlzIGNvbnRyb2xsZWQgYnkgYSBzZXJ2aWNlIGxpbWl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBtYXhDb25jdXJyZW50UnVucz86IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmYXVsdCBBcmd1bWVudHMgKG9wdGlvbmFsKVxuICAgKiBUaGUgZGVmYXVsdCBhcmd1bWVudHMgZm9yIGV2ZXJ5IHJ1biBvZiB0aGlzIEdsdWUgam9iLFxuICAgKiBzcGVjaWZpZWQgYXMgbmFtZS12YWx1ZSBwYWlycy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWdsdWUtYXJndW1lbnRzLmh0bWxcbiAgICogZm9yIGEgbGlzdCBvZiByZXNlcnZlZCBwYXJhbWV0ZXJzXG4gICAqIEBkZWZhdWx0IC0gbm8gYXJndW1lbnRzXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0QXJndW1lbnRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ29ubmVjdGlvbnMgKG9wdGlvbmFsKVxuICAgKiBMaXN0IG9mIGNvbm5lY3Rpb25zIHRvIHVzZSBmb3IgdGhpcyBHbHVlIGpvYlxuICAgKiBDb25uZWN0aW9ucyBhcmUgdXNlZCB0byBjb25uZWN0IHRvIG90aGVyIEFXUyBTZXJ2aWNlIG9yIHJlc291cmNlcyB3aXRoaW4gYSBWUEMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdIC0gbm8gY29ubmVjdGlvbnMgYXJlIGFkZGVkIHRvIHRoZSBqb2JcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25zPzogSUNvbm5lY3Rpb25bXTtcblxuICAvKipcbiAgICogTWF4IFJldHJpZXMgKG9wdGlvbmFsKVxuICAgKiBNYXhpbXVtIG51bWJlciBvZiByZXRyeSBhdHRlbXB0cyBHbHVlIHBlcmZvcm1zIGlmIHRoZSBqb2IgZmFpbHNcbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4UmV0cmllcz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGltZW91dCAob3B0aW9uYWwpXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgdGhhdCBhIGpvYiBydW4gY2FuIGNvbnN1bWUgcmVzb3VyY2VzIGJlZm9yZSBpdCBpc1xuICAgKiB0ZXJtaW5hdGVkIGFuZCBlbnRlcnMgVElNRU9VVCBzdGF0dXMuIFNwZWNpZmllZCBpbiBtaW51dGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAyODgwICgyIGRheXMgZm9yIG5vbi1zdHJlYW1pbmcpXG4gICAqXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0PzogY2RrLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBDb25maWd1cmF0aW9uIChvcHRpb25hbClcbiAgICogRGVmaW5lcyB0aGUgZW5jcnlwdGlvbiBvcHRpb25zIGZvciB0aGUgR2x1ZSBqb2JcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzZWN1cml0eSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlDb25maWd1cmF0aW9uPzogSVNlY3VyaXR5Q29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogVGFncyAob3B0aW9uYWwpXG4gICAqIEEgbGlzdCBvZiBrZXk6dmFsdWUgcGFpcnMgb2YgdGFncyB0byBhcHBseSB0byB0aGlzIEdsdWUgam9iIHJlc291cmNlc1xuICAgKlxuICAgKiBAZGVmYXVsdCB7fSAtIG5vIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBHbHVlIFZlcnNpb25cbiAgICogVGhlIHZlcnNpb24gb2YgR2x1ZSB0byB1c2UgdG8gZXhlY3V0ZSB0aGlzIGpvYlxuICAgKlxuICAgKiBAZGVmYXVsdCAzLjAgZm9yIEVUTFxuICAgKi9cbiAgcmVhZG9ubHkgZ2x1ZVZlcnNpb24/OiBHbHVlVmVyc2lvbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgY29sbGVjdGlvbiBvZiBtZXRyaWNzIGZvciBqb2IgcHJvZmlsaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHByb2ZpbGluZyBtZXRyaWNzIGVtaXR0ZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1nbHVlLWFyZ3VtZW50cy5odG1sXG4gICAqL1xuICByZWFkb25seSBlbmFibGVQcm9maWxpbmdNZXRyaWNzPyA6Ym9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyBjb250aW51b3VzIGxvZ2dpbmcgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGNvbnRpbnVvdXMgbG9nZ2luZyBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9tb25pdG9yLWNvbnRpbnVvdXMtbG9nZ2luZy1lbmFibGUuaHRtbFxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZ2x1ZS1hcmd1bWVudHMuaHRtbFxuICAgKiovXG4gIHJlYWRvbmx5IGNvbnRpbnVvdXNMb2dnaW5nPzogQ29udGludW91c0xvZ2dpbmdQcm9wcztcbn1cblxuLyoqXG4gKiBBIEdsdWUgSm9iLlxuICogQHJlc291cmNlIEFXUzo6R2x1ZTo6Sm9iXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBKb2IgZXh0ZW5kcyBKb2JCYXNlIHtcbiAgLyoqXG4gICAqIElkZW50aWZpZXMgYW4gZXhpc3RpbmcgR2x1ZSBKb2IgZnJvbSBhIHN1YnNldCBvZiBhdHRyaWJ1dGVzIHRoYXQgY2FuXG4gICAqIGJlIHJlZmVyZW5jZWQgZnJvbSB3aXRoaW4gYW5vdGhlciBTdGFjayBvciBDb25zdHJ1Y3QuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYClcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBpZC5cbiAgICogQHBhcmFtIGF0dHJzIEF0dHJpYnV0ZXMgZm9yIHRoZSBHbHVlIEpvYiB3ZSB3YW50IHRvIGltcG9ydFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tSm9iQXR0cmlidXRlcyhzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBKb2JBdHRyaWJ1dGVzKTogSUpvYiB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgSm9iQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgam9iTmFtZSA9IGF0dHJzLmpvYk5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgam9iQXJuID0gdGhpcy5idWlsZEpvYkFybihzY29wZSwgYXR0cnMuam9iTmFtZSk7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWwgPSBhdHRycy5yb2xlID8/IG5ldyBpYW0uVW5rbm93blByaW5jaXBhbCh7IHJlc291cmNlOiB0aGlzIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIEdsdWUgYXNzdW1lcyB0byBydW4gdGhpcyBqb2IuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWJzdHJhY3Qgcm9sZTogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBDaGVjayBubyB1c2FnZSBvZiByZXNlcnZlZCBhcmd1bWVudHMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1nbHVlLWFyZ3VtZW50cy5odG1sXG4gICAqL1xuICBwcm90ZWN0ZWQgY2hlY2tOb1Jlc2VydmVkQXJncyhkZWZhdWx0QXJndW1lbnRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICAgIGlmIChkZWZhdWx0QXJndW1lbnRzKSB7XG4gICAgICBjb25zdCByZXNlcnZlZEFyZ3MgPSBuZXcgU2V0KFsnLS1kZWJ1ZycsICctLW1vZGUnLCAnLS1KT0JfTkFNRSddKTtcbiAgICAgIE9iamVjdC5rZXlzKGRlZmF1bHRBcmd1bWVudHMpLmZvckVhY2goKGFyZykgPT4ge1xuICAgICAgICBpZiAocmVzZXJ2ZWRBcmdzLmhhcyhhcmcpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoYFRoZSAke2FyZ30gYXJndW1lbnQgaXMgcmVzZXJ2ZWQgYnkgR2x1ZS4gRG9uJ3Qgc2V0IGl0YCwgdGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZGVmYXVsdEFyZ3VtZW50cztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBDb250aW51b3VzIExvZ2dpbmcgUHJvcGVydGllc1xuICAgKiBAcGFyYW0gcm9sZSBUaGUgSUFNIHJvbGUgdG8gdXNlIGZvciBjb250aW51b3VzIGxvZ2dpbmdcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIGZvciBjb250aW51b3VzIGxvZ2dpbmcgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJucyBTdHJpbmcgY29udGFpbmluZyB0aGUgYXJncyBmb3IgdGhlIGNvbnRpbnVvdXMgbG9nZ2luZyBjb21tYW5kXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0dXBDb250aW51b3VzTG9nZ2luZyhyb2xlOiBpYW0uSVJvbGUsIHByb3BzOiBDb250aW51b3VzTG9nZ2luZ1Byb3BzIHwgdW5kZWZpbmVkKSA6IGFueSB7XG4gICAgLy8gSWYgdGhlIGRldmVsb3BlciBoYXMgZXhwbGljaXRseSBkaXNhYmxlZCBjb250aW51b3VzIGxvZ2dpbmcgcmV0dXJuIG5vIGFyZ3NcbiAgICBpZiAocHJvcHMgJiYgIXByb3BzLmVuYWJsZWQpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICAvLyBFbHNlIHdlIHR1cm4gb24gY29udGludW91cyBsb2dnaW5nIGJ5IGRlZmF1bHQuIERldGVybWluZSB3aGF0IGxvZyBncm91cCB0byB1c2UuXG4gICAgY29uc3QgYXJnczoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7XG4gICAgICAnLS1lbmFibGUtY29udGludW91cy1jbG91ZHdhdGNoLWxvZyc6ICd0cnVlJyxcbiAgICB9O1xuXG4gICAgaWYgKHByb3BzPy5xdWlldCkge1xuICAgICAgYXJnc1snLS1lbmFibGUtY29udGludW91cy1sb2ctZmlsdGVyJ10gPSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGRldmVsb3BlciBwcm92aWRlZCBhIGxvZyBncm91cCwgYWRkIGl0cyBuYW1lIHRvIHRoZSBhcmdzIGFuZCB1cGRhdGUgdGhlIHJvbGUuXG4gICAgaWYgKHByb3BzPy5sb2dHcm91cCkge1xuICAgICAgYXJnc1snLS1jb250aW51b3VzLWxvZy1sb2dHcm91cCddID0gcHJvcHMubG9nR3JvdXAubG9nR3JvdXBOYW1lO1xuICAgICAgcHJvcHMubG9nR3JvdXAuZ3JhbnRXcml0ZShyb2xlKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHM/LmxvZ1N0cmVhbVByZWZpeCkge1xuICAgICAgYXJnc1snLS1jb250aW51b3VzLWxvZy1sb2dTdHJlYW1QcmVmaXgnXSA9IHByb3BzLmxvZ1N0cmVhbVByZWZpeDtcbiAgICB9XG5cbiAgICBpZiAocHJvcHM/LmNvbnZlcnNpb25QYXR0ZXJuKSB7XG4gICAgICBhcmdzWyctLWNvbnRpbnVvdXMtbG9nLWNvbnZlcnNpb25QYXR0ZXJuJ10gPSBwcm9wcy5jb252ZXJzaW9uUGF0dGVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJncztcbiAgfVxuXG4gIHByb3RlY3RlZCBjb2RlUzNPYmplY3RVcmwoY29kZTogQ29kZSkge1xuICAgIGNvbnN0IHMzTG9jYXRpb24gPSBjb2RlLmJpbmQodGhpcywgdGhpcy5yb2xlKS5zM0xvY2F0aW9uO1xuICAgIHJldHVybiBgczM6Ly8ke3MzTG9jYXRpb24uYnVja2V0TmFtZX0vJHtzM0xvY2F0aW9uLm9iamVjdEtleX1gO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgQ2xvdWRXYXRjaCBNZXRyaWMgdGhhdCdzIGJhc2VkIG9uIEdsdWUgSm9iIGV2ZW50c1xuICoge0BzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9FdmVudFR5cGVzLmh0bWwjZ2x1ZS1ldmVudC10eXBlc31cbiAqIFRoZSBtZXRyaWMgaGFzIG5hbWVzcGFjZSA9ICdBV1MvRXZlbnRzJywgbWV0cmljTmFtZSA9ICdUcmlnZ2VyZWRSdWxlcycgYW5kIFJ1bGVOYW1lID0gcnVsZS5ydWxlTmFtZSBkaW1lbnNpb24uXG4gKlxuICogQHBhcmFtIHJ1bGUgZm9yIHVzZSBpbiBzZXR0aW5nIFJ1bGVOYW1lIGRpbWVuc2lvbiB2YWx1ZVxuICogQHBhcmFtIHByb3BzIG1ldHJpYyBwcm9wZXJ0aWVzXG4gKi9cbmZ1bmN0aW9uIG1ldHJpY1J1bGUocnVsZTogZXZlbnRzLklSdWxlLCBwcm9wcz86IGNsb3Vkd2F0Y2guTWV0cmljT3B0aW9ucyk6IGNsb3Vkd2F0Y2guTWV0cmljIHtcbiAgcmV0dXJuIG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgbmFtZXNwYWNlOiAnQVdTL0V2ZW50cycsXG4gICAgbWV0cmljTmFtZTogJ1RyaWdnZXJlZFJ1bGVzJyxcbiAgICBkaW1lbnNpb25zTWFwOiB7IFJ1bGVOYW1lOiBydWxlLnJ1bGVOYW1lIH0sXG4gICAgc3RhdGlzdGljOiBjbG91ZHdhdGNoLlN0YXRzLlNVTSxcbiAgICAuLi5wcm9wcyxcbiAgfSkuYXR0YWNoVG8ocnVsZSk7XG59XG5cbiJdfQ==
@@ -88,7 +88,7 @@ let PySparkEtlJob = class PySparkEtlJob extends spark_job_1.SparkJob {
88
88
  };
89
89
  exports.PySparkEtlJob = PySparkEtlJob;
90
90
  _a = JSII_RTTI_SYMBOL_1;
91
- PySparkEtlJob[_a] = { fqn: "@aws-cdk/aws-glue-alpha.PySparkEtlJob", version: "2.207.0-alpha.0" };
91
+ PySparkEtlJob[_a] = { fqn: "@aws-cdk/aws-glue-alpha.PySparkEtlJob", version: "2.209.0-alpha.0" };
92
92
  /** Uniquely identifies this class. */
93
93
  PySparkEtlJob.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.PySparkEtlJob';
94
94
  exports.PySparkEtlJob = PySparkEtlJob = __decorate([
@@ -90,7 +90,7 @@ let PySparkFlexEtlJob = class PySparkFlexEtlJob extends spark_job_1.SparkJob {
90
90
  };
91
91
  exports.PySparkFlexEtlJob = PySparkFlexEtlJob;
92
92
  _a = JSII_RTTI_SYMBOL_1;
93
- PySparkFlexEtlJob[_a] = { fqn: "@aws-cdk/aws-glue-alpha.PySparkFlexEtlJob", version: "2.207.0-alpha.0" };
93
+ PySparkFlexEtlJob[_a] = { fqn: "@aws-cdk/aws-glue-alpha.PySparkFlexEtlJob", version: "2.209.0-alpha.0" };
94
94
  /** Uniquely identifies this class. */
95
95
  PySparkFlexEtlJob.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.PySparkFlexEtlJob';
96
96
  exports.PySparkFlexEtlJob = PySparkFlexEtlJob = __decorate([
@@ -88,7 +88,7 @@ let PySparkStreamingJob = class PySparkStreamingJob extends spark_job_1.SparkJob
88
88
  };
89
89
  exports.PySparkStreamingJob = PySparkStreamingJob;
90
90
  _a = JSII_RTTI_SYMBOL_1;
91
- PySparkStreamingJob[_a] = { fqn: "@aws-cdk/aws-glue-alpha.PySparkStreamingJob", version: "2.207.0-alpha.0" };
91
+ PySparkStreamingJob[_a] = { fqn: "@aws-cdk/aws-glue-alpha.PySparkStreamingJob", version: "2.209.0-alpha.0" };
92
92
  /** Uniquely identifies this class. */
93
93
  PySparkStreamingJob.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.PySparkStreamingJob';
94
94
  exports.PySparkStreamingJob = PySparkStreamingJob = __decorate([
@@ -98,7 +98,7 @@ let PythonShellJob = class PythonShellJob extends job_1.Job {
98
98
  };
99
99
  exports.PythonShellJob = PythonShellJob;
100
100
  _a = JSII_RTTI_SYMBOL_1;
101
- PythonShellJob[_a] = { fqn: "@aws-cdk/aws-glue-alpha.PythonShellJob", version: "2.207.0-alpha.0" };
101
+ PythonShellJob[_a] = { fqn: "@aws-cdk/aws-glue-alpha.PythonShellJob", version: "2.209.0-alpha.0" };
102
102
  /** Uniquely identifies this class. */
103
103
  PythonShellJob.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.PythonShellJob';
104
104
  exports.PythonShellJob = PythonShellJob = __decorate([
@@ -15,6 +15,7 @@ const job_1 = require("./job");
15
15
  const constants_1 = require("../constants");
16
16
  const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
17
17
  const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
18
+ const core_1 = require("aws-cdk-lib/core");
18
19
  /**
19
20
  * Ray Jobs class
20
21
  *
@@ -58,7 +59,7 @@ let RayJob = class RayJob extends job_1.Job {
58
59
  ...observabilityMetricsArgs,
59
60
  };
60
61
  if (props.workerType && props.workerType !== constants_1.WorkerType.Z_2X) {
61
- throw new Error('Ray jobs only support Z.2X worker type');
62
+ throw new core_1.ValidationError('Ray jobs only support Z.2X worker type', this);
62
63
  }
63
64
  const jobResource = new aws_glue_1.CfnJob(this, 'Resource', {
64
65
  name: props.jobName,
@@ -88,10 +89,10 @@ let RayJob = class RayJob extends job_1.Job {
88
89
  };
89
90
  exports.RayJob = RayJob;
90
91
  _a = JSII_RTTI_SYMBOL_1;
91
- RayJob[_a] = { fqn: "@aws-cdk/aws-glue-alpha.RayJob", version: "2.207.0-alpha.0" };
92
+ RayJob[_a] = { fqn: "@aws-cdk/aws-glue-alpha.RayJob", version: "2.209.0-alpha.0" };
92
93
  /** Uniquely identifies this class. */
93
94
  RayJob.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.RayJob';
94
95
  exports.RayJob = RayJob = __decorate([
95
96
  prop_injectable_1.propertyInjectable
96
97
  ], RayJob);
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF5LWpvYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJheS1qb2IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsbURBQThDO0FBRTlDLCtCQUFzQztBQUV0Qyw0Q0FBeUU7QUFDekUsOEVBQThFO0FBQzlFLDBFQUEwRTtBQTBCMUU7Ozs7Ozs7R0FPRztBQUVJLElBQU0sTUFBTSxHQUFaLE1BQU0sTUFBTyxTQUFRLFNBQUc7SUFRN0I7O09BRUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtCO1FBQzFELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPO1NBQzVCLENBQUMsQ0FBQzs7Ozs7OytDQWRNLE1BQU07Ozs7UUFlZixtQ0FBbUM7UUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUVuQyw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUVoQyxpRkFBaUY7UUFDakYsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5RixNQUFNLG9CQUFvQixHQUFHLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDeEQsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRTlFLHlEQUF5RDtRQUN6RCxNQUFNLGdCQUFnQixHQUFHO1lBQ3ZCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztZQUNuRCxHQUFHLHFCQUFxQjtZQUN4QixHQUFHLG9CQUFvQjtZQUN2QixHQUFHLHdCQUF3QjtTQUM1QixDQUFDO1FBRUYsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssc0JBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksaUJBQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQy9DLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTztZQUNuQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLG1CQUFPLENBQUMsR0FBRztnQkFDakIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDbEQsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFPLENBQUMsWUFBWTthQUM5RDtZQUNELFdBQVcsRUFBRSx1QkFBVyxDQUFDLElBQUk7WUFDN0IsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLHNCQUFVLENBQUMsSUFBSTtZQUNqRSxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQSxDQUFDLENBQUMsQ0FBQztZQUNqRSxVQUFVLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVO1lBQzdELG9CQUFvQixFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3JGLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUN2RyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUU7WUFDbkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUM5SCxxQkFBcUIsRUFBRSxLQUFLLENBQUMscUJBQXFCLEVBQUUseUJBQXlCO1lBQzdFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixnQkFBZ0I7U0FDakIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDO0tBQzdCOztBQWxFVSx3QkFBTTs7O0FBQ2pCLHNDQUFzQztBQUNmLDRCQUFxQixHQUFXLGdDQUFnQyxBQUEzQyxDQUE0QztpQkFGN0UsTUFBTTtJQURsQixvQ0FBa0I7R0FDTixNQUFNLENBbUVsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbkpvYiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEpvYiwgSm9iUHJvcHMgfSBmcm9tICcuL2pvYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEpvYlR5cGUsIEdsdWVWZXJzaW9uLCBXb3JrZXJUeXBlLCBSdW50aW1lIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIFJheSBHbHVlIGpvYlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJheUpvYlByb3BzIGV4dGVuZHMgSm9iUHJvcHMge1xuICAvKipcbiAgICogU2V0cyB0aGUgUmF5IHJ1bnRpbWUgZW52aXJvbm1lbnQgdmVyc2lvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFJ1bnRpbWUgdmVyc2lvbiB3aWxsIGRlZmF1bHQgdG8gUmF5Mi40XG4gICAqL1xuICByZWFkb25seSBydW50aW1lPzogUnVudGltZTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgam9iIHJ1biBxdWV1aW5nIGlzIGVuYWJsZWQgZm9yIHRoZSBqb2IgcnVucyBmb3IgdGhpcyBqb2IuXG4gICAqIEEgdmFsdWUgb2YgdHJ1ZSBtZWFucyBqb2IgcnVuIHF1ZXVpbmcgaXMgZW5hYmxlZCBmb3IgdGhlIGpvYiBydW5zLlxuICAgKiBJZiBmYWxzZSBvciBub3QgcG9wdWxhdGVkLCB0aGUgam9iIHJ1bnMgd2lsbCBub3QgYmUgY29uc2lkZXJlZCBmb3IgcXVldWVpbmcuXG4gICAqIElmIHRoaXMgZmllbGQgZG9lcyBub3QgbWF0Y2ggdGhlIHZhbHVlIHNldCBpbiB0aGUgam9iIHJ1biwgdGhlbiB0aGUgdmFsdWUgZnJvbVxuICAgKiB0aGUgam9iIHJ1biBmaWVsZCB3aWxsIGJlIHVzZWQuIFRoaXMgcHJvcGVydHkgbXVzdCBiZSBzZXQgdG8gZmFsc2UgZm9yIGZsZXggam9icy5cbiAgICogSWYgdGhpcyBwcm9wZXJ0eSBpcyBlbmFibGVkLCBtYXhSZXRyaWVzIG11c3QgYmUgc2V0IHRvIHplcm8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gam9iIHJ1biBxdWV1aW5nXG4gICAqL1xuICByZWFkb25seSBqb2JSdW5RdWV1aW5nRW5hYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmF5IEpvYnMgY2xhc3NcbiAqXG4gKiBHbHVlIFJheSBqb2JzIHVzZSB3b3JrZXIgdHlwZSBaLjJYIGFuZCBHbHVlIHZlcnNpb24gNC4wLlxuICogVGhlc2UgYXJlIG5vdCBvdmVycmlkZWFibGUgc2luY2UgdGhlc2UgYXJlIHRoZSBvbmx5IGNvbmZpZ3VyYXRpb24gdGhhdFxuICogR2x1ZSBSYXkgam9icyBjdXJyZW50bHkgc3VwcG9ydC4gVGhlIHJ1bnRpbWUgZGVmYXVsdHMgdG8gUmF5Mi40IGFuZCBtaW5cbiAqIHdvcmtlcnMgZGVmYXVsdHMgdG8gMy5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFJheUpvYiBleHRlbmRzIEpvYiB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWdsdWUtYWxwaGEuUmF5Sm9iJztcbiAgcHVibGljIHJlYWRvbmx5IGpvYkFybjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgam9iTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogaWFtLklSb2xlO1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBSYXlKb2IgY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSYXlKb2JQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5qb2JOYW1lLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5qb2JOYW1lID0gcHJvcHMuam9iTmFtZSA/PyAnJztcblxuICAgIC8vIFNldCB1cCByb2xlIGFuZCBwZXJtaXNzaW9ucyBmb3IgcHJpbmNpcGFsXG4gICAgdGhpcy5yb2xlID0gcHJvcHMucm9sZTtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5yb2xlO1xuXG4gICAgLy8gRW5hYmxlIENsb3VkV2F0Y2ggbWV0cmljcyBhbmQgY29udGludW91cyBsb2dnaW5nIGJ5IGRlZmF1bHQgYXMgYSBiZXN0IHByYWN0aWNlXG4gICAgY29uc3QgY29udGludW91c0xvZ2dpbmdBcmdzID0gdGhpcy5zZXR1cENvbnRpbnVvdXNMb2dnaW5nKHRoaXMucm9sZSwgcHJvcHMuY29udGludW91c0xvZ2dpbmcpO1xuICAgIGNvbnN0IHByb2ZpbGluZ01ldHJpY3NBcmdzID0geyAnLS1lbmFibGUtbWV0cmljcyc6ICcnIH07XG4gICAgY29uc3Qgb2JzZXJ2YWJpbGl0eU1ldHJpY3NBcmdzID0geyAnLS1lbmFibGUtb2JzZXJ2YWJpbGl0eS1tZXRyaWNzJzogJ3RydWUnIH07XG5cbiAgICAvLyBDb21iaW5lIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgaW50byBhIHNpbmdsZSBsaW5lIGl0ZW1cbiAgICBjb25zdCBkZWZhdWx0QXJndW1lbnRzID0ge1xuICAgICAgLi4udGhpcy5jaGVja05vUmVzZXJ2ZWRBcmdzKHByb3BzLmRlZmF1bHRBcmd1bWVudHMpLFxuICAgICAgLi4uY29udGludW91c0xvZ2dpbmdBcmdzLFxuICAgICAgLi4ucHJvZmlsaW5nTWV0cmljc0FyZ3MsXG4gICAgICAuLi5vYnNlcnZhYmlsaXR5TWV0cmljc0FyZ3MsXG4gICAgfTtcblxuICAgIGlmIChwcm9wcy53b3JrZXJUeXBlICYmIHByb3BzLndvcmtlclR5cGUgIT09IFdvcmtlclR5cGUuWl8yWCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSYXkgam9icyBvbmx5IHN1cHBvcnQgWi4yWCB3b3JrZXIgdHlwZScpO1xuICAgIH1cblxuICAgIGNvbnN0IGpvYlJlc291cmNlID0gbmV3IENmbkpvYih0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiBwcm9wcy5qb2JOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgcm9sZTogdGhpcy5yb2xlLnJvbGVBcm4sXG4gICAgICBjb21tYW5kOiB7XG4gICAgICAgIG5hbWU6IEpvYlR5cGUuUkFZLFxuICAgICAgICBzY3JpcHRMb2NhdGlvbjogdGhpcy5jb2RlUzNPYmplY3RVcmwocHJvcHMuc2NyaXB0KSxcbiAgICAgICAgcnVudGltZTogcHJvcHMucnVudGltZSA/IHByb3BzLnJ1bnRpbWUgOiBSdW50aW1lLlJBWV9UV09fRk9VUixcbiAgICAgIH0sXG4gICAgICBnbHVlVmVyc2lvbjogR2x1ZVZlcnNpb24uVjRfMCxcbiAgICAgIHdvcmtlclR5cGU6IHByb3BzLndvcmtlclR5cGUgPyBwcm9wcy53b3JrZXJUeXBlIDogV29ya2VyVHlwZS5aXzJYLFxuICAgICAgbnVtYmVyT2ZXb3JrZXJzOiBwcm9wcy5udW1iZXJPZldvcmtlcnMgPyBwcm9wcy5udW1iZXJPZldvcmtlcnM6IDMsXG4gICAgICBtYXhSZXRyaWVzOiBwcm9wcy5qb2JSdW5RdWV1aW5nRW5hYmxlZCA/IDAgOiBwcm9wcy5tYXhSZXRyaWVzLFxuICAgICAgam9iUnVuUXVldWluZ0VuYWJsZWQ6IHByb3BzLmpvYlJ1blF1ZXVpbmdFbmFibGVkID8gcHJvcHMuam9iUnVuUXVldWluZ0VuYWJsZWQgOiBmYWxzZSxcbiAgICAgIGV4ZWN1dGlvblByb3BlcnR5OiBwcm9wcy5tYXhDb25jdXJyZW50UnVucyA/IHsgbWF4Q29uY3VycmVudFJ1bnM6IHByb3BzLm1heENvbmN1cnJlbnRSdW5zIH0gOiB1bmRlZmluZWQsXG4gICAgICB0aW1lb3V0OiBwcm9wcy50aW1lb3V0Py50b01pbnV0ZXMoKSxcbiAgICAgIGNvbm5lY3Rpb25zOiBwcm9wcy5jb25uZWN0aW9ucyA/IHsgY29ubmVjdGlvbnM6IHByb3BzLmNvbm5lY3Rpb25zLm1hcCgoY29ubmVjdGlvbikgPT4gY29ubmVjdGlvbi5jb25uZWN0aW9uTmFtZSkgfSA6IHVuZGVmaW5lZCxcbiAgICAgIHNlY3VyaXR5Q29uZmlndXJhdGlvbjogcHJvcHMuc2VjdXJpdHlDb25maWd1cmF0aW9uPy5zZWN1cml0eUNvbmZpZ3VyYXRpb25OYW1lLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgIGRlZmF1bHRBcmd1bWVudHMsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNvdXJjZU5hbWUgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZShqb2JSZXNvdXJjZS5yZWYpO1xuICAgIHRoaXMuam9iQXJuID0gdGhpcy5idWlsZEpvYkFybih0aGlzLCByZXNvdXJjZU5hbWUpO1xuICAgIHRoaXMuam9iTmFtZSA9IHJlc291cmNlTmFtZTtcbiAgfVxufVxuIl19
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF5LWpvYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJheS1qb2IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsbURBQThDO0FBRTlDLCtCQUFzQztBQUV0Qyw0Q0FBeUU7QUFDekUsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUMxRSwyQ0FBbUQ7QUEwQm5EOzs7Ozs7O0dBT0c7QUFFSSxJQUFNLE1BQU0sR0FBWixNQUFNLE1BQU8sU0FBUSxTQUFHO0lBUTdCOztPQUVHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFrQjtRQUMxRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxLQUFLLENBQUMsT0FBTztTQUM1QixDQUFDLENBQUM7Ozs7OzsrQ0FkTSxNQUFNOzs7O1FBZWYsbUNBQW1DO1FBQ25DLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFFbkMsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFaEMsaUZBQWlGO1FBQ2pGLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUYsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3hELE1BQU0sd0JBQXdCLEdBQUcsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUU5RSx5REFBeUQ7UUFDekQsTUFBTSxnQkFBZ0IsR0FBRztZQUN2QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7WUFDbkQsR0FBRyxxQkFBcUI7WUFDeEIsR0FBRyxvQkFBb0I7WUFDdkIsR0FBRyx3QkFBd0I7U0FDNUIsQ0FBQztRQUVGLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLHNCQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLHNCQUFlLENBQUMsd0NBQXdDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLElBQUksaUJBQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQy9DLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTztZQUNuQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLG1CQUFPLENBQUMsR0FBRztnQkFDakIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDbEQsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFPLENBQUMsWUFBWTthQUM5RDtZQUNELFdBQVcsRUFBRSx1QkFBVyxDQUFDLElBQUk7WUFDN0IsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLHNCQUFVLENBQUMsSUFBSTtZQUNqRSxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQSxDQUFDLENBQUMsQ0FBQztZQUNqRSxVQUFVLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVO1lBQzdELG9CQUFvQixFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ3JGLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUN2RyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUU7WUFDbkMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUM5SCxxQkFBcUIsRUFBRSxLQUFLLENBQUMscUJBQXFCLEVBQUUseUJBQXlCO1lBQzdFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixnQkFBZ0I7U0FDakIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDO0tBQzdCOztBQWxFVSx3QkFBTTs7O0FBQ2pCLHNDQUFzQztBQUNmLDRCQUFxQixHQUFXLGdDQUFnQyxBQUEzQyxDQUE0QztpQkFGN0UsTUFBTTtJQURsQixvQ0FBa0I7R0FDTixNQUFNLENBbUVsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbkpvYiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEpvYiwgSm9iUHJvcHMgfSBmcm9tICcuL2pvYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEpvYlR5cGUsIEdsdWVWZXJzaW9uLCBXb3JrZXJUeXBlLCBSdW50aW1lIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgUmF5IEdsdWUgam9iXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmF5Sm9iUHJvcHMgZXh0ZW5kcyBKb2JQcm9wcyB7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBSYXkgcnVudGltZSBlbnZpcm9ubWVudCB2ZXJzaW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUnVudGltZSB2ZXJzaW9uIHdpbGwgZGVmYXVsdCB0byBSYXkyLjRcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU/OiBSdW50aW1lO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hldGhlciBqb2IgcnVuIHF1ZXVpbmcgaXMgZW5hYmxlZCBmb3IgdGhlIGpvYiBydW5zIGZvciB0aGlzIGpvYi5cbiAgICogQSB2YWx1ZSBvZiB0cnVlIG1lYW5zIGpvYiBydW4gcXVldWluZyBpcyBlbmFibGVkIGZvciB0aGUgam9iIHJ1bnMuXG4gICAqIElmIGZhbHNlIG9yIG5vdCBwb3B1bGF0ZWQsIHRoZSBqb2IgcnVucyB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIGZvciBxdWV1ZWluZy5cbiAgICogSWYgdGhpcyBmaWVsZCBkb2VzIG5vdCBtYXRjaCB0aGUgdmFsdWUgc2V0IGluIHRoZSBqb2IgcnVuLCB0aGVuIHRoZSB2YWx1ZSBmcm9tXG4gICAqIHRoZSBqb2IgcnVuIGZpZWxkIHdpbGwgYmUgdXNlZC4gVGhpcyBwcm9wZXJ0eSBtdXN0IGJlIHNldCB0byBmYWxzZSBmb3IgZmxleCBqb2JzLlxuICAgKiBJZiB0aGlzIHByb3BlcnR5IGlzIGVuYWJsZWQsIG1heFJldHJpZXMgbXVzdCBiZSBzZXQgdG8gemVyby5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBqb2IgcnVuIHF1ZXVpbmdcbiAgICovXG4gIHJlYWRvbmx5IGpvYlJ1blF1ZXVpbmdFbmFibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSYXkgSm9icyBjbGFzc1xuICpcbiAqIEdsdWUgUmF5IGpvYnMgdXNlIHdvcmtlciB0eXBlIFouMlggYW5kIEdsdWUgdmVyc2lvbiA0LjAuXG4gKiBUaGVzZSBhcmUgbm90IG92ZXJyaWRlYWJsZSBzaW5jZSB0aGVzZSBhcmUgdGhlIG9ubHkgY29uZmlndXJhdGlvbiB0aGF0XG4gKiBHbHVlIFJheSBqb2JzIGN1cnJlbnRseSBzdXBwb3J0LiBUaGUgcnVudGltZSBkZWZhdWx0cyB0byBSYXkyLjQgYW5kIG1pblxuICogd29ya2VycyBkZWZhdWx0cyB0byAzLlxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgUmF5Sm9iIGV4dGVuZHMgSm9iIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZ2x1ZS1hbHBoYS5SYXlKb2InO1xuICBwdWJsaWMgcmVhZG9ubHkgam9iQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBqb2JOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgLyoqXG4gICAqIFJheUpvYiBjb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJheUpvYlByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLmpvYk5hbWUsXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aGlzLmpvYk5hbWUgPSBwcm9wcy5qb2JOYW1lID8/ICcnO1xuXG4gICAgLy8gU2V0IHVwIHJvbGUgYW5kIHBlcm1pc3Npb25zIGZvciBwcmluY2lwYWxcbiAgICB0aGlzLnJvbGUgPSBwcm9wcy5yb2xlO1xuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwgPSB0aGlzLnJvbGU7XG5cbiAgICAvLyBFbmFibGUgQ2xvdWRXYXRjaCBtZXRyaWNzIGFuZCBjb250aW51b3VzIGxvZ2dpbmcgYnkgZGVmYXVsdCBhcyBhIGJlc3QgcHJhY3RpY2VcbiAgICBjb25zdCBjb250aW51b3VzTG9nZ2luZ0FyZ3MgPSB0aGlzLnNldHVwQ29udGludW91c0xvZ2dpbmcodGhpcy5yb2xlLCBwcm9wcy5jb250aW51b3VzTG9nZ2luZyk7XG4gICAgY29uc3QgcHJvZmlsaW5nTWV0cmljc0FyZ3MgPSB7ICctLWVuYWJsZS1tZXRyaWNzJzogJycgfTtcbiAgICBjb25zdCBvYnNlcnZhYmlsaXR5TWV0cmljc0FyZ3MgPSB7ICctLWVuYWJsZS1vYnNlcnZhYmlsaXR5LW1ldHJpY3MnOiAndHJ1ZScgfTtcblxuICAgIC8vIENvbWJpbmUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyBpbnRvIGEgc2luZ2xlIGxpbmUgaXRlbVxuICAgIGNvbnN0IGRlZmF1bHRBcmd1bWVudHMgPSB7XG4gICAgICAuLi50aGlzLmNoZWNrTm9SZXNlcnZlZEFyZ3MocHJvcHMuZGVmYXVsdEFyZ3VtZW50cyksXG4gICAgICAuLi5jb250aW51b3VzTG9nZ2luZ0FyZ3MsXG4gICAgICAuLi5wcm9maWxpbmdNZXRyaWNzQXJncyxcbiAgICAgIC4uLm9ic2VydmFiaWxpdHlNZXRyaWNzQXJncyxcbiAgICB9O1xuXG4gICAgaWYgKHByb3BzLndvcmtlclR5cGUgJiYgcHJvcHMud29ya2VyVHlwZSAhPT0gV29ya2VyVHlwZS5aXzJYKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdSYXkgam9icyBvbmx5IHN1cHBvcnQgWi4yWCB3b3JrZXIgdHlwZScsIHRoaXMpO1xuICAgIH1cblxuICAgIGNvbnN0IGpvYlJlc291cmNlID0gbmV3IENmbkpvYih0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiBwcm9wcy5qb2JOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgcm9sZTogdGhpcy5yb2xlLnJvbGVBcm4sXG4gICAgICBjb21tYW5kOiB7XG4gICAgICAgIG5hbWU6IEpvYlR5cGUuUkFZLFxuICAgICAgICBzY3JpcHRMb2NhdGlvbjogdGhpcy5jb2RlUzNPYmplY3RVcmwocHJvcHMuc2NyaXB0KSxcbiAgICAgICAgcnVudGltZTogcHJvcHMucnVudGltZSA/IHByb3BzLnJ1bnRpbWUgOiBSdW50aW1lLlJBWV9UV09fRk9VUixcbiAgICAgIH0sXG4gICAgICBnbHVlVmVyc2lvbjogR2x1ZVZlcnNpb24uVjRfMCxcbiAgICAgIHdvcmtlclR5cGU6IHByb3BzLndvcmtlclR5cGUgPyBwcm9wcy53b3JrZXJUeXBlIDogV29ya2VyVHlwZS5aXzJYLFxuICAgICAgbnVtYmVyT2ZXb3JrZXJzOiBwcm9wcy5udW1iZXJPZldvcmtlcnMgPyBwcm9wcy5udW1iZXJPZldvcmtlcnM6IDMsXG4gICAgICBtYXhSZXRyaWVzOiBwcm9wcy5qb2JSdW5RdWV1aW5nRW5hYmxlZCA/IDAgOiBwcm9wcy5tYXhSZXRyaWVzLFxuICAgICAgam9iUnVuUXVldWluZ0VuYWJsZWQ6IHByb3BzLmpvYlJ1blF1ZXVpbmdFbmFibGVkID8gcHJvcHMuam9iUnVuUXVldWluZ0VuYWJsZWQgOiBmYWxzZSxcbiAgICAgIGV4ZWN1dGlvblByb3BlcnR5OiBwcm9wcy5tYXhDb25jdXJyZW50UnVucyA/IHsgbWF4Q29uY3VycmVudFJ1bnM6IHByb3BzLm1heENvbmN1cnJlbnRSdW5zIH0gOiB1bmRlZmluZWQsXG4gICAgICB0aW1lb3V0OiBwcm9wcy50aW1lb3V0Py50b01pbnV0ZXMoKSxcbiAgICAgIGNvbm5lY3Rpb25zOiBwcm9wcy5jb25uZWN0aW9ucyA/IHsgY29ubmVjdGlvbnM6IHByb3BzLmNvbm5lY3Rpb25zLm1hcCgoY29ubmVjdGlvbikgPT4gY29ubmVjdGlvbi5jb25uZWN0aW9uTmFtZSkgfSA6IHVuZGVmaW5lZCxcbiAgICAgIHNlY3VyaXR5Q29uZmlndXJhdGlvbjogcHJvcHMuc2VjdXJpdHlDb25maWd1cmF0aW9uPy5zZWN1cml0eUNvbmZpZ3VyYXRpb25OYW1lLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgIGRlZmF1bHRBcmd1bWVudHMsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNvdXJjZU5hbWUgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZShqb2JSZXNvdXJjZS5yZWYpO1xuICAgIHRoaXMuam9iQXJuID0gdGhpcy5idWlsZEpvYkFybih0aGlzLCByZXNvdXJjZU5hbWUpO1xuICAgIHRoaXMuam9iTmFtZSA9IHJlc291cmNlTmFtZTtcbiAgfVxufVxuIl19