Socket
Socket
Sign inDemoInstall

@aws-sdk/signature-v4

Package Overview
Dependencies
Maintainers
5
Versions
142
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-sdk/signature-v4 - npm Package Compare versions

Comparing version 1.0.0-gamma.8 to 1.0.0-rc.1

22

dist/cjs/cloneRequest.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cloneRequest = void 0;
var tslib_1 = require("tslib");
/**
* @internal
*/
function cloneRequest(_a) {
var headers = _a.headers, query = _a.query, rest = tslib_1.__rest(_a, ["headers", "query"]);
return tslib_1.__assign(tslib_1.__assign({}, rest), { headers: tslib_1.__assign({}, headers), query: query ? cloneQuery(query) : undefined });
function cloneRequest({ headers, query, ...rest }) {
return {
...rest,
headers: { ...headers },
query: query ? cloneQuery(query) : undefined,
};
}
exports.cloneRequest = cloneRequest;
function cloneQuery(query) {
return Object.keys(query).reduce(function (carry, paramName) {
var _a;
var param = query[paramName];
return tslib_1.__assign(tslib_1.__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? tslib_1.__spread(param) : param, _a));
return Object.keys(query).reduce((carry, paramName) => {
const param = query[paramName];
return {
...carry,
[paramName]: Array.isArray(param) ? [...param] : param,
};
}, {});
}
//# sourceMappingURL=cloneRequest.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmVSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb25lUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLEVBQWU7SUFDbkUsT0FBTztRQUNMLEdBQUcsSUFBSTtRQUNQLE9BQU8sRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFO1FBQ3ZCLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztLQUM3QyxDQUFDO0FBQ0osQ0FBQztBQU5ELG9DQU1DO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBd0I7SUFDMUMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQXdCLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1FBQy9FLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7U0FDdkQsQ0FBQztJQUNKLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCwgUXVlcnlQYXJhbWV0ZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsb25lUmVxdWVzdCh7IGhlYWRlcnMsIHF1ZXJ5LCAuLi5yZXN0IH06IEh0dHBSZXF1ZXN0KTogSHR0cFJlcXVlc3Qge1xuICByZXR1cm4ge1xuICAgIC4uLnJlc3QsXG4gICAgaGVhZGVyczogeyAuLi5oZWFkZXJzIH0sXG4gICAgcXVlcnk6IHF1ZXJ5ID8gY2xvbmVRdWVyeShxdWVyeSkgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNsb25lUXVlcnkocXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnKTogUXVlcnlQYXJhbWV0ZXJCYWcge1xuICByZXR1cm4gT2JqZWN0LmtleXMocXVlcnkpLnJlZHVjZSgoY2Fycnk6IFF1ZXJ5UGFyYW1ldGVyQmFnLCBwYXJhbU5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHBhcmFtID0gcXVlcnlbcGFyYW1OYW1lXTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY2FycnksXG4gICAgICBbcGFyYW1OYW1lXTogQXJyYXkuaXNBcnJheShwYXJhbSkgPyBbLi4ucGFyYW1dIDogcGFyYW0sXG4gICAgfTtcbiAgfSwge30pO1xufVxuIl19

@@ -45,2 +45,2 @@ "use strict";

exports.MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;
//# sourceMappingURL=constants.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQzFDLFFBQUEsc0JBQXNCLEdBQUcsa0JBQWtCLENBQUM7QUFDNUMsUUFBQSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFDcEMsUUFBQSwwQkFBMEIsR0FBRyxxQkFBcUIsQ0FBQztBQUNuRCxRQUFBLG1CQUFtQixHQUFHLGVBQWUsQ0FBQztBQUN0QyxRQUFBLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQzFDLFFBQUEsaUJBQWlCLEdBQUcsc0JBQXNCLENBQUM7QUFFM0MsUUFBQSxXQUFXLEdBQUcsZUFBZSxDQUFDO0FBQzlCLFFBQUEsZUFBZSxHQUFHLDRCQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3JELFFBQUEsV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUNyQixRQUFBLGlCQUFpQixHQUFHLENBQUMsbUJBQVcsRUFBRSx1QkFBZSxFQUFFLG1CQUFXLENBQUMsQ0FBQztBQUNoRSxRQUFBLGdCQUFnQixHQUFHLDZCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3ZELFFBQUEsYUFBYSxHQUFHLHNCQUFzQixDQUFDO0FBQ3ZDLFFBQUEsWUFBWSxHQUFHLHlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQy9DLFFBQUEsV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUVyQixRQUFBLHlCQUF5QixHQUFHO0lBQ3ZDLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxJQUFJO0lBQ1osSUFBSSxFQUFFLElBQUk7SUFDVixZQUFZLEVBQUUsSUFBSTtJQUNsQixjQUFjLEVBQUUsSUFBSTtJQUNwQixNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsRUFBRSxFQUFFLElBQUk7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLG1CQUFtQixFQUFFLElBQUk7SUFDekIsT0FBTyxFQUFFLElBQUk7SUFDYixZQUFZLEVBQUUsSUFBSTtJQUNsQixpQkFBaUIsRUFBRSxJQUFJO0NBQ3hCLENBQUM7QUFFVyxRQUFBLG9CQUFvQixHQUFHLFNBQVMsQ0FBQztBQUVqQyxRQUFBLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUU3QixRQUFBLG1CQUFtQixHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRTdDLFFBQUEsb0JBQW9CLEdBQUcsa0JBQWtCLENBQUM7QUFFMUMsUUFBQSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztBQUV4RCxRQUFBLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBRXRDLFFBQUEsY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUNwQixRQUFBLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVyQyxRQUFBLGlCQUFpQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBTEdPUklUSE1fUVVFUllfUEFSQU0gPSBcIlgtQW16LUFsZ29yaXRobVwiO1xuZXhwb3J0IGNvbnN0IENSRURFTlRJQUxfUVVFUllfUEFSQU0gPSBcIlgtQW16LUNyZWRlbnRpYWxcIjtcbmV4cG9ydCBjb25zdCBBTVpfREFURV9RVUVSWV9QQVJBTSA9IFwiWC1BbXotRGF0ZVwiO1xuZXhwb3J0IGNvbnN0IFNJR05FRF9IRUFERVJTX1FVRVJZX1BBUkFNID0gXCJYLUFtei1TaWduZWRIZWFkZXJzXCI7XG5leHBvcnQgY29uc3QgRVhQSVJFU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotRXhwaXJlc1wiO1xuZXhwb3J0IGNvbnN0IFNJR05BVFVSRV9RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmF0dXJlXCI7XG5leHBvcnQgY29uc3QgVE9LRU5fUVVFUllfUEFSQU0gPSBcIlgtQW16LVNlY3VyaXR5LVRva2VuXCI7XG5cbmV4cG9ydCBjb25zdCBBVVRIX0hFQURFUiA9IFwiYXV0aG9yaXphdGlvblwiO1xuZXhwb3J0IGNvbnN0IEFNWl9EQVRFX0hFQURFUiA9IEFNWl9EQVRFX1FVRVJZX1BBUkFNLnRvTG93ZXJDYXNlKCk7XG5leHBvcnQgY29uc3QgREFURV9IRUFERVIgPSBcImRhdGVcIjtcbmV4cG9ydCBjb25zdCBHRU5FUkFURURfSEVBREVSUyA9IFtBVVRIX0hFQURFUiwgQU1aX0RBVEVfSEVBREVSLCBEQVRFX0hFQURFUl07XG5leHBvcnQgY29uc3QgU0lHTkFUVVJFX0hFQURFUiA9IFNJR05BVFVSRV9RVUVSWV9QQVJBTS50b0xvd2VyQ2FzZSgpO1xuZXhwb3J0IGNvbnN0IFNIQTI1Nl9IRUFERVIgPSBcIngtYW16LWNvbnRlbnQtc2hhMjU2XCI7XG5leHBvcnQgY29uc3QgVE9LRU5fSEVBREVSID0gVE9LRU5fUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmV4cG9ydCBjb25zdCBIT1NUX0hFQURFUiA9IFwiaG9zdFwiO1xuXG5leHBvcnQgY29uc3QgQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUyA9IHtcbiAgYXV0aG9yaXphdGlvbjogdHJ1ZSxcbiAgXCJjYWNoZS1jb250cm9sXCI6IHRydWUsXG4gIGNvbm5lY3Rpb246IHRydWUsXG4gIGV4cGVjdDogdHJ1ZSxcbiAgZnJvbTogdHJ1ZSxcbiAgXCJrZWVwLWFsaXZlXCI6IHRydWUsXG4gIFwibWF4LWZvcndhcmRzXCI6IHRydWUsXG4gIHByYWdtYTogdHJ1ZSxcbiAgcmVmZXJlcjogdHJ1ZSxcbiAgdGU6IHRydWUsXG4gIHRyYWlsZXI6IHRydWUsXG4gIFwidHJhbnNmZXItZW5jb2RpbmdcIjogdHJ1ZSxcbiAgdXBncmFkZTogdHJ1ZSxcbiAgXCJ1c2VyLWFnZW50XCI6IHRydWUsXG4gIFwieC1hbXpuLXRyYWNlLWlkXCI6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgUFJPWFlfSEVBREVSX1BBVFRFUk4gPSAvXnByb3h5LS87XG5cbmV4cG9ydCBjb25zdCBTRUNfSEVBREVSX1BBVFRFUk4gPSAvXnNlYy0vO1xuXG5leHBvcnQgY29uc3QgVU5TSUdOQUJMRV9QQVRURVJOUyA9IFsvXnByb3h5LS9pLCAvXnNlYy0vaV07XG5cbmV4cG9ydCBjb25zdCBBTEdPUklUSE1fSURFTlRJRklFUiA9IFwiQVdTNC1ITUFDLVNIQTI1NlwiO1xuXG5leHBvcnQgY29uc3QgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIgPSBcIkFXUzQtSE1BQy1TSEEyNTYtUEFZTE9BRFwiO1xuXG5leHBvcnQgY29uc3QgVU5TSUdORURfUEFZTE9BRCA9IFwiVU5TSUdORUQtUEFZTE9BRFwiO1xuXG5leHBvcnQgY29uc3QgTUFYX0NBQ0hFX1NJWkUgPSA1MDtcbmV4cG9ydCBjb25zdCBLRVlfVFlQRV9JREVOVElGSUVSID0gXCJhd3M0X3JlcXVlc3RcIjtcblxuZXhwb3J0IGNvbnN0IE1BWF9QUkVTSUdORURfVFRMID0gNjAgKiA2MCAqIDI0ICogNztcbiJdfQ==
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.clearCredentialCache = exports.getSigningKey = exports.createScope = void 0;
var tslib_1 = require("tslib");
var constants_1 = require("./constants");
var signingKeyCache = {};
var cacheQueue = [];
const constants_1 = require("./constants");
const signingKeyCache = {};
const cacheQueue = [];
/**

@@ -16,3 +15,3 @@ * Create a string describing the scope of credentials used to sign a request.

function createScope(shortDate, region, service) {
return shortDate + "/" + region + "/" + service + "/" + constants_1.KEY_TYPE_IDENTIFIER;
return `${shortDate}/${region}/${service}/${constants_1.KEY_TYPE_IDENTIFIER}`;
}

@@ -33,3 +32,3 @@ exports.createScope = createScope;

function getSigningKey(sha256Constructor, credentials, shortDate, region, service) {
var cacheKey = shortDate + ":" + region + ":" + service + ":" + (credentials.accessKeyId + ":" + credentials.sessionToken);
const cacheKey = `${shortDate}:${region}:${service}:` + `${credentials.accessKeyId}:${credentials.sessionToken}`;
if (cacheKey in signingKeyCache) {

@@ -42,23 +41,9 @@ return signingKeyCache[cacheKey];

}
return (signingKeyCache[cacheKey] = new Promise(function (resolve, reject) {
var e_1, _a;
var keyPromise = Promise.resolve("AWS4" + credentials.secretAccessKey);
var _loop_1 = function (signable) {
keyPromise = keyPromise.then(function (intermediateKey) { return hmac(sha256Constructor, intermediateKey, signable); });
keyPromise.catch(function () { });
};
try {
for (var _b = tslib_1.__values([shortDate, region, service, constants_1.KEY_TYPE_IDENTIFIER]), _c = _b.next(); !_c.done; _c = _b.next()) {
var signable = _c.value;
_loop_1(signable);
}
return (signingKeyCache[cacheKey] = new Promise((resolve, reject) => {
let keyPromise = Promise.resolve(`AWS4${credentials.secretAccessKey}`);
for (const signable of [shortDate, region, service, constants_1.KEY_TYPE_IDENTIFIER]) {
keyPromise = keyPromise.then((intermediateKey) => hmac(sha256Constructor, intermediateKey, signable));
keyPromise.catch(() => { });
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
keyPromise.then(resolve, function (reason) {
keyPromise.then(resolve, (reason) => {
delete signingKeyCache[cacheKey];

@@ -75,3 +60,3 @@ reject(reason);

cacheQueue.length = 0;
Object.keys(signingKeyCache).forEach(function (cacheKey) {
Object.keys(signingKeyCache).forEach((cacheKey) => {
delete signingKeyCache[cacheKey];

@@ -82,6 +67,6 @@ });

function hmac(ctor, secret, data) {
var hash = new ctor(secret);
const hash = new ctor(secret);
hash.update(data);
return hash.digest();
}
//# sourceMappingURL=credentialDerivation.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbERlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlZGVudGlhbERlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsMkNBQWtFO0FBRWxFLE1BQU0sZUFBZSxHQUEyQyxFQUFFLENBQUM7QUFDbkUsTUFBTSxVQUFVLEdBQWtCLEVBQUUsQ0FBQztBQUVyQzs7Ozs7O0dBTUc7QUFDSCxTQUFnQixXQUFXLENBQUMsU0FBaUIsRUFBRSxNQUFjLEVBQUUsT0FBZTtJQUM1RSxPQUFPLEdBQUcsU0FBUyxJQUFJLE1BQU0sSUFBSSxPQUFPLElBQUksK0JBQW1CLEVBQUUsQ0FBQztBQUNwRSxDQUFDO0FBRkQsa0NBRUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQWdCLGFBQWEsQ0FDM0IsaUJBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hCLFNBQWlCLEVBQ2pCLE1BQWMsRUFDZCxPQUFlO0lBRWYsTUFBTSxRQUFRLEdBQUcsR0FBRyxTQUFTLElBQUksTUFBTSxJQUFJLE9BQU8sR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDakgsSUFBSSxRQUFRLElBQUksZUFBZSxFQUFFO1FBQy9CLE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ2xDO0lBRUQsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsMEJBQWMsRUFBRTtRQUN6QyxPQUFPLGVBQWUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFZLENBQUMsQ0FBQztLQUN0RDtJQUVELE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbEUsSUFBSSxVQUFVLEdBQXdCLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUU1RixLQUFLLE1BQU0sUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsK0JBQW1CLENBQUMsRUFBRTtZQUN4RSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBYSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2xILFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7U0FDNUI7UUFFQSxVQUFrQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzRCxPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQTlCRCxzQ0E4QkM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG9CQUFvQjtJQUNsQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ2hELE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUxELG9EQUtDO0FBRUQsU0FBUyxJQUFJLENBQUMsSUFBcUIsRUFBRSxNQUFrQixFQUFFLElBQWdCO0lBQ3ZFLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyZWRlbnRpYWxzLCBIYXNoQ29uc3RydWN0b3IsIFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgS0VZX1RZUEVfSURFTlRJRklFUiwgTUFYX0NBQ0hFX1NJWkUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3Qgc2lnbmluZ0tleUNhY2hlOiB7IFtrZXk6IHN0cmluZ106IFByb21pc2U8VWludDhBcnJheT4gfSA9IHt9O1xuY29uc3QgY2FjaGVRdWV1ZTogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4vKipcbiAqIENyZWF0ZSBhIHN0cmluZyBkZXNjcmliaW5nIHRoZSBzY29wZSBvZiBjcmVkZW50aWFscyB1c2VkIHRvIHNpZ24gYSByZXF1ZXN0LlxuICpcbiAqIEBwYXJhbSBzaG9ydERhdGUgVGhlIGN1cnJlbnQgY2FsZW5kYXIgZGF0ZSBpbiB0aGUgZm9ybSBZWVlZTU1ERC5cbiAqIEBwYXJhbSByZWdpb24gICAgVGhlIEFXUyByZWdpb24gaW4gd2hpY2ggdGhlIHNlcnZpY2UgcmVzaWRlcy5cbiAqIEBwYXJhbSBzZXJ2aWNlICAgVGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIHNpZ25lZCByZXF1ZXN0IGlzIGJlaW5nIHNlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTY29wZShzaG9ydERhdGU6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtzaG9ydERhdGV9LyR7cmVnaW9ufS8ke3NlcnZpY2V9LyR7S0VZX1RZUEVfSURFTlRJRklFUn1gO1xufVxuXG4vKipcbiAqIERlcml2ZSBhIHNpZ25pbmcga2V5IGZyb20gaXRzIGNvbXBvc2l0ZSBwYXJ0c1xuICpcbiAqIEBwYXJhbSBzaGEyNTZDb25zdHJ1Y3RvciBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIHRoYXQgY2FuIGluc3RhbnRpYXRlIFNIQS0yNTZcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoIG9iamVjdHMuXG4gKiBAcGFyYW0gY3JlZGVudGlhbHMgICAgICAgVGhlIGNyZWRlbnRpYWxzIHdpdGggd2hpY2ggdGhlIHJlcXVlc3Qgd2lsbCBiZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZC5cbiAqIEBwYXJhbSBzaG9ydERhdGUgICAgICAgICBUaGUgY3VycmVudCBjYWxlbmRhciBkYXRlIGluIHRoZSBmb3JtIFlZWVlNTURELlxuICogQHBhcmFtIHJlZ2lvbiAgICAgICAgICAgIFRoZSBBV1MgcmVnaW9uIGluIHdoaWNoIHRoZSBzZXJ2aWNlIHJlc2lkZXMuXG4gKiBAcGFyYW0gc2VydmljZSAgICAgICAgICAgVGhlIHNlcnZpY2UgdG8gd2hpY2ggdGhlIHNpZ25lZCByZXF1ZXN0IGlzIGJlaW5nXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ25pbmdLZXkoXG4gIHNoYTI1NkNvbnN0cnVjdG9yOiBIYXNoQ29uc3RydWN0b3IsXG4gIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyxcbiAgc2hvcnREYXRlOiBzdHJpbmcsXG4gIHJlZ2lvbjogc3RyaW5nLFxuICBzZXJ2aWNlOiBzdHJpbmdcbik6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBjYWNoZUtleSA9IGAke3Nob3J0RGF0ZX06JHtyZWdpb259OiR7c2VydmljZX06YCArIGAke2NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkfToke2NyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbn1gO1xuICBpZiAoY2FjaGVLZXkgaW4gc2lnbmluZ0tleUNhY2hlKSB7XG4gICAgcmV0dXJuIHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV07XG4gIH1cblxuICBjYWNoZVF1ZXVlLnB1c2goY2FjaGVLZXkpO1xuICB3aGlsZSAoY2FjaGVRdWV1ZS5sZW5ndGggPiBNQVhfQ0FDSEVfU0laRSkge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVRdWV1ZS5zaGlmdCgpIGFzIHN0cmluZ107XG4gIH1cblxuICByZXR1cm4gKHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgbGV0IGtleVByb21pc2U6IFByb21pc2U8U291cmNlRGF0YT4gPSBQcm9taXNlLnJlc29sdmUoYEFXUzQke2NyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleX1gKTtcblxuICAgIGZvciAoY29uc3Qgc2lnbmFibGUgb2YgW3Nob3J0RGF0ZSwgcmVnaW9uLCBzZXJ2aWNlLCBLRVlfVFlQRV9JREVOVElGSUVSXSkge1xuICAgICAga2V5UHJvbWlzZSA9IGtleVByb21pc2UudGhlbjxVaW50OEFycmF5PigoaW50ZXJtZWRpYXRlS2V5KSA9PiBobWFjKHNoYTI1NkNvbnN0cnVjdG9yLCBpbnRlcm1lZGlhdGVLZXksIHNpZ25hYmxlKSk7XG4gICAgICBrZXlQcm9taXNlLmNhdGNoKCgpID0+IHt9KTtcbiAgICB9XG5cbiAgICAoa2V5UHJvbWlzZSBhcyBQcm9taXNlPFVpbnQ4QXJyYXk+KS50aGVuKHJlc29sdmUsIChyZWFzb24pID0+IHtcbiAgICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldO1xuICAgICAgcmVqZWN0KHJlYXNvbik7XG4gICAgfSk7XG4gIH0pKTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQ3JlZGVudGlhbENhY2hlKCk6IHZvaWQge1xuICBjYWNoZVF1ZXVlLmxlbmd0aCA9IDA7XG4gIE9iamVjdC5rZXlzKHNpZ25pbmdLZXlDYWNoZSkuZm9yRWFjaCgoY2FjaGVLZXkpID0+IHtcbiAgICBkZWxldGUgc2lnbmluZ0tleUNhY2hlW2NhY2hlS2V5XTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhtYWMoY3RvcjogSGFzaENvbnN0cnVjdG9yLCBzZWNyZXQ6IFNvdXJjZURhdGEsIGRhdGE6IFNvdXJjZURhdGEpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgY29uc3QgaGFzaCA9IG5ldyBjdG9yKHNlY3JldCk7XG4gIGhhc2gudXBkYXRlKGRhdGEpO1xuICByZXR1cm4gaGFzaC5kaWdlc3QoKTtcbn1cbiJdfQ==
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCanonicalHeaders = void 0;
var tslib_1 = require("tslib");
var constants_1 = require("./constants");
const constants_1 = require("./constants");
/**
* @internal
*/
function getCanonicalHeaders(_a, unsignableHeaders, signableHeaders) {
var e_1, _b;
var headers = _a.headers;
var canonical = {};
try {
for (var _c = tslib_1.__values(Object.keys(headers).sort()), _d = _c.next(); !_d.done; _d = _c.next()) {
var headerName = _d.value;
var canonicalHeaderName = headerName.toLowerCase();
if (canonicalHeaderName in constants_1.ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) ||
constants_1.PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||
constants_1.SEC_HEADER_PATTERN.test(canonicalHeaderName)) {
if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {
continue;
}
function getCanonicalHeaders({ headers }, unsignableHeaders, signableHeaders) {
const canonical = {};
for (const headerName of Object.keys(headers).sort()) {
const canonicalHeaderName = headerName.toLowerCase();
if (canonicalHeaderName in constants_1.ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) ||
constants_1.PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||
constants_1.SEC_HEADER_PATTERN.test(canonicalHeaderName)) {
if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {
continue;
}
canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\s+/g, " ");
}
canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\s+/g, " ");
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
}
finally { if (e_1) throw e_1.error; }
}
return canonical;
}
exports.getCanonicalHeaders = getCanonicalHeaders;
//# sourceMappingURL=getCanonicalHeaders.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsSGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDYW5vbmljYWxIZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJDQUFrRztBQUVsRzs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUNqQyxFQUFFLE9BQU8sRUFBZSxFQUN4QixpQkFBK0IsRUFDL0IsZUFBNkI7SUFFN0IsTUFBTSxTQUFTLEdBQWMsRUFBRSxDQUFDO0lBQ2hDLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNwRCxNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyRCxJQUNFLG1CQUFtQixJQUFJLHFDQUF5QixLQUNoRCxpQkFBaUIsYUFBakIsaUJBQWlCLHVCQUFqQixpQkFBaUIsQ0FBRSxHQUFHLENBQUMsbUJBQW1CLEVBQUM7WUFDM0MsZ0NBQW9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQzlDLDhCQUFrQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUM1QztZQUNBLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRTtnQkFDdEYsU0FBUzthQUNWO1NBQ0Y7UUFFRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztLQUNsRjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUF2QkQsa0RBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGVhZGVyQmFnLCBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBBTFdBWVNfVU5TSUdOQUJMRV9IRUFERVJTLCBQUk9YWV9IRUFERVJfUEFUVEVSTiwgU0VDX0hFQURFUl9QQVRURVJOIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYW5vbmljYWxIZWFkZXJzKFxuICB7IGhlYWRlcnMgfTogSHR0cFJlcXVlc3QsXG4gIHVuc2lnbmFibGVIZWFkZXJzPzogU2V0PHN0cmluZz4sXG4gIHNpZ25hYmxlSGVhZGVycz86IFNldDxzdHJpbmc+XG4pOiBIZWFkZXJCYWcge1xuICBjb25zdCBjYW5vbmljYWw6IEhlYWRlckJhZyA9IHt9O1xuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykuc29ydCgpKSB7XG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVyTmFtZSA9IGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoXG4gICAgICBjYW5vbmljYWxIZWFkZXJOYW1lIGluIEFMV0FZU19VTlNJR05BQkxFX0hFQURFUlMgfHxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzPy5oYXMoY2Fub25pY2FsSGVhZGVyTmFtZSkgfHxcbiAgICAgIFBST1hZX0hFQURFUl9QQVRURVJOLnRlc3QoY2Fub25pY2FsSGVhZGVyTmFtZSkgfHxcbiAgICAgIFNFQ19IRUFERVJfUEFUVEVSTi50ZXN0KGNhbm9uaWNhbEhlYWRlck5hbWUpXG4gICAgKSB7XG4gICAgICBpZiAoIXNpZ25hYmxlSGVhZGVycyB8fCAoc2lnbmFibGVIZWFkZXJzICYmICFzaWduYWJsZUhlYWRlcnMuaGFzKGNhbm9uaWNhbEhlYWRlck5hbWUpKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYW5vbmljYWxbY2Fub25pY2FsSGVhZGVyTmFtZV0gPSBoZWFkZXJzW2hlYWRlck5hbWVdLnRyaW0oKS5yZXBsYWNlKC9cXHMrL2csIFwiIFwiKTtcbiAgfVxuXG4gIHJldHVybiBjYW5vbmljYWw7XG59XG4iXX0=
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCanonicalQuery = void 0;
var tslib_1 = require("tslib");
var util_uri_escape_1 = require("@aws-sdk/util-uri-escape");
var constants_1 = require("./constants");
const util_uri_escape_1 = require("@aws-sdk/util-uri-escape");
const constants_1 = require("./constants");
/**
* @internal
*/
function getCanonicalQuery(_a) {
var e_1, _b;
var _c = _a.query, query = _c === void 0 ? {} : _c;
var keys = [];
var serialized = {};
var _loop_1 = function (key) {
function getCanonicalQuery({ query = {} }) {
const keys = [];
const serialized = {};
for (const key of Object.keys(query).sort()) {
if (key.toLowerCase() === constants_1.SIGNATURE_HEADER) {
return "continue";
continue;
}
keys.push(key);
var value = query[key];
const value = query[key];
if (typeof value === "string") {
serialized[key] = util_uri_escape_1.escapeUri(key) + "=" + util_uri_escape_1.escapeUri(value);
serialized[key] = `${util_uri_escape_1.escapeUri(key)}=${util_uri_escape_1.escapeUri(value)}`;
}

@@ -28,25 +25,12 @@ else if (Array.isArray(value)) {

.sort()
.reduce(function (encoded, value) { return encoded.concat([util_uri_escape_1.escapeUri(key) + "=" + util_uri_escape_1.escapeUri(value)]); }, [])
.reduce((encoded, value) => encoded.concat([`${util_uri_escape_1.escapeUri(key)}=${util_uri_escape_1.escapeUri(value)}`]), [])
.join("&");
}
};
try {
for (var _d = tslib_1.__values(Object.keys(query).sort()), _e = _d.next(); !_e.done; _e = _d.next()) {
var key = _e.value;
_loop_1(key);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
}
finally { if (e_1) throw e_1.error; }
}
return keys
.map(function (key) { return serialized[key]; })
.filter(function (serialized) { return serialized; }) // omit any falsy values
.map((key) => serialized[key])
.filter((serialized) => serialized) // omit any falsy values
.join("&");
}
exports.getCanonicalQuery = getCanonicalQuery;
//# sourceMappingURL=getCanonicalQuery.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0Q2Fub25pY2FsUXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOERBQXFEO0FBRXJELDJDQUErQztBQUUvQzs7R0FFRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBZTtJQUMzRCxNQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQy9CLE1BQU0sVUFBVSxHQUE4QixFQUFFLENBQUM7SUFDakQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQzNDLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLDRCQUFnQixFQUFFO1lBQzFDLFNBQVM7U0FDVjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsMkJBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSwyQkFBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7U0FDM0Q7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUs7aUJBQ3BCLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQ1IsSUFBSSxFQUFFO2lCQUNOLE1BQU0sQ0FDTCxDQUFDLE9BQXNCLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRywyQkFBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLDJCQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3BHLEVBQUUsQ0FDSDtpQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDZDtLQUNGO0lBRUQsT0FBTyxJQUFJO1NBQ1IsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0IsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyx3QkFBd0I7U0FDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQTVCRCw4Q0E0QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgZXNjYXBlVXJpIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXJpLWVzY2FwZVwiO1xuXG5pbXBvcnQgeyBTSUdOQVRVUkVfSEVBREVSIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYW5vbmljYWxRdWVyeSh7IHF1ZXJ5ID0ge30gfTogSHR0cFJlcXVlc3QpOiBzdHJpbmcge1xuICBjb25zdCBrZXlzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIGNvbnN0IHNlcmlhbGl6ZWQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocXVlcnkpLnNvcnQoKSkge1xuICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gU0lHTkFUVVJFX0hFQURFUikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAga2V5cy5wdXNoKGtleSk7XG4gICAgY29uc3QgdmFsdWUgPSBxdWVyeVtrZXldO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHNlcmlhbGl6ZWRba2V5XSA9IGAke2VzY2FwZVVyaShrZXkpfT0ke2VzY2FwZVVyaSh2YWx1ZSl9YDtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBzZXJpYWxpemVkW2tleV0gPSB2YWx1ZVxuICAgICAgICAuc2xpY2UoMClcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAucmVkdWNlKFxuICAgICAgICAgIChlbmNvZGVkOiBBcnJheTxzdHJpbmc+LCB2YWx1ZTogc3RyaW5nKSA9PiBlbmNvZGVkLmNvbmNhdChbYCR7ZXNjYXBlVXJpKGtleSl9PSR7ZXNjYXBlVXJpKHZhbHVlKX1gXSksXG4gICAgICAgICAgW11cbiAgICAgICAgKVxuICAgICAgICAuam9pbihcIiZcIik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGtleXNcbiAgICAubWFwKChrZXkpID0+IHNlcmlhbGl6ZWRba2V5XSlcbiAgICAuZmlsdGVyKChzZXJpYWxpemVkKSA9PiBzZXJpYWxpemVkKSAvLyBvbWl0IGFueSBmYWxzeSB2YWx1ZXNcbiAgICAuam9pbihcIiZcIik7XG59XG4iXX0=
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPayloadHash = void 0;
var tslib_1 = require("tslib");
var is_array_buffer_1 = require("@aws-sdk/is-array-buffer");
var util_hex_encoding_1 = require("@aws-sdk/util-hex-encoding");
var constants_1 = require("./constants");
const is_array_buffer_1 = require("@aws-sdk/is-array-buffer");
const util_hex_encoding_1 = require("@aws-sdk/util-hex-encoding");
const constants_1 = require("./constants");
/**
* @internal
*/
function getPayloadHash(_a, hashConstructor) {
var headers = _a.headers, body = _a.body;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _b, _c, headerName, hashCtor, _d;
var e_1, _e;
return tslib_1.__generator(this, function (_f) {
switch (_f.label) {
case 0:
try {
for (_b = tslib_1.__values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {
headerName = _c.value;
if (headerName.toLowerCase() === constants_1.SHA256_HEADER) {
return [2 /*return*/, headers[headerName]];
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_e = _b.return)) _e.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
if (!(body == undefined)) return [3 /*break*/, 1];
return [2 /*return*/, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"];
case 1:
if (!(typeof body === "string" || ArrayBuffer.isView(body) || is_array_buffer_1.isArrayBuffer(body))) return [3 /*break*/, 3];
hashCtor = new hashConstructor();
hashCtor.update(body);
_d = util_hex_encoding_1.toHex;
return [4 /*yield*/, hashCtor.digest()];
case 2: return [2 /*return*/, _d.apply(void 0, [_f.sent()])];
case 3:
// As any defined body that is not a string or binary data is a stream, this
// body is unsignable. Attempt to send the request with an unsigned payload,
// which may or may not be accepted by the service.
return [2 /*return*/, constants_1.UNSIGNED_PAYLOAD];
}
});
});
async function getPayloadHash({ headers, body }, hashConstructor) {
for (const headerName of Object.keys(headers)) {
if (headerName.toLowerCase() === constants_1.SHA256_HEADER) {
return headers[headerName];
}
}
if (body == undefined) {
return "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
}
else if (typeof body === "string" || ArrayBuffer.isView(body) || is_array_buffer_1.isArrayBuffer(body)) {
const hashCtor = new hashConstructor();
hashCtor.update(body);
return util_hex_encoding_1.toHex(await hashCtor.digest());
}
// As any defined body that is not a string or binary data is a stream, this
// body is unsignable. Attempt to send the request with an unsigned payload,
// which may or may not be accepted by the service.
return constants_1.UNSIGNED_PAYLOAD;
}
exports.getPayloadHash = getPayloadHash;
//# sourceMappingURL=getPayloadHash.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGF5bG9hZEhhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0UGF5bG9hZEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQXlEO0FBRXpELGtFQUFtRDtBQUVuRCwyQ0FBOEQ7QUFFOUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsY0FBYyxDQUNsQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQWUsRUFDOUIsZUFBZ0M7SUFFaEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzdDLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxLQUFLLHlCQUFhLEVBQUU7WUFDOUMsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDNUI7S0FDRjtJQUVELElBQUksSUFBSSxJQUFJLFNBQVMsRUFBRTtRQUNyQixPQUFPLGtFQUFrRSxDQUFDO0tBQzNFO1NBQU0sSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSwrQkFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3RGLE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDdkMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixPQUFPLHlCQUFLLENBQUMsTUFBTSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUN2QztJQUVELDRFQUE0RTtJQUM1RSw0RUFBNEU7SUFDNUUsbURBQW1EO0lBQ25ELE9BQU8sNEJBQWdCLENBQUM7QUFDMUIsQ0FBQztBQXRCRCx3Q0FzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0FycmF5QnVmZmVyIH0gZnJvbSBcIkBhd3Mtc2RrL2lzLWFycmF5LWJ1ZmZlclwiO1xuaW1wb3J0IHsgSGFzaENvbnN0cnVjdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgdG9IZXggfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1oZXgtZW5jb2RpbmdcIjtcblxuaW1wb3J0IHsgU0hBMjU2X0hFQURFUiwgVU5TSUdORURfUEFZTE9BRCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UGF5bG9hZEhhc2goXG4gIHsgaGVhZGVycywgYm9keSB9OiBIdHRwUmVxdWVzdCxcbiAgaGFzaENvbnN0cnVjdG9yOiBIYXNoQ29uc3RydWN0b3Jcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGZvciAoY29uc3QgaGVhZGVyTmFtZSBvZiBPYmplY3Qua2V5cyhoZWFkZXJzKSkge1xuICAgIGlmIChoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFNIQTI1Nl9IRUFERVIpIHtcbiAgICAgIHJldHVybiBoZWFkZXJzW2hlYWRlck5hbWVdO1xuICAgIH1cbiAgfVxuXG4gIGlmIChib2R5ID09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBcImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTVcIjtcbiAgfSBlbHNlIGlmICh0eXBlb2YgYm9keSA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheUJ1ZmZlci5pc1ZpZXcoYm9keSkgfHwgaXNBcnJheUJ1ZmZlcihib2R5KSkge1xuICAgIGNvbnN0IGhhc2hDdG9yID0gbmV3IGhhc2hDb25zdHJ1Y3RvcigpO1xuICAgIGhhc2hDdG9yLnVwZGF0ZShib2R5KTtcbiAgICByZXR1cm4gdG9IZXgoYXdhaXQgaGFzaEN0b3IuZGlnZXN0KCkpO1xuICB9XG5cbiAgLy8gQXMgYW55IGRlZmluZWQgYm9keSB0aGF0IGlzIG5vdCBhIHN0cmluZyBvciBiaW5hcnkgZGF0YSBpcyBhIHN0cmVhbSwgdGhpc1xuICAvLyBib2R5IGlzIHVuc2lnbmFibGUuIEF0dGVtcHQgdG8gc2VuZCB0aGUgcmVxdWVzdCB3aXRoIGFuIHVuc2lnbmVkIHBheWxvYWQsXG4gIC8vIHdoaWNoIG1heSBvciBtYXkgbm90IGJlIGFjY2VwdGVkIGJ5IHRoZSBzZXJ2aWNlLlxuICByZXR1cm4gVU5TSUdORURfUEFZTE9BRDtcbn1cbiJdfQ==
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasHeader = void 0;
var tslib_1 = require("tslib");
function hasHeader(soughtHeader, headers) {
var e_1, _a;
soughtHeader = soughtHeader.toLowerCase();
try {
for (var _b = tslib_1.__values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {
var headerName = _c.value;
if (soughtHeader === headerName.toLowerCase()) {
return true;
}
for (const headerName of Object.keys(headers)) {
if (soughtHeader === headerName.toLowerCase()) {
return true;
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
return false;
}
exports.hasHeader = hasHeader;
//# sourceMappingURL=hasHeader.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhc0hlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxTQUFnQixTQUFTLENBQUMsWUFBb0IsRUFBRSxPQUFrQjtJQUNoRSxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUM3QyxJQUFJLFlBQVksS0FBSyxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUM7U0FDYjtLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBVEQsOEJBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0hlYWRlcihzb3VnaHRIZWFkZXI6IHN0cmluZywgaGVhZGVyczogSGVhZGVyQmFnKTogYm9vbGVhbiB7XG4gIHNvdWdodEhlYWRlciA9IHNvdWdodEhlYWRlci50b0xvd2VyQ2FzZSgpO1xuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICBpZiAoc291Z2h0SGVhZGVyID09PSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./credentialDerivation"), exports);
tslib_1.__exportStar(require("./SignatureV4"), exports);
//# sourceMappingURL=index.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUVBQXVDO0FBQ3ZDLHdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NyZWRlbnRpYWxEZXJpdmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TaWduYXR1cmVWNFwiO1xuIl19
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.moveHeadersToQuery = void 0;
var tslib_1 = require("tslib");
var cloneRequest_1 = require("./cloneRequest");
const cloneRequest_1 = require("./cloneRequest");
/**

@@ -10,25 +9,17 @@ * @internal

function moveHeadersToQuery(request) {
var e_1, _a;
var _b = typeof request.clone === "function" ? request.clone() : cloneRequest_1.cloneRequest(request), headers = _b.headers, _c = _b.query, query = _c === void 0 ? {} : _c;
try {
for (var _d = tslib_1.__values(Object.keys(headers)), _e = _d.next(); !_e.done; _e = _d.next()) {
var name_1 = _e.value;
var lname = name_1.toLowerCase();
if (lname.substr(0, 6) === "x-amz-") {
query[name_1] = headers[name_1];
delete headers[name_1];
}
const { headers, query = {} } = typeof request.clone === "function" ? request.clone() : cloneRequest_1.cloneRequest(request);
for (const name of Object.keys(headers)) {
const lname = name.toLowerCase();
if (lname.substr(0, 6) === "x-amz-") {
query[name] = headers[name];
delete headers[name];
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
}
finally { if (e_1) throw e_1.error; }
}
return tslib_1.__assign(tslib_1.__assign({}, request), { headers: headers,
query: query });
return {
...request,
headers,
query,
};
}
exports.moveHeadersToQuery = moveHeadersToQuery;
//# sourceMappingURL=moveHeadersToQuery.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUhlYWRlcnNUb1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vdmVIZWFkZXJzVG9RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxpREFBOEM7QUFFOUM7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxPQUFvQjtJQUNyRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUF1QixFQUFFLEdBQ2hELE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsMkJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRyxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ25DLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEI7S0FDRjtJQUVELE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixPQUFPO1FBQ1AsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDO0FBaEJELGdEQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdmVIZWFkZXJzVG9RdWVyeShyZXF1ZXN0OiBIdHRwUmVxdWVzdCk6IEh0dHBSZXF1ZXN0ICYgeyBxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcgfSB7XG4gIGNvbnN0IHsgaGVhZGVycywgcXVlcnkgPSB7fSBhcyBRdWVyeVBhcmFtZXRlckJhZyB9ID1cbiAgICB0eXBlb2YgKHJlcXVlc3QgYXMgYW55KS5jbG9uZSA9PT0gXCJmdW5jdGlvblwiID8gKHJlcXVlc3QgYXMgYW55KS5jbG9uZSgpIDogY2xvbmVSZXF1ZXN0KHJlcXVlc3QpO1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICBjb25zdCBsbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobG5hbWUuc3Vic3RyKDAsIDYpID09PSBcIngtYW16LVwiKSB7XG4gICAgICBxdWVyeVtuYW1lXSA9IGhlYWRlcnNbbmFtZV07XG4gICAgICBkZWxldGUgaGVhZGVyc1tuYW1lXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnJlcXVlc3QsXG4gICAgaGVhZGVycyxcbiAgICBxdWVyeSxcbiAgfTtcbn1cbiJdfQ==
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.prepareRequest = void 0;
var tslib_1 = require("tslib");
var cloneRequest_1 = require("./cloneRequest");
var constants_1 = require("./constants");
const cloneRequest_1 = require("./cloneRequest");
const constants_1 = require("./constants");
/**

@@ -11,23 +10,12 @@ * @internal

function prepareRequest(request) {
var e_1, _a;
// Create a clone of the request object that does not clone the body
request = typeof request.clone === "function" ? request.clone() : cloneRequest_1.cloneRequest(request);
try {
for (var _b = tslib_1.__values(Object.keys(request.headers)), _c = _b.next(); !_c.done; _c = _b.next()) {
var headerName = _c.value;
if (constants_1.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {
delete request.headers[headerName];
}
for (const headerName of Object.keys(request.headers)) {
if (constants_1.GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {
delete request.headers[headerName];
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
return request;
}
exports.prepareRequest = prepareRequest;
//# sourceMappingURL=prepareRequest.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZVJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlcGFyZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsaURBQThDO0FBQzlDLDJDQUFnRDtBQUVoRDs7R0FFRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFvQjtJQUNqRCxvRUFBb0U7SUFDcEUsT0FBTyxHQUFHLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsMkJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUxRyxLQUFLLE1BQU0sVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3JELElBQUksNkJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQzVELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNwQztLQUNGO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQVhELHdDQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgY2xvbmVSZXF1ZXN0IH0gZnJvbSBcIi4vY2xvbmVSZXF1ZXN0XCI7XG5pbXBvcnQgeyBHRU5FUkFURURfSEVBREVSUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZVJlcXVlc3QocmVxdWVzdDogSHR0cFJlcXVlc3QpOiBIdHRwUmVxdWVzdCB7XG4gIC8vIENyZWF0ZSBhIGNsb25lIG9mIHRoZSByZXF1ZXN0IG9iamVjdCB0aGF0IGRvZXMgbm90IGNsb25lIHRoZSBib2R5XG4gIHJlcXVlc3QgPSB0eXBlb2YgKHJlcXVlc3QgYXMgYW55KS5jbG9uZSA9PT0gXCJmdW5jdGlvblwiID8gKHJlcXVlc3QgYXMgYW55KS5jbG9uZSgpIDogY2xvbmVSZXF1ZXN0KHJlcXVlc3QpO1xuXG4gIGZvciAoY29uc3QgaGVhZGVyTmFtZSBvZiBPYmplY3Qua2V5cyhyZXF1ZXN0LmhlYWRlcnMpKSB7XG4gICAgaWYgKEdFTkVSQVRFRF9IRUFERVJTLmluZGV4T2YoaGVhZGVyTmFtZS50b0xvd2VyQ2FzZSgpKSA+IC0xKSB7XG4gICAgICBkZWxldGUgcmVxdWVzdC5oZWFkZXJzW2hlYWRlck5hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXF1ZXN0O1xufVxuIl19
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SignatureV4 = void 0;
var tslib_1 = require("tslib");
var util_hex_encoding_1 = require("@aws-sdk/util-hex-encoding");
var constants_1 = require("./constants");
var credentialDerivation_1 = require("./credentialDerivation");
var getCanonicalHeaders_1 = require("./getCanonicalHeaders");
var getCanonicalQuery_1 = require("./getCanonicalQuery");
var getPayloadHash_1 = require("./getPayloadHash");
var hasHeader_1 = require("./hasHeader");
var moveHeadersToQuery_1 = require("./moveHeadersToQuery");
var prepareRequest_1 = require("./prepareRequest");
var utilDate_1 = require("./utilDate");
var SignatureV4 = /** @class */ (function () {
function SignatureV4(_a) {
var applyChecksum = _a.applyChecksum, credentials = _a.credentials, region = _a.region, service = _a.service, sha256 = _a.sha256, _b = _a.uriEscapePath, uriEscapePath = _b === void 0 ? true : _b;
const util_hex_encoding_1 = require("@aws-sdk/util-hex-encoding");
const constants_1 = require("./constants");
const credentialDerivation_1 = require("./credentialDerivation");
const getCanonicalHeaders_1 = require("./getCanonicalHeaders");
const getCanonicalQuery_1 = require("./getCanonicalQuery");
const getPayloadHash_1 = require("./getPayloadHash");
const hasHeader_1 = require("./hasHeader");
const moveHeadersToQuery_1 = require("./moveHeadersToQuery");
const prepareRequest_1 = require("./prepareRequest");
const utilDate_1 = require("./utilDate");
class SignatureV4 {
constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {
this.service = service;

@@ -26,253 +24,133 @@ this.sha256 = sha256;

}
SignatureV4.prototype.presign = function (originalRequest, options) {
if (options === void 0) { options = {}; }
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, signingDate, _b, expiresIn, unsignableHeaders, signableHeaders, signingRegion, signingService, credentials, region, _c, _d, longDate, shortDate, scope, request, canonicalHeaders, _e, _f, _g, _h, _j, _k;
return tslib_1.__generator(this, function (_l) {
switch (_l.label) {
case 0:
_a = options.signingDate, signingDate = _a === void 0 ? new Date() : _a, _b = options.expiresIn, expiresIn = _b === void 0 ? 3600 : _b, unsignableHeaders = options.unsignableHeaders, signableHeaders = options.signableHeaders, signingRegion = options.signingRegion, signingService = options.signingService;
return [4 /*yield*/, this.credentialProvider()];
case 1:
credentials = _l.sent();
if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];
_c = signingRegion;
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this.regionProvider()];
case 3:
_c = (_l.sent());
_l.label = 4;
case 4:
region = _c;
_d = formatDate(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;
if (expiresIn > constants_1.MAX_PRESIGNED_TTL) {
return [2 /*return*/, Promise.reject("Signature version 4 presigned URLs" + " must have an expiration date less than one week in" + " the future")];
}
scope = credentialDerivation_1.createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
request = moveHeadersToQuery_1.moveHeadersToQuery(prepareRequest_1.prepareRequest(originalRequest));
if (credentials.sessionToken) {
request.query[constants_1.TOKEN_QUERY_PARAM] = credentials.sessionToken;
}
request.query[constants_1.ALGORITHM_QUERY_PARAM] = constants_1.ALGORITHM_IDENTIFIER;
request.query[constants_1.CREDENTIAL_QUERY_PARAM] = credentials.accessKeyId + "/" + scope;
request.query[constants_1.AMZ_DATE_QUERY_PARAM] = longDate;
request.query[constants_1.EXPIRES_QUERY_PARAM] = expiresIn.toString(10);
canonicalHeaders = getCanonicalHeaders_1.getCanonicalHeaders(request, unsignableHeaders, signableHeaders);
request.query[constants_1.SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);
_e = request.query;
_f = constants_1.SIGNATURE_QUERY_PARAM;
_g = this.getSignature;
_h = [longDate,
scope,
this.getSigningKey(credentials, region, shortDate, signingService)];
_j = this.createCanonicalRequest;
_k = [request, canonicalHeaders];
return [4 /*yield*/, getPayloadHash_1.getPayloadHash(originalRequest, this.sha256)];
case 5: return [4 /*yield*/, _g.apply(this, _h.concat([_j.apply(this, _k.concat([_l.sent()]))]))];
case 6:
_e[_f] = _l.sent();
return [2 /*return*/, request];
}
});
});
};
SignatureV4.prototype.sign = function (toSign, options) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
if (typeof toSign === "string") {
return [2 /*return*/, this.signString(toSign, options)];
}
else if (toSign.headers && toSign.payload) {
return [2 /*return*/, this.signEvent(toSign, options)];
}
else {
return [2 /*return*/, this.signRequest(toSign, options)];
}
return [2 /*return*/];
});
});
};
SignatureV4.prototype.signEvent = function (_a, _b) {
var headers = _a.headers, payload = _a.payload;
var _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, priorSignature = _b.priorSignature, signingRegion = _b.signingRegion, signingService = _b.signingService;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var region, _d, _e, shortDate, longDate, scope, hashedPayload, hash, hashedHeaders, _f, stringToSign;
return tslib_1.__generator(this, function (_g) {
switch (_g.label) {
case 0:
if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 1];
_d = signingRegion;
return [3 /*break*/, 3];
case 1: return [4 /*yield*/, this.regionProvider()];
case 2:
_d = (_g.sent());
_g.label = 3;
case 3:
region = _d;
_e = formatDate(signingDate), shortDate = _e.shortDate, longDate = _e.longDate;
scope = credentialDerivation_1.createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
return [4 /*yield*/, getPayloadHash_1.getPayloadHash({ headers: {}, body: payload }, this.sha256)];
case 4:
hashedPayload = _g.sent();
hash = new this.sha256();
hash.update(headers);
_f = util_hex_encoding_1.toHex;
return [4 /*yield*/, hash.digest()];
case 5:
hashedHeaders = _f.apply(void 0, [_g.sent()]);
stringToSign = [
constants_1.EVENT_ALGORITHM_IDENTIFIER,
longDate,
scope,
priorSignature,
hashedHeaders,
hashedPayload,
].join("\n");
return [2 /*return*/, this.signString(stringToSign, { signingDate: signingDate, signingRegion: region, signingService: signingService })];
}
});
});
};
SignatureV4.prototype.signString = function (stringToSign, _a) {
var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signingRegion = _b.signingRegion, signingService = _b.signingService;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var credentials, region, _d, shortDate, hash, _e, _f, _g;
return tslib_1.__generator(this, function (_h) {
switch (_h.label) {
case 0: return [4 /*yield*/, this.credentialProvider()];
case 1:
credentials = _h.sent();
if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];
_d = signingRegion;
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this.regionProvider()];
case 3:
_d = (_h.sent());
_h.label = 4;
case 4:
region = _d;
shortDate = formatDate(signingDate).shortDate;
_f = (_e = this.sha256).bind;
return [4 /*yield*/, this.getSigningKey(credentials, region, shortDate, signingService)];
case 5:
hash = new (_f.apply(_e, [void 0, _h.sent()]))();
hash.update(stringToSign);
_g = util_hex_encoding_1.toHex;
return [4 /*yield*/, hash.digest()];
case 6: return [2 /*return*/, _g.apply(void 0, [_h.sent()])];
}
});
});
};
SignatureV4.prototype.signRequest = function (requestToSign, _a) {
var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signableHeaders = _b.signableHeaders, unsignableHeaders = _b.unsignableHeaders, signingRegion = _b.signingRegion, signingService = _b.signingService;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var credentials, region, _d, request, _e, longDate, shortDate, scope, payloadHash, canonicalHeaders, signature;
return tslib_1.__generator(this, function (_f) {
switch (_f.label) {
case 0: return [4 /*yield*/, this.credentialProvider()];
case 1:
credentials = _f.sent();
if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];
_d = signingRegion;
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this.regionProvider()];
case 3:
_d = (_f.sent());
_f.label = 4;
case 4:
region = _d;
request = prepareRequest_1.prepareRequest(requestToSign);
_e = formatDate(signingDate), longDate = _e.longDate, shortDate = _e.shortDate;
scope = credentialDerivation_1.createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
request.headers[constants_1.AMZ_DATE_HEADER] = longDate;
if (credentials.sessionToken) {
request.headers[constants_1.TOKEN_HEADER] = credentials.sessionToken;
}
return [4 /*yield*/, getPayloadHash_1.getPayloadHash(request, this.sha256)];
case 5:
payloadHash = _f.sent();
if (!hasHeader_1.hasHeader(constants_1.SHA256_HEADER, request.headers) && this.applyChecksum) {
request.headers[constants_1.SHA256_HEADER] = payloadHash;
}
canonicalHeaders = getCanonicalHeaders_1.getCanonicalHeaders(request, unsignableHeaders, signableHeaders);
return [4 /*yield*/, this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash))];
case 6:
signature = _f.sent();
request.headers[constants_1.AUTH_HEADER] =
constants_1.ALGORITHM_IDENTIFIER + " " +
("Credential=" + credentials.accessKeyId + "/" + scope + ", ") +
("SignedHeaders=" + getCanonicalHeaderList(canonicalHeaders) + ", ") +
("Signature=" + signature);
return [2 /*return*/, request];
}
});
});
};
SignatureV4.prototype.createCanonicalRequest = function (request, canonicalHeaders, payloadHash) {
var sortedHeaders = Object.keys(canonicalHeaders).sort();
return request.method + "\n" + this.getCanonicalPath(request) + "\n" + getCanonicalQuery_1.getCanonicalQuery(request) + "\n" + sortedHeaders.map(function (name) { return name + ":" + canonicalHeaders[name]; }).join("\n") + "\n\n" + sortedHeaders.join(";") + "\n" + payloadHash;
};
SignatureV4.prototype.createStringToSign = function (longDate, credentialScope, canonicalRequest) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var hash, hashedRequest;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
hash = new this.sha256();
hash.update(canonicalRequest);
return [4 /*yield*/, hash.digest()];
case 1:
hashedRequest = _a.sent();
return [2 /*return*/, constants_1.ALGORITHM_IDENTIFIER + "\n" + longDate + "\n" + credentialScope + "\n" + util_hex_encoding_1.toHex(hashedRequest)];
}
});
});
};
SignatureV4.prototype.getCanonicalPath = function (_a) {
var path = _a.path;
async presign(originalRequest, options = {}) {
const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, signableHeaders, signingRegion, signingService, } = options;
const credentials = await this.credentialProvider();
const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());
const { longDate, shortDate } = formatDate(signingDate);
if (expiresIn > constants_1.MAX_PRESIGNED_TTL) {
return Promise.reject("Signature version 4 presigned URLs" + " must have an expiration date less than one week in" + " the future");
}
const scope = credentialDerivation_1.createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
const request = moveHeadersToQuery_1.moveHeadersToQuery(prepareRequest_1.prepareRequest(originalRequest));
if (credentials.sessionToken) {
request.query[constants_1.TOKEN_QUERY_PARAM] = credentials.sessionToken;
}
request.query[constants_1.ALGORITHM_QUERY_PARAM] = constants_1.ALGORITHM_IDENTIFIER;
request.query[constants_1.CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;
request.query[constants_1.AMZ_DATE_QUERY_PARAM] = longDate;
request.query[constants_1.EXPIRES_QUERY_PARAM] = expiresIn.toString(10);
const canonicalHeaders = getCanonicalHeaders_1.getCanonicalHeaders(request, unsignableHeaders, signableHeaders);
request.query[constants_1.SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);
request.query[constants_1.SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash_1.getPayloadHash(originalRequest, this.sha256)));
return request;
}
async sign(toSign, options) {
if (typeof toSign === "string") {
return this.signString(toSign, options);
}
else if (toSign.headers && toSign.payload) {
return this.signEvent(toSign, options);
}
else {
return this.signRequest(toSign, options);
}
}
async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {
const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());
const { shortDate, longDate } = formatDate(signingDate);
const scope = credentialDerivation_1.createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
const hashedPayload = await getPayloadHash_1.getPayloadHash({ headers: {}, body: payload }, this.sha256);
const hash = new this.sha256();
hash.update(headers);
const hashedHeaders = util_hex_encoding_1.toHex(await hash.digest());
const stringToSign = [
constants_1.EVENT_ALGORITHM_IDENTIFIER,
longDate,
scope,
priorSignature,
hashedHeaders,
hashedPayload,
].join("\n");
return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });
}
async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {
const credentials = await this.credentialProvider();
const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());
const { shortDate } = formatDate(signingDate);
const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));
hash.update(stringToSign);
return util_hex_encoding_1.toHex(await hash.digest());
}
async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {
const credentials = await this.credentialProvider();
const region = signingRegion !== null && signingRegion !== void 0 ? signingRegion : (await this.regionProvider());
const request = prepareRequest_1.prepareRequest(requestToSign);
const { longDate, shortDate } = formatDate(signingDate);
const scope = credentialDerivation_1.createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);
request.headers[constants_1.AMZ_DATE_HEADER] = longDate;
if (credentials.sessionToken) {
request.headers[constants_1.TOKEN_HEADER] = credentials.sessionToken;
}
const payloadHash = await getPayloadHash_1.getPayloadHash(request, this.sha256);
if (!hasHeader_1.hasHeader(constants_1.SHA256_HEADER, request.headers) && this.applyChecksum) {
request.headers[constants_1.SHA256_HEADER] = payloadHash;
}
const canonicalHeaders = getCanonicalHeaders_1.getCanonicalHeaders(request, unsignableHeaders, signableHeaders);
const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));
request.headers[constants_1.AUTH_HEADER] =
`${constants_1.ALGORITHM_IDENTIFIER} ` +
`Credential=${credentials.accessKeyId}/${scope}, ` +
`SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, ` +
`Signature=${signature}`;
return request;
}
createCanonicalRequest(request, canonicalHeaders, payloadHash) {
const sortedHeaders = Object.keys(canonicalHeaders).sort();
return `${request.method}
${this.getCanonicalPath(request)}
${getCanonicalQuery_1.getCanonicalQuery(request)}
${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join("\n")}
${sortedHeaders.join(";")}
${payloadHash}`;
}
async createStringToSign(longDate, credentialScope, canonicalRequest) {
const hash = new this.sha256();
hash.update(canonicalRequest);
const hashedRequest = await hash.digest();
return `${constants_1.ALGORITHM_IDENTIFIER}
${longDate}
${credentialScope}
${util_hex_encoding_1.toHex(hashedRequest)}`;
}
getCanonicalPath({ path }) {
if (this.uriEscapePath) {
var doubleEncoded = encodeURIComponent(path.replace(/^\//, ""));
return "/" + doubleEncoded.replace(/%2F/g, "/");
const doubleEncoded = encodeURIComponent(path.replace(/^\//, ""));
return `/${doubleEncoded.replace(/%2F/g, "/")}`;
}
return path;
};
SignatureV4.prototype.getSignature = function (longDate, credentialScope, keyPromise, canonicalRequest) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var stringToSign, hash, _a, _b, _c;
return tslib_1.__generator(this, function (_d) {
switch (_d.label) {
case 0: return [4 /*yield*/, this.createStringToSign(longDate, credentialScope, canonicalRequest)];
case 1:
stringToSign = _d.sent();
_b = (_a = this.sha256).bind;
return [4 /*yield*/, keyPromise];
case 2:
hash = new (_b.apply(_a, [void 0, _d.sent()]))();
hash.update(stringToSign);
_c = util_hex_encoding_1.toHex;
return [4 /*yield*/, hash.digest()];
case 3: return [2 /*return*/, _c.apply(void 0, [_d.sent()])];
}
});
});
};
SignatureV4.prototype.getSigningKey = function (credentials, region, shortDate, service) {
}
async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {
const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest);
const hash = new this.sha256(await keyPromise);
hash.update(stringToSign);
return util_hex_encoding_1.toHex(await hash.digest());
}
getSigningKey(credentials, region, shortDate, service) {
return credentialDerivation_1.getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);
};
return SignatureV4;
}());
}
}
exports.SignatureV4 = SignatureV4;
var formatDate = function (now) {
var longDate = utilDate_1.iso8601(now).replace(/[\-:]/g, "");
const formatDate = (now) => {
const longDate = utilDate_1.iso8601(now).replace(/[\-:]/g, "");
return {
longDate: longDate,
longDate,
shortDate: longDate.substr(0, 8),
};
};
var getCanonicalHeaderList = function (headers) { return Object.keys(headers).sort().join(";"); };
var normalizeRegionProvider = function (region) {
const getCanonicalHeaderList = (headers) => Object.keys(headers).sort().join(";");
const normalizeRegionProvider = (region) => {
if (typeof region === "string") {
var promisified_1 = Promise.resolve(region);
return function () { return promisified_1; };
const promisified = Promise.resolve(region);
return () => promisified;
}

@@ -283,6 +161,6 @@ else {

};
var normalizeCredentialsProvider = function (credentials) {
const normalizeCredentialsProvider = (credentials) => {
if (typeof credentials === "object") {
var promisified_2 = Promise.resolve(credentials);
return function () { return promisified_2; };
const promisified = Promise.resolve(credentials);
return () => promisified;
}

@@ -293,2 +171,2 @@ else {

};
//# sourceMappingURL=SignatureV4.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmF0dXJlVjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmF0dXJlVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLGtFQUFtRDtBQUVuRCwyQ0FlcUI7QUFDckIsaUVBQW9FO0FBQ3BFLCtEQUE0RDtBQUM1RCwyREFBd0Q7QUFDeEQscURBQWtEO0FBQ2xELDJDQUF3QztBQUN4Qyw2REFBMEQ7QUFDMUQscURBQWtEO0FBQ2xELHlDQUFxQztBQWtEckMsTUFBYSxXQUFXO0lBUXRCLFlBQVksRUFDVixhQUFhLEVBQ2IsV0FBVyxFQUNYLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNOLGFBQWEsR0FBRyxJQUFJLEdBQ29CO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLDZDQUE2QztRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sYUFBYSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDL0UsSUFBSSxDQUFDLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBNEIsRUFBRSxVQUFzQyxFQUFFO1FBQ3pGLE1BQU0sRUFDSixXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFDeEIsU0FBUyxHQUFHLElBQUksRUFDaEIsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixhQUFhLEVBQ2IsY0FBYyxHQUNmLEdBQUcsT0FBTyxDQUFDO1FBQ1osTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVB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O0tBQzFCO1NBQU07UUFDTCxPQUFPLE1BQU0sQ0FBQztLQUNmO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLFdBQWdELEVBQXlCLEVBQUU7SUFDL0csSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7UUFDbkMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxPQUFPLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztLQUMxQjtTQUFNO1FBQ0wsT0FBTyxXQUFXLENBQUM7S0FDcEI7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDcmVkZW50aWFscyxcbiAgRGF0ZUlucHV0LFxuICBFdmVudFNpZ25lcixcbiAgRXZlbnRTaWduaW5nQXJndW1lbnRzLFxuICBGb3JtYXR0ZWRFdmVudCxcbiAgSGFzaENvbnN0cnVjdG9yLFxuICBIZWFkZXJCYWcsXG4gIEh0dHBSZXF1ZXN0LFxuICBQcm92aWRlcixcbiAgUmVxdWVzdFByZXNpZ25lcixcbiAgUmVxdWVzdFByZXNpZ25pbmdBcmd1bWVudHMsXG4gIFJlcXVlc3RTaWduZXIsXG4gIFJlcXVlc3RTaWduaW5nQXJndW1lbnRzLFxuICBTaWduaW5nQXJndW1lbnRzLFxuICBTdHJpbmdTaWduZXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgdG9IZXggfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1oZXgtZW5jb2RpbmdcIjtcblxuaW1wb3J0IHtcbiAgQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gIEFMR09SSVRITV9RVUVSWV9QQVJBTSxcbiAgQU1aX0RBVEVfSEVBREVSLFxuICBBTVpfREFURV9RVUVSWV9QQVJBTSxcbiAgQVVUSF9IRUFERVIsXG4gIENSRURFTlRJQUxfUVVFUllfUEFSQU0sXG4gIEVWRU5UX0FMR09SSVRITV9JREVOVElGSUVSLFxuICBFWFBJUkVTX1FVRVJZX1BBUkFNLFxuICBNQVhfUFJFU0lHTkVEX1RUTCxcbiAgU0hBMjU2X0hFQURFUixcbiAgU0lHTkFUVVJFX1FVRVJZX1BBUkFNLFxuICBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSxcbiAgVE9LRU5fSEVBREVSLFxuICBUT0tFTl9RVUVSWV9QQVJBTSxcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBjcmVhdGVTY29wZSwgZ2V0U2lnbmluZ0tleSB9IGZyb20gXCIuL2NyZWRlbnRpYWxEZXJpdmF0aW9uXCI7XG5pbXBvcnQgeyBnZXRDYW5vbmljYWxIZWFkZXJzIH0gZnJvbSBcIi4vZ2V0Q2Fub25pY2FsSGVhZGVyc1wiO1xuaW1wb3J0IHsgZ2V0Q2Fub25pY2FsUXVlcnkgfSBmcm9tIFwiLi9nZXRDYW5vbmljYWxRdWVyeVwiO1xuaW1wb3J0IHsgZ2V0UGF5bG9hZEhhc2ggfSBmcm9tIFwiLi9nZXRQYXlsb2FkSGFzaFwiO1xuaW1wb3J0IHsgaGFzSGVhZGVyIH0gZnJvbSBcIi4vaGFzSGVhZGVyXCI7XG5pbXBvcnQgeyBtb3ZlSGVhZGVyc1RvUXVlcnkgfSBmcm9tIFwiLi9tb3ZlSGVhZGVyc1RvUXVlcnlcIjtcbmltcG9ydCB7IHByZXBhcmVSZXF1ZXN0IH0gZnJvbSBcIi4vcHJlcGFyZVJlcXVlc3RcIjtcbmltcG9ydCB7IGlzbzg2MDEgfSBmcm9tIFwiLi91dGlsRGF0ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZVY0SW5pdCB7XG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBzaWduaW5nIG5hbWUuXG4gICAqL1xuICBzZXJ2aWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gbmFtZSBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb21pc2UgdGhhdCB3aWxsIGJlXG4gICAqIHJlc29sdmVkIHdpdGggdGhlIHJlZ2lvbiBuYW1lLlxuICAgKi9cbiAgcmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBUaGUgY3JlZGVudGlhbHMgd2l0aCB3aGljaCB0aGUgcmVxdWVzdCBzaG91bGQgYmUgc2lnbmVkIG9yIGEgZnVuY3Rpb25cbiAgICogdGhhdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgYmUgcmVzb2x2ZWQgd2l0aCBjcmVkZW50aWFscy5cbiAgICovXG4gIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyB8IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcblxuICAvKipcbiAgICogQSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgYSBoYXNoIG9iamVjdCB0aGF0IHdpbGwgY2FsY3VsYXRlIFNIQS0yNTYgSE1BQ1xuICAgKiBjaGVja3N1bXMuXG4gICAqL1xuICBzaGEyNTY/OiBIYXNoQ29uc3RydWN0b3I7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXJpLWVzY2FwZSB0aGUgcmVxdWVzdCBVUkkgcGF0aCBhcyBwYXJ0IG9mIGNvbXB1dGluZyB0aGVcbiAgICogY2Fub25pY2FsIHJlcXVlc3Qgc3RyaW5nLiBUaGlzIGlzIHJlcXVpcmVkIGZvciBldmVyeSBBV1Mgc2VydmljZSwgZXhjZXB0XG4gICAqIEFtYXpvbiBTMywgYXMgb2YgbGF0ZSAyMDE3LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbdHJ1ZV1cbiAgICovXG4gIHVyaUVzY2FwZVBhdGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNhbGN1bGF0ZSBhIGNoZWNrc3VtIG9mIHRoZSByZXF1ZXN0IGJvZHkgYW5kIGluY2x1ZGUgaXQgYXNcbiAgICogZWl0aGVyIGEgcmVxdWVzdCBoZWFkZXIgKHdoZW4gc2lnbmluZykgb3IgYXMgYSBxdWVyeSBzdHJpbmcgcGFyYW1ldGVyXG4gICAqICh3aGVuIHByZXNpZ25pbmcpLiBUaGlzIGlzIHJlcXVpcmVkIGZvciBBV1MgR2xhY2llciBhbmQgQW1hem9uIFMzIGFuZCBvcHRpb25hbCBmb3JcbiAgICogZXZlcnkgb3RoZXIgQVdTIHNlcnZpY2UgYXMgb2YgbGF0ZSAyMDE3LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbdHJ1ZV1cbiAgICovXG4gIGFwcGx5Q2hlY2tzdW0/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hdHVyZVY0Q3J5cHRvSW5pdCB7XG4gIHNoYTI1NjogSGFzaENvbnN0cnVjdG9yO1xufVxuXG5leHBvcnQgY2xhc3MgU2lnbmF0dXJlVjQgaW1wbGVtZW50cyBSZXF1ZXN0UHJlc2lnbmVyLCBSZXF1ZXN0U2lnbmVyLCBTdHJpbmdTaWduZXIsIEV2ZW50U2lnbmVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVnaW9uUHJvdmlkZXI6IFByb3ZpZGVyPHN0cmluZz47XG4gIHByaXZhdGUgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyOiBQcm92aWRlcjxDcmVkZW50aWFscz47XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hhMjU2OiBIYXNoQ29uc3RydWN0b3I7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXJpRXNjYXBlUGF0aDogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHBseUNoZWNrc3VtOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBhcHBseUNoZWNrc3VtLFxuICAgIGNyZWRlbnRpYWxzLFxuICAgIHJlZ2lvbixcbiAgICBzZXJ2aWNlLFxuICAgIHNoYTI1NixcbiAgICB1cmlFc2NhcGVQYXRoID0gdHJ1ZSxcbiAgfTogU2lnbmF0dXJlVjRJbml0ICYgU2lnbmF0dXJlVjRDcnlwdG9Jbml0KSB7XG4gICAgdGhpcy5zZXJ2aWNlID0gc2VydmljZTtcbiAgICB0aGlzLnNoYTI1NiA9IHNoYTI1NjtcbiAgICB0aGlzLnVyaUVzY2FwZVBhdGggPSB1cmlFc2NhcGVQYXRoO1xuICAgIC8vIGRlZmF1bHQgdG8gdHJ1ZSBpZiBhcHBseUNoZWNrc3VtIGlzbid0IHNldFxuICAgIHRoaXMuYXBwbHlDaGVja3N1bSA9IHR5cGVvZiBhcHBseUNoZWNrc3VtID09PSBcImJvb2xlYW5cIiA/IGFwcGx5Q2hlY2tzdW0gOiB0cnVlO1xuICAgIHRoaXMucmVnaW9uUHJvdmlkZXIgPSBub3JtYWxpemVSZWdpb25Qcm92aWRlcihyZWdpb24pO1xuICAgIHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyID0gbm9ybWFsaXplQ3JlZGVudGlhbHNQcm92aWRlcihjcmVkZW50aWFscyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcHJlc2lnbihvcmlnaW5hbFJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCBvcHRpb25zOiBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyA9IHt9KTogUHJvbWlzZTxIdHRwUmVxdWVzdD4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHNpZ25pbmdEYXRlID0gbmV3IERhdGUoKSxcbiAgICAgIGV4cGlyZXNJbiA9IDM2MDAsXG4gICAgICB1bnNpZ25hYmxlSGVhZGVycyxcbiAgICAgIHNpZ25hYmxlSGVhZGVycyxcbiAgICAgIHNpZ25pbmdSZWdpb24sXG4gICAgICBzaWduaW5nU2VydmljZSxcbiAgICB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyKCk7XG4gICAgY29uc3QgcmVnaW9uID0gc2lnbmluZ1JlZ2lvbiA/PyAoYXdhaXQgdGhpcy5yZWdpb25Qcm92aWRlcigpKTtcblxuICAgIGNvbnN0IHsgbG9uZ0RhdGUsIHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgaWYgKGV4cGlyZXNJbiA+IE1BWF9QUkVTSUdORURfVFRMKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXG4gICAgICAgIFwiU2lnbmF0dXJlIHZlcnNpb24gNCBwcmVzaWduZWQgVVJMc1wiICsgXCIgbXVzdCBoYXZlIGFuIGV4cGlyYXRpb24gZGF0ZSBsZXNzIHRoYW4gb25lIHdlZWsgaW5cIiArIFwiIHRoZSBmdXR1cmVcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzY29wZSA9IGNyZWF0ZVNjb3BlKHNob3J0RGF0ZSwgcmVnaW9uLCBzaWduaW5nU2VydmljZSA/PyB0aGlzLnNlcnZpY2UpO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBtb3ZlSGVhZGVyc1RvUXVlcnkocHJlcGFyZVJlcXVlc3Qob3JpZ2luYWxSZXF1ZXN0KSk7XG5cbiAgICBpZiAoY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuKSB7XG4gICAgICByZXF1ZXN0LnF1ZXJ5W1RPS0VOX1FVRVJZX1BBUkFNXSA9IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbjtcbiAgICB9XG4gICAgcmVxdWVzdC5xdWVyeVtBTEdPUklUSE1fUVVFUllfUEFSQU1dID0gQUxHT1JJVEhNX0lERU5USUZJRVI7XG4gICAgcmVxdWVzdC5xdWVyeVtDUkVERU5USUFMX1FVRVJZX1BBUkFNXSA9IGAke2NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkfS8ke3Njb3BlfWA7XG4gICAgcmVxdWVzdC5xdWVyeVtBTVpfREFURV9RVUVSWV9QQVJBTV0gPSBsb25nRGF0ZTtcbiAgICByZXF1ZXN0LnF1ZXJ5W0VYUElSRVNfUVVFUllfUEFSQU1dID0gZXhwaXJlc0luLnRvU3RyaW5nKDEwKTtcblxuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlcnMgPSBnZXRDYW5vbmljYWxIZWFkZXJzKHJlcXVlc3QsIHVuc2lnbmFibGVIZWFkZXJzLCBzaWduYWJsZUhlYWRlcnMpO1xuICAgIHJlcXVlc3QucXVlcnlbU0lHTkVEX0hFQURFUlNfUVVFUllfUEFSQU1dID0gZ2V0Q2Fub25pY2FsSGVhZGVyTGlzdChjYW5vbmljYWxIZWFkZXJzKTtcblxuICAgIHJlcXVlc3QucXVlcnlbU0lHTkFUVVJFX1FVRVJZX1BBUkFNXSA9IGF3YWl0IHRoaXMuZ2V0U2lnbmF0dXJlKFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSxcbiAgICAgIHRoaXMuY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzLCBhd2FpdCBnZXRQYXlsb2FkSGFzaChvcmlnaW5hbFJlcXVlc3QsIHRoaXMuc2hhMjU2KSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2lnbihzdHJpbmdUb1NpZ246IHN0cmluZywgb3B0aW9ucz86IFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPHN0cmluZz47XG4gIHB1YmxpYyBhc3luYyBzaWduKGV2ZW50OiBGb3JtYXR0ZWRFdmVudCwgb3B0aW9uczogRXZlbnRTaWduaW5nQXJndW1lbnRzKTogUHJvbWlzZTxzdHJpbmc+O1xuICBwdWJsaWMgYXN5bmMgc2lnbihyZXF1ZXN0VG9TaWduOiBIdHRwUmVxdWVzdCwgb3B0aW9ucz86IFJlcXVlc3RTaWduaW5nQXJndW1lbnRzKTogUHJvbWlzZTxIdHRwUmVxdWVzdD47XG4gIHB1YmxpYyBhc3luYyBzaWduKHRvU2lnbjogYW55LCBvcHRpb25zOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0eXBlb2YgdG9TaWduID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaWduU3RyaW5nKHRvU2lnbiwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIGlmICh0b1NpZ24uaGVhZGVycyAmJiB0b1NpZ24ucGF5bG9hZCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2lnbkV2ZW50KHRvU2lnbiwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25SZXF1ZXN0KHRvU2lnbiwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaWduRXZlbnQoXG4gICAgeyBoZWFkZXJzLCBwYXlsb2FkIH06IEZvcm1hdHRlZEV2ZW50LFxuICAgIHsgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLCBwcmlvclNpZ25hdHVyZSwgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfTogRXZlbnRTaWduaW5nQXJndW1lbnRzXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgcmVnaW9uID0gc2lnbmluZ1JlZ2lvbiA/PyAoYXdhaXQgdGhpcy5yZWdpb25Qcm92aWRlcigpKTtcbiAgICBjb25zdCB7IHNob3J0RGF0ZSwgbG9uZ0RhdGUgfSA9IGZvcm1hdERhdGUoc2lnbmluZ0RhdGUpO1xuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG4gICAgY29uc3QgaGFzaGVkUGF5bG9hZCA9IGF3YWl0IGdldFBheWxvYWRIYXNoKHsgaGVhZGVyczoge30sIGJvZHk6IHBheWxvYWQgfSBhcyBhbnksIHRoaXMuc2hhMjU2KTtcbiAgICBjb25zdCBoYXNoID0gbmV3IHRoaXMuc2hhMjU2KCk7XG4gICAgaGFzaC51cGRhdGUoaGVhZGVycyk7XG4gICAgY29uc3QgaGFzaGVkSGVhZGVycyA9IHRvSGV4KGF3YWl0IGhhc2guZGlnZXN0KCkpO1xuICAgIGNvbnN0IHN0cmluZ1RvU2lnbiA9IFtcbiAgICAgIEVWRU5UX0FMR09SSVRITV9JREVOVElGSUVSLFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHByaW9yU2lnbmF0dXJlLFxuICAgICAgaGFzaGVkSGVhZGVycyxcbiAgICAgIGhhc2hlZFBheWxvYWQsXG4gICAgXS5qb2luKFwiXFxuXCIpO1xuICAgIHJldHVybiB0aGlzLnNpZ25TdHJpbmcoc3RyaW5nVG9TaWduLCB7IHNpZ25pbmdEYXRlLCBzaWduaW5nUmVnaW9uOiByZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaWduU3RyaW5nKFxuICAgIHN0cmluZ1RvU2lnbjogc3RyaW5nLFxuICAgIHsgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9OiBTaWduaW5nQXJndW1lbnRzID0ge31cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyKCk7XG4gICAgY29uc3QgcmVnaW9uID0gc2lnbmluZ1JlZ2lvbiA/PyAoYXdhaXQgdGhpcy5yZWdpb25Qcm92aWRlcigpKTtcbiAgICBjb25zdCB7IHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG5cbiAgICBjb25zdCBoYXNoID0gbmV3IHRoaXMuc2hhMjU2KGF3YWl0IHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSk7XG4gICAgaGFzaC51cGRhdGUoc3RyaW5nVG9TaWduKTtcbiAgICByZXR1cm4gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25SZXF1ZXN0KFxuICAgIHJlcXVlc3RUb1NpZ246IEh0dHBSZXF1ZXN0LFxuICAgIHtcbiAgICAgIHNpZ25pbmdEYXRlID0gbmV3IERhdGUoKSxcbiAgICAgIHNpZ25hYmxlSGVhZGVycyxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlLFxuICAgIH06IFJlcXVlc3RTaWduaW5nQXJndW1lbnRzID0ge31cbiAgKTogUHJvbWlzZTxIdHRwUmVxdWVzdD4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBwcmVwYXJlUmVxdWVzdChyZXF1ZXN0VG9TaWduKTtcbiAgICBjb25zdCB7IGxvbmdEYXRlLCBzaG9ydERhdGUgfSA9IGZvcm1hdERhdGUoc2lnbmluZ0RhdGUpO1xuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG5cbiAgICByZXF1ZXN0LmhlYWRlcnNbQU1aX0RBVEVfSEVBREVSXSA9IGxvbmdEYXRlO1xuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVyc1tUT0tFTl9IRUFERVJdID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cblxuICAgIGNvbnN0IHBheWxvYWRIYXNoID0gYXdhaXQgZ2V0UGF5bG9hZEhhc2gocmVxdWVzdCwgdGhpcy5zaGEyNTYpO1xuICAgIGlmICghaGFzSGVhZGVyKFNIQTI1Nl9IRUFERVIsIHJlcXVlc3QuaGVhZGVycykgJiYgdGhpcy5hcHBseUNoZWNrc3VtKSB7XG4gICAgICByZXF1ZXN0LmhlYWRlcnNbU0hBMjU2X0hFQURFUl0gPSBwYXlsb2FkSGFzaDtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5vbmljYWxIZWFkZXJzID0gZ2V0Q2Fub25pY2FsSGVhZGVycyhyZXF1ZXN0LCB1bnNpZ25hYmxlSGVhZGVycywgc2lnbmFibGVIZWFkZXJzKTtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBhd2FpdCB0aGlzLmdldFNpZ25hdHVyZShcbiAgICAgIGxvbmdEYXRlLFxuICAgICAgc2NvcGUsXG4gICAgICB0aGlzLmdldFNpZ25pbmdLZXkoY3JlZGVudGlhbHMsIHJlZ2lvbiwgc2hvcnREYXRlLCBzaWduaW5nU2VydmljZSksXG4gICAgICB0aGlzLmNyZWF0ZUNhbm9uaWNhbFJlcXVlc3QocmVxdWVzdCwgY2Fub25pY2FsSGVhZGVycywgcGF5bG9hZEhhc2gpXG4gICAgKTtcblxuICAgIHJlcXVlc3QuaGVhZGVyc1tBVVRIX0hFQURFUl0gPVxuICAgICAgYCR7QUxHT1JJVEhNX0lERU5USUZJRVJ9IGAgK1xuICAgICAgYENyZWRlbnRpYWw9JHtjcmVkZW50aWFscy5hY2Nlc3NLZXlJZH0vJHtzY29wZX0sIGAgK1xuICAgICAgYFNpZ25lZEhlYWRlcnM9JHtnZXRDYW5vbmljYWxIZWFkZXJMaXN0KGNhbm9uaWNhbEhlYWRlcnMpfSwgYCArXG4gICAgICBgU2lnbmF0dXJlPSR7c2lnbmF0dXJlfWA7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdCwgY2Fub25pY2FsSGVhZGVyczogSGVhZGVyQmFnLCBwYXlsb2FkSGFzaDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzb3J0ZWRIZWFkZXJzID0gT2JqZWN0LmtleXMoY2Fub25pY2FsSGVhZGVycykuc29ydCgpO1xuICAgIHJldHVybiBgJHtyZXF1ZXN0Lm1ldGhvZH1cbiR7dGhpcy5nZXRDYW5vbmljYWxQYXRoKHJlcXVlc3QpfVxuJHtnZXRDYW5vbmljYWxRdWVyeShyZXF1ZXN0KX1cbiR7c29ydGVkSGVhZGVycy5tYXAoKG5hbWUpID0+IGAke25hbWV9OiR7Y2Fub25pY2FsSGVhZGVyc1tuYW1lXX1gKS5qb2luKFwiXFxuXCIpfVxuXG4ke3NvcnRlZEhlYWRlcnMuam9pbihcIjtcIil9XG4ke3BheWxvYWRIYXNofWA7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZVN0cmluZ1RvU2lnbihcbiAgICBsb25nRGF0ZTogc3RyaW5nLFxuICAgIGNyZWRlbnRpYWxTY29wZTogc3RyaW5nLFxuICAgIGNhbm9uaWNhbFJlcXVlc3Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoKTtcbiAgICBoYXNoLnVwZGF0ZShjYW5vbmljYWxSZXF1ZXN0KTtcbiAgICBjb25zdCBoYXNoZWRSZXF1ZXN0ID0gYXdhaXQgaGFzaC5kaWdlc3QoKTtcblxuICAgIHJldHVybiBgJHtBTEdPUklUSE1fSURFTlRJRklFUn1cbiR7bG9uZ0RhdGV9XG4ke2NyZWRlbnRpYWxTY29wZX1cbiR7dG9IZXgoaGFzaGVkUmVxdWVzdCl9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2Fub25pY2FsUGF0aCh7IHBhdGggfTogSHR0cFJlcXVlc3QpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnVyaUVzY2FwZVBhdGgpIHtcbiAgICAgIGNvbnN0IGRvdWJsZUVuY29kZWQgPSBlbmNvZGVVUklDb21wb25lbnQocGF0aC5yZXBsYWNlKC9eXFwvLywgXCJcIikpO1xuICAgICAgcmV0dXJuIGAvJHtkb3VibGVFbmNvZGVkLnJlcGxhY2UoLyUyRi9nLCBcIi9cIil9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGF0aDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0U2lnbmF0dXJlKFxuICAgIGxvbmdEYXRlOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbFNjb3BlOiBzdHJpbmcsXG4gICAga2V5UHJvbWlzZTogUHJvbWlzZTxVaW50OEFycmF5PixcbiAgICBjYW5vbmljYWxSZXF1ZXN0OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzdHJpbmdUb1NpZ24gPSBhd2FpdCB0aGlzLmNyZWF0ZVN0cmluZ1RvU2lnbihsb25nRGF0ZSwgY3JlZGVudGlhbFNjb3BlLCBjYW5vbmljYWxSZXF1ZXN0KTtcblxuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoYXdhaXQga2V5UHJvbWlzZSk7XG4gICAgaGFzaC51cGRhdGUoc3RyaW5nVG9TaWduKTtcbiAgICByZXR1cm4gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFNpZ25pbmdLZXkoXG4gICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzLFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICAgIHNob3J0RGF0ZTogc3RyaW5nLFxuICAgIHNlcnZpY2U/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIGdldFNpZ25pbmdLZXkodGhpcy5zaGEyNTYsIGNyZWRlbnRpYWxzLCBzaG9ydERhdGUsIHJlZ2lvbiwgc2VydmljZSB8fCB0aGlzLnNlcnZpY2UpO1xuICB9XG59XG5cbmNvbnN0IGZvcm1hdERhdGUgPSAobm93OiBEYXRlSW5wdXQpOiB7IGxvbmdEYXRlOiBzdHJpbmc7IHNob3J0RGF0ZTogc3RyaW5nIH0gPT4ge1xuICBjb25zdCBsb25nRGF0ZSA9IGlzbzg2MDEobm93KS5yZXBsYWNlKC9bXFwtOl0vZywgXCJcIik7XG4gIHJldHVybiB7XG4gICAgbG9uZ0RhdGUsXG4gICAgc2hvcnREYXRlOiBsb25nRGF0ZS5zdWJzdHIoMCwgOCksXG4gIH07XG59O1xuXG5jb25zdCBnZXRDYW5vbmljYWxIZWFkZXJMaXN0ID0gKGhlYWRlcnM6IG9iamVjdCk6IHN0cmluZyA9PiBPYmplY3Qua2V5cyhoZWFkZXJzKS5zb3J0KCkuam9pbihcIjtcIik7XG5cbmNvbnN0IG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyID0gKHJlZ2lvbjogc3RyaW5nIHwgUHJvdmlkZXI8c3RyaW5nPik6IFByb3ZpZGVyPHN0cmluZz4gPT4ge1xuICBpZiAodHlwZW9mIHJlZ2lvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IHByb21pc2lmaWVkID0gUHJvbWlzZS5yZXNvbHZlKHJlZ2lvbik7XG4gICAgcmV0dXJuICgpID0+IHByb21pc2lmaWVkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiByZWdpb247XG4gIH1cbn07XG5cbmNvbnN0IG5vcm1hbGl6ZUNyZWRlbnRpYWxzUHJvdmlkZXIgPSAoY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzIHwgUHJvdmlkZXI8Q3JlZGVudGlhbHM+KTogUHJvdmlkZXI8Q3JlZGVudGlhbHM+ID0+IHtcbiAgaWYgKHR5cGVvZiBjcmVkZW50aWFscyA9PT0gXCJvYmplY3RcIikge1xuICAgIGNvbnN0IHByb21pc2lmaWVkID0gUHJvbWlzZS5yZXNvbHZlKGNyZWRlbnRpYWxzKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNyZWRlbnRpYWxzO1xuICB9XG59O1xuIl19

@@ -403,2 +403,2 @@ "use strict";

];
//# sourceMappingURL=suite.fixture.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VpdGUuZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdWl0ZS5maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFhLFFBQUEsTUFBTSxHQUFHLFdBQVcsQ0FBQztBQUNyQixRQUFBLE9BQU8sR0FBRyxTQUFTLENBQUM7QUFDcEIsUUFBQSxXQUFXLEdBQUc7SUFDekIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsZUFBZSxFQUFFLDBDQUEwQztDQUM1RCxDQUFDO0FBRVcsUUFBQSxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUUvQyxRQUFBLFFBQVEsR0FBb0I7SUFDdkM7UUFDRSxJQUFJLEVBQUUsMEJBQTBCO1FBQ2hDLE9BQU8sRUFBRTtZQUNQLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixZQUFZLEVBQUUsc0JBQXNCO2dCQUNwQyxZQUFZLEVBQUUsa0JBQWtCO2FBQ2pDO1lBQ0QsSUFBSSxFQUFFLEdBQUc7U0FDVjtRQUNELGFBQWEsRUFDWCx1TUFBdU07S0FDMU07SUFDRDtRQUNFLElBQUksRUFBRSw0QkFBNEI7UUFDbEMsT0FBTyxFQUFFO1lBQ1AsUUFBUSxFQUFFLFFBQVE7WUFDbEIsTUFBTSxFQUFFLEtBQUs7WUFDYixRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLFlBQVksRUFBRSxzQkFBc0I7Z0JBQ3BDLFlBQVksRUFBRSxrQkFBa0I7YUFDakM7WUFDRCxJQUFJLEVBQUUsR0FBRztTQUNWO1FBQ0QsYUFBYSxFQUNYLHVNQUF1TTtLQUMxTTtJQUNEO1FBQ0UsSUFBSSxFQUFFLHdC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QXVCO1lBQ2pDLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxtQ0FBbUM7Z0JBQ25ELElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLFlBQVksRUFBRSxrQkFBa0I7YUFDakM7WUFDRCxJQUFJLEVBQUUsZUFBZTtZQUNyQixJQUFJLEVBQUUsR0FBRztTQUNWO1FBQ0QsYUFBYSxFQUNYLHlNQUF5TTtLQUM1TTtJQUNEO1FBQ0UsSUFBSSxFQUFFLHVDQUF1QztRQUM3QyxPQUFPLEVBQUU7WUFDUCxRQUFRLEVBQUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsS0FBSyxFQUFFLEVBQUU7WUFDVCxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLGlEQUFpRDtnQkFDakUsSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsWUFBWSxFQUFFLGtCQUFrQjthQUNqQztZQUNELElBQUksRUFBRSxlQUFlO1lBQ3JCLElBQUksRUFBRSxHQUFHO1NBQ1Y7UUFDRCxhQUFhLEVBQ1gseU1BQXlNO0tBQzVNO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdENhc2Uge1xuICBuYW1lOiBzdHJpbmc7XG4gIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0O1xuICBhdXRob3JpemF0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCByZWdpb24gPSBcInVzLWVhc3QtMVwiO1xuZXhwb3J0IGNvbnN0IHNlcnZpY2UgPSBcInNlcnZpY2VcIjtcbmV4cG9ydCBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgYWNjZXNzS2V5SWQ6IFwiQUtJREVYQU1QTEVcIixcbiAgc2VjcmV0QWNjZXNzS2V5OiBcIndKYWxyWFV0bkZFTUkvSzdNREVORytiUHhSZmlDWUVYQU1QTEVLRVlcIixcbn07XG5cbmV4cG9ydCBjb25zdCBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKFwiMjAxNS0wOC0zMFQxMjozNjowMFpcIik7XG5cbmV4cG9ydCBjb25zdCByZXF1ZXN0czogQXJyYXk8VGVzdENhc2U+ID0gW1xuICB7XG4gICAgbmFtZTogXCJnZXQtaGVhZGVyLWtleS1kdXBsaWNhdGVcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIm15LWhlYWRlcjFcIjogXCJ2YWx1ZTIsdmFsdWUyLHZhbHVlMVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIvXCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7bXktaGVhZGVyMTt4LWFtei1kYXRlLCBTaWduYXR1cmU9YzlkNWVhOWYzZjcyODUzYWVhODU1YjQ3ZWE4NzM4MzI4OTBkYmRkMTgzYjQ0NjhmODU4MjU5NTMxYTUxMzhlYVwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJnZXQtaGVhZGVyLXZhbHVlLW11bHRpbGluZVwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge30sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwibXktaGVhZGVyMVwiOiBcInZhbHVlMSx2YWx1ZTIsdmFsdWUzXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDtteS1oZWFkZXIxO3gtYW16LWRhdGUsIFNpZ25hdHVyZT1iYTE3YjM4M2E1MzE5MDE1NGViNWZhNjZhMWI4MzZjYzI5N2NjMGEzZDcwYTVkMDA3MDU5ODA1NzNkOGZmNzkwXCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImdldC1oZWFkZXItdmFsdWUtb3JkZXJcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIm15LWhlYWRlcjFcIjogXCJ2YWx1ZTQsdmFsdWUxLHZhbHVlMyx2YWx1ZTJcIixcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O215LWhlYWRlcjE7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPTA4YzdlNWE5YWNmY2ZlYjNhYjZiMjE4NWU3NWNlOGIxZGViNWU2MzRlYzQ3NjAxYTUwNjQzZjgzMGM3NTVjMDFcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwiZ2V0LWhlYWRlci12YWx1ZS10cmltXCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7fSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgaG9zdDogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICAgXCJteS1oZWFkZXIxXCI6IFwidmFsdWUxXCIsXG4gICAgICAgIFwibXktaGVhZGVyMlwiOiAnXCJhICAgYiAgIGNcIicsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDtteS1oZWFkZXIxO215LWhlYWRlcjI7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPWFjYzNlZDNhZmI2MGJiMjkwZmM4ZDJkZDAwOThiOTkxMWZjYWEwNTQxMmIzNjcwNTVkZWUzNTk3NTdhOWM3MzZcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwiZ2V0LXVucmVzZXJ2ZWRcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIvLS5ffjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6XCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPTA3ZWY3NDk0Yzc2ZmE0ODUwODgzZTJiMDA2NjAxZjk0MGY4YTM0ZDQwNGQwY2ZhOTc3ZjUyYTY1YmJmNWYyNGZcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwiZ2V0LXV0ZjhcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIv4Yi0XCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPTgzMTgwMThlMGIwZjIyM2FhMmJiZjk4NzA1YjYyYmI3ODdkYzljMGU2NzhmMjU1YTg5MWZkMDMxNDFiZTVkODVcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwiZ2V0LXZhbmlsbGFcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIvXCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPTVmYTAwZmEzMTU1M2I3M2ViZjE5NDI2NzZlODYyOTFlODM3MmZmMmEyMjYwOTU2ZDliOGFhZTFkNzYzZmJmMzFcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwiZ2V0LXZhbmlsbGEtZW1wdHktcXVlcnkta2V5XCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIFBhcmFtMTogXCJ2YWx1ZTFcIixcbiAgICAgIH0sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9YTY3ZDU4MmZhNjFjYzUwNGM0YmFlNzFmMzM2Zjk4Yjk3ZjFlYTNjN2E2YmZlMWI2ZTQ1YWVjNzIwMTFiOWFlYlwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJnZXQtdmFuaWxsYS1xdWVyeVwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge30sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9NWZhMDBmYTMxNTUzYjczZWJmMTk0MjY3NmU4NjI5MWU4MzcyZmYyYTIyNjA5NTZkOWI4YWFlMWQ3NjNmYmYzMVwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJnZXQtdmFuaWxsYS1xdWVyeS1vcmRlci1rZXktY2FzZVwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge1xuICAgICAgICBQYXJhbTI6IFwidmFsdWUyXCIsXG4gICAgICAgIFBhcmFtMTogXCJ2YWx1ZTFcIixcbiAgICAgIH0sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9Yjk3ZDkxOGNmYTkwNGE1YmVmZjYxYzk4MmExYjZmNDU4Yjc5OTIyMTY0NmVmZDk5ZDMyMTllYzk0Y2RmMjUwMFwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJnZXQtdmFuaWxsYS1xdWVyeS11bnJlc2VydmVkXCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIFwiLS5ffjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6XCI6XG4gICAgICAgICAgXCItLl9+MDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIixcbiAgICAgIH0sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9OWMzZTU0YmZjZGYwYjE5NzcxYTdmNTIzZWU1NjY5Y2RmNTliYzdjYzA4ODQwMjcxNjdjMjFiYjE0M2E0MDE5N1wiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJnZXQtdmFuaWxsYS11dGY4LXF1ZXJ5XCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIOGItDogXCJiYXJcIixcbiAgICAgIH0sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9MmNkZWM4ZWVkMDk4NjQ5ZmYzYTExOWM5NDg1M2IxM2M2NDNiY2YwOGY4YjBhMWQ5MWUxMmM5MDI3ODE4ZGQwNFwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJwb3N0LWhlYWRlci1rZXktY2FzZVwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIvXCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPTVkYTdjMWEyYWNkNTdjZWU3NTA1ZmM2Njc2ZTRlNTQ0NjIxYzMwODYyOTY2ZTM3ZGRkYjY4ZTkyZWZiZTVkNmJcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwicG9zdC1oZWFkZXIta2V5LXNvcnRcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7fSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgaG9zdDogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICAgXCJteS1oZWFkZXIxXCI6IFwidmFsdWUxXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDtteS1oZWFkZXIxO3gtYW16LWRhdGUsIFNpZ25hdHVyZT1jNTQxMDA1OWIwNGMxZWUwMDUzMDNhZWQ0MzBmNmU2NjQ1ZjYxZjRkYzllMTQ2MWVjOGY4OTE2ZmRmMTg4NTJjXCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcInBvc3QtaGVhZGVyLXZhbHVlLWNhc2VcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7fSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgaG9zdDogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICAgXCJteS1oZWFkZXIxXCI6IFwiVkFMVUUxXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDtteS1oZWFkZXIxO3gtYW16LWRhdGUsIFNpZ25hdHVyZT1jZGJjOTgwMmUyOWQyOTQyZTVlMTBiNWJjY2ZkZDY3YzVmMjJjN2M0ZThhZTY3YjUzNjI5ZWZhNThiOTc0YjdkXCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcInBvc3Qtc3RzLWhlYWRlci1hZnRlclwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIvXCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPTVkYTdjMWEyYWNkNTdjZWU3NTA1ZmM2Njc2ZTRlNTQ0NjIxYzMwODYyOTY2ZTM3ZGRkYjY4ZTkyZWZiZTVkNmJcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwicG9zdC1zdHMtaGVhZGVyLWJlZm9yZVwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICAgIFwieC1hbXotc2VjdXJpdHktdG9rZW5cIjpcbiAgICAgICAgICBcIkFRb0RZWGR6RVBULy8vLy8vLy8vL3dFWEFNUExFdGM3NjRiTnJDOVNBUEJTTTIyd0RPazR4NEhJWjhqNEZaVHdkUVdMV3NLV0hHQnVGcXdBZU1pY1JYbXhmcFNQZkllb0lZUnFUZmxmS0Q4WVV1d3RoQXg3bVNFSS9xa1BwS1BpL2tNY0dkUXJtR2RlZWhNNElDMU50Qm1VcHAyd1VFOHBoVVphbXBLc2J1ckVEeTBLUGt5UURZd1Q3V1owd3E1VlNYRHZwNzVZVTlIRnZsUmQ4VHg2cTZmRThZUWNITlZYQWtpWTlxNmQreG8wckt3VDM4eFZxcjdaRDB1MGlQUGtVTDY0bElaYnFCQXorc2NxS21sem04RkRyeXBOQzlZamM4ZlBPTG45Rlg5S1NZdktUcjRydngzaVNJbFRKYWJJUXdqMklDQ1Ivb0x4QkE9PVwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O3gtYW16LWRhdGU7eC1hbXotc2VjdXJpdHktdG9rZW4sIFNpZ25hdHVyZT04NWQ5NjgyODExNWI1ZGMwY2ZjM2JkMTZhZDllMjEwZGQ3NzJiYmViYmEwNDE4MzZjNjQ1MzNhODJiZTA1ZWFkXCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcInBvc3QtdmFuaWxsYVwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIvXCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPTVkYTdjMWEyYWNkNTdjZWU3NTA1ZmM2Njc2ZTRlNTQ0NjIxYzMwODYyOTY2ZTM3ZGRkYjY4ZTkyZWZiZTVkNmJcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwicG9zdC12YW5pbGxhLWVtcHR5LXF1ZXJ5LXZhbHVlXCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge1xuICAgICAgICBQYXJhbTE6IFwidmFsdWUxXCIsXG4gICAgICB9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIvXCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPTI4MDM4NDU1ZDZkZTE0ZWFmYzFmOTIyMmNmNWFhNmYxYTk2MTk3ZDdkZWI4MjYzMjcxZDQyMGQxMzhhZjdmMTFcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwicG9zdC12YW5pbGxhLXF1ZXJ5XCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge1xuICAgICAgICBQYXJhbTE6IFwidmFsdWUxXCIsXG4gICAgICB9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIvXCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPTI4MDM4NDU1ZDZkZTE0ZWFmYzFmOTIyMmNmNWFhNmYxYTk2MTk3ZDdkZWI4MjYzMjcxZDQyMGQxMzhhZjdmMTFcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwicG9zdC12YW5pbGxhLXF1ZXJ5LW5vbnVucmVzZXJ2ZWRcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIFwiQCMkJV5cIjogXCJcIixcbiAgICAgICAgXCIrXCI6ICcvLD8+PGBcIjs6XFxcXHxdW3t9JyxcbiAgICAgIH0sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9NjZjODI2NTdjODZlMjZmYjI1MjM4ZDBlNjlmMDExZWRjNGM2ZGY1YWU3MTExOWQ3Y2I5OGVkOWI4NzM5M2MxZVwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJwb3N0LXZhbmlsbGEtcXVlcnktc3BhY2VcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIHA6IFwiXCIsXG4gICAgICB9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIvXCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPWU3MTY4OGFkZGI1OGEyNjQxODYxNDA4NWZiNzMwYmEzZmFhNjIzYjQ2MWMxN2Y0OGYyZmJkYjkzNjFiOTRhOWJcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwicG9zdC14LXd3dy1mb3JtLXVybGVuY29kZWRcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7fSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIixcbiAgICAgICAgaG9zdDogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IFwiUGFyYW0xPXZhbHVlMVwiLFxuICAgICAgcGF0aDogXCIvXCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWNvbnRlbnQtdHlwZTtob3N0O3gtYW16LWRhdGUsIFNpZ25hdHVyZT1mZjExODk3OTMyYWQzZjRlOGIxODEzNWQ3MjIwNTFlNWFjNDVmYzM4NDIxYjFkYTdiOWQxOTZhMGZlMDk0NzNhXCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcInBvc3QteC13d3ctZm9ybS11cmxlbmNvZGVkLXBhcmFtZXRlcnNcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7fSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9dXRmOFwiLFxuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgYm9keTogXCJQYXJhbTE9dmFsdWUxXCIsXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9Y29udGVudC10eXBlO2hvc3Q7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPTFhNzJlYzhmNjRiZDkxNGIwZTQyZTQyNjA3YzdmYmNlN2ZiMmM3NDY1ZjYzZTMwOTJiM2IwZDM5ZmE3N2E2ZmVcIixcbiAgfSxcbl07XG4iXX0=

@@ -23,2 +23,2 @@ "use strict";

exports.toDate = toDate;
//# sourceMappingURL=utilDate.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbERhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsT0FBTyxDQUFDLElBQTRCO0lBQ2xELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztTQUNoQixXQUFXLEVBQUU7U0FDYixPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFKRCwwQkFJQztBQUVELFNBQWdCLE1BQU0sQ0FBQyxJQUE0QjtJQUNqRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQWJELHdCQWFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzbzg2MDEodGltZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IHN0cmluZyB7XG4gIHJldHVybiB0b0RhdGUodGltZSlcbiAgICAudG9JU09TdHJpbmcoKVxuICAgIC5yZXBsYWNlKC9cXC5cXGR7M31aJC8sIFwiWlwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvRGF0ZSh0aW1lOiBudW1iZXIgfCBzdHJpbmcgfCBEYXRlKTogRGF0ZSB7XG4gIGlmICh0eXBlb2YgdGltZSA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lICogMTAwMCk7XG4gIH1cblxuICBpZiAodHlwZW9mIHRpbWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICBpZiAoTnVtYmVyKHRpbWUpKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoTnVtYmVyKHRpbWUpICogMTAwMCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lKTtcbiAgfVxuXG4gIHJldHVybiB0aW1lO1xufVxuIl19

@@ -16,2 +16,2 @@ import { __assign, __read, __rest, __spread } from "tslib";

}
//# sourceMappingURL=cloneRequest.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmVSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb25lUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEVBQXdDO0lBQXRDLElBQUEsT0FBTyxhQUFBLEVBQUUsS0FBSyxXQUFBLEVBQUssSUFBSSxjQUF6QixvQkFBMkIsQ0FBRjtJQUNwRCw2QkFDSyxJQUFJLEtBQ1AsT0FBTyxlQUFPLE9BQU8sR0FDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQzVDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQXdCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUMzRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQ3REO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVSZXF1ZXN0KHsgaGVhZGVycywgcXVlcnksIC4uLnJlc3QgfTogSHR0cFJlcXVlc3QpOiBIdHRwUmVxdWVzdCB7XG4gIHJldHVybiB7XG4gICAgLi4ucmVzdCxcbiAgICBoZWFkZXJzOiB7IC4uLmhlYWRlcnMgfSxcbiAgICBxdWVyeTogcXVlcnkgPyBjbG9uZVF1ZXJ5KHF1ZXJ5KSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xvbmVRdWVyeShxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcpOiBRdWVyeVBhcmFtZXRlckJhZyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeSkucmVkdWNlKChjYXJyeTogUXVlcnlQYXJhbWV0ZXJCYWcsIHBhcmFtTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBxdWVyeVtwYXJhbU5hbWVdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIFtwYXJhbU5hbWVdOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IFsuLi5wYXJhbV0gOiBwYXJhbSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=

@@ -42,2 +42,2 @@ export var ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm";

export var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;
//# sourceMappingURL=constants.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQztBQUN2RCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQztBQUN6RCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFDakQsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDaEUsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBRXhELE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDM0MsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUQsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUVsQyxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRztJQUN2QyxhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsSUFBSTtJQUNyQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsWUFBWSxFQUFFLElBQUk7SUFDbEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsWUFBWSxFQUFFLElBQUk7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUUxQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUUxRCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztBQUVyRSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfUVVFUllfUEFSQU0gPSBcIlgtQW16LVNpZ25hdHVyZVwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1FVRVJZX1BBUkFNID0gXCJYLUFtei1TZWN1cml0eS1Ub2tlblwiO1xuXG5leHBvcnQgY29uc3QgQVVUSF9IRUFERVIgPSBcImF1dGhvcml6YXRpb25cIjtcbmV4cG9ydCBjb25zdCBBTVpfREFURV9IRUFERVIgPSBBTVpfREFURV9RVUVSWV9QQVJBTS50b0xvd2VyQ2FzZSgpO1xuZXhwb3J0IGNvbnN0IERBVEVfSEVBREVSID0gXCJkYXRlXCI7XG5leHBvcnQgY29uc3QgR0VORVJBVEVEX0hFQURFUlMgPSBbQVVUSF9IRUFERVIsIEFNWl9EQVRFX0hFQURFUiwgREFURV9IRUFERVJdO1xuZXhwb3J0IGNvbnN0IFNJR05BVFVSRV9IRUFERVIgPSBTSUdOQVRVUkVfUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmV4cG9ydCBjb25zdCBTSEEyNTZfSEVBREVSID0gXCJ4LWFtei1jb250ZW50LXNoYTI1NlwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX0hFQURFUiA9IFRPS0VOX1FVRVJZX1BBUkFNLnRvTG93ZXJDYXNlKCk7XG5leHBvcnQgY29uc3QgSE9TVF9IRUFERVIgPSBcImhvc3RcIjtcblxuZXhwb3J0IGNvbnN0IEFMV0FZU19VTlNJR05BQkxFX0hFQURFUlMgPSB7XG4gIGF1dGhvcml6YXRpb246IHRydWUsXG4gIFwiY2FjaGUtY29udHJvbFwiOiB0cnVlLFxuICBjb25uZWN0aW9uOiB0cnVlLFxuICBleHBlY3Q6IHRydWUsXG4gIGZyb206IHRydWUsXG4gIFwia2VlcC1hbGl2ZVwiOiB0cnVlLFxuICBcIm1heC1mb3J3YXJkc1wiOiB0cnVlLFxuICBwcmFnbWE6IHRydWUsXG4gIHJlZmVyZXI6IHRydWUsXG4gIHRlOiB0cnVlLFxuICB0cmFpbGVyOiB0cnVlLFxuICBcInRyYW5zZmVyLWVuY29kaW5nXCI6IHRydWUsXG4gIHVwZ3JhZGU6IHRydWUsXG4gIFwidXNlci1hZ2VudFwiOiB0cnVlLFxuICBcIngtYW16bi10cmFjZS1pZFwiOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFBST1hZX0hFQURFUl9QQVRURVJOID0gL15wcm94eS0vO1xuXG5leHBvcnQgY29uc3QgU0VDX0hFQURFUl9QQVRURVJOID0gL15zZWMtLztcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkFCTEVfUEFUVEVSTlMgPSBbL15wcm94eS0vaSwgL15zZWMtL2ldO1xuXG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX0lERU5USUZJRVIgPSBcIkFXUzQtSE1BQy1TSEEyNTZcIjtcblxuZXhwb3J0IGNvbnN0IEVWRU5UX0FMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2LVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1BBWUxPQUQgPSBcIlVOU0lHTkVELVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IE1BWF9DQUNIRV9TSVpFID0gNTA7XG5leHBvcnQgY29uc3QgS0VZX1RZUEVfSURFTlRJRklFUiA9IFwiYXdzNF9yZXF1ZXN0XCI7XG5cbmV4cG9ydCBjb25zdCBNQVhfUFJFU0lHTkVEX1RUTCA9IDYwICogNjAgKiAyNCAqIDc7XG4iXX0=

@@ -76,2 +76,2 @@ import { __values } from "tslib";

}
//# sourceMappingURL=credentialDerivation.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbERlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlZGVudGlhbERlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEUsSUFBTSxlQUFlLEdBQTJDLEVBQUUsQ0FBQztBQUNuRSxJQUFNLFVBQVUsR0FBa0IsRUFBRSxDQUFDO0FBRXJDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsU0FBaUIsRUFBRSxNQUFjLEVBQUUsT0FBZTtJQUM1RSxPQUFVLFNBQVMsU0FBSSxNQUFNLFNBQUksT0FBTyxTQUFJLG1CQUFxQixDQUFDO0FBQ3BFLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLGlCQUFrQyxFQUNsQyxXQUF3QixFQUN4QixTQUFpQixFQUNqQixNQUFjLEVBQ2QsT0FBZTtJQUVmLElBQU0sUUFBUSxHQUFNLFNBQVMsU0FBSSxNQUFNLFNBQUksT0FBTyxNQUFHLElBQU0sV0FBVyxDQUFDLFdBQVcsU0FBSSxXQUFXLENBQUMsWUFBYyxDQUFBLENBQUM7SUFDakgsSUFBSSxRQUFRLElBQUksZUFBZSxFQUFFO1FBQy9CLE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ2xDO0lBRUQsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsY0FBYyxFQUFFO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQVksQ0FBQyxDQUFDO0tBQ3REO0lBRUQsT0FBTyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNOztRQUM5RCxJQUFJLFVBQVUsR0FBd0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFPLFdBQVcsQ0FBQyxlQUFpQixDQUFDLENBQUM7Z0NBRWpGLFFBQVE7WUFDakIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQWEsVUFBQyxlQUFlLElBQUssT0FBQSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLFFBQVEsQ0FBQyxFQUFsRCxDQUFrRCxDQUFDLENBQUM7WUFDbEgsVUFBVSxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDOzs7WUFGN0IsS0FBdUIsSUFBQSxLQUFBLFNBQUEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFBLGdCQUFBO2dCQUFuRSxJQUFNLFFBQVEsV0FBQTt3QkFBUixRQUFRO2FBR2xCOzs7Ozs7Ozs7UUFFQSxVQUFrQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBQyxNQUFNO1lBQ3ZELE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUMsUUFBUTtRQUM1QyxPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxJQUFxQixFQUFFLE1BQWtCLEVBQUUsSUFBZ0I7SUFDdkUsSUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JlZGVudGlhbHMsIEhhc2hDb25zdHJ1Y3RvciwgU291cmNlRGF0YSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBLRVlfVFlQRV9JREVOVElGSUVSLCBNQVhfQ0FDSEVfU0laRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jb25zdCBzaWduaW5nS2V5Q2FjaGU6IHsgW2tleTogc3RyaW5nXTogUHJvbWlzZTxVaW50OEFycmF5PiB9ID0ge307XG5jb25zdCBjYWNoZVF1ZXVlOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbi8qKlxuICogQ3JlYXRlIGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHNjb3BlIG9mIGNyZWRlbnRpYWxzIHVzZWQgdG8gc2lnbiBhIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHNob3J0RGF0ZSBUaGUgY3VycmVudCBjYWxlbmRhciBkYXRlIGluIHRoZSBmb3JtIFlZWVlNTURELlxuICogQHBhcmFtIHJlZ2lvbiAgICBUaGUgQVdTIHJlZ2lvbiBpbiB3aGljaCB0aGUgc2VydmljZSByZXNpZGVzLlxuICogQHBhcmFtIHNlcnZpY2UgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmcgc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjb3BlKHNob3J0RGF0ZTogc3RyaW5nLCByZWdpb246IHN0cmluZywgc2VydmljZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3Nob3J0RGF0ZX0vJHtyZWdpb259LyR7c2VydmljZX0vJHtLRVlfVFlQRV9JREVOVElGSUVSfWA7XG59XG5cbi8qKlxuICogRGVyaXZlIGEgc2lnbmluZyBrZXkgZnJvbSBpdHMgY29tcG9zaXRlIHBhcnRzXG4gKlxuICogQHBhcmFtIHNoYTI1NkNvbnN0cnVjdG9yIEEgY29uc3RydWN0b3IgZnVuY3Rpb24gdGhhdCBjYW4gaW5zdGFudGlhdGUgU0hBLTI1NlxuICogICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2ggb2JqZWN0cy5cbiAqIEBwYXJhbSBjcmVkZW50aWFscyAgICAgICBUaGUgY3JlZGVudGlhbHMgd2l0aCB3aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkLlxuICogQHBhcmFtIHNob3J0RGF0ZSAgICAgICAgIFRoZSBjdXJyZW50IGNhbGVuZGFyIGRhdGUgaW4gdGhlIGZvcm0gWVlZWU1NREQuXG4gKiBAcGFyYW0gcmVnaW9uICAgICAgICAgICAgVGhlIEFXUyByZWdpb24gaW4gd2hpY2ggdGhlIHNlcnZpY2UgcmVzaWRlcy5cbiAqIEBwYXJhbSBzZXJ2aWNlICAgICAgICAgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmdcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2lnbmluZ0tleShcbiAgc2hhMjU2Q29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvcixcbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzLFxuICBzaG9ydERhdGU6IHN0cmluZyxcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIHNlcnZpY2U6IHN0cmluZ1xuKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gIGNvbnN0IGNhY2hlS2V5ID0gYCR7c2hvcnREYXRlfToke3JlZ2lvbn06JHtzZXJ2aWNlfTpgICsgYCR7Y3JlZGVudGlhbHMuYWNjZXNzS2V5SWR9OiR7Y3JlZGVudGlhbHMuc2Vzc2lvblRva2VufWA7XG4gIGlmIChjYWNoZUtleSBpbiBzaWduaW5nS2V5Q2FjaGUpIHtcbiAgICByZXR1cm4gc2lnbmluZ0tleUNhY2hlW2NhY2hlS2V5XTtcbiAgfVxuXG4gIGNhY2hlUXVldWUucHVzaChjYWNoZUtleSk7XG4gIHdoaWxlIChjYWNoZVF1ZXVlLmxlbmd0aCA+IE1BWF9DQUNIRV9TSVpFKSB7XG4gICAgZGVsZXRlIHNpZ25pbmdLZXlDYWNoZVtjYWNoZVF1ZXVlLnNoaWZ0KCkgYXMgc3RyaW5nXTtcbiAgfVxuXG4gIHJldHVybiAoc2lnbmluZ0tleUNhY2hlW2NhY2hlS2V5XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBsZXQga2V5UHJvbWlzZTogUHJvbWlzZTxTb3VyY2VEYXRhPiA9IFByb21pc2UucmVzb2x2ZShgQVdTNCR7Y3JlZGVudGlhbHMuc2VjcmV0QWNjZXNzS2V5fWApO1xuXG4gICAgZm9yIChjb25zdCBzaWduYWJsZSBvZiBbc2hvcnREYXRlLCByZWdpb24sIHNlcnZpY2UsIEtFWV9UWVBFX0lERU5USUZJRVJdKSB7XG4gICAgICBrZXlQcm9taXNlID0ga2V5UHJvbWlzZS50aGVuPFVpbnQ4QXJyYXk+KChpbnRlcm1lZGlhdGVLZXkpID0+IGhtYWMoc2hhMjU2Q29uc3RydWN0b3IsIGludGVybWVkaWF0ZUtleSwgc2lnbmFibGUpKTtcbiAgICAgIGtleVByb21pc2UuY2F0Y2goKCkgPT4ge30pO1xuICAgIH1cblxuICAgIChrZXlQcm9taXNlIGFzIFByb21pc2U8VWludDhBcnJheT4pLnRoZW4ocmVzb2x2ZSwgKHJlYXNvbikgPT4ge1xuICAgICAgZGVsZXRlIHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV07XG4gICAgICByZWplY3QocmVhc29uKTtcbiAgICB9KTtcbiAgfSkpO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDcmVkZW50aWFsQ2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlUXVldWUubGVuZ3RoID0gMDtcbiAgT2JqZWN0LmtleXMoc2lnbmluZ0tleUNhY2hlKS5mb3JFYWNoKChjYWNoZUtleSkgPT4ge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaG1hYyhjdG9yOiBIYXNoQ29uc3RydWN0b3IsIHNlY3JldDogU291cmNlRGF0YSwgZGF0YTogU291cmNlRGF0YSk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBoYXNoID0gbmV3IGN0b3Ioc2VjcmV0KTtcbiAgaGFzaC51cGRhdGUoZGF0YSk7XG4gIHJldHVybiBoYXNoLmRpZ2VzdCgpO1xufVxuIl19

@@ -33,2 +33,2 @@ import { __values } from "tslib";

}
//# sourceMappingURL=getCanonicalHeaders.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsSGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDYW5vbmljYWxIZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEc7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEVBQXdCLEVBQ3hCLGlCQUErQixFQUMvQixlQUE2Qjs7UUFGM0IsT0FBTyxhQUFBO0lBSVQsSUFBTSxTQUFTLEdBQWMsRUFBRSxDQUFDOztRQUNoQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBLGdCQUFBLDRCQUFFO1lBQWpELElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JELElBQ0UsbUJBQW1CLElBQUkseUJBQXlCLEtBQ2hELGlCQUFpQixhQUFqQixpQkFBaUIsdUJBQWpCLGlCQUFpQixDQUFFLEdBQUcsQ0FBQyxtQkFBbUIsRUFBQztnQkFDM0Msb0JBQW9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUM5QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFDNUM7Z0JBQ0EsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFO29CQUN0RixTQUFTO2lCQUNWO2FBQ0Y7WUFFRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsRjs7Ozs7Ozs7O0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRlckJhZywgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUywgUFJPWFlfSEVBREVSX1BBVFRFUk4sIFNFQ19IRUFERVJfUEFUVEVSTiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2Fub25pY2FsSGVhZGVycyhcbiAgeyBoZWFkZXJzIH06IEh0dHBSZXF1ZXN0LFxuICB1bnNpZ25hYmxlSGVhZGVycz86IFNldDxzdHJpbmc+LFxuICBzaWduYWJsZUhlYWRlcnM/OiBTZXQ8c3RyaW5nPlxuKTogSGVhZGVyQmFnIHtcbiAgY29uc3QgY2Fub25pY2FsOiBIZWFkZXJCYWcgPSB7fTtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKSkge1xuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlck5hbWUgPSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKFxuICAgICAgY2Fub25pY2FsSGVhZGVyTmFtZSBpbiBBTFdBWVNfVU5TSUdOQUJMRV9IRUFERVJTIHx8XG4gICAgICB1bnNpZ25hYmxlSGVhZGVycz8uaGFzKGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBQUk9YWV9IRUFERVJfUEFUVEVSTi50ZXN0KGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBTRUNfSEVBREVSX1BBVFRFUk4udGVzdChjYW5vbmljYWxIZWFkZXJOYW1lKVxuICAgICkge1xuICAgICAgaWYgKCFzaWduYWJsZUhlYWRlcnMgfHwgKHNpZ25hYmxlSGVhZGVycyAmJiAhc2lnbmFibGVIZWFkZXJzLmhhcyhjYW5vbmljYWxIZWFkZXJOYW1lKSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2Fub25pY2FsW2Nhbm9uaWNhbEhlYWRlck5hbWVdID0gaGVhZGVyc1toZWFkZXJOYW1lXS50cmltKCkucmVwbGFjZSgvXFxzKy9nLCBcIiBcIik7XG4gIH1cblxuICByZXR1cm4gY2Fub25pY2FsO1xufVxuIl19

@@ -47,2 +47,2 @@ import { __values } from "tslib";

}
//# sourceMappingURL=getCanonicalQuery.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0Q2Fub25pY2FsUXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBMkI7O1FBQXpCLGFBQVUsRUFBVixLQUFLLG1CQUFHLEVBQUUsS0FBQTtJQUM1QyxJQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQy9CLElBQU0sVUFBVSxHQUE4QixFQUFFLENBQUM7NEJBQ3RDLEdBQUc7UUFDWixJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRTs7U0FFM0M7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBTSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLO2lCQUNwQixLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNSLElBQUksRUFBRTtpQkFDTixNQUFNLENBQ0wsVUFBQyxPQUFzQixFQUFFLEtBQWEsSUFBSyxPQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDLENBQUMsRUFBekQsQ0FBeUQsRUFDcEcsRUFBRSxDQUNIO2lCQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkOzs7UUFsQkgsS0FBa0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQTtZQUF0QyxJQUFNLEdBQUcsV0FBQTtvQkFBSCxHQUFHO1NBbUJiOzs7Ozs7Ozs7SUFFRCxPQUFPLElBQUk7U0FDUixHQUFHLENBQUMsVUFBQyxHQUFHLElBQUssT0FBQSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQWYsQ0FBZSxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxVQUFDLFVBQVUsSUFBSyxPQUFBLFVBQVUsRUFBVixDQUFVLENBQUMsQ0FBQyx3QkFBd0I7U0FDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmltcG9ydCB7IFNJR05BVFVSRV9IRUFERVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbm9uaWNhbFF1ZXJ5KHsgcXVlcnkgPSB7fSB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gIGNvbnN0IGtleXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgY29uc3Qgc2VyaWFsaXplZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhxdWVyeSkuc29ydCgpKSB7XG4gICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSBTSUdOQVRVUkVfSEVBREVSKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBrZXlzLnB1c2goa2V5KTtcbiAgICBjb25zdCB2YWx1ZSA9IHF1ZXJ5W2tleV07XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc2VyaWFsaXplZFtrZXldID0gYCR7ZXNjYXBlVXJpKGtleSl9PSR7ZXNjYXBlVXJpKHZhbHVlKX1gO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHNlcmlhbGl6ZWRba2V5XSA9IHZhbHVlXG4gICAgICAgIC5zbGljZSgwKVxuICAgICAgICAuc29ydCgpXG4gICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgKGVuY29kZWQ6IEFycmF5PHN0cmluZz4sIHZhbHVlOiBzdHJpbmcpID0+IGVuY29kZWQuY29uY2F0KFtgJHtlc2NhcGVVcmkoa2V5KX09JHtlc2NhcGVVcmkodmFsdWUpfWBdKSxcbiAgICAgICAgICBbXVxuICAgICAgICApXG4gICAgICAgIC5qb2luKFwiJlwiKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2V5c1xuICAgIC5tYXAoKGtleSkgPT4gc2VyaWFsaXplZFtrZXldKVxuICAgIC5maWx0ZXIoKHNlcmlhbGl6ZWQpID0+IHNlcmlhbGl6ZWQpIC8vIG9taXQgYW55IGZhbHN5IHZhbHVlc1xuICAgIC5qb2luKFwiJlwiKTtcbn1cbiJdfQ==

