awscdk-resources-mongodbatlas
Version:
MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources
95 lines • 15.4 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CfnResourcePolicy = void 0;
exports.toJson_CfnResourcePolicyProps = toJson_CfnResourcePolicyProps;
exports.toJson_ApiAtlasUserMetadata = toJson_ApiAtlasUserMetadata;
exports.toJson_ApiAtlasPolicy = toJson_ApiAtlasPolicy;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
// Generated by cdk-import
const cdk = require("aws-cdk-lib");
/**
* Converts an object of type 'CfnResourcePolicyProps' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_CfnResourcePolicyProps(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
CreatedByUser: toJson_ApiAtlasUserMetadata(obj.createdByUser),
LastUpdatedByUser: toJson_ApiAtlasUserMetadata(obj.lastUpdatedByUser),
Name: obj.name,
Description: obj.description,
OrgId: obj.orgId,
Policies: obj.policies?.map((y) => toJson_ApiAtlasPolicy(y)),
Profile: obj.profile,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/**
* Converts an object of type 'ApiAtlasUserMetadata' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_ApiAtlasUserMetadata(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Id: obj.id,
Name: obj.name,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/**
* Converts an object of type 'ApiAtlasPolicy' to JSON representation.
*/
/* eslint-disable max-len, quote-props */
function toJson_ApiAtlasPolicy(obj) {
if (obj === undefined) {
return undefined;
}
const result = {
Body: obj.body,
Id: obj.id,
};
// filter undefined values
return Object.entries(result).reduce((r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }), {});
}
/* eslint-enable max-len, quote-props */
/**
* A CloudFormation `MongoDB::Atlas::ResourcePolicy`
*
* @cloudformationResource MongoDB::Atlas::ResourcePolicy
* @stability external
*/
class CfnResourcePolicy extends cdk.CfnResource {
/**
* Create a new `MongoDB::Atlas::ResourcePolicy`.
*
* @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: CfnResourcePolicy.CFN_RESOURCE_TYPE_NAME,
properties: toJson_CfnResourcePolicyProps(props),
});
this.props = props;
this.attrCreatedDate = cdk.Token.asString(this.getAtt("CreatedDate"));
this.attrId = cdk.Token.asString(this.getAtt("Id"));
this.attrLastUpdatedDate = cdk.Token.asString(this.getAtt("LastUpdatedDate"));
this.attrVersion = cdk.Token.asString(this.getAtt("Version"));
}
}
exports.CfnResourcePolicy = CfnResourcePolicy;
_a = JSII_RTTI_SYMBOL_1;
CfnResourcePolicy[_a] = { fqn: "awscdk-resources-mongodbatlas.CfnResourcePolicy", version: "3.13.1" };
/**
* The CloudFormation resource type name for this resource class.
*/
CfnResourcePolicy.CFN_RESOURCE_TYPE_NAME = "MongoDB::Atlas::ResourcePolicy";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDEtcmVzb3VyY2VzL3Jlc291cmNlLXBvbGljeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBZ0VBLHNFQW9CQztBQTBCRCxrRUFlQztBQTBCRCxzREFlQzs7QUF0S0QsMEJBQTBCO0FBQzFCLG1DQUFtQztBQTJEbkM7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0IsNkJBQTZCLENBQzNDLEdBQXVDO0lBRXZDLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRztRQUNiLGFBQWEsRUFBRSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1FBQzdELGlCQUFpQixFQUFFLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztRQUNyRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVc7UUFDNUIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ2hCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO0tBQ3JCLENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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Q0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdlbmVyYXRlZCBieSBjZGstaW1wb3J0XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbi8qKlxuICogQXRsYXMgUmVzb3VyY2UgUG9saWNpZXNcbiAqXG4gKiBAc2NoZW1hIENmblJlc291cmNlUG9saWN5UHJvcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZm5SZXNvdXJjZVBvbGljeVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSB1c2VyIHRoYXQgbGFzdCB1cGRhdGVkIHRoZSBhdGxhcyByZXNvdXJjZSBwb2xpY3kuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcyNDcmVhdGVkQnlVc2VyXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVkQnlVc2VyPzogQXBpQXRsYXNVc2VyTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIFRoZSB1c2VyIHRoYXQgbGFzdCB1cGRhdGVkIHRoZSBhdGxhcyByZXNvdXJjZSBwb2xpY3kuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcyNMYXN0VXBkYXRlZEJ5VXNlclxuICAgKi9cbiAgcmVhZG9ubHkgbGFzdFVwZGF0ZWRCeVVzZXI/OiBBcGlBdGxhc1VzZXJNZXRhZGF0YTtcblxuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgbGFiZWwgdGhhdCBkZXNjcmliZXMgdGhlIGF0bGFzIHJlc291cmNlIHBvbGljeS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5SZXNvdXJjZVBvbGljeVByb3BzI05hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRGVzY3JpcHRpb24gb2YgdGhlIEF0bGFzIHJlc291cmNlIHBvbGljeS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5SZXNvdXJjZVBvbGljeVByb3BzI0Rlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVW5pcXVlIDI0LWhleGFkZWNpbWFsIGRpZ2l0IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgdGhlIG9yZ2FuaXphdGlvbiB0aGF0IGNvbnRhaW5zIHlvdXIgcHJvamVjdHMuIFVzZSB0aGUgWy9vcmdzXSgjdGFnL09yZ2FuaXphdGlvbnMvb3BlcmF0aW9uL2xpc3RPcmdhbml6YXRpb25zKSBlbmRwb2ludCB0byByZXRyaWV2ZSBhbGwgb3JnYW5pemF0aW9ucyB0byB3aGljaCB0aGUgYXV0aGVudGljYXRlZCB1c2VyIGhhcyBhY2Nlc3MuXG4gICAqXG4gICAqIEBzY2hlbWEgQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcyNPcmdJZFxuICAgKi9cbiAgcmVhZG9ubHkgb3JnSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiBwb2xpY2llcyB0aGF0IG1ha2UgdXAgdGhlIGF0bGFzIHJlc291cmNlIHBvbGljeS5cbiAgICpcbiAgICogQHNjaGVtYSBDZm5SZXNvdXJjZVBvbGljeVByb3BzI1BvbGljaWVzXG4gICAqL1xuICByZWFkb25seSBwb2xpY2llczogQXBpQXRsYXNQb2xpY3lbXTtcblxuICAvKipcbiAgICogUHJvZmlsZSB1c2VkIHRvIHByb3ZpZGUgY3JlZGVudGlhbHMgaW5mb3JtYXRpb24sIChhIHNlY3JldCB3aXRoIHRoZSBjZm4vYXRsYXMvcHJvZmlsZS97UHJvZmlsZX0sIGlzIHJlcXVpcmVkKSwgaWYgbm90IHByb3ZpZGVkIGRlZmF1bHQgaXMgdXNlZFxuICAgKlxuICAgKiBAc2NoZW1hIENmblJlc291cmNlUG9saWN5UHJvcHMjUHJvZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcyhcbiAgb2JqOiBDZm5SZXNvdXJjZVBvbGljeVByb3BzIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgQ3JlYXRlZEJ5VXNlcjogdG9Kc29uX0FwaUF0bGFzVXNlck1ldGFkYXRhKG9iai5jcmVhdGVkQnlVc2VyKSxcbiAgICBMYXN0VXBkYXRlZEJ5VXNlcjogdG9Kc29uX0FwaUF0bGFzVXNlck1ldGFkYXRhKG9iai5sYXN0VXBkYXRlZEJ5VXNlciksXG4gICAgTmFtZTogb2JqLm5hbWUsXG4gICAgRGVzY3JpcHRpb246IG9iai5kZXNjcmlwdGlvbixcbiAgICBPcmdJZDogb2JqLm9yZ0lkLFxuICAgIFBvbGljaWVzOiBvYmoucG9saWNpZXM/Lm1hcCgoeSkgPT4gdG9Kc29uX0FwaUF0bGFzUG9saWN5KHkpKSxcbiAgICBQcm9maWxlOiBvYmoucHJvZmlsZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBBcGlBdGxhc1VzZXJNZXRhZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUF0bGFzVXNlck1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSAyNC1oZXhhZGVjaW1hbCBjaGFyYWN0ZXIgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyBhIHVzZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgQXBpQXRsYXNVc2VyTWV0YWRhdGEjSWRcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBsYWJlbCB0aGF0IGRlc2NyaWJlcyBhIHVzZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgQXBpQXRsYXNVc2VyTWV0YWRhdGEjTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnQXBpQXRsYXNVc2VyTWV0YWRhdGEnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0FwaUF0bGFzVXNlck1ldGFkYXRhKFxuICBvYmo6IEFwaUF0bGFzVXNlck1ldGFkYXRhIHwgdW5kZWZpbmVkXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgSWQ6IG9iai5pZCxcbiAgICBOYW1lOiBvYmoubmFtZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKFxuICAgIChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkID8gciA6IHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLFxuICAgIHt9XG4gICk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQHNjaGVtYSBBcGlBdGxhc1BvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaUF0bGFzUG9saWN5IHtcbiAgLyoqXG4gICAqIEEgc3RyaW5nIHRoYXQgZGVmaW5lcyB0aGUgcGVybWlzc2lvbnMgZm9yIHRoZSBwb2xpY3kuIFRoZSBzeW50YXggdXNlZCBpcyB0aGUgQ2VkYXIgUG9saWN5IGxhbmd1YWdlLlxuICAgKlxuICAgKiBAc2NoZW1hIEFwaUF0bGFzUG9saWN5I0JvZHlcbiAgICovXG4gIHJlYWRvbmx5IGJvZHk6IHN0cmluZztcblxuICAvKipcbiAgICogVW5pcXVlIDI0LWhleGFkZWNpbWFsIGNoYXJhY3RlciBzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHRoZSBwb2xpY3kuXG4gICAqXG4gICAqIEBzY2hlbWEgQXBpQXRsYXNQb2xpY3kjSWRcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdBcGlBdGxhc1BvbGljeScgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fQXBpQXRsYXNQb2xpY3koXG4gIG9iajogQXBpQXRsYXNQb2xpY3kgfCB1bmRlZmluZWRcbik6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICBCb2R5OiBvYmouYm9keSxcbiAgICBJZDogb2JqLmlkLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoXG4gICAgKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQgPyByIDogeyAuLi5yLCBbaVswXV06IGlbMV0gfSksXG4gICAge31cbiAgKTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBBIENsb3VkRm9ybWF0aW9uIGBNb25nb0RCOjpBdGxhczo6UmVzb3VyY2VQb2xpY3lgXG4gKlxuICogQGNsb3VkZm9ybWF0aW9uUmVzb3VyY2UgTW9uZ29EQjo6QXRsYXM6OlJlc291cmNlUG9saWN5XG4gKiBAc3RhYmlsaXR5IGV4dGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBDZm5SZXNvdXJjZVBvbGljeSBleHRlbmRzIGNkay5DZm5SZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDRk5fUkVTT1VSQ0VfVFlQRV9OQU1FID1cbiAgICBcIk1vbmdvREI6OkF0bGFzOjpSZXNvdXJjZVBvbGljeVwiO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBwcm9wcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogQ2ZuUmVzb3VyY2VQb2xpY3lQcm9wcztcblxuICAvKipcbiAgICogQXR0cmlidXRlIGBNb25nb0RCOjpBdGxhczo6UmVzb3VyY2VQb2xpY3kuQ3JlYXRlZERhdGVgXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXR0ckNyZWF0ZWREYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpSZXNvdXJjZVBvbGljeS5JZGBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRySWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBgTW9uZ29EQjo6QXRsYXM6OlJlc291cmNlUG9saWN5Lkxhc3RVcGRhdGVkRGF0ZWBcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhdHRyTGFzdFVwZGF0ZWREYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdHRyaWJ1dGUgYE1vbmdvREI6OkF0bGFzOjpSZXNvdXJjZVBvbGljeS5WZXJzaW9uYFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF0dHJWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBgTW9uZ29EQjo6QXRsYXM6OlJlc291cmNlUG9saWN5YC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2VcbiAgICogQHBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IENmblJlc291cmNlUG9saWN5UHJvcHNcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0eXBlOiBDZm5SZXNvdXJjZVBvbGljeS5DRk5fUkVTT1VSQ0VfVFlQRV9OQU1FLFxuICAgICAgcHJvcGVydGllczogdG9Kc29uX0NmblJlc291cmNlUG9saWN5UHJvcHMocHJvcHMpISxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIHRoaXMuYXR0ckNyZWF0ZWREYXRlID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiQ3JlYXRlZERhdGVcIikpO1xuICAgIHRoaXMuYXR0cklkID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiSWRcIikpO1xuICAgIHRoaXMuYXR0ckxhc3RVcGRhdGVkRGF0ZSA9IGNkay5Ub2tlbi5hc1N0cmluZyhcbiAgICAgIHRoaXMuZ2V0QXR0KFwiTGFzdFVwZGF0ZWREYXRlXCIpXG4gICAgKTtcbiAgICB0aGlzLmF0dHJWZXJzaW9uID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuZ2V0QXR0KFwiVmVyc2lvblwiKSk7XG4gIH1cbn1cbiJdfQ==