Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

@aws-cdk/aws-cognito

Package Overview
Dependencies
Maintainers
5
Versions
288
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-cdk/aws-cognito - npm Package Compare versions

Comparing version 0.35.0 to 0.36.0

71

lib/cognito.generated.d.ts

@@ -1,4 +0,6 @@

import cdk = require('@aws-cdk/cdk');
import cdk = require('@aws-cdk/core');
/**
* Properties for defining a `AWS::Cognito::IdentityPool`
*
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html

@@ -16,3 +18,3 @@ */

*/
readonly cognitoEvents?: object | cdk.IResolvable;
readonly cognitoEvents?: any | cdk.IResolvable;
/**

@@ -57,3 +59,3 @@ * `AWS::Cognito::IdentityPool.CognitoIdentityProviders`

*/
readonly supportedLoginProviders?: object | cdk.IResolvable;
readonly supportedLoginProviders?: any | cdk.IResolvable;
}

@@ -64,2 +66,3 @@ /**

* @cloudformationResource AWS::Cognito::IdentityPool
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypool.html

@@ -71,3 +74,3 @@ */

*/
static readonly cfnResourceTypeName = "AWS::Cognito::IdentityPool";
static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Cognito::IdentityPool";
/**

@@ -86,3 +89,3 @@ * @cloudformationAttribute Name

*/
cognitoEvents: object | cdk.IResolvable | undefined;
cognitoEvents: any | cdk.IResolvable | undefined;
/**

@@ -127,3 +130,3 @@ * `AWS::Cognito::IdentityPool.CognitoIdentityProviders`

*/
supportedLoginProviders: object | cdk.IResolvable | undefined;
supportedLoginProviders: any | cdk.IResolvable | undefined;
/**

@@ -148,2 +151,3 @@ * Create a new `AWS::Cognito::IdentityPool`.

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitoidentityprovider.html

@@ -171,2 +175,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-cognitostreams.html

@@ -194,2 +199,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypool-pushsync.html

@@ -212,2 +218,4 @@ */

* Properties for defining a `AWS::Cognito::IdentityPoolRoleAttachment`
*
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html

@@ -232,3 +240,3 @@ */

*/
readonly roles?: object | cdk.IResolvable;
readonly roles?: any | cdk.IResolvable;
}

@@ -239,2 +247,3 @@ /**

* @cloudformationResource AWS::Cognito::IdentityPoolRoleAttachment
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-identitypoolroleattachment.html

@@ -246,3 +255,3 @@ */

*/
static readonly cfnResourceTypeName = "AWS::Cognito::IdentityPoolRoleAttachment";
static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Cognito::IdentityPoolRoleAttachment";
/**

@@ -264,3 +273,3 @@ * `AWS::Cognito::IdentityPoolRoleAttachment.IdentityPoolId`

*/
roles: object | cdk.IResolvable | undefined;
roles: any | cdk.IResolvable | undefined;
/**

@@ -285,2 +294,3 @@ * Create a new `AWS::Cognito::IdentityPoolRoleAttachment`.

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-mappingrule.html

@@ -313,2 +323,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rolemapping.html

@@ -336,2 +347,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-identitypoolroleattachment-rulesconfigurationtype.html

@@ -349,2 +361,4 @@ */

* Properties for defining a `AWS::Cognito::UserPool`
*
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html

@@ -437,3 +451,3 @@ */

*/
readonly userPoolTags?: object | cdk.IResolvable;
readonly userPoolTags?: any | cdk.IResolvable;
}

@@ -444,2 +458,3 @@ /**

* @cloudformationResource AWS::Cognito::UserPool
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpool.html

@@ -451,3 +466,3 @@ */

*/
static readonly cfnResourceTypeName = "AWS::Cognito::UserPool";
static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Cognito::UserPool";
/**

@@ -549,3 +564,3 @@ * @cloudformationAttribute Arn

*/
userPoolTags: object | cdk.IResolvable | undefined;
userPoolTags: any | cdk.IResolvable | undefined;
/**

@@ -570,2 +585,3 @@ * Create a new `AWS::Cognito::UserPool`.

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-admincreateuserconfig.html

@@ -593,2 +609,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-deviceconfiguration.html

@@ -611,2 +628,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-emailconfiguration.html

@@ -634,2 +652,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-invitemessagetemplate.html

@@ -657,2 +676,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html

@@ -705,2 +725,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-numberattributeconstraints.html

@@ -723,2 +744,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-passwordpolicy.html

@@ -761,2 +783,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-policies.html

@@ -774,2 +797,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-schemaattribute.html

@@ -817,2 +841,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-smsconfiguration.html

@@ -835,2 +860,3 @@ */

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-stringattributeconstraints.html

@@ -853,2 +879,4 @@ */

* Properties for defining a `AWS::Cognito::UserPoolClient`
*
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html

@@ -897,2 +925,3 @@ */

* @cloudformationResource AWS::Cognito::UserPoolClient
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolclient.html

@@ -904,3 +933,3 @@ */

*/
static readonly cfnResourceTypeName = "AWS::Cognito::UserPoolClient";
static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Cognito::UserPoolClient";
/**

@@ -968,2 +997,4 @@ * @cloudformationAttribute ClientSecret

* Properties for defining a `AWS::Cognito::UserPoolGroup`
*
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html

@@ -1002,2 +1033,3 @@ */

* @cloudformationResource AWS::Cognito::UserPoolGroup
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolgroup.html

@@ -1009,3 +1041,3 @@ */

*/
static readonly cfnResourceTypeName = "AWS::Cognito::UserPoolGroup";
static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Cognito::UserPoolGroup";
/**

@@ -1055,2 +1087,4 @@ * `AWS::Cognito::UserPoolGroup.UserPoolId`

* Properties for defining a `AWS::Cognito::UserPoolUser`
*
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html

@@ -1099,2 +1133,3 @@ */

* @cloudformationResource AWS::Cognito::UserPoolUser
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpooluser.html

@@ -1106,3 +1141,3 @@ */

*/
static readonly cfnResourceTypeName = "AWS::Cognito::UserPoolUser";
static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Cognito::UserPoolUser";
/**

@@ -1162,2 +1197,3 @@ * `AWS::Cognito::UserPoolUser.UserPoolId`

/**
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpooluser-attributetype.html

@@ -1180,2 +1216,4 @@ */

* Properties for defining a `AWS::Cognito::UserPoolUserToGroupAttachment`
*
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html

@@ -1204,2 +1242,3 @@ */

* @cloudformationResource AWS::Cognito::UserPoolUserToGroupAttachment
* @stable
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cognito-userpoolusertogroupattachment.html

@@ -1211,3 +1250,3 @@ */

*/
static readonly cfnResourceTypeName = "AWS::Cognito::UserPoolUserToGroupAttachment";
static readonly CFN_RESOURCE_TYPE_NAME = "AWS::Cognito::UserPoolUserToGroupAttachment";
/**

@@ -1214,0 +1253,0 @@ * `AWS::Cognito::UserPoolUserToGroupAttachment.GroupName`

@@ -1,2 +0,2 @@

import { Construct, Resource } from '@aws-cdk/cdk';
import { Construct, Resource } from '@aws-cdk/core';
import { IUserPool } from './user-pool';

@@ -10,11 +10,11 @@ /**

*/
AdminNoSrp = "ADMIN_NO_SRP_AUTH",
ADMIN_NO_SRP = "ADMIN_NO_SRP_AUTH",
/**
* Enable custom authentication flow
*/
CustomFlowOnly = "CUSTOM_AUTH_FLOW_ONLY",
CUSTOM_FLOW_ONLY = "CUSTOM_AUTH_FLOW_ONLY",
/**
* Enable auth using username & password
*/
UserPassword = "USER_PASSWORD_AUTH"
USER_PASSWORD = "USER_PASSWORD_AUTH"
}

@@ -26,3 +26,3 @@ export interface UserPoolClientProps {

*/
readonly clientName?: string;
readonly userPoolClientName?: string;
/**

@@ -29,0 +29,0 @@ * The UserPool resource this client will have access to

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const cdk_1 = require("@aws-cdk/cdk");
const core_1 = require("@aws-cdk/core");
const cognito_generated_1 = require("./cognito.generated");

@@ -13,11 +13,11 @@ /**

*/
AuthFlow["AdminNoSrp"] = "ADMIN_NO_SRP_AUTH";
AuthFlow["ADMIN_NO_SRP"] = "ADMIN_NO_SRP_AUTH";
/**
* Enable custom authentication flow
*/
AuthFlow["CustomFlowOnly"] = "CUSTOM_AUTH_FLOW_ONLY";
AuthFlow["CUSTOM_FLOW_ONLY"] = "CUSTOM_AUTH_FLOW_ONLY";
/**
* Enable auth using username & password
*/
AuthFlow["UserPassword"] = "USER_PASSWORD_AUTH";
AuthFlow["USER_PASSWORD"] = "USER_PASSWORD_AUTH";
})(AuthFlow = exports.AuthFlow || (exports.AuthFlow = {}));