@@ -49,2 +49,2 @@ import { __awaiter, __generator, __values } from "tslib";

}
//# sourceMappingURL=getPayloadHash.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGF5bG9hZEhhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0UGF5bG9hZEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sVUFBZ0IsY0FBYyxDQUNsQyxFQUE4QixFQUM5QixlQUFnQztRQUQ5QixPQUFPLGFBQUEsRUFBRSxJQUFJLFVBQUE7Ozs7Ozs7O3dCQUdmLEtBQXlCLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLDRDQUFFOzRCQUFwQyxVQUFVOzRCQUNuQixJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxhQUFhLEVBQUU7Z0NBQzlDLHNCQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBQzs2QkFDNUI7eUJBQ0Y7Ozs7Ozs7Ozt5QkFFRyxDQUFBLElBQUksSUFBSSxTQUFTLENBQUEsRUFBakIsd0JBQWlCO29CQUNuQixzQkFBTyxrRUFBa0UsRUFBQzs7eUJBQ2pFLENBQUEsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBLEVBQTNFLHdCQUEyRTtvQkFDOUUsUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3ZDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2YsS0FBQSxLQUFLLENBQUE7b0JBQUMscUJBQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFBO3dCQUFwQyxzQkFBTyxrQkFBTSxTQUF1QixFQUFDLEVBQUM7O2dCQUd4Qyw0RUFBNEU7Z0JBQzVFLDRFQUE0RTtnQkFDNUUsbURBQW1EO2dCQUNuRCxzQkFBTyxnQkFBZ0IsRUFBQzs7OztDQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXJyYXlCdWZmZXIgfSBmcm9tIFwiQGF3cy1zZGsvaXMtYXJyYXktYnVmZmVyXCI7XG5pbXBvcnQgeyBIYXNoQ29uc3RydWN0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBTSEEyNTZfSEVBREVSLCBVTlNJR05FRF9QQVlMT0FEIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQYXlsb2FkSGFzaChcbiAgeyBoZWFkZXJzLCBib2R5IH06IEh0dHBSZXF1ZXN0LFxuICBoYXNoQ29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvclxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgaWYgKGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKSA9PT0gU0hBMjU2X0hFQURFUikge1xuICAgICAgcmV0dXJuIGhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgaWYgKGJvZHkgPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFwiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NVwiO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBib2R5ID09PSBcInN0cmluZ1wiIHx8IEFycmF5QnVmZmVyLmlzVmlldyhib2R5KSB8fCBpc0FycmF5QnVmZmVyKGJvZHkpKSB7XG4gICAgY29uc3QgaGFzaEN0b3IgPSBuZXcgaGFzaENvbnN0cnVjdG9yKCk7XG4gICAgaGFzaEN0b3IudXBkYXRlKGJvZHkpO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoQ3Rvci5kaWdlc3QoKSk7XG4gIH1cblxuICAvLyBBcyBhbnkgZGVmaW5lZCBib2R5IHRoYXQgaXMgbm90IGEgc3RyaW5nIG9yIGJpbmFyeSBkYXRhIGlzIGEgc3RyZWFtLCB0aGlzXG4gIC8vIGJvZHkgaXMgdW5zaWduYWJsZS4gQXR0ZW1wdCB0byBzZW5kIHRoZSByZXF1ZXN0IHdpdGggYW4gdW5zaWduZWQgcGF5bG9hZCxcbiAgLy8gd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgdGhlIHNlcnZpY2UuXG4gIHJldHVybiBVTlNJR05FRF9QQVlMT0FEO1xufVxuIl19

