@aws-cdk/aws-s3tables-alpha 2.246.0-alpha.0 → 2.247.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.
- package/.jsii +166 -108
- package/lib/namespace.js +4 -3
- package/lib/table-bucket-policy.js +1 -1
- package/lib/table-bucket.js +6 -6
- package/lib/table-policy.js +1 -1
- package/lib/table.js +9 -8
- package/lib/util.js +4 -3
- package/package.json +6 -6
package/lib/namespace.js
CHANGED
|
@@ -40,6 +40,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
40
40
|
const os_1 = require("os");
|
|
41
41
|
const aws_s3tables_1 = require("aws-cdk-lib/aws-s3tables");
|
|
42
42
|
const core_1 = require("aws-cdk-lib/core");
|
|
43
|
+
const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
|
|
43
44
|
const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
|
|
44
45
|
const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
|
|
45
46
|
/**
|
|
@@ -61,7 +62,7 @@ let Namespace = (() => {
|
|
|
61
62
|
Namespace = _classThis = _classDescriptor.value;
|
|
62
63
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
63
64
|
}
|
|
64
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Namespace", version: "2.
|
|
65
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.Namespace", version: "2.247.0-alpha.0" };
|
|
65
66
|
/** Uniquely identifies this class. */
|
|
66
67
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.Namespace';
|
|
67
68
|
/**
|
|
@@ -117,7 +118,7 @@ let Namespace = (() => {
|
|
|
117
118
|
errors.push('Namespace name must not start with reserved prefix \'aws\'');
|
|
118
119
|
}
|
|
119
120
|
if (errors.length > 0) {
|
|
120
|
-
throw new core_1.UnscopedValidationError(
|
|
121
|
+
throw new core_1.UnscopedValidationError((0, helpers_internal_1.lit) `InvalidNamespaceName`, `Invalid S3 Tables namespace name (value: ${namespaceName})${os_1.EOL}${errors.join(os_1.EOL)}`);
|
|
121
122
|
}
|
|
122
123
|
}
|
|
123
124
|
/**
|
|
@@ -163,4 +164,4 @@ let Namespace = (() => {
|
|
|
163
164
|
return Namespace = _classThis;
|
|
164
165
|
})();
|
|
165
166
|
exports.Namespace = Namespace;
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUF5QjtBQUN6QiwyREFBd0Q7QUFFeEQsMkNBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUF1RDFFOzs7O0dBSUc7SUFFVSxTQUFTOzRCQURyQixvQ0FBa0I7Ozs7c0JBQ1ksZUFBUTt5QkFBaEIsU0FBUSxXQUFROzs7O1lBQXZDLDZLQTRHQzs7Ozs7UUEzR0Msc0NBQXNDO1FBQy9CLE1BQU0sQ0FBVSxxQkFBcUIsR0FBVyx1Q0FBdUMsQ0FBQztRQUUvRjs7V0FFRztRQUNJLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjs7Ozs7Ozs7OztZQUM1RixNQUFNLE1BQU8sU0FBUSxlQUFRO2dCQUNYLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO2dCQUNwQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQzthQUNqRDtZQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzlCO1FBQ0Q7Ozs7V0FJRztRQUNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxhQUFxQjtZQUN2RCxJQUFJLGFBQWEsSUFBSSxTQUFTLElBQUksWUFBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUNwRSwyRUFBMkU7Z0JBQzNFLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1lBRTVCLG9CQUFvQjtZQUNwQixJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQzNELE1BQU0sQ0FBQyxJQUFJLENBQ1QsbUVBQW1FLENBQ3BFLENBQUM7WUFDSixDQUFDO1lBRUQsMkJBQTJCO1lBQzNCLE1BQU0sbUJBQW1CLEdBQUcsWUFBWSxDQUFDO1lBQ3pDLE1BQU0sdUJBQXVCLEdBQUcsVUFBVSxDQUFDO1lBRTNDLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2xFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxDQUFDLElBQUksQ0FDVCxxRkFBcUY7b0JBQ25GLGFBQWEsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQ3pDLENBQUM7WUFDSixDQUFDO1lBRUQsNEJBQTRCO1lBQzVCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzNELE1BQU0sQ0FBQyxJQUFJLENBQ1QseUVBQXlFLENBQzFFLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFDRSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFDN0UsQ0FBQztnQkFDRCxNQUFNLENBQUMsSUFBSSxDQUNULHNFQUNFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FDekIsR0FBRyxDQUNKLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNERBQTRELENBQUMsQ0FBQztZQUM1RSxDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLElBQUksOEJBQXVCLENBQy9CLHNCQUFzQixFQUN0Qiw0Q0FBNEMsYUFBYSxJQUFJLFFBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQUcsQ0FBQyxFQUFFLENBQ3RGLENBQUM7WUFDSixDQUFDO1NBQ0Y7UUFFRDs7V0FFRztRQUNjLFNBQVMsQ0FBZTtRQUV6Qzs7V0FFRztRQUNhLGFBQWEsQ0FBUztRQUV0Qzs7V0FFRztRQUNhLFdBQVcsQ0FBZTtRQUUxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFCO1lBQzdELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7OzttREEzRlIsU0FBUzs7OztZQTRGbEIsbUNBQW1DO1lBQ25DLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRWxDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksMkJBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO2dCQUMxQyxTQUFTLEVBQUUsS0FBSyxDQUFDLGFBQWE7Z0JBQzlCLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWM7YUFDaEQsQ0FBQyxDQUFDO1lBRUgsSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pELENBQUM7U0FDRjs7WUEzR1UsdURBQVM7Ozs7O0FBQVQsOEJBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFT0wgfSBmcm9tICdvcyc7XG5pbXBvcnQgeyBDZm5OYW1lc3BhY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczN0YWJsZXMnO1xuaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UsIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IFJlc291cmNlLCBUb2tlbiwgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElUYWJsZUJ1Y2tldCB9IGZyb20gJy4vdGFibGUtYnVja2V0JztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFMzIFRhYmxlcyBOYW1lc3BhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU5hbWVzcGFjZSBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIG5hbWVzcGFjZVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQgd2hpY2ggdGhpcyBuYW1lc3BhY2UgYmVsb25ncyB0b1xuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldDogSVRhYmxlQnVja2V0O1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNvbnN0cnVjdGluZyBhIE5hbWVzcGFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVzcGFjZVByb3BzIHtcbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgdGhlIG5hbWVzcGFjZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHRhYmxlIGJ1Y2tldCB0aGlzIG5hbWVzcGFjZSBiZWxvbmdzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVCdWNrZXQ6IElUYWJsZUJ1Y2tldDtcbiAgLyoqXG4gICAqIFBvbGljeSB0byBhcHBseSB3aGVuIHRoZSBwb2xpY3kgaXMgcmVtb3ZlZCBmcm9tIHRoaXMgc3RhY2suXG4gICAqIEBkZWZhdWx0IFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIG5hbWVzcGFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVzcGFjZUF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG5hbWVzcGFjZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgYnVja2V0IHRoaXMgbmFtZXNwYWNlIGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0OiBJVGFibGVCdWNrZXQ7XG59XG5cbi8qKlxuICogQW4gUzMgVGFibGVzIE5hbWVzcGFjZSB3aXRoIGhlbHBlcnMuXG4gKlxuICogQSBuYW1lc3BhY2UgaXMgYSBsb2dpY2FsIGNvbnRhaW5lciBmb3IgdGFibGVzIHdpdGhpbiBhIHRhYmxlIGJ1Y2tldC5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIE5hbWVzcGFjZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSU5hbWVzcGFjZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLXMzdGFibGVzLWFscGhhLk5hbWVzcGFjZSc7XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBuYW1lc3BhY2UgZnJvbSBpdHMgYXR0cmlidXRlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTmFtZXNwYWNlQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogTmFtZXNwYWNlQXR0cmlidXRlcyk6IElOYW1lc3BhY2Uge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSU5hbWVzcGFjZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZSA9IGF0dHJzLm5hbWVzcGFjZU5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVCdWNrZXQgPSBhdHRycy50YWJsZUJ1Y2tldDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG4gIC8qKlxuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGVzLWJ1Y2tldHMtbmFtaW5nLmh0bWxcbiAgICogQHBhcmFtIG5hbWVzcGFjZU5hbWUgTmFtZSBvZiB0aGUgbmFtZXNwYWNlXG4gICAqIEB0aHJvd3MgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgaWYgYW55IG5hbWluZyBlcnJvcnMgYXJlIGRldGVjdGVkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZhbGlkYXRlTmFtZXNwYWNlTmFtZShuYW1lc3BhY2VOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAobmFtZXNwYWNlTmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKG5hbWVzcGFjZU5hbWUpKSB7XG4gICAgICAvLyB0aGUgbmFtZSBpcyBhIGxhdGUtYm91bmQgdmFsdWUsIG5vdCBhIGRlZmluZWQgc3RyaW5nLCBzbyBza2lwIHZhbGlkYXRpb25cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBMZW5ndGggdmFsaWRhdGlvblxuICAgIGlmIChuYW1lc3BhY2VOYW1lLmxlbmd0aCA8IDEgfHwgbmFtZXNwYWNlTmFtZS5sZW5ndGggPiAyNTUpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAnTmFtZXNwYWNlIG5hbWUgbXVzdCBiZSBhdCBsZWFzdCAxIGFuZCBubyBtb3JlIHRoYW4gMjU1IGNoYXJhY3RlcnMnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDaGFyYWN0ZXIgc2V0IHZhbGlkYXRpb25cbiAgICBjb25zdCBpbGxlZ2FsQ2hhcnNldFJlZ0V4ID0gL1teYS16MC05X10vO1xuICAgIGNvbnN0IGFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4ID0gL1thLXowLTldLztcblxuICAgIGNvbnN0IGlsbGVnYWxDaGFyTWF0Y2ggPSBuYW1lc3BhY2VOYW1lLm1hdGNoKGlsbGVnYWxDaGFyc2V0UmVnRXgpO1xuICAgIGlmIChpbGxlZ2FsQ2hhck1hdGNoKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ05hbWVzcGFjZSBuYW1lIG11c3Qgb25seSBjb250YWluIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXMgKF8pJyArXG4gICAgICAgICAgYCAob2Zmc2V0OiAke2lsbGVnYWxDaGFyTWF0Y2guaW5kZXh9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgY2hhcmFjdGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QobmFtZXNwYWNlTmFtZS5jaGFyQXQoMCkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ05hbWVzcGFjZSBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6IDApJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICFhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeC50ZXN0KG5hbWVzcGFjZU5hbWUuY2hhckF0KG5hbWVzcGFjZU5hbWUubGVuZ3RoIC0gMSkpXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYE5hbWVzcGFjZSBuYW1lIG11c3QgZW5kIHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAke1xuICAgICAgICAgIG5hbWVzcGFjZU5hbWUubGVuZ3RoIC0gMVxuICAgICAgICB9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChuYW1lc3BhY2VOYW1lLnN0YXJ0c1dpdGgoJ2F3cycpKSB7XG4gICAgICBlcnJvcnMucHVzaCgnTmFtZXNwYWNlIG5hbWUgbXVzdCBub3Qgc3RhcnQgd2l0aCByZXNlcnZlZCBwcmVmaXggXFwnYXdzXFwnJyk7XG4gICAgfVxuXG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICdJbnZhbGlkTmFtZXNwYWNlTmFtZScsXG4gICAgICAgIGBJbnZhbGlkIFMzIFRhYmxlcyBuYW1lc3BhY2UgbmFtZSAodmFsdWU6ICR7bmFtZXNwYWNlTmFtZX0pJHtFT0x9JHtlcnJvcnMuam9pbihFT0wpfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgVGhlIHVuZGVybHlpbmcgbmFtZXNwYWNlIHJlc291cmNlLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzb3VyY2U6IENmbk5hbWVzcGFjZTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBuYW1lc3BhY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lc3BhY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQgd2hpY2ggdGhpcyBuYW1lc3BhY2UgYmVsb25ncyB0b1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlQnVja2V0OiBJVGFibGVCdWNrZXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5hbWVzcGFjZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIE5hbWVzcGFjZS52YWxpZGF0ZU5hbWVzcGFjZU5hbWUocHJvcHMubmFtZXNwYWNlTmFtZSk7XG5cbiAgICB0aGlzLnRhYmxlQnVja2V0ID0gcHJvcHMudGFibGVCdWNrZXQ7XG4gICAgdGhpcy5uYW1lc3BhY2VOYW1lID0gcHJvcHMubmFtZXNwYWNlTmFtZTtcbiAgICB0aGlzLl9yZXNvdXJjZSA9IG5ldyBDZm5OYW1lc3BhY2UodGhpcywgaWQsIHtcbiAgICAgIG5hbWVzcGFjZTogcHJvcHMubmFtZXNwYWNlTmFtZSxcbiAgICAgIHRhYmxlQnVja2V0QXJuOiB0aGlzLnRhYmxlQnVja2V0LnRhYmxlQnVja2V0QXJuLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLnJlbW92YWxQb2xpY3kpIHtcbiAgICAgIHRoaXMuX3Jlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUF5QjtBQUN6QiwyREFBd0Q7QUFFeEQsMkNBQTRFO0FBQzVFLDRFQUE0RDtBQUM1RCw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBdUQxRTs7OztHQUlHO0lBRVUsU0FBUzs0QkFEckIsb0NBQWtCOzs7O3NCQUNZLGVBQVE7eUJBQWhCLFNBQVEsV0FBUTs7OztZQUF2Qyw2S0E0R0M7Ozs7O1FBM0dDLHNDQUFzQztRQUMvQixNQUFNLENBQVUscUJBQXFCLEdBQVcsdUNBQXVDLENBQUM7UUFFL0Y7O1dBRUc7UUFDSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7Ozs7Ozs7Ozs7WUFDNUYsTUFBTSxNQUFPLFNBQVEsZUFBUTtnQkFDWCxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztnQkFDcEMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7YUFDakQ7WUFFRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztTQUM5QjtRQUNEOzs7O1dBSUc7UUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsYUFBcUI7WUFDdkQsSUFBSSxhQUFhLElBQUksU0FBUyxJQUFJLFlBQUssQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDcEUsMkVBQTJFO2dCQUMzRSxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztZQUU1QixvQkFBb0I7WUFDcEIsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUMzRCxNQUFNLENBQUMsSUFBSSxDQUNULG1FQUFtRSxDQUNwRSxDQUFDO1lBQ0osQ0FBQztZQUVELDJCQUEyQjtZQUMzQixNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQztZQUN6QyxNQUFNLHVCQUF1QixHQUFHLFVBQVUsQ0FBQztZQUUzQyxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNsRSxJQUFJLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQ1QscUZBQXFGO29CQUNuRixhQUFhLGdCQUFnQixDQUFDLEtBQUssR0FBRyxDQUN6QyxDQUFDO1lBQ0osQ0FBQztZQUVELDRCQUE0QjtZQUM1QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMzRCxNQUFNLENBQUMsSUFBSSxDQUNULHlFQUF5RSxDQUMxRSxDQUFDO1lBQ0osQ0FBQztZQUNELElBQ0UsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQzdFLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FDVCxzRUFDRSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQ3pCLEdBQUcsQ0FDSixDQUFDO1lBQ0osQ0FBQztZQUVELElBQUksYUFBYSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLDREQUE0RCxDQUFDLENBQUM7WUFDNUUsQ0FBQztZQUVELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLDhCQUF1QixDQUMvQixJQUFBLHNCQUFHLEVBQUEsc0JBQXNCLEVBQ3pCLDRDQUE0QyxhQUFhLElBQUksUUFBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBRyxDQUFDLEVBQUUsQ0FDdEYsQ0FBQztZQUNKLENBQUM7U0FDRjtRQUVEOztXQUVHO1FBQ2MsU0FBUyxDQUFlO1FBRXpDOztXQUVHO1FBQ2EsYUFBYSxDQUFTO1FBRXRDOztXQUVHO1FBQ2EsV0FBVyxDQUFlO1FBRTFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7WUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzs7Ozs7O21EQTNGUixTQUFTOzs7O1lBNEZsQixtQ0FBbUM7WUFDbkMsSUFBQSx3Q0FBb0IsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFbEMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVyRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7WUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSwyQkFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7Z0JBQzFDLFNBQVMsRUFBRSxLQUFLLENBQUMsYUFBYTtnQkFDOUIsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYzthQUNoRCxDQUFDLENBQUM7WUFFSCxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsQ0FBQztTQUNGOztZQTNHVSx1REFBUzs7Ozs7QUFBVCw4QkFBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVPTCB9IGZyb20gJ29zJztcbmltcG9ydCB7IENmbk5hbWVzcGFjZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM3RhYmxlcyc7XG5pbXBvcnQgdHlwZSB7IElSZXNvdXJjZSwgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgUmVzb3VyY2UsIFRva2VuLCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBJVGFibGVCdWNrZXQgfSBmcm9tICcuL3RhYmxlLWJ1Y2tldCc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBTMyBUYWJsZXMgTmFtZXNwYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElOYW1lc3BhY2UgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBuYW1lc3BhY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgYnVja2V0IHdoaWNoIHRoaXMgbmFtZXNwYWNlIGJlbG9uZ3MgdG9cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVCdWNrZXQ6IElUYWJsZUJ1Y2tldDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBjb25zdHJ1Y3RpbmcgYSBOYW1lc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYW1lc3BhY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSBuYW1lc3BhY2VcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQgdGhpcyBuYW1lc3BhY2UgYmVsb25ncyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0OiBJVGFibGVCdWNrZXQ7XG4gIC8qKlxuICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgcG9saWN5IGlzIHJlbW92ZWQgZnJvbSB0aGlzIHN0YWNrLlxuICAgKiBAZGVmYXVsdCBSZW1vdmFsUG9saWN5LkRFU1RST1lcbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xufVxuXG4vKipcbiAqIEF0dHJpYnV0ZXMgZm9yIGltcG9ydGluZyBhbiBleGlzdGluZyBuYW1lc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYW1lc3BhY2VBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBuYW1lc3BhY2VcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhYmxlIGJ1Y2tldCB0aGlzIG5hbWVzcGFjZSBiZWxvbmdzIHRvXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldDogSVRhYmxlQnVja2V0O1xufVxuXG4vKipcbiAqIEFuIFMzIFRhYmxlcyBOYW1lc3BhY2Ugd2l0aCBoZWxwZXJzLlxuICpcbiAqIEEgbmFtZXNwYWNlIGlzIGEgbG9naWNhbCBjb250YWluZXIgZm9yIHRhYmxlcyB3aXRoaW4gYSB0YWJsZSBidWNrZXQuXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBOYW1lc3BhY2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElOYW1lc3BhY2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1zM3RhYmxlcy1hbHBoYS5OYW1lc3BhY2UnO1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgbmFtZXNwYWNlIGZyb20gaXRzIGF0dHJpYnV0ZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU5hbWVzcGFjZUF0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IE5hbWVzcGFjZUF0dHJpYnV0ZXMpOiBJTmFtZXNwYWNlIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElOYW1lc3BhY2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWUgPSBhdHRycy5uYW1lc3BhY2VOYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlQnVja2V0ID0gYXR0cnMudGFibGVCdWNrZXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuICAvKipcbiAgICogU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvdXNlcmd1aWRlL3MzLXRhYmxlcy1idWNrZXRzLW5hbWluZy5odG1sXG4gICAqIEBwYXJhbSBuYW1lc3BhY2VOYW1lIE5hbWUgb2YgdGhlIG5hbWVzcGFjZVxuICAgKiBAdGhyb3dzIFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIGlmIGFueSBuYW1pbmcgZXJyb3JzIGFyZSBkZXRlY3RlZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZU5hbWVzcGFjZU5hbWUobmFtZXNwYWNlTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKG5hbWVzcGFjZU5hbWUgPT0gdW5kZWZpbmVkIHx8IFRva2VuLmlzVW5yZXNvbHZlZChuYW1lc3BhY2VOYW1lKSkge1xuICAgICAgLy8gdGhlIG5hbWUgaXMgYSBsYXRlLWJvdW5kIHZhbHVlLCBub3QgYSBkZWZpbmVkIHN0cmluZywgc28gc2tpcCB2YWxpZGF0aW9uXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLy8gTGVuZ3RoIHZhbGlkYXRpb25cbiAgICBpZiAobmFtZXNwYWNlTmFtZS5sZW5ndGggPCAxIHx8IG5hbWVzcGFjZU5hbWUubGVuZ3RoID4gMjU1KSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ05hbWVzcGFjZSBuYW1lIG11c3QgYmUgYXQgbGVhc3QgMSBhbmQgbm8gbW9yZSB0aGFuIDI1NSBjaGFyYWN0ZXJzJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ2hhcmFjdGVyIHNldCB2YWxpZGF0aW9uXG4gICAgY29uc3QgaWxsZWdhbENoYXJzZXRSZWdFeCA9IC9bXmEtejAtOV9dLztcbiAgICBjb25zdCBhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeCA9IC9bYS16MC05XS87XG5cbiAgICBjb25zdCBpbGxlZ2FsQ2hhck1hdGNoID0gbmFtZXNwYWNlTmFtZS5tYXRjaChpbGxlZ2FsQ2hhcnNldFJlZ0V4KTtcbiAgICBpZiAoaWxsZWdhbENoYXJNYXRjaCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdOYW1lc3BhY2UgbmFtZSBtdXN0IG9ubHkgY29udGFpbiBsb3dlcmNhc2UgY2hhcmFjdGVycywgbnVtYmVycywgYW5kIHVuZGVyc2NvcmVzIChfKScgK1xuICAgICAgICAgIGAgKG9mZnNldDogJHtpbGxlZ2FsQ2hhck1hdGNoLmluZGV4fSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBFZGdlIGNoYXJhY3RlciB2YWxpZGF0aW9uXG4gICAgaWYgKCFhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeC50ZXN0KG5hbWVzcGFjZU5hbWUuY2hhckF0KDApKSkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdOYW1lc3BhY2UgbmFtZSBtdXN0IHN0YXJ0IHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAwKScsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAhYWxsb3dlZEVkZ2VDaGFyc2V0UmVnRXgudGVzdChuYW1lc3BhY2VOYW1lLmNoYXJBdChuYW1lc3BhY2VOYW1lLmxlbmd0aCAtIDEpKVxuICAgICkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIGBOYW1lc3BhY2UgbmFtZSBtdXN0IGVuZCB3aXRoIGEgbG93ZXJjYXNlIGxldHRlciBvciBudW1iZXIgKG9mZnNldDogJHtcbiAgICAgICAgICBuYW1lc3BhY2VOYW1lLmxlbmd0aCAtIDFcbiAgICAgICAgfSlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobmFtZXNwYWNlTmFtZS5zdGFydHNXaXRoKCdhd3MnKSkge1xuICAgICAgZXJyb3JzLnB1c2goJ05hbWVzcGFjZSBuYW1lIG11c3Qgbm90IHN0YXJ0IHdpdGggcmVzZXJ2ZWQgcHJlZml4IFxcJ2F3c1xcJycpO1xuICAgIH1cblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZE5hbWVzcGFjZU5hbWVgLFxuICAgICAgICBgSW52YWxpZCBTMyBUYWJsZXMgbmFtZXNwYWNlIG5hbWUgKHZhbHVlOiAke25hbWVzcGFjZU5hbWV9KSR7RU9MfSR7ZXJyb3JzLmpvaW4oRU9MKX1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsIFRoZSB1bmRlcmx5aW5nIG5hbWVzcGFjZSByZXNvdXJjZS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc291cmNlOiBDZm5OYW1lc3BhY2U7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgbmFtZXNwYWNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFibGUgYnVja2V0IHdoaWNoIHRoaXMgbmFtZXNwYWNlIGJlbG9uZ3MgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldDogSVRhYmxlQnVja2V0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOYW1lc3BhY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBOYW1lc3BhY2UudmFsaWRhdGVOYW1lc3BhY2VOYW1lKHByb3BzLm5hbWVzcGFjZU5hbWUpO1xuXG4gICAgdGhpcy50YWJsZUJ1Y2tldCA9IHByb3BzLnRhYmxlQnVja2V0O1xuICAgIHRoaXMubmFtZXNwYWNlTmFtZSA9IHByb3BzLm5hbWVzcGFjZU5hbWU7XG4gICAgdGhpcy5fcmVzb3VyY2UgPSBuZXcgQ2ZuTmFtZXNwYWNlKHRoaXMsIGlkLCB7XG4gICAgICBuYW1lc3BhY2U6IHByb3BzLm5hbWVzcGFjZU5hbWUsXG4gICAgICB0YWJsZUJ1Y2tldEFybjogdGhpcy50YWJsZUJ1Y2tldC50YWJsZUJ1Y2tldEFybixcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5yZW1vdmFsUG9saWN5KSB7XG4gICAgICB0aGlzLl9yZXNvdXJjZS5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -62,7 +62,7 @@ let TableBucketPolicy = (() => {
|
|
|
62
62
|
TableBucketPolicy = _classThis = _classDescriptor.value;
|
|
63
63
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
64
64
|
}
|
|
65
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucketPolicy", version: "2.
|
|
65
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucketPolicy", version: "2.247.0-alpha.0" };
|
|
66
66
|
/** Uniquely identifies this class. */
|
|
67
67
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.TableBucketPolicy';
|
|
68
68
|
/**
|
package/lib/table-bucket.js
CHANGED
|
@@ -201,7 +201,7 @@ let TableBucket = (() => {
|
|
|
201
201
|
TableBucket = _classThis = _classDescriptor.value;
|
|
202
202
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
203
203
|
}
|
|
204
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucket", version: "2.
|
|
204
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TableBucket", version: "2.247.0-alpha.0" };
|
|
205
205
|
/** Uniquely identifies this class. */
|
|
206
206
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.TableBucket';
|
|
207
207
|
/**
|
|
@@ -285,7 +285,7 @@ let TableBucket = (() => {
|
|
|
285
285
|
errors.push(`Bucket name must end with a lowercase letter or number (offset: ${bucketName.length - 1})`);
|
|
286
286
|
}
|
|
287
287
|
if (errors.length > 0) {
|
|
288
|
-
throw new core_1.UnscopedValidationError(
|
|
288
|
+
throw new core_1.UnscopedValidationError((0, helpers_internal_1.lit) `InvalidTableBucketName`, `Invalid S3 table bucket name (value: ${bucketName})${os_1.EOL}${errors.join(os_1.EOL)}`);
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
291
|
/**
|
|
@@ -329,7 +329,7 @@ let TableBucket = (() => {
|
|
|
329
329
|
errors.push('status must be one of \'Enabled\' or \'Disabled\'');
|
|
330
330
|
}
|
|
331
331
|
if (errors.length > 0) {
|
|
332
|
-
throw new core_1.UnscopedValidationError(
|
|
332
|
+
throw new core_1.UnscopedValidationError((0, helpers_internal_1.lit) `InvalidUnreferencedFileRemovalProperty`, `Invalid UnreferencedFileRemovalProperty})${os_1.EOL}${errors.join(os_1.EOL)}`);
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
335
|
/**
|
|
@@ -446,10 +446,10 @@ let TableBucket = (() => {
|
|
|
446
446
|
};
|
|
447
447
|
}
|
|
448
448
|
else {
|
|
449
|
-
throw new core_1.UnscopedValidationError(
|
|
449
|
+
throw new core_1.UnscopedValidationError((0, helpers_internal_1.lit) `InvalidEncryptionConfiguration`, 'Expected encryption = `KMS` with user provided encryption key');
|
|
450
450
|
}
|
|
451
451
|
}
|
|
452
|
-
throw new core_1.UnscopedValidationError(
|
|
452
|
+
throw new core_1.UnscopedValidationError((0, helpers_internal_1.lit) `UnknownEncryptionConfiguration`, `Unknown encryption configuration detected: ${props.encryption} with key ${props.encryptionKey}`);
|
|
453
453
|
}
|
|
454
454
|
/**
|
|
455
455
|
* Allowlist S3 Tables Maintenance to access this table bucket's encryption key
|
|
@@ -486,4 +486,4 @@ let TableBucket = (() => {
|
|
|
486
486
|
return TableBucket = _classThis;
|
|
487
487
|
})();
|
|
488
488
|
exports.TableBucket = TableBucket;
|
|
489
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFibGUtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUF5QjtBQUN6QiwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLHFEQUFxRDtBQUVyRCwyQ0FBNEU7QUFDNUUsNEVBQXVFO0FBQ3ZFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUsdUNBQXVDO0FBQ3ZDLCtEQUEwRDtBQUMxRCxpQ0FBdUQ7QUEwSHZEOztHQUVHO0FBQ0gsSUFBWSw2QkFVWDtBQVZELFdBQVksNkJBQTZCO0lBQ3ZDOztPQUVHO0lBQ0gsb0RBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxzREFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVlcsNkJBQTZCLDZDQUE3Qiw2QkFBNkIsUUFVeEM7QUFFRDs7R0FFRztBQUNILElBQVksb0JBVVg7QUFWRCxXQUFZLG9CQUFvQjtJQUM5Qjs7T0FFRztJQUNILDJDQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsNkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVZXLG9CQUFvQixvQ0FBcEIsb0JBQW9CLFFBVS9CO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLHFCQVdYO0FBWEQsV0FBWSxxQkFBcUI7SUFDL0I7OztPQUdHO0lBQ0gsd0NBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsOENBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVhXLHFCQUFxQixxQ0FBckIscUJBQXFCLFFBV2hDO0FBRUQsTUFBZSxlQUFnQixTQUFRLGVBQVE7SUFvQjdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUJHO0lBQ0ksbUJBQW1CLENBQ3hCLFNBQThCO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElB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QyxVQUFVLGFBQWEsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDdks7UUFFRDs7Ozs7V0FLRztRQUNLLGlDQUFpQyxDQUFDLGFBQXVCLEVBQUUsZUFBdUI7WUFDeEYsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFFdkMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDeEQsR0FBRyxFQUFFLGdDQUFnQztnQkFDckMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDeEIsVUFBVSxFQUFFO29CQUNWLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLG9DQUFvQyxDQUFDO2lCQUMvRDtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AscUJBQXFCO29CQUNyQixhQUFhO2lCQUNkO2dCQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDaEIsVUFBVSxFQUFFO29CQUNWLFVBQVUsRUFBRTt3QkFDVixrQ0FBa0MsRUFBRSxPQUFPLFNBQVMsYUFBYSxNQUFNLElBQUksT0FBTyxXQUFXLGVBQWUsSUFBSTtxQkFDakg7aUJBQ0Y7YUFDRixDQUFDLENBQUMsQ0FBQztTQUNMOztZQTNUVSx1REFBVzs7Ozs7QUFBWCxrQ0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVPTCB9IGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIHMzdGFibGVzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM3RhYmxlcyc7XG5pbXBvcnQgdHlwZSB7IElSZXNvdXJjZSwgSVRhZ2dhYmxlVjIsIFJlbW92YWxQb2xpY3ksIFRhZ01hbmFnZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IFJlc291cmNlLCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvciwgVG9rZW4gfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IG1lbW9pemVkR2V0dGVyIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgcGVybXMgZnJvbSAnLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBUYWJsZUJ1Y2tldFBvbGljeSB9IGZyb20gJy4vdGFibGUtYnVja2V0LXBvbGljeSc7XG5pbXBvcnQgeyB2YWxpZGF0ZVRhYmxlQnVja2V0QXR0cmlidXRlcyB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGRlZmluaXRpb24gZm9yIFMzIFRhYmxlIEJ1Y2tldHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVGFibGVCdWNrZXQgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjY291bnRJZCBjb250YWluaW5nIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gY29udGFpbmluZyB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIEtNUyBlbmNyeXB0aW9uIGtleSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWJsZSBidWNrZXQuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQvb3IgaXRzXG4gICAqIHRhYmxlcy5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZSBwb2xpY3kgc3RhdGVtZW50IG1heSBvciBtYXkgbm90IGJlIGFkZGVkIHRvIHRoZSBwb2xpY3kuXG4gICAqIEZvciBleGFtcGxlLCB3aGVuIGFuIGBJVGFibGVCdWNrZXRgIGlzIGNyZWF0ZWQgZnJvbSBhbiBleGlzdGluZyB0YWJsZSBidWNrZXQsXG4gICAqIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgd2hldGhlciB0aGUgYnVja2V0IGFscmVhZHkgaGFzIGEgcG9saWN5XG4gICAqIGF0dGFjaGVkLCBsZXQgYWxvbmUgdG8gcmUtdXNlIHRoYXQgcG9saWN5IHRvIGFkZCBtb3JlIHN0YXRlbWVudHMgdG8gaXQuXG4gICAqIFNvIGl0J3Mgc2FmZXN0IHRvIGRvIG5vdGhpbmcgaW4gdGhlc2UgY2FzZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgdG8gYmUgYWRkZWQgdG8gdGhlIGJ1Y2tldCdzXG4gICAqIHBvbGljeS5cbiAgICogQHJldHVybnMgbWV0YWRhdGEgYWJvdXQgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIG1ldGhvZC4gSWYgdGhlIHBvbGljeVxuICAgKiB3YXMgbm90IGFkZGVkLCB0aGUgdmFsdWUgb2YgYHN0YXRlbWVudEFkZGVkYCB3aWxsIGJlIGBmYWxzZWAuIFlvdVxuICAgKiBzaG91bGQgYWx3YXlzIGNoZWNrIHRoaXMgdmFsdWUgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG9wZXJhdGlvbiB3YXNcbiAgICogYWN0dWFsbHkgY2FycmllZCBvdXQuIE90aGVyd2lzZSwgc3ludGhlc2lzIGFuZCBkZXBsb3kgd2lsbCB0ZXJtaW5hdGVcbiAgICogc2lsZW50bHksIHdoaWNoIG1heSBiZSBjb25mdXNpbmcuXG4gICAqL1xuICBhZGRUb1Jlc291cmNlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQgaXRzIHRhYmxlc1xuICAgKiB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZGVjcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIHRhYmxlSWQgQWxsb3cgdGhlIHBlcm1pc3Npb25zIHRvIGFsbCB0YWJsZXMgdXNpbmcgJyonIG9yIHRvIHNpbmdsZSB0YWJsZSBieSBpdHMgdW5pcXVlIElELlxuICAgKi9cbiAgZ3JhbnRSZWFkKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSBidWNrZXQgYW5kIGl0cyB0YWJsZXNcbiAgICogdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQgdGhlIGNvbnRlbnRzXG4gICAqIG9mIHRoZSBidWNrZXQgd2lsbCBhbHNvIGJlIGdyYW50ZWQgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyB3cml0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcGFyYW0gdGFibGVJZCBBbGxvdyB0aGUgcGVybWlzc2lvbnMgdG8gYWxsIHRhYmxlcyB1c2luZyAnKicgb3IgdG8gc2luZ2xlIHRhYmxlIGJ5IGl0cyB1bmlxdWUgSUQuXG4gICAqL1xuICBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSBidWNrZXQgYW5kIGl0cyB0YWJsZXNcbiAgICogdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQvZGVjcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvXG4gICAqIEBwYXJhbSB0YWJsZUlkIEFsbG93IHRoZSBwZXJtaXNzaW9ucyB0byBhbGwgdGFibGVzIHVzaW5nICcqJyBvciB0byBzaW5nbGUgdGFibGUgYnkgaXRzIHVuaXF1ZSBJRC5cbiAgICovXG4gIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xufVxuXG4vKipcbiAqIFVucmVmZXJlbmNlZCBmaWxlIHJlbW92YWwgc2V0dGluZ3MgZm9yIHRoZSB0aGlzIHRhYmxlIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCB7XG4gIC8qKlxuICAgKiBEdXJhdGlvbiBhZnRlciB3aGljaCBub25jdXJyZW50IGZpbGVzIHNob3VsZCBiZSByZW1vdmVkLiBTaG91bGQgYmUgYXQgbGVhc3Qgb25lIGRheS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZS1idWNrZXRzLW1haW50ZW5hbmNlLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTZWUgUzMgVGFibGVzIFVzZXIgR3VpZGVcbiAgICovXG4gIHJlYWRvbmx5IG5vbmN1cnJlbnREYXlzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdGF0dXMgb2YgdW5yZWZlcmVuY2VkIGZpbGUgcmVtb3ZhbC4gQ2FuIGJlIEVuYWJsZWQgb3IgRGlzYWJsZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGUtYnVja2V0cy1tYWludGVuYW5jZS5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU2VlIFMzIFRhYmxlcyBVc2VyIEd1aWRlXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFN0YXR1cztcblxuICAvKipcbiAgICogRHVyYXRpb24gYWZ0ZXIgd2hpY2ggdW5yZWZlcmVuY2VkIGZpbGVzIHNob3VsZCBiZSByZW1vdmVkLiBTaG91bGQgYmUgYXQgbGVhc3Qgb25lIGRheS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZS1idWNrZXRzLW1haW50ZW5hbmNlLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTZWUgUzMgVGFibGVzIFVzZXIgR3VpZGVcbiAgICovXG4gIHJlYWRvbmx5IHVucmVmZXJlbmNlZERheXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29udHJvbHMgd2hldGhlciB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsIGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBlbnVtIFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsU3RhdHVzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsLlxuICAgKi9cbiAgRU5BQkxFRCA9ICdFbmFibGVkJyxcblxuICAvKipcbiAgICogRGlzYWJsZSB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnRGlzYWJsZWQnLFxufVxuXG4vKipcbiAqIENvbnRyb2xzIHdoZXRoZXIgQ2xvdWRXYXRjaCByZXF1ZXN0IG1ldHJpY3MgYXJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gKi9cbmV4cG9ydCBlbnVtIFJlcXVlc3RNZXRyaWNzU3RhdHVzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBDbG91ZFdhdGNoIHJlcXVlc3QgbWV0cmljcyBmb3IgdGhlIHRhYmxlIGJ1Y2tldC5cbiAgICovXG4gIEVOQUJMRUQgPSAnRW5hYmxlZCcsXG5cbiAgLyoqXG4gICAqIERpc2FibGUgQ2xvdWRXYXRjaCByZXF1ZXN0IG1ldHJpY3MgZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqL1xuICBESVNBQkxFRCA9ICdEaXNhYmxlZCcsXG59XG5cbi8qKlxuICogQ29udHJvbHMgU2VydmVyIFNpZGUgRW5jcnlwdGlvbiAoU1NFKSBmb3IgdGhpcyBUYWJsZUJ1Y2tldC5cbiAqL1xuZXhwb3J0IGVudW0gVGFibGVCdWNrZXRFbmNyeXB0aW9uIHtcbiAgLyoqXG4gICAqIFVzZSBhIGN1c3RvbWVyIGRlZmluZWQgS01TIGtleSBmb3IgZW5jcnlwdGlvblxuICAgKiBJZiBgZW5jcnlwdGlvbktleWAgaXMgc3BlY2lmaWVkLCB0aGlzIGtleSB3aWxsIGJlIHVzZWQsIG90aGVyd2lzZSwgb25lIHdpbGwgYmUgZGVmaW5lZC5cbiAgICovXG4gIEtNUyA9ICdhd3M6a21zJyxcblxuICAvKipcbiAgICogVXNlIFMzIG1hbmFnZWQgZW5jcnlwdGlvbiBrZXlzIHdpdGggQUVTMjU2IGVuY3J5cHRpb25cbiAgICovXG4gIFMzX01BTkFHRUQgPSAnQUVTMjU2Jyxcbn1cblxuYWJzdHJhY3QgY2xhc3MgVGFibGVCdWNrZXRCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJVGFibGVCdWNrZXQge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVCdWNrZXRBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgcG9saWN5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhYmxlIGJ1Y2tldC5cbiAgICpcbiAgICogSWYgYGF1dG9DcmVhdGVQb2xpY3lgIGlzIHRydWUsIGEgYFRhYmxlQnVja2V0UG9saWN5YCB3aWxsIGJlIGNyZWF0ZWQgdXBvbiB0aGVcbiAgICogZmlyc3QgY2FsbCB0byBhZGRUb1Jlc291cmNlUG9saWN5KHMpLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHRhYmxlQnVja2V0UG9saWN5PzogVGFibGVCdWNrZXRQb2xpY3k7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBhIHRhYmxlIGJ1Y2tldCByZXNvdXJjZSBwb2xpY3kgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uXG4gICAqIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1Jlc291cmNlUG9saWN5YC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXkgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQvb3IgaXRzXG4gICAqIGNvbnRlbnRzLiBVc2UgYHRhYmxlQnVja2V0QXJuYCBhbmQgYGFybkZvck9iamVjdHMoa2V5cylgIHRvIG9idGFpbiBBUk5zIGZvclxuICAgKiB0aGlzIGJ1Y2tldCBvciBvYmplY3RzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgbWF5IG9yIG1heSBub3QgYmUgYWRkZWQgdG8gdGhlIHBvbGljeS5cbiAgICogRm9yIGV4YW1wbGUsIHdoZW4gYW4gYElUYWJsZUJ1Y2tldGAgaXMgY3JlYXRlZCBmcm9tIGFuIGV4aXN0aW5nIHRhYmxlIGJ1Y2tldCxcbiAgICogaXQncyBub3QgcG9zc2libGUgdG8gdGVsbCB3aGV0aGVyIHRoZSBidWNrZXQgYWxyZWFkeSBoYXMgYSBwb2xpY3lcbiAgICogYXR0YWNoZWQsIGxldCBhbG9uZSB0byByZS11c2UgdGhhdCBwb2xpY3kgdG8gYWRkIG1vcmUgc3RhdGVtZW50cyB0byBpdC5cbiAgICogU28gaXQncyBzYWZlc3QgdG8gZG8gbm90aGluZyBpbiB0aGVzZSBjYXNlcy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCB0aGUgcG9saWN5IHN0YXRlbWVudCB0byBiZSBhZGRlZCB0byB0aGUgYnVja2V0J3NcbiAgICogcG9saWN5LlxuICAgKiBAcmV0dXJucyBtZXRhZGF0YSBhYm91dCB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgbWV0aG9kLiBJZiB0aGUgcG9saWN5XG4gICAqIHdhcyBub3QgYWRkZWQsIHRoZSB2YWx1ZSBvZiBgc3RhdGVtZW50QWRkZWRgIHdpbGwgYmUgYGZhbHNlYC4gWW91XG4gICAqIHNob3VsZCBhbHdheXMgY2hlY2sgdGhpcyB2YWx1ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb3BlcmF0aW9uIHdhc1xuICAgKiBhY3R1YWxseSBjYXJyaWVkIG91dC4gT3RoZXJ3aXNlLCBzeW50aGVzaXMgYW5kIGRlcGxveSB3aWxsIHRlcm1pbmF0ZVxuICAgKiBzaWxlbnRseSwgd2hpY2ggbWF5IGJlIGNvbmZ1c2luZy5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy50YWJsZUJ1Y2tldFBvbGljeSAmJiB0aGlzLmF1dG9DcmVhdGVQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVCdWNrZXRQb2xpY3kgPSBuZXcgVGFibGVCdWNrZXRQb2xpY3kodGhpcywgJ0RlZmF1bHRQb2xpY3knLCB7XG4gICAgICAgIHRhYmxlQnVja2V0OiB0aGlzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGFibGVCdWNrZXRQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVCdWNrZXRQb2xpY3kuZG9jdW1lbnQuYWRkU3RhdGVtZW50cyhzdGF0ZW1lbnQpO1xuICAgICAgcmV0dXJuIHsgc3RhdGVtZW50QWRkZWQ6IHRydWUsIHBvbGljeURlcGVuZGFibGU6IHRoaXMudGFibGVCdWNrZXRQb2xpY3kgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogZmFsc2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlLCB0YWJsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfQlVDS0VUX1JFQURfQUNDRVNTLFxuICAgICAgcGVybXMuS0VZX1JFQURfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUJ1Y2tldEFybixcbiAgICAgIHRoaXMuZ2V0VGFibGVBcm4odGFibGVJZCksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX0JVQ0tFVF9XUklURV9BQ0NFU1MsXG4gICAgICBwZXJtcy5LRVlfUkVBRF9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQnVja2V0QXJuLFxuICAgICAgdGhpcy5nZXRUYWJsZUFybih0YWJsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX0JVQ0tFVF9SRUFEX1dSSVRFX0FDQ0VTUyxcbiAgICAgIHBlcm1zLktFWV9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQnVja2V0QXJuLFxuICAgICAgdGhpcy5nZXRUYWJsZUFybih0YWJsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyB0aGUgZ2l2ZW4gczN0YWJsZXMgcGVybWlzc2lvbnMgdG8gdGhlIHByb3ZpZGVkIHByaW5jaXBhbFxuICAgKiBAcmV0dXJucyBHcmFudCBvYmplY3RcbiAgICovXG4gIHByaXZhdGUgZ3JhbnQoXG4gICAgZ3JhbnRlZTogaWFtLklHcmFudGFibGUsXG4gICAgdGFibGVCdWNrZXRBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICBrZXlBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICByZXNvdXJjZUFybjogc3RyaW5nLFxuICAgIC4uLm90aGVyUmVzb3VyY2VBcm5zOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdKSB7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gW3Jlc291cmNlQXJuLCAuLi5vdGhlclJlc291cmNlQXJuc10uZmlsdGVyKGFybiA9PiBhcm4gIT0gdW5kZWZpbmVkKTtcblxuICAgIGNvbnN0IGdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsT3JSZXNvdXJjZSh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogdGFibGVCdWNrZXRBY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiByZXNvdXJjZXMsXG4gICAgICByZXNvdXJjZTogdGhpcyxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmVuY3J5cHRpb25LZXkgJiYga2V5QWN0aW9ucyAmJiBrZXlBY3Rpb25zLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhpcy5lbmNyeXB0aW9uS2V5LmdyYW50KGdyYW50ZWUsIC4uLmtleUFjdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBncmFudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFibGVBcm4odGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRhYmxlSWQgPyBgJHt0aGlzLnRhYmxlQnVja2V0QXJufS90YWJsZS8ke3RhYmxlSWR9YCA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNvbnN0cnVjdGluZyBhIFRhYmxlQnVja2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVCdWNrZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBTMyBUYWJsZUJ1Y2tldC5cbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGVzLWJ1Y2tldHMtbmFtaW5nLmh0bWwjdGFibGUtYnVja2V0cy1uYW1pbmctcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsIHNldHRpbmdzIGZvciB0aGUgUzMgVGFibGVCdWNrZXQuXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXMzdGFibGVzLXRhYmxlYnVja2V0LXVucmVmZXJlbmNlZGZpbGVyZW1vdmFsLmh0bWxcbiAgICogQGRlZmF1bHQgRW5hYmxlZCB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGUtYnVja2V0cy1tYWludGVuYW5jZS5odG1sXG4gICAqL1xuICByZWFkb25seSB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbD86IFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsO1xuXG4gIC8qKlxuICAgKiBBV1MgcmVnaW9uIHRoYXQgdGhlIHRhYmxlIGJ1Y2tldCBleGlzdHMgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaXQncyBhc3N1bWVkIHRoZSBidWNrZXQgaXMgaW4gdGhlIHNhbWUgcmVnaW9uIGFzIHRoZSBzY29wZSBpdCdzIGJlaW5nIGltcG9ydGVkIGludG9cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQVdTIEFjY291bnQgSUQgb2YgdGhlIHRhYmxlIGJ1Y2tldCBvd25lci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBpdCdzIGFzc3VtZWQgdGhlIGJ1Y2tldCBiZWxvbmdzIHRvIHRoZSBzYW1lIGFjY291bnQgYXMgdGhlIHNjb3BlIGl0J3MgYmVpbmcgaW1wb3J0ZWQgaW50b1xuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGtpbmQgb2Ygc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0byBhcHBseSB0byB0aGlzIGJ1Y2tldC5cbiAgICpcbiAgICogSWYgeW91IGNob29zZSBLTVMsIHlvdSBjYW4gc3BlY2lmeSBhIEtNUyBrZXkgdmlhIGBlbmNyeXB0aW9uS2V5YC4gSWZcbiAgICogZW5jcnlwdGlvbiBrZXkgaXMgbm90IHNwZWNpZmllZCwgYSBrZXkgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYEtNU2AgaWYgYGVuY3J5cHRpb25LZXlgIGlzIHNwZWNpZmllZCwgb3IgYFMzX01BTkFHRURgIG90aGVyd2lzZS5cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBUYWJsZUJ1Y2tldEVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIEV4dGVybmFsIEtNUyBrZXkgdG8gdXNlIGZvciBidWNrZXQgZW5jcnlwdGlvbi5cbiAgICpcbiAgICogVGhlIGBlbmNyeXB0aW9uYCBwcm9wZXJ0eSBtdXN0IGJlIGVpdGhlciBub3Qgc3BlY2lmaWVkIG9yIHNldCB0byBgS01TYC5cbiAgICogQW4gZXJyb3Igd2lsbCBiZSBlbWl0dGVkIGlmIGBlbmNyeXB0aW9uYCBpcyBzZXQgdG8gYFMzX01BTkFHRURgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIGBlbmNyeXB0aW9uYCBpcyBzZXQgdG8gYEtNU2AgYW5kIHRoaXMgcHJvcGVydHkgaXMgdW5kZWZpbmVkLFxuICAgKiBhIG5ldyBLTVMga2V5IHdpbGwgYmUgY3JlYXRlZCBhbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYnVja2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGF0IGhhcHBlbnMgdG8gdGhpcyB0YWJsZSBidWNrZXQgaXQgaXQgc3RvcGVkIGJlaW5nIG1hbmFnZWQgYnkgY2xvdWRmb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIENsb3VkV2F0Y2ggcmVxdWVzdCBtZXRyaWNzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqXG4gICAqIFdoZW4gZW5hYmxlZCwgUzMgVGFibGVzIHB1Ymxpc2hlcyBDbG91ZFdhdGNoIHJlcXVlc3QgbWV0cmljcyBmb3IgdGhlIHRhYmxlIGJ1Y2tldC5cbiAgICogUmVxdWVzdCBtZXRyaWNzIHByb3ZpZGUgaW5zaWdodCBpbnRvIEFtYXpvbiBTMyBUYWJsZXMgcmVxdWVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmVxdWVzdCBtZXRyaWNzIGFyZSBkaXNhYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdE1ldHJpY3NTdGF0dXM/OiBSZXF1ZXN0TWV0cmljc1N0YXR1cztcbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIHRhYmxlIGJ1Y2tldCBvdXRzaWRlIHRoaXMgc3RhY2tcbiAqXG4gKiBUaGUgdGFibGVCdWNrZXROYW1lLCByZWdpb24sIGFuZCBhY2NvdW50IGNhbiBiZSBwcm92aWRlZCBleHBsaWNpdGx5XG4gKiBvciB3aWxsIGJlIGluZmVycmVkIGZyb20gdGhlIHRhYmxlQnVja2V0QXJuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVCdWNrZXRBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIEFXUyByZWdpb24gdGhpcyB0YWJsZSBidWNrZXQgZXhpc3RzIGluXG4gICAqIEBkZWZhdWx0IHJlZ2lvbiBpbmZlcnJlZCBmcm9tIHNjb3BlXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50SWQgY29udGFpbmluZyB0aGlzIHRhYmxlIGJ1Y2tldFxuICAgKiBAZGVmYXVsdCBhY2NvdW50IGluZmVycmVkIGZyb20gc2NvcGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQgbmFtZSwgdW5pcXVlIHBlciByZWdpb25cbiAgICogQGRlZmF1bHQgdGFibGVCdWNrZXROYW1lIGluZmVycmVkIGZyb20gYXJuXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQncyBBUk4uXG4gICAqIEBkZWZhdWx0IHRhYmxlQnVja2V0QXJuIGNvbnN0cnVjdGVkIGZyb20gcmVnaW9uLCBhY2NvdW50IGFuZCB0YWJsZUJ1Y2tldE5hbWUgYXJlIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldEFybj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgS01TIGVuY3J5cHRpb24ga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGJ1Y2tldC5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleTtcbn1cblxuLyoqXG4gKiBBbiBTMyB0YWJsZSBidWNrZXQgd2l0aCBoZWxwZXJzIGZvciBhc3NvY2lhdGVkIHJlc291cmNlIHBvbGljaWVzXG4gKlxuICogVGhpcyBidWNrZXQgbWF5IG5vdCB5ZXQgaGF2ZSBhbGwgZmVhdHVyZXMgdGhhdCBleHBvc2VkIGJ5IHRoZSB1bmRlcmx5aW5nIENmblRhYmxlQnVja2V0LlxuICpcbiAqIEBzdGF0ZWZ1bFxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHNhbXBsZVRhYmxlQnVja2V0ID0gbmV3IFRhYmxlQnVja2V0KHNjb3BlLCAnRXhhbXBsZVRhYmxlQnVja2V0Jywge1xuICogICB0YWJsZUJ1Y2tldE5hbWU6ICdleGFtcGxlLWJ1Y2tldCcsXG4gKiAgIC8vIE9wdGlvbmFsIGZpZWxkczpcbiAqICAgdW5yZWZlcmVuY2VkRmlsZVJlbW92YWw6IHtcbiAqICAgICBub25jdXJyZW50RGF5czogMTIzLFxuICogICAgIHN0YXR1czogVW5yZWZlcmVuY2VkRmlsZVJlbW92YWxTdGF0dXMuRU5BQkxFRCxcbiAqICAgICB1bnJlZmVyZW5jZWREYXlzOiAxMjMsXG4gKiAgIH0sXG4gKiB9KTtcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFRhYmxlQnVja2V0IGV4dGVuZHMgVGFibGVCdWNrZXRCYXNlIGltcGxlbWVudHMgSVRhZ2dhYmxlVjIge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1zM3RhYmxlcy1hbHBoYS5UYWJsZUJ1Y2tldCc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBUYWJsZUJ1Y2tldCBjb25zdHJ1Y3QgZnJvbSBhbiBleHRlcm5hbCB0YWJsZSBidWNrZXQgQVJOLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lLlxuICAgKiBAcGFyYW0gdGFibGVCdWNrZXRBcm4gQW1hem9uIFJlc291cmNlIE5hbWUgKGFybikgb2YgdGhlIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVGFibGVCdWNrZXRBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgdGFibGVCdWNrZXRBcm46IHN0cmluZyk6IElUYWJsZUJ1Y2tldCB7XG4gICAgcmV0dXJuIFRhYmxlQnVja2V0LmZyb21UYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IHRhYmxlQnVja2V0QXJuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBUYWJsZUJ1Y2tldCBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIHRhYmxlIGJ1Y2tldC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZS5cbiAgICogQHBhcmFtIGF0dHJzIEEgYFRhYmxlQnVja2V0QXR0cmlidXRlc2Agb2JqZWN0LiBDYW4gYmUgbWFudWFsbHkgY3JlYXRlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQnVja2V0QXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IFRhYmxlQnVja2V0QXR0cmlidXRlcyxcbiAgKTogSVRhYmxlQnVja2V0IHtcbiAgICBjb25zdCB7IHRhYmxlQnVja2V0TmFtZSwgcmVnaW9uLCBhY2NvdW50LCB0YWJsZUJ1Y2tldEFybiB9ID0gdmFsaWRhdGVUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoc2NvcGUsIGF0dHJzKTtcbiAgICBUYWJsZUJ1Y2tldC52YWxpZGF0ZVRhYmxlQnVja2V0TmFtZSh0YWJsZUJ1Y2tldE5hbWUpO1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFRhYmxlQnVja2V0QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVCdWNrZXROYW1lID0gdGFibGVCdWNrZXROYW1lITtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldEFybiA9IHRhYmxlQnVja2V0QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlQnVja2V0UG9saWN5PzogVGFibGVCdWNrZXRQb2xpY3k7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcmVnaW9uID0gcmVnaW9uO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFjY291bnQgPSBhY2NvdW50O1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleSA9IGF0dHJzLmVuY3J5cHRpb25LZXk7XG4gICAgICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIEV4cG9ydHMgdGhpcyBidWNrZXQgZnJvbSB0aGUgc3RhY2suXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyBleHBvcnQoKSB7XG4gICAgICAgIHJldHVybiBhdHRycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGFjY291bnQsXG4gICAgICByZWdpb24sXG4gICAgICBwaHlzaWNhbE5hbWU6IHRhYmxlQnVja2V0TmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSBnaXZlbiB0YWJsZSBidWNrZXQgbmFtZSBpcyBub3QgdmFsaWQuXG4gICAqXG4gICAqIEBwYXJhbSBidWNrZXROYW1lIG5hbWUgb2YgdGhlIGJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVUYWJsZUJ1Y2tldE5hbWUoXG4gICAgYnVja2V0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICBpZiAoYnVja2V0TmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKGJ1Y2tldE5hbWUpKSB7XG4gICAgICAvLyB0aGUgbmFtZSBpcyBhIGxhdGUtYm91bmQgdmFsdWUsIG5vdCBhIGRlZmluZWQgc3RyaW5nLCBzbyBza2lwIHZhbGlkYXRpb25cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBMZW5ndGggdmFsaWRhdGlvblxuICAgIGlmIChidWNrZXROYW1lLmxlbmd0aCA8IDMgfHwgYnVja2V0TmFtZS5sZW5ndGggPiA2Mykge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdCdWNrZXQgbmFtZSBtdXN0IGJlIGF0IGxlYXN0IDMgYW5kIG5vIG1vcmUgdGhhbiA2MyBjaGFyYWN0ZXJzJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ2hhcmFjdGVyIHNldCB2YWxpZGF0aW9uXG4gICAgY29uc3QgaWxsZWdhbENoYXJzZXRSZWdFeCA9IC9bXmEtejAtOS1dLztcbiAgICBjb25zdCBhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeCA9IC9bYS16MC05XS87XG5cbiAgICBjb25zdCBpbGxlZ2FsQ2hhck1hdGNoID0gYnVja2V0TmFtZS5tYXRjaChpbGxlZ2FsQ2hhcnNldFJlZ0V4KTtcbiAgICBpZiAoaWxsZWdhbENoYXJNYXRjaCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdCdWNrZXQgbmFtZSBtdXN0IG9ubHkgY29udGFpbiBsb3dlcmNhc2UgY2hhcmFjdGVycywgbnVtYmVycywgYW5kIGh5cGhlbnMgKC0pJyArXG4gICAgICAgICAgYCAob2Zmc2V0OiAke2lsbGVnYWxDaGFyTWF0Y2guaW5kZXh9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgY2hhcmFjdGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QoYnVja2V0TmFtZS5jaGFyQXQoMCkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ0J1Y2tldCBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6IDApJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICFhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeC50ZXN0KGJ1Y2tldE5hbWUuY2hhckF0KGJ1Y2tldE5hbWUubGVuZ3RoIC0gMSkpXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYEJ1Y2tldCBuYW1lIG11c3QgZW5kIHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAke1xuICAgICAgICAgIGJ1Y2tldE5hbWUubGVuZ3RoIC0gMVxuICAgICAgICB9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAnSW52YWxpZFRhYmxlQnVja2V0TmFtZScsXG4gICAgICAgIGBJbnZhbGlkIFMzIHRhYmxlIGJ1Y2tldCBuYW1lICh2YWx1ZTogJHtidWNrZXROYW1lfSkke0VPTH0ke2Vycm9ycy5qb2luKEVPTCl9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRocm93cyBhbiBleGNlcHRpb24gaWYgdGhlIGdpdmVuIHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsUHJvcGVydHkgaXMgbm90IHZhbGlkLlxuICAgKiBAcGFyYW0gdW5yZWZlcmVuY2VkRmlsZVJlbW92YWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZVVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKFxuICAgIHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsPzogVW5yZWZlcmVuY2VkRmlsZVJlbW92YWwsXG4gICk6IHZvaWQge1xuICAgIC8vIFNraXAgdmFsaWRhdGlvbiBpZiBwcm9wZXJ0eSBpcyBub3QgZGVmaW5lZFxuICAgIGlmICghdW5yZWZlcmVuY2VkRmlsZVJlbW92YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IG5vbmN1cnJlbnREYXlzLCBzdGF0dXMsIHVucmVmZXJlbmNlZERheXMgfSA9IHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsO1xuXG4gICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKG5vbmN1cnJlbnREYXlzICE9IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKG5vbmN1cnJlbnREYXlzIDwgMSkge1xuICAgICAgICBlcnJvcnMucHVzaCgnbm9uY3VycmVudERheXMgbXVzdCBiZSBhdCBsZWFzdCAxIGRheScpO1xuICAgICAgfVxuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKG5vbmN1cnJlbnREYXlzKSkge1xuICAgICAgICBlcnJvcnMucHVzaCgnbm9uY3VycmVudERheXMgbXVzdCBiZSBhIHdob2xlIG51bWJlcicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1bnJlZmVyZW5jZWREYXlzICE9IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHVucmVmZXJlbmNlZERheXMgPCAxKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKCd1bnJlZmVyZW5jZWREYXlzIG11c3QgYmUgYXQgbGVhc3QgMSBkYXknKTtcbiAgICAgIH1cbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihub25jdXJyZW50RGF5cykpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goJ3VucmVmZXJlbmNlZERheXMgbXVzdCBiZSBhIHdob2xlIG51bWJlcicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFsbG93ZWRTdGF0dXMgPSBbJ0VuYWJsZWQnLCAnRGlzYWJsZWQnXTtcbiAgICBpZiAoc3RhdHVzICE9IHVuZGVmaW5lZCAmJiAhYWxsb3dlZFN0YXR1cy5pbmNsdWRlcyhzdGF0dXMpKSB7XG4gICAgICBlcnJvcnMucHVzaCgnc3RhdHVzIG11c3QgYmUgb25lIG9mIFxcJ0VuYWJsZWRcXCcgb3IgXFwnRGlzYWJsZWRcXCcnKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgJ0ludmFsaWRVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFByb3BlcnR5JyxcbiAgICAgICAgYEludmFsaWQgVW5yZWZlcmVuY2VkRmlsZVJlbW92YWxQcm9wZXJ0eX0pJHtFT0x9JHtlcnJvcnMuam9pbihFT0wpfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5kZXJseWluZyBDZm5UYWJsZUJ1Y2tldCBMMSByZXNvdXJjZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IHMzdGFibGVzLkNmblRhYmxlQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFnIG1hbmFnZXIgZm9yIHRoaXMgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrVGFnTWFuYWdlcjogVGFnTWFuYWdlcjtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIHBvbGljeSBmb3IgdGhpcyB0YWJsZUJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldFBvbGljeT86IFRhYmxlQnVja2V0UG9saWN5O1xuXG4gIHB1YmxpYyByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXkgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYWJsZUJ1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnRhYmxlQnVja2V0TmFtZSxcbiAgICB9KTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgVGFibGVCdWNrZXQudmFsaWRhdGVUYWJsZUJ1Y2tldE5hbWUocHJvcHMudGFibGVCdWNrZXROYW1lKTtcbiAgICBUYWJsZUJ1Y2tldC52YWxpZGF0ZVVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKHByb3BzLnVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKTtcbiAgICBjb25zdCB7IGJ1Y2tldEVuY3J5cHRpb24sIGVuY3J5cHRpb25LZXkgfSA9IHRoaXMucGFyc2VFbmNyeXB0aW9uKHByb3BzKTtcbiAgICB0aGlzLmVuY3J5cHRpb25LZXkgPSBlbmNyeXB0aW9uS2V5O1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBzM3RhYmxlcy5DZm5UYWJsZUJ1Y2tldCh0aGlzLCBpZCwge1xuICAgICAgdGFibGVCdWNrZXROYW1lOiBwcm9wcy50YWJsZUJ1Y2tldE5hbWUsXG4gICAgICB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbDoge1xuICAgICAgICAuLi5wcm9wcy51bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCxcbiAgICAgICAgbm9uY3VycmVudERheXM6IHByb3BzLnVucmVmZXJlbmNlZEZpbGVSZW1vdmFsPy5ub25jdXJyZW50RGF5cyxcbiAgICAgICAgdW5yZWZlcmVuY2VkRGF5czogcHJvcHMudW5yZWZlcmVuY2VkRmlsZVJlbW92YWw/LnVucmVmZXJlbmNlZERheXMsXG4gICAgICB9LFxuICAgICAgZW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IGJ1Y2tldEVuY3J5cHRpb24sXG4gICAgICBtZXRyaWNzQ29uZmlndXJhdGlvbjogcHJvcHMucmVxdWVzdE1ldHJpY3NTdGF0dXMgPyB7IHN0YXR1czogcHJvcHMucmVxdWVzdE1ldHJpY3NTdGF0dXMgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMuY2RrVGFnTWFuYWdlciA9IHRoaXMucmVzb3VyY2UuY2RrVGFnTWFuYWdlcjtcbiAgICB0aGlzLnJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgdGFibGVCdWNrZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMucmVzb3VyY2UucmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChhcm4pIG9mIHRoaXMgdGFibGUgYnVja2V0XG4gICAqL1xuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCB0YWJsZUJ1Y2tldEFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmF0dHJUYWJsZUJ1Y2tldEFybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdXAga2V5IHByb3BlcnRpZXMgYW5kIHJldHVybiB0aGUgQnVja2V0IGVuY3J5cHRpb24gcHJvcGVydHkgZnJvbSB0aGVcbiAgICogdXNlcidzIGNvbmZpZ3VyYXRpb24sIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHRhYmxlOlxuICAgKlxuICAgKiB8IHByb3BzLmVuY3J5cHRpb24gfCBwcm9wcy5lbmNyeXB0aW9uS2V5IHwgYnVja2V0RW5jcnlwdGlvbiAocmV0dXJuIHZhbHVlKSB8IGVuY3J5cHRpb25LZXkgKHJldHVybiB2YWx1ZSkgIHxcbiAgICogfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gICAqIHwgdW5kZWZpbmVkICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8IHVuZGVmaW5lZCAgICAgICAgfCBrICAgICAgICAgICAgICAgICAgIHwgYXdzOmttcyAgICAgICAgICAgICAgICAgICAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBLTVMgICAgICAgICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICB8IGF3czprbXMgICAgICAgICAgICAgICAgICAgICAgICAgfCBuZXcga2V5IChhbGxvdyBtYWludGVuYW5jZSBTUCl8XG4gICAqIHwgS01TICAgICAgICAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgfCBhd3M6a21zICAgICAgICAgICAgICAgICAgICAgICAgIHwgayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8IFMzX01BTkFHRUQgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgIHwgQUVTMjU2ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBTM19NQU5BR0VEICAgICAgIHwgayAgICAgICAgICAgICAgICAgICB8IEVSUk9SISAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFUlJPUiEgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAqL1xuICBwcml2YXRlIHBhcnNlRW5jcnlwdGlvbihwcm9wczogVGFibGVCdWNrZXRQcm9wcyk6IHtcbiAgICBidWNrZXRFbmNyeXB0aW9uPzogczN0YWJsZXMuQ2ZuVGFibGVCdWNrZXQuRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eTtcbiAgICBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG4gIH0ge1xuICAgIGNvbnN0IGVuY3J5cHRpb25UeXBlID0gcHJvcHMuZW5jcnlwdGlvbjtcbiAgICBsZXQga2V5ID0gcHJvcHMuZW5jcnlwdGlvbktleTtcblxuICAgIGlmIChlbmNyeXB0aW9uVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICByZXR1cm4geyBidWNrZXRFbmNyeXB0aW9uOiB1bmRlZmluZWQsIGVuY3J5cHRpb25LZXk6IHVuZGVmaW5lZCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAgICBrbXNLZXlBcm46IGtleS5rZXlBcm4sXG4gICAgICAgICAgICBzc2VBbGdvcml0aG06IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5LTVMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbmNyeXB0aW9uS2V5OiBrZXksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVuY3J5cHRpb25UeXBlID09PSBUYWJsZUJ1Y2tldEVuY3J5cHRpb24uS01TKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICBrZXkgPSBuZXcga21zLktleSh0aGlzLCAnS2V5Jywge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQ3JlYXRlZCBieSAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICAgICAgZW5hYmxlS2V5Um90YXRpb246IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFsbG93VGFibGVzTWFpbnRlbmFuY2VBY2Nlc3NUb0tleShrZXksIHByb3BzLnRhYmxlQnVja2V0TmFtZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBidWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAga21zS2V5QXJuOiBrZXkua2V5QXJuLFxuICAgICAgICAgIHNzZUFsZ29yaXRobTogVGFibGVCdWNrZXRFbmNyeXB0aW9uLktNUyxcbiAgICAgICAgfSxcbiAgICAgICAgZW5jcnlwdGlvbktleToga2V5LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoZW5jcnlwdGlvblR5cGUgPT09IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VEKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJ1Y2tldEVuY3J5cHRpb246IHtcbiAgICAgICAgICAgIHNzZUFsZ29yaXRobTogVGFibGVCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcignSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uJywgJ0V4cGVjdGVkIGVuY3J5cHRpb24gPSBgS01TYCB3aXRoIHVzZXIgcHJvdmlkZWQgZW5jcnlwdGlvbiBrZXknKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKCdVbmtub3duRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24nLCBgVW5rbm93biBlbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24gZGV0ZWN0ZWQ6ICR7cHJvcHMuZW5jcnlwdGlvbn0gd2l0aCBrZXkgJHtwcm9wcy5lbmNyeXB0aW9uS2V5fWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93bGlzdCBTMyBUYWJsZXMgTWFpbnRlbmFuY2UgdG8gYWNjZXNzIHRoaXMgdGFibGUgYnVja2V0J3MgZW5jcnlwdGlvbiBrZXlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZXMta21zLXBlcm1pc3Npb25zLmh0bWxcbiAgICogQHBhcmFtIGVuY3J5cHRpb25LZXkgVGhlIGtleSB0byBwcm92aWRlIGFjY2VzcyB0b1xuICAgKi9cbiAgcHJpdmF0ZSBhbGxvd1RhYmxlc01haW50ZW5hbmNlQWNjZXNzVG9LZXkoZW5jcnlwdGlvbktleToga21zLklLZXksIHRhYmxlQnVja2V0TmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVnaW9uID0gdGhpcy5zdGFjay5yZWdpb247XG4gICAgY29uc3QgYWNjb3VudCA9IHRoaXMuc3RhY2suYWNjb3VudDtcbiAgICBjb25zdCBwYXJ0aXRpb24gPSB0aGlzLnN0YWNrLnBhcnRpdGlvbjtcblxuICAgIGVuY3J5cHRpb25LZXkuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdBbGxvd1MzVGFibGVzTWFpbnRlbmFuY2VBY2Nlc3MnLFxuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgcHJpbmNpcGFsczogW1xuICAgICAgICBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ21haW50ZW5hbmNlLnMzdGFibGVzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIF0sXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5JyxcbiAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdMaWtlOiB7XG4gICAgICAgICAgJ2ttczpFbmNyeXB0aW9uQ29udGV4dDphd3M6czM6YXJuJzogYGFybjoke3BhcnRpdGlvbn06czN0YWJsZXM6JHtyZWdpb259OiR7YWNjb3VudH06YnVja2V0LyR7dGFibGVCdWNrZXROYW1lfS8qYCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSkpO1xuICB9XG59XG5cbiJdfQ==
|
|
489
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFibGUtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUF5QjtBQUN6QiwyQ0FBMkM7QUFDM0MsMkNBQTJDO0FBQzNDLHFEQUFxRDtBQUVyRCwyQ0FBNEU7QUFDNUUsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFFMUUsdUNBQXVDO0FBQ3ZDLCtEQUEwRDtBQUMxRCxpQ0FBdUQ7QUEwSHZEOztHQUVHO0FBQ0gsSUFBWSw2QkFVWDtBQVZELFdBQVksNkJBQTZCO0lBQ3ZDOztPQUVHO0lBQ0gsb0RBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxzREFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVlcsNkJBQTZCLDZDQUE3Qiw2QkFBNkIsUUFVeEM7QUFFRDs7R0FFRztBQUNILElBQVksb0JBVVg7QUFWRCxXQUFZLG9CQUFvQjtJQUM5Qjs7T0FFRztJQUNILDJDQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsNkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVZXLG9CQUFvQixvQ0FBcEIsb0JBQW9CLFFBVS9CO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLHFCQVdYO0FBWEQsV0FBWSxxQkFBcUI7SUFDL0I7OztPQUdHO0lBQ0gsd0NBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsOENBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVhXLHFCQUFxQixxQ0FBckIscUJBQXFCLFFBV2hDO0FBRUQsTUFBZSxlQUFnQixTQUFRLGVBQVE7SUFvQjdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUJHO0lBQ0ksbUJBQW1CLENBQ3hCLFNBQThCO1FBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElB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QUFNLElBQUksOEJBQXVCLENBQUMsSUFBQSxzQkFBRyxFQUFBLGdDQUFnQyxFQUFFLDhDQUE4QyxLQUFLLENBQUMsVUFBVSxhQUFhLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1NBQzFLO1FBRUQ7Ozs7O1dBS0c7UUFDSyxpQ0FBaUMsQ0FBQyxhQUF1QixFQUFFLGVBQXVCO1lBQ3hGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ25DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBRXZDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7Z0JBQ3hELEdBQUcsRUFBRSxnQ0FBZ0M7Z0JBQ3JDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7Z0JBQ3hCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDL0Q7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHFCQUFxQjtvQkFDckIsYUFBYTtpQkFDZDtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hCLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUU7d0JBQ1Ysa0NBQWtDLEVBQUUsT0FBTyxTQUFTLGFBQWEsTUFBTSxJQUFJLE9BQU8sV0FBVyxlQUFlLElBQUk7cUJBQ2pIO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDLENBQUM7U0FDTDs7WUEzVFUsdURBQVc7Ozs7O0FBQVgsa0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFT0wgfSBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgKiBhcyBzM3RhYmxlcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczN0YWJsZXMnO1xuaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UsIElUYWdnYWJsZVYyLCBSZW1vdmFsUG9saWN5LCBUYWdNYW5hZ2VyIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBSZXNvdXJjZSwgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IsIFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBtZW1vaXplZEdldHRlciwgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgcGVybXMgZnJvbSAnLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgeyBUYWJsZUJ1Y2tldFBvbGljeSB9IGZyb20gJy4vdGFibGUtYnVja2V0LXBvbGljeSc7XG5pbXBvcnQgeyB2YWxpZGF0ZVRhYmxlQnVja2V0QXR0cmlidXRlcyB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogSW50ZXJmYWNlIGRlZmluaXRpb24gZm9yIFMzIFRhYmxlIEJ1Y2tldHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVGFibGVCdWNrZXQgZXh0ZW5kcyBJUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjY291bnRJZCBjb250YWluaW5nIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gY29udGFpbmluZyB0aGUgdGFibGUgYnVja2V0LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIEtNUyBlbmNyeXB0aW9uIGtleSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWJsZSBidWNrZXQuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQvb3IgaXRzXG4gICAqIHRhYmxlcy5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZSBwb2xpY3kgc3RhdGVtZW50IG1heSBvciBtYXkgbm90IGJlIGFkZGVkIHRvIHRoZSBwb2xpY3kuXG4gICAqIEZvciBleGFtcGxlLCB3aGVuIGFuIGBJVGFibGVCdWNrZXRgIGlzIGNyZWF0ZWQgZnJvbSBhbiBleGlzdGluZyB0YWJsZSBidWNrZXQsXG4gICAqIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgd2hldGhlciB0aGUgYnVja2V0IGFscmVhZHkgaGFzIGEgcG9saWN5XG4gICAqIGF0dGFjaGVkLCBsZXQgYWxvbmUgdG8gcmUtdXNlIHRoYXQgcG9saWN5IHRvIGFkZCBtb3JlIHN0YXRlbWVudHMgdG8gaXQuXG4gICAqIFNvIGl0J3Mgc2FmZXN0IHRvIGRvIG5vdGhpbmcgaW4gdGhlc2UgY2FzZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgdG8gYmUgYWRkZWQgdG8gdGhlIGJ1Y2tldCdzXG4gICAqIHBvbGljeS5cbiAgICogQHJldHVybnMgbWV0YWRhdGEgYWJvdXQgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIG1ldGhvZC4gSWYgdGhlIHBvbGljeVxuICAgKiB3YXMgbm90IGFkZGVkLCB0aGUgdmFsdWUgb2YgYHN0YXRlbWVudEFkZGVkYCB3aWxsIGJlIGBmYWxzZWAuIFlvdVxuICAgKiBzaG91bGQgYWx3YXlzIGNoZWNrIHRoaXMgdmFsdWUgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIG9wZXJhdGlvbiB3YXNcbiAgICogYWN0dWFsbHkgY2FycmllZCBvdXQuIE90aGVyd2lzZSwgc3ludGhlc2lzIGFuZCBkZXBsb3kgd2lsbCB0ZXJtaW5hdGVcbiAgICogc2lsZW50bHksIHdoaWNoIG1heSBiZSBjb25mdXNpbmcuXG4gICAqL1xuICBhZGRUb1Jlc291cmNlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIGZvciB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQgaXRzIHRhYmxlc1xuICAgKiB0byBhbiBJQU0gcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZGVjcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIHRhYmxlSWQgQWxsb3cgdGhlIHBlcm1pc3Npb25zIHRvIGFsbCB0YWJsZXMgdXNpbmcgJyonIG9yIHRvIHNpbmdsZSB0YWJsZSBieSBpdHMgdW5pcXVlIElELlxuICAgKi9cbiAgZ3JhbnRSZWFkKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSBidWNrZXQgYW5kIGl0cyB0YWJsZXNcbiAgICogdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQgdGhlIGNvbnRlbnRzXG4gICAqIG9mIHRoZSBidWNrZXQgd2lsbCBhbHNvIGJlIGdyYW50ZWQgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbCB0byBhbGxvdyB3cml0ZSBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcGFyYW0gdGFibGVJZCBBbGxvdyB0aGUgcGVybWlzc2lvbnMgdG8gYWxsIHRhYmxlcyB1c2luZyAnKicgb3IgdG8gc2luZ2xlIHRhYmxlIGJ5IGl0cyB1bmlxdWUgSUQuXG4gICAqL1xuICBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyB0YWJsZSBidWNrZXQgYW5kIGl0cyB0YWJsZXNcbiAgICogdG8gYW4gSUFNIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQvZGVjcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsIHRvIGFsbG93IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvXG4gICAqIEBwYXJhbSB0YWJsZUlkIEFsbG93IHRoZSBwZXJtaXNzaW9ucyB0byBhbGwgdGFibGVzIHVzaW5nICcqJyBvciB0byBzaW5nbGUgdGFibGUgYnkgaXRzIHVuaXF1ZSBJRC5cbiAgICovXG4gIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKTogaWFtLkdyYW50O1xufVxuXG4vKipcbiAqIFVucmVmZXJlbmNlZCBmaWxlIHJlbW92YWwgc2V0dGluZ3MgZm9yIHRoZSB0aGlzIHRhYmxlIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCB7XG4gIC8qKlxuICAgKiBEdXJhdGlvbiBhZnRlciB3aGljaCBub25jdXJyZW50IGZpbGVzIHNob3VsZCBiZSByZW1vdmVkLiBTaG91bGQgYmUgYXQgbGVhc3Qgb25lIGRheS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZS1idWNrZXRzLW1haW50ZW5hbmNlLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTZWUgUzMgVGFibGVzIFVzZXIgR3VpZGVcbiAgICovXG4gIHJlYWRvbmx5IG5vbmN1cnJlbnREYXlzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdGF0dXMgb2YgdW5yZWZlcmVuY2VkIGZpbGUgcmVtb3ZhbC4gQ2FuIGJlIEVuYWJsZWQgb3IgRGlzYWJsZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGUtYnVja2V0cy1tYWludGVuYW5jZS5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU2VlIFMzIFRhYmxlcyBVc2VyIEd1aWRlXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFN0YXR1cztcblxuICAvKipcbiAgICogRHVyYXRpb24gYWZ0ZXIgd2hpY2ggdW5yZWZlcmVuY2VkIGZpbGVzIHNob3VsZCBiZSByZW1vdmVkLiBTaG91bGQgYmUgYXQgbGVhc3Qgb25lIGRheS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZS1idWNrZXRzLW1haW50ZW5hbmNlLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBTZWUgUzMgVGFibGVzIFVzZXIgR3VpZGVcbiAgICovXG4gIHJlYWRvbmx5IHVucmVmZXJlbmNlZERheXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29udHJvbHMgd2hldGhlciB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsIGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBlbnVtIFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsU3RhdHVzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsLlxuICAgKi9cbiAgRU5BQkxFRCA9ICdFbmFibGVkJyxcblxuICAvKipcbiAgICogRGlzYWJsZSB1bnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsLlxuICAgKi9cbiAgRElTQUJMRUQgPSAnRGlzYWJsZWQnLFxufVxuXG4vKipcbiAqIENvbnRyb2xzIHdoZXRoZXIgQ2xvdWRXYXRjaCByZXF1ZXN0IG1ldHJpY3MgYXJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gKi9cbmV4cG9ydCBlbnVtIFJlcXVlc3RNZXRyaWNzU3RhdHVzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBDbG91ZFdhdGNoIHJlcXVlc3QgbWV0cmljcyBmb3IgdGhlIHRhYmxlIGJ1Y2tldC5cbiAgICovXG4gIEVOQUJMRUQgPSAnRW5hYmxlZCcsXG5cbiAgLyoqXG4gICAqIERpc2FibGUgQ2xvdWRXYXRjaCByZXF1ZXN0IG1ldHJpY3MgZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqL1xuICBESVNBQkxFRCA9ICdEaXNhYmxlZCcsXG59XG5cbi8qKlxuICogQ29udHJvbHMgU2VydmVyIFNpZGUgRW5jcnlwdGlvbiAoU1NFKSBmb3IgdGhpcyBUYWJsZUJ1Y2tldC5cbiAqL1xuZXhwb3J0IGVudW0gVGFibGVCdWNrZXRFbmNyeXB0aW9uIHtcbiAgLyoqXG4gICAqIFVzZSBhIGN1c3RvbWVyIGRlZmluZWQgS01TIGtleSBmb3IgZW5jcnlwdGlvblxuICAgKiBJZiBgZW5jcnlwdGlvbktleWAgaXMgc3BlY2lmaWVkLCB0aGlzIGtleSB3aWxsIGJlIHVzZWQsIG90aGVyd2lzZSwgb25lIHdpbGwgYmUgZGVmaW5lZC5cbiAgICovXG4gIEtNUyA9ICdhd3M6a21zJyxcblxuICAvKipcbiAgICogVXNlIFMzIG1hbmFnZWQgZW5jcnlwdGlvbiBrZXlzIHdpdGggQUVTMjU2IGVuY3J5cHRpb25cbiAgICovXG4gIFMzX01BTkFHRUQgPSAnQUVTMjU2Jyxcbn1cblxuYWJzdHJhY3QgY2xhc3MgVGFibGVCdWNrZXRCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJVGFibGVCdWNrZXQge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVCdWNrZXRBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgcG9saWN5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhYmxlIGJ1Y2tldC5cbiAgICpcbiAgICogSWYgYGF1dG9DcmVhdGVQb2xpY3lgIGlzIHRydWUsIGEgYFRhYmxlQnVja2V0UG9saWN5YCB3aWxsIGJlIGNyZWF0ZWQgdXBvbiB0aGVcbiAgICogZmlyc3QgY2FsbCB0byBhZGRUb1Jlc291cmNlUG9saWN5KHMpLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHRhYmxlQnVja2V0UG9saWN5PzogVGFibGVCdWNrZXRQb2xpY3k7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiBhIHRhYmxlIGJ1Y2tldCByZXNvdXJjZSBwb2xpY3kgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uXG4gICAqIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1Jlc291cmNlUG9saWN5YC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXkgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIHRhYmxlIGJ1Y2tldCBhbmQvb3IgaXRzXG4gICAqIGNvbnRlbnRzLiBVc2UgYHRhYmxlQnVja2V0QXJuYCBhbmQgYGFybkZvck9iamVjdHMoa2V5cylgIHRvIG9idGFpbiBBUk5zIGZvclxuICAgKiB0aGlzIGJ1Y2tldCBvciBvYmplY3RzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgbWF5IG9yIG1heSBub3QgYmUgYWRkZWQgdG8gdGhlIHBvbGljeS5cbiAgICogRm9yIGV4YW1wbGUsIHdoZW4gYW4gYElUYWJsZUJ1Y2tldGAgaXMgY3JlYXRlZCBmcm9tIGFuIGV4aXN0aW5nIHRhYmxlIGJ1Y2tldCxcbiAgICogaXQncyBub3QgcG9zc2libGUgdG8gdGVsbCB3aGV0aGVyIHRoZSBidWNrZXQgYWxyZWFkeSBoYXMgYSBwb2xpY3lcbiAgICogYXR0YWNoZWQsIGxldCBhbG9uZSB0byByZS11c2UgdGhhdCBwb2xpY3kgdG8gYWRkIG1vcmUgc3RhdGVtZW50cyB0byBpdC5cbiAgICogU28gaXQncyBzYWZlc3QgdG8gZG8gbm90aGluZyBpbiB0aGVzZSBjYXNlcy5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCB0aGUgcG9saWN5IHN0YXRlbWVudCB0byBiZSBhZGRlZCB0byB0aGUgYnVja2V0J3NcbiAgICogcG9saWN5LlxuICAgKiBAcmV0dXJucyBtZXRhZGF0YSBhYm91dCB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgbWV0aG9kLiBJZiB0aGUgcG9saWN5XG4gICAqIHdhcyBub3QgYWRkZWQsIHRoZSB2YWx1ZSBvZiBgc3RhdGVtZW50QWRkZWRgIHdpbGwgYmUgYGZhbHNlYC4gWW91XG4gICAqIHNob3VsZCBhbHdheXMgY2hlY2sgdGhpcyB2YWx1ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb3BlcmF0aW9uIHdhc1xuICAgKiBhY3R1YWxseSBjYXJyaWVkIG91dC4gT3RoZXJ3aXNlLCBzeW50aGVzaXMgYW5kIGRlcGxveSB3aWxsIHRlcm1pbmF0ZVxuICAgKiBzaWxlbnRseSwgd2hpY2ggbWF5IGJlIGNvbmZ1c2luZy5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy50YWJsZUJ1Y2tldFBvbGljeSAmJiB0aGlzLmF1dG9DcmVhdGVQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVCdWNrZXRQb2xpY3kgPSBuZXcgVGFibGVCdWNrZXRQb2xpY3kodGhpcywgJ0RlZmF1bHRQb2xpY3knLCB7XG4gICAgICAgIHRhYmxlQnVja2V0OiB0aGlzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGFibGVCdWNrZXRQb2xpY3kpIHtcbiAgICAgIHRoaXMudGFibGVCdWNrZXRQb2xpY3kuZG9jdW1lbnQuYWRkU3RhdGVtZW50cyhzdGF0ZW1lbnQpO1xuICAgICAgcmV0dXJuIHsgc3RhdGVtZW50QWRkZWQ6IHRydWUsIHBvbGljeURlcGVuZGFibGU6IHRoaXMudGFibGVCdWNrZXRQb2xpY3kgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogZmFsc2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoaWRlbnRpdHk6IGlhbS5JR3JhbnRhYmxlLCB0YWJsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGlkZW50aXR5LFxuICAgICAgcGVybXMuVEFCTEVfQlVDS0VUX1JFQURfQUNDRVNTLFxuICAgICAgcGVybXMuS0VZX1JFQURfQUNDRVNTLFxuICAgICAgdGhpcy50YWJsZUJ1Y2tldEFybixcbiAgICAgIHRoaXMuZ2V0VGFibGVBcm4odGFibGVJZCksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICovXG4gIHB1YmxpYyBncmFudFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX0JVQ0tFVF9XUklURV9BQ0NFU1MsXG4gICAgICBwZXJtcy5LRVlfUkVBRF9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQnVja2V0QXJuLFxuICAgICAgdGhpcy5nZXRUYWJsZUFybih0YWJsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBpYW0uSUdyYW50YWJsZSwgdGFibGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoXG4gICAgICBpZGVudGl0eSxcbiAgICAgIHBlcm1zLlRBQkxFX0JVQ0tFVF9SRUFEX1dSSVRFX0FDQ0VTUyxcbiAgICAgIHBlcm1zLktFWV9XUklURV9BQ0NFU1MsXG4gICAgICB0aGlzLnRhYmxlQnVja2V0QXJuLFxuICAgICAgdGhpcy5nZXRUYWJsZUFybih0YWJsZUlkKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyB0aGUgZ2l2ZW4gczN0YWJsZXMgcGVybWlzc2lvbnMgdG8gdGhlIHByb3ZpZGVkIHByaW5jaXBhbFxuICAgKiBAcmV0dXJucyBHcmFudCBvYmplY3RcbiAgICovXG4gIHByaXZhdGUgZ3JhbnQoXG4gICAgZ3JhbnRlZTogaWFtLklHcmFudGFibGUsXG4gICAgdGFibGVCdWNrZXRBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICBrZXlBY3Rpb25zOiBzdHJpbmdbXSxcbiAgICByZXNvdXJjZUFybjogc3RyaW5nLFxuICAgIC4uLm90aGVyUmVzb3VyY2VBcm5zOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdKSB7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gW3Jlc291cmNlQXJuLCAuLi5vdGhlclJlc291cmNlQXJuc10uZmlsdGVyKGFybiA9PiBhcm4gIT0gdW5kZWZpbmVkKTtcblxuICAgIGNvbnN0IGdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsT3JSZXNvdXJjZSh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogdGFibGVCdWNrZXRBY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiByZXNvdXJjZXMsXG4gICAgICByZXNvdXJjZTogdGhpcyxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmVuY3J5cHRpb25LZXkgJiYga2V5QWN0aW9ucyAmJiBrZXlBY3Rpb25zLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhpcy5lbmNyeXB0aW9uS2V5LmdyYW50KGdyYW50ZWUsIC4uLmtleUFjdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBncmFudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFibGVBcm4odGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHRhYmxlSWQgPyBgJHt0aGlzLnRhYmxlQnVja2V0QXJufS90YWJsZS8ke3RhYmxlSWR9YCA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNvbnN0cnVjdGluZyBhIFRhYmxlQnVja2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVCdWNrZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBTMyBUYWJsZUJ1Y2tldC5cbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGVzLWJ1Y2tldHMtbmFtaW5nLmh0bWwjdGFibGUtYnVja2V0cy1uYW1pbmctcnVsZXNcbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlQnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbnJlZmVyZW5jZWQgZmlsZSByZW1vdmFsIHNldHRpbmdzIGZvciB0aGUgUzMgVGFibGVCdWNrZXQuXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXMzdGFibGVzLXRhYmxlYnVja2V0LXVucmVmZXJlbmNlZGZpbGVyZW1vdmFsLmh0bWxcbiAgICogQGRlZmF1bHQgRW5hYmxlZCB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvczMtdGFibGUtYnVja2V0cy1tYWludGVuYW5jZS5odG1sXG4gICAqL1xuICByZWFkb25seSB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbD86IFVucmVmZXJlbmNlZEZpbGVSZW1vdmFsO1xuXG4gIC8qKlxuICAgKiBBV1MgcmVnaW9uIHRoYXQgdGhlIHRhYmxlIGJ1Y2tldCBleGlzdHMgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaXQncyBhc3N1bWVkIHRoZSBidWNrZXQgaXMgaW4gdGhlIHNhbWUgcmVnaW9uIGFzIHRoZSBzY29wZSBpdCdzIGJlaW5nIGltcG9ydGVkIGludG9cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQVdTIEFjY291bnQgSUQgb2YgdGhlIHRhYmxlIGJ1Y2tldCBvd25lci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBpdCdzIGFzc3VtZWQgdGhlIGJ1Y2tldCBiZWxvbmdzIHRvIHRoZSBzYW1lIGFjY291bnQgYXMgdGhlIHNjb3BlIGl0J3MgYmVpbmcgaW1wb3J0ZWQgaW50b1xuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGtpbmQgb2Ygc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0byBhcHBseSB0byB0aGlzIGJ1Y2tldC5cbiAgICpcbiAgICogSWYgeW91IGNob29zZSBLTVMsIHlvdSBjYW4gc3BlY2lmeSBhIEtNUyBrZXkgdmlhIGBlbmNyeXB0aW9uS2V5YC4gSWZcbiAgICogZW5jcnlwdGlvbiBrZXkgaXMgbm90IHNwZWNpZmllZCwgYSBrZXkgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYEtNU2AgaWYgYGVuY3J5cHRpb25LZXlgIGlzIHNwZWNpZmllZCwgb3IgYFMzX01BTkFHRURgIG90aGVyd2lzZS5cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBUYWJsZUJ1Y2tldEVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIEV4dGVybmFsIEtNUyBrZXkgdG8gdXNlIGZvciBidWNrZXQgZW5jcnlwdGlvbi5cbiAgICpcbiAgICogVGhlIGBlbmNyeXB0aW9uYCBwcm9wZXJ0eSBtdXN0IGJlIGVpdGhlciBub3Qgc3BlY2lmaWVkIG9yIHNldCB0byBgS01TYC5cbiAgICogQW4gZXJyb3Igd2lsbCBiZSBlbWl0dGVkIGlmIGBlbmNyeXB0aW9uYCBpcyBzZXQgdG8gYFMzX01BTkFHRURgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIGBlbmNyeXB0aW9uYCBpcyBzZXQgdG8gYEtNU2AgYW5kIHRoaXMgcHJvcGVydHkgaXMgdW5kZWZpbmVkLFxuICAgKiBhIG5ldyBLTVMga2V5IHdpbGwgYmUgY3JlYXRlZCBhbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYnVja2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGF0IGhhcHBlbnMgdG8gdGhpcyB0YWJsZSBidWNrZXQgaXQgaXQgc3RvcGVkIGJlaW5nIG1hbmFnZWQgYnkgY2xvdWRmb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IFJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIENsb3VkV2F0Y2ggcmVxdWVzdCBtZXRyaWNzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB0YWJsZSBidWNrZXQuXG4gICAqXG4gICAqIFdoZW4gZW5hYmxlZCwgUzMgVGFibGVzIHB1Ymxpc2hlcyBDbG91ZFdhdGNoIHJlcXVlc3QgbWV0cmljcyBmb3IgdGhlIHRhYmxlIGJ1Y2tldC5cbiAgICogUmVxdWVzdCBtZXRyaWNzIHByb3ZpZGUgaW5zaWdodCBpbnRvIEFtYXpvbiBTMyBUYWJsZXMgcmVxdWVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmVxdWVzdCBtZXRyaWNzIGFyZSBkaXNhYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdE1ldHJpY3NTdGF0dXM/OiBSZXF1ZXN0TWV0cmljc1N0YXR1cztcbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIHRhYmxlIGJ1Y2tldCBvdXRzaWRlIHRoaXMgc3RhY2tcbiAqXG4gKiBUaGUgdGFibGVCdWNrZXROYW1lLCByZWdpb24sIGFuZCBhY2NvdW50IGNhbiBiZSBwcm92aWRlZCBleHBsaWNpdGx5XG4gKiBvciB3aWxsIGJlIGluZmVycmVkIGZyb20gdGhlIHRhYmxlQnVja2V0QXJuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVCdWNrZXRBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIEFXUyByZWdpb24gdGhpcyB0YWJsZSBidWNrZXQgZXhpc3RzIGluXG4gICAqIEBkZWZhdWx0IHJlZ2lvbiBpbmZlcnJlZCBmcm9tIHNjb3BlXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50SWQgY29udGFpbmluZyB0aGlzIHRhYmxlIGJ1Y2tldFxuICAgKiBAZGVmYXVsdCBhY2NvdW50IGluZmVycmVkIGZyb20gc2NvcGVcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQgbmFtZSwgdW5pcXVlIHBlciByZWdpb25cbiAgICogQGRlZmF1bHQgdGFibGVCdWNrZXROYW1lIGluZmVycmVkIGZyb20gYXJuXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBidWNrZXQncyBBUk4uXG4gICAqIEBkZWZhdWx0IHRhYmxlQnVja2V0QXJuIGNvbnN0cnVjdGVkIGZyb20gcmVnaW9uLCBhY2NvdW50IGFuZCB0YWJsZUJ1Y2tldE5hbWUgYXJlIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSB0YWJsZUJ1Y2tldEFybj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgS01TIGVuY3J5cHRpb24ga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGJ1Y2tldC5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleTtcbn1cblxuLyoqXG4gKiBBbiBTMyB0YWJsZSBidWNrZXQgd2l0aCBoZWxwZXJzIGZvciBhc3NvY2lhdGVkIHJlc291cmNlIHBvbGljaWVzXG4gKlxuICogVGhpcyBidWNrZXQgbWF5IG5vdCB5ZXQgaGF2ZSBhbGwgZmVhdHVyZXMgdGhhdCBleHBvc2VkIGJ5IHRoZSB1bmRlcmx5aW5nIENmblRhYmxlQnVja2V0LlxuICpcbiAqIEBzdGF0ZWZ1bFxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHNhbXBsZVRhYmxlQnVja2V0ID0gbmV3IFRhYmxlQnVja2V0KHNjb3BlLCAnRXhhbXBsZVRhYmxlQnVja2V0Jywge1xuICogICB0YWJsZUJ1Y2tldE5hbWU6ICdleGFtcGxlLWJ1Y2tldCcsXG4gKiAgIC8vIE9wdGlvbmFsIGZpZWxkczpcbiAqICAgdW5yZWZlcmVuY2VkRmlsZVJlbW92YWw6IHtcbiAqICAgICBub25jdXJyZW50RGF5czogMTIzLFxuICogICAgIHN0YXR1czogVW5yZWZlcmVuY2VkRmlsZVJlbW92YWxTdGF0dXMuRU5BQkxFRCxcbiAqICAgICB1bnJlZmVyZW5jZWREYXlzOiAxMjMsXG4gKiAgIH0sXG4gKiB9KTtcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFRhYmxlQnVja2V0IGV4dGVuZHMgVGFibGVCdWNrZXRCYXNlIGltcGxlbWVudHMgSVRhZ2dhYmxlVjIge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1zM3RhYmxlcy1hbHBoYS5UYWJsZUJ1Y2tldCc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBUYWJsZUJ1Y2tldCBjb25zdHJ1Y3QgZnJvbSBhbiBleHRlcm5hbCB0YWJsZSBidWNrZXQgQVJOLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lLlxuICAgKiBAcGFyYW0gdGFibGVCdWNrZXRBcm4gQW1hem9uIFJlc291cmNlIE5hbWUgKGFybikgb2YgdGhlIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVGFibGVCdWNrZXRBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgdGFibGVCdWNrZXRBcm46IHN0cmluZyk6IElUYWJsZUJ1Y2tldCB7XG4gICAgcmV0dXJuIFRhYmxlQnVja2V0LmZyb21UYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IHRhYmxlQnVja2V0QXJuIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBUYWJsZUJ1Y2tldCBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIHRhYmxlIGJ1Y2tldC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZS5cbiAgICogQHBhcmFtIGF0dHJzIEEgYFRhYmxlQnVja2V0QXR0cmlidXRlc2Agb2JqZWN0LiBDYW4gYmUgbWFudWFsbHkgY3JlYXRlZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRhYmxlQnVja2V0QXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IFRhYmxlQnVja2V0QXR0cmlidXRlcyxcbiAgKTogSVRhYmxlQnVja2V0IHtcbiAgICBjb25zdCB7IHRhYmxlQnVja2V0TmFtZSwgcmVnaW9uLCBhY2NvdW50LCB0YWJsZUJ1Y2tldEFybiB9ID0gdmFsaWRhdGVUYWJsZUJ1Y2tldEF0dHJpYnV0ZXMoc2NvcGUsIGF0dHJzKTtcbiAgICBUYWJsZUJ1Y2tldC52YWxpZGF0ZVRhYmxlQnVja2V0TmFtZSh0YWJsZUJ1Y2tldE5hbWUpO1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFRhYmxlQnVja2V0QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFibGVCdWNrZXROYW1lID0gdGFibGVCdWNrZXROYW1lITtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldEFybiA9IHRhYmxlQnVja2V0QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhYmxlQnVja2V0UG9saWN5PzogVGFibGVCdWNrZXRQb2xpY3k7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcmVnaW9uID0gcmVnaW9uO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFjY291bnQgPSBhY2NvdW50O1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleSA9IGF0dHJzLmVuY3J5cHRpb25LZXk7XG4gICAgICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIEV4cG9ydHMgdGhpcyBidWNrZXQgZnJvbSB0aGUgc3RhY2suXG4gICAgICAgKi9cbiAgICAgIHB1YmxpYyBleHBvcnQoKSB7XG4gICAgICAgIHJldHVybiBhdHRycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGFjY291bnQsXG4gICAgICByZWdpb24sXG4gICAgICBwaHlzaWNhbE5hbWU6IHRhYmxlQnVja2V0TmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXhjZXB0aW9uIGlmIHRoZSBnaXZlbiB0YWJsZSBidWNrZXQgbmFtZSBpcyBub3QgdmFsaWQuXG4gICAqXG4gICAqIEBwYXJhbSBidWNrZXROYW1lIG5hbWUgb2YgdGhlIGJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVUYWJsZUJ1Y2tldE5hbWUoXG4gICAgYnVja2V0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICApIHtcbiAgICBpZiAoYnVja2V0TmFtZSA9PSB1bmRlZmluZWQgfHwgVG9rZW4uaXNVbnJlc29sdmVkKGJ1Y2tldE5hbWUpKSB7XG4gICAgICAvLyB0aGUgbmFtZSBpcyBhIGxhdGUtYm91bmQgdmFsdWUsIG5vdCBhIGRlZmluZWQgc3RyaW5nLCBzbyBza2lwIHZhbGlkYXRpb25cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBMZW5ndGggdmFsaWRhdGlvblxuICAgIGlmIChidWNrZXROYW1lLmxlbmd0aCA8IDMgfHwgYnVja2V0TmFtZS5sZW5ndGggPiA2Mykge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdCdWNrZXQgbmFtZSBtdXN0IGJlIGF0IGxlYXN0IDMgYW5kIG5vIG1vcmUgdGhhbiA2MyBjaGFyYWN0ZXJzJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ2hhcmFjdGVyIHNldCB2YWxpZGF0aW9uXG4gICAgY29uc3QgaWxsZWdhbENoYXJzZXRSZWdFeCA9IC9bXmEtejAtOS1dLztcbiAgICBjb25zdCBhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeCA9IC9bYS16MC05XS87XG5cbiAgICBjb25zdCBpbGxlZ2FsQ2hhck1hdGNoID0gYnVja2V0TmFtZS5tYXRjaChpbGxlZ2FsQ2hhcnNldFJlZ0V4KTtcbiAgICBpZiAoaWxsZWdhbENoYXJNYXRjaCkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICdCdWNrZXQgbmFtZSBtdXN0IG9ubHkgY29udGFpbiBsb3dlcmNhc2UgY2hhcmFjdGVycywgbnVtYmVycywgYW5kIGh5cGhlbnMgKC0pJyArXG4gICAgICAgICAgYCAob2Zmc2V0OiAke2lsbGVnYWxDaGFyTWF0Y2guaW5kZXh9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVkZ2UgY2hhcmFjdGVyIHZhbGlkYXRpb25cbiAgICBpZiAoIWFsbG93ZWRFZGdlQ2hhcnNldFJlZ0V4LnRlc3QoYnVja2V0TmFtZS5jaGFyQXQoMCkpKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgJ0J1Y2tldCBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxvd2VyY2FzZSBsZXR0ZXIgb3IgbnVtYmVyIChvZmZzZXQ6IDApJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICFhbGxvd2VkRWRnZUNoYXJzZXRSZWdFeC50ZXN0KGJ1Y2tldE5hbWUuY2hhckF0KGJ1Y2tldE5hbWUubGVuZ3RoIC0gMSkpXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaChcbiAgICAgICAgYEJ1Y2tldCBuYW1lIG11c3QgZW5kIHdpdGggYSBsb3dlcmNhc2UgbGV0dGVyIG9yIG51bWJlciAob2Zmc2V0OiAke1xuICAgICAgICAgIGJ1Y2tldE5hbWUubGVuZ3RoIC0gMVxuICAgICAgICB9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZFRhYmxlQnVja2V0TmFtZWAsXG4gICAgICAgIGBJbnZhbGlkIFMzIHRhYmxlIGJ1Y2tldCBuYW1lICh2YWx1ZTogJHtidWNrZXROYW1lfSkke0VPTH0ke2Vycm9ycy5qb2luKEVPTCl9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRocm93cyBhbiBleGNlcHRpb24gaWYgdGhlIGdpdmVuIHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsUHJvcGVydHkgaXMgbm90IHZhbGlkLlxuICAgKiBAcGFyYW0gdW5yZWZlcmVuY2VkRmlsZVJlbW92YWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZVVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKFxuICAgIHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsPzogVW5yZWZlcmVuY2VkRmlsZVJlbW92YWwsXG4gICk6IHZvaWQge1xuICAgIC8vIFNraXAgdmFsaWRhdGlvbiBpZiBwcm9wZXJ0eSBpcyBub3QgZGVmaW5lZFxuICAgIGlmICghdW5yZWZlcmVuY2VkRmlsZVJlbW92YWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IG5vbmN1cnJlbnREYXlzLCBzdGF0dXMsIHVucmVmZXJlbmNlZERheXMgfSA9IHVucmVmZXJlbmNlZEZpbGVSZW1vdmFsO1xuXG4gICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKG5vbmN1cnJlbnREYXlzICE9IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKG5vbmN1cnJlbnREYXlzIDwgMSkge1xuICAgICAgICBlcnJvcnMucHVzaCgnbm9uY3VycmVudERheXMgbXVzdCBiZSBhdCBsZWFzdCAxIGRheScpO1xuICAgICAgfVxuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKG5vbmN1cnJlbnREYXlzKSkge1xuICAgICAgICBlcnJvcnMucHVzaCgnbm9uY3VycmVudERheXMgbXVzdCBiZSBhIHdob2xlIG51bWJlcicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1bnJlZmVyZW5jZWREYXlzICE9IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHVucmVmZXJlbmNlZERheXMgPCAxKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKCd1bnJlZmVyZW5jZWREYXlzIG11c3QgYmUgYXQgbGVhc3QgMSBkYXknKTtcbiAgICAgIH1cbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihub25jdXJyZW50RGF5cykpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goJ3VucmVmZXJlbmNlZERheXMgbXVzdCBiZSBhIHdob2xlIG51bWJlcicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFsbG93ZWRTdGF0dXMgPSBbJ0VuYWJsZWQnLCAnRGlzYWJsZWQnXTtcbiAgICBpZiAoc3RhdHVzICE9IHVuZGVmaW5lZCAmJiAhYWxsb3dlZFN0YXR1cy5pbmNsdWRlcyhzdGF0dXMpKSB7XG4gICAgICBlcnJvcnMucHVzaCgnc3RhdHVzIG11c3QgYmUgb25lIG9mIFxcJ0VuYWJsZWRcXCcgb3IgXFwnRGlzYWJsZWRcXCcnKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YEludmFsaWRVbnJlZmVyZW5jZWRGaWxlUmVtb3ZhbFByb3BlcnR5YCxcbiAgICAgICAgYEludmFsaWQgVW5yZWZlcmVuY2VkRmlsZVJlbW92YWxQcm9wZXJ0eX0pJHtFT0x9JHtlcnJvcnMuam9pbihFT0wpfWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5kZXJseWluZyBDZm5UYWJsZUJ1Y2tldCBMMSByZXNvdXJjZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IHMzdGFibGVzLkNmblRhYmxlQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFnIG1hbmFnZXIgZm9yIHRoaXMgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2RrVGFnTWFuYWdlcjogVGFnTWFuYWdlcjtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIHBvbGljeSBmb3IgdGhpcyB0YWJsZUJ1Y2tldC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZUJ1Y2tldFBvbGljeT86IFRhYmxlQnVja2V0UG9saWN5O1xuXG4gIHB1YmxpYyByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXkgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUYWJsZUJ1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnRhYmxlQnVja2V0TmFtZSxcbiAgICB9KTtcblxuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgVGFibGVCdWNrZXQudmFsaWRhdGVUYWJsZUJ1Y2tldE5hbWUocHJvcHMudGFibGVCdWNrZXROYW1lKTtcbiAgICBUYWJsZUJ1Y2tldC52YWxpZGF0ZVVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKHByb3BzLnVucmVmZXJlbmNlZEZpbGVSZW1vdmFsKTtcbiAgICBjb25zdCB7IGJ1Y2tldEVuY3J5cHRpb24sIGVuY3J5cHRpb25LZXkgfSA9IHRoaXMucGFyc2VFbmNyeXB0aW9uKHByb3BzKTtcbiAgICB0aGlzLmVuY3J5cHRpb25LZXkgPSBlbmNyeXB0aW9uS2V5O1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBzM3RhYmxlcy5DZm5UYWJsZUJ1Y2tldCh0aGlzLCBpZCwge1xuICAgICAgdGFibGVCdWNrZXROYW1lOiBwcm9wcy50YWJsZUJ1Y2tldE5hbWUsXG4gICAgICB1bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbDoge1xuICAgICAgICAuLi5wcm9wcy51bnJlZmVyZW5jZWRGaWxlUmVtb3ZhbCxcbiAgICAgICAgbm9uY3VycmVudERheXM6IHByb3BzLnVucmVmZXJlbmNlZEZpbGVSZW1vdmFsPy5ub25jdXJyZW50RGF5cyxcbiAgICAgICAgdW5yZWZlcmVuY2VkRGF5czogcHJvcHMudW5yZWZlcmVuY2VkRmlsZVJlbW92YWw/LnVucmVmZXJlbmNlZERheXMsXG4gICAgICB9LFxuICAgICAgZW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IGJ1Y2tldEVuY3J5cHRpb24sXG4gICAgICBtZXRyaWNzQ29uZmlndXJhdGlvbjogcHJvcHMucmVxdWVzdE1ldHJpY3NTdGF0dXMgPyB7IHN0YXR1czogcHJvcHMucmVxdWVzdE1ldHJpY3NTdGF0dXMgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMuY2RrVGFnTWFuYWdlciA9IHRoaXMucmVzb3VyY2UuY2RrVGFnTWFuYWdlcjtcbiAgICB0aGlzLnJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIHRhYmxlIGJ1Y2tldFxuICAgKi9cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgdGFibGVCdWNrZXROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMucmVzb3VyY2UucmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChhcm4pIG9mIHRoaXMgdGFibGUgYnVja2V0XG4gICAqL1xuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCB0YWJsZUJ1Y2tldEFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmF0dHJUYWJsZUJ1Y2tldEFybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdXAga2V5IHByb3BlcnRpZXMgYW5kIHJldHVybiB0aGUgQnVja2V0IGVuY3J5cHRpb24gcHJvcGVydHkgZnJvbSB0aGVcbiAgICogdXNlcidzIGNvbmZpZ3VyYXRpb24sIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHRhYmxlOlxuICAgKlxuICAgKiB8IHByb3BzLmVuY3J5cHRpb24gfCBwcm9wcy5lbmNyeXB0aW9uS2V5IHwgYnVja2V0RW5jcnlwdGlvbiAocmV0dXJuIHZhbHVlKSB8IGVuY3J5cHRpb25LZXkgKHJldHVybiB2YWx1ZSkgIHxcbiAgICogfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gICAqIHwgdW5kZWZpbmVkICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8IHVuZGVmaW5lZCAgICAgICAgfCBrICAgICAgICAgICAgICAgICAgIHwgYXdzOmttcyAgICAgICAgICAgICAgICAgICAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBLTVMgICAgICAgICAgICAgIHwgdW5kZWZpbmVkICAgICAgICAgICB8IGF3czprbXMgICAgICAgICAgICAgICAgICAgICAgICAgfCBuZXcga2V5IChhbGxvdyBtYWludGVuYW5jZSBTUCl8XG4gICAqIHwgS01TICAgICAgICAgICAgICB8IGsgICAgICAgICAgICAgICAgICAgfCBhd3M6a21zICAgICAgICAgICAgICAgICAgICAgICAgIHwgayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8IFMzX01BTkFHRUQgICAgICAgfCB1bmRlZmluZWQgICAgICAgICAgIHwgQUVTMjU2ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHVuZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBTM19NQU5BR0VEICAgICAgIHwgayAgICAgICAgICAgICAgICAgICB8IEVSUk9SISAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFUlJPUiEgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAqL1xuICBwcml2YXRlIHBhcnNlRW5jcnlwdGlvbihwcm9wczogVGFibGVCdWNrZXRQcm9wcyk6IHtcbiAgICBidWNrZXRFbmNyeXB0aW9uPzogczN0YWJsZXMuQ2ZuVGFibGVCdWNrZXQuRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eTtcbiAgICBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG4gIH0ge1xuICAgIGNvbnN0IGVuY3J5cHRpb25UeXBlID0gcHJvcHMuZW5jcnlwdGlvbjtcbiAgICBsZXQga2V5ID0gcHJvcHMuZW5jcnlwdGlvbktleTtcblxuICAgIGlmIChlbmNyeXB0aW9uVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICByZXR1cm4geyBidWNrZXRFbmNyeXB0aW9uOiB1bmRlZmluZWQsIGVuY3J5cHRpb25LZXk6IHVuZGVmaW5lZCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBidWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAgICBrbXNLZXlBcm46IGtleS5rZXlBcm4sXG4gICAgICAgICAgICBzc2VBbGdvcml0aG06IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5LTVMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBlbmNyeXB0aW9uS2V5OiBrZXksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGVuY3J5cHRpb25UeXBlID09PSBUYWJsZUJ1Y2tldEVuY3J5cHRpb24uS01TKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICBrZXkgPSBuZXcga21zLktleSh0aGlzLCAnS2V5Jywge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQ3JlYXRlZCBieSAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICAgICAgZW5hYmxlS2V5Um90YXRpb246IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFsbG93VGFibGVzTWFpbnRlbmFuY2VBY2Nlc3NUb0tleShrZXksIHByb3BzLnRhYmxlQnVja2V0TmFtZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBidWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICAgICAga21zS2V5QXJuOiBrZXkua2V5QXJuLFxuICAgICAgICAgIHNzZUFsZ29yaXRobTogVGFibGVCdWNrZXRFbmNyeXB0aW9uLktNUyxcbiAgICAgICAgfSxcbiAgICAgICAgZW5jcnlwdGlvbktleToga2V5LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoZW5jcnlwdGlvblR5cGUgPT09IFRhYmxlQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VEKSB7XG4gICAgICBpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJ1Y2tldEVuY3J5cHRpb246IHtcbiAgICAgICAgICAgIHNzZUFsZ29yaXRobTogVGFibGVCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihsaXRgSW52YWxpZEVuY3J5cHRpb25Db25maWd1cmF0aW9uYCwgJ0V4cGVjdGVkIGVuY3J5cHRpb24gPSBgS01TYCB3aXRoIHVzZXIgcHJvdmlkZWQgZW5jcnlwdGlvbiBrZXknKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKGxpdGBVbmtub3duRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb25gLCBgVW5rbm93biBlbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24gZGV0ZWN0ZWQ6ICR7cHJvcHMuZW5jcnlwdGlvbn0gd2l0aCBrZXkgJHtwcm9wcy5lbmNyeXB0aW9uS2V5fWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93bGlzdCBTMyBUYWJsZXMgTWFpbnRlbmFuY2UgdG8gYWNjZXNzIHRoaXMgdGFibGUgYnVja2V0J3MgZW5jcnlwdGlvbiBrZXlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXJndWlkZS9zMy10YWJsZXMta21zLXBlcm1pc3Npb25zLmh0bWxcbiAgICogQHBhcmFtIGVuY3J5cHRpb25LZXkgVGhlIGtleSB0byBwcm92aWRlIGFjY2VzcyB0b1xuICAgKi9cbiAgcHJpdmF0ZSBhbGxvd1RhYmxlc01haW50ZW5hbmNlQWNjZXNzVG9LZXkoZW5jcnlwdGlvbktleToga21zLklLZXksIHRhYmxlQnVja2V0TmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVnaW9uID0gdGhpcy5zdGFjay5yZWdpb247XG4gICAgY29uc3QgYWNjb3VudCA9IHRoaXMuc3RhY2suYWNjb3VudDtcbiAgICBjb25zdCBwYXJ0aXRpb24gPSB0aGlzLnN0YWNrLnBhcnRpdGlvbjtcblxuICAgIGVuY3J5cHRpb25LZXkuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdBbGxvd1MzVGFibGVzTWFpbnRlbmFuY2VBY2Nlc3MnLFxuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgcHJpbmNpcGFsczogW1xuICAgICAgICBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ21haW50ZW5hbmNlLnMzdGFibGVzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIF0sXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5JyxcbiAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdMaWtlOiB7XG4gICAgICAgICAgJ2ttczpFbmNyeXB0aW9uQ29udGV4dDphd3M6czM6YXJuJzogYGFybjoke3BhcnRpdGlvbn06czN0YWJsZXM6JHtyZWdpb259OiR7YWNjb3VudH06YnVja2V0LyR7dGFibGVCdWNrZXROYW1lfS8qYCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSkpO1xuICB9XG59XG5cbiJdfQ==
|
package/lib/table-policy.js
CHANGED
|
@@ -62,7 +62,7 @@ let TablePolicy = (() => {
|
|
|
62
62
|
TablePolicy = _classThis = _classDescriptor.value;
|
|
63
63
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
64
64
|
}
|
|
65
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TablePolicy", version: "2.
|
|
65
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-s3tables-alpha.TablePolicy", version: "2.247.0-alpha.0" };
|
|
66
66
|
/** Uniquely identifies this class. */
|
|
67
67
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-s3tables-alpha.TablePolicy';
|
|
68
68
|
/**
|