@@ -27,7 +27,9 @@ /**

*/
class UserPoolClient extends cdk_1.Resource {
class UserPoolClient extends core_1.Resource {
constructor(scope, id, props) {
super(scope, id);
super(scope, id, {
physicalName: props.userPoolClientName,
});
const resource = new cognito_generated_1.CfnUserPoolClient(this, 'Resource', {
clientName: props.clientName,
clientName: this.physicalName,
generateSecret: props.generateSecret,

@@ -37,3 +39,3 @@ userPoolId: props.userPool.userPoolId,

});
this.userPoolClientId = resource.refAsString;
this.userPoolClientId = resource.ref;
this.userPoolClientClientSecret = resource.attrClientSecret;

@@ -44,2 +46,2 @@ this.userPoolClientName = resource.attrName;

exports.UserPoolClient = UserPoolClient;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wb29sLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZXItcG9vbC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBbUQ7QUFDbkQsMkRBQXdEO0FBR3hEOztHQUVHO0FBQ0gsSUFBWSxRQWVYO0FBZkQsV0FBWSxRQUFRO0lBQ2xCOztPQUVHO0lBQ0gsNENBQWdDLENBQUE7SUFFaEM7O09BRUc7SUFDSCxvREFBd0MsQ0FBQTtJQUV4Qzs7T0FFRztJQUNILCtDQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFmVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQWVuQjtBQTJCRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLGNBQVE7SUFnQjFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDdkQsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztZQUNwQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVO1lBQ3JDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7U0FDMUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM1RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUE5QkQsd0NBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0LCBSZXNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2Nkayc7XG5pbXBvcnQgeyBDZm5Vc2VyUG9vbENsaWVudCB9IGZyb20gJy4vY29nbml0by5nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgSVVzZXJQb29sIH0gZnJvbSAnLi91c2VyLXBvb2wnO1xuXG4vKipcbiAqIFR5cGVzIG9mIGF1dGhlbnRpY2F0aW9uIGZsb3dcbiAqL1xuZXhwb3J0IGVudW0gQXV0aEZsb3cge1xuICAvKipcbiAgICogRW5hYmxlIGZsb3cgZm9yIHNlcnZlci1zaWRlIG9yIGFkbWluIGF1dGhlbnRpY2F0aW9uIChubyBjbGllbnQgYXBwKVxuICAgKi9cbiAgQWRtaW5Ob1NycCA9ICdBRE1JTl9OT19TUlBfQVVUSCcsXG5cbiAgLyoqXG4gICAqIEVuYWJsZSBjdXN0b20gYXV0aGVudGljYXRpb24gZmxvd1xuICAgKi9cbiAgQ3VzdG9tRmxvd09ubHkgPSAnQ1VTVE9NX0FVVEhfRkxPV19PTkxZJyxcblxuICAvKipcbiAgICogRW5hYmxlIGF1dGggdXNpbmcgdXNlcm5hbWUgJiBwYXNzd29yZFxuICAgKi9cbiAgVXNlclBhc3N3b3JkID0gJ1VTRVJfUEFTU1dPUkRfQVVUSCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUG9vbENsaWVudFByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIGNsaWVudFxuICAgKiBAZGVmYXVsdCBjbG91ZGZvcm1hdGlvbiBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVzZXJQb29sIHJlc291cmNlIHRoaXMgY2xpZW50IHdpbGwgaGF2ZSBhY2Nlc3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sOiBJVXNlclBvb2w7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZ2VuZXJhdGUgYSBjbGllbnQgc2VjcmV0XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBnZW5lcmF0ZVNlY3JldD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZW5hYmxlZCBhdXRoZW50aWNhdGlvbiBmbG93c1xuICAgKiBAZGVmYXVsdCBubyBlbmFibGVkIGZsb3dzXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkQXV0aEZsb3dzPzogQXV0aEZsb3dbXVxufVxuXG4vKipcbiAqIERlZmluZSBhIFVzZXJQb29sIEFwcCBDbGllbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFVzZXJQb29sQ2xpZW50IGV4dGVuZHMgUmVzb3VyY2Uge1xuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlclBvb2xDbGllbnRDbGllbnRTZWNyZXQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVXNlclBvb2xDbGllbnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5Vc2VyUG9vbENsaWVudCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBjbGllbnROYW1lOiBwcm9wcy5jbGllbnROYW1lLFxuICAgICAgZ2VuZXJhdGVTZWNyZXQ6IHByb3BzLmdlbmVyYXRlU2VjcmV0LFxuICAgICAgdXNlclBvb2xJZDogcHJvcHMudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgIGV4cGxpY2l0QXV0aEZsb3dzOiBwcm9wcy5lbmFibGVkQXV0aEZsb3dzXG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJQb29sQ2xpZW50SWQgPSByZXNvdXJjZS5yZWZBc1N0cmluZztcbiAgICB0aGlzLnVzZXJQb29sQ2xpZW50Q2xpZW50U2VjcmV0ID0gcmVzb3VyY2UuYXR0ckNsaWVudFNlY3JldDtcbiAgICB0aGlzLnVzZXJQb29sQ2xpZW50TmFtZSA9IHJlc291cmNlLmF0dHJOYW1lO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wb29sLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZXItcG9vbC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3Q0FBb0Q7QUFDcEQsMkRBQXdEO0FBR3hEOztHQUVHO0FBQ0gsSUFBWSxRQWVYO0FBZkQsV0FBWSxRQUFRO0lBQ2xCOztPQUVHO0lBQ0gsOENBQWtDLENBQUE7SUFFbEM7O09BRUc7SUFDSCxzREFBMEMsQ0FBQTtJQUUxQzs7T0FFRztJQUNILGdEQUFvQyxDQUFBO0FBQ3RDLENBQUMsRUFmVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQWVuQjtBQTJCRDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLGVBQVE7SUFnQjFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtTQUN2QyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLHFDQUFpQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDdkQsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQzdCLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztZQUNwQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVO1lBQ3JDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7U0FDMUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDckMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUM1RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFoQ0Qsd0NBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0LCBSZXNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgQ2ZuVXNlclBvb2xDbGllbnQgfSBmcm9tICcuL2NvZ25pdG8uZ2VuZXJhdGVkJztcbmltcG9ydCB7IElVc2VyUG9vbCB9IGZyb20gJy4vdXNlci1wb29sJztcblxuLyoqXG4gKiBUeXBlcyBvZiBhdXRoZW50aWNhdGlvbiBmbG93XG4gKi9cbmV4cG9ydCBlbnVtIEF1dGhGbG93IHtcbiAgLyoqXG4gICAqIEVuYWJsZSBmbG93IGZvciBzZXJ2ZXItc2lkZSBvciBhZG1pbiBhdXRoZW50aWNhdGlvbiAobm8gY2xpZW50IGFwcClcbiAgICovXG4gIEFETUlOX05PX1NSUCA9ICdBRE1JTl9OT19TUlBfQVVUSCcsXG5cbiAgLyoqXG4gICAqIEVuYWJsZSBjdXN0b20gYXV0aGVudGljYXRpb24gZmxvd1xuICAgKi9cbiAgQ1VTVE9NX0ZMT1dfT05MWSA9ICdDVVNUT01fQVVUSF9GTE9XX09OTFknLFxuXG4gIC8qKlxuICAgKiBFbmFibGUgYXV0aCB1c2luZyB1c2VybmFtZSAmIHBhc3N3b3JkXG4gICAqL1xuICBVU0VSX1BBU1NXT1JEID0gJ1VTRVJfUEFTU1dPUkRfQVVUSCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUG9vbENsaWVudFByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIGNsaWVudFxuICAgKiBAZGVmYXVsdCBjbG91ZGZvcm1hdGlvbiBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xDbGllbnROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVXNlclBvb2wgcmVzb3VyY2UgdGhpcyBjbGllbnQgd2lsbCBoYXZlIGFjY2VzcyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2w6IElVc2VyUG9vbDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBnZW5lcmF0ZSBhIGNsaWVudCBzZWNyZXRcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGdlbmVyYXRlU2VjcmV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGlzdCBvZiBlbmFibGVkIGF1dGhlbnRpY2F0aW9uIGZsb3dzXG4gICAqIEBkZWZhdWx0IG5vIGVuYWJsZWQgZmxvd3NcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWRBdXRoRmxvd3M/OiBBdXRoRmxvd1tdXG59XG5cbi8qKlxuICogRGVmaW5lIGEgVXNlclBvb2wgQXBwIENsaWVudFxuICovXG5leHBvcnQgY2xhc3MgVXNlclBvb2xDbGllbnQgZXh0ZW5kcyBSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlclBvb2xDbGllbnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlclBvb2xDbGllbnROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbENsaWVudENsaWVudFNlY3JldDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBVc2VyUG9vbENsaWVudFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnVzZXJQb29sQ2xpZW50TmFtZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmblVzZXJQb29sQ2xpZW50KHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGNsaWVudE5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgZ2VuZXJhdGVTZWNyZXQ6IHByb3BzLmdlbmVyYXRlU2VjcmV0LFxuICAgICAgdXNlclBvb2xJZDogcHJvcHMudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgIGV4cGxpY2l0QXV0aEZsb3dzOiBwcm9wcy5lbmFibGVkQXV0aEZsb3dzXG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJQb29sQ2xpZW50SWQgPSByZXNvdXJjZS5yZWY7XG4gICAgdGhpcy51c2VyUG9vbENsaWVudENsaWVudFNlY3JldCA9IHJlc291cmNlLmF0dHJDbGllbnRTZWNyZXQ7XG4gICAgdGhpcy51c2VyUG9vbENsaWVudE5hbWUgPSByZXNvdXJjZS5hdHRyTmFtZTtcbiAgfVxufVxuIl19
import lambda = require('@aws-cdk/aws-lambda');
import { Construct, IResource, Resource } from '@aws-cdk/cdk';
import { Construct, IResource, Resource } from '@aws-cdk/core';
/**

@@ -12,3 +12,3 @@ * Standard attributes

*/
Address = "address",
ADDRESS = "address",
/**

@@ -19,3 +19,3 @@ * End-User's birthday, represented as an ISO 8601:2004 [ISO8601‑2004] YYYY-MM-DD format.

*/
Birthdate = "birthdate",
BIRTHDATE = "birthdate",
/**

@@ -25,3 +25,3 @@ * End-User's preferred e-mail address.

*/
Email = "email",
EMAIL = "email",
/**

@@ -32,7 +32,7 @@ * Surname(s) or last name(s) of the End-User.

*/
FamilyName = "family_name",
FAMILY_NAME = "family_name",
/**
* End-User's gender.
*/
Gender = "gender",
GENDER = "gender",
/**

@@ -43,3 +43,3 @@ * Given name(s) or first name(s) of the End-User.

*/
GivenName = "given_name",
GIVEN_NAME = "given_name",
/**

@@ -51,3 +51,3 @@ * End-User's locale, represented as a BCP47 [RFC5646] language tag.

*/
Locale = "locale",
LOCALE = "locale",
/**

@@ -59,3 +59,3 @@ * Middle name(s) of the End-User.

*/
MiddleName = "middle_name",
MIDDLE_NAME = "middle_name",
/**

@@ -65,3 +65,3 @@ * End-User's full name in displayable form including all name parts,

*/
Name = "name",
NAME = "name",
/**

@@ -71,3 +71,3 @@ * Casual name of the End-User that may or may not be the same as the given_name.

*/
Nickname = "nickname",
NICKNAME = "nickname",
/**

@@ -79,3 +79,3 @@ * End-User's preferred telephone number.

*/
PhoneNumber = "phone_number",
PHONE_NUMBER = "phone_number",
/**

@@ -88,15 +88,15 @@ * URL of the End-User's profile picture.

*/
Picture = "picture",
PICTURE = "picture",
/**
* Shorthand name by which the End-User wishes to be referred to.
*/
PreferredUsername = "preferred_username",
PREFERRED_USERNAME = "preferred_username",
/**
* URL of the End-User's profile page. The contents of this Web page SHOULD be about the End-User.
*/
Profile = "profile",
PROFILE = "profile",
/**
* The End-User's time zone
*/
Timezone = "timezone",
TIMEZONE = "timezone",
/**

@@ -107,3 +107,3 @@ * Time the End-User's information was last updated.

*/
UpdatedAt = "updated_at",
UPDATED_AT = "updated_at",
/**

@@ -113,3 +113,3 @@ * URL of the End-User's Web page or blog.

*/
Website = "website"
WEBSITE = "website"
}

@@ -123,15 +123,15 @@ /**

*/
Username = 0,
USERNAME = 0,
/**
* End-user will sign in using an email address
*/
Email = 1,
EMAIL = 1,
/**
* End-user will sign in using a phone number
*/
Phone = 2,
PHONE = 2,
/**
* End-user will sign in using either an email address or phone number
*/
EmailOrPhone = 3
EMAIL_OR_PHONE = 3
}

@@ -188,5 +188,5 @@ export interface UserPoolTriggers {

*
* @default - Unique ID.
* @default - automatically generated name by CloudFormation at deploy time
*/
readonly poolName?: string;
readonly userPoolName?: string;
/**

@@ -193,0 +193,0 @@ * Method used for user registration & sign in.

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const iam = require("@aws-cdk/aws-iam");
const cdk_1 = require("@aws-cdk/cdk");
const core_1 = require("@aws-cdk/core");
const cognito_generated_1 = require("./cognito.generated");

@@ -16,3 +16,3 @@ /**

*/
UserPoolAttribute["Address"] = "address";
UserPoolAttribute["ADDRESS"] = "address";
/**

@@ -23,3 +23,3 @@ * End-User's birthday, represented as an ISO 8601:2004 [ISO8601‑2004] YYYY-MM-DD format.

*/
UserPoolAttribute["Birthdate"] = "birthdate";
UserPoolAttribute["BIRTHDATE"] = "birthdate";
/**

@@ -29,3 +29,3 @@ * End-User's preferred e-mail address.

*/
UserPoolAttribute["Email"] = "email";
UserPoolAttribute["EMAIL"] = "email";
/**

@@ -36,7 +36,7 @@ * Surname(s) or last name(s) of the End-User.

*/
UserPoolAttribute["FamilyName"] = "family_name";
UserPoolAttribute["FAMILY_NAME"] = "family_name";
/**
* End-User's gender.
*/
UserPoolAttribute["Gender"] = "gender";
UserPoolAttribute["GENDER"] = "gender";
/**

@@ -47,3 +47,3 @@ * Given name(s) or first name(s) of the End-User.

*/
UserPoolAttribute["GivenName"] = "given_name";
UserPoolAttribute["GIVEN_NAME"] = "given_name";
/**

@@ -55,3 +55,3 @@ * End-User's locale, represented as a BCP47 [RFC5646] language tag.

*/
UserPoolAttribute["Locale"] = "locale";
UserPoolAttribute["LOCALE"] = "locale";
/**

@@ -63,3 +63,3 @@ * Middle name(s) of the End-User.

*/
UserPoolAttribute["MiddleName"] = "middle_name";
UserPoolAttribute["MIDDLE_NAME"] = "middle_name";
/**

@@ -69,3 +69,3 @@ * End-User's full name in displayable form including all name parts,

*/
UserPoolAttribute["Name"] = "name";
UserPoolAttribute["NAME"] = "name";
/**

@@ -75,3 +75,3 @@ * Casual name of the End-User that may or may not be the same as the given_name.

*/
UserPoolAttribute["Nickname"] = "nickname";
UserPoolAttribute["NICKNAME"] = "nickname";
/**

@@ -83,3 +83,3 @@ * End-User's preferred telephone number.

*/
UserPoolAttribute["PhoneNumber"] = "phone_number";
UserPoolAttribute["PHONE_NUMBER"] = "phone_number";
/**

@@ -92,15 +92,15 @@ * URL of the End-User's profile picture.

*/
UserPoolAttribute["Picture"] = "picture";
UserPoolAttribute["PICTURE"] = "picture";
/**
* Shorthand name by which the End-User wishes to be referred to.
*/
UserPoolAttribute["PreferredUsername"] = "preferred_username";
UserPoolAttribute["PREFERRED_USERNAME"] = "preferred_username";
/**
* URL of the End-User's profile page. The contents of this Web page SHOULD be about the End-User.
*/
UserPoolAttribute["Profile"] = "profile";
UserPoolAttribute["PROFILE"] = "profile";
/**
* The End-User's time zone
*/
UserPoolAttribute["Timezone"] = "timezone";
UserPoolAttribute["TIMEZONE"] = "timezone";
/**

@@ -111,3 +111,3 @@ * Time the End-User's information was last updated.

*/
UserPoolAttribute["UpdatedAt"] = "updated_at";
UserPoolAttribute["UPDATED_AT"] = "updated_at";
/**

@@ -117,3 +117,3 @@ * URL of the End-User's Web page or blog.

*/
UserPoolAttribute["Website"] = "website";
UserPoolAttribute["WEBSITE"] = "website";
})(UserPoolAttribute = exports.UserPoolAttribute || (exports.UserPoolAttribute = {}));

@@ -128,15 +128,15 @@ /**

*/
SignInType[SignInType["Username"] = 0] = "Username";
SignInType[SignInType["USERNAME"] = 0] = "USERNAME";
/**
* End-user will sign in using an email address
*/
SignInType[SignInType["Email"] = 1] = "Email";
SignInType[SignInType["EMAIL"] = 1] = "EMAIL";
/**
* End-user will sign in using a phone number
*/
SignInType[SignInType["Phone"] = 2] = "Phone";
SignInType[SignInType["PHONE"] = 2] = "PHONE";
/**
* End-user will sign in using either an email address or phone number
*/
SignInType[SignInType["EmailOrPhone"] = 3] = "EmailOrPhone";
SignInType[SignInType["EMAIL_OR_PHONE"] = 3] = "EMAIL_OR_PHONE";
})(SignInType = exports.SignInType || (exports.SignInType = {}));