@@ -22,2 +22,2 @@ import { __values } from "tslib";

}
//# sourceMappingURL=hasHeader.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhc0hlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsTUFBTSxVQUFVLFNBQVMsQ0FBQyxZQUFvQixFQUFFLE9BQWtCOztJQUNoRSxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDOztRQUMxQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQTFDLElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQUksWUFBWSxLQUFLLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDN0MsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0hlYWRlcihzb3VnaHRIZWFkZXI6IHN0cmluZywgaGVhZGVyczogSGVhZGVyQmFnKTogYm9vbGVhbiB7XG4gIHNvdWdodEhlYWRlciA9IHNvdWdodEhlYWRlci50b0xvd2VyQ2FzZSgpO1xuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICBpZiAoc291Z2h0SGVhZGVyID09PSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
export * from "./credentialDerivation";
export * from "./SignatureV4";
//# sourceMappingURL=index.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NyZWRlbnRpYWxEZXJpdmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TaWduYXR1cmVWNFwiO1xuIl19

@@ -29,2 +29,2 @@ import { __assign, __values } from "tslib";

}
//# sourceMappingURL=moveHeadersToQuery.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUhlYWRlcnNUb1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vdmVIZWFkZXJzVG9RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQW9COztJQUMvQyxJQUFBLEtBQ0osT0FBUSxPQUFlLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUUsT0FBZSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBRHpGLE9BQU8sYUFBQSxFQUFFLGFBQStCLEVBQS9CLEtBQUssbUJBQUcsRUFBdUIsS0FDaUQsQ0FBQzs7UUFDbEcsS0FBbUIsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtZQUFwQyxJQUFNLElBQUksV0FBQTtZQUNiLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRTtnQkFDbkMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEI7U0FDRjs7Ozs7Ozs7O0lBRUQsNkJBQ0ssT0FBTyxLQUNWLE9BQU8sU0FBQTtRQUNQLEtBQUssT0FBQSxJQUNMO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdmVIZWFkZXJzVG9RdWVyeShyZXF1ZXN0OiBIdHRwUmVxdWVzdCk6IEh0dHBSZXF1ZXN0ICYgeyBxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcgfSB7XG4gIGNvbnN0IHsgaGVhZGVycywgcXVlcnkgPSB7fSBhcyBRdWVyeVBhcmFtZXRlckJhZyB9ID1cbiAgICB0eXBlb2YgKHJlcXVlc3QgYXMgYW55KS5jbG9uZSA9PT0gXCJmdW5jdGlvblwiID8gKHJlcXVlc3QgYXMgYW55KS5jbG9uZSgpIDogY2xvbmVSZXF1ZXN0KHJlcXVlc3QpO1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICBjb25zdCBsbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobG5hbWUuc3Vic3RyKDAsIDYpID09PSBcIngtYW16LVwiKSB7XG4gICAgICBxdWVyeVtuYW1lXSA9IGhlYWRlcnNbbmFtZV07XG4gICAgICBkZWxldGUgaGVhZGVyc1tuYW1lXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLnJlcXVlc3QsXG4gICAgaGVhZGVycyxcbiAgICBxdWVyeSxcbiAgfTtcbn1cbiJdfQ==

