UNPKG

@cdk-cloudformation/awscommunity-cloudfront-s3website-module

Version:

Schema for Module Fragment of type AwsCommunity::CloudFront::S3Website::MODULE

233 lines 39.1 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.CfnS3WebsiteModule = exports.toJson_CfnS3WebsiteModulePropsResourcesDns = exports.toJson_CfnS3WebsiteModulePropsResourcesDistribution = exports.toJson_CfnS3WebsiteModulePropsResourcesBucketPolicy = exports.toJson_CfnS3WebsiteModulePropsResourcesOac = exports.toJson_CfnS3WebsiteModulePropsResourcesBucket = exports.toJson_CfnS3WebsiteModulePropsResourcesCertificate = exports.toJson_CfnS3WebsiteModulePropsParametersAcmCertificateArn = exports.toJson_CfnS3WebsiteModulePropsParametersHostedZoneId = exports.toJson_CfnS3WebsiteModulePropsParametersAlias = exports.toJson_CfnS3WebsiteModulePropsResources = exports.toJson_CfnS3WebsiteModulePropsParameters = exports.toJson_CfnS3WebsiteModuleProps = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); // Generated by cdk-import const cdk = require("aws-cdk-lib"); /** * Converts an object of type 'CfnS3WebsiteModuleProps' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModuleProps(obj) { if (obj === undefined) { return undefined; } const result = { 'Parameters': toJson_CfnS3WebsiteModulePropsParameters(obj.parameters), 'Resources': toJson_CfnS3WebsiteModulePropsResources(obj.resources), }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModuleProps = toJson_CfnS3WebsiteModuleProps; /** * Converts an object of type 'CfnS3WebsiteModulePropsParameters' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModulePropsParameters(obj) { if (obj === undefined) { return undefined; } const result = { 'Alias': toJson_CfnS3WebsiteModulePropsParametersAlias(obj.alias), 'HostedZoneId': toJson_CfnS3WebsiteModulePropsParametersHostedZoneId(obj.hostedZoneId), 'AcmCertificateArn': toJson_CfnS3WebsiteModulePropsParametersAcmCertificateArn(obj.acmCertificateArn), }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModulePropsParameters = toJson_CfnS3WebsiteModulePropsParameters; /** * Converts an object of type 'CfnS3WebsiteModulePropsResources' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModulePropsResources(obj) { if (obj === undefined) { return undefined; } const result = { 'Certificate': toJson_CfnS3WebsiteModulePropsResourcesCertificate(obj.certificate), 'Bucket': toJson_CfnS3WebsiteModulePropsResourcesBucket(obj.bucket), 'Oac': toJson_CfnS3WebsiteModulePropsResourcesOac(obj.oac), 'BucketPolicy': toJson_CfnS3WebsiteModulePropsResourcesBucketPolicy(obj.bucketPolicy), 'Distribution': toJson_CfnS3WebsiteModulePropsResourcesDistribution(obj.distribution), 'Dns': toJson_CfnS3WebsiteModulePropsResourcesDns(obj.dns), }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModulePropsResources = toJson_CfnS3WebsiteModulePropsResources; /** * Converts an object of type 'CfnS3WebsiteModulePropsParametersAlias' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModulePropsParametersAlias(obj) { if (obj === undefined) { return undefined; } const result = { 'Type': obj.type, 'Description': obj.description, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModulePropsParametersAlias = toJson_CfnS3WebsiteModulePropsParametersAlias; /** * Converts an object of type 'CfnS3WebsiteModulePropsParametersHostedZoneId' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModulePropsParametersHostedZoneId(obj) { if (obj === undefined) { return undefined; } const result = { 'Type': obj.type, 'Description': obj.description, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModulePropsParametersHostedZoneId = toJson_CfnS3WebsiteModulePropsParametersHostedZoneId; /** * Converts an object of type 'CfnS3WebsiteModulePropsParametersAcmCertificateArn' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModulePropsParametersAcmCertificateArn(obj) { if (obj === undefined) { return undefined; } const result = { 'Type': obj.type, 'Description': obj.description, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModulePropsParametersAcmCertificateArn = toJson_CfnS3WebsiteModulePropsParametersAcmCertificateArn; /** * Converts an object of type 'CfnS3WebsiteModulePropsResourcesCertificate' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModulePropsResourcesCertificate(obj) { if (obj === undefined) { return undefined; } const result = { 'Type': obj.type, 'Properties': obj.properties, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModulePropsResourcesCertificate = toJson_CfnS3WebsiteModulePropsResourcesCertificate; /** * Converts an object of type 'CfnS3WebsiteModulePropsResourcesBucket' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModulePropsResourcesBucket(obj) { if (obj === undefined) { return undefined; } const result = { 'Type': obj.type, 'Properties': obj.properties, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModulePropsResourcesBucket = toJson_CfnS3WebsiteModulePropsResourcesBucket; /** * Converts an object of type 'CfnS3WebsiteModulePropsResourcesOac' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModulePropsResourcesOac(obj) { if (obj === undefined) { return undefined; } const result = { 'Type': obj.type, 'Properties': obj.properties, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModulePropsResourcesOac = toJson_CfnS3WebsiteModulePropsResourcesOac; /** * Converts an object of type 'CfnS3WebsiteModulePropsResourcesBucketPolicy' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModulePropsResourcesBucketPolicy(obj) { if (obj === undefined) { return undefined; } const result = { 'Type': obj.type, 'Properties': obj.properties, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModulePropsResourcesBucketPolicy = toJson_CfnS3WebsiteModulePropsResourcesBucketPolicy; /** * Converts an object of type 'CfnS3WebsiteModulePropsResourcesDistribution' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModulePropsResourcesDistribution(obj) { if (obj === undefined) { return undefined; } const result = { 'Type': obj.type, 'Properties': obj.properties, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModulePropsResourcesDistribution = toJson_CfnS3WebsiteModulePropsResourcesDistribution; /** * Converts an object of type 'CfnS3WebsiteModulePropsResourcesDns' to JSON representation. */ /* eslint-disable max-len, quote-props */ function toJson_CfnS3WebsiteModulePropsResourcesDns(obj) { if (obj === undefined) { return undefined; } const result = { 'Type': obj.type, 'Properties': obj.properties, }; // filter undefined values return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); } exports.toJson_CfnS3WebsiteModulePropsResourcesDns = toJson_CfnS3WebsiteModulePropsResourcesDns; /* eslint-enable max-len, quote-props */ /** * A CloudFormation `AwsCommunity::CloudFront::S3Website::MODULE` * * @cloudformationResource AwsCommunity::CloudFront::S3Website::MODULE * @stability external * @link http://unknown-url */ class CfnS3WebsiteModule extends cdk.CfnResource { /** * Create a new `AwsCommunity::CloudFront::S3Website::MODULE`. * * @param scope - scope in which this resource is defined * @param id - scoped id of the resource * @param props - resource properties */ constructor(scope, id, props) { super(scope, id, { type: CfnS3WebsiteModule.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnS3WebsiteModuleProps(props) }); this.props = props; } } exports.CfnS3WebsiteModule = CfnS3WebsiteModule; _a = JSII_RTTI_SYMBOL_1; CfnS3WebsiteModule[_a] = { fqn: "@cdk-cloudformation/awscommunity-cloudfront-s3website-module.CfnS3WebsiteModule", version: "1.16.0-alpha.7" }; /** * The CloudFormation resource type name for this resource class. */ CfnS3WebsiteModule.CFN_RESOURCE_TYPE_NAME = "AwsCommunity::CloudFront::S3Website::MODULE"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwQkFBMEI7QUFDMUIsbUNBQW1DO0FBcUJuQzs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQiw4QkFBOEIsQ0FBQyxHQUF3QztJQUNyRixJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztLQUFFO0lBQzVDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsWUFBWSxFQUFFLHdDQUF3QyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFDdEUsV0FBVyxFQUFFLHVDQUF1QyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7S0FDcEUsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUkQsd0VBUUM7QUE4QkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0Isd0NBQXdDLENBQUMsR0FBa0Q7SUFDekcsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE9BQU8sRUFBRSw2Q0FBNkMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ2pFLGNBQWMsRUFBRSxvREFBb0QsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO1FBQ3RGLG1CQUFtQixFQUFFLHlEQUF5RCxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztLQUN0RyxDQUFDO0lBQ0YsMEJBQTBCO0lBQzFCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFURCw0RkFTQztBQXVDRDs7R0FFRztBQUNILHlDQUF5QztBQUN6QyxTQUFnQix1Q0FBdUMsQ0FBQyxHQUFpRDtJQUN2RyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztLQUFFO0lBQzVDLE1BQU0sTUFBTSxHQUFHO1FBQ2IsYUFBYSxFQUFFLGtEQUFrRCxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFDbEYsUUFBUSxFQUFFLDZDQUE2QyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDbkUsS0FBSyxFQUFFLDBDQUEwQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7UUFDMUQsY0FBYyxFQUFFLG1EQUFtRCxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDckYsY0FBYyxFQUFFLG1EQUFtRCxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7UUFDckYsS0FBSyxFQUFFLDBDQUEwQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7S0FDM0QsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBWkQsMEZBWUM7QUFxQkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsNkNBQTZDLENBQUMsR0FBdUQ7SUFDbkgsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixhQUFhLEVBQUUsR0FBRyxDQUFDLFdBQVc7S0FDL0IsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUkQsc0dBUUM7QUFxQkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0Isb0RBQW9ELENBQUMsR0FBOEQ7SUFDakksSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixhQUFhLEVBQUUsR0FBRyxDQUFDLFdBQVc7S0FDL0IsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUkQsb0hBUUM7QUFxQkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IseURBQXlELENBQUMsR0FBbUU7SUFDM0ksSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixhQUFhLEVBQUUsR0FBRyxDQUFDLFdBQVc7S0FDL0IsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUkQsOEhBUUM7QUFtQkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0Isa0RBQWtELENBQUMsR0FBNEQ7SUFDN0gsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixZQUFZLEVBQUUsR0FBRyxDQUFDLFVBQVU7S0FDN0IsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUkQsZ0hBUUM7QUFtQkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsNkNBQTZDLENBQUMsR0FBdUQ7SUFDbkgsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixZQUFZLEVBQUUsR0FBRyxDQUFDLFVBQVU7S0FDN0IsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUkQsc0dBUUM7QUFtQkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsMENBQTBDLENBQUMsR0FBb0Q7SUFDN0csSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixZQUFZLEVBQUUsR0FBRyxDQUFDLFVBQVU7S0FDN0IsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUkQsZ0dBUUM7QUFtQkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsbURBQW1ELENBQUMsR0FBNkQ7SUFDL0gsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixZQUFZLEVBQUUsR0FBRyxDQUFDLFVBQVU7S0FDN0IsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUkQsa0hBUUM7QUFtQkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsbURBQW1ELENBQUMsR0FBNkQ7SUFDL0gsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixZQUFZLEVBQUUsR0FBRyxDQUFDLFVBQVU7S0FDN0IsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUkQsa0hBUUM7QUFtQkQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsMENBQTBDLENBQUMsR0FBb0Q7SUFDN0csSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRztRQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNoQixZQUFZLEVBQUUsR0FBRyxDQUFDLFVBQVU7S0FDN0IsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUkQsZ0dBUUM7QUFDRCx3Q0FBd0M7QUFHeEM7Ozs7OztHQU1HO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxHQUFHLENBQUMsV0FBVztJQVlyRDs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ2pGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixDQUFDLHNCQUFzQixFQUFFLFVBQVUsRUFBRSw4QkFBOEIsQ0FBQyxLQUFLLENBQUUsRUFBRSxDQUFDLENBQUM7UUFFMUgsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFckIsQ0FBQzs7QUF4QkgsZ0RBeUJDOzs7QUF4QkM7O0VBRUU7QUFDcUIseUNBQXNCLEdBQUcsNkNBQTZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZWQgYnkgY2RrLWltcG9ydFxuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogU2NoZW1hIGZvciBNb2R1bGUgRnJhZ21lbnQgb2YgdHlwZSBBd3NDb21tdW5pdHk6OkNsb3VkRnJvbnQ6OlMzV2Vic2l0ZTo6TU9EVUxFXG4gKlxuICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHMjUGFyYW1ldGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVycztcblxuICAvKipcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wcyNSZXNvdXJjZXNcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlcz86IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wcyhvYmo6IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnUGFyYW1ldGVycyc6IHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnMob2JqLnBhcmFtZXRlcnMpLFxuICAgICdSZXNvdXJjZXMnOiB0b0pzb25fQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXMob2JqLnJlc291cmNlcyksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnMge1xuICAvKipcbiAgICogVGhlIEROUyBuYW1lIGZvciB0aGUgd2Vic2l0ZVxuICAgKlxuICAgKiBAc2NoZW1hIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVycyNBbGlhc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxpYXM/OiBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnNBbGlhcztcblxuICAvKipcbiAgICogVGhlIFJvdXRlNTMgSG9zdGVkWm9uZUlkIHRvIHVzZSBmb3IgY2VydGlmaWNhdGVzIGFuZCByZWdpc3RlcmluZyB0aGUgd2Vic2l0ZSBETlMgTmFtZVxuICAgKlxuICAgKiBAc2NoZW1hIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVycyNIb3N0ZWRab25lSWRcbiAgICovXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmVJZD86IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVyc0hvc3RlZFpvbmVJZDtcblxuICAvKipcbiAgICogVGhlIEFSTiBmb3IgdGhlIEFDTSBDZXJ0aWZpY2F0ZSB0byB1c2VcbiAgICpcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnMjQWNtQ2VydGlmaWNhdGVBcm5cbiAgICovXG4gIHJlYWRvbmx5IGFjbUNlcnRpZmljYXRlQXJuPzogQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNQYXJhbWV0ZXJzQWNtQ2VydGlmaWNhdGVBcm47XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNQYXJhbWV0ZXJzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnMob2JqOiBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdBbGlhcyc6IHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnNBbGlhcyhvYmouYWxpYXMpLFxuICAgICdIb3N0ZWRab25lSWQnOiB0b0pzb25fQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNQYXJhbWV0ZXJzSG9zdGVkWm9uZUlkKG9iai5ob3N0ZWRab25lSWQpLFxuICAgICdBY21DZXJ0aWZpY2F0ZUFybic6IHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnNBY21DZXJ0aWZpY2F0ZUFybihvYmouYWNtQ2VydGlmaWNhdGVBcm4pLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlcyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzI0NlcnRpZmljYXRlXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZT86IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzQ2VydGlmaWNhdGU7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXMjQnVja2V0XG4gICAqL1xuICByZWFkb25seSBidWNrZXQ/OiBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0J1Y2tldDtcblxuICAvKipcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlcyNPYWNcbiAgICovXG4gIHJlYWRvbmx5IG9hYz86IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzT2FjO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzI0J1Y2tldFBvbGljeVxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0UG9saWN5PzogQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNCdWNrZXRQb2xpY3k7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXMjRGlzdHJpYnV0aW9uXG4gICAqL1xuICByZWFkb25seSBkaXN0cmlidXRpb24/OiBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0Rpc3RyaWJ1dGlvbjtcblxuICAvKipcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlcyNEbnNcbiAgICovXG4gIHJlYWRvbmx5IGRucz86IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzRG5zO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlcyhvYmo6IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnQ2VydGlmaWNhdGUnOiB0b0pzb25fQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNDZXJ0aWZpY2F0ZShvYmouY2VydGlmaWNhdGUpLFxuICAgICdCdWNrZXQnOiB0b0pzb25fQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNCdWNrZXQob2JqLmJ1Y2tldCksXG4gICAgJ09hYyc6IHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc09hYyhvYmoub2FjKSxcbiAgICAnQnVja2V0UG9saWN5JzogdG9Kc29uX0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzQnVja2V0UG9saWN5KG9iai5idWNrZXRQb2xpY3kpLFxuICAgICdEaXN0cmlidXRpb24nOiB0b0pzb25fQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNEaXN0cmlidXRpb24ob2JqLmRpc3RyaWJ1dGlvbiksXG4gICAgJ0Rucyc6IHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0RucyhvYmouZG5zKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBUaGUgRE5TIG5hbWUgZm9yIHRoZSB3ZWJzaXRlXG4gKlxuICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnNBbGlhc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVyc0FsaWFzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNQYXJhbWV0ZXJzQWxpYXMjVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVyc0FsaWFzI0Rlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVyc0FsaWFzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnNBbGlhcyhvYmo6IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVyc0FsaWFzIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnVHlwZSc6IG9iai50eXBlLFxuICAgICdEZXNjcmlwdGlvbic6IG9iai5kZXNjcmlwdGlvbixcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBUaGUgUm91dGU1MyBIb3N0ZWRab25lSWQgdG8gdXNlIGZvciBjZXJ0aWZpY2F0ZXMgYW5kIHJlZ2lzdGVyaW5nIHRoZSB3ZWJzaXRlIEROUyBOYW1lXG4gKlxuICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnNIb3N0ZWRab25lSWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnNIb3N0ZWRab25lSWQge1xuICAvKipcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnNIb3N0ZWRab25lSWQjVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVyc0hvc3RlZFpvbmVJZCNEZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnNIb3N0ZWRab25lSWQnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVyc0hvc3RlZFpvbmVJZChvYmo6IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVyc0hvc3RlZFpvbmVJZCB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ1R5cGUnOiBvYmoudHlwZSxcbiAgICAnRGVzY3JpcHRpb24nOiBvYmouZGVzY3JpcHRpb24sXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogVGhlIEFSTiBmb3IgdGhlIEFDTSBDZXJ0aWZpY2F0ZSB0byB1c2VcbiAqXG4gKiBAc2NoZW1hIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVyc0FjbUNlcnRpZmljYXRlQXJuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNQYXJhbWV0ZXJzQWNtQ2VydGlmaWNhdGVBcm4ge1xuICAvKipcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1BhcmFtZXRlcnNBY21DZXJ0aWZpY2F0ZUFybiNUeXBlXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNQYXJhbWV0ZXJzQWNtQ2VydGlmaWNhdGVBcm4jRGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNQYXJhbWV0ZXJzQWNtQ2VydGlmaWNhdGVBcm4nIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUGFyYW1ldGVyc0FjbUNlcnRpZmljYXRlQXJuKG9iajogQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNQYXJhbWV0ZXJzQWNtQ2VydGlmaWNhdGVBcm4gfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdUeXBlJzogb2JqLnR5cGUsXG4gICAgJ0Rlc2NyaXB0aW9uJzogb2JqLmRlc2NyaXB0aW9uLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNDZXJ0aWZpY2F0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzQ2VydGlmaWNhdGUge1xuICAvKipcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0NlcnRpZmljYXRlI1R5cGVcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNDZXJ0aWZpY2F0ZSNQcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogYW55O1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzQ2VydGlmaWNhdGUnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzQ2VydGlmaWNhdGUob2JqOiBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0NlcnRpZmljYXRlIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnVHlwZSc6IG9iai50eXBlLFxuICAgICdQcm9wZXJ0aWVzJzogb2JqLnByb3BlcnRpZXMsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0J1Y2tldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzQnVja2V0IHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNCdWNrZXQjVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0J1Y2tldCNQcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogYW55O1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzQnVja2V0JyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0J1Y2tldChvYmo6IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzQnVja2V0IHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnVHlwZSc6IG9iai50eXBlLFxuICAgICdQcm9wZXJ0aWVzJzogb2JqLnByb3BlcnRpZXMsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc09hY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzT2FjIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNPYWMjVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc09hYyNQcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogYW55O1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzT2FjJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc09hYyhvYmo6IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzT2FjIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnVHlwZSc6IG9iai50eXBlLFxuICAgICdQcm9wZXJ0aWVzJzogb2JqLnByb3BlcnRpZXMsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0J1Y2tldFBvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzQnVja2V0UG9saWN5IHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNCdWNrZXRQb2xpY3kjVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0J1Y2tldFBvbGljeSNQcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogYW55O1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzQnVja2V0UG9saWN5JyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0J1Y2tldFBvbGljeShvYmo6IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzQnVja2V0UG9saWN5IHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnVHlwZSc6IG9iai50eXBlLFxuICAgICdQcm9wZXJ0aWVzJzogb2JqLnByb3BlcnRpZXMsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0Rpc3RyaWJ1dGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzRGlzdHJpYnV0aW9uIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNEaXN0cmlidXRpb24jVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0Rpc3RyaWJ1dGlvbiNQcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogYW55O1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzRGlzdHJpYnV0aW9uJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0Rpc3RyaWJ1dGlvbihvYmo6IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzRGlzdHJpYnV0aW9uIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnVHlwZSc6IG9iai50eXBlLFxuICAgICdQcm9wZXJ0aWVzJzogb2JqLnByb3BlcnRpZXMsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0Ruc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzRG5zIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgQ2ZuUzNXZWJzaXRlTW9kdWxlUHJvcHNSZXNvdXJjZXNEbnMjVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0RucyNQcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogYW55O1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzRG5zJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9DZm5TM1dlYnNpdGVNb2R1bGVQcm9wc1Jlc291cmNlc0RucyhvYmo6IENmblMzV2Vic2l0ZU1vZHVsZVByb3BzUmVzb3VyY2VzRG5zIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnVHlwZSc6IG9iai50eXBlLFxuICAgICdQcm9wZXJ0aWVzJzogb2JqLnByb3BlcnRpZXMsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cblxuLyoqXG4gKiBBIENsb3VkRm9ybWF0aW9uIGBBd3NDb21tdW5pdHk6OkNsb3VkRnJvbnQ6OlMzV2Vic2l0ZTo6TU9EVUxFYFxuICpcbiAqIEBjbG91ZGZvcm1hdGlvblJlc291cmNlIEF3c0NvbW11bml0eTo6Q2xvdWRGcm9udDo6UzNXZWJzaXRlOjpNT0RVTEVcbiAqIEBzdGFiaWxpdHkgZXh0ZXJuYWxcbiAqIEBsaW5rIGh0dHA6Ly91bmtub3duLXVybFxuICovXG5leHBvcnQgY2xhc3MgQ2ZuUzNXZWJzaXRlTW9kdWxlIGV4dGVuZHMgY2RrLkNmblJlc291cmNlIHtcbiAgLyoqXG4gICogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy5cbiAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDRk5fUkVTT1VSQ0VfVFlQRV9OQU1FID0gXCJBd3NDb21tdW5pdHk6OkNsb3VkRnJvbnQ6OlMzV2Vic2l0ZTo6TU9EVUxFXCI7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIHByb3BzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wcztcblxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgYEF3c0NvbW11bml0eTo6Q2xvdWRGcm9udDo6UzNXZWJzaXRlOjpNT0RVTEVgLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBzY29wZSBpbiB3aGljaCB0aGlzIHJlc291cmNlIGlzIGRlZmluZWRcbiAgICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgKiBAcGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZm5TM1dlYnNpdGVNb2R1bGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgeyB0eXBlOiBDZm5TM1dlYnNpdGVNb2R1bGUuQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSwgcHJvcGVydGllczogdG9Kc29uX0NmblMzV2Vic2l0ZU1vZHVsZVByb3BzKHByb3BzKSEgfSk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgfVxufSJdfQ==