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

cdk-cloudfront-plus

Package Overview
Dependencies
Maintainers
1
Versions
208
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cdk-cloudfront-plus - npm Package Compare versions

Comparing version 0.3.27 to 0.3.28

2

.changelog.tmp.md
### [0.3.27](https://github.com/pahudnet/cdk-cloudfront-plus/compare/v0.3.26...v0.3.27) (2021-05-03)
### [0.3.28](https://github.com/pahudnet/cdk-cloudfront-plus/compare/v0.3.27...v0.3.28) (2021-05-04)

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

v0.3.26
v0.3.27

@@ -478,2 +478,3 @@ # API Reference

* **authorizeParams** (<code>string</code>) *No description*
* **authorizeRedirecturiShouldMatch** (<code>boolean</code>) *No description*
* **authorizeUrl** (<code>string</code>) *No description*

@@ -487,2 +488,3 @@ * **callbackPath** (<code>string</code>) *No description*

* **jwtArgorithm** (<code>string</code>) *No description*
* **jwtTokenPath** (<code>string</code>) *No description*

@@ -757,2 +759,3 @@

**authorizeParams** | <code>string</code> | <span></span>
**authorizeRedirecturiShouldMatch** | <code>boolean</code> | <span></span>
**authorizeUrl** | <code>string</code> | <span></span>

@@ -766,2 +769,3 @@ **callbackPath** | <code>string</code> | <span></span>

**jwtArgorithm** | <code>string</code> | <span></span>
**jwtTokenPath** | <code>string</code> | <span></span>

@@ -768,0 +772,0 @@

@@ -148,6 +148,9 @@ /*

});
if (config.DEBUG_ENABLE) console.log("loginCallback: postData = (next line)");
if (config.DEBUG_ENABLE) console.log(postData);
const postOptions = {
host: config.CLIENT_DOMAIN,
port: 443,
path: "/oauth/token",
path: config.JWT_TOKEN_PATH,
method: "POST",

@@ -160,4 +163,5 @@ headers: {

const req = https.request(postOptions, (res) => {
if (config.DEBUG_ENABLE) console.log("loginCallback: res.statusCode = " + res.statusCode);
if (config.DEBUG_ENABLE) console.log("loginCallback: res.statusCode = " + res.statusCode + ", res.statusText = " + res.statusText);
if (res.statusCode >= 300) {
if (config.DEBUG_ENABLE) console.log("loginCallback: res.statusCode >= 300. You may want to check IdP logs.");
return callback(

@@ -179,9 +183,9 @@ null,

const json = JSON.parse(body);
if (config.DEBUG_ENABLE) console.log("loginCallback: parse body = (next line)");
if (config.DEBUG_ENABLE) console.log("loginCallback: on end, parse body = (next line)");
if (config.DEBUG_ENABLE) console.log(json);
const token = json.id_token;
if (config.DEBUG_ENABLE) console.log("loginCallback: token = " + token);
if (config.DEBUG_ENABLE) console.log("loginCallback: on end, token = " + token);
if (!token) {
if (config.DEBUG_ENABLE) console.log("loginCallback: no token!");
if (config.DEBUG_ENABLE) console.log("loginCallback: on end, no token!");
return callback(

@@ -195,3 +199,3 @@ null,

const dest = `https://${headers.host[0].value}${params.dest || "/"}`;
if (config.DEBUG_ENABLE) console.log("loginCallback: redirect to dest = " + dest + " with session token");
if (config.DEBUG_ENABLE) console.log("loginCallback: on end, redirect to dest = " + dest + " with session token");

@@ -240,3 +244,3 @@ callback(

);
const callbackUrl = `https://${headers.host[0].value}${config.CALLBACK_PATH}?dest=${encodedRedirectUrl}`;
const callbackUrl = (config.AUTHORIZE_REDIRECTURI_SHOULD_MATCH) ? `https://${headers.host[0].value}${config.CALLBACK_PATH}` : `https://${headers.host[0].value}${config.CALLBACK_PATH}?dest=${encodedRedirectUrl}`;
const encodedCallback = encodeURIComponent(callbackUrl);

@@ -263,13 +267,33 @@ const redirectUrl = `${config.AUTHORIZE_URL}${config.AUTHORIZE_PARAMS}&client_id=${config.CLIENT_ID}&redirect_uri=${encodedCallback}`;

function getBoolean(value){
switch(value){
case true:
case "true":
case 1:
case "1":
case "on":
case "yes":
return true;
default:
return false;
}
}
export function handler(event: any, context: any, callback: any) {
const config = {
CLIENT_DOMAIN: process.env.CLIENT_DOMAIN,
CLIENT_ID: process.env.CLIENT_ID,
CLIENT_SECRET: process.env.CLIENT_SECRET,
CLIENT_DOMAIN: process.env.CLIENT_DOMAIN,
CLIENT_PUBLIC_KEY: new Buffer(process.env.CLIENT_PUBLIC_KEY, 'base64').toString(),
CLIENT_PUBLIC_KEY: Buffer.from(process.env.CLIENT_PUBLIC_KEY, 'base64').toString(),
AUTHORIZE_URL: process.env.AUTHORIZE_URL,
AUTHORIZE_PARAMS: Buffer.from(process.env.AUTHORIZE_PARAMS, 'base64').toString(),
AUTHORIZE_REDIRECTURI_SHOULD_MATCH: getBoolean(process.env.AUTHORIZE_REDIRECTURI_SHOULD_MATCH),
CALLBACK_PATH: process.env.CALLBACK_PATH,
JWT_ARGORITHM: process.env.JWT_ARGORITHM,
AUTHORIZE_URL: process.env.AUTHORIZE_URL,
AUTHORIZE_PARAMS: new Buffer(process.env.AUTHORIZE_PARAMS, 'base64').toString(),
DEBUG_ENABLE: process.env.DEBUG_ENABLE,
JWT_TOKEN_PATH: process.env.JWT_TOKEN_PATH,
DEBUG_ENABLE: getBoolean(process.env.DEBUG_ENABLE),
};

@@ -282,2 +306,4 @@

if (config.DEBUG_ENABLE) console.log("request URI = ", request.uri);
console.log("config.DEBUG_ENABLE = " + config.DEBUG_ENABLE);
if (config.DEBUG_ENABLE) console.log("config.AUTHORIZE_REDIRECTURI_SHOULD_MATCH = " + config.AUTHORIZE_REDIRECTURI_SHOULD_MATCH);

@@ -284,0 +310,0 @@ if (

@@ -50,3 +50,3 @@ "use strict";

_a = JSII_RTTI_SYMBOL_1;
Custom[_a] = { fqn: "cdk-cloudfront-plus.Custom", version: "0.3.27" };
Custom[_a] = { fqn: "cdk-cloudfront-plus.Custom", version: "0.3.28" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2N1c3RvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZCQUE2QjtBQUM3Qiw4Q0FBOEM7QUFDOUMsOENBQThDO0FBQzlDLHFDQUFxQzs7Ozs7O0FBaUdyQyxNQUFhLE1BQU8sU0FBUSxHQUFHLENBQUMsV0FBVzs7OztJQU16QyxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQWtCOztRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixNQUFNLElBQUksU0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxtQ0FBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNsRSxJQUFJLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksbUNBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUN0RixPQUFPLFFBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sbUNBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQ3BELE9BQU8sUUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxtQ0FBSSxzQkFBc0I7WUFDakQsT0FBTyxRQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPLG1DQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNuRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLFNBQUcsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsbUNBQUksRUFBRSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQztRQUM1RSxJQUFJLENBQUMsV0FBVyxTQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxXQUFXLG1DQUFJLEtBQUssQ0FBQztRQUMvQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNPLGVBQWU7UUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDcEcsQ0FBQztJQUNPLGlCQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3pCLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO2dCQUNwQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO2dCQUM1QixXQUFXLEVBQUUsYUFBYTthQUMzQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O0FBbENILHdCQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjZiBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnQGF3cy1jZGsvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBJRXh0ZW5zaW9ucyB9IGZyb20gJy4vZXh0ZW5zaW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZ1bmM/OiBsYW1iZGEuRnVuY3Rpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb2RlPzogbGFtYmRhLkFzc2V0Q29kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcnVudGltZT86IGxhbWJkYS5SdW50aW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGhhbmRsZXI/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0aW1lb3V0PzogY2RrLkR1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZXZlbnRUeXBlPzogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBpbmNsdWRlQm9keT86IGJvb2xlYW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc29sdXRpb25JZD86IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB0ZW1wbGF0ZURlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEN1c3RvbSBleHRlbmRzIGNkay5OZXN0ZWRTdGFjayBpbXBsZW1lbnRzIElFeHRlbnNpb25zIHtcbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbiAgcmVhZG9ubHkgZnVuY3Rpb25WZXJzaW9uOiBsYW1iZGEuVmVyc2lvbjtcbiAgcmVhZG9ubHkgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlO1xuICByZWFkb25seSBpbmNsdWRlQm9keT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHByb3BzOiBDdXN0b21Qcm9wcztcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDdXN0b21Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgY29uc3QgZnVuYyA9IHByb3BzPy5mdW5jID8/IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgJ0N1c3RvbUZ1bmMnLCB7XG4gICAgICBjb2RlOiBwcm9wcz8uY29kZSA/PyBsYW1iZGEuQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2xhbWJkYS9mdW5jdGlvbicpKSxcbiAgICAgIHJ1bnRpbWU6IHByb3BzPy5ydW50aW1lID8/IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzgsXG4gICAgICBoYW5kbGVyOiBwcm9wcz8uaGFuZGxlciA/PyAnaW5kZXgubGFtYmRhX2hhbmRsZXInLFxuICAgICAgdGltZW91dDogcHJvcHM/LnRpbWVvdXQgPz8gY2RrLkR1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgfSk7XG4gICAgdGhpcy5mdW5jdGlvbkFybiA9IGZ1bmMuZnVuY3Rpb25Bcm47XG4gICAgdGhpcy5mdW5jdGlvblZlcnNpb24gPSBmdW5jLmN1cnJlbnRWZXJzaW9uO1xuICAgIHRoaXMuZXZlbnRUeXBlID0gcHJvcHM/LmV2ZW50VHlwZSA/PyBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlLk9SSUdJTl9SRVNQT05TRTtcbiAgICB0aGlzLmluY2x1ZGVCb2R5ID0gcHJvcHM/LmluY2x1ZGVCb2R5ID8/IGZhbHNlO1xuICAgIHRoaXMuX2FkZERlc2NyaXB0aW9uKCk7XG4gICAgdGhpcy5fb3V0cHV0U29sdXRpb25JZCgpO1xuICB9XG4gIHByaXZhdGUgX2FkZERlc2NyaXB0aW9uKCkge1xuICAgIHRoaXMudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uID0gYCgke3RoaXMucHJvcHMuc29sdXRpb25JZH0pICR7dGhpcy5wcm9wcy50ZW1wbGF0ZURlc2NyaXB0aW9ufWA7XG4gIH1cbiAgcHJpdmF0ZSBfb3V0cHV0U29sdXRpb25JZCgpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zb2x1dGlvbklkKSB7XG4gICAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnU29sdXRpb25JZCcsIHtcbiAgICAgICAgdmFsdWU6IHRoaXMucHJvcHMuc29sdXRpb25JZCxcbiAgICAgICAgZGVzY3JpcHRpb246ICdTb2x1dGlvbiBJRCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -19,10 +19,12 @@ "use strict";

const OAuth2AuthorizationCodeGrant = new extensions.OAuth2AuthorizationCodeGrant(stack, 'OAuth2AuthorizationCodeGrant', {
clientDomain: process.env.CLIENT_DOMAIN,
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
clientDomain: process.env.CLIENT_DOMAIN,
clientPublicKey: new Buffer(process.env.CLIENT_PUBLIC_KEY).toString('base64'),
clientPublicKey: Buffer.from(process.env.CLIENT_PUBLIC_KEY).toString('base64'),
authorizeUrl: process.env.AUTHORIZE_URL,
authorizeParams: Buffer.from(process.env.AUTHORIZE_PARAMS).toString('base64'),
authorizeRedirecturiShouldMatch: process.env.AUTHORIZE_REDIRECTURI_SHOULD_MATCH,
callbackPath: process.env.CALLBACK_PATH,
jwtArgorithm: process.env.JWT_ARGORITHM,
authorizeUrl: process.env.AUTHORIZE_URL,
authorizeParams: new Buffer(process.env.AUTHORIZE_PARAMS).toString('base64'),
jwtTokenPath: process.env.JWT_TOKEN_PATH,
debugEnable: process.env.DEBUG_ENABLE,

@@ -68,2 +70,2 @@ });

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVtby9jZi1hdXRoZW50aWNhdGlvbi1ieS1vYXV0aDIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDhDQUE4QztBQUM5QyxzQ0FBc0M7QUFDdEMsa0VBQXNFO0FBQ3RFLHFDQUFxQztBQUNyQyxpQ0FBaUM7QUFDakMsK0NBQStDO0FBRS9DLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxHQUFHLG1EQUFtRCxFQUFFLENBQUMsQ0FBQztBQUU5RyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUU7SUFDdEIsTUFBTSxZQUFZLENBQUMsS0FBSyxDQUFDO0NBQzFCO0FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO0FBRXJFLHVEQUF1RDtBQUN2RCxNQUFNLDRCQUE0QixHQUFHLElBQUksVUFBVSxDQUFDLDRCQUE0QixDQUFDLEtBQUssRUFBRSw4QkFBOEIsRUFBRTtJQUN0SCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFtQjtJQUN6QyxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUF1QjtJQUNqRCxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUF1QjtJQUNqRCxlQUFlLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBMkIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDdkYsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBdUI7SUFDakQsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBdUI7SUFDakQsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBdUI7SUFDakQsZUFBZSxFQUFFLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQTBCLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ3RGLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQWtDO0NBQzVELENBQUMsQ0FBQztBQUVILHlCQUF5QjtBQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRTtJQUNoRCxpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU87SUFDeEMsb0JBQW9CLEVBQUUsWUFBWTtJQUNsQyxvQkFBb0IsRUFBRSxZQUFZO0NBQ25DLENBQUMsQ0FBQztBQUVILHVDQUF1QztBQUN2QyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxFQUFFLCtIQUErSCxDQUFDLENBQUM7QUFDdEwsNkJBQTZCO0FBQzdCLElBQUksb0NBQWdCLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFO0lBQzlDLE9BQU8sRUFBRSxDQUFDLDBCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkQsaUJBQWlCLEVBQUUsTUFBTTtJQUN6QixjQUFjLEVBQUUsS0FBSztDQUN0QixDQUFDLENBQUM7QUFFSCw2Q0FBNkM7QUFDN0MsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7SUFDdEYsT0FBTyxFQUFFLHVDQUF1QyxNQUFNLENBQUMsVUFBVSxFQUFFO0NBQ3BFLENBQUMsQ0FBQztBQUVILDRCQUE0QjtBQUM1QixNQUFNLHlCQUF5QixHQUFHLElBQUksRUFBRSxDQUFDLHlCQUF5QixDQUFDLEtBQUssRUFBRSwyQkFBMkIsRUFBRTtJQUNyRyxhQUFhLEVBQUU7UUFDYjtZQUNFLGNBQWMsRUFBRTtnQkFDZCxvQkFBb0I7Z0JBQ3BCLGNBQWMsRUFBRSxNQUFNO2FBQ3ZCO1lBQ0QsU0FBUyxFQUFFLENBQUM7b0JBQ1YsaUJBQWlCLEVBQUUsSUFBSTtvQkFDdkIsMEJBQTBCLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztpQkFDM0QsQ0FBQztTQUNIO0tBQ0Y7SUFDRCxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlO0NBQzFDLENBQUMsQ0FBQztBQUVILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLEVBQUU7SUFDakQsS0FBSyxFQUFFLHlCQUF5QixDQUFDLHNCQUFzQjtDQUN4RCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2YgZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnQGF3cy1jZGsvYXdzLXMzJztcbmltcG9ydCB7IEJ1Y2tldERlcGxveW1lbnQsIFNvdXJjZSB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1zMy1kZXBsb3ltZW50JztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCAqIGFzIGRvdGVudiBmcm9tICdkb3RlbnYnO1xuaW1wb3J0ICogYXMgZXh0ZW5zaW9ucyBmcm9tICcuLi8uLi9leHRlbnNpb25zJztcblxuY29uc3QgcmVzdWx0RG90RW52ID0gZG90ZW52LmNvbmZpZyh7IHBhdGg6IF9fZGlybmFtZSArICcvLi4vLi4vLi4vZG90ZW52L2NmLWF1dGhlbnRpY2F0aW9uLWJ5LW9hdXRoMi8uZW52JyB9KTtcblxuaWYgKHJlc3VsdERvdEVudi5lcnJvcikge1xuICB0aHJvdyByZXN1bHREb3RFbnYuZXJyb3I7XG59XG5cbmNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG5jb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soYXBwLCAnY2YtYXV0aGVudGljYXRpb24tYnktb2F1dGgyLWRlbW8nKTtcblxuLy8gY3JlYXRlIHRoZSBjbG91ZGZyb250IGRpc3RyaWJ1dGlvbiB3aXRoIGV4dGVuc2lvbihzKVxuY29uc3QgT0F1dGgyQXV0aG9yaXphdGlvbkNvZGVHcmFudCA9IG5ldyBleHRlbnNpb25zLk9BdXRoMkF1dGhvcml6YXRpb25Db2RlR3JhbnQoc3RhY2ssICdPQXV0aDJBdXRob3JpemF0aW9uQ29kZUdyYW50Jywge1xuICBjbGllbnRJZDogcHJvY2Vzcy5lbnYuQ0xJRU5UX0lEIGFzIHN0cmluZyxcbiAgY2xpZW50U2VjcmV0OiBwcm9jZXNzLmVudi5DTElFTlRfU0VDUkVUIGFzIHN0cmluZyxcbiAgY2xpZW50RG9tYWluOiBwcm9jZXNzLmVudi5DTElFTlRfRE9NQUlOIGFzIHN0cmluZyxcbiAgY2xpZW50UHVibGljS2V5OiBuZXcgQnVmZmVyKHByb2Nlc3MuZW52LkNMSUVOVF9QVUJMSUNfS0VZIGFzIHN0cmluZykudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICBjYWxsYmFja1BhdGg6IHByb2Nlc3MuZW52LkNBTExCQUNLX1BBVEggYXMgc3RyaW5nLFxuICBqd3RBcmdvcml0aG06IHByb2Nlc3MuZW52LkpXVF9BUkdPUklUSE0gYXMgc3RyaW5nLFxuICBhdXRob3JpemVVcmw6IHByb2Nlc3MuZW52LkFVVEhPUklaRV9VUkwgYXMgc3RyaW5nLFxuICBhdXRob3JpemVQYXJhbXM6IG5ldyBCdWZmZXIocHJvY2Vzcy5lbnYuQVVUSE9SSVpFX1BBUkFNUyBhcyBzdHJpbmcpLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgZGVidWdFbmFibGU6IHByb2Nlc3MuZW52LkRFQlVHX0VOQUJMRSBhcyB1bmtub3duIGFzIGJvb2xlYW4sXG59KTtcblxuLy8gY3JlYXRlIERlbW8gUzMgQnVja2V0LlxuY29uc3QgYnVja2V0ID0gbmV3IHMzLkJ1Y2tldChzdGFjaywgJ2RlbW9CdWNrZXQnLCB7XG4gIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICByZW1vdmFsUG9saWN5OiBjZGsuUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICB3ZWJzaXRlSW5kZXhEb2N1bWVudDogJ2luZGV4Lmh0bWwnLFxuICB3ZWJzaXRlRXJyb3JEb2N1bWVudDogJ2luZGV4Lmh0bWwnLFxufSk7XG5cbi8vIGNyZWF0ZSBpbmRleC5odG1sIGluIHRoZSBkZW1vIGZvbGRlclxuZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnaW5kZXguaHRtbCcpLCAnPGgxPkhlbGxvIENsb3VkRnJvbnQgRXh0ZW5zaW9uIChPQXV0aDIgQXV0aGVudGljYXRpb24pIHdpdGggQ0RLISEhPC9oMT48cD5Zb3UgaGF2ZSBsb2dnZWQgaW4uIEVuam95IHlvdXIgcHJpdmF0ZSBjb250ZW50LjwvcD4nKTtcbi8vIFB1dCBkZW1vIE9iamVjdCB0byBCdWNrZXQuXG5uZXcgQnVja2V0RGVwbG95bWVudChzdGFjaywgJ0J1Y2tldERlcGxveW1lbnQnLCB7XG4gIHNvdXJjZXM6IFtTb3VyY2UuYXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJy4vJykpXSxcbiAgZGVzdGluYXRpb25CdWNrZXQ6IGJ1Y2tldCxcbiAgcmV0YWluT25EZWxldGU6IGZhbHNlLFxufSk7XG5cbi8vIENsb3VkRnJvbnQgT3JpZ2luQWNjZXNzSWRlbnRpdHkgZm9yIEJ1Y2tldFxuY29uc3Qgb3JpZ2luQWNjZXNzSWRlbnRpdHkgPSBuZXcgY2YuT3JpZ2luQWNjZXNzSWRlbnRpdHkoc3RhY2ssICdPcmlnaW5BY2Nlc3NJZGVudGl0eScsIHtcbiAgY29tbWVudDogYENsb3VkRnJvbnQgT3JpZ2luQWNjZXNzSWRlbnRpdHkgZm9yICR7YnVja2V0LmJ1Y2tldE5hbWV9YCxcbn0pO1xuXG4vLyBDbG91ZGZyb250V2ViRGlzdHJpYnV0aW9uXG5jb25zdCBjbG91ZGZyb250V2ViRGlzdHJpYnV0aW9uID0gbmV3IGNmLkNsb3VkRnJvbnRXZWJEaXN0cmlidXRpb24oc3RhY2ssICdDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uJywge1xuICBvcmlnaW5Db25maWdzOiBbXG4gICAge1xuICAgICAgczNPcmlnaW5Tb3VyY2U6IHtcbiAgICAgICAgb3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICAgIHMzQnVja2V0U291cmNlOiBidWNrZXQsXG4gICAgICB9LFxuICAgICAgYmVoYXZpb3JzOiBbe1xuICAgICAgICBpc0RlZmF1bHRCZWhhdmlvcjogdHJ1ZSxcbiAgICAgICAgbGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtPQXV0aDJBdXRob3JpemF0aW9uQ29kZUdyYW50XSxcbiAgICAgIH1dLFxuICAgIH0sXG4gIF0sXG4gIHByaWNlQ2xhc3M6IGNmLlByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfQUxMLFxufSk7XG5cbm5ldyBjZGsuQ2ZuT3V0cHV0KHN0YWNrLCAnZGlzdHJpYnV0aW9uRG9tYWluTmFtZScsIHtcbiAgdmFsdWU6IGNsb3VkZnJvbnRXZWJEaXN0cmlidXRpb24uZGlzdHJpYnV0aW9uRG9tYWluTmFtZSxcbn0pO1xuXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVtby9jZi1hdXRoZW50aWNhdGlvbi1ieS1vYXV0aDIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDhDQUE4QztBQUM5QyxzQ0FBc0M7QUFDdEMsa0VBQXNFO0FBQ3RFLHFDQUFxQztBQUNyQyxpQ0FBaUM7QUFDakMsK0NBQStDO0FBRS9DLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxHQUFHLG1EQUFtRCxFQUFFLENBQUMsQ0FBQztBQUU5RyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUU7SUFDdEIsTUFBTSxZQUFZLENBQUMsS0FBSyxDQUFDO0NBQzFCO0FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO0FBRXJFLHVEQUF1RDtBQUN2RCxNQUFNLDRCQUE0QixHQUFHLElBQUksVUFBVSxDQUFDLDRCQUE0QixDQUFDLEtBQUssRUFBRSw4QkFBOEIsRUFBRTtJQUN0SCxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUF1QjtJQUNqRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFtQjtJQUN6QyxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUF1QjtJQUNqRCxlQUFlLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUEyQixDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUV4RixZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUF1QjtJQUNqRCxlQUFlLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUEwQixDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUN2RiwrQkFBK0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF3RDtJQUVyRyxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUF1QjtJQUVqRCxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUF1QjtJQUNqRCxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUF3QjtJQUVsRCxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFrQztDQUM1RCxDQUFDLENBQUM7QUFFSCx5QkFBeUI7QUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUU7SUFDaEQsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPO0lBQ3hDLG9CQUFvQixFQUFFLFlBQVk7SUFDbEMsb0JBQW9CLEVBQUUsWUFBWTtDQUNuQyxDQUFDLENBQUM7QUFFSCx1Q0FBdUM7QUFDdkMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsRUFBRSwrSEFBK0gsQ0FBQyxDQUFDO0FBQ3RMLDZCQUE2QjtBQUM3QixJQUFJLG9DQUFnQixDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRTtJQUM5QyxPQUFPLEVBQUUsQ0FBQywwQkFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25ELGlCQUFpQixFQUFFLE1BQU07SUFDekIsY0FBYyxFQUFFLEtBQUs7Q0FDdEIsQ0FBQyxDQUFDO0FBRUgsNkNBQTZDO0FBQzdDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxFQUFFLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFFO0lBQ3RGLE9BQU8sRUFBRSx1Q0FBdUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtDQUNwRSxDQUFDLENBQUM7QUFFSCw0QkFBNEI7QUFDNUIsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsMkJBQTJCLEVBQUU7SUFDckcsYUFBYSxFQUFFO1FBQ2I7WUFDRSxjQUFjLEVBQUU7Z0JBQ2Qsb0JBQW9CO2dCQUNwQixjQUFjLEVBQUUsTUFBTTthQUN2QjtZQUNELFNBQVMsRUFBRSxDQUFDO29CQUNWLGlCQUFpQixFQUFFLElBQUk7b0JBQ3ZCLDBCQUEwQixFQUFFLENBQUMsNEJBQTRCLENBQUM7aUJBQzNELENBQUM7U0FDSDtLQUNGO0lBQ0QsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZTtDQUMxQyxDQUFDLENBQUM7QUFFSCxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLHdCQUF3QixFQUFFO0lBQ2pELEtBQUssRUFBRSx5QkFBeUIsQ0FBQyxzQkFBc0I7Q0FDeEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNmIGZyb20gJ0Bhd3MtY2RrL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ0Bhd3MtY2RrL2F3cy1zMyc7XG5pbXBvcnQgeyBCdWNrZXREZXBsb3ltZW50LCBTb3VyY2UgfSBmcm9tICdAYXdzLWNkay9hd3MtczMtZGVwbG95bWVudCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBkb3RlbnYgZnJvbSAnZG90ZW52JztcbmltcG9ydCAqIGFzIGV4dGVuc2lvbnMgZnJvbSAnLi4vLi4vZXh0ZW5zaW9ucyc7XG5cbmNvbnN0IHJlc3VsdERvdEVudiA9IGRvdGVudi5jb25maWcoeyBwYXRoOiBfX2Rpcm5hbWUgKyAnLy4uLy4uLy4uL2RvdGVudi9jZi1hdXRoZW50aWNhdGlvbi1ieS1vYXV0aDIvLmVudicgfSk7XG5cbmlmIChyZXN1bHREb3RFbnYuZXJyb3IpIHtcbiAgdGhyb3cgcmVzdWx0RG90RW52LmVycm9yO1xufVxuXG5jb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKGFwcCwgJ2NmLWF1dGhlbnRpY2F0aW9uLWJ5LW9hdXRoMi1kZW1vJyk7XG5cbi8vIGNyZWF0ZSB0aGUgY2xvdWRmcm9udCBkaXN0cmlidXRpb24gd2l0aCBleHRlbnNpb24ocylcbmNvbnN0IE9BdXRoMkF1dGhvcml6YXRpb25Db2RlR3JhbnQgPSBuZXcgZXh0ZW5zaW9ucy5PQXV0aDJBdXRob3JpemF0aW9uQ29kZUdyYW50KHN0YWNrLCAnT0F1dGgyQXV0aG9yaXphdGlvbkNvZGVHcmFudCcsIHtcbiAgY2xpZW50RG9tYWluOiBwcm9jZXNzLmVudi5DTElFTlRfRE9NQUlOIGFzIHN0cmluZyxcbiAgY2xpZW50SWQ6IHByb2Nlc3MuZW52LkNMSUVOVF9JRCBhcyBzdHJpbmcsXG4gIGNsaWVudFNlY3JldDogcHJvY2Vzcy5lbnYuQ0xJRU5UX1NFQ1JFVCBhcyBzdHJpbmcsXG4gIGNsaWVudFB1YmxpY0tleTogQnVmZmVyLmZyb20ocHJvY2Vzcy5lbnYuQ0xJRU5UX1BVQkxJQ19LRVkgYXMgc3RyaW5nKS50b1N0cmluZygnYmFzZTY0JyksXG5cbiAgYXV0aG9yaXplVXJsOiBwcm9jZXNzLmVudi5BVVRIT1JJWkVfVVJMIGFzIHN0cmluZyxcbiAgYXV0aG9yaXplUGFyYW1zOiBCdWZmZXIuZnJvbShwcm9jZXNzLmVudi5BVVRIT1JJWkVfUEFSQU1TIGFzIHN0cmluZykudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICBhdXRob3JpemVSZWRpcmVjdHVyaVNob3VsZE1hdGNoOiBwcm9jZXNzLmVudi5BVVRIT1JJWkVfUkVESVJFQ1RVUklfU0hPVUxEX01BVENIIGFzIHVua25vd24gYXMgYm9vbGVhbixcblxuICBjYWxsYmFja1BhdGg6IHByb2Nlc3MuZW52LkNBTExCQUNLX1BBVEggYXMgc3RyaW5nLFxuXG4gIGp3dEFyZ29yaXRobTogcHJvY2Vzcy5lbnYuSldUX0FSR09SSVRITSBhcyBzdHJpbmcsXG4gIGp3dFRva2VuUGF0aDogcHJvY2Vzcy5lbnYuSldUX1RPS0VOX1BBVEggYXMgc3RyaW5nLFxuXG4gIGRlYnVnRW5hYmxlOiBwcm9jZXNzLmVudi5ERUJVR19FTkFCTEUgYXMgdW5rbm93biBhcyBib29sZWFuLFxufSk7XG5cbi8vIGNyZWF0ZSBEZW1vIFMzIEJ1Y2tldC5cbmNvbnN0IGJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc3RhY2ssICdkZW1vQnVja2V0Jywge1xuICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgcmVtb3ZhbFBvbGljeTogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgd2Vic2l0ZUluZGV4RG9jdW1lbnQ6ICdpbmRleC5odG1sJyxcbiAgd2Vic2l0ZUVycm9yRG9jdW1lbnQ6ICdpbmRleC5odG1sJyxcbn0pO1xuXG4vLyBjcmVhdGUgaW5kZXguaHRtbCBpbiB0aGUgZGVtbyBmb2xkZXJcbmZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2luZGV4Lmh0bWwnKSwgJzxoMT5IZWxsbyBDbG91ZEZyb250IEV4dGVuc2lvbiAoT0F1dGgyIEF1dGhlbnRpY2F0aW9uKSB3aXRoIENESyEhITwvaDE+PHA+WW91IGhhdmUgbG9nZ2VkIGluLiBFbmpveSB5b3VyIHByaXZhdGUgY29udGVudC48L3A+Jyk7XG4vLyBQdXQgZGVtbyBPYmplY3QgdG8gQnVja2V0LlxubmV3IEJ1Y2tldERlcGxveW1lbnQoc3RhY2ssICdCdWNrZXREZXBsb3ltZW50Jywge1xuICBzb3VyY2VzOiBbU291cmNlLmFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcuLycpKV0sXG4gIGRlc3RpbmF0aW9uQnVja2V0OiBidWNrZXQsXG4gIHJldGFpbk9uRGVsZXRlOiBmYWxzZSxcbn0pO1xuXG4vLyBDbG91ZEZyb250IE9yaWdpbkFjY2Vzc0lkZW50aXR5IGZvciBCdWNrZXRcbmNvbnN0IG9yaWdpbkFjY2Vzc0lkZW50aXR5ID0gbmV3IGNmLk9yaWdpbkFjY2Vzc0lkZW50aXR5KHN0YWNrLCAnT3JpZ2luQWNjZXNzSWRlbnRpdHknLCB7XG4gIGNvbW1lbnQ6IGBDbG91ZEZyb250IE9yaWdpbkFjY2Vzc0lkZW50aXR5IGZvciAke2J1Y2tldC5idWNrZXROYW1lfWAsXG59KTtcblxuLy8gQ2xvdWRmcm9udFdlYkRpc3RyaWJ1dGlvblxuY29uc3QgY2xvdWRmcm9udFdlYkRpc3RyaWJ1dGlvbiA9IG5ldyBjZi5DbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uKHN0YWNrLCAnQ2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbicsIHtcbiAgb3JpZ2luQ29uZmlnczogW1xuICAgIHtcbiAgICAgIHMzT3JpZ2luU291cmNlOiB7XG4gICAgICAgIG9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgICBzM0J1Y2tldFNvdXJjZTogYnVja2V0LFxuICAgICAgfSxcbiAgICAgIGJlaGF2aW9yczogW3tcbiAgICAgICAgaXNEZWZhdWx0QmVoYXZpb3I6IHRydWUsXG4gICAgICAgIGxhbWJkYUZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbT0F1dGgyQXV0aG9yaXphdGlvbkNvZGVHcmFudF0sXG4gICAgICB9XSxcbiAgICB9LFxuICBdLFxuICBwcmljZUNsYXNzOiBjZi5QcmljZUNsYXNzLlBSSUNFX0NMQVNTX0FMTCxcbn0pO1xuXG5uZXcgY2RrLkNmbk91dHB1dChzdGFjaywgJ2Rpc3RyaWJ1dGlvbkRvbWFpbk5hbWUnLCB7XG4gIHZhbHVlOiBjbG91ZGZyb250V2ViRGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbkRvbWFpbk5hbWUsXG59KTtcblxuIl19

@@ -376,2 +376,6 @@ import * as cf from '@aws-cdk/aws-cloudfront';

*/
readonly clientDomain: string;
/**
* @stability stable
*/
readonly clientId: string;

@@ -385,26 +389,30 @@ /**

*/
readonly clientDomain: string;
readonly clientPublicKey: string;
/**
* @stability stable
*/
readonly clientPublicKey: string;
readonly authorizeUrl: string;
/**
* @stability stable
*/
readonly callbackPath: string;
readonly authorizeParams: string;
/**
* @stability stable
*/
readonly jwtArgorithm: string;
readonly authorizeRedirecturiShouldMatch: boolean;
/**
* @stability stable
*/
readonly authorizeUrl: string;
readonly callbackPath: string;
/**
* @stability stable
*/
readonly authorizeParams: string;
readonly jwtArgorithm: string;
/**
* @stability stable
*/
readonly jwtTokenPath: string;
/**
* @stability stable
*/
readonly debugEnable: boolean;

@@ -411,0 +419,0 @@ }

@@ -42,3 +42,3 @@ "use strict";

_a = JSII_RTTI_SYMBOL_1;
ModifyResponseHeader[_a] = { fqn: "cdk-cloudfront-plus.ModifyResponseHeader", version: "0.3.27" };
ModifyResponseHeader[_a] = { fqn: "cdk-cloudfront-plus.ModifyResponseHeader", version: "0.3.28" };
// export class HTTP302FromOrigin extends ServerlessApp implements IExtensions {

@@ -87,3 +87,3 @@ // readonly functionArn: string;

_b = JSII_RTTI_SYMBOL_1;
HTTP302FromOrigin[_b] = { fqn: "cdk-cloudfront-plus.HTTP302FromOrigin", version: "0.3.27" };
HTTP302FromOrigin[_b] = { fqn: "cdk-cloudfront-plus.HTTP302FromOrigin", version: "0.3.28" };
;

@@ -116,3 +116,3 @@ /**

_c = JSII_RTTI_SYMBOL_1;
AntiHotlinking[_c] = { fqn: "cdk-cloudfront-plus.AntiHotlinking", version: "0.3.27" };
AntiHotlinking[_c] = { fqn: "cdk-cloudfront-plus.AntiHotlinking", version: "0.3.28" };
/**

@@ -141,3 +141,3 @@ * Security Headers extension.

_d = JSII_RTTI_SYMBOL_1;
SecurtyHeaders[_d] = { fqn: "cdk-cloudfront-plus.SecurtyHeaders", version: "0.3.27" };
SecurtyHeaders[_d] = { fqn: "cdk-cloudfront-plus.SecurtyHeaders", version: "0.3.28" };
/**

@@ -170,3 +170,3 @@ * Multiple Origin IP Retry extension.

_e = JSII_RTTI_SYMBOL_1;
MultipleOriginIpRetry[_e] = { fqn: "cdk-cloudfront-plus.MultipleOriginIpRetry", version: "0.3.27" };
MultipleOriginIpRetry[_e] = { fqn: "cdk-cloudfront-plus.MultipleOriginIpRetry", version: "0.3.28" };
/**

@@ -195,3 +195,3 @@ * Normalize Query String extension.

_f = JSII_RTTI_SYMBOL_1;
NormalizeQueryString[_f] = { fqn: "cdk-cloudfront-plus.NormalizeQueryString", version: "0.3.27" };
NormalizeQueryString[_f] = { fqn: "cdk-cloudfront-plus.NormalizeQueryString", version: "0.3.28" };
/**

@@ -241,3 +241,3 @@ * Generate a lambda function version from the given function ARN

_g = JSII_RTTI_SYMBOL_1;
ConvertQueryString[_g] = { fqn: "cdk-cloudfront-plus.ConvertQueryString", version: "0.3.27" };
ConvertQueryString[_g] = { fqn: "cdk-cloudfront-plus.ConvertQueryString", version: "0.3.28" };
/**

@@ -270,3 +270,3 @@ * Default Directory Indexes in Amazon S3-backed Amazon CloudFront Origins.

_h = JSII_RTTI_SYMBOL_1;
DefaultDirIndex[_h] = { fqn: "cdk-cloudfront-plus.DefaultDirIndex", version: "0.3.27" };
DefaultDirIndex[_h] = { fqn: "cdk-cloudfront-plus.DefaultDirIndex", version: "0.3.28" };
;

@@ -300,3 +300,3 @@ /**

_j = JSII_RTTI_SYMBOL_1;
CustomErrorPage[_j] = { fqn: "cdk-cloudfront-plus.CustomErrorPage", version: "0.3.27" };
CustomErrorPage[_j] = { fqn: "cdk-cloudfront-plus.CustomErrorPage", version: "0.3.28" };
;

@@ -332,3 +332,3 @@ /**

_k = JSII_RTTI_SYMBOL_1;
AccessOriginByGeolocation[_k] = { fqn: "cdk-cloudfront-plus.AccessOriginByGeolocation", version: "0.3.27" };
AccessOriginByGeolocation[_k] = { fqn: "cdk-cloudfront-plus.AccessOriginByGeolocation", version: "0.3.28" };
;

@@ -364,3 +364,3 @@ /**

_l = JSII_RTTI_SYMBOL_1;
RedirectByGeolocation[_l] = { fqn: "cdk-cloudfront-plus.RedirectByGeolocation", version: "0.3.27" };
RedirectByGeolocation[_l] = { fqn: "cdk-cloudfront-plus.RedirectByGeolocation", version: "0.3.28" };
/**

@@ -391,3 +391,3 @@ * Simple content generation.

_m = JSII_RTTI_SYMBOL_1;
SimpleLambdaEdge[_m] = { fqn: "cdk-cloudfront-plus.SimpleLambdaEdge", version: "0.3.27" };
SimpleLambdaEdge[_m] = { fqn: "cdk-cloudfront-plus.SimpleLambdaEdge", version: "0.3.28" };
;

@@ -409,10 +409,12 @@ /**

define: {
'process.env.CLIENT_DOMAIN': JSON.stringify(props.clientDomain),
'process.env.CLIENT_ID': JSON.stringify(props.clientId),
'process.env.CLIENT_SECRET': JSON.stringify(props.clientSecret),
'process.env.CLIENT_DOMAIN': JSON.stringify(props.clientDomain),
'process.env.CLIENT_PUBLIC_KEY': JSON.stringify(props.clientPublicKey),
'process.env.AUTHORIZE_URL': JSON.stringify(props.authorizeUrl),
'process.env.AUTHORIZE_PARAMS': JSON.stringify(props.authorizeParams),
'process.env.AUTHORIZE_REDIRECTURI_SHOULD_MATCH': JSON.stringify(props.authorizeRedirecturiShouldMatch),
'process.env.CALLBACK_PATH': JSON.stringify(props.callbackPath),
'process.env.JWT_ARGORITHM': JSON.stringify(props.jwtArgorithm),
'process.env.AUTHORIZE_URL': JSON.stringify(props.authorizeUrl),
'process.env.AUTHORIZE_PARAMS': JSON.stringify(props.authorizeParams),
'process.env.JWT_TOKEN_PATH': JSON.stringify(props.jwtTokenPath),
'process.env.DEBUG_ENABLE': JSON.stringify(props.debugEnable),

@@ -433,3 +435,3 @@ },

_o = JSII_RTTI_SYMBOL_1;
OAuth2AuthorizationCodeGrant[_o] = { fqn: "cdk-cloudfront-plus.OAuth2AuthorizationCodeGrant", version: "0.3.27" };
OAuth2AuthorizationCodeGrant[_o] = { fqn: "cdk-cloudfront-plus.OAuth2AuthorizationCodeGrant", version: "0.3.28" };
;

@@ -471,3 +473,3 @@ ;

_p = JSII_RTTI_SYMBOL_1;
GlobalDataIngestion[_p] = { fqn: "cdk-cloudfront-plus.GlobalDataIngestion", version: "0.3.27" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9leHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDhDQUE4QztBQUM5Qyx3Q0FBd0M7QUFDeEMsOENBQThDO0FBQzlDLGtFQUE0RDtBQUM1RCxxQ0FBcUM7QUFDckMseUJBQW1DO0FBQ25DLHFDQUFrQztBQUVsQzs7R0FFRztBQUNILE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztBQXdCakYsQ0FBQzs7Ozs7OztBQU9GLE1BQWEsb0JBQXFCLFNBQVEsZ0JBQWE7Ozs7SUFJckQsWUFBWSxLQUFvQixFQUFFLEVBQVU7UUFDMUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixhQUFhLEVBQUUsbUZBQW1GO1lBQ2xHLGVBQWUsRUFBRSxPQUFPO1NBQ3pCLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5RixJQUFJLENBQUMsZUFBZSxHQUFHLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQztJQUMxRCxDQUFDOztBQWJILG9EQWNDOzs7QUFPRCxnRkFBZ0Y7QUFDaEYsa0NBQWtDO0FBQ2xDLDhDQUE4QztBQUM5QyxnREFBZ0Q7QUFDaEQsNkNBQTZDO0FBQzdDLG9EQUFvRDtBQUNwRCx5QkFBeUI7QUFDekIseUdBQXlHO0FBQ3pHLGtD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d0JBQXdCLENBQUMsaUNBQWlDLENBQUMsRUFBRTtRQUUzRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLElBQUk7WUFDSixTQUFTLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGNBQWM7WUFDaEQsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsbUJBQW1CLEVBQUUsMkRBQTJEO1NBQ2pGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM3QyxDQUFDOztBQXhCSCxrREF5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2YgZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ0Bhd3MtY2RrL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhLW5vZGVqcyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBTZXJ2ZXJsZXNzQXBwIH0gZnJvbSAnLi8nO1xuaW1wb3J0IHsgQ3VzdG9tIH0gZnJvbSAnLi9jdXN0b20nO1xuXG4vKipcbiAqIFRoZSBkaXJlY3RvcnkgZm9yIGFsbCBleHRlbnNpb25zIGxhbWJkYSBhc3NldHNcbiAqL1xuY29uc3QgRVhURU5TSU9OX0FTU0VUU19QQVRIID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2xhbWJkYS1hc3NldHMvZXh0ZW5zaW9ucycpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIElFeHRlbnNpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBmdW5jdGlvblZlcnNpb246IGxhbWJkYS5WZXJzaW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgaW5jbHVkZUJvZHk/OiBib29sZWFuO1xufTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgTW9kaWZ5UmVzcG9uc2VIZWFkZXIgZXh0ZW5kcyBTZXJ2ZXJsZXNzQXBwIGltcGxlbWVudHMgSUV4dGVuc2lvbnMge1xuICByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xuICByZWFkb25seSBmdW5jdGlvblZlcnNpb246IGxhbWJkYS5WZXJzaW9uO1xuICByZWFkb25seSBldmVudFR5cGU6IGNmLkxhbWJkYUVkZ2VFdmVudFR5cGU7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBhcHBsaWNhdGlvbklkOiAnYXJuOmF3czpzZXJ2ZXJsZXNzcmVwbzp1cy1lYXN0LTE6NDE4Mjg5ODg5MTExOmFwcGxpY2F0aW9ucy9tb2RpZnktcmVzcG9uc2UtaGVhZGVyJyxcbiAgICAgIHNlbWFudGljVmVyc2lvbjogJzEuMC4wJyxcbiAgICB9KTtcbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZihzY29wZSk7XG4gICAgdGhpcy5mdW5jdGlvbkFybiA9IHRoaXMucmVzb3VyY2UuZ2V0QXR0KCdPdXRwdXRzLk1vZGlmeVJlc3BvbnNlSGVhZGVyRnVuY3Rpb25BUk4nKS50b1N0cmluZygpO1xuICAgIHRoaXMuZnVuY3Rpb25WZXJzaW9uID0gYnVtcEZ1bmN0aW9uVmVyc2lvbihzdGFjaywgaWQsIHRoaXMuZnVuY3Rpb25Bcm4pO1xuICAgIHRoaXMuZXZlbnRUeXBlID0gY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVTUE9OU0U7XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbi8vIGV4cG9ydCBjbGFzcyBIVFRQMzAyRnJvbU9yaWdpbiBleHRlbmRzIFNlcnZlcmxlc3NBcHAgaW1wbGVtZW50cyBJRXh0ZW5zaW9ucyB7XG4vLyAgIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG4vLyAgIHJlYWRvbmx5IGZ1bmN0aW9uVmVyc2lvbjogbGFtYmRhLlZlcnNpb247XG4vLyAgIHJlYWRvbmx5IGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZTtcbi8vICAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb246IGxhbWJkYS5WZXJzaW9uO1xuLy8gICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuLy8gICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuLy8gICAgICAgYXBwbGljYXRpb25JZDogJ2Fybjphd3M6c2VydmVybGVzc3JlcG86dXMtZWFzdC0xOjQxODI4OTg4OTExMTphcHBsaWNhdGlvbnMvaHR0cDMwMi1mcm9tLW9yaWdpbicsXG4vLyAgICAgICBzZW1hbnRpY1ZlcnNpb246ICcxLjAuMicsXG4vLyAgICAgfSk7XG4vLyAgICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuLy8gICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSB0aGlzLnJlc291cmNlLmdldEF0dCgnT3V0cHV0cy5IdHRwMzAyRnVuY3Rpb24nKS50b1N0cmluZygpO1xuLy8gICAgIHRoaXMuZnVuY3Rpb25WZXJzaW9uID0gYnVtcEZ1bmN0aW9uVmVyc2lvbihzdGFjaywgaWQsIHRoaXMuZnVuY3Rpb25Bcm4pO1xuLy8gICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSB0aGlzLmZ1bmN0aW9uVmVyc2lvbjtcbi8vICAgICB0aGlzLmV2ZW50VHlwZSA9IGNmLkxhbWJkYUVkZ2VFdmVudFR5cGUuT1JJR0lOX1JFU1BPTlNFO1xuLy8gICB9XG4vLyB9O1xuZXhwb3J0IGNsYXNzIEhUVFAzMDJGcm9tT3JpZ2luIGV4dGVuZHMgQ3VzdG9tIHtcbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb246IGxhbWJkYS5WZXJzaW9uO1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGZ1bmMgPSBuZXcgTm9kZWpzRnVuY3Rpb24oc2NvcGUsICdIVFRQMzAyRnJvbU9yaWdpbkZ1bmMnLCB7XG4gICAgICBlbnRyeTogYCR7RVhURU5TSU9OX0FTU0VUU19QQVRIfS9jZi1odHRwMzAyLWZyb20tb3JpZ2luL2luZGV4LnRzYCxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xNF9YLFxuICAgIH0pO1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZnVuYyxcbiAgICAgIGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVTUE9OU0UsXG4gICAgICBzb2x1dGlvbklkOiAnU084MTAzJyxcbiAgICAgIHRlbXBsYXRlRGVzY3JpcHRpb246ICdDbG91ZGZyb250IGV4dGVuc2lvbiB3aXRoIEFXUyBDREsgLSBIVFRQIDMwMiBmcm9tIE9yaWdpbicsXG4gICAgfSk7XG4gICAgdGhpcy5sYW1iZGFGdW5jdGlvbiA9IHRoaXMuZnVuY3Rpb25WZXJzaW9uO1xuICB9XG59O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBBbnRpSG90bGlua2luZ1Byb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmVmZXJlcjogc3RyaW5nW107XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEFudGlIb3RsaW5raW5nIGV4dGVuZHMgU2VydmVybGVzc0FwcCBpbXBsZW1lbnRzIElFeHRlbnNpb25zIHtcbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbiAgcmVhZG9ubHkgZnVuY3Rpb25WZXJzaW9uOiBsYW1iZGEuVmVyc2lvbjtcbiAgcmVhZG9ubHkgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlO1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFudGlIb3RsaW5raW5nUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGFwcGxpY2F0aW9uSWQ6ICdhcm46YXdzOnNlcnZlcmxlc3NyZXBvOnVzLWVhc3QtMTo0MTgyODk4ODkxMTE6YXBwbGljYXRpb25zL2FudGktaG90bGlua2luZycsXG4gICAgICBzZW1hbnRpY1ZlcnNpb246ICcxLjIuNScsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIFJlZmVyZXJMaXN0OiBwcm9wcy5yZWZlcmVyLmpvaW4oJywnKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSB0aGlzLnJlc291cmNlLmdldEF0dCgnT3V0cHV0cy5BbnRpSG90bGlua2luZycpLnRvU3RyaW5nKCk7XG4gICAgdGhpcy5mdW5jdGlvblZlcnNpb24gPSBidW1wRnVuY3Rpb25WZXJzaW9uKHN0YWNrLCBpZCwgdGhpcy5mdW5jdGlvbkFybik7XG4gICAgdGhpcy5ldmVudFR5cGUgPSBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNUO1xuICB9XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBTZWN1cnR5SGVhZGVycyBleHRlbmRzIFNlcnZlcmxlc3NBcHAgaW1wbGVtZW50cyBJRXh0ZW5zaW9ucyB7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uVmVyc2lvbjogbGFtYmRhLlZlcnNpb247XG4gIHJlYWRvbmx5IGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZTtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGFwcGxpY2F0aW9uSWQ6ICdhcm46YXdzOnNlcnZlcmxlc3NyZXBvOnVzLWVhc3QtMTo0MTgyODk4ODkxMTE6YXBwbGljYXRpb25zL2FkZC1zZWN1cml0eS1oZWFkZXJzJyxcbiAgICAgIHNlbWFudGljVmVyc2lvbjogJzEuMC4wJyxcbiAgICB9KTtcbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZihzY29wZSk7XG4gICAgdGhpcy5mdW5jdGlvbkFybiA9IHRoaXMucmVzb3VyY2UuZ2V0QXR0KCdPdXRwdXRzLkFkZFNlY3VyaXR5SGVhZGVyRnVuY3Rpb24nKS50b1N0cmluZygpO1xuICAgIHRoaXMuZnVuY3Rpb25WZXJzaW9uID0gYnVtcEZ1bmN0aW9uVmVyc2lvbihzdGFjaywgaWQsIHRoaXMuZnVuY3Rpb25Bcm4pO1xuICAgIHRoaXMuZXZlbnRUeXBlID0gY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVTUE9OU0U7XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpcGxlT3JpZ2luSXBSZXRyeVByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvcmlnaW5JcDogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvcmlnaW5Qcm90b2NvbDogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIE11bHRpcGxlT3JpZ2luSXBSZXRyeSBleHRlbmRzIFNlcnZlcmxlc3NBcHAgaW1wbGVtZW50cyBJRXh0ZW5zaW9ucyB7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uVmVyc2lvbjogbGFtYmRhLlZlcnNpb247XG4gIHJlYWRvbmx5IGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZTtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBNdWx0aXBsZU9yaWdpbklwUmV0cnlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgYXBwbGljYXRpb25JZDogJ2Fybjphd3M6c2VydmVybGVzc3JlcG86dXMtZWFzdC0xOjQxODI4OTg4OTExMTphcHBsaWNhdGlvbnMvbXVsdGlwbGUtb3JpZ2luLUlQLXJldHJ5JyxcbiAgICAgIHNlbWFudGljVmVyc2lvbjogJzEuMC4xJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgT3JpZ2luSVBMaXN0OiBwcm9wcy5vcmlnaW5JcC5qb2luKCc7JyksXG4gICAgICAgIE9yaWdpblByb3RvY29sOiBwcm9wcy5vcmlnaW5Qcm90b2NvbCxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSB0aGlzLnJlc291cmNlLmdldEF0dCgnT3V0cHV0cy5NdWx0aXBsZU9yaWdpbklQUmV0cnknKS50b1N0cmluZygpO1xuICAgIHRoaXMuZnVuY3Rpb25WZXJzaW9uID0gYnVtcEZ1bmN0aW9uVmVyc2lvbihzdGFjaywgaWQsIHRoaXMuZnVuY3Rpb25Bcm4pO1xuICAgIHRoaXMuZXZlbnRUeXBlID0gY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVRVUVTVDtcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIE5vcm1hbGl6ZVF1ZXJ5U3RyaW5nIGV4dGVuZHMgU2VydmVybGVzc0FwcCBpbXBsZW1lbnRzIElFeHRlbnNpb25zIHtcbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbiAgcmVhZG9ubHkgZnVuY3Rpb25WZXJzaW9uOiBsYW1iZGEuVmVyc2lvbjtcbiAgcmVhZG9ubHkgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlO1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgYXBwbGljYXRpb25JZDogJ2Fybjphd3M6c2VydmVybGVzc3JlcG86dXMtZWFzdC0xOjQxODI4OTg4OTExMTphcHBsaWNhdGlvbnMvbm9ybWFsaXplLXF1ZXJ5LXN0cmluZycsXG4gICAgICBzZW1hbnRpY1ZlcnNpb246ICcxLjAuMScsXG4gICAgfSk7XG4gICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSB0aGlzLnJlc291cmNlLmdldEF0dCgnT3V0cHV0cy5Ob3JtYWxpemVRdWVyeVN0cmluZ0Z1bmN0aW9uJykudG9TdHJpbmcoKTtcbiAgICB0aGlzLmZ1bmN0aW9uVmVyc2lvbiA9IGJ1bXBGdW5jdGlvblZlcnNpb24oc3RhY2ssIGlkLCB0aGlzLmZ1bmN0aW9uQXJuKTtcbiAgICB0aGlzLmV2ZW50VHlwZSA9IGNmLkxhbWJkYUVkZ2VFdmVudFR5cGUuVklFV0VSX1JFUVVFU1Q7XG4gIH1cbn1cblxuXG4vKipcbiAqIEdlbmVyYXRlIGEgbGFtYmRhIGZ1bmN0aW9uIHZlcnNpb24gZnJvbSB0aGUgZ2l2ZW4gZnVuY3Rpb24gQVJOXG4gKiBAcGFyYW0gc2NvcGVcbiAqIEBwYXJhbSBpZFxuICogQHBhcmFtIGZ1bmN0aW9uQXJuIFRoZSBsYW1iZGEgZnVuY3Rpb24gQVJOXG4gKiBAcmV0dXJucyBsYW1iZGEuVmVyc2lvblxuICovXG5mdW5jdGlvbiBidW1wRnVuY3Rpb25WZXJzaW9uKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBmdW5jdGlvbkFybjogc3RyaW5nKTogbGFtYmRhLlZlcnNpb24ge1xuICByZXR1cm4gbmV3IGxhbWJkYS5WZXJzaW9uKHNjb3BlLCBgTGFtYmRhVmVyc2lvbiR7aWR9YCwge1xuICAgIGxhbWJkYTogbGFtYmRhLkZ1bmN0aW9uLmZyb21GdW5jdGlvbkFybihzY29wZSwgYEZ1bmNBcm4ke2lkfWAsIGZ1bmN0aW9uQXJuKSxcbiAgfSk7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnRRdWVyeVN0cmluZ1Byb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFyZ3M6IEFycmF5PHN0cmluZz47XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBDb252ZXJ0UXVlcnlTdHJpbmcgZXh0ZW5kcyBDdXN0b20ge1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLlZlcnNpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29udmVydFF1ZXJ5U3RyaW5nUHJvcHMpIHtcbiAgICBjb25zdCBmdW5jID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHNjb3BlLCAnQ29udmVydFF1ZXJ5U3RyaW5nRnVuYycsIHtcbiAgICAgIGVudHJ5OiBgJHtFWFRFTlNJT05fQVNTRVRTX1BBVEh9L2NmLWNvbnZlcnQtcXVlcnktc3RyaW5nL2luZGV4LnRzYCxcbiAgICAgIGhhbmRsZXI6ICdsYW1iZGFIYW5kbGVyJyxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgZGVmaW5lOiB7XG4gICAgICAgICAgTkVFREVEX0tFWVM6IEpTT04uc3RyaW5naWZ5KHByb3BzLmFyZ3MpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGZ1bmMsXG4gICAgICBldmVudFR5cGU6IGNmLkxhbWJkYUVkZ2VFdmVudFR5cGUuT1JJR0lOX1JFUVVFU1QsXG4gICAgICBzb2x1dGlvbklkOiAnU084MTEzJyxcbiAgICAgIHRlbXBsYXRlRGVzY3JpcHRpb246ICdDbG91ZGZyb250IGV4dGVuc2lvbiB3aXRoIEFXUyBDREsgLSBDb252ZXJ0IFF1ZXJ5IFN0cmluZy4nLFxuICAgIH0pO1xuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSB0aGlzLmZ1bmN0aW9uVmVyc2lvbjtcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgRGVmYXVsdERpckluZGV4IGV4dGVuZHMgQ3VzdG9tIHtcbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb246IGxhbWJkYS5WZXJzaW9uO1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGZ1bmMgPSBuZXcgTm9kZWpzRnVuY3Rpb24oc2NvcGUsICdEZWZhdWx0RGlySW5kZXhGdW5jJywge1xuICAgICAgZW50cnk6IGAke0VYVEVOU0lPTl9BU1NFVFNfUEFUSH0vY2YtZGVmYXVsdC1kaXItaW5kZXgvaW5kZXgudHNgLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE0X1gsXG4gICAgfSk7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBmdW5jLFxuICAgICAgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlLk9SSUdJTl9SRVFVRVNULFxuICAgICAgc29sdXRpb25JZDogJ1NPODEzNCcsXG4gICAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiAnQ2xvdWRmcm9udCBleHRlbnNpb24gd2l0aCBBV1MgQ0RLIC0gRGVmYXVsdCBEaXJlY3RvcnkgSW5kZXggZm9yIEFtYXpvbiBTMyBPcmlnaW4uJyxcbiAgICB9KTtcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gdGhpcy5mdW5jdGlvblZlcnNpb247XG4gIH1cbn07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBDdXN0b21FcnJvclBhZ2UgZXh0ZW5kcyBDdXN0b20ge1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLlZlcnNpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZnVuYyA9IG5ldyBOb2RlanNGdW5jdGlvbihzY29wZSwgJ0N1c3RvbUVycm9yUGFnZUZ1bmMnLCB7XG4gICAgICBlbnRyeTogYCR7RVhURU5TSU9OX0FTU0VUU19QQVRIfS9jZi1jdXN0b20tZXJyb3ItcGFnZS9pbmRleC50c2AsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTRfWCxcbiAgICB9KTtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGZ1bmMsXG4gICAgICBldmVudFR5cGU6IGNmLkxhbWJkYUVkZ2VFdmVudFR5cGUuT1JJR0lOX1JFU1BPTlNFLFxuICAgICAgc29sdXRpb25JZDogJ1NPODEzNicsXG4gICAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiAnQ2xvdWRmcm9udCBleHRlbnNpb24gd2l0aCBBV1MgQ0RLIC0gQ3VzdG9tIEVycm9yIFBhZ2UnLFxuICAgIH0pO1xuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSB0aGlzLmZ1bmN0aW9uVmVyc2lvbjtcbiAgfVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NPcmlnaW5CeUdlb2xvY2F0aW9uUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb3VudHJ5VGFibGU6IHsgW2NvZGU6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEFjY2Vzc09yaWdpbkJ5R2VvbG9jYXRpb24gZXh0ZW5kcyBDdXN0b20ge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFjY2Vzc09yaWdpbkJ5R2VvbG9jYXRpb25Qcm9wcykge1xuICAgIGNvbnN0IGZ1bmMgPSBuZXcgTm9kZWpzRnVuY3Rpb24oc2NvcGUsICdBY2Nlc3NPcmlnaW5CeUdlb2xvY2F0aW9uRnVuYycsIHtcbiAgICAgIGVudHJ5OiBgJHtFWFRFTlNJT05fQVNTRVRTX1BBVEh9L2NmLWFjY2Vzcy1vcmlnaW4tYnktZ2VvbG9jYXRpb24vaW5kZXgudHNgLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE0X1gsXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICBkZWZpbmU6IHtcbiAgICAgICAgICAncHJvY2Vzcy5lbnYuQ09VTlRSWV9DT0RFX1RBQkxFJzogSlNPTi5zdHJpbmdpZnkocHJvcHMuY291bnRyeVRhYmxlKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBmdW5jLFxuICAgICAgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlLk9SSUdJTl9SRVFVRVNULFxuICAgICAgc29sdXRpb25JZDogJ1MwODExOCcsXG4gICAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiAnQ2xvdWRmcm9udCBleHRlbnNpb24gd2l0aCBBV1MgQ0RLIC0gQWNjZXNzIE9yaWdpbiBieSBHZW9sb2NhdGlvbicsXG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVkaXJlY3RCeUdlb2xvY2F0aW9uUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb3VudHJ5VGFibGU6IHsgW2NvZGU6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0QnlHZW9sb2NhdGlvbiBleHRlbmRzIEN1c3RvbSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVkaXJlY3RCeUdlb2xvY2F0aW9uUHJvcHMpIHtcbiAgICBjb25zdCBmdW5jID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHNjb3BlLCAnUmVkaXJlY3RCeUdlb2xvY2F0aW9uRnVuYycsIHtcbiAgICAgIGVudHJ5OiBgJHtFWFRFTlNJT05fQVNTRVRTX1BBVEh9L2NmLXJlZGlyZWN0LWJ5LWdlb2xvY2F0aW9uL2luZGV4LnRzYCxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgZGVmaW5lOiB7XG4gICAgICAgICAgJ3Byb2Nlc3MuZW52LkNPVU5UUllfQ09ERV9UQUJMRSc6IEpTT04uc3RyaW5naWZ5KHByb3BzLmNvdW50cnlUYWJsZSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZnVuYyxcbiAgICAgIGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVRVUVTVCxcbiAgICAgIHNvbHV0aW9uSWQ6ICdTTzgxMzUnLFxuICAgICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogJ0Nsb3VkZnJvbnQgZXh0ZW5zaW9uIHdpdGggQVdTIENESyAtIFJlZGlyZWN0IGJ5IEdlb2xvY2F0aW9uJyxcbiAgICB9KTtcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBTaW1wbGVMYW1iZGFFZGdlIGV4dGVuZHMgQ3VzdG9tIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmdW5jID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHNjb3BlLCAnU2ltcGxlTGFtYmRhRWRnZUZ1bmMnLCB7XG4gICAgICBlbnRyeTogYCR7RVhURU5TSU9OX0FTU0VUU19QQVRIfS9zaW1wbGUtbGFtYmRhLWVkZ2UvaW5kZXgudHNgLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE0X1gsXG4gICAgfSk7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBmdW5jLFxuICAgICAgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgc29sdXRpb25JZDogJycsXG4gICAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiAnQ2xvdWRmcm9udCBleHRlbnNpb24gd2l0aCBBV1MgQ0RLIC0gU2ltcGxlIExhbWJkYSBFZGdlLicsXG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGgyQXV0aG9yaXphdGlvbkNvZGVHcmFudFByb3BzIHtcbiAgcmVhZG9ubHkgY2xpZW50SWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY2xpZW50U2VjcmV0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNsaWVudERvbWFpbjogc3RyaW5nO1xuICByZWFkb25seSBjbGllbnRQdWJsaWNLZXk6IHN0cmluZztcbiAgcmVhZG9ubHkgY2FsbGJhY2tQYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGp3dEFyZ29yaXRobTogc3RyaW5nO1xuICByZWFkb25seSBhdXRob3JpemVVcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgYXV0aG9yaXplUGFyYW1zOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlYnVnRW5hYmxlOiBib29sZWFuO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIE9BdXRoMkF1dGhvcml6YXRpb25Db2RlR3JhbnQgZXh0ZW5kcyBDdXN0b20ge1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLlZlcnNpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogT0F1dGgyQXV0aG9yaXphdGlvbkNvZGVHcmFudFByb3BzKSB7XG4gICAgY29uc3QgZnVuYyA9IG5ldyBOb2RlanNGdW5jdGlvbihzY29wZSwgJ09BdXRoMkF1dGhvcml6YXRpb25Db2RlR3JhbnRGdW5jJywge1xuICAgICAgZW50cnk6IGAke0VYVEVOU0lPTl9BU1NFVFNfUEFUSH0vY2YtYXV0aGVudGljYXRpb24tYnktb2F1dGgyL2luZGV4LnRzYCxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgZGVmaW5lOiB7XG4gICAgICAgICAgJ3Byb2Nlc3MuZW52LkNMSUVOVF9JRCc6IEpTT04uc3RyaW5naWZ5KHByb3BzLmNsaWVudElkKSxcbiAgICAgICAgICAncHJvY2Vzcy5lbnYuQ0xJRU5UX1NFQ1JFVCc6IEpTT04uc3RyaW5naWZ5KHByb3BzLmNsaWVudFNlY3JldCksXG4gICAgICAgICAgJ3Byb2Nlc3MuZW52LkNMSUVOVF9ET01BSU4nOiBKU09OLnN0cmluZ2lmeShwcm9wcy5jbGllbnREb21haW4pLFxuICAgICAgICAgICdwcm9jZXNzLmVudi5DTElFTlRfUFVCTElDX0tFWSc6IEpTT04uc3RyaW5naWZ5KHByb3BzLmNsaWVudFB1YmxpY0tleSksXG4gICAgICAgICAgJ3Byb2Nlc3MuZW52LkNBTExCQUNLX1BBVEgnOiBKU09OLnN0cmluZ2lmeShwcm9wcy5jYWxsYmFja1BhdGgpLFxuICAgICAgICAgICdwcm9jZXNzLmVudi5KV1RfQVJHT1JJVEhNJzogSlNPTi5zdHJpbmdpZnkocHJvcHMuand0QXJnb3JpdGhtKSxcbiAgICAgICAgICAncHJvY2Vzcy5lbnYuQVVUSE9SSVpFX1VSTCc6IEpTT04uc3RyaW5naWZ5KHByb3BzLmF1dGhvcml6ZVVybCksXG4gICAgICAgICAgJ3Byb2Nlc3MuZW52LkFVVEhPUklaRV9QQVJBTVMnOiBKU09OLnN0cmluZ2lmeShwcm9wcy5hdXRob3JpemVQYXJhbXMpLFxuICAgICAgICAgICdwcm9jZXNzLmVudi5ERUJVR19FTkFCTEUnOiBKU09OLnN0cmluZ2lmeShwcm9wcy5kZWJ1Z0VuYWJsZSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZnVuYyxcbiAgICAgIGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVCxcbiAgICAgIHNvbHV0aW9uSWQ6ICdTTzgxMzEnLFxuICAgICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogJ0Nsb3VkZnJvbnQgZXh0ZW5zaW9uIHdpdGggQVdTIENESyAtIE9BdXRoMiBBdXRoZW50aWNhdGlvbiAtIEF1dGhvcml6YXRpb24gQ29kZSBHcmFudC4nLFxuICAgIH0pO1xuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSB0aGlzLmZ1bmN0aW9uVmVyc2lvbjtcbiAgfVxufTtcblxuXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbERhdGFJbmdlc3Rpb25Qcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZpcmVob3NlU3RyZWFtTmFtZTogc3RyaW5nO1xufTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEdsb2JhbERhdGFJbmdlc3Rpb24gZXh0ZW5kcyBDdXN0b20ge1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLlZlcnNpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBHbG9iYWxEYXRhSW5nZXN0aW9uUHJvcHMpIHtcbiAgICBjb25zdCBmdW5jID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHNjb3BlLCAnR2xvYmFsRGF0YUluZ2VzdGlvbkZ1bmMnLCB7XG4gICAgICBlbnRyeTogYCR7RVhURU5TSU9OX0FTU0VUU19QQVRIfS9jZi1nbG9iYWwtZGF0YS1pbmdlc3Rpb24vaW5kZXgudHNgLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE0X1gsXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICBkZWZpbmU6IHtcbiAgICAgICAgICAncHJvY2Vzcy5lbnYuREVMSVZFUllfU1RSRUFNX05BTUUnOiBKU09OLnN0cmluZ2lmeShwcm9wcy5maXJlaG9zZVN0cmVhbU5hbWUpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBmdW5jLnJvbGU/LmFkZE1hbmFnZWRQb2xpY3koaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdBbWF6b25LaW5lc2lzRmlyZWhvc2VGdWxsQWNjZXNzJykpO1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBmdW5jLFxuICAgICAgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgaW5jbHVkZUJvZHk6IHRydWUsXG4gICAgICBzb2x1dGlvbklkOiAnU084MTMzJyxcbiAgICAgIHRlbXBsYXRlRGVzY3JpcHRpb246ICdDbG91ZGZyb250IGV4dGVuc2lvbiB3aXRoIEFXUyBDREsgLSBHbG9iYWwgRGF0YSBJbmdlc3Rpb24nLFxuICAgIH0pO1xuXG4gICAgdGhpcy5sYW1iZGFGdW5jdGlvbiA9IHRoaXMuZnVuY3Rpb25WZXJzaW9uO1xuICB9XG59XG4iXX0=
GlobalDataIngestion[_p] = { fqn: "cdk-cloudfront-plus.GlobalDataIngestion", version: "0.3.28" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9leHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDhDQUE4QztBQUM5Qyx3Q0FBd0M7QUFDeEMsOENBQThDO0FBQzlDLGtFQUE0RDtBQUM1RCxxQ0FBcUM7QUFDckMseUJBQW1DO0FBQ25DLHFDQUFrQztBQUVsQzs7R0FFRztBQUNILE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztBQXdCakYsQ0FBQzs7Ozs7OztBQU9GLE1BQWEsb0JBQXFCLFNBQVEsZ0JBQWE7Ozs7SUFJckQsWUFBWSxLQUFvQixFQUFFLEVBQVU7UUFDMUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixhQUFhLEVBQUUsbUZBQW1GO1lBQ2xHLGVBQWUsRUFBRSxPQUFPO1NBQ3pCLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5RixJQUFJLENBQUMsZUFBZSxHQUFHLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQztJQUMxRCxDQUFDOztBQWJILG9EQWNDOzs7QUFPRCxnRkFBZ0Y7QUFDaEYsa0NBQWtDO0FBQ2xDLDhDQUE4QztBQUM5QyxnREFBZ0Q7QUFDaEQsNkNBQTZDO0FBQzdDLG9EQUFvRDtBQUNwRCx5QkFBeUI7QUFDekIseUdBQXlHO0FBQ3pHLGtD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QVMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUM7aUJBQzdFO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsaUNBQWlDLENBQUMsRUFBRTtRQUUzRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLElBQUk7WUFDSixTQUFTLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLGNBQWM7WUFDaEQsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsbUJBQW1CLEVBQUUsMkRBQTJEO1NBQ2pGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM3QyxDQUFDOztBQXhCSCxrREF5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2YgZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ0Bhd3MtY2RrL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgTm9kZWpzRnVuY3Rpb24gfSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhLW5vZGVqcyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBTZXJ2ZXJsZXNzQXBwIH0gZnJvbSAnLi8nO1xuaW1wb3J0IHsgQ3VzdG9tIH0gZnJvbSAnLi9jdXN0b20nO1xuXG4vKipcbiAqIFRoZSBkaXJlY3RvcnkgZm9yIGFsbCBleHRlbnNpb25zIGxhbWJkYSBhc3NldHNcbiAqL1xuY29uc3QgRVhURU5TSU9OX0FTU0VUU19QQVRIID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2xhbWJkYS1hc3NldHMvZXh0ZW5zaW9ucycpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIElFeHRlbnNpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBmdW5jdGlvblZlcnNpb246IGxhbWJkYS5WZXJzaW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgaW5jbHVkZUJvZHk/OiBib29sZWFuO1xufTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgTW9kaWZ5UmVzcG9uc2VIZWFkZXIgZXh0ZW5kcyBTZXJ2ZXJsZXNzQXBwIGltcGxlbWVudHMgSUV4dGVuc2lvbnMge1xuICByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xuICByZWFkb25seSBmdW5jdGlvblZlcnNpb246IGxhbWJkYS5WZXJzaW9uO1xuICByZWFkb25seSBldmVudFR5cGU6IGNmLkxhbWJkYUVkZ2VFdmVudFR5cGU7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBhcHBsaWNhdGlvbklkOiAnYXJuOmF3czpzZXJ2ZXJsZXNzcmVwbzp1cy1lYXN0LTE6NDE4Mjg5ODg5MTExOmFwcGxpY2F0aW9ucy9tb2RpZnktcmVzcG9uc2UtaGVhZGVyJyxcbiAgICAgIHNlbWFudGljVmVyc2lvbjogJzEuMC4wJyxcbiAgICB9KTtcbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZihzY29wZSk7XG4gICAgdGhpcy5mdW5jdGlvbkFybiA9IHRoaXMucmVzb3VyY2UuZ2V0QXR0KCdPdXRwdXRzLk1vZGlmeVJlc3BvbnNlSGVhZGVyRnVuY3Rpb25BUk4nKS50b1N0cmluZygpO1xuICAgIHRoaXMuZnVuY3Rpb25WZXJzaW9uID0gYnVtcEZ1bmN0aW9uVmVyc2lvbihzdGFjaywgaWQsIHRoaXMuZnVuY3Rpb25Bcm4pO1xuICAgIHRoaXMuZXZlbnRUeXBlID0gY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVTUE9OU0U7XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbi8vIGV4cG9ydCBjbGFzcyBIVFRQMzAyRnJvbU9yaWdpbiBleHRlbmRzIFNlcnZlcmxlc3NBcHAgaW1wbGVtZW50cyBJRXh0ZW5zaW9ucyB7XG4vLyAgIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG4vLyAgIHJlYWRvbmx5IGZ1bmN0aW9uVmVyc2lvbjogbGFtYmRhLlZlcnNpb247XG4vLyAgIHJlYWRvbmx5IGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZTtcbi8vICAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb246IGxhbWJkYS5WZXJzaW9uO1xuLy8gICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuLy8gICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuLy8gICAgICAgYXBwbGljYXRpb25JZDogJ2Fybjphd3M6c2VydmVybGVzc3JlcG86dXMtZWFzdC0xOjQxODI4OTg4OTExMTphcHBsaWNhdGlvbnMvaHR0cDMwMi1mcm9tLW9yaWdpbicsXG4vLyAgICAgICBzZW1hbnRpY1ZlcnNpb246ICcxLjAuMicsXG4vLyAgICAgfSk7XG4vLyAgICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuLy8gICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSB0aGlzLnJlc291cmNlLmdldEF0dCgnT3V0cHV0cy5IdHRwMzAyRnVuY3Rpb24nKS50b1N0cmluZygpO1xuLy8gICAgIHRoaXMuZnVuY3Rpb25WZXJzaW9uID0gYnVtcEZ1bmN0aW9uVmVyc2lvbihzdGFjaywgaWQsIHRoaXMuZnVuY3Rpb25Bcm4pO1xuLy8gICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSB0aGlzLmZ1bmN0aW9uVmVyc2lvbjtcbi8vICAgICB0aGlzLmV2ZW50VHlwZSA9IGNmLkxhbWJkYUVkZ2VFdmVudFR5cGUuT1JJR0lOX1JFU1BPTlNFO1xuLy8gICB9XG4vLyB9O1xuZXhwb3J0IGNsYXNzIEhUVFAzMDJGcm9tT3JpZ2luIGV4dGVuZHMgQ3VzdG9tIHtcbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb246IGxhbWJkYS5WZXJzaW9uO1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGZ1bmMgPSBuZXcgTm9kZWpzRnVuY3Rpb24oc2NvcGUsICdIVFRQMzAyRnJvbU9yaWdpbkZ1bmMnLCB7XG4gICAgICBlbnRyeTogYCR7RVhURU5TSU9OX0FTU0VUU19QQVRIfS9jZi1odHRwMzAyLWZyb20tb3JpZ2luL2luZGV4LnRzYCxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xNF9YLFxuICAgIH0pO1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZnVuYyxcbiAgICAgIGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVTUE9OU0UsXG4gICAgICBzb2x1dGlvbklkOiAnU084MTAzJyxcbiAgICAgIHRlbXBsYXRlRGVzY3JpcHRpb246ICdDbG91ZGZyb250IGV4dGVuc2lvbiB3aXRoIEFXUyBDREsgLSBIVFRQIDMwMiBmcm9tIE9yaWdpbicsXG4gICAgfSk7XG4gICAgdGhpcy5sYW1iZGFGdW5jdGlvbiA9IHRoaXMuZnVuY3Rpb25WZXJzaW9uO1xuICB9XG59O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBBbnRpSG90bGlua2luZ1Byb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmVmZXJlcjogc3RyaW5nW107XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEFudGlIb3RsaW5raW5nIGV4dGVuZHMgU2VydmVybGVzc0FwcCBpbXBsZW1lbnRzIElFeHRlbnNpb25zIHtcbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbiAgcmVhZG9ubHkgZnVuY3Rpb25WZXJzaW9uOiBsYW1iZGEuVmVyc2lvbjtcbiAgcmVhZG9ubHkgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlO1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFudGlIb3RsaW5raW5nUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGFwcGxpY2F0aW9uSWQ6ICdhcm46YXdzOnNlcnZlcmxlc3NyZXBvOnVzLWVhc3QtMTo0MTgyODk4ODkxMTE6YXBwbGljYXRpb25zL2FudGktaG90bGlua2luZycsXG4gICAgICBzZW1hbnRpY1ZlcnNpb246ICcxLjIuNScsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIFJlZmVyZXJMaXN0OiBwcm9wcy5yZWZlcmVyLmpvaW4oJywnKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSB0aGlzLnJlc291cmNlLmdldEF0dCgnT3V0cHV0cy5BbnRpSG90bGlua2luZycpLnRvU3RyaW5nKCk7XG4gICAgdGhpcy5mdW5jdGlvblZlcnNpb24gPSBidW1wRnVuY3Rpb25WZXJzaW9uKHN0YWNrLCBpZCwgdGhpcy5mdW5jdGlvbkFybik7XG4gICAgdGhpcy5ldmVudFR5cGUgPSBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNUO1xuICB9XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBTZWN1cnR5SGVhZGVycyBleHRlbmRzIFNlcnZlcmxlc3NBcHAgaW1wbGVtZW50cyBJRXh0ZW5zaW9ucyB7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uVmVyc2lvbjogbGFtYmRhLlZlcnNpb247XG4gIHJlYWRvbmx5IGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZTtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGFwcGxpY2F0aW9uSWQ6ICdhcm46YXdzOnNlcnZlcmxlc3NyZXBvOnVzLWVhc3QtMTo0MTgyODk4ODkxMTE6YXBwbGljYXRpb25zL2FkZC1zZWN1cml0eS1oZWFkZXJzJyxcbiAgICAgIHNlbWFudGljVmVyc2lvbjogJzEuMC4wJyxcbiAgICB9KTtcbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZihzY29wZSk7XG4gICAgdGhpcy5mdW5jdGlvbkFybiA9IHRoaXMucmVzb3VyY2UuZ2V0QXR0KCdPdXRwdXRzLkFkZFNlY3VyaXR5SGVhZGVyRnVuY3Rpb24nKS50b1N0cmluZygpO1xuICAgIHRoaXMuZnVuY3Rpb25WZXJzaW9uID0gYnVtcEZ1bmN0aW9uVmVyc2lvbihzdGFjaywgaWQsIHRoaXMuZnVuY3Rpb25Bcm4pO1xuICAgIHRoaXMuZXZlbnRUeXBlID0gY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVTUE9OU0U7XG4gIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpcGxlT3JpZ2luSXBSZXRyeVByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvcmlnaW5JcDogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvcmlnaW5Qcm90b2NvbDogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIE11bHRpcGxlT3JpZ2luSXBSZXRyeSBleHRlbmRzIFNlcnZlcmxlc3NBcHAgaW1wbGVtZW50cyBJRXh0ZW5zaW9ucyB7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uVmVyc2lvbjogbGFtYmRhLlZlcnNpb247XG4gIHJlYWRvbmx5IGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZTtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBNdWx0aXBsZU9yaWdpbklwUmV0cnlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgYXBwbGljYXRpb25JZDogJ2Fybjphd3M6c2VydmVybGVzc3JlcG86dXMtZWFzdC0xOjQxODI4OTg4OTExMTphcHBsaWNhdGlvbnMvbXVsdGlwbGUtb3JpZ2luLUlQLXJldHJ5JyxcbiAgICAgIHNlbWFudGljVmVyc2lvbjogJzEuMC4xJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgT3JpZ2luSVBMaXN0OiBwcm9wcy5vcmlnaW5JcC5qb2luKCc7JyksXG4gICAgICAgIE9yaWdpblByb3RvY29sOiBwcm9wcy5vcmlnaW5Qcm90b2NvbCxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSB0aGlzLnJlc291cmNlLmdldEF0dCgnT3V0cHV0cy5NdWx0aXBsZU9yaWdpbklQUmV0cnknKS50b1N0cmluZygpO1xuICAgIHRoaXMuZnVuY3Rpb25WZXJzaW9uID0gYnVtcEZ1bmN0aW9uVmVyc2lvbihzdGFjaywgaWQsIHRoaXMuZnVuY3Rpb25Bcm4pO1xuICAgIHRoaXMuZXZlbnRUeXBlID0gY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVRVUVTVDtcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIE5vcm1hbGl6ZVF1ZXJ5U3RyaW5nIGV4dGVuZHMgU2VydmVybGVzc0FwcCBpbXBsZW1lbnRzIElFeHRlbnNpb25zIHtcbiAgcmVhZG9ubHkgZnVuY3Rpb25Bcm46IHN0cmluZztcbiAgcmVhZG9ubHkgZnVuY3Rpb25WZXJzaW9uOiBsYW1iZGEuVmVyc2lvbjtcbiAgcmVhZG9ubHkgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlO1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgYXBwbGljYXRpb25JZDogJ2Fybjphd3M6c2VydmVybGVzc3JlcG86dXMtZWFzdC0xOjQxODI4OTg4OTExMTphcHBsaWNhdGlvbnMvbm9ybWFsaXplLXF1ZXJ5LXN0cmluZycsXG4gICAgICBzZW1hbnRpY1ZlcnNpb246ICcxLjAuMScsXG4gICAgfSk7XG4gICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuICAgIHRoaXMuZnVuY3Rpb25Bcm4gPSB0aGlzLnJlc291cmNlLmdldEF0dCgnT3V0cHV0cy5Ob3JtYWxpemVRdWVyeVN0cmluZ0Z1bmN0aW9uJykudG9TdHJpbmcoKTtcbiAgICB0aGlzLmZ1bmN0aW9uVmVyc2lvbiA9IGJ1bXBGdW5jdGlvblZlcnNpb24oc3RhY2ssIGlkLCB0aGlzLmZ1bmN0aW9uQXJuKTtcbiAgICB0aGlzLmV2ZW50VHlwZSA9IGNmLkxhbWJkYUVkZ2VFdmVudFR5cGUuVklFV0VSX1JFUVVFU1Q7XG4gIH1cbn1cblxuXG4vKipcbiAqIEdlbmVyYXRlIGEgbGFtYmRhIGZ1bmN0aW9uIHZlcnNpb24gZnJvbSB0aGUgZ2l2ZW4gZnVuY3Rpb24gQVJOXG4gKiBAcGFyYW0gc2NvcGVcbiAqIEBwYXJhbSBpZFxuICogQHBhcmFtIGZ1bmN0aW9uQXJuIFRoZSBsYW1iZGEgZnVuY3Rpb24gQVJOXG4gKiBAcmV0dXJucyBsYW1iZGEuVmVyc2lvblxuICovXG5mdW5jdGlvbiBidW1wRnVuY3Rpb25WZXJzaW9uKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBmdW5jdGlvbkFybjogc3RyaW5nKTogbGFtYmRhLlZlcnNpb24ge1xuICByZXR1cm4gbmV3IGxhbWJkYS5WZXJzaW9uKHNjb3BlLCBgTGFtYmRhVmVyc2lvbiR7aWR9YCwge1xuICAgIGxhbWJkYTogbGFtYmRhLkZ1bmN0aW9uLmZyb21GdW5jdGlvbkFybihzY29wZSwgYEZ1bmNBcm4ke2lkfWAsIGZ1bmN0aW9uQXJuKSxcbiAgfSk7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnRRdWVyeVN0cmluZ1Byb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGFyZ3M6IEFycmF5PHN0cmluZz47XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBDb252ZXJ0UXVlcnlTdHJpbmcgZXh0ZW5kcyBDdXN0b20ge1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLlZlcnNpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29udmVydFF1ZXJ5U3RyaW5nUHJvcHMpIHtcbiAgICBjb25zdCBmdW5jID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHNjb3BlLCAnQ29udmVydFF1ZXJ5U3RyaW5nRnVuYycsIHtcbiAgICAgIGVudHJ5OiBgJHtFWFRFTlNJT05fQVNTRVRTX1BBVEh9L2NmLWNvbnZlcnQtcXVlcnktc3RyaW5nL2luZGV4LnRzYCxcbiAgICAgIGhhbmRsZXI6ICdsYW1iZGFIYW5kbGVyJyxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgZGVmaW5lOiB7XG4gICAgICAgICAgTkVFREVEX0tFWVM6IEpTT04uc3RyaW5naWZ5KHByb3BzLmFyZ3MpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGZ1bmMsXG4gICAgICBldmVudFR5cGU6IGNmLkxhbWJkYUVkZ2VFdmVudFR5cGUuT1JJR0lOX1JFUVVFU1QsXG4gICAgICBzb2x1dGlvbklkOiAnU084MTEzJyxcbiAgICAgIHRlbXBsYXRlRGVzY3JpcHRpb246ICdDbG91ZGZyb250IGV4dGVuc2lvbiB3aXRoIEFXUyBDREsgLSBDb252ZXJ0IFF1ZXJ5IFN0cmluZy4nLFxuICAgIH0pO1xuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSB0aGlzLmZ1bmN0aW9uVmVyc2lvbjtcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgRGVmYXVsdERpckluZGV4IGV4dGVuZHMgQ3VzdG9tIHtcbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb246IGxhbWJkYS5WZXJzaW9uO1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGZ1bmMgPSBuZXcgTm9kZWpzRnVuY3Rpb24oc2NvcGUsICdEZWZhdWx0RGlySW5kZXhGdW5jJywge1xuICAgICAgZW50cnk6IGAke0VYVEVOU0lPTl9BU1NFVFNfUEFUSH0vY2YtZGVmYXVsdC1kaXItaW5kZXgvaW5kZXgudHNgLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE0X1gsXG4gICAgfSk7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBmdW5jLFxuICAgICAgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlLk9SSUdJTl9SRVFVRVNULFxuICAgICAgc29sdXRpb25JZDogJ1NPODEzNCcsXG4gICAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiAnQ2xvdWRmcm9udCBleHRlbnNpb24gd2l0aCBBV1MgQ0RLIC0gRGVmYXVsdCBEaXJlY3RvcnkgSW5kZXggZm9yIEFtYXpvbiBTMyBPcmlnaW4uJyxcbiAgICB9KTtcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gdGhpcy5mdW5jdGlvblZlcnNpb247XG4gIH1cbn07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBDdXN0b21FcnJvclBhZ2UgZXh0ZW5kcyBDdXN0b20ge1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLlZlcnNpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZnVuYyA9IG5ldyBOb2RlanNGdW5jdGlvbihzY29wZSwgJ0N1c3RvbUVycm9yUGFnZUZ1bmMnLCB7XG4gICAgICBlbnRyeTogYCR7RVhURU5TSU9OX0FTU0VUU19QQVRIfS9jZi1jdXN0b20tZXJyb3ItcGFnZS9pbmRleC50c2AsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTRfWCxcbiAgICB9KTtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGZ1bmMsXG4gICAgICBldmVudFR5cGU6IGNmLkxhbWJkYUVkZ2VFdmVudFR5cGUuT1JJR0lOX1JFU1BPTlNFLFxuICAgICAgc29sdXRpb25JZDogJ1NPODEzNicsXG4gICAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiAnQ2xvdWRmcm9udCBleHRlbnNpb24gd2l0aCBBV1MgQ0RLIC0gQ3VzdG9tIEVycm9yIFBhZ2UnLFxuICAgIH0pO1xuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSB0aGlzLmZ1bmN0aW9uVmVyc2lvbjtcbiAgfVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NPcmlnaW5CeUdlb2xvY2F0aW9uUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb3VudHJ5VGFibGU6IHsgW2NvZGU6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEFjY2Vzc09yaWdpbkJ5R2VvbG9jYXRpb24gZXh0ZW5kcyBDdXN0b20ge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFjY2Vzc09yaWdpbkJ5R2VvbG9jYXRpb25Qcm9wcykge1xuICAgIGNvbnN0IGZ1bmMgPSBuZXcgTm9kZWpzRnVuY3Rpb24oc2NvcGUsICdBY2Nlc3NPcmlnaW5CeUdlb2xvY2F0aW9uRnVuYycsIHtcbiAgICAgIGVudHJ5OiBgJHtFWFRFTlNJT05fQVNTRVRTX1BBVEh9L2NmLWFjY2Vzcy1vcmlnaW4tYnktZ2VvbG9jYXRpb24vaW5kZXgudHNgLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE0X1gsXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICBkZWZpbmU6IHtcbiAgICAgICAgICAncHJvY2Vzcy5lbnYuQ09VTlRSWV9DT0RFX1RBQkxFJzogSlNPTi5zdHJpbmdpZnkocHJvcHMuY291bnRyeVRhYmxlKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBmdW5jLFxuICAgICAgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlLk9SSUdJTl9SRVFVRVNULFxuICAgICAgc29sdXRpb25JZDogJ1MwODExOCcsXG4gICAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiAnQ2xvdWRmcm9udCBleHRlbnNpb24gd2l0aCBBV1MgQ0RLIC0gQWNjZXNzIE9yaWdpbiBieSBHZW9sb2NhdGlvbicsXG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVkaXJlY3RCeUdlb2xvY2F0aW9uUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBjb3VudHJ5VGFibGU6IHsgW2NvZGU6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0QnlHZW9sb2NhdGlvbiBleHRlbmRzIEN1c3RvbSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVkaXJlY3RCeUdlb2xvY2F0aW9uUHJvcHMpIHtcbiAgICBjb25zdCBmdW5jID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHNjb3BlLCAnUmVkaXJlY3RCeUdlb2xvY2F0aW9uRnVuYycsIHtcbiAgICAgIGVudHJ5OiBgJHtFWFRFTlNJT05fQVNTRVRTX1BBVEh9L2NmLXJlZGlyZWN0LWJ5LWdlb2xvY2F0aW9uL2luZGV4LnRzYCxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgZGVmaW5lOiB7XG4gICAgICAgICAgJ3Byb2Nlc3MuZW52LkNPVU5UUllfQ09ERV9UQUJMRSc6IEpTT04uc3RyaW5naWZ5KHByb3BzLmNvdW50cnlUYWJsZSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZnVuYyxcbiAgICAgIGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVRVUVTVCxcbiAgICAgIHNvbHV0aW9uSWQ6ICdTTzgxMzUnLFxuICAgICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogJ0Nsb3VkZnJvbnQgZXh0ZW5zaW9uIHdpdGggQVdTIENESyAtIFJlZGlyZWN0IGJ5IEdlb2xvY2F0aW9uJyxcbiAgICB9KTtcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBTaW1wbGVMYW1iZGFFZGdlIGV4dGVuZHMgQ3VzdG9tIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmdW5jID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHNjb3BlLCAnU2ltcGxlTGFtYmRhRWRnZUZ1bmMnLCB7XG4gICAgICBlbnRyeTogYCR7RVhURU5TSU9OX0FTU0VUU19QQVRIfS9zaW1wbGUtbGFtYmRhLWVkZ2UvaW5kZXgudHNgLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE0X1gsXG4gICAgfSk7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBmdW5jLFxuICAgICAgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgc29sdXRpb25JZDogJycsXG4gICAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiAnQ2xvdWRmcm9udCBleHRlbnNpb24gd2l0aCBBV1MgQ0RLIC0gU2ltcGxlIExhbWJkYSBFZGdlLicsXG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGgyQXV0aG9yaXphdGlvbkNvZGVHcmFudFByb3BzIHtcbiAgcmVhZG9ubHkgY2xpZW50RG9tYWluOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNsaWVudElkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNsaWVudFNlY3JldDogc3RyaW5nO1xuICByZWFkb25seSBjbGllbnRQdWJsaWNLZXk6IHN0cmluZztcblxuICByZWFkb25seSBhdXRob3JpemVVcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgYXV0aG9yaXplUGFyYW1zOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGF1dGhvcml6ZVJlZGlyZWN0dXJpU2hvdWxkTWF0Y2g6IGJvb2xlYW47XG5cbiAgcmVhZG9ubHkgY2FsbGJhY2tQYXRoOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgand0QXJnb3JpdGhtOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGp3dFRva2VuUGF0aDogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGRlYnVnRW5hYmxlOiBib29sZWFuO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIE9BdXRoMkF1dGhvcml6YXRpb25Db2RlR3JhbnQgZXh0ZW5kcyBDdXN0b20ge1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLlZlcnNpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogT0F1dGgyQXV0aG9yaXphdGlvbkNvZGVHcmFudFByb3BzKSB7XG4gICAgY29uc3QgZnVuYyA9IG5ldyBOb2RlanNGdW5jdGlvbihzY29wZSwgJ09BdXRoMkF1dGhvcml6YXRpb25Db2RlR3JhbnRGdW5jJywge1xuICAgICAgZW50cnk6IGAke0VYVEVOU0lPTl9BU1NFVFNfUEFUSH0vY2YtYXV0aGVudGljYXRpb24tYnktb2F1dGgyL2luZGV4LnRzYCxcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgZGVmaW5lOiB7XG4gICAgICAgICAgJ3Byb2Nlc3MuZW52LkNMSUVOVF9ET01BSU4nOiBKU09OLnN0cmluZ2lmeShwcm9wcy5jbGllbnREb21haW4pLFxuICAgICAgICAgICdwcm9jZXNzLmVudi5DTElFTlRfSUQnOiBKU09OLnN0cmluZ2lmeShwcm9wcy5jbGllbnRJZCksXG4gICAgICAgICAgJ3Byb2Nlc3MuZW52LkNMSUVOVF9TRUNSRVQnOiBKU09OLnN0cmluZ2lmeShwcm9wcy5jbGllbnRTZWNyZXQpLFxuICAgICAgICAgICdwcm9jZXNzLmVudi5DTElFTlRfUFVCTElDX0tFWSc6IEpTT04uc3RyaW5naWZ5KHByb3BzLmNsaWVudFB1YmxpY0tleSksXG5cbiAgICAgICAgICAncHJvY2Vzcy5lbnYuQVVUSE9SSVpFX1VSTCc6IEpTT04uc3RyaW5naWZ5KHByb3BzLmF1dGhvcml6ZVVybCksXG4gICAgICAgICAgJ3Byb2Nlc3MuZW52LkFVVEhPUklaRV9QQVJBTVMnOiBKU09OLnN0cmluZ2lmeShwcm9wcy5hdXRob3JpemVQYXJhbXMpLFxuICAgICAgICAgICdwcm9jZXNzLmVudi5BVVRIT1JJWkVfUkVESVJFQ1RVUklfU0hPVUxEX01BVENIJzogSlNPTi5zdHJpbmdpZnkocHJvcHMuYXV0aG9yaXplUmVkaXJlY3R1cmlTaG91bGRNYXRjaCksXG5cbiAgICAgICAgICAncHJvY2Vzcy5lbnYuQ0FMTEJBQ0tfUEFUSCc6IEpTT04uc3RyaW5naWZ5KHByb3BzLmNhbGxiYWNrUGF0aCksXG5cbiAgICAgICAgICAncHJvY2Vzcy5lbnYuSldUX0FSR09SSVRITSc6IEpTT04uc3RyaW5naWZ5KHByb3BzLmp3dEFyZ29yaXRobSksXG4gICAgICAgICAgJ3Byb2Nlc3MuZW52LkpXVF9UT0tFTl9QQVRIJzogSlNPTi5zdHJpbmdpZnkocHJvcHMuand0VG9rZW5QYXRoKSxcblxuICAgICAgICAgICdwcm9jZXNzLmVudi5ERUJVR19FTkFCTEUnOiBKU09OLnN0cmluZ2lmeShwcm9wcy5kZWJ1Z0VuYWJsZSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgZnVuYyxcbiAgICAgIGV2ZW50VHlwZTogY2YuTGFtYmRhRWRnZUV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVCxcbiAgICAgIHNvbHV0aW9uSWQ6ICdTTzgxMzEnLFxuICAgICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogJ0Nsb3VkZnJvbnQgZXh0ZW5zaW9uIHdpdGggQVdTIENESyAtIE9BdXRoMiBBdXRoZW50aWNhdGlvbiAtIEF1dGhvcml6YXRpb24gQ29kZSBHcmFudC4nLFxuICAgIH0pO1xuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24gPSB0aGlzLmZ1bmN0aW9uVmVyc2lvbjtcbiAgfVxufTtcblxuXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbERhdGFJbmdlc3Rpb25Qcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGZpcmVob3NlU3RyZWFtTmFtZTogc3RyaW5nO1xufTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEdsb2JhbERhdGFJbmdlc3Rpb24gZXh0ZW5kcyBDdXN0b20ge1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLlZlcnNpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBHbG9iYWxEYXRhSW5nZXN0aW9uUHJvcHMpIHtcbiAgICBjb25zdCBmdW5jID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHNjb3BlLCAnR2xvYmFsRGF0YUluZ2VzdGlvbkZ1bmMnLCB7XG4gICAgICBlbnRyeTogYCR7RVhURU5TSU9OX0FTU0VUU19QQVRIfS9jZi1nbG9iYWwtZGF0YS1pbmdlc3Rpb24vaW5kZXgudHNgLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE0X1gsXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICBkZWZpbmU6IHtcbiAgICAgICAgICAncHJvY2Vzcy5lbnYuREVMSVZFUllfU1RSRUFNX05BTUUnOiBKU09OLnN0cmluZ2lmeShwcm9wcy5maXJlaG9zZVN0cmVhbU5hbWUpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBmdW5jLnJvbGU/LmFkZE1hbmFnZWRQb2xpY3koaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdBbWF6b25LaW5lc2lzRmlyZWhvc2VGdWxsQWNjZXNzJykpO1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBmdW5jLFxuICAgICAgZXZlbnRUeXBlOiBjZi5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgaW5jbHVkZUJvZHk6IHRydWUsXG4gICAgICBzb2x1dGlvbklkOiAnU084MTMzJyxcbiAgICAgIHRlbXBsYXRlRGVzY3JpcHRpb246ICdDbG91ZGZyb250IGV4dGVuc2lvbiB3aXRoIEFXUyBDREsgLSBHbG9iYWwgRGF0YSBJbmdlc3Rpb24nLFxuICAgIH0pO1xuXG4gICAgdGhpcy5sYW1iZGFGdW5jdGlvbiA9IHRoaXMuZnVuY3Rpb25WZXJzaW9uO1xuICB9XG59XG4iXX0=

@@ -26,3 +26,3 @@ "use strict";

_a = JSII_RTTI_SYMBOL_1;
Distribution[_a] = { fqn: "cdk-cloudfront-plus.Distribution", version: "0.3.27" };
Distribution[_a] = { fqn: "cdk-cloudfront-plus.Distribution", version: "0.3.28" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOENBQThDO0FBQzlDLHFDQUFxQzs7OztBQUtyQyxNQUFhLFlBQWEsU0FBUSxHQUFHLENBQUMsU0FBUzs7OztJQUU3QyxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQXdCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7UUFGVixlQUFVLEdBQWtCLEVBQUUsQ0FBQztRQUl0QyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7QUFOSCxvQ0FPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNmIGZyb20gJ0Bhd3MtY2RrL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IElFeHRlbnNpb25zIH0gZnJvbSAnLi9leHRlbnNpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBEaXN0cmlidXRpb25Qcm9wcyBleHRlbmRzIGNmLkRpc3RyaWJ1dGlvblByb3BzIHt9XG5cbmV4cG9ydCBjbGFzcyBEaXN0cmlidXRpb24gZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgZXh0ZW5zaW9uczogSUV4dGVuc2lvbnNbXSA9IFtdO1xuICBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERpc3RyaWJ1dGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBjZi5EaXN0cmlidXRpb24odGhpcywgYCR7aWR9RGlzdGAsIHByb3BzKTtcbiAgfVxufVxuIl19

@@ -32,3 +32,3 @@ "use strict";

_a = JSII_RTTI_SYMBOL_1;
ServerlessApp[_a] = { fqn: "cdk-cloudfront-plus.ServerlessApp", version: "0.3.27" };
ServerlessApp[_a] = { fqn: "cdk-cloudfront-plus.ServerlessApp", version: "0.3.28" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVybGVzcy1hcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2VydmVybGVzcy1hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxQ0FBcUM7Ozs7QUFjckMsTUFBYSxhQUFjLFNBQVEsR0FBRyxDQUFDLFNBQVM7SUFFOUMsK0NBQStDOzs7O0lBQy9DLFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQzVDLElBQUksRUFBRSw4QkFBOEI7WUFDcEMsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRTtvQkFDUixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7b0JBQ2xDLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtpQkFDdkM7Z0JBQ0QsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO2FBQzdCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDLFVBQVUsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDakYsQ0FBQzs7QUFoQkgsc0NBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlcmxlc3NBcHBQcm9wcyB7XG4gIHJlYWRvbmx5IGFwcGxpY2F0aW9uSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2VtYW50aWNWZXJzaW9uOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFNlcnZlcmxlc3NBcHAgZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgcmVzb3VyY2U6IGNkay5DZm5SZXNvdXJjZTtcbiAgLy8gcmVhZG9ubHkgZnVuY3Rpb25WZXJzaW9uQXJuOiBsYW1iZGEuVmVyc2lvbjtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNkay5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTZXJ2ZXJsZXNzQXBwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgY2RrLkNmblJlc291cmNlKHRoaXMsIGlkLCB7XG4gICAgICB0eXBlOiAnQVdTOjpTZXJ2ZXJsZXNzOjpBcHBsaWNhdGlvbicsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIExvY2F0aW9uOiB7XG4gICAgICAgICAgQXBwbGljYXRpb25JZDogcHJvcHMuYXBwbGljYXRpb25JZCxcbiAgICAgICAgICBTZW1hbnRpY1ZlcnNpb246IHByb3BzLnNlbWFudGljVmVyc2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgUGFyYW1ldGVyczogcHJvcHMucGFyYW1ldGVycyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY2RrLlN0YWNrLm9mKHRoaXMpLnRlbXBsYXRlT3B0aW9ucy50cmFuc2Zvcm1zID0gWydBV1M6OlNlcnZlcmxlc3MtMjAxNi0xMC0zMSddO1xuICB9XG59XG4iXX0=

@@ -103,3 +103,3 @@ {

"license": "Apache-2.0",
"version": "0.3.27",
"version": "0.3.28",
"jest": {

@@ -106,0 +106,0 @@ "testMatch": [

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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