@@ -28,2 +28,2 @@ import { __values } from "tslib";

}
//# sourceMappingURL=prepareRequest.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZVJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlcGFyZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQW9COztJQUNqRCxvRUFBb0U7SUFDcEUsT0FBTyxHQUFHLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztRQUUxRyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtZQUFsRCxJQUFNLFVBQVUsV0FBQTtZQUNuQixJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDNUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7Ozs7Ozs7OztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcbmltcG9ydCB7IEdFTkVSQVRFRF9IRUFERVJTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdCk6IEh0dHBSZXF1ZXN0IHtcbiAgLy8gQ3JlYXRlIGEgY2xvbmUgb2YgdGhlIHJlcXVlc3Qgb2JqZWN0IHRoYXQgZG9lcyBub3QgY2xvbmUgdGhlIGJvZHlcbiAgcmVxdWVzdCA9IHR5cGVvZiAocmVxdWVzdCBhcyBhbnkpLmNsb25lID09PSBcImZ1bmN0aW9uXCIgPyAocmVxdWVzdCBhcyBhbnkpLmNsb25lKCkgOiBjbG9uZVJlcXVlc3QocmVxdWVzdCk7XG5cbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKHJlcXVlc3QuaGVhZGVycykpIHtcbiAgICBpZiAoR0VORVJBVEVEX0hFQURFUlMuaW5kZXhPZihoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpID4gLTEpIHtcbiAgICAgIGRlbGV0ZSByZXF1ZXN0LmhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcXVlc3Q7XG59XG4iXX0=

@@ -288,2 +288,2 @@ import { __awaiter, __generator } from "tslib";

};
//# sourceMappingURL=SignatureV4.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmF0dXJlVjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmF0dXJlVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWlCQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQWtEckM7SUFRRSxxQkFBWSxFQU84QjtZQU54QyxhQUFhLG1CQUFBLEVBQ2IsV0FBVyxpQkFBQSxFQUNYLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQSxFQUNQLE1BQU0sWUFBQSxFQUNOLHFCQUFvQixFQUFwQixhQUFhLG1CQUFHLElBQUksS0FBQTtRQUVwQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJ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UUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELE9BQU87UUFDTCxRQUFRLFVBQUE7UUFDUixTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ2pDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixJQUFNLHNCQUFzQixHQUFHLFVBQUMsT0FBZSxJQUFhLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQXJDLENBQXFDLENBQUM7QUFFbEcsSUFBTSx1QkFBdUIsR0FBRyxVQUFDLE1BQWlDO0lBQ2hFLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQzlCLElBQU0sYUFBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsT0FBTyxjQUFNLE9BQUEsYUFBVyxFQUFYLENBQVcsQ0FBQztLQUMxQjtTQUFNO1FBQ0wsT0FBTyxNQUFNLENBQUM7S0FDZjtBQUNILENBQUMsQ0FBQztBQUVGLElBQU0sNEJBQTRCLEdBQUcsVUFBQyxXQUFnRDtJQUNwRixJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7U0FBTTtRQUNMLE9BQU8sV0FBVyxDQUFDO0tBQ3BCO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ3JlZGVudGlhbHMsXG4gIERhdGVJbnB1dCxcbiAgRXZlbnRTaWduZXIsXG4gIEV2ZW50U2lnbmluZ0FyZ3VtZW50cyxcbiAgRm9ybWF0dGVkRXZlbnQsXG4gIEhhc2hDb25zdHJ1Y3RvcixcbiAgSGVhZGVyQmFnLFxuICBIdHRwUmVxdWVzdCxcbiAgUHJvdmlkZXIsXG4gIFJlcXVlc3RQcmVzaWduZXIsXG4gIFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzLFxuICBSZXF1ZXN0U2lnbmVyLFxuICBSZXF1ZXN0U2lnbmluZ0FyZ3VtZW50cyxcbiAgU2lnbmluZ0FyZ3VtZW50cyxcbiAgU3RyaW5nU2lnbmVyLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHRvSGV4IH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtaGV4LWVuY29kaW5nXCI7XG5cbmltcG9ydCB7XG4gIEFMR09SSVRITV9JREVOVElGSUVSLFxuICBBTEdPUklUSE1fUVVFUllfUEFSQU0sXG4gIEFNWl9EQVRFX0hFQURFUixcbiAgQU1aX0RBVEVfUVVFUllfUEFSQU0sXG4gIEFVVEhfSEVBREVSLFxuICBDUkVERU5USUFMX1FVRVJZX1BBUkFNLFxuICBFVkVOVF9BTEdPUklUSE1fSURFTlRJRklFUixcbiAgRVhQSVJFU19RVUVSWV9QQVJBTSxcbiAgTUFYX1BSRVNJR05FRF9UVEwsXG4gIFNIQTI1Nl9IRUFERVIsXG4gIFNJR05BVFVSRV9RVUVSWV9QQVJBTSxcbiAgU0lHTkVEX0hFQURFUlNfUVVFUllfUEFSQU0sXG4gIFRPS0VOX0hFQURFUixcbiAgVE9LRU5fUVVFUllfUEFSQU0sXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgY3JlYXRlU2NvcGUsIGdldFNpZ25pbmdLZXkgfSBmcm9tIFwiLi9jcmVkZW50aWFsRGVyaXZhdGlvblwiO1xuaW1wb3J0IHsgZ2V0Q2Fub25pY2FsSGVhZGVycyB9IGZyb20gXCIuL2dldENhbm9uaWNhbEhlYWRlcnNcIjtcbmltcG9ydCB7IGdldENhbm9uaWNhbFF1ZXJ5IH0gZnJvbSBcIi4vZ2V0Q2Fub25pY2FsUXVlcnlcIjtcbmltcG9ydCB7IGdldFBheWxvYWRIYXNoIH0gZnJvbSBcIi4vZ2V0UGF5bG9hZEhhc2hcIjtcbmltcG9ydCB7IGhhc0hlYWRlciB9IGZyb20gXCIuL2hhc0hlYWRlclwiO1xuaW1wb3J0IHsgbW92ZUhlYWRlcnNUb1F1ZXJ5IH0gZnJvbSBcIi4vbW92ZUhlYWRlcnNUb1F1ZXJ5XCI7XG5pbXBvcnQgeyBwcmVwYXJlUmVxdWVzdCB9IGZyb20gXCIuL3ByZXBhcmVSZXF1ZXN0XCI7XG5pbXBvcnQgeyBpc284NjAxIH0gZnJvbSBcIi4vdXRpbERhdGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVWNEluaXQge1xuICAvKipcbiAgICogVGhlIHNlcnZpY2Ugc2lnbmluZyBuYW1lLlxuICAgKi9cbiAgc2VydmljZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIG5hbWUgb3IgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHRoYXQgd2lsbCBiZVxuICAgKiByZXNvbHZlZCB3aXRoIHRoZSByZWdpb24gbmFtZS5cbiAgICovXG4gIHJlZ2lvbjogc3RyaW5nIHwgUHJvdmlkZXI8c3RyaW5nPjtcblxuICAvKipcbiAgICogVGhlIGNyZWRlbnRpYWxzIHdpdGggd2hpY2ggdGhlIHJlcXVlc3Qgc2hvdWxkIGJlIHNpZ25lZCBvciBhIGZ1bmN0aW9uXG4gICAqIHRoYXQgcmV0dXJucyBhIHByb21pc2UgdGhhdCB3aWxsIGJlIHJlc29sdmVkIHdpdGggY3JlZGVudGlhbHMuXG4gICAqL1xuICBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgfCBQcm92aWRlcjxDcmVkZW50aWFscz47XG5cbiAgLyoqXG4gICAqIEEgY29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIGEgaGFzaCBvYmplY3QgdGhhdCB3aWxsIGNhbGN1bGF0ZSBTSEEtMjU2IEhNQUNcbiAgICogY2hlY2tzdW1zLlxuICAgKi9cbiAgc2hhMjU2PzogSGFzaENvbnN0cnVjdG9yO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVyaS1lc2NhcGUgdGhlIHJlcXVlc3QgVVJJIHBhdGggYXMgcGFydCBvZiBjb21wdXRpbmcgdGhlXG4gICAqIGNhbm9uaWNhbCByZXF1ZXN0IHN0cmluZy4gVGhpcyBpcyByZXF1aXJlZCBmb3IgZXZlcnkgQVdTIHNlcnZpY2UsIGV4Y2VwdFxuICAgKiBBbWF6b24gUzMsIGFzIG9mIGxhdGUgMjAxNy5cbiAgICpcbiAgICogQGRlZmF1bHQgW3RydWVdXG4gICAqL1xuICB1cmlFc2NhcGVQYXRoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjYWxjdWxhdGUgYSBjaGVja3N1bSBvZiB0aGUgcmVxdWVzdCBib2R5IGFuZCBpbmNsdWRlIGl0IGFzXG4gICAqIGVpdGhlciBhIHJlcXVlc3QgaGVhZGVyICh3aGVuIHNpZ25pbmcpIG9yIGFzIGEgcXVlcnkgc3RyaW5nIHBhcmFtZXRlclxuICAgKiAod2hlbiBwcmVzaWduaW5nKS4gVGhpcyBpcyByZXF1aXJlZCBmb3IgQVdTIEdsYWNpZXIgYW5kIEFtYXpvbiBTMyBhbmQgb3B0aW9uYWwgZm9yXG4gICAqIGV2ZXJ5IG90aGVyIEFXUyBzZXJ2aWNlIGFzIG9mIGxhdGUgMjAxNy5cbiAgICpcbiAgICogQGRlZmF1bHQgW3RydWVdXG4gICAqL1xuICBhcHBseUNoZWNrc3VtPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVWNENyeXB0b0luaXQge1xuICBzaGEyNTY6IEhhc2hDb25zdHJ1Y3Rvcjtcbn1cblxuZXhwb3J0IGNsYXNzIFNpZ25hdHVyZVY0IGltcGxlbWVudHMgUmVxdWVzdFByZXNpZ25lciwgUmVxdWVzdFNpZ25lciwgU3RyaW5nU2lnbmVyLCBFdmVudFNpZ25lciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lvblByb3ZpZGVyOiBQcm92aWRlcjxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlcjogUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuICBwcml2YXRlIHJlYWRvbmx5IHNoYTI1NjogSGFzaENvbnN0cnVjdG9yO1xuICBwcml2YXRlIHJlYWRvbmx5IHVyaUVzY2FwZVBhdGg6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwbHlDaGVja3N1bTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgYXBwbHlDaGVja3N1bSxcbiAgICBjcmVkZW50aWFscyxcbiAgICByZWdpb24sXG4gICAgc2VydmljZSxcbiAgICBzaGEyNTYsXG4gICAgdXJpRXNjYXBlUGF0aCA9IHRydWUsXG4gIH06IFNpZ25hdHVyZVY0SW5pdCAmIFNpZ25hdHVyZVY0Q3J5cHRvSW5pdCkge1xuICAgIHRoaXMuc2VydmljZSA9IHNlcnZpY2U7XG4gICAgdGhpcy5zaGEyNTYgPSBzaGEyNTY7XG4gICAgdGhpcy51cmlFc2NhcGVQYXRoID0gdXJpRXNjYXBlUGF0aDtcbiAgICAvLyBkZWZhdWx0IHRvIHRydWUgaWYgYXBwbHlDaGVja3N1bSBpc24ndCBzZXRcbiAgICB0aGlzLmFwcGx5Q2hlY2tzdW0gPSB0eXBlb2YgYXBwbHlDaGVja3N1bSA9PT0gXCJib29sZWFuXCIgPyBhcHBseUNoZWNrc3VtIDogdHJ1ZTtcbiAgICB0aGlzLnJlZ2lvblByb3ZpZGVyID0gbm9ybWFsaXplUmVnaW9uUHJvdmlkZXIocmVnaW9uKTtcbiAgICB0aGlzLmNyZWRlbnRpYWxQcm92aWRlciA9IG5vcm1hbGl6ZUNyZWRlbnRpYWxzUHJvdmlkZXIoY3JlZGVudGlhbHMpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHByZXNpZ24ob3JpZ2luYWxSZXF1ZXN0OiBIdHRwUmVxdWVzdCwgb3B0aW9uczogUmVxdWVzdFByZXNpZ25pbmdBcmd1bWVudHMgPSB7fSk6IFByb21pc2U8SHR0cFJlcXVlc3Q+IHtcbiAgICBjb25zdCB7XG4gICAgICBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksXG4gICAgICBleHBpcmVzSW4gPSAzNjAwLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICBzaWduYWJsZUhlYWRlcnMsXG4gICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgc2lnbmluZ1NlcnZpY2UsXG4gICAgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxQcm92aWRlcigpO1xuICAgIGNvbnN0IHJlZ2lvbiA9IHNpZ25pbmdSZWdpb24gPz8gKGF3YWl0IHRoaXMucmVnaW9uUHJvdmlkZXIoKSk7XG5cbiAgICBjb25zdCB7IGxvbmdEYXRlLCBzaG9ydERhdGUgfSA9IGZvcm1hdERhdGUoc2lnbmluZ0RhdGUpO1xuICAgIGlmIChleHBpcmVzSW4gPiBNQVhfUFJFU0lHTkVEX1RUTCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxuICAgICAgICBcIlNpZ25hdHVyZSB2ZXJzaW9uIDQgcHJlc2lnbmVkIFVSTHNcIiArIFwiIG11c3QgaGF2ZSBhbiBleHBpcmF0aW9uIGRhdGUgbGVzcyB0aGFuIG9uZSB3ZWVrIGluXCIgKyBcIiB0aGUgZnV0dXJlXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcbiAgICBjb25zdCByZXF1ZXN0ID0gbW92ZUhlYWRlcnNUb1F1ZXJ5KHByZXBhcmVSZXF1ZXN0KG9yaWdpbmFsUmVxdWVzdCkpO1xuXG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgcmVxdWVzdC5xdWVyeVtUT0tFTl9RVUVSWV9QQVJBTV0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuICAgIHJlcXVlc3QucXVlcnlbQUxHT1JJVEhNX1FVRVJZX1BBUkFNXSA9IEFMR09SSVRITV9JREVOVElGSUVSO1xuICAgIHJlcXVlc3QucXVlcnlbQ1JFREVOVElBTF9RVUVSWV9QQVJBTV0gPSBgJHtjcmVkZW50aWFscy5hY2Nlc3NLZXlJZH0vJHtzY29wZX1gO1xuICAgIHJlcXVlc3QucXVlcnlbQU1aX0RBVEVfUVVFUllfUEFSQU1dID0gbG9uZ0RhdGU7XG4gICAgcmVxdWVzdC5xdWVyeVtFWFBJUkVTX1FVRVJZX1BBUkFNXSA9IGV4cGlyZXNJbi50b1N0cmluZygxMCk7XG5cbiAgICBjb25zdCBjYW5vbmljYWxIZWFkZXJzID0gZ2V0Q2Fub25pY2FsSGVhZGVycyhyZXF1ZXN0LCB1bnNpZ25hYmxlSGVhZGVycywgc2lnbmFibGVIZWFkZXJzKTtcbiAgICByZXF1ZXN0LnF1ZXJ5W1NJR05FRF9IRUFERVJTX1FVRVJZX1BBUkFNXSA9IGdldENhbm9uaWNhbEhlYWRlckxpc3QoY2Fub25pY2FsSGVhZGVycyk7XG5cbiAgICByZXF1ZXN0LnF1ZXJ5W1NJR05BVFVSRV9RVUVSWV9QQVJBTV0gPSBhd2FpdCB0aGlzLmdldFNpZ25hdHVyZShcbiAgICAgIGxvbmdEYXRlLFxuICAgICAgc2NvcGUsXG4gICAgICB0aGlzLmdldFNpZ25pbmdLZXkoY3JlZGVudGlhbHMsIHJlZ2lvbiwgc2hvcnREYXRlLCBzaWduaW5nU2VydmljZSksXG4gICAgICB0aGlzLmNyZWF0ZUNhbm9uaWNhbFJlcXVlc3QocmVxdWVzdCwgY2Fub25pY2FsSGVhZGVycywgYXdhaXQgZ2V0UGF5bG9hZEhhc2gob3JpZ2luYWxSZXF1ZXN0LCB0aGlzLnNoYTI1NikpXG4gICAgKTtcblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNpZ24oc3RyaW5nVG9TaWduOiBzdHJpbmcsIG9wdGlvbnM/OiBTaWduaW5nQXJndW1lbnRzKTogUHJvbWlzZTxzdHJpbmc+O1xuICBwdWJsaWMgYXN5bmMgc2lnbihldmVudDogRm9ybWF0dGVkRXZlbnQsIG9wdGlvbnM6IEV2ZW50U2lnbmluZ0FyZ3VtZW50cyk6IFByb21pc2U8c3RyaW5nPjtcbiAgcHVibGljIGFzeW5jIHNpZ24ocmVxdWVzdFRvU2lnbjogSHR0cFJlcXVlc3QsIG9wdGlvbnM/OiBSZXF1ZXN0U2lnbmluZ0FyZ3VtZW50cyk6IFByb21pc2U8SHR0cFJlcXVlc3Q+O1xuICBwdWJsaWMgYXN5bmMgc2lnbih0b1NpZ246IGFueSwgb3B0aW9uczogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodHlwZW9mIHRvU2lnbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIHRoaXMuc2lnblN0cmluZyh0b1NpZ24sIG9wdGlvbnMpO1xuICAgIH0gZWxzZSBpZiAodG9TaWduLmhlYWRlcnMgJiYgdG9TaWduLnBheWxvYWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25FdmVudCh0b1NpZ24sIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5zaWduUmVxdWVzdCh0b1NpZ24sIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2lnbkV2ZW50KFxuICAgIHsgaGVhZGVycywgcGF5bG9hZCB9OiBGb3JtYXR0ZWRFdmVudCxcbiAgICB7IHNpZ25pbmdEYXRlID0gbmV3IERhdGUoKSwgcHJpb3JTaWduYXR1cmUsIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH06IEV2ZW50U2lnbmluZ0FyZ3VtZW50c1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHJlZ2lvbiA9IHNpZ25pbmdSZWdpb24gPz8gKGF3YWl0IHRoaXMucmVnaW9uUHJvdmlkZXIoKSk7XG4gICAgY29uc3QgeyBzaG9ydERhdGUsIGxvbmdEYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcbiAgICBjb25zdCBzY29wZSA9IGNyZWF0ZVNjb3BlKHNob3J0RGF0ZSwgcmVnaW9uLCBzaWduaW5nU2VydmljZSA/PyB0aGlzLnNlcnZpY2UpO1xuICAgIGNvbnN0IGhhc2hlZFBheWxvYWQgPSBhd2FpdCBnZXRQYXlsb2FkSGFzaCh7IGhlYWRlcnM6IHt9LCBib2R5OiBwYXlsb2FkIH0gYXMgYW55LCB0aGlzLnNoYTI1Nik7XG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1NigpO1xuICAgIGhhc2gudXBkYXRlKGhlYWRlcnMpO1xuICAgIGNvbnN0IGhhc2hlZEhlYWRlcnMgPSB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgICBjb25zdCBzdHJpbmdUb1NpZ24gPSBbXG4gICAgICBFVkVOVF9BTEdPUklUSE1fSURFTlRJRklFUixcbiAgICAgIGxvbmdEYXRlLFxuICAgICAgc2NvcGUsXG4gICAgICBwcmlvclNpZ25hdHVyZSxcbiAgICAgIGhhc2hlZEhlYWRlcnMsXG4gICAgICBoYXNoZWRQYXlsb2FkLFxuICAgIF0uam9pbihcIlxcblwiKTtcbiAgICByZXR1cm4gdGhpcy5zaWduU3RyaW5nKHN0cmluZ1RvU2lnbiwgeyBzaWduaW5nRGF0ZSwgc2lnbmluZ1JlZ2lvbjogcmVnaW9uLCBzaWduaW5nU2VydmljZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2lnblN0cmluZyhcbiAgICBzdHJpbmdUb1NpZ246IHN0cmluZyxcbiAgICB7IHNpZ25pbmdEYXRlID0gbmV3IERhdGUoKSwgc2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfTogU2lnbmluZ0FyZ3VtZW50cyA9IHt9XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxQcm92aWRlcigpO1xuICAgIGNvbnN0IHJlZ2lvbiA9IHNpZ25pbmdSZWdpb24gPz8gKGF3YWl0IHRoaXMucmVnaW9uUHJvdmlkZXIoKSk7XG4gICAgY29uc3QgeyBzaG9ydERhdGUgfSA9IGZvcm1hdERhdGUoc2lnbmluZ0RhdGUpO1xuXG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1Nihhd2FpdCB0aGlzLmdldFNpZ25pbmdLZXkoY3JlZGVudGlhbHMsIHJlZ2lvbiwgc2hvcnREYXRlLCBzaWduaW5nU2VydmljZSkpO1xuICAgIGhhc2gudXBkYXRlKHN0cmluZ1RvU2lnbik7XG4gICAgcmV0dXJuIHRvSGV4KGF3YWl0IGhhc2guZGlnZXN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaWduUmVxdWVzdChcbiAgICByZXF1ZXN0VG9TaWduOiBIdHRwUmVxdWVzdCxcbiAgICB7XG4gICAgICBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksXG4gICAgICBzaWduYWJsZUhlYWRlcnMsXG4gICAgICB1bnNpZ25hYmxlSGVhZGVycyxcbiAgICAgIHNpZ25pbmdSZWdpb24sXG4gICAgICBzaWduaW5nU2VydmljZSxcbiAgICB9OiBSZXF1ZXN0U2lnbmluZ0FyZ3VtZW50cyA9IHt9XG4gICk6IFByb21pc2U8SHR0cFJlcXVlc3Q+IHtcbiAgICBjb25zdCBjcmVkZW50aWFscyA9IGF3YWl0IHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyKCk7XG4gICAgY29uc3QgcmVnaW9uID0gc2lnbmluZ1JlZ2lvbiA/PyAoYXdhaXQgdGhpcy5yZWdpb25Qcm92aWRlcigpKTtcbiAgICBjb25zdCByZXF1ZXN0ID0gcHJlcGFyZVJlcXVlc3QocmVxdWVzdFRvU2lnbik7XG4gICAgY29uc3QgeyBsb25nRGF0ZSwgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcbiAgICBjb25zdCBzY29wZSA9IGNyZWF0ZVNjb3BlKHNob3J0RGF0ZSwgcmVnaW9uLCBzaWduaW5nU2VydmljZSA/PyB0aGlzLnNlcnZpY2UpO1xuXG4gICAgcmVxdWVzdC5oZWFkZXJzW0FNWl9EQVRFX0hFQURFUl0gPSBsb25nRGF0ZTtcbiAgICBpZiAoY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuKSB7XG4gICAgICByZXF1ZXN0LmhlYWRlcnNbVE9LRU5fSEVBREVSXSA9IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXlsb2FkSGFzaCA9IGF3YWl0IGdldFBheWxvYWRIYXNoKHJlcXVlc3QsIHRoaXMuc2hhMjU2KTtcbiAgICBpZiAoIWhhc0hlYWRlcihTSEEyNTZfSEVBREVSLCByZXF1ZXN0LmhlYWRlcnMpICYmIHRoaXMuYXBwbHlDaGVja3N1bSkge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW1NIQTI1Nl9IRUFERVJdID0gcGF5bG9hZEhhc2g7XG4gICAgfVxuXG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVycyA9IGdldENhbm9uaWNhbEhlYWRlcnMocmVxdWVzdCwgdW5zaWduYWJsZUhlYWRlcnMsIHNpZ25hYmxlSGVhZGVycyk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gYXdhaXQgdGhpcy5nZXRTaWduYXR1cmUoXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpLFxuICAgICAgdGhpcy5jcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3QsIGNhbm9uaWNhbEhlYWRlcnMsIHBheWxvYWRIYXNoKVxuICAgICk7XG5cbiAgICByZXF1ZXN0LmhlYWRlcnNbQVVUSF9IRUFERVJdID1cbiAgICAgIGAke0FMR09SSVRITV9JREVOVElGSUVSfSBgICtcbiAgICAgIGBDcmVkZW50aWFsPSR7Y3JlZGVudGlhbHMuYWNjZXNzS2V5SWR9LyR7c2NvcGV9LCBgICtcbiAgICAgIGBTaWduZWRIZWFkZXJzPSR7Z2V0Q2Fub25pY2FsSGVhZGVyTGlzdChjYW5vbmljYWxIZWFkZXJzKX0sIGAgK1xuICAgICAgYFNpZ25hdHVyZT0ke3NpZ25hdHVyZX1gO1xuXG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNhbm9uaWNhbFJlcXVlc3QocmVxdWVzdDogSHR0cFJlcXVlc3QsIGNhbm9uaWNhbEhlYWRlcnM6IEhlYWRlckJhZywgcGF5bG9hZEhhc2g6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc29ydGVkSGVhZGVycyA9IE9iamVjdC5rZXlzKGNhbm9uaWNhbEhlYWRlcnMpLnNvcnQoKTtcbiAgICByZXR1cm4gYCR7cmVxdWVzdC5tZXRob2R9XG4ke3RoaXMuZ2V0Q2Fub25pY2FsUGF0aChyZXF1ZXN0KX1cbiR7Z2V0Q2Fub25pY2FsUXVlcnkocmVxdWVzdCl9XG4ke3NvcnRlZEhlYWRlcnMubWFwKChuYW1lKSA9PiBgJHtuYW1lfToke2Nhbm9uaWNhbEhlYWRlcnNbbmFtZV19YCkuam9pbihcIlxcblwiKX1cblxuJHtzb3J0ZWRIZWFkZXJzLmpvaW4oXCI7XCIpfVxuJHtwYXlsb2FkSGFzaH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVTdHJpbmdUb1NpZ24oXG4gICAgbG9uZ0RhdGU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsU2NvcGU6IHN0cmluZyxcbiAgICBjYW5vbmljYWxSZXF1ZXN0OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBoYXNoID0gbmV3IHRoaXMuc2hhMjU2KCk7XG4gICAgaGFzaC51cGRhdGUoY2Fub25pY2FsUmVxdWVzdCk7XG4gICAgY29uc3QgaGFzaGVkUmVxdWVzdCA9IGF3YWl0IGhhc2guZGlnZXN0KCk7XG5cbiAgICByZXR1cm4gYCR7QUxHT1JJVEhNX0lERU5USUZJRVJ9XG4ke2xvbmdEYXRlfVxuJHtjcmVkZW50aWFsU2NvcGV9XG4ke3RvSGV4KGhhc2hlZFJlcXVlc3QpfWA7XG4gIH1cblxuICBwcml2YXRlIGdldENhbm9uaWNhbFBhdGgoeyBwYXRoIH06IEh0dHBSZXF1ZXN0KTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy51cmlFc2NhcGVQYXRoKSB7XG4gICAgICBjb25zdCBkb3VibGVFbmNvZGVkID0gZW5jb2RlVVJJQ29tcG9uZW50KHBhdGgucmVwbGFjZSgvXlxcLy8sIFwiXCIpKTtcbiAgICAgIHJldHVybiBgLyR7ZG91YmxlRW5jb2RlZC5yZXBsYWNlKC8lMkYvZywgXCIvXCIpfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFNpZ25hdHVyZShcbiAgICBsb25nRGF0ZTogc3RyaW5nLFxuICAgIGNyZWRlbnRpYWxTY29wZTogc3RyaW5nLFxuICAgIGtleVByb21pc2U6IFByb21pc2U8VWludDhBcnJheT4sXG4gICAgY2Fub25pY2FsUmVxdWVzdDogc3RyaW5nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3Qgc3RyaW5nVG9TaWduID0gYXdhaXQgdGhpcy5jcmVhdGVTdHJpbmdUb1NpZ24obG9uZ0RhdGUsIGNyZWRlbnRpYWxTY29wZSwgY2Fub25pY2FsUmVxdWVzdCk7XG5cbiAgICBjb25zdCBoYXNoID0gbmV3IHRoaXMuc2hhMjU2KGF3YWl0IGtleVByb21pc2UpO1xuICAgIGhhc2gudXBkYXRlKHN0cmluZ1RvU2lnbik7XG4gICAgcmV0dXJuIHRvSGV4KGF3YWl0IGhhc2guZGlnZXN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTaWduaW5nS2V5KFxuICAgIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyxcbiAgICByZWdpb246IHN0cmluZyxcbiAgICBzaG9ydERhdGU6IHN0cmluZyxcbiAgICBzZXJ2aWNlPzogc3RyaW5nXG4gICk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIHJldHVybiBnZXRTaWduaW5nS2V5KHRoaXMuc2hhMjU2LCBjcmVkZW50aWFscywgc2hvcnREYXRlLCByZWdpb24sIHNlcnZpY2UgfHwgdGhpcy5zZXJ2aWNlKTtcbiAgfVxufVxuXG5jb25zdCBmb3JtYXREYXRlID0gKG5vdzogRGF0ZUlucHV0KTogeyBsb25nRGF0ZTogc3RyaW5nOyBzaG9ydERhdGU6IHN0cmluZyB9ID0+IHtcbiAgY29uc3QgbG9uZ0RhdGUgPSBpc284NjAxKG5vdykucmVwbGFjZSgvW1xcLTpdL2csIFwiXCIpO1xuICByZXR1cm4ge1xuICAgIGxvbmdEYXRlLFxuICAgIHNob3J0RGF0ZTogbG9uZ0RhdGUuc3Vic3RyKDAsIDgpLFxuICB9O1xufTtcblxuY29uc3QgZ2V0Q2Fub25pY2FsSGVhZGVyTGlzdCA9IChoZWFkZXJzOiBvYmplY3QpOiBzdHJpbmcgPT4gT2JqZWN0LmtleXMoaGVhZGVycykuc29ydCgpLmpvaW4oXCI7XCIpO1xuXG5jb25zdCBub3JtYWxpemVSZWdpb25Qcm92aWRlciA9IChyZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz4pOiBQcm92aWRlcjxzdHJpbmc+ID0+IHtcbiAgaWYgKHR5cGVvZiByZWdpb24gPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBwcm9taXNpZmllZCA9IFByb21pc2UucmVzb2x2ZShyZWdpb24pO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcmVnaW9uO1xuICB9XG59O1xuXG5jb25zdCBub3JtYWxpemVDcmVkZW50aWFsc1Byb3ZpZGVyID0gKGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyB8IFByb3ZpZGVyPENyZWRlbnRpYWxzPik6IFByb3ZpZGVyPENyZWRlbnRpYWxzPiA9PiB7XG4gIGlmICh0eXBlb2YgY3JlZGVudGlhbHMgPT09IFwib2JqZWN0XCIpIHtcbiAgICBjb25zdCBwcm9taXNpZmllZCA9IFByb21pc2UucmVzb2x2ZShjcmVkZW50aWFscyk7XG4gICAgcmV0dXJuICgpID0+IHByb21pc2lmaWVkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjcmVkZW50aWFscztcbiAgfVxufTtcbiJdfQ==

@@ -400,2 +400,2 @@ export var region = "us-east-1";

];
//# sourceMappingURL=suite.fixture.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VpdGUuZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdWl0ZS5maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sQ0FBQyxJQUFNLE1BQU0sR0FBRyxXQUFXLENBQUM7QUFDbEMsTUFBTSxDQUFDLElBQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQztBQUNqQyxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUc7SUFDekIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsZUFBZSxFQUFFLDBDQUEwQztDQUM1RCxDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFFNUQsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUFvQjtJQUN2QztRQUNFLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsT0FBTyxFQUFFO1lBQ1AsUUFBUSxFQUFFLFFBQVE7WUFDbEIsTUFBTSxFQUFFLEtBQUs7WUFDYixRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLFlBQVksRUFBRSxzQkFBc0I7Z0JBQ3BDLFlBQVksRUFBRSxrQkFBa0I7YUFDakM7WUFDRCxJQUFJLEVBQUUsR0FBRztTQUNWO1FBQ0QsYUFBYSxFQUNYLHVNQUF1TTtLQUMxTTtJQUNEO1FBQ0UsSUFBSSxFQUFFLDRCQUE0QjtRQUNsQyxPQUFPLEVBQUU7WUFDUCxRQUFRLEVBQUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsS0FBSztZQUNiLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsS0FBSyxFQUFFLEVBQUU7WUFDVCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsWUFBWSxFQUFFLHNCQUFzQjtnQkFDcEMsWUFBWSxFQUFFLGtCQUFrQjthQUNqQztZQUNELElBQUksRUFBRSxHQUFHO1NBQ1Y7UUFD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QUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsS0FBSyxFQUFFLEVBQUU7WUFDVCxPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLG1DQUFtQztnQkFDbkQsSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsWUFBWSxFQUFFLGtCQUFrQjthQUNqQztZQUNELElBQUksRUFBRSxlQUFlO1lBQ3JCLElBQUksRUFBRSxHQUFHO1NBQ1Y7UUFDRCxhQUFhLEVBQ1gseU1BQXlNO0tBQzVNO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsdUNBQXVDO1FBQzdDLE9BQU8sRUFBRTtZQUNQLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsaURBQWlEO2dCQUNqRSxJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixZQUFZLEVBQUUsa0JBQWtCO2FBQ2pDO1lBQ0QsSUFBSSxFQUFFLGVBQWU7WUFDckIsSUFBSSxFQUFFLEdBQUc7U0FDVjtRQUNELGFBQWEsRUFDWCx5TUFBeU07S0FDNU07Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZXN0Q2FzZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgcmVxdWVzdDogSHR0cFJlcXVlc3Q7XG4gIGF1dGhvcml6YXRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IHJlZ2lvbiA9IFwidXMtZWFzdC0xXCI7XG5leHBvcnQgY29uc3Qgc2VydmljZSA9IFwic2VydmljZVwiO1xuZXhwb3J0IGNvbnN0IGNyZWRlbnRpYWxzID0ge1xuICBhY2Nlc3NLZXlJZDogXCJBS0lERVhBTVBMRVwiLFxuICBzZWNyZXRBY2Nlc3NLZXk6IFwid0phbHJYVXRuRkVNSS9LN01ERU5HK2JQeFJmaUNZRVhBTVBMRUtFWVwiLFxufTtcblxuZXhwb3J0IGNvbnN0IHNpZ25pbmdEYXRlID0gbmV3IERhdGUoXCIyMDE1LTA4LTMwVDEyOjM2OjAwWlwiKTtcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3RzOiBBcnJheTxUZXN0Q2FzZT4gPSBbXG4gIHtcbiAgICBuYW1lOiBcImdldC1oZWFkZXIta2V5LWR1cGxpY2F0ZVwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge30sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwibXktaGVhZGVyMVwiOiBcInZhbHVlMix2YWx1ZTIsdmFsdWUxXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDtteS1oZWFkZXIxO3gtYW16LWRhdGUsIFNpZ25hdHVyZT1jOWQ1ZWE5ZjNmNzI4NTNhZWE4NTViNDdlYTg3MzgzMjg5MGRiZGQxODNiNDQ2OGY4NTgyNTk1MzFhNTEzOGVhXCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImdldC1oZWFkZXItdmFsdWUtbXVsdGlsaW5lXCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7fSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgaG9zdDogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICAgXCJteS1oZWFkZXIxXCI6IFwidmFsdWUxLHZhbHVlMix2YWx1ZTNcIixcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O215LWhlYWRlcjE7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPWJhMTdiMzgzYTUzMTkwMTU0ZWI1ZmE2NmExYjgzNmNjMjk3Y2MwYTNkNzBhNWQwMDcwNTk4MDU3M2Q4ZmY3OTBcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwiZ2V0LWhlYWRlci12YWx1ZS1vcmRlclwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge30sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwibXktaGVhZGVyMVwiOiBcInZhbHVlNCx2YWx1ZTEsdmFsdWUzLHZhbHVlMlwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIvXCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7bXktaGVhZGVyMTt4LWFtei1kYXRlLCBTaWduYXR1cmU9MDhjN2U1YTlhY2ZjZmViM2FiNmIyMTg1ZTc1Y2U4YjFkZWI1ZTYzNGVjNDc2MDFhNTA2NDNmODMwYzc1NWMwMVwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJnZXQtaGVhZGVyLXZhbHVlLXRyaW1cIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIm15LWhlYWRlcjFcIjogXCJ2YWx1ZTFcIixcbiAgICAgICAgXCJteS1oZWFkZXIyXCI6ICdcImEgICBiICAgY1wiJyxcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O215LWhlYWRlcjE7bXktaGVhZGVyMjt4LWFtei1kYXRlLCBTaWduYXR1cmU9YWNjM2VkM2FmYjYwYmIyOTBmYzhkMmRkMDA5OGI5OTExZmNhYTA1NDEyYjM2NzA1NWRlZTM1OTc1N2E5YzczNlwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJnZXQtdW5yZXNlcnZlZFwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge30sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi8tLl9+MDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9MDdlZjc0OTRjNzZmYTQ4NTA4ODNlMmIwMDY2MDFmOTQwZjhhMzRkNDA0ZDBjZmE5NzdmNTJhNjViYmY1ZjI0ZlwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJnZXQtdXRmOFwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge30sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi/hiLRcIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9ODMxODAxOGUwYjBmMjIzYWEyYmJmOTg3MDViNjJiYjc4N2RjOWMwZTY3OGYyNTVhODkxZmQwMzE0MWJlNWQ4NVwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJnZXQtdmFuaWxsYVwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge30sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9NWZhMDBmYTMxNTUzYjczZWJmMTk0MjY3NmU4NjI5MWU4MzcyZmYyYTIyNjA5NTZkOWI4YWFlMWQ3NjNmYmYzMVwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJnZXQtdmFuaWxsYS1lbXB0eS1xdWVyeS1rZXlcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHtcbiAgICAgICAgUGFyYW0xOiBcInZhbHVlMVwiLFxuICAgICAgfSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgaG9zdDogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O3gtYW16LWRhdGUsIFNpZ25hdHVyZT1hNjdkNTgyZmE2MWNjNTA0YzRiYWU3MWYzMzZmOThiOTdmMWVhM2M3YTZiZmUxYjZlNDVhZWM3MjAxMWI5YWViXCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImdldC12YW5pbGxhLXF1ZXJ5XCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7fSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgaG9zdDogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O3gtYW16LWRhdGUsIFNpZ25hdHVyZT01ZmEwMGZhMzE1NTNiNzNlYmYxOTQyNjc2ZTg2MjkxZTgzNzJmZjJhMjI2MDk1NmQ5YjhhYWUxZDc2M2ZiZjMxXCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImdldC12YW5pbGxhLXF1ZXJ5LW9yZGVyLWtleS1jYXNlXCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIFBhcmFtMjogXCJ2YWx1ZTJcIixcbiAgICAgICAgUGFyYW0xOiBcInZhbHVlMVwiLFxuICAgICAgfSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgaG9zdDogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O3gtYW16LWRhdGUsIFNpZ25hdHVyZT1iOTdkOTE4Y2ZhOTA0YTViZWZmNjFjOTgyYTFiNmY0NThiNzk5MjIxNjQ2ZWZkOTlkMzIxOWVjOTRjZGYyNTAwXCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImdldC12YW5pbGxhLXF1ZXJ5LXVucmVzZXJ2ZWRcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHtcbiAgICAgICAgXCItLl9+MDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjpcbiAgICAgICAgICBcIi0uX34wMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5elwiLFxuICAgICAgfSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgaG9zdDogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O3gtYW16LWRhdGUsIFNpZ25hdHVyZT05YzNlNTRiZmNkZjBiMTk3NzFhN2Y1MjNlZTU2NjljZGY1OWJjN2NjMDg4NDAyNzE2N2MyMWJiMTQzYTQwMTk3XCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcImdldC12YW5pbGxhLXV0ZjgtcXVlcnlcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHtcbiAgICAgICAg4Yi0OiBcImJhclwiLFxuICAgICAgfSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgaG9zdDogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O3gtYW16LWRhdGUsIFNpZ25hdHVyZT0yY2RlYzhlZWQwOTg2NDlmZjNhMTE5Yzk0ODUzYjEzYzY0M2JjZjA4ZjhiMGExZDkxZTEyYzkwMjc4MThkZDA0XCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcInBvc3QtaGVhZGVyLWtleS1jYXNlXCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge30sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9NWRhN2MxYTJhY2Q1N2NlZTc1MDVmYzY2NzZlNGU1NDQ2MjFjMzA4NjI5NjZlMzdkZGRiNjhlOTJlZmJlNWQ2YlwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJwb3N0LWhlYWRlci1rZXktc29ydFwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIm15LWhlYWRlcjFcIjogXCJ2YWx1ZTFcIixcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O215LWhlYWRlcjE7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPWM1NDEwMDU5YjA0YzFlZTAwNTMwM2FlZDQzMGY2ZTY2NDVmNjFmNGRjOWUxNDYxZWM4Zjg5MTZmZGYxODg1MmNcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwicG9zdC1oZWFkZXItdmFsdWUtY2FzZVwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIm15LWhlYWRlcjFcIjogXCJWQUxVRTFcIixcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O215LWhlYWRlcjE7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPWNkYmM5ODAyZTI5ZDI5NDJlNWUxMGI1YmNjZmRkNjdjNWYyMmM3YzRlOGFlNjdiNTM2MjllZmE1OGI5NzRiN2RcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwicG9zdC1zdHMtaGVhZGVyLWFmdGVyXCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge30sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9NWRhN2MxYTJhY2Q1N2NlZTc1MDVmYzY2NzZlNGU1NDQ2MjFjMzA4NjI5NjZlMzdkZGRiNjhlOTJlZmJlNWQ2YlwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJwb3N0LXN0cy1oZWFkZXItYmVmb3JlXCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge30sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgICAgXCJ4LWFtei1zZWN1cml0eS10b2tlblwiOlxuICAgICAgICAgIFwiQVFvRFlYZHpFUFQvLy8vLy8vLy8vd0VYQU1QTEV0Yzc2NGJOckM5U0FQQlNNMjJ3RE9rNHg0SElaOGo0RlpUd2RRV0xXc0tXSEdCdUZxd0FlTWljUlhteGZwU1BmSWVvSVlScVRmbGZLRDhZVXV3dGhBeDdtU0VJL3FrUHBLUGkva01jR2RRcm1HZGVlaE00SUMxTnRCbVVwcDJ3VUU4cGhVWmFtcEtzYnVyRUR5MEtQa3lRRFl3VDdXWjB3cTVWU1hEdnA3NVlVOUhGdmxSZDhUeDZxNmZFOFlRY0hOVlhBa2lZOXE2ZCt4bzByS3dUMzh4VnFyN1pEMHUwaVBQa1VMNjRsSVpicUJBeitzY3FLbWx6bThGRHJ5cE5DOVlqYzhmUE9MbjlGWDlLU1l2S1RyNHJ2eDNpU0lsVEphYklRd2oySUNDUi9vTHhCQT09XCIsXG4gICAgICB9LFxuICAgICAgcGF0aDogXCIvXCIsXG4gICAgfSxcbiAgICBhdXRob3JpemF0aW9uOlxuICAgICAgXCJBV1M0LUhNQUMtU0hBMjU2IENyZWRlbnRpYWw9QUtJREVYQU1QTEUvMjAxNTA4MzAvdXMtZWFzdC0xL3NlcnZpY2UvYXdzNF9yZXF1ZXN0LCBTaWduZWRIZWFkZXJzPWhvc3Q7eC1hbXotZGF0ZTt4LWFtei1zZWN1cml0eS10b2tlbiwgU2lnbmF0dXJlPTg1ZDk2ODI4MTE1YjVkYzBjZmMzYmQxNmFkOWUyMTBkZDc3MmJiZWJiYTA0MTgzNmM2NDUzM2E4MmJlMDVlYWRcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwicG9zdC12YW5pbGxhXCIsXG4gICAgcmVxdWVzdDoge1xuICAgICAgcHJvdG9jb2w6IFwiaHR0cHM6XCIsXG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaG9zdG5hbWU6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICBxdWVyeToge30sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9NWRhN2MxYTJhY2Q1N2NlZTc1MDVmYzY2NzZlNGU1NDQ2MjFjMzA4NjI5NjZlMzdkZGRiNjhlOTJlZmJlNWQ2YlwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJwb3N0LXZhbmlsbGEtZW1wdHktcXVlcnktdmFsdWVcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIFBhcmFtMTogXCJ2YWx1ZTFcIixcbiAgICAgIH0sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9MjgwMzg0NTVkNmRlMTRlYWZjMWY5MjIyY2Y1YWE2ZjFhOTYxOTdkN2RlYjgyNjMyNzFkNDIwZDEzOGFmN2YxMVwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJwb3N0LXZhbmlsbGEtcXVlcnlcIixcbiAgICByZXF1ZXN0OiB7XG4gICAgICBwcm90b2NvbDogXCJodHRwczpcIixcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBob3N0bmFtZTogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIFBhcmFtMTogXCJ2YWx1ZTFcIixcbiAgICAgIH0sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9MjgwMzg0NTVkNmRlMTRlYWZjMWY5MjIyY2Y1YWE2ZjFhOTYxOTdkN2RlYjgyNjMyNzFkNDIwZDEzOGFmN2YxMVwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJwb3N0LXZhbmlsbGEtcXVlcnktbm9udW5yZXNlcnZlZFwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHtcbiAgICAgICAgXCJAIyQlXlwiOiBcIlwiLFxuICAgICAgICBcIitcIjogJy8sPz48YFwiOzpcXFxcfF1be30nLFxuICAgICAgfSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgaG9zdDogXCJleGFtcGxlLmFtYXpvbmF3cy5jb21cIixcbiAgICAgICAgXCJ4LWFtei1kYXRlXCI6IFwiMjAxNTA4MzBUMTIzNjAwWlwiLFxuICAgICAgfSxcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1ob3N0O3gtYW16LWRhdGUsIFNpZ25hdHVyZT02NmM4MjY1N2M4NmUyNmZiMjUyMzhkMGU2OWYwMTFlZGM0YzZkZjVhZTcxMTE5ZDdjYjk4ZWQ5Yjg3MzkzYzFlXCIsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiBcInBvc3QtdmFuaWxsYS1xdWVyeS1zcGFjZVwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHtcbiAgICAgICAgcDogXCJcIixcbiAgICAgIH0sXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9ZTcxNjg4YWRkYjU4YTI2NDE4NjE0MDg1ZmI3MzBiYTNmYWE2MjNiNDYxYzE3ZjQ4ZjJmYmRiOTM2MWI5NGE5YlwiLFxuICB9LFxuICB7XG4gICAgbmFtZTogXCJwb3N0LXgtd3d3LWZvcm0tdXJsZW5jb2RlZFwiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiLFxuICAgICAgICBob3N0OiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICBcIngtYW16LWRhdGVcIjogXCIyMDE1MDgzMFQxMjM2MDBaXCIsXG4gICAgICB9LFxuICAgICAgYm9keTogXCJQYXJhbTE9dmFsdWUxXCIsXG4gICAgICBwYXRoOiBcIi9cIixcbiAgICB9LFxuICAgIGF1dGhvcml6YXRpb246XG4gICAgICBcIkFXUzQtSE1BQy1TSEEyNTYgQ3JlZGVudGlhbD1BS0lERVhBTVBMRS8yMDE1MDgzMC91cy1lYXN0LTEvc2VydmljZS9hd3M0X3JlcXVlc3QsIFNpZ25lZEhlYWRlcnM9Y29udGVudC10eXBlO2hvc3Q7eC1hbXotZGF0ZSwgU2lnbmF0dXJlPWZmMTE4OTc5MzJhZDNmNGU4YjE4MTM1ZDcyMjA1MWU1YWM0NWZjMzg0MjFiMWRhN2I5ZDE5NmEwZmUwOTQ3M2FcIixcbiAgfSxcbiAge1xuICAgIG5hbWU6IFwicG9zdC14LXd3dy1mb3JtLXVybGVuY29kZWQtcGFyYW1ldGVyc1wiLFxuICAgIHJlcXVlc3Q6IHtcbiAgICAgIHByb3RvY29sOiBcImh0dHBzOlwiLFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhvc3RuYW1lOiBcImV4YW1wbGUuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgcXVlcnk6IHt9LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD11dGY4XCIsXG4gICAgICAgIGhvc3Q6IFwiZXhhbXBsZS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIFwieC1hbXotZGF0ZVwiOiBcIjIwMTUwODMwVDEyMzYwMFpcIixcbiAgICAgIH0sXG4gICAgICBib2R5OiBcIlBhcmFtMT12YWx1ZTFcIixcbiAgICAgIHBhdGg6IFwiL1wiLFxuICAgIH0sXG4gICAgYXV0aG9yaXphdGlvbjpcbiAgICAgIFwiQVdTNC1ITUFDLVNIQTI1NiBDcmVkZW50aWFsPUFLSURFWEFNUExFLzIwMTUwODMwL3VzLWVhc3QtMS9zZXJ2aWNlL2F3czRfcmVxdWVzdCwgU2lnbmVkSGVhZGVycz1jb250ZW50LXR5cGU7aG9zdDt4LWFtei1kYXRlLCBTaWduYXR1cmU9MWE3MmVjOGY2NGJkOTE0YjBlNDJlNDI2MDdjN2ZiY2U3ZmIyYzc0NjVmNjNlMzA5MmIzYjBkMzlmYTc3YTZmZVwiLFxuICB9LFxuXTtcbiJdfQ==

@@ -18,2 +18,2 @@ export function iso8601(time) {

}
//# sourceMappingURL=utilDate.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbERhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUE0QjtJQUNsRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDaEIsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUE0QjtJQUNqRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc284NjAxKHRpbWU6IG51bWJlciB8IHN0cmluZyB8IERhdGUpOiBzdHJpbmcge1xuICByZXR1cm4gdG9EYXRlKHRpbWUpXG4gICAgLnRvSVNPU3RyaW5nKClcbiAgICAucmVwbGFjZSgvXFwuXFxkezN9WiQvLCBcIlpcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUodGltZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IERhdGUge1xuICBpZiAodHlwZW9mIHRpbWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGltZSAqIDEwMDApO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0aW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKE51bWJlcih0aW1lKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcih0aW1lKSAqIDEwMDApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodGltZSk7XG4gIH1cblxuICByZXR1cm4gdGltZTtcbn1cbiJdfQ==
{
"name": "@aws-sdk/signature-v4",
"version": "1.0.0-gamma.8",
"version": "1.0.0-rc.1",
"description": "A standalone implementation of the AWS Signature V4 request signing algorithm",

@@ -22,6 +22,6 @@ "main": "./dist/cjs/index.js",

"dependencies": {
"@aws-sdk/is-array-buffer": "1.0.0-gamma.7",
"@aws-sdk/types": "1.0.0-gamma.7",
"@aws-sdk/util-hex-encoding": "1.0.0-gamma.7",
"@aws-sdk/util-uri-escape": "1.0.0-gamma.7",
"@aws-sdk/is-array-buffer": "1.0.0-rc.1",
"@aws-sdk/types": "1.0.0-rc.1",
"@aws-sdk/util-hex-encoding": "1.0.0-rc.1",
"@aws-sdk/util-uri-escape": "1.0.0-rc.1",
"tslib": "^1.8.0"

@@ -31,8 +31,11 @@ },

"@aws-crypto/sha256-js": "^1.0.0-alpha.0",
"@aws-sdk/protocol-http": "1.0.0-gamma.8",
"@aws-sdk/util-buffer-from": "1.0.0-gamma.7",
"@aws-sdk/protocol-http": "1.0.0-rc.1",
"@aws-sdk/util-buffer-from": "1.0.0-rc.1",
"@types/jest": "^26.0.4",
"jest": "^26.1.0",
"typescript": "~4.0.2"
},
"engines": {
"node": ">= 10.0.0"
}
}
{
"compilerOptions": {
"declaration": true,
"sourceMap": true,
"strict": true,
"stripInternal": true,
"rootDir": "./src",
"outDir": "./dist/cjs",
"importHelpers": true,
"noEmitHelpers": true,
"noUnusedLocals": true,

@@ -12,0 +7,0 @@ "baseUrl": "."

{
"compilerOptions": {
"declaration": true,
"sourceMap": true,
"strict": true,
"stripInternal": true,
"rootDir": "./src",
"outDir": "./dist/es",
"importHelpers": true,
"noEmitHelpers": true,
"noUnusedLocals": true,

@@ -12,0 +7,0 @@ "baseUrl": ".",

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