@@ -146,9 +146,11 @@ /**

*/
class UserPool extends cdk_1.Resource {
class UserPool extends core_1.Resource {
constructor(scope, id, props = {}) {
super(scope, id);
super(scope, id, {
physicalName: props.userPoolName,
});
this.triggers = {};
let aliasAttributes;
let usernameAttributes;
if (props.usernameAliasAttributes != null && props.signInType !== SignInType.Username) {
if (props.usernameAliasAttributes != null && props.signInType !== SignInType.USERNAME) {
throw new Error(`'usernameAliasAttributes' can only be set with a signInType of 'USERNAME'`);

@@ -158,3 +160,3 @@ }

&& !props.usernameAliasAttributes.every(a => {
return a === UserPoolAttribute.Email || a === UserPoolAttribute.PhoneNumber || a === UserPoolAttribute.PreferredUsername;
return a === UserPoolAttribute.EMAIL || a === UserPoolAttribute.PHONE_NUMBER || a === UserPoolAttribute.PREFERRED_USERNAME;
})) {

@@ -164,17 +166,17 @@ throw new Error(`'usernameAliasAttributes' can only include EMAIL, PHONE_NUMBER, or PREFERRED_USERNAME`);

if (props.autoVerifiedAttributes
&& !props.autoVerifiedAttributes.every(a => a === UserPoolAttribute.Email || a === UserPoolAttribute.PhoneNumber)) {
&& !props.autoVerifiedAttributes.every(a => a === UserPoolAttribute.EMAIL || a === UserPoolAttribute.PHONE_NUMBER)) {
throw new Error(`'autoVerifiedAttributes' can only include EMAIL or PHONE_NUMBER`);
}
switch (props.signInType) {
case SignInType.Username:
case SignInType.USERNAME:
aliasAttributes = props.usernameAliasAttributes;
break;
case SignInType.Email:
usernameAttributes = [UserPoolAttribute.Email];
case SignInType.EMAIL:
usernameAttributes = [UserPoolAttribute.EMAIL];
break;
case SignInType.Phone:
usernameAttributes = [UserPoolAttribute.PhoneNumber];
case SignInType.PHONE:
usernameAttributes = [UserPoolAttribute.PHONE_NUMBER];
break;
case SignInType.EmailOrPhone:
usernameAttributes = [UserPoolAttribute.Email, UserPoolAttribute.PhoneNumber];
case SignInType.EMAIL_OR_PHONE:
usernameAttributes = [UserPoolAttribute.EMAIL, UserPoolAttribute.PHONE_NUMBER];
break;

@@ -195,10 +197,14 @@ default:

const userPool = new cognito_generated_1.CfnUserPool(this, 'Resource', {
userPoolName: props.poolName || this.node.uniqueId,
userPoolName: this.physicalName,
usernameAttributes,
aliasAttributes,
autoVerifiedAttributes: props.autoVerifiedAttributes,
lambdaConfig: cdk_1.Lazy.anyValue({ produce: () => this.triggers })
lambdaConfig: core_1.Lazy.anyValue({ produce: () => this.triggers })
});
this.userPoolId = userPool.refAsString;
this.userPoolArn = userPool.attrArn;
this.userPoolId = this.getResourceNameAttribute(userPool.ref);
this.userPoolArn = this.getResourceArnAttribute(userPool.attrArn, {
service: 'cognito',
resource: 'userpool',
resourceName: this.physicalName,
});
this.userPoolProviderName = userPool.attrProviderName;

@@ -217,3 +223,3 @@ this.userPoolProviderUrl = userPool.attrProviderUrl;

*/
class Import extends cdk_1.Resource {
class Import extends core_1.Resource {
constructor() {

@@ -318,2 +324,2 @@ super(...arguments);

exports.UserPool = UserPool;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidXNlci1wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0NBQXlDO0FBRXpDLHNDQUFvRTtBQUNwRSwyREFBa0Q7QUFFbEQ7Ozs7R0FJRztBQUNILElBQVksaUJBOEdYO0FBOUdELFdBQVksaUJBQWlCO0lBQzNCOztPQUVHO0lBQ0gsd0NBQW1CLENBQUE7SUFFbkI7Ozs7T0FJRztJQUNILDRDQUF1QixDQUFBO0lBRXZCOzs7T0FHRztJQUNILG9DQUFlLENBQUE7SUFFZjs7OztPQUlHO0lBQ0gsK0NBQTBCLENBQUE7SUFFMUI7O09BRUc7SUFDSCxzQ0FBaUIsQ0FBQTtJQUVqQjs7OztPQUlHO0lBQ0gsNkNBQXdCLENBQUE7SUFFeEI7Ozs7O09BS0c7SUFDSCxzQ0FBaUIsQ0FBQTtJQUVqQjs7Ozs7T0FLRztJQUNILCtDQUEwQixDQUFBO0lBRTFCOzs7T0FHRztJQUNILGtDQUFhLENBQUE7SUFFYjs7O09BR0c7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQjs7Ozs7T0FLRztJQUNILGlEQUE0QixDQUFBO0lBRTVCOzs7Ozs7T0FNRztJQUNILHdDQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsNkRBQXdDLENBQUE7SUFFeEM7O09BRUc7SUFDSCx3Q0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILDBDQUFxQixDQUFBO0lBRXJCOzs7O09BSUc7SUFDSCw2Q0FBd0IsQ0FBQTtJQUV4Qjs7O09BR0c7SUFDSCx3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBOUdXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBOEc1QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxVQW9CWDtBQXBCRCxXQUFZLFVBQVU7SUFDcEI7O09BRUc7SUFDSCxtREFBUSxDQUFBO0lBRVI7O09BRUc7SUFDSCw2Q0FBSyxDQUFBO0lBRUw7O09BRUc7SUFDSCw2Q0FBSyxDQUFBO0lBRUw7O09BRUc7SUFD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RUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksbUJBQW1CLENBQUMsRUFBb0I7UUFDN0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0kscUNBQXFDLENBQUMsRUFBb0I7UUFDL0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsMkJBQTJCLEVBQUUsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BGLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxFQUFvQixFQUFFLElBQVk7UUFDNUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxTQUFTLFNBQVMsRUFBRTtZQUN0QyxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsMkJBQTJCLENBQUM7WUFDaEUsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTdNRCw0QkE2TUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaWFtID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWlhbScpO1xuaW1wb3J0IGxhbWJkYSA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnKTtcbmltcG9ydCB7IENvbnN0cnVjdCwgSVJlc291cmNlLCBMYXp5LCBSZXNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2Nkayc7XG5pbXBvcnQgeyBDZm5Vc2VyUG9vbCB9IGZyb20gJy4vY29nbml0by5nZW5lcmF0ZWQnO1xuXG4vKipcbiAqIFN0YW5kYXJkIGF0dHJpYnV0ZXNcbiAqIFNwZWNpZmllZCBmb2xsb3dpbmcgdGhlIE9wZW5JRCBDb25uZWN0IHNwZWNcbiAqIEBzZWUgaHR0cHM6Ly9vcGVuaWQubmV0L3NwZWNzL29wZW5pZC1jb25uZWN0LWNvcmUtMV8wLmh0bWwjU3RhbmRhcmRDbGFpbXNcbiAqL1xuZXhwb3J0IGVudW0gVXNlclBvb2xBdHRyaWJ1dGUge1xuICAvKipcbiAgICogRW5kLVVzZXIncyBwcmVmZXJyZWQgcG9zdGFsIGFkZHJlc3MuXG4gICAqL1xuICBBZGRyZXNzID0gJ2FkZHJlc3MnLFxuXG4gIC8qKlxuICAgKiBFbmQtVXNlcidzIGJpcnRoZGF5LCByZXByZXNlbnRlZCBhcyBhbiBJU08gODYwMToyMDA0IFtJU084NjAx4oCRMjAwNF0gWVlZWS1NTS1ERCBmb3JtYXQuXG4gICAqIFRoZSB5ZWFyIE1BWSBiZSAwMDAwLCBpbmRpY2F0aW5nIHRoYXQgaXQgaXMgb21pdHRlZC5cbiAgICogVG8gcmVwcmVzZW50IG9ubHkgdGhlIHllYXIsIFlZWVkgZm9ybWF0IGlzIGFsbG93ZWQuXG4gICAqL1xuICBCaXJ0aGRhdGUgPSAnYmlydGhkYXRlJyxcblxuICAvKipcbiAgICogRW5kLVVzZXIncyBwcmVmZXJyZWQgZS1tYWlsIGFkZHJlc3MuXG4gICAqIEl0cyB2YWx1ZSBNVVNUIGNvbmZvcm0gdG8gdGhlIFJGQyA1MzIyIFtSRkM1MzIyXSBhZGRyLXNwZWMgc3ludGF4LlxuICAgKi9cbiAgRW1haWwgPSAnZW1haWwnLFxuXG4gIC8qKlxuICAgKiBTdXJuYW1lKHMpIG9yIGxhc3QgbmFtZShzKSBvZiB0aGUgRW5kLVVzZXIuXG4gICAqIE5vdGUgdGhhdCBpbiBzb21lIGN1bHR1cmVzLCBwZW9wbGUgY2FuIGhhdmUgbXVsdGlwbGUgZmFtaWx5IG5hbWVzIG9yIG5vIGZhbWlseSBuYW1lO1xuICAgKiBhbGwgY2FuIGJlIHByZXNlbnQsIHdpdGggdGhlIG5hbWVzIGJlaW5nIHNlcGFyYXRlZCBieSBzcGFjZSBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgRmFtaWx5TmFtZSA9ICdmYW1pbHlfbmFtZScsXG5cbiAgLyoqXG4gICAqIEVuZC1Vc2VyJ3MgZ2VuZGVyLlxuICAgKi9cbiAgR2VuZGVyID0gJ2dlbmRlcicsXG5cbiAgLyoqXG4gICAqIEdpdmVuIG5hbWUocykgb3IgZmlyc3QgbmFtZShzKSBvZiB0aGUgRW5kLVVzZXIuXG4gICAqIE5vdGUgdGhhdCBpbiBzb21lIGN1bHR1cmVzLCBwZW9wbGUgY2FuIGhhdmUgbXVsdGlwbGUgZ2l2ZW4gbmFtZXM7XG4gICAqIGFsbCBjYW4gYmUgcHJlc2VudCwgd2l0aCB0aGUgbmFtZXMgYmVpbmcgc2VwYXJhdGVkIGJ5IHNwYWNlIGNoYXJhY3RlcnMuXG4gICAqL1xuICBHaXZlbk5hbWUgPSAnZ2l2ZW5fbmFtZScsXG5cbiAgLyoqXG4gICAqIEVuZC1Vc2VyJ3MgbG9jYWxlLCByZXByZXNlbnRlZCBhcyBhIEJDUDQ3IFtSRkM1NjQ2XSBsYW5ndWFnZSB0YWcuXG4gICAqIFRoaXMgaXMgdHlwaWNhbGx5IGFuIElTTyA2MzktMSBBbHBoYS0yIFtJU082MznigJExXSBsYW5ndWFnZSBjb2RlIGluIGxvd2VyY2FzZVxuICAgKiBhbmQgYW4gSVNPIDMxNjYtMSBBbHBoYS0yIFtJU08zMTY24oCRMV0gY291bnRyeSBjb2RlIGluIHVwcGVyY2FzZSwgc2VwYXJhdGVkIGJ5IGEgZGFzaC5cbiAgICogRm9yIGV4YW1wbGUsIGVuLVVTIG9yIGZyLUNBLlxuICAgKi9cbiAgTG9jYWxlID0gJ2xvY2FsZScsXG5cbiAgLyoqXG4gICAqIE1pZGRsZSBuYW1lKHMpIG9mIHRoZSBFbmQtVXNlci5cbiAgICogTm90ZSB0aGF0IGluIHNvbWUgY3VsdHVyZXMsIHBlb3BsZSBjYW4gaGF2ZSBtdWx0aXBsZSBtaWRkbGUgbmFtZXM7XG4gICAqIGFsbCBjYW4gYmUgcHJlc2VudCwgd2l0aCB0aGUgbmFtZXMgYmVpbmcgc2VwYXJhdGVkIGJ5IHNwYWNlIGNoYXJhY3RlcnMuXG4gICAqIEFsc28gbm90ZSB0aGF0IGluIHNvbWUgY3VsdHVyZXMsIG1pZGRsZSBuYW1lcyBhcmUgbm90IHVzZWQuXG4gICAqL1xuICBNaWRkbGVOYW1lID0gJ21pZGRsZV9uYW1lJyxcblxuICAvKipcbiAgICogRW5kLVVzZXIncyBmdWxsIG5hbWUgaW4gZGlzcGxheWFibGUgZm9ybSBpbmNsdWRpbmcgYWxsIG5hbWUgcGFydHMsXG4gICAqIHBvc3NpYmx5IGluY2x1ZGluZyB0aXRsZXMgYW5kIHN1ZmZpeGVzLCBvcmRlcmVkIGFjY29yZGluZyB0byB0aGUgRW5kLVVzZXIncyBsb2NhbGUgYW5kIHByZWZlcmVuY2VzLlxuICAgKi9cbiAgTmFtZSA9ICduYW1lJyxcblxuICAvKipcbiAgICogQ2FzdWFsIG5hbWUgb2YgdGhlIEVuZC1Vc2VyIHRoYXQgbWF5IG9yIG1heSBub3QgYmUgdGhlIHNhbWUgYXMgdGhlIGdpdmVuX25hbWUuXG4gICAqIEZvciBpbnN0YW5jZSwgYSBuaWNrbmFtZSB2YWx1ZSBvZiBNaWtlIG1pZ2h0IGJlIHJldHVybmVkIGFsb25nc2lkZSBhIGdpdmVuX25hbWUgdmFsdWUgb2YgTWljaGFlbC5cbiAgICovXG4gIE5pY2tuYW1lID0gJ25pY2tuYW1lJyxcblxuICAvKipcbiAgICogRW5kLVVzZXIncyBwcmVmZXJyZWQgdGVsZXBob25lIG51bWJlci5cbiAgICogRS4xNjQgW0UuMTY0XSBpcyBSRUNPTU1FTkRFRCBhcyB0aGUgZm9ybWF0IG9mIHRoaXMgQ2xhaW0sIGZvciBleGFtcGxlLCArMSAoNDI1KSA1NTUtMTIxMiBvciArNTYgKDIpIDY4NyAyNDAwLlxuICAgKiBJZiB0aGUgcGhvbmUgbnVtYmVyIGNvbnRhaW5zIGFuIGV4dGVuc2lvbiwgaXQgaXMgUkVDT01NRU5ERUQgdGhhdCB0aGUgZXh0ZW5zaW9uIGJlIHJlcHJlc2VudGVkIHVzaW5nIHRoZVxuICAgKiBSRkMgMzk2NiBbUkZDMzk2Nl0gZXh0ZW5zaW9uIHN5bnRheCwgZm9yIGV4YW1wbGUsICsxICg2MDQpIDU1NS0xMjM0O2V4dD01Njc4LlxuICAgKi9cbiAgUGhvbmVOdW1iZXIgPSAncGhvbmVfbnVtYmVyJyxcblxuICAvKipcbiAgICogVVJMIG9mIHRoZSBFbmQtVXNlcidzIHByb2ZpbGUgcGljdHVyZS5cbiAgICogVGhpcyBVUkwgTVVTVCByZWZlciB0byBhbiBpbWFnZSBmaWxlIChmb3IgZXhhbXBsZSwgYSBQTkcsIEpQRUcsIG9yIEdJRiBpbWFnZSBmaWxlKSxcbiAgICogcmF0aGVyIHRoYW4gdG8gYSBXZWIgcGFnZSBjb250YWluaW5nIGFuIGltYWdlLlxuICAgKiBOb3RlIHRoYXQgdGhpcyBVUkwgU0hPVUxEIHNwZWNpZmljYWxseSByZWZlcmVuY2UgYSBwcm9maWxlIHBob3RvIG9mIHRoZSBFbmQtVXNlclxuICAgKiBzdWl0YWJsZSBmb3IgZGlzcGxheWluZyB3aGVuIGRlc2NyaWJpbmcgdGhlIEVuZC1Vc2VyLCByYXRoZXIgdGhhbiBhbiBhcmJpdHJhcnkgcGhvdG8gdGFrZW4gYnkgdGhlIEVuZC1Vc2VyXG4gICAqL1xuICBQaWN0dXJlID0gJ3BpY3R1cmUnLFxuXG4gIC8qKlxuICAgKiBTaG9ydGhhbmQgbmFtZSBieSB3aGljaCB0aGUgRW5kLVVzZXIgd2lzaGVzIHRvIGJlIHJlZmVycmVkIHRvLlxuICAgKi9cbiAgUHJlZmVycmVkVXNlcm5hbWUgPSAncHJlZmVycmVkX3VzZXJuYW1lJyxcblxuICAvKipcbiAgICogVVJMIG9mIHRoZSBFbmQtVXNlcidzIHByb2ZpbGUgcGFnZS4gVGhlIGNvbnRlbnRzIG9mIHRoaXMgV2ViIHBhZ2UgU0hPVUxEIGJlIGFib3V0IHRoZSBFbmQtVXNlci5cbiAgICovXG4gIFByb2ZpbGUgPSAncHJvZmlsZScsXG5cbiAgLyoqXG4gICAqIFRoZSBFbmQtVXNlcidzIHRpbWUgem9uZVxuICAgKi9cbiAgVGltZXpvbmUgPSAndGltZXpvbmUnLFxuXG4gIC8qKlxuICAgKiBUaW1lIHRoZSBFbmQtVXNlcidzIGluZm9ybWF0aW9uIHdhcyBsYXN0IHVwZGF0ZWQuXG4gICAqIEl0cyB2YWx1ZSBpcyBhIEpTT04gbnVtYmVyIHJlcHJlc2VudGluZyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgZnJvbSAxOTcwLTAxLTAxVDA6MDowWlxuICAgKiBhcyBtZWFzdXJlZCBpbiBVVEMgdW50aWwgdGhlIGRhdGUvdGltZS5cbiAgICovXG4gIFVwZGF0ZWRBdCA9ICd1cGRhdGVkX2F0JyxcblxuICAvKipcbiAgICogVVJMIG9mIHRoZSBFbmQtVXNlcidzIFdlYiBwYWdlIG9yIGJsb2cuXG4gICAqIFRoaXMgV2ViIHBhZ2UgU0hPVUxEIGNvbnRhaW4gaW5mb3JtYXRpb24gcHVibGlzaGVkIGJ5IHRoZSBFbmQtVXNlciBvciBhbiBvcmdhbml6YXRpb24gdGhhdCB0aGUgRW5kLVVzZXIgaXMgYWZmaWxpYXRlZCB3aXRoLlxuICAgKi9cbiAgV2Vic2l0ZSA9ICd3ZWJzaXRlJ1xufVxuXG4vKipcbiAqIE1ldGhvZHMgb2YgdXNlciBzaWduLWluXG4gKi9cbmV4cG9ydCBlbnVtIFNpZ25JblR5cGUge1xuICAvKipcbiAgICogRW5kLXVzZXIgd2lsbCBzaWduIGluIHdpdGggYSB1c2VybmFtZSwgd2l0aCBvcHRpb25hbCBhbGlhc2VzXG4gICAqL1xuICBVc2VybmFtZSxcblxuICAvKipcbiAgICogRW5kLXVzZXIgd2lsbCBzaWduIGluIHVzaW5nIGFuIGVtYWlsIGFkZHJlc3NcbiAgICovXG4gIEVtYWlsLFxuXG4gIC8qKlxuICAgKiBFbmQtdXNlciB3aWxsIHNpZ24gaW4gdXNpbmcgYSBwaG9uZSBudW1iZXJcbiAgICovXG4gIFBob25lLFxuXG4gIC8qKlxuICAgKiBFbmQtdXNlciB3aWxsIHNpZ24gaW4gdXNpbmcgZWl0aGVyIGFuIGVtYWlsIGFkZHJlc3Mgb3IgcGhvbmUgbnVtYmVyXG4gICAqL1xuICBFbWFpbE9yUGhvbmVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUG9vbFRyaWdnZXJzIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLWNyZWF0ZS1hdXRoLWNoYWxsZW5nZS5odG1sXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVBdXRoQ2hhbGxlbmdlPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogQSBjdXN0b20gTWVzc2FnZSBBV1MgTGFtYmRhIHRyaWdnZXIuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtY3VzdG9tLW1lc3NhZ2UuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tTWVzc2FnZT86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1kZWZpbmUtYXV0aC1jaGFsbGVuZ2UuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmaW5lQXV0aENoYWxsZW5nZT86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEEgcG9zdC1hdXRoZW50aWNhdGlvbiBBV1MgTGFtYmRhIHRyaWdnZXIuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtcG9zdC1hdXRoZW50aWNhdGlvbi5odG1sXG4gICAqL1xuICByZWFkb25seSBwb3N0QXV0aGVudGljYXRpb24/OiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBBIHBvc3QtY29uZmlybWF0aW9uIEFXUyBMYW1iZGEgdHJpZ2dlci5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wb3N0LWNvbmZpcm1hdGlvbi5odG1sXG4gICAqL1xuICByZWFkb25seSBwb3N0Q29uZmlybWF0aW9uPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogQSBwcmUtYXV0aGVudGljYXRpb24gQVdTIExhbWJkYSB0cmlnZ2VyLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXByZS1hdXRoZW50aWNhdGlvbi5odG1sXG4gICAqL1xuICByZWFkb25seSBwcmVBdXRoZW50aWNhdGlvbj86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEEgcHJlLXJlZ2lzdHJhdGlvbiBBV1MgTGFtYmRhIHRyaWdnZXIuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtcHJlLXNpZ24tdXAuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJlU2lnblVwPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogVmVyaWZpZXMgdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSByZXNwb25zZS5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS12ZXJpZnktYXV0aC1jaGFsbGVuZ2UtcmVzcG9uc2UuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgdmVyaWZ5QXV0aENoYWxsZW5nZVJlc3BvbnNlPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogSW5kZXggc2lnbmF0dXJlXG4gICAqL1xuICBbdHJpZ2dlcjogc3RyaW5nXTogbGFtYmRhLklGdW5jdGlvbiB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUG9vbFByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHVzZXIgcG9vbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVuaXF1ZSBJRC5cbiAgICovXG4gIHJlYWRvbmx5IHBvb2xOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBmb3IgdXNlciByZWdpc3RyYXRpb24gJiBzaWduIGluLlxuICAgKiBBbGxvd3MgZWl0aGVyIHVzZXJuYW1lIHdpdGggYWxpYXNlcyBPUiBzaWduIGluIHdpdGggZW1haWwsIHBob25lLCBvciBib3RoLlxuICAgKlxuICAgKiBAZGVmYXVsdCBTaWduSW5UeXBlLlVzZXJuYW1lXG4gICAqL1xuICByZWFkb25seSBzaWduSW5UeXBlPzogU2lnbkluVHlwZTtcblxuICAvKipcbiAgICogQXR0cmlidXRlcyB0byBhbGxvdyBhcyB1c2VybmFtZSBhbGlhcy5cbiAgICogT25seSB2YWxpZCBpZiBzaWduSW5UeXBlIGlzIFVTRVJOQU1FXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWxpYXMuXG4gICAqL1xuICByZWFkb25seSB1c2VybmFtZUFsaWFzQXR0cmlidXRlcz86IFVzZXJQb29sQXR0cmlidXRlW107XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZXMgd2hpY2ggQ29nbml0byB3aWxsIGF1dG9tYXRpY2FsbHkgc2VuZCBhIHZlcmlmaWNhdGlvbiBtZXNzYWdlIHRvLlxuICAgKiBNdXN0IGJlIGVpdGhlciBFTUFJTCwgUEhPTkUsIG9yIGJvdGguXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYXV0byB2ZXJpZmljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBhdXRvVmVyaWZpZWRBdHRyaWJ1dGVzPzogVXNlclBvb2xBdHRyaWJ1dGVbXTtcblxuICAvKipcbiAgICogTGFtYmRhIGZ1bmN0aW9ucyB0byB1c2UgZm9yIHN1cHBvcnRlZCBDb2duaXRvIHRyaWdnZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIExhbWJkYSB0cmlnZ2Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVRyaWdnZXJzPzogVXNlclBvb2xUcmlnZ2Vycztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUG9vbEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIElEIG9mIGFuIGV4aXN0aW5nIHVzZXIgcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBpbXBvcnRlZCB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBuYW1lIG9mIHRoZSBpbXBvcnRlZCB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIGltcG9ydGVkIHVzZXIgcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xQcm92aWRlclVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyUG9vbCBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgdXNlciBwb29sIHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBuYW1lIG9mIHRoaXMgdXNlciBwb29sIHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBVUkwgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xQcm92aWRlclVybDogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlZmluZSBhIENvZ25pdG8gVXNlciBQb29sXG4gKi9cbmV4cG9ydCBjbGFzcyBVc2VyUG9vbCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVVzZXJQb29sIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICogQHBhcmFtIHNjb3BlIFBhcmVudCBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIENvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gYXR0cnMgSW1wb3J0ZWQgdXNlciBwb29sIHByb3BlcnRpZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVVzZXJQb29sQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogVXNlclBvb2xBdHRyaWJ1dGVzKTogSVVzZXJQb29sIHtcbiAgICAvKipcbiAgICAgKiBEZWZpbmUgYSB1c2VyIHBvb2wgd2hpY2ggaGFzIGJlZW4gZGVjbGFyZWQgaW4gYW5vdGhlciBzdGFja1xuICAgICAqL1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVVzZXJQb29sIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbElkID0gYXR0cnMudXNlclBvb2xJZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbEFybiA9IGF0dHJzLnVzZXJQb29sQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJOYW1lID0gYXR0cnMudXNlclBvb2xQcm92aWRlck5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdXNlclBvb2xQcm92aWRlclVybCA9IGF0dHJzLnVzZXJQb29sUHJvdmlkZXJVcmw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHVzZXIgcG9vbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVzZXIgcG9vbCBwcm92aWRlciBuYW1lXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlclBvb2xQcm92aWRlck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciBwb29sIHByb3ZpZGVyIFVSTFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJVcmw6IHN0cmluZztcblxuICBwcml2YXRlIHRyaWdnZXJzOiBDZm5Vc2VyUG9vbC5MYW1iZGFDb25maWdQcm9wZXJ0eSA9IHsgfTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVXNlclBvb2xQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGxldCBhbGlhc0F0dHJpYnV0ZXM6IFVzZXJQb29sQXR0cmlidXRlW10gfCB1bmRlZmluZWQ7XG4gICAgbGV0IHVzZXJuYW1lQXR0cmlidXRlczogVXNlclBvb2xBdHRyaWJ1dGVbXSB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChwcm9wcy51c2VybmFtZUFsaWFzQXR0cmlidXRlcyAhPSBudWxsICYmIHByb3BzLnNpZ25JblR5cGUgIT09IFNpZ25JblR5cGUuVXNlcm5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJ3VzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzJyBjYW4gb25seSBiZSBzZXQgd2l0aCBhIHNpZ25JblR5cGUgb2YgJ1VTRVJOQU1FJ2ApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy51c2VybmFtZUFsaWFzQXR0cmlidXRlc1xuICAgICAgJiYgIXByb3BzLnVzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzLmV2ZXJ5KGEgPT4ge1xuICAgICAgICByZXR1cm4gYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuRW1haWwgfHwgYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuUGhvbmVOdW1iZXIgfHwgYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuUHJlZmVycmVkVXNlcm5hbWU7XG4gICAgICB9KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAndXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXMnIGNhbiBvbmx5IGluY2x1ZGUgRU1BSUwsIFBIT05FX05VTUJFUiwgb3IgUFJFRkVSUkVEX1VTRVJOQU1FYCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmF1dG9WZXJpZmllZEF0dHJpYnV0ZXNcbiAgICAgICYmICFwcm9wcy5hdXRvVmVyaWZpZWRBdHRyaWJ1dGVzLmV2ZXJ5KGEgPT4gYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuRW1haWwgfHwgYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuUGhvbmVOdW1iZXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCdhdXRvVmVyaWZpZWRBdHRyaWJ1dGVzJyBjYW4gb25seSBpbmNsdWRlIEVNQUlMIG9yIFBIT05FX05VTUJFUmApO1xuICAgIH1cblxuICAgIHN3aXRjaCAocHJvcHMuc2lnbkluVHlwZSkge1xuICAgICAgY2FzZSBTaWduSW5UeXBlLlVzZXJuYW1lOlxuICAgICAgICBhbGlhc0F0dHJpYnV0ZXMgPSBwcm9wcy51c2VybmFtZUFsaWFzQXR0cmlidXRlcztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2lnbkluVHlwZS5FbWFpbDpcbiAgICAgICAgdXNlcm5hbWVBdHRyaWJ1dGVzID0gW1VzZXJQb29sQXR0cmlidXRlLkVtYWlsXTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2lnbkluVHlwZS5QaG9uZTpcbiAgICAgICAgdXNlcm5hbWVBdHRyaWJ1dGVzID0gW1VzZXJQb29sQXR0cmlidXRlLlBob25lTnVtYmVyXTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2lnbkluVHlwZS5FbWFpbE9yUGhvbmU6XG4gICAgICAgIHVzZXJuYW1lQXR0cmlidXRlcyA9IFtVc2VyUG9vbEF0dHJpYnV0ZS5FbWFpbCwgVXNlclBvb2xBdHRyaWJ1dGUuUGhvbmVOdW1iZXJdO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYWxpYXNBdHRyaWJ1dGVzID0gcHJvcHMudXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXM7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5sYW1iZGFUcmlnZ2Vycykge1xuICAgICAgZm9yIChjb25zdCB0IG9mIE9iamVjdC5rZXlzKHByb3BzLmxhbWJkYVRyaWdnZXJzKSkge1xuICAgICAgICBjb25zdCB0cmlnZ2VyID0gcHJvcHMubGFtYmRhVHJpZ2dlcnNbdF07XG4gICAgICAgIGlmICh0cmlnZ2VyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24odHJpZ2dlciBhcyBsYW1iZGEuSUZ1bmN0aW9uLCB0KTtcbiAgICAgICAgICAodGhpcy50cmlnZ2VycyBhcyBhbnkpW3RdID0gKHRyaWdnZXIgYXMgbGFtYmRhLklGdW5jdGlvbikuZnVuY3Rpb25Bcm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB1c2VyUG9vbCA9IG5ldyBDZm5Vc2VyUG9vbCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICB1c2VyUG9vbE5hbWU6IHByb3BzLnBvb2xOYW1lIHx8IHRoaXMubm9kZS51bmlxdWVJZCxcbiAgICAgIHVzZXJuYW1lQXR0cmlidXRlcyxcbiAgICAgIGFsaWFzQXR0cmlidXRlcyxcbiAgICAgIGF1dG9WZXJpZmllZEF0dHJpYnV0ZXM6IHByb3BzLmF1dG9WZXJpZmllZEF0dHJpYnV0ZXMsXG4gICAgICBsYW1iZGFDb25maWc6IExhenkuYW55VmFsdWUoeyBwcm9kdWNlOiAoKSA9PiB0aGlzLnRyaWdnZXJzIH0pXG4gICAgfSk7XG4gICAgdGhpcy51c2VyUG9vbElkID0gdXNlclBvb2wucmVmQXNTdHJpbmc7XG4gICAgdGhpcy51c2VyUG9vbEFybiA9IHVzZXJQb29sLmF0dHJBcm47XG4gICAgdGhpcy51c2VyUG9vbFByb3ZpZGVyTmFtZSA9IHVzZXJQb29sLmF0dHJQcm92aWRlck5hbWU7XG4gICAgdGhpcy51c2VyUG9vbFByb3ZpZGVyVXJsID0gdXNlclBvb2wuYXR0clByb3ZpZGVyVXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnQ3JlYXRlIEF1dGggQ2hhbGxlbmdlJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1jcmVhdGUtYXV0aC1jaGFsbGVuZ2UuaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBhZGRDcmVhdGVBdXRoQ2hhbGxlbmdlVHJpZ2dlcihmbjogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbihmbiwgJ0NyZWF0ZUF1dGhDaGFsbGVuZ2UnKTtcbiAgICB0aGlzLnRyaWdnZXJzID0geyAuLi50aGlzLnRyaWdnZXJzLCBjcmVhdGVBdXRoQ2hhbGxlbmdlOiBmbi5mdW5jdGlvbkFybiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnQ3VzdG9tIE1lc3NhZ2UnIHRyaWdnZXJcbiAgICogR3JhbnRzIGFjY2VzcyBmcm9tIGNvZ25pdG8taWRwLmFtYXpvbmF3cy5jb20gdG8gdGhlIGxhbWJkYVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLWN1c3RvbS1tZXNzYWdlLmh0bWxcbiAgICogQHBhcmFtIGZuIHRoZSBsYW1iZGEgZnVuY3Rpb24gdG8gYXR0YWNoXG4gICAqL1xuICBwdWJsaWMgYWRkQ3VzdG9tTWVzc2FnZVRyaWdnZXIoZm46IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24oZm4sICdDdXN0b21NZXNzYWdlJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgY3VzdG9tTWVzc2FnZTogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ0RlZmluZSBBdXRoIENoYWxsZW5nZScgdHJpZ2dlclxuICAgKiBHcmFudHMgYWNjZXNzIGZyb20gY29nbml0by1pZHAuYW1hem9uYXdzLmNvbSB0byB0aGUgbGFtYmRhXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtZGVmaW5lLWF1dGgtY2hhbGxlbmdlLmh0bWxcbiAgICogQHBhcmFtIGZuIHRoZSBsYW1iZGEgZnVuY3Rpb24gdG8gYXR0YWNoXG4gICAqL1xuICBwdWJsaWMgYWRkRGVmaW5lQXV0aENoYWxsZW5nZVRyaWdnZXIoZm46IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24oZm4sICdEZWZpbmVBdXRoQ2hhbGxlbmdlJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgZGVmaW5lQXV0aENoYWxsZW5nZTogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ1Bvc3QgQXV0aGVudGljYXRpb24nIHRyaWdnZXJcbiAgICogR3JhbnRzIGFjY2VzcyBmcm9tIGNvZ25pdG8taWRwLmFtYXpvbmF3cy5jb20gdG8gdGhlIGxhbWJkYVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXBvc3QtYXV0aGVudGljYXRpb24uaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBhZGRQb3N0QXV0aGVudGljYXRpb25UcmlnZ2VyKGZuOiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKGZuLCAnUG9zdEF1dGhlbnRpY2F0aW9uJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgcG9zdEF1dGhlbnRpY2F0aW9uOiBmbi5mdW5jdGlvbkFybiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnUG9zdCBDb25maXJtYXRpb24nIHRyaWdnZXJcbiAgICogR3JhbnRzIGFjY2VzcyBmcm9tIGNvZ25pdG8taWRwLmFtYXpvbmF3cy5jb20gdG8gdGhlIGxhbWJkYVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXBvc3QtY29uZmlybWF0aW9uLmh0bWxcbiAgICogQHBhcmFtIGZuIHRoZSBsYW1iZGEgZnVuY3Rpb24gdG8gYXR0YWNoXG4gICAqL1xuICBwdWJsaWMgYWRkUG9zdENvbmZpcm1hdGlvblRyaWdnZXIoZm46IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24oZm4sICdQb3N0Q29uZmlybWF0aW9uJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgcG9zdENvbmZpcm1hdGlvbjogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ1ByZSBBdXRoZW50aWNhdGlvbicgdHJpZ2dlclxuICAgKiBHcmFudHMgYWNjZXNzIGZyb20gY29nbml0by1pZHAuYW1hem9uYXdzLmNvbSB0byB0aGUgbGFtYmRhXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtcHJlLWF1dGhlbnRpY2F0aW9uLmh0bWxcbiAgICogQHBhcmFtIGZuIHRoZSBsYW1iZGEgZnVuY3Rpb24gdG8gYXR0YWNoXG4gICAqL1xuICBwdWJsaWMgYWRkUHJlQXV0aGVudGljYXRpb25UcmlnZ2VyKGZuOiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKGZuLCAnUHJlQXV0aGVudGljYXRpb24nKTtcbiAgICB0aGlzLnRyaWdnZXJzID0geyAuLi50aGlzLnRyaWdnZXJzLCBwcmVBdXRoZW50aWNhdGlvbjogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ1ByZSBTaWduIFVwJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wcmUtc2lnbi11cC5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIGFkZFByZVNpZ25VcFRyaWdnZXIoZm46IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24oZm4sICdQcmVTaWduVXAnKTtcbiAgICB0aGlzLnRyaWdnZXJzID0geyAuLi50aGlzLnRyaWdnZXJzLCBwcmVTaWduVXA6IGZuLmZ1bmN0aW9uQXJuIH07XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoICdWZXJpZnkgQXV0aCBDaGFsbGVuZ2UgUmVzcG9uc2UnIHRyaWdnZXJcbiAgICogR3JhbnRzIGFjY2VzcyBmcm9tIGNvZ25pdG8taWRwLmFtYXpvbmF3cy5jb20gdG8gdGhlIGxhbWJkYVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXZlcmlmeS1hdXRoLWNoYWxsZW5nZS1yZXNwb25zZS5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIGFkZFZlcmlmeUF1dGhDaGFsbGVuZ2VSZXNwb25zZVRyaWdnZXIoZm46IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24oZm4sICdWZXJpZnlBdXRoQ2hhbGxlbmdlUmVzcG9uc2UnKTtcbiAgICB0aGlzLnRyaWdnZXJzID0geyAuLi50aGlzLnRyaWdnZXJzLCB2ZXJpZnlBdXRoQ2hhbGxlbmdlUmVzcG9uc2U6IGZuLmZ1bmN0aW9uQXJuIH07XG4gIH1cblxuICBwcml2YXRlIGFkZExhbWJkYVBlcm1pc3Npb24oZm46IGxhbWJkYS5JRnVuY3Rpb24sIG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5vcm1hbGl6ZSA9IG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuICAgIGZuLmFkZFBlcm1pc3Npb24oYCR7bm9ybWFsaXplfUNvZ25pdG9gLCB7XG4gICAgICBwcmluY2lwYWw6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnY29nbml0by1pZHAuYW1hem9uYXdzLmNvbScpLFxuICAgICAgc291cmNlQXJuOiB0aGlzLnVzZXJQb29sQXJuXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wb29sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidXNlci1wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsd0NBQXlDO0FBRXpDLHdDQUFxRTtBQUNyRSwyREFBa0Q7QUFFbEQ7Ozs7R0FJRztBQUNILElBQVksaUJBOEdYO0FBOUdELFdBQVksaUJBQWlCO0lBQzNCOztPQUVHO0lBQ0gsd0NBQW1CLENBQUE7SUFFbkI7Ozs7T0FJRztJQUNILDRDQUF1QixDQUFBO0lBRXZCOzs7T0FHRztJQUNILG9DQUFlLENBQUE7SUFFZjs7OztPQUlHO0lBQ0gsZ0RBQTJCLENBQUE7SUFFM0I7O09BRUc7SUFDSCxzQ0FBaUIsQ0FBQTtJQUVqQjs7OztPQUlHO0lBQ0gsOENBQXlCLENBQUE7SUFFekI7Ozs7O09BS0c7SUFDSCxzQ0FBaUIsQ0FBQTtJQUVqQjs7Ozs7T0FLRztJQUNILGdEQUEyQixDQUFBO0lBRTNCOzs7T0FHRztJQUNILGtDQUFhLENBQUE7SUFFYjs7O09BR0c7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQjs7Ozs7T0FLRztJQUNILGtEQUE2QixDQUFBO0lBRTdCOzs7Ozs7T0FNRztJQUNILHdDQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsOERBQXlDLENBQUE7SUFFekM7O09BRUc7SUFDSCx3Q0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILDBDQUFxQixDQUFBO0lBRXJCOzs7O09BSUc7SUFDSCw4Q0FBeUIsQ0FBQTtJQUV6Qjs7O09BR0c7SUFDSCx3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBOUdXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBOEc1QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxVQW9CWDtBQXBCRCxXQUFZLFVBQVU7SUFDcEI7O09BRUc7SUFDSCxtREFBUSxDQUFBO0lBRVI7O09BRUc7SUFDSCw2Q0FBSyxDQUFBO0lBRUw7O09BRUc7SUFDSCw2Q0FBSyxDQUFBO0lBRUw7O09BRUc7SUFD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ZXNDb250ZW50IjpbImltcG9ydCBpYW0gPSByZXF1aXJlKCdAYXdzLWNkay9hd3MtaWFtJyk7XG5pbXBvcnQgbGFtYmRhID0gcmVxdWlyZSgnQGF3cy1jZGsvYXdzLWxhbWJkYScpO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJUmVzb3VyY2UsIExhenksIFJlc291cmNlIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBDZm5Vc2VyUG9vbCB9IGZyb20gJy4vY29nbml0by5nZW5lcmF0ZWQnO1xuXG4vKipcbiAqIFN0YW5kYXJkIGF0dHJpYnV0ZXNcbiAqIFNwZWNpZmllZCBmb2xsb3dpbmcgdGhlIE9wZW5JRCBDb25uZWN0IHNwZWNcbiAqIEBzZWUgaHR0cHM6Ly9vcGVuaWQubmV0L3NwZWNzL29wZW5pZC1jb25uZWN0LWNvcmUtMV8wLmh0bWwjU3RhbmRhcmRDbGFpbXNcbiAqL1xuZXhwb3J0IGVudW0gVXNlclBvb2xBdHRyaWJ1dGUge1xuICAvKipcbiAgICogRW5kLVVzZXIncyBwcmVmZXJyZWQgcG9zdGFsIGFkZHJlc3MuXG4gICAqL1xuICBBRERSRVNTID0gJ2FkZHJlc3MnLFxuXG4gIC8qKlxuICAgKiBFbmQtVXNlcidzIGJpcnRoZGF5LCByZXByZXNlbnRlZCBhcyBhbiBJU08gODYwMToyMDA0IFtJU084NjAx4oCRMjAwNF0gWVlZWS1NTS1ERCBmb3JtYXQuXG4gICAqIFRoZSB5ZWFyIE1BWSBiZSAwMDAwLCBpbmRpY2F0aW5nIHRoYXQgaXQgaXMgb21pdHRlZC5cbiAgICogVG8gcmVwcmVzZW50IG9ubHkgdGhlIHllYXIsIFlZWVkgZm9ybWF0IGlzIGFsbG93ZWQuXG4gICAqL1xuICBCSVJUSERBVEUgPSAnYmlydGhkYXRlJyxcblxuICAvKipcbiAgICogRW5kLVVzZXIncyBwcmVmZXJyZWQgZS1tYWlsIGFkZHJlc3MuXG4gICAqIEl0cyB2YWx1ZSBNVVNUIGNvbmZvcm0gdG8gdGhlIFJGQyA1MzIyIFtSRkM1MzIyXSBhZGRyLXNwZWMgc3ludGF4LlxuICAgKi9cbiAgRU1BSUwgPSAnZW1haWwnLFxuXG4gIC8qKlxuICAgKiBTdXJuYW1lKHMpIG9yIGxhc3QgbmFtZShzKSBvZiB0aGUgRW5kLVVzZXIuXG4gICAqIE5vdGUgdGhhdCBpbiBzb21lIGN1bHR1cmVzLCBwZW9wbGUgY2FuIGhhdmUgbXVsdGlwbGUgZmFtaWx5IG5hbWVzIG9yIG5vIGZhbWlseSBuYW1lO1xuICAgKiBhbGwgY2FuIGJlIHByZXNlbnQsIHdpdGggdGhlIG5hbWVzIGJlaW5nIHNlcGFyYXRlZCBieSBzcGFjZSBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgRkFNSUxZX05BTUUgPSAnZmFtaWx5X25hbWUnLFxuXG4gIC8qKlxuICAgKiBFbmQtVXNlcidzIGdlbmRlci5cbiAgICovXG4gIEdFTkRFUiA9ICdnZW5kZXInLFxuXG4gIC8qKlxuICAgKiBHaXZlbiBuYW1lKHMpIG9yIGZpcnN0IG5hbWUocykgb2YgdGhlIEVuZC1Vc2VyLlxuICAgKiBOb3RlIHRoYXQgaW4gc29tZSBjdWx0dXJlcywgcGVvcGxlIGNhbiBoYXZlIG11bHRpcGxlIGdpdmVuIG5hbWVzO1xuICAgKiBhbGwgY2FuIGJlIHByZXNlbnQsIHdpdGggdGhlIG5hbWVzIGJlaW5nIHNlcGFyYXRlZCBieSBzcGFjZSBjaGFyYWN0ZXJzLlxuICAgKi9cbiAgR0lWRU5fTkFNRSA9ICdnaXZlbl9uYW1lJyxcblxuICAvKipcbiAgICogRW5kLVVzZXIncyBsb2NhbGUsIHJlcHJlc2VudGVkIGFzIGEgQkNQNDcgW1JGQzU2NDZdIGxhbmd1YWdlIHRhZy5cbiAgICogVGhpcyBpcyB0eXBpY2FsbHkgYW4gSVNPIDYzOS0xIEFscGhhLTIgW0lTTzYzOeKAkTFdIGxhbmd1YWdlIGNvZGUgaW4gbG93ZXJjYXNlXG4gICAqIGFuZCBhbiBJU08gMzE2Ni0xIEFscGhhLTIgW0lTTzMxNjbigJExXSBjb3VudHJ5IGNvZGUgaW4gdXBwZXJjYXNlLCBzZXBhcmF0ZWQgYnkgYSBkYXNoLlxuICAgKiBGb3IgZXhhbXBsZSwgZW4tVVMgb3IgZnItQ0EuXG4gICAqL1xuICBMT0NBTEUgPSAnbG9jYWxlJyxcblxuICAvKipcbiAgICogTWlkZGxlIG5hbWUocykgb2YgdGhlIEVuZC1Vc2VyLlxuICAgKiBOb3RlIHRoYXQgaW4gc29tZSBjdWx0dXJlcywgcGVvcGxlIGNhbiBoYXZlIG11bHRpcGxlIG1pZGRsZSBuYW1lcztcbiAgICogYWxsIGNhbiBiZSBwcmVzZW50LCB3aXRoIHRoZSBuYW1lcyBiZWluZyBzZXBhcmF0ZWQgYnkgc3BhY2UgY2hhcmFjdGVycy5cbiAgICogQWxzbyBub3RlIHRoYXQgaW4gc29tZSBjdWx0dXJlcywgbWlkZGxlIG5hbWVzIGFyZSBub3QgdXNlZC5cbiAgICovXG4gIE1JRERMRV9OQU1FID0gJ21pZGRsZV9uYW1lJyxcblxuICAvKipcbiAgICogRW5kLVVzZXIncyBmdWxsIG5hbWUgaW4gZGlzcGxheWFibGUgZm9ybSBpbmNsdWRpbmcgYWxsIG5hbWUgcGFydHMsXG4gICAqIHBvc3NpYmx5IGluY2x1ZGluZyB0aXRsZXMgYW5kIHN1ZmZpeGVzLCBvcmRlcmVkIGFjY29yZGluZyB0byB0aGUgRW5kLVVzZXIncyBsb2NhbGUgYW5kIHByZWZlcmVuY2VzLlxuICAgKi9cbiAgTkFNRSA9ICduYW1lJyxcblxuICAvKipcbiAgICogQ2FzdWFsIG5hbWUgb2YgdGhlIEVuZC1Vc2VyIHRoYXQgbWF5IG9yIG1heSBub3QgYmUgdGhlIHNhbWUgYXMgdGhlIGdpdmVuX25hbWUuXG4gICAqIEZvciBpbnN0YW5jZSwgYSBuaWNrbmFtZSB2YWx1ZSBvZiBNaWtlIG1pZ2h0IGJlIHJldHVybmVkIGFsb25nc2lkZSBhIGdpdmVuX25hbWUgdmFsdWUgb2YgTWljaGFlbC5cbiAgICovXG4gIE5JQ0tOQU1FID0gJ25pY2tuYW1lJyxcblxuICAvKipcbiAgICogRW5kLVVzZXIncyBwcmVmZXJyZWQgdGVsZXBob25lIG51bWJlci5cbiAgICogRS4xNjQgW0UuMTY0XSBpcyBSRUNPTU1FTkRFRCBhcyB0aGUgZm9ybWF0IG9mIHRoaXMgQ2xhaW0sIGZvciBleGFtcGxlLCArMSAoNDI1KSA1NTUtMTIxMiBvciArNTYgKDIpIDY4NyAyNDAwLlxuICAgKiBJZiB0aGUgcGhvbmUgbnVtYmVyIGNvbnRhaW5zIGFuIGV4dGVuc2lvbiwgaXQgaXMgUkVDT01NRU5ERUQgdGhhdCB0aGUgZXh0ZW5zaW9uIGJlIHJlcHJlc2VudGVkIHVzaW5nIHRoZVxuICAgKiBSRkMgMzk2NiBbUkZDMzk2Nl0gZXh0ZW5zaW9uIHN5bnRheCwgZm9yIGV4YW1wbGUsICsxICg2MDQpIDU1NS0xMjM0O2V4dD01Njc4LlxuICAgKi9cbiAgUEhPTkVfTlVNQkVSID0gJ3Bob25lX251bWJlcicsXG5cbiAgLyoqXG4gICAqIFVSTCBvZiB0aGUgRW5kLVVzZXIncyBwcm9maWxlIHBpY3R1cmUuXG4gICAqIFRoaXMgVVJMIE1VU1QgcmVmZXIgdG8gYW4gaW1hZ2UgZmlsZSAoZm9yIGV4YW1wbGUsIGEgUE5HLCBKUEVHLCBvciBHSUYgaW1hZ2UgZmlsZSksXG4gICAqIHJhdGhlciB0aGFuIHRvIGEgV2ViIHBhZ2UgY29udGFpbmluZyBhbiBpbWFnZS5cbiAgICogTm90ZSB0aGF0IHRoaXMgVVJMIFNIT1VMRCBzcGVjaWZpY2FsbHkgcmVmZXJlbmNlIGEgcHJvZmlsZSBwaG90byBvZiB0aGUgRW5kLVVzZXJcbiAgICogc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgd2hlbiBkZXNjcmliaW5nIHRoZSBFbmQtVXNlciwgcmF0aGVyIHRoYW4gYW4gYXJiaXRyYXJ5IHBob3RvIHRha2VuIGJ5IHRoZSBFbmQtVXNlclxuICAgKi9cbiAgUElDVFVSRSA9ICdwaWN0dXJlJyxcblxuICAvKipcbiAgICogU2hvcnRoYW5kIG5hbWUgYnkgd2hpY2ggdGhlIEVuZC1Vc2VyIHdpc2hlcyB0byBiZSByZWZlcnJlZCB0by5cbiAgICovXG4gIFBSRUZFUlJFRF9VU0VSTkFNRSA9ICdwcmVmZXJyZWRfdXNlcm5hbWUnLFxuXG4gIC8qKlxuICAgKiBVUkwgb2YgdGhlIEVuZC1Vc2VyJ3MgcHJvZmlsZSBwYWdlLiBUaGUgY29udGVudHMgb2YgdGhpcyBXZWIgcGFnZSBTSE9VTEQgYmUgYWJvdXQgdGhlIEVuZC1Vc2VyLlxuICAgKi9cbiAgUFJPRklMRSA9ICdwcm9maWxlJyxcblxuICAvKipcbiAgICogVGhlIEVuZC1Vc2VyJ3MgdGltZSB6b25lXG4gICAqL1xuICBUSU1FWk9ORSA9ICd0aW1lem9uZScsXG5cbiAgLyoqXG4gICAqIFRpbWUgdGhlIEVuZC1Vc2VyJ3MgaW5mb3JtYXRpb24gd2FzIGxhc3QgdXBkYXRlZC5cbiAgICogSXRzIHZhbHVlIGlzIGEgSlNPTiBudW1iZXIgcmVwcmVzZW50aW5nIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBmcm9tIDE5NzAtMDEtMDFUMDowOjBaXG4gICAqIGFzIG1lYXN1cmVkIGluIFVUQyB1bnRpbCB0aGUgZGF0ZS90aW1lLlxuICAgKi9cbiAgVVBEQVRFRF9BVCA9ICd1cGRhdGVkX2F0JyxcblxuICAvKipcbiAgICogVVJMIG9mIHRoZSBFbmQtVXNlcidzIFdlYiBwYWdlIG9yIGJsb2cuXG4gICAqIFRoaXMgV2ViIHBhZ2UgU0hPVUxEIGNvbnRhaW4gaW5mb3JtYXRpb24gcHVibGlzaGVkIGJ5IHRoZSBFbmQtVXNlciBvciBhbiBvcmdhbml6YXRpb24gdGhhdCB0aGUgRW5kLVVzZXIgaXMgYWZmaWxpYXRlZCB3aXRoLlxuICAgKi9cbiAgV0VCU0lURSA9ICd3ZWJzaXRlJ1xufVxuXG4vKipcbiAqIE1ldGhvZHMgb2YgdXNlciBzaWduLWluXG4gKi9cbmV4cG9ydCBlbnVtIFNpZ25JblR5cGUge1xuICAvKipcbiAgICogRW5kLXVzZXIgd2lsbCBzaWduIGluIHdpdGggYSB1c2VybmFtZSwgd2l0aCBvcHRpb25hbCBhbGlhc2VzXG4gICAqL1xuICBVU0VSTkFNRSxcblxuICAvKipcbiAgICogRW5kLXVzZXIgd2lsbCBzaWduIGluIHVzaW5nIGFuIGVtYWlsIGFkZHJlc3NcbiAgICovXG4gIEVNQUlMLFxuXG4gIC8qKlxuICAgKiBFbmQtdXNlciB3aWxsIHNpZ24gaW4gdXNpbmcgYSBwaG9uZSBudW1iZXJcbiAgICovXG4gIFBIT05FLFxuXG4gIC8qKlxuICAgKiBFbmQtdXNlciB3aWxsIHNpZ24gaW4gdXNpbmcgZWl0aGVyIGFuIGVtYWlsIGFkZHJlc3Mgb3IgcGhvbmUgbnVtYmVyXG4gICAqL1xuICBFTUFJTF9PUl9QSE9ORVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQb29sVHJpZ2dlcnMge1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtY3JlYXRlLWF1dGgtY2hhbGxlbmdlLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUF1dGhDaGFsbGVuZ2U/OiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBBIGN1c3RvbSBNZXNzYWdlIEFXUyBMYW1iZGEgdHJpZ2dlci5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1jdXN0b20tbWVzc2FnZS5odG1sXG4gICAqL1xuICByZWFkb25seSBjdXN0b21NZXNzYWdlPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLWRlZmluZS1hdXRoLWNoYWxsZW5nZS5odG1sXG4gICAqL1xuICByZWFkb25seSBkZWZpbmVBdXRoQ2hhbGxlbmdlPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogQSBwb3N0LWF1dGhlbnRpY2F0aW9uIEFXUyBMYW1iZGEgdHJpZ2dlci5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wb3N0LWF1dGhlbnRpY2F0aW9uLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IHBvc3RBdXRoZW50aWNhdGlvbj86IGxhbWJkYS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIEEgcG9zdC1jb25maXJtYXRpb24gQVdTIExhbWJkYSB0cmlnZ2VyLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXBvc3QtY29uZmlybWF0aW9uLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IHBvc3RDb25maXJtYXRpb24/OiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBBIHByZS1hdXRoZW50aWNhdGlvbiBBV1MgTGFtYmRhIHRyaWdnZXIuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtcHJlLWF1dGhlbnRpY2F0aW9uLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IHByZUF1dGhlbnRpY2F0aW9uPzogbGFtYmRhLklGdW5jdGlvbjtcblxuICAvKipcbiAgICogQSBwcmUtcmVnaXN0cmF0aW9uIEFXUyBMYW1iZGEgdHJpZ2dlci5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wcmUtc2lnbi11cC5odG1sXG4gICAqL1xuICByZWFkb25seSBwcmVTaWduVXA/OiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBWZXJpZmllcyB0aGUgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlIHJlc3BvbnNlLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXZlcmlmeS1hdXRoLWNoYWxsZW5nZS1yZXNwb25zZS5odG1sXG4gICAqL1xuICByZWFkb25seSB2ZXJpZnlBdXRoQ2hhbGxlbmdlUmVzcG9uc2U/OiBsYW1iZGEuSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBJbmRleCBzaWduYXR1cmVcbiAgICovXG4gIFt0cmlnZ2VyOiBzdHJpbmddOiBsYW1iZGEuSUZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQb29sUHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgdXNlciBwb29sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZSBieSBDbG91ZEZvcm1hdGlvbiBhdCBkZXBsb3kgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdXNlZCBmb3IgdXNlciByZWdpc3RyYXRpb24gJiBzaWduIGluLlxuICAgKiBBbGxvd3MgZWl0aGVyIHVzZXJuYW1lIHdpdGggYWxpYXNlcyBPUiBzaWduIGluIHdpdGggZW1haWwsIHBob25lLCBvciBib3RoLlxuICAgKlxuICAgKiBAZGVmYXVsdCBTaWduSW5UeXBlLlVzZXJuYW1lXG4gICAqL1xuICByZWFkb25seSBzaWduSW5UeXBlPzogU2lnbkluVHlwZTtcblxuICAvKipcbiAgICogQXR0cmlidXRlcyB0byBhbGxvdyBhcyB1c2VybmFtZSBhbGlhcy5cbiAgICogT25seSB2YWxpZCBpZiBzaWduSW5UeXBlIGlzIFVTRVJOQU1FXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWxpYXMuXG4gICAqL1xuICByZWFkb25seSB1c2VybmFtZUFsaWFzQXR0cmlidXRlcz86IFVzZXJQb29sQXR0cmlidXRlW107XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZXMgd2hpY2ggQ29nbml0byB3aWxsIGF1dG9tYXRpY2FsbHkgc2VuZCBhIHZlcmlmaWNhdGlvbiBtZXNzYWdlIHRvLlxuICAgKiBNdXN0IGJlIGVpdGhlciBFTUFJTCwgUEhPTkUsIG9yIGJvdGguXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYXV0byB2ZXJpZmljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBhdXRvVmVyaWZpZWRBdHRyaWJ1dGVzPzogVXNlclBvb2xBdHRyaWJ1dGVbXTtcblxuICAvKipcbiAgICogTGFtYmRhIGZ1bmN0aW9ucyB0byB1c2UgZm9yIHN1cHBvcnRlZCBDb2duaXRvIHRyaWdnZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIExhbWJkYSB0cmlnZ2Vycy5cbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVRyaWdnZXJzPzogVXNlclBvb2xUcmlnZ2Vycztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyUG9vbEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIElEIG9mIGFuIGV4aXN0aW5nIHVzZXIgcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBpbXBvcnRlZCB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBuYW1lIG9mIHRoZSBpbXBvcnRlZCB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIGltcG9ydGVkIHVzZXIgcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xQcm92aWRlclVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyUG9vbCBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgdXNlciBwb29sIHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBuYW1lIG9mIHRoaXMgdXNlciBwb29sIHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBVUkwgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xQcm92aWRlclVybDogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlZmluZSBhIENvZ25pdG8gVXNlciBQb29sXG4gKi9cbmV4cG9ydCBjbGFzcyBVc2VyUG9vbCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVVzZXJQb29sIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICogQHBhcmFtIHNjb3BlIFBhcmVudCBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIENvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gYXR0cnMgSW1wb3J0ZWQgdXNlciBwb29sIHByb3BlcnRpZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVVzZXJQb29sQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogVXNlclBvb2xBdHRyaWJ1dGVzKTogSVVzZXJQb29sIHtcbiAgICAvKipcbiAgICAgKiBEZWZpbmUgYSB1c2VyIHBvb2wgd2hpY2ggaGFzIGJlZW4gZGVjbGFyZWQgaW4gYW5vdGhlciBzdGFja1xuICAgICAqL1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVVzZXJQb29sIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbElkID0gYXR0cnMudXNlclBvb2xJZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbEFybiA9IGF0dHJzLnVzZXJQb29sQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJOYW1lID0gYXR0cnMudXNlclBvb2xQcm92aWRlck5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdXNlclBvb2xQcm92aWRlclVybCA9IGF0dHJzLnVzZXJQb29sUHJvdmlkZXJVcmw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyB1c2VyIHBvb2wgcmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHVzZXIgcG9vbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVzZXIgcG9vbCBwcm92aWRlciBuYW1lXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlclBvb2xQcm92aWRlck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciBwb29sIHByb3ZpZGVyIFVSTFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVzZXJQb29sUHJvdmlkZXJVcmw6IHN0cmluZztcblxuICBwcml2YXRlIHRyaWdnZXJzOiBDZm5Vc2VyUG9vbC5MYW1iZGFDb25maWdQcm9wZXJ0eSA9IHsgfTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVXNlclBvb2xQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLnVzZXJQb29sTmFtZSxcbiAgICB9KTtcblxuICAgIGxldCBhbGlhc0F0dHJpYnV0ZXM6IFVzZXJQb29sQXR0cmlidXRlW10gfCB1bmRlZmluZWQ7XG4gICAgbGV0IHVzZXJuYW1lQXR0cmlidXRlczogVXNlclBvb2xBdHRyaWJ1dGVbXSB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChwcm9wcy51c2VybmFtZUFsaWFzQXR0cmlidXRlcyAhPSBudWxsICYmIHByb3BzLnNpZ25JblR5cGUgIT09IFNpZ25JblR5cGUuVVNFUk5BTUUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJ3VzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzJyBjYW4gb25seSBiZSBzZXQgd2l0aCBhIHNpZ25JblR5cGUgb2YgJ1VTRVJOQU1FJ2ApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy51c2VybmFtZUFsaWFzQXR0cmlidXRlc1xuICAgICAgJiYgIXByb3BzLnVzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzLmV2ZXJ5KGEgPT4ge1xuICAgICAgICByZXR1cm4gYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuRU1BSUwgfHwgYSA9PT0gVXNlclBvb2xBdHRyaWJ1dGUuUEhPTkVfTlVNQkVSIHx8IGEgPT09IFVzZXJQb29sQXR0cmlidXRlLlBSRUZFUlJFRF9VU0VSTkFNRTtcbiAgICAgIH0pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCd1c2VybmFtZUFsaWFzQXR0cmlidXRlcycgY2FuIG9ubHkgaW5jbHVkZSBFTUFJTCwgUEhPTkVfTlVNQkVSLCBvciBQUkVGRVJSRURfVVNFUk5BTUVgKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuYXV0b1ZlcmlmaWVkQXR0cmlidXRlc1xuICAgICAgJiYgIXByb3BzLmF1dG9WZXJpZmllZEF0dHJpYnV0ZXMuZXZlcnkoYSA9PiBhID09PSBVc2VyUG9vbEF0dHJpYnV0ZS5FTUFJTCB8fCBhID09PSBVc2VyUG9vbEF0dHJpYnV0ZS5QSE9ORV9OVU1CRVIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCdhdXRvVmVyaWZpZWRBdHRyaWJ1dGVzJyBjYW4gb25seSBpbmNsdWRlIEVNQUlMIG9yIFBIT05FX05VTUJFUmApO1xuICAgIH1cblxuICAgIHN3aXRjaCAocHJvcHMuc2lnbkluVHlwZSkge1xuICAgICAgY2FzZSBTaWduSW5UeXBlLlVTRVJOQU1FOlxuICAgICAgICBhbGlhc0F0dHJpYnV0ZXMgPSBwcm9wcy51c2VybmFtZUFsaWFzQXR0cmlidXRlcztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2lnbkluVHlwZS5FTUFJTDpcbiAgICAgICAgdXNlcm5hbWVBdHRyaWJ1dGVzID0gW1VzZXJQb29sQXR0cmlidXRlLkVNQUlMXTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2lnbkluVHlwZS5QSE9ORTpcbiAgICAgICAgdXNlcm5hbWVBdHRyaWJ1dGVzID0gW1VzZXJQb29sQXR0cmlidXRlLlBIT05FX05VTUJFUl07XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNpZ25JblR5cGUuRU1BSUxfT1JfUEhPTkU6XG4gICAgICAgIHVzZXJuYW1lQXR0cmlidXRlcyA9IFtVc2VyUG9vbEF0dHJpYnV0ZS5FTUFJTCwgVXNlclBvb2xBdHRyaWJ1dGUuUEhPTkVfTlVNQkVSXTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGFsaWFzQXR0cmlidXRlcyA9IHByb3BzLnVzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAocHJvcHMubGFtYmRhVHJpZ2dlcnMpIHtcbiAgICAgIGZvciAoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhwcm9wcy5sYW1iZGFUcmlnZ2VycykpIHtcbiAgICAgICAgY29uc3QgdHJpZ2dlciA9IHByb3BzLmxhbWJkYVRyaWdnZXJzW3RdO1xuICAgICAgICBpZiAodHJpZ2dlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKHRyaWdnZXIgYXMgbGFtYmRhLklGdW5jdGlvbiwgdCk7XG4gICAgICAgICAgKHRoaXMudHJpZ2dlcnMgYXMgYW55KVt0XSA9ICh0cmlnZ2VyIGFzIGxhbWJkYS5JRnVuY3Rpb24pLmZ1bmN0aW9uQXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdXNlclBvb2wgPSBuZXcgQ2ZuVXNlclBvb2wodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgdXNlclBvb2xOYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIHVzZXJuYW1lQXR0cmlidXRlcyxcbiAgICAgIGFsaWFzQXR0cmlidXRlcyxcbiAgICAgIGF1dG9WZXJpZmllZEF0dHJpYnV0ZXM6IHByb3BzLmF1dG9WZXJpZmllZEF0dHJpYnV0ZXMsXG4gICAgICBsYW1iZGFDb25maWc6IExhenkuYW55VmFsdWUoeyBwcm9kdWNlOiAoKSA9PiB0aGlzLnRyaWdnZXJzIH0pXG4gICAgfSk7XG5cbiAgICB0aGlzLnVzZXJQb29sSWQgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZSh1c2VyUG9vbC5yZWYpO1xuICAgIHRoaXMudXNlclBvb2xBcm4gPSB0aGlzLmdldFJlc291cmNlQXJuQXR0cmlidXRlKHVzZXJQb29sLmF0dHJBcm4sIHtcbiAgICAgIHNlcnZpY2U6ICdjb2duaXRvJyxcbiAgICAgIHJlc291cmNlOiAndXNlcnBvb2wnLFxuICAgICAgcmVzb3VyY2VOYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICB9KTtcblxuICAgIHRoaXMudXNlclBvb2xQcm92aWRlck5hbWUgPSB1c2VyUG9vbC5hdHRyUHJvdmlkZXJOYW1lO1xuICAgIHRoaXMudXNlclBvb2xQcm92aWRlclVybCA9IHVzZXJQb29sLmF0dHJQcm92aWRlclVybDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ0NyZWF0ZSBBdXRoIENoYWxsZW5nZScgdHJpZ2dlclxuICAgKiBHcmFudHMgYWNjZXNzIGZyb20gY29nbml0by1pZHAuYW1hem9uYXdzLmNvbSB0byB0aGUgbGFtYmRhXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtY3JlYXRlLWF1dGgtY2hhbGxlbmdlLmh0bWxcbiAgICogQHBhcmFtIGZuIHRoZSBsYW1iZGEgZnVuY3Rpb24gdG8gYXR0YWNoXG4gICAqL1xuICBwdWJsaWMgYWRkQ3JlYXRlQXV0aENoYWxsZW5nZVRyaWdnZXIoZm46IGxhbWJkYS5JRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFkZExhbWJkYVBlcm1pc3Npb24oZm4sICdDcmVhdGVBdXRoQ2hhbGxlbmdlJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgY3JlYXRlQXV0aENoYWxsZW5nZTogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ0N1c3RvbSBNZXNzYWdlJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1jdXN0b20tbWVzc2FnZS5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIGFkZEN1c3RvbU1lc3NhZ2VUcmlnZ2VyKGZuOiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKGZuLCAnQ3VzdG9tTWVzc2FnZScpO1xuICAgIHRoaXMudHJpZ2dlcnMgPSB7IC4uLnRoaXMudHJpZ2dlcnMsIGN1c3RvbU1lc3NhZ2U6IGZuLmZ1bmN0aW9uQXJuIH07XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoICdEZWZpbmUgQXV0aCBDaGFsbGVuZ2UnIHRyaWdnZXJcbiAgICogR3JhbnRzIGFjY2VzcyBmcm9tIGNvZ25pdG8taWRwLmFtYXpvbmF3cy5jb20gdG8gdGhlIGxhbWJkYVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLWRlZmluZS1hdXRoLWNoYWxsZW5nZS5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIGFkZERlZmluZUF1dGhDaGFsbGVuZ2VUcmlnZ2VyKGZuOiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKGZuLCAnRGVmaW5lQXV0aENoYWxsZW5nZScpO1xuICAgIHRoaXMudHJpZ2dlcnMgPSB7IC4uLnRoaXMudHJpZ2dlcnMsIGRlZmluZUF1dGhDaGFsbGVuZ2U6IGZuLmZ1bmN0aW9uQXJuIH07XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoICdQb3N0IEF1dGhlbnRpY2F0aW9uJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wb3N0LWF1dGhlbnRpY2F0aW9uLmh0bWxcbiAgICogQHBhcmFtIGZuIHRoZSBsYW1iZGEgZnVuY3Rpb24gdG8gYXR0YWNoXG4gICAqL1xuICBwdWJsaWMgYWRkUG9zdEF1dGhlbnRpY2F0aW9uVHJpZ2dlcihmbjogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbihmbiwgJ1Bvc3RBdXRoZW50aWNhdGlvbicpO1xuICAgIHRoaXMudHJpZ2dlcnMgPSB7IC4uLnRoaXMudHJpZ2dlcnMsIHBvc3RBdXRoZW50aWNhdGlvbjogZm4uZnVuY3Rpb25Bcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggJ1Bvc3QgQ29uZmlybWF0aW9uJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS1wb3N0LWNvbmZpcm1hdGlvbi5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIGFkZFBvc3RDb25maXJtYXRpb25UcmlnZ2VyKGZuOiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKGZuLCAnUG9zdENvbmZpcm1hdGlvbicpO1xuICAgIHRoaXMudHJpZ2dlcnMgPSB7IC4uLnRoaXMudHJpZ2dlcnMsIHBvc3RDb25maXJtYXRpb246IGZuLmZ1bmN0aW9uQXJuIH07XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoICdQcmUgQXV0aGVudGljYXRpb24nIHRyaWdnZXJcbiAgICogR3JhbnRzIGFjY2VzcyBmcm9tIGNvZ25pdG8taWRwLmFtYXpvbmF3cy5jb20gdG8gdGhlIGxhbWJkYVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2duaXRvL2xhdGVzdC9kZXZlbG9wZXJndWlkZS91c2VyLXBvb2wtbGFtYmRhLXByZS1hdXRoZW50aWNhdGlvbi5odG1sXG4gICAqIEBwYXJhbSBmbiB0aGUgbGFtYmRhIGZ1bmN0aW9uIHRvIGF0dGFjaFxuICAgKi9cbiAgcHVibGljIGFkZFByZUF1dGhlbnRpY2F0aW9uVHJpZ2dlcihmbjogbGFtYmRhLklGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWRkTGFtYmRhUGVybWlzc2lvbihmbiwgJ1ByZUF1dGhlbnRpY2F0aW9uJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgcHJlQXV0aGVudGljYXRpb246IGZuLmZ1bmN0aW9uQXJuIH07XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoICdQcmUgU2lnbiBVcCcgdHJpZ2dlclxuICAgKiBHcmFudHMgYWNjZXNzIGZyb20gY29nbml0by1pZHAuYW1hem9uYXdzLmNvbSB0byB0aGUgbGFtYmRhXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZ25pdG8vbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3VzZXItcG9vbC1sYW1iZGEtcHJlLXNpZ24tdXAuaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBhZGRQcmVTaWduVXBUcmlnZ2VyKGZuOiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKGZuLCAnUHJlU2lnblVwJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgcHJlU2lnblVwOiBmbi5mdW5jdGlvbkFybiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCAnVmVyaWZ5IEF1dGggQ2hhbGxlbmdlIFJlc3BvbnNlJyB0cmlnZ2VyXG4gICAqIEdyYW50cyBhY2Nlc3MgZnJvbSBjb2duaXRvLWlkcC5hbWF6b25hd3MuY29tIHRvIHRoZSBsYW1iZGFcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29nbml0by9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvdXNlci1wb29sLWxhbWJkYS12ZXJpZnktYXV0aC1jaGFsbGVuZ2UtcmVzcG9uc2UuaHRtbFxuICAgKiBAcGFyYW0gZm4gdGhlIGxhbWJkYSBmdW5jdGlvbiB0byBhdHRhY2hcbiAgICovXG4gIHB1YmxpYyBhZGRWZXJpZnlBdXRoQ2hhbGxlbmdlUmVzcG9uc2VUcmlnZ2VyKGZuOiBsYW1iZGEuSUZ1bmN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hZGRMYW1iZGFQZXJtaXNzaW9uKGZuLCAnVmVyaWZ5QXV0aENoYWxsZW5nZVJlc3BvbnNlJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9IHsgLi4udGhpcy50cmlnZ2VycywgdmVyaWZ5QXV0aENoYWxsZW5nZVJlc3BvbnNlOiBmbi5mdW5jdGlvbkFybiB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRMYW1iZGFQZXJtaXNzaW9uKGZuOiBsYW1iZGEuSUZ1bmN0aW9uLCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBub3JtYWxpemUgPSBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKTtcbiAgICBmbi5hZGRQZXJtaXNzaW9uKGAke25vcm1hbGl6ZX1Db2duaXRvYCwge1xuICAgICAgcHJpbmNpcGFsOiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2NvZ25pdG8taWRwLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIHNvdXJjZUFybjogdGhpcy51c2VyUG9vbEFyblxuICAgIH0pO1xuICB9XG59XG4iXX0=
{
"name": "@aws-cdk/aws-cognito",
"version": "0.35.0",
"version": "0.36.0",
"description": "The CDK Construct Library for AWS::Cognito",

@@ -66,17 +66,17 @@ "main": "lib/index.js",

"devDependencies": {
"@aws-cdk/assert": "^0.35.0",
"cdk-build-tools": "^0.35.0",
"cfn2ts": "^0.35.0",
"pkglint": "^0.35.0"
"@aws-cdk/assert": "^0.36.0",
"cdk-build-tools": "^0.36.0",
"cfn2ts": "^0.36.0",
"pkglint": "^0.36.0"
},
"dependencies": {
"@aws-cdk/aws-iam": "^0.35.0",
"@aws-cdk/aws-lambda": "^0.35.0",
"@aws-cdk/cdk": "^0.35.0"
"@aws-cdk/aws-iam": "^0.36.0",
"@aws-cdk/aws-lambda": "^0.36.0",
"@aws-cdk/core": "^0.36.0"
},
"homepage": "https://github.com/awslabs/aws-cdk",
"peerDependencies": {
"@aws-cdk/aws-iam": "^0.35.0",
"@aws-cdk/aws-lambda": "^0.35.0",
"@aws-cdk/cdk": "^0.35.0"
"@aws-cdk/aws-iam": "^0.36.0",
"@aws-cdk/aws-lambda": "^0.36.0",
"@aws-cdk/core": "^0.36.0"
},

@@ -83,0 +83,0 @@ "engines": {

"use strict";
const assert_1 = require("@aws-cdk/assert");
const cdk = require("@aws-cdk/cdk");
const cdk = require("@aws-cdk/core");
const cognito = require("../lib");

@@ -21,2 +21,2 @@ module.exports = {

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC51c2VyLXBvb2wtY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVzdC51c2VyLXBvb2wtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBMkQ7QUFDM0Qsb0NBQXFDO0FBRXJDLGtDQUFtQztBQUVuQyxpQkFBUztJQUNQLGVBQWUsQ0FBQyxJQUFVO1FBQ3hCLFFBQVE7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFHLENBQUMsQ0FBQztRQUV0RCxPQUFPO1FBQ1AsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDMUMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7UUFFSCxPQUFPO1FBQ1AsZUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyx5QkFBZ0IsQ0FBQyw4QkFBOEIsRUFBRTtZQUNoRSxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBlY3QsIGhhdmVSZXNvdXJjZUxpa2UgfSBmcm9tICdAYXdzLWNkay9hc3NlcnQnO1xuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NkaycpO1xuaW1wb3J0IHsgVGVzdCB9IGZyb20gJ25vZGV1bml0JztcbmltcG9ydCBjb2duaXRvID0gcmVxdWlyZSgnLi4vbGliJyk7XG5cbmV4cG9ydCA9IHtcbiAgJ2RlZmF1bHQgc2V0dXAnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuICAgIGNvbnN0IHBvb2wgPSBuZXcgY29nbml0by5Vc2VyUG9vbChzdGFjaywgJ1Bvb2wnLCB7IH0pO1xuXG4gICAgLy8gV0hFTlxuICAgIG5ldyBjb2duaXRvLlVzZXJQb29sQ2xpZW50KHN0YWNrLCAnQ2xpZW50Jywge1xuICAgICAgdXNlclBvb2w6IHBvb2xcbiAgICB9KTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZUxpa2UoJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xDbGllbnQnLCB7XG4gICAgICBVc2VyUG9vbElkOiBzdGFjay5yZXNvbHZlKHBvb2wudXNlclBvb2xJZClcbiAgICB9KSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfVxufTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC51c2VyLXBvb2wtY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVzdC51c2VyLXBvb2wtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw0Q0FBMkQ7QUFDM0QscUNBQXNDO0FBRXRDLGtDQUFtQztBQUVuQyxpQkFBUztJQUNQLGVBQWUsQ0FBQyxJQUFVO1FBQ3hCLFFBQVE7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFHLENBQUMsQ0FBQztRQUV0RCxPQUFPO1FBQ1AsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDMUMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7UUFFSCxPQUFPO1FBQ1AsZUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyx5QkFBZ0IsQ0FBQyw4QkFBOEIsRUFBRTtZQUNoRSxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBlY3QsIGhhdmVSZXNvdXJjZUxpa2UgfSBmcm9tICdAYXdzLWNkay9hc3NlcnQnO1xuaW1wb3J0IGNkayA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2NvcmUnKTtcbmltcG9ydCB7IFRlc3QgfSBmcm9tICdub2RldW5pdCc7XG5pbXBvcnQgY29nbml0byA9IHJlcXVpcmUoJy4uL2xpYicpO1xuXG5leHBvcnQgPSB7XG4gICdkZWZhdWx0IHNldHVwJyh0ZXN0OiBUZXN0KSB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgICBjb25zdCBwb29sID0gbmV3IGNvZ25pdG8uVXNlclBvb2woc3RhY2ssICdQb29sJywgeyB9KTtcblxuICAgIC8vIFdIRU5cbiAgICBuZXcgY29nbml0by5Vc2VyUG9vbENsaWVudChzdGFjaywgJ0NsaWVudCcsIHtcbiAgICAgIHVzZXJQb29sOiBwb29sXG4gICAgfSk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KHN0YWNrKS50byhoYXZlUmVzb3VyY2VMaWtlKCdBV1M6OkNvZ25pdG86OlVzZXJQb29sQ2xpZW50Jywge1xuICAgICAgVXNlclBvb2xJZDogc3RhY2sucmVzb2x2ZShwb29sLnVzZXJQb29sSWQpXG4gICAgfSkpO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH1cbn07Il19
"use strict";
const assert_1 = require("@aws-cdk/assert");
const lambda = require("@aws-cdk/aws-lambda");
const cdk = require("@aws-cdk/cdk");
const cdk = require("@aws-cdk/core");
const cognito = require("../lib");

@@ -12,3 +12,3 @@ module.exports = {

new cognito.UserPool(stack, 'Pool', {
poolName: 'myPool'
userPoolName: 'myPool',
});

@@ -27,3 +27,3 @@ // THEN

handler: 'index.handler',
runtime: lambda.Runtime.Nodejs810,
runtime: lambda.Runtime.NODEJS_8_10,
});

@@ -52,3 +52,3 @@ // WHEN

handler: 'index.handler',
runtime: lambda.Runtime.Nodejs810,
runtime: lambda.Runtime.NODEJS_8_10,
});

@@ -86,3 +86,3 @@ // WHEN

handler: 'index.handler',
runtime: lambda.Runtime.Nodejs810,
runtime: lambda.Runtime.NODEJS_8_10,
});

@@ -107,4 +107,4 @@ // WHEN

new cognito.UserPool(stack, 'Pool', {
signInType: cognito.SignInType.Email,
autoVerifiedAttributes: [cognito.UserPoolAttribute.Email]
signInType: cognito.SignInType.EMAIL,
autoVerifiedAttributes: [cognito.UserPoolAttribute.EMAIL]
});

@@ -124,4 +124,4 @@ // THEN

new cognito.UserPool(stack, 'Pool', {
signInType: cognito.SignInType.Email,
usernameAliasAttributes: [cognito.UserPoolAttribute.PreferredUsername]
signInType: cognito.SignInType.EMAIL,
usernameAliasAttributes: [cognito.UserPoolAttribute.PREFERRED_USERNAME]
});

@@ -139,4 +139,4 @@ };

new cognito.UserPool(stack, 'Pool', {
signInType: cognito.SignInType.Username,
usernameAliasAttributes: [cognito.UserPoolAttribute.GivenName]
signInType: cognito.SignInType.USERNAME,
usernameAliasAttributes: [cognito.UserPoolAttribute.GIVEN_NAME]
});

@@ -154,4 +154,4 @@ };

new cognito.UserPool(stack, 'Pool', {
signInType: cognito.SignInType.Email,
autoVerifiedAttributes: [cognito.UserPoolAttribute.Email, cognito.UserPoolAttribute.Gender]
signInType: cognito.SignInType.EMAIL,
autoVerifiedAttributes: [cognito.UserPoolAttribute.EMAIL, cognito.UserPoolAttribute.GENDER]
});

@@ -164,2 +164,2 @@ };

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC51c2VyLXBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LnVzZXItcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNENBQTJEO0FBQzNELDhDQUErQztBQUMvQyxvQ0FBcUM7QUFFckMsa0NBQW1DO0FBRW5DLGlCQUFTO0lBQ1AsZUFBZSxDQUFDLElBQVU7UUFDeEIsUUFBUTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTlCLE9BQU87UUFDUCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNsQyxRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7UUFFSCxPQUFPO1FBQ1AsZUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyx5QkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRTtZQUMxRCxZQUFZLEVBQUUsUUFBUTtTQUN2QixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCw2QkFBNkIsQ0FBQyxJQUFVO1FBQ3RDLFFBQVE7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRTtZQUNoRCxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNsQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTO1NBQ2xDLENBQUMsQ0FBQztRQUVILE9BQU87UUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUMvQyxjQUFjLEVBQUU7Z0JBQ2QsU0FBUyxFQUFFLEVBQUU7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RSxDQUFDLElBQVU7UUFDOUUsUUFBUTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTlCLE9BQU87UUFDUCxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0JBQ2xDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUs7Z0JBQ3BDLHNCQUFzQixFQUFFLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO2FBQzVGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE9BQU87UUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLGlFQUFpRSxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBlY3QsIGhhdmVSZXNvdXJjZUxpa2UgfSBmcm9tICdAYXdzLWNkay9hc3NlcnQnO1xuaW1wb3J0IGxhbWJkYSA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnKTtcbmltcG9ydCBjZGsgPSByZXF1aXJlKCdAYXdzLWNkay9jZGsnKTtcbmltcG9ydCB7IFRlc3QgfSBmcm9tICdub2RldW5pdCc7XG5pbXBvcnQgY29nbml0byA9IHJlcXVpcmUoJy4uL2xpYicpO1xuXG5leHBvcnQgPSB7XG4gICdkZWZhdWx0IHNldHVwJyh0ZXN0OiBUZXN0KSB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcblxuICAgIC8vIFdIRU5cbiAgICBuZXcgY29nbml0by5Vc2VyUG9vbChzdGFjaywgJ1Bvb2wnLCB7XG4gICAgICBwb29sTmFtZTogJ215UG9vbCdcbiAgICB9KTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZUxpa2UoJ0FXUzo6Q29nbml0bzo6VXNlclBvb2wnLCB7XG4gICAgICBVc2VyUG9vbE5hbWU6ICdteVBvb2wnXG4gICAgfSkpO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2xhbWJkYSB0cmlnZ2VycyBhcmUgZGVmaW5lZCcodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgY29uc3QgZm4gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHN0YWNrLCAnTXlMYW1iZGEnLCB7XG4gICAgICBjb2RlOiBuZXcgbGFtYmRhLklubGluZUNvZGUoJ2ZvbycpLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTm9kZWpzODEwLFxuICAgIH0pO1xuXG4gICAgLy8gV0hFTlxuICAgIGNvbnN0IHBvb2wgPSBuZXcgY29nbml0by5Vc2VyUG9vbChzdGFjaywgJ1Bvb2wnLCB7XG4gICAgICBsYW1iZGFUcmlnZ2Vyczoge1xuICAgICAgICBwcmVTaWduVXA6IGZuXG4gICAgICB9XG4gICAgfSk7XG4gICAgcG9vbC5hZGRDdXN0b21NZXNzYWdlVHJpZ2dlcihmbik7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KHN0YWNrKS50byhoYXZlUmVzb3VyY2VMaWtlKCdBV1M6OkNvZ25pdG86OlVzZXJQb29sJywge1xuICAgICAgTGFtYmRhQ29uZmlnOiB7XG4gICAgICAgIFByZVNpZ25VcDogc3RhY2sucmVzb2x2ZShmbi5mdW5jdGlvbkFybiksXG4gICAgICAgIEN1c3RvbU1lc3NhZ2U6IHN0YWNrLnJlc29sdmUoZm4uZnVuY3Rpb25Bcm4pXG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ29uKiBBUEkgY29ycmVjdGx5IGFwcGVuZHMgdHJpZ2dlcnMnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuICAgIGNvbnN0IGZuID0gbmV3IGxhbWJkYS5GdW5jdGlvbihzdGFjaywgJ015TGFtYmRhJywge1xuICAgICAgY29kZTogbmV3IGxhbWJkYS5JbmxpbmVDb2RlKCdmb28nKSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5vZGVqczgxMCxcbiAgICB9KTtcblxuICAgIC8vIFdIRU5cbiAgICBjb25zdCBwb29sID0gbmV3IGNvZ25pdG8uVXNlclBvb2woc3RhY2ssICdQb29sJywgeyB9KTtcbiAgICBwb29sLmFkZENyZWF0ZUF1dGhDaGFsbGVuZ2VUcmlnZ2VyKGZuKTtcbiAgICBwb29sLmFkZEN1c3RvbU1lc3NhZ2VUcmlnZ2VyKGZuKTtcbiAgICBwb29sLmFkZERlZmluZUF1dGhDaGFsbGVuZ2VUcmlnZ2VyKGZuKTtcbiAgICBwb29sLmFkZFBvc3RBdXRoZW50aWNhdGlvblRyaWdnZXIoZm4pO1xuICAgIHBvb2wuYWRkUG9zdENvbmZpcm1hdGlvblRyaWdnZXIoZm4pO1xuICAgIHBvb2wuYWRkUHJlQXV0aGVudGljYXRpb25UcmlnZ2VyKGZuKTtcbiAgICBwb29sLmFkZFByZVNpZ25VcFRyaWdnZXIoZm4pO1xuICAgIHBvb2wuYWRkVmVyaWZ5QXV0aENoYWxsZW5nZVJlc3BvbnNlVHJpZ2dlcihmbik7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KHN0YWNrKS50byhoYXZlUmVzb3VyY2VMaWtlKCdBV1M6OkNvZ25pdG86OlVzZXJQb29sJywge1xuICAgICAgTGFtYmRhQ29uZmlnOiB7XG4gICAgICAgIENyZWF0ZUF1dGhDaGFsbGVuZ2U6IHN0YWNrLnJlc29sdmUoZm4uZnVuY3Rpb25Bcm4pLFxuICAgICAgICBDdXN0b21NZXNzYWdlOiBzdGFjay5yZXNvbHZlKGZuLmZ1bmN0aW9uQXJuKSxcbiAgICAgICAgRGVmaW5lQXV0aENoYWxsZW5nZTogc3RhY2sucmVzb2x2ZShmbi5mdW5jdGlvbkFybiksXG4gICAgICAgIFBvc3RBdXRoZW50aWNhdGlvbjogc3RhY2sucmVzb2x2ZShmbi5mdW5jdGlvbkFybiksXG4gICAgICAgIFBvc3RDb25maXJtYXRpb246IHN0YWNrLnJlc29sdmUoZm4uZnVuY3Rpb25Bcm4pLFxuICAgICAgICBQcmVBdXRoZW50aWNhdGlvbjogc3RhY2sucmVzb2x2ZShmbi5mdW5jdGlvbkFybiksXG4gICAgICAgIFByZVNpZ25VcDogc3RhY2sucmVzb2x2ZShmbi5mdW5jdGlvbkFybiksXG4gICAgICAgIFZlcmlmeUF1dGhDaGFsbGVuZ2VSZXNwb25zZTogc3RhY2sucmVzb2x2ZShmbi5mdW5jdGlvbkFybilcbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnbGFtYmRhcyBhcmUgZ2l2ZW4gY29nbml0byBzZXJ2aWNlIGdyYW50Jyh0ZXN0OiBUZXN0KSB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgICBjb25zdCBmbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdNeUxhbWJkYScsIHtcbiAgICAgIGNvZGU6IG5ldyBsYW1iZGEuSW5saW5lQ29kZSgnZm9vJyksXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5Ob2RlanM4MTAsXG4gICAgfSk7XG5cbiAgICAvLyBXSEVOXG4gICAgbmV3IGNvZ25pdG8uVXNlclBvb2woc3RhY2ssICdQb29sJywge1xuICAgICAgbGFtYmRhVHJpZ2dlcnM6IHtcbiAgICAgICAgcHJlU2lnblVwOiBmblxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gVEhFTlxuICAgIGV4cGVjdChzdGFjaykudG8oaGF2ZVJlc291cmNlTGlrZSgnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nLCB7XG4gICAgICBGdW5jdGlvbk5hbWU6IHN0YWNrLnJlc29sdmUoZm4uZnVuY3Rpb25Bcm4pLFxuICAgICAgUHJpbmNpcGFsOiAnY29nbml0by1pZHAuYW1hem9uYXdzLmNvbSdcbiAgICB9KSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnc2V0IHNpZ24gaW4gdHlwZScodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICAvLyBXSEVOXG4gICAgbmV3IGNvZ25pdG8uVXNlclBvb2woc3RhY2ssICdQb29sJywge1xuICAgICAgc2lnbkluVHlwZTogY29nbml0by5TaWduSW5UeXBlLkVtYWlsLFxuICAgICAgYXV0b1ZlcmlmaWVkQXR0cmlidXRlczogW2NvZ25pdG8uVXNlclBvb2xBdHRyaWJ1dGUuRW1haWxdXG4gICAgfSk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KHN0YWNrKS50byhoYXZlUmVzb3VyY2VMaWtlKCdBV1M6OkNvZ25pdG86OlVzZXJQb29sJywge1xuICAgICAgVXNlcm5hbWVBdHRyaWJ1dGVzOiBbJ2VtYWlsJ10sXG4gICAgICBBdXRvVmVyaWZpZWRBdHRyaWJ1dGVzOiBbJ2VtYWlsJ11cbiAgICB9KSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAndXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXMgcmVxdWlyZSBzaWduSW5UeXBlIG9mIFVTRVJOQU1FJyh0ZXN0OiBUZXN0KSB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcblxuICAgIC8vIFdIRU5cbiAgICBjb25zdCB0b1Rocm93ID0gKCkgPT4ge1xuICAgICAgbmV3IGNvZ25pdG8uVXNlclBvb2woc3RhY2ssICdQb29sJywge1xuICAgICAgICBzaWduSW5UeXBlOiBjb2duaXRvLlNpZ25JblR5cGUuRW1haWwsXG4gICAgICAgIHVzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzOiBbY29nbml0by5Vc2VyUG9vbEF0dHJpYnV0ZS5QcmVmZXJyZWRVc2VybmFtZV1cbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvLyBUSEVOXG4gICAgdGVzdC50aHJvd3MoKCkgPT4gdG9UaHJvdygpLCAvJ3VzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzJyBjYW4gb25seSBiZSBzZXQgd2l0aCBhIHNpZ25JblR5cGUgb2YgJ1VTRVJOQU1FJy8pO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9LFxuXG4gICd1c2VybmFtZUFsaWFzQXR0cmlidXRlcyBtdXN0IGJlIG9uZSBvciBtb3JlIG9mIEVNQUlMLCBQSE9ORV9OVU1CRVIsIG9yIFBSRUZFUlJFRF9VU0VSTkFNRScodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICAvLyBXSEVOXG4gICAgY29uc3QgdG9UaHJvdyA9ICgpID0+IHtcbiAgICAgIG5ldyBjb2duaXRvLlVzZXJQb29sKHN0YWNrLCAnUG9vbCcsIHtcbiAgICAgICAgc2lnbkluVHlwZTogY29nbml0by5TaWduSW5UeXBlLlVzZXJuYW1lLFxuICAgICAgICB1c2VybmFtZUFsaWFzQXR0cmlidXRlczogW2NvZ25pdG8uVXNlclBvb2xBdHRyaWJ1dGUuR2l2ZW5OYW1lXVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vIFRIRU5cbiAgICB0ZXN0LnRocm93cygoKSA9PiB0b1Rocm93KCksIC8ndXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXMnIGNhbiBvbmx5IGluY2x1ZGUgRU1BSUwsIFBIT05FX05VTUJFUiwgb3IgUFJFRkVSUkVEX1VTRVJOQU1FLyk7XG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2F1dG9WZXJpZmllZEF0dHJpYnV0ZXMgbXVzdCBiZSBvbmUgb3IgbW9yZSBvZiBFTUFJTCBvciBQSE9ORV9OVU1CRVInKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gICAgLy8gV0hFTlxuICAgIGNvbnN0IHRvVGhyb3cgPSAoKSA9PiB7XG4gICAgICBuZXcgY29nbml0by5Vc2VyUG9vbChzdGFjaywgJ1Bvb2wnLCB7XG4gICAgICAgIHNpZ25JblR5cGU6IGNvZ25pdG8uU2lnbkluVHlwZS5FbWFpbCxcbiAgICAgICAgYXV0b1ZlcmlmaWVkQXR0cmlidXRlczogW2NvZ25pdG8uVXNlclBvb2xBdHRyaWJ1dGUuRW1haWwsIGNvZ25pdG8uVXNlclBvb2xBdHRyaWJ1dGUuR2VuZGVyXVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vIFRIRU5cbiAgICB0ZXN0LnRocm93cygoKSA9PiB0b1Rocm93KCksIC8nYXV0b1ZlcmlmaWVkQXR0cmlidXRlcycgY2FuIG9ubHkgaW5jbHVkZSBFTUFJTCBvciBQSE9ORV9OVU1CRVIvKTtcbiAgICB0ZXN0LmRvbmUoKTtcbiAgfVxufTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC51c2VyLXBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0ZXN0LnVzZXItcG9vbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNENBQTJEO0FBQzNELDhDQUErQztBQUMvQyxxQ0FBc0M7QUFFdEMsa0NBQW1DO0FBRW5DLGlCQUFTO0lBQ1AsZUFBZSxDQUFDLElBQVU7UUFDeEIsUUFBUTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTlCLE9BQU87UUFDUCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUNsQyxZQUFZLEVBQUUsUUFBUTtTQUN2QixDQUFDLENBQUM7UUFFSCxPQUFPO1FBQ1AsZUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyx5QkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRTtZQUMxRCxZQUFZLEVBQUUsUUFBUTtTQUN2QixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCw2QkFBNkIsQ0FBQyxJQUFVO1FBQ3RDLFFBQVE7UUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixNQUFNLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRTtZQUNoRCxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNsQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1NBQ3BDLENBQUMsQ0FBQztRQUVILE9BQU87UUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUMvQyxjQUFjLEVBQUU7Z0JBQ2QsU0FBUyxFQUFFLEVBQUU7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RSxDQUFDLElBQVU7UUFDOUUsUUFBUTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTlCLE9BQU87UUFDUCxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0JBQ2xDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUs7Z0JBQ3BDLHNCQUFzQixFQUFFLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO2FBQzVGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLE9BQU87UUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLGlFQUFpRSxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBlY3QsIGhhdmVSZXNvdXJjZUxpa2UgfSBmcm9tICdAYXdzLWNkay9hc3NlcnQnO1xuaW1wb3J0IGxhbWJkYSA9IHJlcXVpcmUoJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnKTtcbmltcG9ydCBjZGsgPSByZXF1aXJlKCdAYXdzLWNkay9jb3JlJyk7XG5pbXBvcnQgeyBUZXN0IH0gZnJvbSAnbm9kZXVuaXQnO1xuaW1wb3J0IGNvZ25pdG8gPSByZXF1aXJlKCcuLi9saWInKTtcblxuZXhwb3J0ID0ge1xuICAnZGVmYXVsdCBzZXR1cCcodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICAvLyBXSEVOXG4gICAgbmV3IGNvZ25pdG8uVXNlclBvb2woc3RhY2ssICdQb29sJywge1xuICAgICAgdXNlclBvb2xOYW1lOiAnbXlQb29sJyxcbiAgICB9KTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZUxpa2UoJ0FXUzo6Q29nbml0bzo6VXNlclBvb2wnLCB7XG4gICAgICBVc2VyUG9vbE5hbWU6ICdteVBvb2wnXG4gICAgfSkpO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2xhbWJkYSB0cmlnZ2VycyBhcmUgZGVmaW5lZCcodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgY29uc3QgZm4gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHN0YWNrLCAnTXlMYW1iZGEnLCB7XG4gICAgICBjb2RlOiBuZXcgbGFtYmRhLklubGluZUNvZGUoJ2ZvbycpLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzhfMTAsXG4gICAgfSk7XG5cbiAgICAvLyBXSEVOXG4gICAgY29uc3QgcG9vbCA9IG5ldyBjb2duaXRvLlVzZXJQb29sKHN0YWNrLCAnUG9vbCcsIHtcbiAgICAgIGxhbWJkYVRyaWdnZXJzOiB7XG4gICAgICAgIHByZVNpZ25VcDogZm5cbiAgICAgIH1cbiAgICB9KTtcbiAgICBwb29sLmFkZEN1c3RvbU1lc3NhZ2VUcmlnZ2VyKGZuKTtcblxuICAgIC8vIFRIRU5cbiAgICBleHBlY3Qoc3RhY2spLnRvKGhhdmVSZXNvdXJjZUxpa2UoJ0FXUzo6Q29nbml0bzo6VXNlclBvb2wnLCB7XG4gICAgICBMYW1iZGFDb25maWc6IHtcbiAgICAgICAgUHJlU2lnblVwOiBzdGFjay5yZXNvbHZlKGZuLmZ1bmN0aW9uQXJuKSxcbiAgICAgICAgQ3VzdG9tTWVzc2FnZTogc3RhY2sucmVzb2x2ZShmbi5mdW5jdGlvbkFybilcbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnb24qIEFQSSBjb3JyZWN0bHkgYXBwZW5kcyB0cmlnZ2VycycodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgY29uc3QgZm4gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHN0YWNrLCAnTXlMYW1iZGEnLCB7XG4gICAgICBjb2RlOiBuZXcgbGFtYmRhLklubGluZUNvZGUoJ2ZvbycpLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzhfMTAsXG4gICAgfSk7XG5cbiAgICAvLyBXSEVOXG4gICAgY29uc3QgcG9vbCA9IG5ldyBjb2duaXRvLlVzZXJQb29sKHN0YWNrLCAnUG9vbCcsIHsgfSk7XG4gICAgcG9vbC5hZGRDcmVhdGVBdXRoQ2hhbGxlbmdlVHJpZ2dlcihmbik7XG4gICAgcG9vbC5hZGRDdXN0b21NZXNzYWdlVHJpZ2dlcihmbik7XG4gICAgcG9vbC5hZGREZWZpbmVBdXRoQ2hhbGxlbmdlVHJpZ2dlcihmbik7XG4gICAgcG9vbC5hZGRQb3N0QXV0aGVudGljYXRpb25UcmlnZ2VyKGZuKTtcbiAgICBwb29sLmFkZFBvc3RDb25maXJtYXRpb25UcmlnZ2VyKGZuKTtcbiAgICBwb29sLmFkZFByZUF1dGhlbnRpY2F0aW9uVHJpZ2dlcihmbik7XG4gICAgcG9vbC5hZGRQcmVTaWduVXBUcmlnZ2VyKGZuKTtcbiAgICBwb29sLmFkZFZlcmlmeUF1dGhDaGFsbGVuZ2VSZXNwb25zZVRyaWdnZXIoZm4pO1xuXG4gICAgLy8gVEhFTlxuICAgIGV4cGVjdChzdGFjaykudG8oaGF2ZVJlc291cmNlTGlrZSgnQVdTOjpDb2duaXRvOjpVc2VyUG9vbCcsIHtcbiAgICAgIExhbWJkYUNvbmZpZzoge1xuICAgICAgICBDcmVhdGVBdXRoQ2hhbGxlbmdlOiBzdGFjay5yZXNvbHZlKGZuLmZ1bmN0aW9uQXJuKSxcbiAgICAgICAgQ3VzdG9tTWVzc2FnZTogc3RhY2sucmVzb2x2ZShmbi5mdW5jdGlvbkFybiksXG4gICAgICAgIERlZmluZUF1dGhDaGFsbGVuZ2U6IHN0YWNrLnJlc29sdmUoZm4uZnVuY3Rpb25Bcm4pLFxuICAgICAgICBQb3N0QXV0aGVudGljYXRpb246IHN0YWNrLnJlc29sdmUoZm4uZnVuY3Rpb25Bcm4pLFxuICAgICAgICBQb3N0Q29uZmlybWF0aW9uOiBzdGFjay5yZXNvbHZlKGZuLmZ1bmN0aW9uQXJuKSxcbiAgICAgICAgUHJlQXV0aGVudGljYXRpb246IHN0YWNrLnJlc29sdmUoZm4uZnVuY3Rpb25Bcm4pLFxuICAgICAgICBQcmVTaWduVXA6IHN0YWNrLnJlc29sdmUoZm4uZnVuY3Rpb25Bcm4pLFxuICAgICAgICBWZXJpZnlBdXRoQ2hhbGxlbmdlUmVzcG9uc2U6IHN0YWNrLnJlc29sdmUoZm4uZnVuY3Rpb25Bcm4pXG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgdGVzdC5kb25lKCk7XG4gIH0sXG5cbiAgJ2xhbWJkYXMgYXJlIGdpdmVuIGNvZ25pdG8gc2VydmljZSBncmFudCcodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG4gICAgY29uc3QgZm4gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHN0YWNrLCAnTXlMYW1iZGEnLCB7XG4gICAgICBjb2RlOiBuZXcgbGFtYmRhLklubGluZUNvZGUoJ2ZvbycpLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzhfMTAsXG4gICAgfSk7XG5cbiAgICAvLyBXSEVOXG4gICAgbmV3IGNvZ25pdG8uVXNlclBvb2woc3RhY2ssICdQb29sJywge1xuICAgICAgbGFtYmRhVHJpZ2dlcnM6IHtcbiAgICAgICAgcHJlU2lnblVwOiBmblxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gVEhFTlxuICAgIGV4cGVjdChzdGFjaykudG8oaGF2ZVJlc291cmNlTGlrZSgnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nLCB7XG4gICAgICBGdW5jdGlvbk5hbWU6IHN0YWNrLnJlc29sdmUoZm4uZnVuY3Rpb25Bcm4pLFxuICAgICAgUHJpbmNpcGFsOiAnY29nbml0by1pZHAuYW1hem9uYXdzLmNvbSdcbiAgICB9KSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnc2V0IHNpZ24gaW4gdHlwZScodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICAvLyBXSEVOXG4gICAgbmV3IGNvZ25pdG8uVXNlclBvb2woc3RhY2ssICdQb29sJywge1xuICAgICAgc2lnbkluVHlwZTogY29nbml0by5TaWduSW5UeXBlLkVNQUlMLFxuICAgICAgYXV0b1ZlcmlmaWVkQXR0cmlidXRlczogW2NvZ25pdG8uVXNlclBvb2xBdHRyaWJ1dGUuRU1BSUxdXG4gICAgfSk7XG5cbiAgICAvLyBUSEVOXG4gICAgZXhwZWN0KHN0YWNrKS50byhoYXZlUmVzb3VyY2VMaWtlKCdBV1M6OkNvZ25pdG86OlVzZXJQb29sJywge1xuICAgICAgVXNlcm5hbWVBdHRyaWJ1dGVzOiBbJ2VtYWlsJ10sXG4gICAgICBBdXRvVmVyaWZpZWRBdHRyaWJ1dGVzOiBbJ2VtYWlsJ11cbiAgICB9KSk7XG5cbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAndXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXMgcmVxdWlyZSBzaWduSW5UeXBlIG9mIFVTRVJOQU1FJyh0ZXN0OiBUZXN0KSB7XG4gICAgLy8gR0lWRU5cbiAgICBjb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcblxuICAgIC8vIFdIRU5cbiAgICBjb25zdCB0b1Rocm93ID0gKCkgPT4ge1xuICAgICAgbmV3IGNvZ25pdG8uVXNlclBvb2woc3RhY2ssICdQb29sJywge1xuICAgICAgICBzaWduSW5UeXBlOiBjb2duaXRvLlNpZ25JblR5cGUuRU1BSUwsXG4gICAgICAgIHVzZXJuYW1lQWxpYXNBdHRyaWJ1dGVzOiBbY29nbml0by5Vc2VyUG9vbEF0dHJpYnV0ZS5QUkVGRVJSRURfVVNFUk5BTUVdXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgLy8gVEhFTlxuICAgIHRlc3QudGhyb3dzKCgpID0+IHRvVGhyb3coKSwgLyd1c2VybmFtZUFsaWFzQXR0cmlidXRlcycgY2FuIG9ubHkgYmUgc2V0IHdpdGggYSBzaWduSW5UeXBlIG9mICdVU0VSTkFNRScvKTtcbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAndXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXMgbXVzdCBiZSBvbmUgb3IgbW9yZSBvZiBFTUFJTCwgUEhPTkVfTlVNQkVSLCBvciBQUkVGRVJSRURfVVNFUk5BTUUnKHRlc3Q6IFRlc3QpIHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjaygpO1xuXG4gICAgLy8gV0hFTlxuICAgIGNvbnN0IHRvVGhyb3cgPSAoKSA9PiB7XG4gICAgICBuZXcgY29nbml0by5Vc2VyUG9vbChzdGFjaywgJ1Bvb2wnLCB7XG4gICAgICAgIHNpZ25JblR5cGU6IGNvZ25pdG8uU2lnbkluVHlwZS5VU0VSTkFNRSxcbiAgICAgICAgdXNlcm5hbWVBbGlhc0F0dHJpYnV0ZXM6IFtjb2duaXRvLlVzZXJQb29sQXR0cmlidXRlLkdJVkVOX05BTUVdXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgLy8gVEhFTlxuICAgIHRlc3QudGhyb3dzKCgpID0+IHRvVGhyb3coKSwgLyd1c2VybmFtZUFsaWFzQXR0cmlidXRlcycgY2FuIG9ubHkgaW5jbHVkZSBFTUFJTCwgUEhPTkVfTlVNQkVSLCBvciBQUkVGRVJSRURfVVNFUk5BTUUvKTtcbiAgICB0ZXN0LmRvbmUoKTtcbiAgfSxcblxuICAnYXV0b1ZlcmlmaWVkQXR0cmlidXRlcyBtdXN0IGJlIG9uZSBvciBtb3JlIG9mIEVNQUlMIG9yIFBIT05FX05VTUJFUicodGVzdDogVGVzdCkge1xuICAgIC8vIEdJVkVOXG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKCk7XG5cbiAgICAvLyBXSEVOXG4gICAgY29uc3QgdG9UaHJvdyA9ICgpID0+IHtcbiAgICAgIG5ldyBjb2duaXRvLlVzZXJQb29sKHN0YWNrLCAnUG9vbCcsIHtcbiAgICAgICAgc2lnbkluVHlwZTogY29nbml0by5TaWduSW5UeXBlLkVNQUlMLFxuICAgICAgICBhdXRvVmVyaWZpZWRBdHRyaWJ1dGVzOiBbY29nbml0by5Vc2VyUG9vbEF0dHJpYnV0ZS5FTUFJTCwgY29nbml0by5Vc2VyUG9vbEF0dHJpYnV0ZS5HRU5ERVJdXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgLy8gVEhFTlxuICAgIHRlc3QudGhyb3dzKCgpID0+IHRvVGhyb3coKSwgLydhdXRvVmVyaWZpZWRBdHRyaWJ1dGVzJyBjYW4gb25seSBpbmNsdWRlIEVNQUlMIG9yIFBIT05FX05VTUJFUi8pO1xuICAgIHRlc3QuZG9uZSgpO1xuICB9XG59O1xuIl19

@@ -44,3 +44,3 @@ {

{
"path": "../cdk"
"path": "../core"
},

@@ -47,0 +47,0 @@ {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc