Socket
Socket
Sign inDemoInstall

@atlas.js/atlas

Package Overview
Dependencies
Maintainers
2
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@atlas.js/atlas - npm Package Compare versions

Comparing version 2.1.0 to 2.2.0-alpha.0

src/atlas.d.ts

16

package.json
{
"name": "@atlas.js/atlas",
"description": "The main package containing the core functionality of @atlas.js",
"version": "2.1.0",
"description": "A component-based Node.js library to reduce boilerplate and provide sane project structure 🍻",
"version": "2.2.0-alpha.0",
"author": "Robert Rossmann <robert.rossmann@strv.com>",

@@ -9,6 +9,7 @@ "bugs": "https://github.com/strvcom/atlas.js/issues",

"dependencies": {
"@atlas.js/action": "^1.1.1",
"@atlas.js/errors": "^0.2.1",
"@atlas.js/hook": "^2.0.1",
"@atlas.js/service": "^1.1.1",
"@atlas.js/action": "^1.2.0-alpha.0",
"@atlas.js/errors": "^0.3.0-alpha.0",
"@atlas.js/hook": "^2.1.0-alpha.0",
"@atlas.js/service": "^1.2.0-alpha.0",
"@types/pino": "^4.7.0",
"ajv": "^6.5.0",

@@ -33,3 +34,4 @@ "ajv-keywords": "^3.2.0",

"url": "git://github.com/strvcom/atlas.js.git"
}
},
"gitHead": "8b6af27b5ca8e64ba5dffa05e92c01d804dbf6f1"
}

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

function _classPrivateFieldSet(receiver, privateMap, value) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to set private field on non-instance"); } privateMap.set(receiver, value); return value; }
function _classPrivateFieldSet(receiver, privateMap, value) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to set private field on non-instance"); } var descriptor = privateMap.get(receiver); if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; return value; }
function _classPrivateFieldGet(receiver, privateMap) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return privateMap.get(receiver); }
function _classPrivateFieldGet(receiver, privateMap) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return privateMap.get(receiver).value; }

@@ -131,17 +131,35 @@ class Atlas {

_env.set(this, null);
_env.set(this, {
writable: true,
value: null
});
_root.set(this, null);
_root.set(this, {
writable: true,
value: null
});
_prepared.set(this, false);
_prepared.set(this, {
writable: true,
value: false
});
_started.set(this, false);
_started.set(this, {
writable: true,
value: false
});
_catalog.set(this, {
services: new Map(),
hooks: new Map(),
actions: new Map()
writable: true,
value: {
services: new Map(),
hooks: new Map(),
actions: new Map()
}
});
_observers.set(this, new Map());
_observers.set(this, {
writable: true,
value: new Map()
});

@@ -374,2 +392,2 @@ _defineProperty(this, "validator", null);

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF0bGFzLm1qcyJdLCJuYW1lcyI6WyJBdGxhcyIsImluaXQiLCJvcHRpb25zIiwiY29uZmlnIiwiaG9va3MiLCJzZXJ2aWNlcyIsImFjdGlvbnMiLCJhbGlhc2VzIiwiYXRsYXMiLCJlbnYiLCJyb290IiwidHlwZXMiLCJwYXRocyIsIm1vZHVsZXMiLCJ0eXBlIiwicGF0aCIsInJlc29sdmUiLCJyZXF1aXJlIiwib3B0aW9uYWwiLCJsb2ciLCJkZWJ1ZyIsImJvb3RzdHJhcCIsImNvbXBvbmVudHMiLCJPYmplY3QiLCJrZXlzIiwiYWxpYXMiLCJIb29rIiwiZW50cmllcyIsImhvb2siLCJTZXJ2aWNlIiwic2VydmljZSIsIkFjdGlvbiIsImFjdGlvbiIsInByZXBhcmVkIiwic3RhcnRlZCIsImNvbnN0cnVjdG9yIiwiTWFwIiwicHJvY2VzcyIsIk5PREVfRU5WIiwiRnJhbWV3b3JrRXJyb3IiLCJta2NvbmZpZyIsImRlZmF1bHRzIiwibWtsb2ciLCJ2YWxpZGF0b3IiLCJBanYiLCJrZXl3b3JkcyIsImxvY2F0aW9uIiwiYWJzb2x1dGUiLCJsb2FkIiwib3B0cmVxdWlyZSIsImNvbnRlbnRzIiwibm9ybWFsaXNlIiwiZGVmYXVsdCIsIkNvbXBvbmVudCIsIm9wdHMiLCJjb21wb25lbnQiLCJwcmVwYXJlIiwiY2F0YWxvZyIsImNvbnRhaW5lciIsIm9ic2VydmVzIiwic2V0IiwiUHJvbWlzZSIsImFsbCIsIkFycmF5IiwiZnJvbSIsIm1hcCIsImV4cG9zZSIsInZhbHVlIiwiaW50ZXJuYWwiLCJmaWx0ZXIiLCJyZXN1bHQiLCJCb29sZWFuIiwiZm9yRWFjaCIsImRpc3BhdGNoIiwic3RhcnQiLCJlcnIiLCJzdG9wIiwiY2F0Y2giLCJzdG9wRXJyIiwiZmF0YWwiLCJpbmZvIiwiZXJyb3IiLCJyZXZlcnNlIiwibmFtZSIsImJhc2VuYW1lIiwiY3dkIiwibGV2ZWwiLCJzZXJpYWxpemVycyIsInBpbm8iLCJzdGRTZXJpYWxpemVycyIsInJlcSIsInJlcyIsImFs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QUFLO0FBQ0hnRSxVQUFNcEUsY0FBS3FFLFFBQUwsQ0FBYy9DLFFBQVFnRCxHQUFSLEVBQWQsQ0FESDtBQUVIQyxXQUFPLE1BRko7QUFHSEMsaUJBQWE7QUFDWFosV0FBS2EsY0FBS0MsY0FBTCxDQUFvQmQsR0FEZDtBQUVYZSxXQUFLRixjQUFLQyxjQUFMLENBQW9CQyxHQUZkO0FBR1hDLFdBQUtILGNBQUtDLGNBQUwsQ0FBb0JFO0FBSGQ7QUFIVixHQURXO0FBV2hCaEQsYUFBVztBQUNUaUQsZUFBVyxJQURGO0FBRVRDLGlCQUFhLElBRko7QUFHVGhELGNBQVUsQ0FDUixRQURRO0FBSEQ7QUFYSyxDOzs7Ozs7Ozs7Ozs7OztlQXVmTDdDLEsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBXZSB1c2UgZm9yLWF3YWl0IHBhdHRlcm4gcXVpdGUgZXh0ZW5zaXZlbHkgaGVyZSBmb3IgbGVnaXRpbWF0ZSBwdXJwb3Nlc1xuLyogZXNsaW50LWRpc2FibGUgbm8tYXdhaXQtaW4tbG9vcCAqL1xuXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IEFqdiBmcm9tICdhanYnXG5pbXBvcnQgYWp2S2V5d29yZHMgZnJvbSAnYWp2LWtleXdvcmRzJ1xuaW1wb3J0IHBpbm8gZnJvbSAncGlubydcbmltcG9ydCB7XG4gIGRlZmF1bHRzRGVlcCBhcyBkZWZhdWx0cyxcbiAgaXNQbGFpbk9iamVjdCxcbn0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHsgRnJhbWV3b3JrRXJyb3IgfSBmcm9tICdAYXRsYXMuanMvZXJyb3JzJ1xuaW1wb3J0IHtcbiAgZXhwb3NlLFxuICBkaXNwYXRjaCxcbiAgY29tcG9uZW50LFxuICBta2NvbmZpZyxcbiAgbWtsb2csXG4gIG9wdHJlcXVpcmUsXG59IGZyb20gJy4vcHJpdmF0ZSdcblxuLyoqXG4gKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgeW91ciBhcHBsaWNhdGlvbiBhbmQgYWdncmVnYXRlcyBhbGwgY29tcG9uZW50cyB0b2dldGhlclxuICpcbiAqIFlvdSBzaG91bGQgZ2VuZXJhbGx5IGNyZWF0ZSBvbmx5IG9uZSBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGluIGEgcHJvZ3JhbS5cbiAqL1xuY2xhc3MgQXRsYXMge1xuICBzdGF0aWMgZGVmYXVsdHMgPSB7XG4gICAgbG9nOiB7XG4gICAgICBuYW1lOiBwYXRoLmJhc2VuYW1lKHByb2Nlc3MuY3dkKCkpLFxuICAgICAgbGV2ZWw6ICdpbmZvJyxcbiAgICAgIHNlcmlhbGl6ZXJzOiB7XG4gICAgICAgIGVycjogcGluby5zdGRTZXJpYWxpemVycy5lcnIsXG4gICAgICAgIHJlcTogcGluby5zdGRTZXJpYWxpemVycy5yZXEsXG4gICAgICAgIHJlczogcGluby5zdGRTZXJpYWxpemVycy5yZXMsXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICB2YWxpZGF0b3I6IHtcbiAgICAgIGFsbEVycm9yczogdHJ1ZSxcbiAgICAgIHVzZURlZmF1bHRzOiB0cnVlLFxuICAgICAga2V5d29yZHM6IFtcbiAgICAgICAgJ3R5cGVvZicsXG4gICAgICBdLFxuICAgIH0sXG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGlzZSBhIGJyYW5kLW5ldyBhdGxhcyBpbnN0YW5jZSBmcm9tIHRoZSBnaXZlbiBtb2R1bGUgbG9jYXRpb25zXG4gICAqXG4gICAqIFVzZSB0aGlzIG1ldGhvZCB0byBxdWlja2x5IGNvbmZpZ3VyZSBBdGxhcyBpbnN0YW5jZSBieSBzaW1wbHkgdGVsbGluZyBpdCB3aGVyZSB5b3VyIGNvbXBvbmVudHNcbiAgICogbGl2ZSBvbiB0aGUgZmlsZXN5c3RlbSwgYW5kIEF0bGFzIHdpbGwgbG9hZCB0aGVtIGZyb20gdGhlIGdpdmVuIG1vZHVsZSBsb2NhdGlvbnMgYW5kIGFkZCB0aGVtXG4gICAqIHRvIHRoZSBBdGxhcyBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICAgIG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgICAgb3B0aW9ucy5lbnYgICAgICAgICAgICAgICAgICAgVGhlIGVudmlyb25tZW50IHVuZGVyIHdoaWNoIHRvIG9wZXJhdGVcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICAgIG9wdGlvbnMucm9vdCAgICAgICAgICAgICAgICAgIFRoZSByb290IGRpcmVjdG9yeSB0byB3aGljaCBhbGwgb3RoZXJcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yaWVzIG1lbnRpb25lZCBoZXJlIGFyZSByZWxhdGl2ZVxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgICAgb3B0aW9ucy5jb25maWc9J2NvbmZpZycgICAgICAgTW9kdWxlIGxvY2F0aW9uIGZvciB0aGUgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgICAgb3B0aW9ucy5ob29rcz0naG9va3MnICAgICAgICAgTW9kdWxlIGxvY2F0aW9uIGZvciB0aGUgaG9va3NcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICAgIG9wdGlvbnMuc2VydmljZXM9J3NlcnZpY2VzJyAgIE1vZHVsZSBsb2NhdGlvbiBmb3IgdGhlIHNlcnZpY2VzXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgICBvcHRpb25zLmFjdGlvbnM9J2FjdGlvbnMnICAgICBNb2R1bGUgbG9jYXRpb24gZm9yIHRoZSBhY3Rpb25zXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgICBvcHRpb25zLmFsaWFzZXM9J2FsaWFzZXMnICAgICBNb2R1bGUgbG9jYXRpb24gZm9yIHRoZSBhbGlhc2VzXG4gICAqIEByZXR1cm4gICAge0F0bGFzfVxuICAgKi9cbiAgc3RhdGljIGluaXQob3B0aW9ucyA9IHt9KSB7XG4gICAgZGVmYXVsdHMob3B0aW9ucywge1xuICAgICAgY29uZmlnOiAnY29uZmlnJyxcbiAgICAgIGhvb2tzOiAnaG9va3MnLFxuICAgICAgc2VydmljZXM6ICdzZXJ2aWNlcycsXG4gICAgICBhY3Rpb25zOiAnYWN0aW9ucycsXG4gICAgICBhbGlhc2VzOiAnYWxpYXNlcycsXG4gICAgfSlcblxuICAgIGNvbnN0IGF0bGFzID0gbmV3IHRoaXMoe1xuICAgICAgZW52OiBvcHRpb25zLmVudixcbiAgICAgIHJvb3Q6IG9wdGlvbnMucm9vdCxcbiAgICAgIGNvbmZpZzogb3B0aW9ucy5jb25maWcsXG4gICAgfSlcbiAgICBjb25zdCB0eXBlcyA9IFtcbiAgICAgICdob29rcycsXG4gICAgICAnc2VydmljZXMnLFxuICAgICAgJ2FjdGlvbnMnLFxuICAgICAgJ2FsaWFzZXMnLFxuICAgIF1cbiAgICBjb25zdCBwYXRocyA9IHt9XG4gICAgY29uc3QgbW9kdWxlcyA9IHt9XG5cbiAgICBmb3IgKGNvbnN0IHR5cGUgb2YgdHlwZXMpIHtcbiAgICAgIHBhdGhzW3R5cGVdID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMucm9vdCwgb3B0aW9uc1t0eXBlXSlcbiAgICAgIG1vZHVsZXNbdHlwZV0gPSBhdGxhcy5yZXF1aXJlKG9wdGlvbnNbdHlwZV0sIHsgb3B0aW9uYWw6IHRydWUgfSlcbiAgICB9XG5cbiAgICBhdGxhcy5sb2cuZGVidWcoeyBwYXRocyB9LCAnYXRsYXM6aW5pdCcpXG5cbiAgICByZXR1cm4gdGhpcy5ib290c3RyYXAoYXRsYXMsIG1vZHVsZXMpXG4gIH1cblxuICAvKipcbiAgICogQm9vdHN0cmFwIHRoZSBnaXZlbiBBdGxhcyBpbnN0YW5jZSB3aXRoIHRoZSBwcm92aWRlZCBtb2R1bGVzXG4gICAqXG4gICAqIFVzZSB0aGlzIG1ldGhvZCB0byBxdWlja2x5IHNldCB1cCB0aGUgZ2l2ZW4gQXRsYXMgaW5zdGFuY2UgdG8gdXNlIHRoZSBwcm92aWRlZCBjb21wb25lbnRzLiBUaGlzXG4gICAqIGlzIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBoYXZlIG11bHRpcGxlIGVudHJ5IHBvaW50cyB0byB5b3VyIHByb2dyYW0gYW5kIHNvbWUgZW50cnlwb2ludHMgc2hvdWxkXG4gICAqIG9ubHkgdXNlIHNvbWUgY29tcG9uZW50cyBhdmFpbGFibGUuIFRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgd2hlbiBpbXBsZW1lbnRpbmcgd29ya2VyXG4gICAqIHByb2Nlc3NlcyB3aGVyZSB5b3Ugb25seSBuZWVkIGEgc3Vic2V0IG9mIGFsbCBhdmFpbGFibGUgY29tcG9uZW50cy4gVGhpcyBtZXRob2QsIHdoaWxlIG1vcmVcbiAgICogdmVyYm9zZSBhcyBBdGxhcy5pbml0KCksIHN0aWxsIGZyZWVzIHlvdSBmcm9tIG1hbnVhbGx5IGFkZGluZyBhbGwgdGhlIGNvbXBvbmVudHMgYnkgaGFuZCB3aGlsZVxuICAgKiBwcm92aWRpbmcgZ3JlYXRlciBmbGV4aWJpbGl0eSBhcyB0byB3aGljaCBjb21wb25lbnRzIHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogQHBhcmFtICAgICB7QXRsYXN9ICAgYXRsYXMgICAgICAgICAgICAgICAgIFRoZSBBdGxhcyBpbnN0YW5jZSB0byBib290c3RyYXBcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgbW9kdWxlcz17fSAgICAgICAgICAgIEFsbCB0aGUgbW9kdWxlcyB3aGljaCBzaG91bGQgYmUgYWRkZWQgdG8gQXRsYXNcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgbW9kdWxlcy5hY3Rpb25zICAgICAgIEFjdGlvbnMgdG8gYWRkXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gIG1vZHVsZXMuaG9va3MgICAgICAgICBIb29rcyB0byBhZGRcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgbW9kdWxlcy5zZXJ2aWNlcyAgICAgIFNlcnZpY2VzIHRvIGFkZFxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICBtb2R1bGVzLmFsaWFzZXMgICAgICAgQWxpYXNlcyBmb3IgYWxsIHRoZSBjb21wb25lbnRzXG4gICAqIEByZXR1cm4gICAge0F0bGFzfSAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgQXRsYXMgaW5zdGFuY2Ugd2l0aCBhbGwgY29tcG9uZW50cyBhZGRlZCwgcmVhZHlcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGJlIHN0YXJ0ZWRcbiAgICovXG4gIHN0YXRpYyBib290c3RyYXAoYXRsYXMsIG1vZHVsZXMgPSB7fSkge1xuICAgIGRlZmF1bHRzKG1vZHVsZXMsIHtcbiAgICAgIC8vIGNvbmZpZyBtb2R1bGUgaXMgbG9hZGVkIGJ5IEF0bGFzIGluc3RhbmNlIGl0c2VsZiwgc28gaXQncyBva2F5IHRvIHVzZSBhIHN0cmluZyBoZXJlIGFuZCBsZXRcbiAgICAgIC8vIEF0bGFzIGxvYWQgaXRcbiAgICAgIGNvbmZpZzogJ2NvbmZpZycsXG4gICAgICAvLyBUaGUgZm9sbG93aW5nIG1vZHVsZXMgbXVzdCBhbHJlYWR5IGJlIHByb3ZpZGVkIGRpcmVjdGx5IGFzIHdlIHdvbid0IGxvYWQgdGhlbVxuICAgICAgYWN0aW9uczoge30sXG4gICAgICBob29rczoge30sXG4gICAgICBzZXJ2aWNlczoge30sXG4gICAgICBhbGlhc2VzOiB7XG4gICAgICAgIGFjdGlvbnM6IHt9LFxuICAgICAgICBob29rczoge30sXG4gICAgICAgIHNlcnZpY2VzOiB7fSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIGF0bGFzLmxvZy5kZWJ1Zyh7XG4gICAgICBlbnY6IGF0bGFzLmVudixcbiAgICAgIHJvb3Q6IGF0bGFzLnJvb3QsXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIGFjdGlvbnM6IE9iamVjdC5rZXlzKG1vZHVsZXMuYWN0aW9ucyksXG4gICAgICAgIGhvb2tzOiBPYmplY3Qua2V5cyhtb2R1bGVzLmhvb2tzKSxcbiAgICAgICAgc2VydmljZXM6IE9iamVjdC5rZXlzKG1vZHVsZXMuc2VydmljZXMpLFxuICAgICAgfSxcbiAgICB9LCAnYXRsYXM6Ym9vdHN0cmFwJylcblxuICAgIC8vIEhvb2tzXG4gICAgZm9yIChjb25zdCBbYWxpYXMsIEhvb2tdIG9mIE9iamVjdC5lbnRyaWVzKG1vZHVsZXMuaG9va3MpKSB7XG4gICAgICBjb25zdCBhbGlhc2VzID0gbW9kdWxlcy5hbGlhc2VzLmhvb2tzW2FsaWFzXVxuICAgICAgYXRsYXMuaG9vayhhbGlhcywgSG9vaywgeyBhbGlhc2VzIH0pXG4gICAgfVxuXG4gICAgLy8gU2VydmljZXNcbiAgICBmb3IgKGNvbnN0IFthbGlhcywgU2VydmljZV0gb2YgT2JqZWN0LmVudHJpZXMobW9kdWxlcy5zZXJ2aWNlcykpIHtcbiAgICAgIGNvbnN0IGFsaWFzZXMgPSBtb2R1bGVzLmFsaWFzZXMuc2VydmljZXNbYWxpYXNdXG4gICAgICBhdGxhcy5zZXJ2aWNlKGFsaWFzLCBTZXJ2aWNlLCB7IGFsaWFzZXMgfSlcbiAgICB9XG5cbiAgICAvLyBBY3Rpb25zXG4gICAgZm9yIChjb25zdCBbYWxpYXMsIEFjdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMobW9kdWxlcy5hY3Rpb25zKSkge1xuICAgICAgY29uc3QgYWxpYXNlcyA9IG1vZHVsZXMuYWxpYXNlcy5hY3Rpb25zW2FsaWFzXVxuICAgICAgYXRsYXMuYWN0aW9uKGFsaWFzLCBBY3Rpb24sIHsgYWxpYXNlcyB9KVxuICAgIH1cblxuICAgIHJldHVybiBhdGxhc1xuICB9XG5cblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgdW5kZXIgd2hpY2ggdGhpcyBpbnN0YW5jZSBvcGVyYXRlc1xuICAgKlxuICAgKiBEZWZhdWx0cyB0byBOT0RFX0VOViBmcm9tIHRoZSBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogQHJlYWRvbmx5XG4gICAqIEByZXR1cm4gICAge1N0cmluZ31cbiAgICovXG4gIGdldCBlbnYoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2VudlxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByb290IGZvbGRlciB3aGVyZSBhbGwgb3RoZXIgcGF0aHMgc2hvdWxkIGJlIHJlbGF0aXZlIHRvXG4gICAqXG4gICAqIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IHNldCB0aGlzIHRvIHRoZSBwcm9qZWN0J3Mgcm9vdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEByZWFkb25seVxuICAgKiBAcmV0dXJuICAgIHtTdHJpbmd9XG4gICAqL1xuICBnZXQgcm9vdCgpIHtcbiAgICByZXR1cm4gdGhpcy4jcm9vdFxuICB9XG5cbiAgLyoqXG4gICAqIElzIHRoaXMgaW5zdGFuY2UgaW4gYSBwcmVwYXJlZCBzdGF0ZT9cbiAgICpcbiAgICogQHJlYWRvbmx5XG4gICAqIEByZXR1cm4gICAge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgcHJlcGFyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3ByZXBhcmVkXG4gIH1cblxuICAvKipcbiAgICogSXMgdGhpcyBpbnN0YW5jZSBpbiBhIHN0YXJ0ZWQgc3RhdGU/XG4gICAqXG4gICAqIEByZWFkb25seVxuICAgKiBAcmV0dXJuICAgIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IHN0YXJ0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3N0YXJ0ZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBBdGxhcyBjb25maWd1cmF0aW9uLCBhcyBwYXNzZWQgaW4gdG8gdGhlIGNvbnN0cnVjdG9yXG4gICAqXG4gICAqIEB0eXBlICAgIHtPYmplY3R9XG4gICAqL1xuICBjb25maWcgPSB7fVxuXG4gIC8qKlxuICAgKiBBbGwgc2VydmljZXMgYWRkZWQgdG8gdGhpcyBpbnN0YW5jZVxuICAgKlxuICAgKiBAdHlwZSAgICB7T2JqZWN0fVxuICAgKi9cbiAgc2VydmljZXMgPSB7fVxuXG4gIC8qKlxuICAgKiBBbGwgYWN0aW9ucyBhZGRlZCB0byB0aGlzIGluc3RhbmNlXG4gICAqXG4gICAqIEB0eXBlICAgIHtPYmplY3R9XG4gICAqL1xuICBhY3Rpb25zID0ge31cblxuICAjZW52ID0gbnVsbFxuICAjcm9vdCA9IG51bGxcbiAgI3ByZXBhcmVkID0gZmFsc2VcbiAgI3N0YXJ0ZWQgPSBmYWxzZVxuICAjY2F0YWxvZyA9IHtcbiAgICBzZXJ2aWNlczogbmV3IE1hcCgpLFxuICAgIGhvb2tzOiBuZXcgTWFwKCksXG4gICAgYWN0aW9uczogbmV3IE1hcCgpLFxuICB9XG5cbiAgI29ic2VydmVycyA9IG5ldyBNYXAoKVxuXG4gIC8qKlxuICAgKiBBbiBpbnN0YW5jZSBvZiBBanYgdXNlZCB0byB2YWxpZGF0ZSBjb21wb25lbnQgY29uZmlndXJhdGlvblxuICAgKiBAdHlwZSAgICB7QWp2fVxuICAgKi9cbiAgdmFsaWRhdG9yID0gbnVsbFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgaW5zdGFuY2VcbiAgICpcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRpb25zICAgICAgICAgICAgIE9wdGlvbnMgZm9yIHRoZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdGlvbnMuY29uZmlnICAgICAgQ29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSBpbnN0YW5jZSBhbmQgZm9yIGFsbFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZXMgb3Igb3RoZXIgY29tcG9uZW50cyB3aGljaCB3aWxsIGJlIGFkZGVkIHRvXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgaW5zdGFuY2VcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBvcHRpb25zLnJvb3QgICAgICAgIFRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgaW5zdGFuY2VcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBvcHRpb25zLmVudiAgICAgICAgIFRoZSBlbnZpcm9ubWVudCB1bmRlciB3aGljaCB0aGlzIGluc3RhbmNlIG9wZXJhdGVzLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50cyBtYXkgdXNlIHRoaXMgdmFsdWUgZm9yIHZhcmlvdXMgcHVycG9zZXMuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byBOT0RFX0VOVi5cbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgIC8vIEluaXRpYWxpc2UgcHJpdmF0ZSBzdHVmZlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm9jZXNzLWVudlxuICAgIHRoaXMuI2VudiA9IG9wdGlvbnMuZW52IHx8IHByb2Nlc3MuZW52Lk5PREVfRU5WXG4gICAgdGhpcy4jcm9vdCA9IG9wdGlvbnMucm9vdFxuXG4gICAgLy8gU2FmZXR5IGNoZWNrc1xuICAgIGlmICghdGhpcy4jZW52KSB7XG4gICAgICB0aHJvdyBuZXcgRnJhbWV3b3JrRXJyb3IoJ2VudiBub3Qgc3BlY2lmaWVkIGFuZCBOT0RFX0VOViB3YXMgbm90IHNldCcpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLnJvb3QgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRnJhbWV3b3JrRXJyb3IoYHJvb3QgbXVzdCBiZSBleHBsaWNpdGx5IHNwZWNpZmllZCwgZ290ICR7b3B0aW9ucy5yb290fWApXG4gICAgfVxuXG4gICAgdGhpcy5jb25maWcgPSB0aGlzOjpta2NvbmZpZyhvcHRpb25zLmNvbmZpZywge1xuICAgICAgYXRsYXM6IEF0bGFzLmRlZmF1bHRzLFxuICAgICAgc2VydmljZXM6IHt9LFxuICAgICAgaG9va3M6IHt9LFxuICAgICAgYWN0aW9uczoge30sXG4gICAgfSlcbiAgICAvLyBMb2dnZXIg8J+MslxuICAgIHRoaXMubG9nID0gdGhpczo6bWtsb2codGhpcy5jb25maWcuYXRsYXMubG9nKVxuICAgIC8vIEFqdiB2YWxpZGF0b3Ig4pyTXG4gICAgdGhpcy52YWxpZGF0b3IgPSBuZXcgQWp2KHRoaXMuY29uZmlnLmF0bGFzLnZhbGlkYXRvcilcbiAgICBhanZLZXl3b3Jkcyh0aGlzLnZhbGlkYXRvciwgdGhpcy5jb25maWcuYXRsYXMudmFsaWRhdG9yLmtleXdvcmRzKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVpcmUgYSBtb2R1bGUgYnkgcGF0aCwgcmVsYXRpdmUgdG8gdGhlIHByb2plY3Qgcm9vdFxuICAgKlxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgIGxvY2F0aW9uICAgICAgICAgIFRoZSBtb2R1bGUncyBsb2NhdGlvbiwgcmVsYXRpdmUgdG8gcm9vdFxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdGlvbnM9e30gICAgICAgIE9wdGlvbnNcbiAgICogQHBhcmFtICAgICB7Qm9vbGVhbn0gICBvcHRpb25zLm9wdGlvbmFsICBJZiB0cnVlLCB3aWxsIG5vdCB0aHJvdyBpZiB0aGUgbW9kdWxlIGRvZXMgbm90IGV4aXN0XG4gICAqIEBwYXJhbSAgICAge0Jvb2xlYW59ICAgb3B0aW9ucy5ub3JtYWxpc2UgSWYgdHJ1ZSwgaXQgd2lsbCBwcmVmZXIgdGhlIEVTIG1vZHVsZXMnIGRlZmF1bHQgZXhwb3J0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlciBuYW1lZCBleHBvcnRzIG9yIHRoZSBDb21tb25KUyBleHBvcnRzXG4gICAqIEBwYXJhbSAgICAge0Jvb2xlYW59ICAgb3B0aW9ucy5hYnNvbHV0ZSAgSWYgdHJ1ZSwgd2lsbCB0cnkgdG8gbG9hZCB0aGUgbW9kdWxlIHdpdGhvdXRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZpbmcgdGhlIG1vZHVsZSdzIG5hbWUgdG8gdGhlIHByb2plY3Qgcm9vdCAoaXRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGxvYWQgdGhlIG1vZHVsZSB1c2luZyBzdGFuZGFyZCBOb2RlJ3MgbWVjaGFuaXNtKVxuICAgKiBAcmV0dXJuICAgIHttaXhlZH0gICAgICAgICAgICAgICAgICAgICAgIFRoZSBtb2R1bGUncyBjb250ZW50c1xuICAgKi9cbiAgcmVxdWlyZShsb2NhdGlvbiwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbG9jYXRpb24gPSBvcHRpb25zLmFic29sdXRlXG4gICAgICA/IGxvY2F0aW9uXG4gICAgICA6IHBhdGgucmVzb2x2ZSh0aGlzLnJvb3QsIGxvY2F0aW9uKVxuXG4gICAgY29uc3QgbG9hZCA9IG9wdGlvbnMub3B0aW9uYWxcbiAgICAgID8gb3B0cmVxdWlyZVxuICAgICAgOiByZXF1aXJlXG4gICAgY29uc3QgY29udGVudHMgPSBsb2FkKGxvY2F0aW9uKVxuXG4gICAgcmV0dXJuIG9wdGlvbnMubm9ybWFsaXNlICYmIGlzUGxhaW5PYmplY3QoY29udGVudHMuZGVmYXVsdClcbiAgICAgID8gY29udGVudHMuZGVmYXVsdFxuICAgICAgOiBjb250ZW50c1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgc2VydmljZSBpbnRvIHRoaXMgYXRsYXMgYXQgZ2l2ZW4gYWxpYXNcbiAgICpcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBhbGlhcyAgICAgICAgICAgVGhlIGFsaWFzIGZvciB0aGUgc2VydmljZSAtIGl0IHdpbGwgYmUgdXNlZCBmb3IgZXhwb3NpbmdcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHNlcnZpY2UncyBBUEkgb24gdGhlIGF0bGFzLnNlcnZpY2VzIG9iamVjdCBhbmQgZm9yXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgY29uZmlndXJhdGlvbiBkYXRhIHRvIGl0XG4gICAqIEBwYXJhbSAgICAge2NsYXNzfSAgICAgQ29tcG9uZW50ICAgICAgIFRoZSBzZXJ2aWNlIGNsYXNzXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0cyAgICAgICAgICAgIFJ1bnRpbWUgb3B0aW9ucyBmb3IgdGhlIHNlcnZpY2VcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRzLmFsaWFzZXMgICAgQmluZGluZ3MgdG8gb3RoZXIgZGVmaW5lZCBjb21wb25lbnRzXG4gICAqIEByZXR1cm4gICAge3RoaXN9XG4gICAqL1xuICBzZXJ2aWNlKGFsaWFzLCBDb21wb25lbnQsIG9wdHMgPSB7fSkge1xuICAgIHRoaXM6OmNvbXBvbmVudCh7XG4gICAgICB0eXBlOiAnc2VydmljZScsXG4gICAgICBhbGlhcyxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIGFsaWFzZXM6IG9wdHMuYWxpYXNlcyxcbiAgICB9LCB0aGlzLiNjYXRhbG9nLnNlcnZpY2VzKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGhvb2sgaW50byB0aGlzIGF0bGFzIHVzaW5nIGdpdmVuIGFsaWFzXG4gICAqXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgYWxpYXMgICAgICAgICAgIFRoZSBhbGlhcyBmb3IgdGhlIGhvb2sgLSBpdCB3aWxsIGJlIHVzZWQgZm9yIHBhc3NpbmdcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbiBkYXRhIHRvIGl0XG4gICAqIEBwYXJhbSAgICAge2NsYXNzfSAgICAgQ29tcG9uZW50ICAgICAgIFRoZSBob29rIGNsYXNzXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0cyAgICAgICAgICAgIFJ1bnRpbWUgb3B0aW9ucyBmb3IgdGhlIGhvb2tcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRzLmFsaWFzZXMgICAgQmluZGluZ3MgdG8gb3RoZXIgZGVmaW5lZCBjb21wb25lbnRzXG4gICAqIEByZXR1cm4gICAge3RoaXN9XG4gICAqL1xuICBob29rKGFsaWFzLCBDb21wb25lbnQsIG9wdHMgPSB7fSkge1xuICAgIHRoaXM6OmNvbXBvbmVudCh7XG4gICAgICB0eXBlOiAnaG9vaycsXG4gICAgICBhbGlhcyxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIGFsaWFzZXM6IG9wdHMuYWxpYXNlcyxcbiAgICB9LCB0aGlzLiNjYXRhbG9nLmhvb2tzKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhbiBhY3Rpb24gaW50byB0aGlzIGF0bGFzIGF0IGdpdmVuIGFsaWFzXG4gICAqXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgYWxpYXMgICAgICAgICAgIFRoZSBhbGlhcyBmb3IgdGhlIGFjdGlvbiAtIGl0IHdpbGwgYmUgdXNlZCBmb3IgZXhwb3NpbmdcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGFjdGlvbidzIEFQSSBvbiB0aGUgYXRsYXMuYWN0aW9ucyBvYmplY3QgYW5kIGZvclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIGNvbmZpZ3VyYXRpb24gZGF0YSB0byBpdFxuICAgKiBAcGFyYW0gICAgIHtjbGFzc30gICAgIENvbXBvbmVudCAgICAgICBUaGUgYWN0aW9uIGNsYXNzXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0cyAgICAgICAgICAgIFJ1bnRpbWUgb3B0aW9ucyBmb3IgdGhlIGFjdGlvblxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdHMuYWxpYXNlcyAgICBCaW5kaW5ncyB0byBvdGhlciBkZWZpbmVkIGNvbXBvbmVudHNcbiAgICogQHJldHVybiAgICB7dGhpc31cbiAgICovXG4gIGFjdGlvbihhbGlhcywgQ29tcG9uZW50LCBvcHRzID0ge30pIHtcbiAgICB0aGlzOjpjb21wb25lbnQoe1xuICAgICAgdHlwZTogJ2FjdGlvbicsXG4gICAgICBhbGlhcyxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIGFsaWFzZXM6IG9wdHMuYWxpYXNlcyxcbiAgICB9LCB0aGlzLiNjYXRhbG9nLmFjdGlvbnMpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgYWxsIHNlcnZpY2VzIGFuZCBob29rcyBmb3IgdXNlXG4gICAqXG4gICAqIEdlbmVyYWxseSB5b3Ugc2hvdWxkIHVzZSBgYXRsYXMuc3RhcnQoKWAgaW5zdGVhZCB0byBnZXQgeW91ciBpbnN0YW5jZSB1cCBhbmQgcnVubmluZy4gSG93ZXZlcixcbiAgICogc29tZXRpbWVzIGl0IGlzIG5lY2Vzc2FyeSB0byBnZXQgYWxsIHRoZSBzZXJ2aWNlcyBpbnRvIGEgXCJnZXQtcmVhZHlcIiBzdGF0ZSBiZWZvcmUgdGhleSBzdGFydFxuICAgKiBjb25uZWN0aW5nIHRvIHJlbW90ZSByZXNvdXJjZXMgb3IgZG9pbmcgYW55IGludGVuc2l2ZSBJL08gb3BlcmF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybiAgICB7UHJvbWlzZTx0aGlzPn1cbiAgICovXG4gIGFzeW5jIHByZXBhcmUoKSB7XG4gICAgaWYgKHRoaXMucHJlcGFyZWQpIHtcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG4gICAgY29uc3QgY2F0YWxvZyA9IHRoaXMuI2NhdGFsb2dcbiAgICBjb25zdCB7IHNlcnZpY2VzLCBhY3Rpb25zLCBob29rcyB9ID0gY2F0YWxvZ1xuXG4gICAgZm9yIChjb25zdCBbYWxpYXMsIGNvbnRhaW5lcl0gb2YgaG9va3MpIHtcbiAgICAgIGlmICghY29udGFpbmVyLkNvbXBvbmVudC5vYnNlcnZlcykge1xuICAgICAgICB0aHJvdyBuZXcgRnJhbWV3b3JrRXJyb3IoYEhvb2sgJHthbGlhc30gZG9lcyBub3QgaGF2ZSBzdGF0aWMgJ29ic2VydmVzJyBwcm9wZXJ0eWApXG4gICAgICB9XG5cbiAgICAgIC8vIFByZXBhcmUgb2JzZXJ2ZXJzIG9mIEF0bGFzIGl0c2VsZlxuICAgICAgaWYgKGNvbnRhaW5lci5Db21wb25lbnQub2JzZXJ2ZXMgPT09ICdhdGxhcycpIHtcbiAgICAgICAgdGhpcy4jb2JzZXJ2ZXJzLnNldChhbGlhcywgY29udGFpbmVyKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByZXBhcmUgYWxsIGNvbXBvbmVudHMsIGluIHBhcmFsbGVsIPCfkqpcbiAgICB2b2lkIChhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAuLi5BcnJheS5mcm9tKGhvb2tzKS5tYXAoYXN5bmMgKFssIGNvbnRhaW5lcl0pID0+ICh7XG4gICAgICAgIGV4cG9zZTogZmFsc2UsXG4gICAgICAgIHZhbHVlOiBhd2FpdCBjb250YWluZXIucHJlcGFyZSh7IGNhdGFsb2cgfSksXG4gICAgICB9KSksXG4gICAgICAuLi5BcnJheS5mcm9tKHNlcnZpY2VzKS5tYXAoYXN5bmMgKFthbGlhcywgY29udGFpbmVyXSkgPT4gKHtcbiAgICAgICAgZXhwb3NlOiBjb250YWluZXIuQ29tcG9uZW50LmludGVybmFsID8gZmFsc2UgOiAnc2VydmljZXMnLFxuICAgICAgICB2YWx1ZTogYXdhaXQgY29udGFpbmVyLnByZXBhcmUoeyBjYXRhbG9nIH0pLFxuICAgICAgICBhbGlhcyxcbiAgICAgIH0pKSxcbiAgICAgIC4uLkFycmF5LmZyb20oYWN0aW9ucykubWFwKGFzeW5jIChbYWxpYXMsIGNvbnRhaW5lcl0pID0+ICh7XG4gICAgICAgIGV4cG9zZTogY29udGFpbmVyLkNvbXBvbmVudC5pbnRlcm5hbCA/IGZhbHNlIDogJ2FjdGlvbnMnLFxuICAgICAgICB2YWx1ZTogYXdhaXQgY29udGFpbmVyLnByZXBhcmUoeyBjYXRhbG9nIH0pLFxuICAgICAgICBhbGlhcyxcbiAgICAgIH0pKSxcbiAgICBdKSlcbiAgICAgIC5maWx0ZXIocmVzdWx0ID0+IEJvb2xlYW4ocmVzdWx0LmV4cG9zZSkpXG4gICAgICAuZm9yRWFjaChyZXN1bHQgPT4gdGhpczo6ZXhwb3NlKHJlc3VsdC5leHBvc2UsIHJlc3VsdC5hbGlhcywgcmVzdWx0LnZhbHVlKSlcblxuICAgIHRoaXMuI3ByZXBhcmVkID0gdHJ1ZVxuICAgIGF3YWl0IHRoaXMuI29ic2VydmVyczo6ZGlzcGF0Y2goJ2FmdGVyUHJlcGFyZScsIHRoaXMpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IGFsbCBzZXJ2aWNlc1xuICAgKlxuICAgKiBAcmV0dXJuICAgIHtQcm9taXNlPHRoaXM+fVxuICAgKi9cbiAgYXN5bmMgc3RhcnQoKSB7XG4gICAgY29uc3QgeyBhY3Rpb25zLCBzZXJ2aWNlcywgaG9va3MgfSA9IHRoaXMuI2NhdGFsb2dcblxuICAgIGF3YWl0IHRoaXMucHJlcGFyZSgpXG4gICAgYXdhaXQgdGhpcy4jb2JzZXJ2ZXJzOjpkaXNwYXRjaCgnYmVmb3JlU3RhcnQnLCB0aGlzKVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgLi4uQXJyYXkuZnJvbShob29rcyksXG4gICAgICAuLi5BcnJheS5mcm9tKGFjdGlvbnMpLFxuICAgIF0ubWFwKChbLCBjb250YWluZXJdKSA9PiBjb250YWluZXIuc3RhcnQoeyBob29rcyB9KSkpXG5cbiAgICAvLyBTdGFydCBhbGwgc2VydmljZXMsIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQgdG8gdGhlIGluc3RhbmNlIPCfkqpcbiAgICAvLyBPcmRlcmluZyBpcyBpbXBvcnRhbnQgaGVyZSEgU29tZSBzZXJ2aWNlcyBzaG91bGQgYmUgc3RhcnRlZCBhcyB0aGUgbGFzdCBvbmVzIGJlY2F1c2UgdGhleVxuICAgIC8vIGV4cG9zZSBzb21lIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIG91dHNpZGUgd29ybGQgYW5kIHN0YXJ0aW5nIHRob3NlIGJlZm9yZSBpZS4gYSBkYXRhYmFzZVxuICAgIC8vIHNlcnZpY2UgaXMgc3RhcnRlZCBtaWdodCBicmVhayBzdHVmZiFcbiAgICBmb3IgKGNvbnN0IFssIGNvbnRhaW5lcl0gb2Ygc2VydmljZXMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGNvbnRhaW5lci5zdGFydCh7IGhvb2tzIH0pXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gUm9sbCBiYWNrXG4gICAgICAgIGF3YWl0IHRoaXMuc3RvcCgpXG4gICAgICAgICAgLy8gU2hpdCBqdXN0IGdvdCBzZXJpb3VzIPCfmLFcbiAgICAgICAgICAuY2F0Y2goc3RvcEVyciA9PiB2b2lkIHRoaXMubG9nLmZhdGFsKHsgZXJyOiBzdG9wRXJyIH0sICdhdGxhczpzdGFydDpyb2xsYmFjay1mYWlsdXJlJykpXG5cbiAgICAgICAgLy8gUmUtdGhyb3cgdGhlIG9yaWdpbmFsIGVycm9yIHdoaWNoIGNhdXNlZCBBdGxhcyB0byBmYWlsIHRvIHN0YXJ0XG4gICAgICAgIHRocm93IGVyclxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI3N0YXJ0ZWQgPSB0cnVlXG4gICAgYXdhaXQgdGhpcy4jb2JzZXJ2ZXJzOjpkaXNwYXRjaCgnYWZ0ZXJTdGFydCcsIHRoaXMpXG4gICAgdGhpcy5sb2cuaW5mbygnYXRsYXM6cmVhZHknKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIGFsbCBzZXJ2aWNlcywgdW5yZWdpc3RlciBhbGwgYWN0aW9ucyBhbmQgaG9va3MgYW5kIHVucHVibGlzaCBhbnkgQVBJcyBleHBvc2VkIGJ5IHRoZW1cbiAgICpcbiAgICogVGhpcyBwdXRzIHRoZSB3aG9sZSBhcHBsaWNhdGlvbiBpbnRvIGEgc3RhdGUgYXMgaXQgd2FzIGJlZm9yZSBgYXRsYXMucHJlcGFyZSgpYCBhbmQvb3JcbiAgICogYGF0bGFzLnN0YXJ0KClgIHdhcyBjYWxsZWQuXG4gICAqXG4gICAqIEByZXR1cm4gICAge1Byb21pc2U8dGhpcz59XG4gICAqL1xuICBhc3luYyBzdG9wKCkge1xuICAgIGNvbnN0IHsgc2VydmljZXMsIGFjdGlvbnMsIGhvb2tzIH0gPSB0aGlzLiNjYXRhbG9nXG5cbiAgICBhd2FpdCB0aGlzLiNvYnNlcnZlcnM6OmRpc3BhdGNoKCdiZWZvcmVTdG9wJywgdGhpcylcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIC4uLkFycmF5LmZyb20oaG9va3MpLFxuICAgICAgLi4uQXJyYXkuZnJvbShhY3Rpb25zKSxcbiAgICBdLm1hcCgoWywgY29udGFpbmVyXSkgPT4gY29udGFpbmVyLnN0b3AoKSkpXG5cbiAgICBsZXQgZXJyb3JcblxuICAgIC8vIFN0b3AgYWxsIHNlcnZpY2VzLCBpbiB0aGUgcmV2ZXJzZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQgdG8gdGhlIGluc3RhbmNlIPCfkqpcbiAgICAvLyBUaGlzIHdpbGwgbWFrZSBzdXJlIHRoZSBtb3N0IGltcG9ydGFudCBzZXJ2aWNlcyBhcmUgc3RvcHBlZCBmaXJzdC5cbiAgICBmb3IgKGNvbnN0IFthbGlhcywgY29udGFpbmVyXSBvZiBBcnJheS5mcm9tKHNlcnZpY2VzKS5yZXZlcnNlKCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnNlcnZpY2VzW2FsaWFzXVxuICAgICAgICBhd2FpdCBjb250YWluZXIuc3RvcCh7IGhvb2tzIH0pXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgZXJyb3IgPSBlcnJcbiAgICAgICAgLy8gTGVhdmUgdGhpcyBzZXJ2aWNlIGFzIGlzIGFuZCBtb3ZlIHRvIHRoZSBuZXh0IHNlcnZpY2UuIFdlIHByb2JhYmx5IGNhbm5vdCBkbyBhbnl0aGluZyB0b1xuICAgICAgICAvLyBwcm9wZXJseSBzdG9wIHRoaXMgc2VydmljZS4g8J+ZgVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVucmVnaXN0ZXIgYWN0aW9uc1xuICAgIGZvciAoY29uc3QgW2FsaWFzXSBvZiBhY3Rpb25zKSB7XG4gICAgICBkZWxldGUgdGhpcy5hY3Rpb25zW2FsaWFzXVxuICAgIH1cblxuICAgIHRoaXMuI3N0YXJ0ZWQgPSBmYWxzZVxuICAgIHRoaXMuI3ByZXBhcmVkID0gZmFsc2VcblxuICAgIGF3YWl0IGhvb2tzOjpkaXNwYXRjaCgnYWZ0ZXJTdG9wJywgbnVsbClcbiAgICB0aGlzLmxvZy5pbmZvKCdhdGxhczpzdG9wcGVkJylcblxuICAgIC8vIElmIHRoZXJlIHdhcyBhbiBlcnJvciB0aHJvd24gaW4gb25lIG9mIHRoZSBzZXJ2aWNlcyBkdXJpbmcgLnN0b3AoKSwgcmUtdGhyb3cgaXQgbm93XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXRsYXNcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF0bGFzLm1qcyJdLCJuYW1lcyI6WyJBdGxhcyIsImluaXQiLCJvcHRpb25zIiwiY29uZmlnIiwiaG9va3MiLCJzZXJ2aWNlcyIsImFjdGlvbnMiLCJhbGlhc2VzIiwiYXRsYXMiLCJlbnYiLCJyb290IiwidHlwZXMiLCJwYXRocyIsIm1vZHVsZXMiLCJ0eXBlIiwicGF0aCIsInJlc29sdmUiLCJyZXF1aXJlIiwib3B0aW9uYWwiLCJsb2ciLCJkZWJ1ZyIsImJvb3RzdHJhcCIsImNvbXBvbmVudHMiLCJPYmplY3QiLCJrZXlzIiwiYWxpYXMiLCJIb29rIiwiZW50cmllcyIsImhvb2siLCJTZXJ2aWNlIiwic2VydmljZSIsIkFjdGlvbiIsImFjdGlvbiIsInByZXBhcmVkIiwic3RhcnRlZCIsImNvbnN0cnVjdG9yIiwiTWFwIiwicHJvY2VzcyIsIk5PREVfRU5WIiwiRnJhbWV3b3JrRXJyb3IiLCJta2NvbmZpZyIsImRlZmF1bHRzIiwibWtsb2ciLCJ2YWxpZGF0b3IiLCJBanYiLCJrZXl3b3JkcyIsImxvY2F0aW9uIiwiYWJzb2x1dGUiLCJsb2FkIiwib3B0cmVxdWlyZSIsImNvbnRlbnRzIiwibm9ybWFsaXNlIiwiZGVmYXVsdCIsIkNvbXBvbmVudCIsIm9wdHMiLCJjb21wb25lbnQiLCJwcmVwYXJlIiwiY2F0YWxvZyIsImNvbnRhaW5lciIsIm9ic2VydmVzIiwic2V0IiwiUHJvbWlzZSIsImFsbCIsIkFycmF5IiwiZnJvbSIsIm1hcCIsImV4cG9zZSIsInZhbHVlIiwiaW50ZXJuYWwiLCJmaWx0ZXIiLCJyZXN1bHQiLCJCb29sZWFuIiwiZm9yRWFjaCIsImRpc3BhdGNoIiwic3RhcnQiLCJlcnIiLCJzdG9wIiwiY2F0Y2giLCJzdG9wRXJyIiwiZmF0YWwiLCJpbmZvIiwiZXJyb3IiLCJyZXZlcnNlIiwibmFtZSIsImJhc2VuYW1lIiwiY3dkIiwibGV2ZWwiLCJzZXJpYWxpemVycyIsInBpbm8iLCJzdGRTZXJpYWxpemVycyIsInJlcSIsInJlcyIsImFs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QUFQLEVBQVk7QUFDWk0sUUFBQUEsS0FBSyxHQUFHTixHQUFSO0FBR0E7QUFDRDtBQUNGOztBQUdELFNBQUssTUFBTSxDQUFDbEQsS0FBRCxDQUFYLElBQXNCbkIsT0FBdEIsRUFBK0I7QUFDN0IsYUFBTyxLQUFLQSxPQUFMLENBQWFtQixLQUFiLENBQVA7QUFDRDs7QUFFRCwwQ0FBZ0IsS0FBaEI7O0FBQ0EsMkNBQWlCLEtBQWpCOztBQUVBLFVBQWFnRCxpQkFBUCxNQUFBckUsS0FBSyxFQUFXLFdBQVgsRUFBd0IsSUFBeEIsQ0FBWDtBQUNBLFNBQUtlLEdBQUwsQ0FBUzZELElBQVQsQ0FBYyxlQUFkOztBQUdBLFFBQUlDLEtBQUosRUFBVztBQUNULFlBQU1BLEtBQU47QUFDRDs7QUFFRCxXQUFPLElBQVA7QUFDRDs7QUFyZlM7O2dCQUFOakYsSyxjQUNjO0FBQ2hCbUIsRUFBQUEsR0FBRyxFQUFFO0FBQ0hnRSxJQUFBQSxJQUFJLEVBQUVwRSxjQUFLcUUsUUFBTCxDQUFjL0MsT0FBTyxDQUFDZ0QsR0FBUixFQUFkLENBREg7QUFFSEMsSUFBQUEsS0FBSyxFQUFFLE1BRko7QUFHSEMsSUFBQUEsV0FBVyxFQUFFO0FBQ1haLE1BQUFBLEdBQUcsRUFBRWEsY0FBS0MsY0FBTCxDQUFvQmQsR0FEZDtBQUVYZSxNQUFBQSxHQUFHLEVBQUVGLGNBQUtDLGNBQUwsQ0FBb0JDLEdBRmQ7QUFHWEMsTUFBQUEsR0FBRyxFQUFFSCxjQUFLQyxjQUFMLENBQW9CRTtBQUhkO0FBSFYsR0FEVztBQVdoQmhELEVBQUFBLFNBQVMsRUFBRTtBQUNUaUQsSUFBQUEsU0FBUyxFQUFFLElBREY7QUFFVEMsSUFBQUEsV0FBVyxFQUFFLElBRko7QUFHVGhELElBQUFBLFFBQVEsRUFBRSxDQUNSLFFBRFE7QUFIRDtBQVhLLEM7Ozs7Ozs7Ozs7Ozs7O2VBdWZMN0MsSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFdlIHVzZSBmb3ItYXdhaXQgcGF0dGVybiBxdWl0ZSBleHRlbnNpdmVseSBoZXJlIGZvciBsZWdpdGltYXRlIHB1cnBvc2VzXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1hd2FpdC1pbi1sb29wICovXG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgQWp2IGZyb20gJ2FqdidcbmltcG9ydCBhanZLZXl3b3JkcyBmcm9tICdhanYta2V5d29yZHMnXG5pbXBvcnQgcGlubyBmcm9tICdwaW5vJ1xuaW1wb3J0IHtcbiAgZGVmYXVsdHNEZWVwIGFzIGRlZmF1bHRzLFxuICBpc1BsYWluT2JqZWN0LFxufSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBGcmFtZXdvcmtFcnJvciB9IGZyb20gJ0BhdGxhcy5qcy9lcnJvcnMnXG5pbXBvcnQge1xuICBleHBvc2UsXG4gIGRpc3BhdGNoLFxuICBjb21wb25lbnQsXG4gIG1rY29uZmlnLFxuICBta2xvZyxcbiAgb3B0cmVxdWlyZSxcbn0gZnJvbSAnLi9wcml2YXRlJ1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyB5b3VyIGFwcGxpY2F0aW9uIGFuZCBhZ2dyZWdhdGVzIGFsbCBjb21wb25lbnRzIHRvZ2V0aGVyXG4gKlxuICogWW91IHNob3VsZCBnZW5lcmFsbHkgY3JlYXRlIG9ubHkgb25lIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgaW4gYSBwcm9ncmFtLlxuICovXG5jbGFzcyBBdGxhcyB7XG4gIHN0YXRpYyBkZWZhdWx0cyA9IHtcbiAgICBsb2c6IHtcbiAgICAgIG5hbWU6IHBhdGguYmFzZW5hbWUocHJvY2Vzcy5jd2QoKSksXG4gICAgICBsZXZlbDogJ2luZm8nLFxuICAgICAgc2VyaWFsaXplcnM6IHtcbiAgICAgICAgZXJyOiBwaW5vLnN0ZFNlcmlhbGl6ZXJzLmVycixcbiAgICAgICAgcmVxOiBwaW5vLnN0ZFNlcmlhbGl6ZXJzLnJlcSxcbiAgICAgICAgcmVzOiBwaW5vLnN0ZFNlcmlhbGl6ZXJzLnJlcyxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHZhbGlkYXRvcjoge1xuICAgICAgYWxsRXJyb3JzOiB0cnVlLFxuICAgICAgdXNlRGVmYXVsdHM6IHRydWUsXG4gICAgICBrZXl3b3JkczogW1xuICAgICAgICAndHlwZW9mJyxcbiAgICAgIF0sXG4gICAgfSxcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXNlIGEgYnJhbmQtbmV3IGF0bGFzIGluc3RhbmNlIGZyb20gdGhlIGdpdmVuIG1vZHVsZSBsb2NhdGlvbnNcbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIHRvIHF1aWNrbHkgY29uZmlndXJlIEF0bGFzIGluc3RhbmNlIGJ5IHNpbXBseSB0ZWxsaW5nIGl0IHdoZXJlIHlvdXIgY29tcG9uZW50c1xuICAgKiBsaXZlIG9uIHRoZSBmaWxlc3lzdGVtLCBhbmQgQXRsYXMgd2lsbCBsb2FkIHRoZW0gZnJvbSB0aGUgZ2l2ZW4gbW9kdWxlIGxvY2F0aW9ucyBhbmQgYWRkIHRoZW1cbiAgICogdG8gdGhlIEF0bGFzIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgICAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgICBvcHRpb25zLmVudiAgICAgICAgICAgICAgICAgICBUaGUgZW52aXJvbm1lbnQgdW5kZXIgd2hpY2ggdG8gb3BlcmF0ZVxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgICAgb3B0aW9ucy5yb290ICAgICAgICAgICAgICAgICAgVGhlIHJvb3QgZGlyZWN0b3J5IHRvIHdoaWNoIGFsbCBvdGhlclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3JpZXMgbWVudGlvbmVkIGhlcmUgYXJlIHJlbGF0aXZlXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgICBvcHRpb25zLmNvbmZpZz0nY29uZmlnJyAgICAgICBNb2R1bGUgbG9jYXRpb24gZm9yIHRoZSBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgICBvcHRpb25zLmhvb2tzPSdob29rcycgICAgICAgICBNb2R1bGUgbG9jYXRpb24gZm9yIHRoZSBob29rc1xuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgICAgb3B0aW9ucy5zZXJ2aWNlcz0nc2VydmljZXMnICAgTW9kdWxlIGxvY2F0aW9uIGZvciB0aGUgc2VydmljZXNcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICAgIG9wdGlvbnMuYWN0aW9ucz0nYWN0aW9ucycgICAgIE1vZHVsZSBsb2NhdGlvbiBmb3IgdGhlIGFjdGlvbnNcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICAgIG9wdGlvbnMuYWxpYXNlcz0nYWxpYXNlcycgICAgIE1vZHVsZSBsb2NhdGlvbiBmb3IgdGhlIGFsaWFzZXNcbiAgICogQHJldHVybiAgICB7QXRsYXN9XG4gICAqL1xuICBzdGF0aWMgaW5pdChvcHRpb25zID0ge30pIHtcbiAgICBkZWZhdWx0cyhvcHRpb25zLCB7XG4gICAgICBjb25maWc6ICdjb25maWcnLFxuICAgICAgaG9va3M6ICdob29rcycsXG4gICAgICBzZXJ2aWNlczogJ3NlcnZpY2VzJyxcbiAgICAgIGFjdGlvbnM6ICdhY3Rpb25zJyxcbiAgICAgIGFsaWFzZXM6ICdhbGlhc2VzJyxcbiAgICB9KVxuXG4gICAgY29uc3QgYXRsYXMgPSBuZXcgdGhpcyh7XG4gICAgICBlbnY6IG9wdGlvbnMuZW52LFxuICAgICAgcm9vdDogb3B0aW9ucy5yb290LFxuICAgICAgY29uZmlnOiBvcHRpb25zLmNvbmZpZyxcbiAgICB9KVxuICAgIGNvbnN0IHR5cGVzID0gW1xuICAgICAgJ2hvb2tzJyxcbiAgICAgICdzZXJ2aWNlcycsXG4gICAgICAnYWN0aW9ucycsXG4gICAgICAnYWxpYXNlcycsXG4gICAgXVxuICAgIGNvbnN0IHBhdGhzID0ge31cbiAgICBjb25zdCBtb2R1bGVzID0ge31cblxuICAgIGZvciAoY29uc3QgdHlwZSBvZiB0eXBlcykge1xuICAgICAgcGF0aHNbdHlwZV0gPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBvcHRpb25zW3R5cGVdKVxuICAgICAgbW9kdWxlc1t0eXBlXSA9IGF0bGFzLnJlcXVpcmUob3B0aW9uc1t0eXBlXSwgeyBvcHRpb25hbDogdHJ1ZSB9KVxuICAgIH1cblxuICAgIGF0bGFzLmxvZy5kZWJ1Zyh7IHBhdGhzIH0sICdhdGxhczppbml0JylcblxuICAgIHJldHVybiB0aGlzLmJvb3RzdHJhcChhdGxhcywgbW9kdWxlcylcbiAgfVxuXG4gIC8qKlxuICAgKiBCb290c3RyYXAgdGhlIGdpdmVuIEF0bGFzIGluc3RhbmNlIHdpdGggdGhlIHByb3ZpZGVkIG1vZHVsZXNcbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIHRvIHF1aWNrbHkgc2V0IHVwIHRoZSBnaXZlbiBBdGxhcyBpbnN0YW5jZSB0byB1c2UgdGhlIHByb3ZpZGVkIGNvbXBvbmVudHMuIFRoaXNcbiAgICogaXMgdXNlZnVsIGlmIHlvdSBuZWVkIHRvIGhhdmUgbXVsdGlwbGUgZW50cnkgcG9pbnRzIHRvIHlvdXIgcHJvZ3JhbSBhbmQgc29tZSBlbnRyeXBvaW50cyBzaG91bGRcbiAgICogb25seSB1c2Ugc29tZSBjb21wb25lbnRzIGF2YWlsYWJsZS4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCB3aGVuIGltcGxlbWVudGluZyB3b3JrZXJcbiAgICogcHJvY2Vzc2VzIHdoZXJlIHlvdSBvbmx5IG5lZWQgYSBzdWJzZXQgb2YgYWxsIGF2YWlsYWJsZSBjb21wb25lbnRzLiBUaGlzIG1ldGhvZCwgd2hpbGUgbW9yZVxuICAgKiB2ZXJib3NlIGFzIEF0bGFzLmluaXQoKSwgc3RpbGwgZnJlZXMgeW91IGZyb20gbWFudWFsbHkgYWRkaW5nIGFsbCB0aGUgY29tcG9uZW50cyBieSBoYW5kIHdoaWxlXG4gICAqIHByb3ZpZGluZyBncmVhdGVyIGZsZXhpYmlsaXR5IGFzIHRvIHdoaWNoIGNvbXBvbmVudHMgd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBAcGFyYW0gICAgIHtBdGxhc30gICBhdGxhcyAgICAgICAgICAgICAgICAgVGhlIEF0bGFzIGluc3RhbmNlIHRvIGJvb3RzdHJhcFxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICBtb2R1bGVzPyAgICAgICAgICAgICAgQWxsIHRoZSBtb2R1bGVzIHdoaWNoIHNob3VsZCBiZSBhZGRlZCB0byBBdGxhc1xuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICBtb2R1bGVzLmFjdGlvbnMgICAgICAgQWN0aW9ucyB0byBhZGRcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgbW9kdWxlcy5ob29rcyAgICAgICAgIEhvb2tzIHRvIGFkZFxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICBtb2R1bGVzLnNlcnZpY2VzICAgICAgU2VydmljZXMgdG8gYWRkXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gIG1vZHVsZXMuYWxpYXNlcyAgICAgICBBbGlhc2VzIGZvciBhbGwgdGhlIGNvbXBvbmVudHNcbiAgICogQHJldHVybiAgICB7QXRsYXN9ICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBBdGxhcyBpbnN0YW5jZSB3aXRoIGFsbCBjb21wb25lbnRzIGFkZGVkLCByZWFkeVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gYmUgc3RhcnRlZFxuICAgKi9cbiAgc3RhdGljIGJvb3RzdHJhcChhdGxhcywgbW9kdWxlcyA9IHt9KSB7XG4gICAgZGVmYXVsdHMobW9kdWxlcywge1xuICAgICAgLy8gY29uZmlnIG1vZHVsZSBpcyBsb2FkZWQgYnkgQXRsYXMgaW5zdGFuY2UgaXRzZWxmLCBzbyBpdCdzIG9rYXkgdG8gdXNlIGEgc3RyaW5nIGhlcmUgYW5kIGxldFxuICAgICAgLy8gQXRsYXMgbG9hZCBpdFxuICAgICAgY29uZmlnOiAnY29uZmlnJyxcbiAgICAgIC8vIFRoZSBmb2xsb3dpbmcgbW9kdWxlcyBtdXN0IGFscmVhZHkgYmUgcHJvdmlkZWQgZGlyZWN0bHkgYXMgd2Ugd29uJ3QgbG9hZCB0aGVtXG4gICAgICBhY3Rpb25zOiB7fSxcbiAgICAgIGhvb2tzOiB7fSxcbiAgICAgIHNlcnZpY2VzOiB7fSxcbiAgICAgIGFsaWFzZXM6IHtcbiAgICAgICAgYWN0aW9uczoge30sXG4gICAgICAgIGhvb2tzOiB7fSxcbiAgICAgICAgc2VydmljZXM6IHt9LFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgYXRsYXMubG9nLmRlYnVnKHtcbiAgICAgIGVudjogYXRsYXMuZW52LFxuICAgICAgcm9vdDogYXRsYXMucm9vdCxcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgYWN0aW9uczogT2JqZWN0LmtleXMobW9kdWxlcy5hY3Rpb25zKSxcbiAgICAgICAgaG9va3M6IE9iamVjdC5rZXlzKG1vZHVsZXMuaG9va3MpLFxuICAgICAgICBzZXJ2aWNlczogT2JqZWN0LmtleXMobW9kdWxlcy5zZXJ2aWNlcyksXG4gICAgICB9LFxuICAgIH0sICdhdGxhczpib290c3RyYXAnKVxuXG4gICAgLy8gSG9va3NcbiAgICBmb3IgKGNvbnN0IFthbGlhcywgSG9va10gb2YgT2JqZWN0LmVudHJpZXMobW9kdWxlcy5ob29rcykpIHtcbiAgICAgIGNvbnN0IGFsaWFzZXMgPSBtb2R1bGVzLmFsaWFzZXMuaG9va3NbYWxpYXNdXG4gICAgICBhdGxhcy5ob29rKGFsaWFzLCBIb29rLCB7IGFsaWFzZXMgfSlcbiAgICB9XG5cbiAgICAvLyBTZXJ2aWNlc1xuICAgIGZvciAoY29uc3QgW2FsaWFzLCBTZXJ2aWNlXSBvZiBPYmplY3QuZW50cmllcyhtb2R1bGVzLnNlcnZpY2VzKSkge1xuICAgICAgY29uc3QgYWxpYXNlcyA9IG1vZHVsZXMuYWxpYXNlcy5zZXJ2aWNlc1thbGlhc11cbiAgICAgIGF0bGFzLnNlcnZpY2UoYWxpYXMsIFNlcnZpY2UsIHsgYWxpYXNlcyB9KVxuICAgIH1cblxuICAgIC8vIEFjdGlvbnNcbiAgICBmb3IgKGNvbnN0IFthbGlhcywgQWN0aW9uXSBvZiBPYmplY3QuZW50cmllcyhtb2R1bGVzLmFjdGlvbnMpKSB7XG4gICAgICBjb25zdCBhbGlhc2VzID0gbW9kdWxlcy5hbGlhc2VzLmFjdGlvbnNbYWxpYXNdXG4gICAgICBhdGxhcy5hY3Rpb24oYWxpYXMsIEFjdGlvbiwgeyBhbGlhc2VzIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIGF0bGFzXG4gIH1cblxuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBlbnZpcm9ubWVudCB1bmRlciB3aGljaCB0aGlzIGluc3RhbmNlIG9wZXJhdGVzXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIE5PREVfRU5WIGZyb20gdGhlIGVudmlyb25tZW50LlxuICAgKlxuICAgKiBAcmVhZG9ubHlcbiAgICogQHJldHVybiAgICB7U3RyaW5nfVxuICAgKi9cbiAgZ2V0IGVudigpIHtcbiAgICByZXR1cm4gdGhpcy4jZW52XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJvb3QgZm9sZGVyIHdoZXJlIGFsbCBvdGhlciBwYXRocyBzaG91bGQgYmUgcmVsYXRpdmUgdG9cbiAgICpcbiAgICogSXQgaXMgcmVjb21tZW5kZWQgdGhhdCB5b3Ugc2V0IHRoaXMgdG8gdGhlIHByb2plY3QncyByb290IGRpcmVjdG9yeS5cbiAgICpcbiAgICogQHJlYWRvbmx5XG4gICAqIEByZXR1cm4gICAge1N0cmluZ31cbiAgICovXG4gIGdldCByb290KCkge1xuICAgIHJldHVybiB0aGlzLiNyb290XG4gIH1cblxuICAvKipcbiAgICogSXMgdGhpcyBpbnN0YW5jZSBpbiBhIHByZXBhcmVkIHN0YXRlP1xuICAgKlxuICAgKiBAcmVhZG9ubHlcbiAgICogQHJldHVybiAgICB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBwcmVwYXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy4jcHJlcGFyZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBJcyB0aGlzIGluc3RhbmNlIGluIGEgc3RhcnRlZCBzdGF0ZT9cbiAgICpcbiAgICogQHJlYWRvbmx5XG4gICAqIEByZXR1cm4gICAge2Jvb2xlYW59XG4gICAqL1xuICBnZXQgc3RhcnRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy4jc3RhcnRlZFxuICB9XG5cbiAgLyoqXG4gICAqIEF0bGFzIGNvbmZpZ3VyYXRpb24sIGFzIHBhc3NlZCBpbiB0byB0aGUgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHR5cGUgICAge09iamVjdH1cbiAgICovXG4gIGNvbmZpZyA9IHt9XG5cbiAgLyoqXG4gICAqIEFsbCBzZXJ2aWNlcyBhZGRlZCB0byB0aGlzIGluc3RhbmNlXG4gICAqXG4gICAqIEB0eXBlICAgIHtPYmplY3R9XG4gICAqL1xuICBzZXJ2aWNlcyA9IHt9XG5cbiAgLyoqXG4gICAqIEFsbCBhY3Rpb25zIGFkZGVkIHRvIHRoaXMgaW5zdGFuY2VcbiAgICpcbiAgICogQHR5cGUgICAge09iamVjdH1cbiAgICovXG4gIGFjdGlvbnMgPSB7fVxuXG4gICNlbnYgPSBudWxsXG4gICNyb290ID0gbnVsbFxuICAjcHJlcGFyZWQgPSBmYWxzZVxuICAjc3RhcnRlZCA9IGZhbHNlXG4gICNjYXRhbG9nID0ge1xuICAgIHNlcnZpY2VzOiBuZXcgTWFwKCksXG4gICAgaG9va3M6IG5ldyBNYXAoKSxcbiAgICBhY3Rpb25zOiBuZXcgTWFwKCksXG4gIH1cblxuICAjb2JzZXJ2ZXJzID0gbmV3IE1hcCgpXG5cbiAgLyoqXG4gICAqIEFuIGluc3RhbmNlIG9mIEFqdiB1c2VkIHRvIHZhbGlkYXRlIGNvbXBvbmVudCBjb25maWd1cmF0aW9uXG4gICAqIEB0eXBlICAgIHtBanZ9XG4gICAqL1xuICB2YWxpZGF0b3IgPSBudWxsXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBpbnN0YW5jZVxuICAgKlxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdGlvbnMgICAgICAgICAgICAgT3B0aW9ucyBmb3IgdGhlIGluc3RhbmNlXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0aW9ucy5jb25maWcgICAgICBDb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIGluc3RhbmNlIGFuZCBmb3IgYWxsXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlcyBvciBvdGhlciBjb21wb25lbnRzIHdoaWNoIHdpbGwgYmUgYWRkZWQgdG9cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgIG9wdGlvbnMucm9vdCAgICAgICAgVGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgIG9wdGlvbnMuZW52ICAgICAgICAgVGhlIGVudmlyb25tZW50IHVuZGVyIHdoaWNoIHRoaXMgaW5zdGFuY2Ugb3BlcmF0ZXMuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wb25lbnRzIG1heSB1c2UgdGhpcyB2YWx1ZSBmb3IgdmFyaW91cyBwdXJwb3Nlcy5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIE5PREVfRU5WLlxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgLy8gSW5pdGlhbGlzZSBwcml2YXRlIHN0dWZmXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb2Nlc3MtZW52XG4gICAgdGhpcy4jZW52ID0gb3B0aW9ucy5lbnYgfHwgcHJvY2Vzcy5lbnYuTk9ERV9FTlZcbiAgICB0aGlzLiNyb290ID0gb3B0aW9ucy5yb290XG5cbiAgICAvLyBTYWZldHkgY2hlY2tzXG4gICAgaWYgKCF0aGlzLiNlbnYpIHtcbiAgICAgIHRocm93IG5ldyBGcmFtZXdvcmtFcnJvcignZW52IG5vdCBzcGVjaWZpZWQgYW5kIE5PREVfRU5WIHdhcyBub3Qgc2V0JylcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMucm9vdCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBGcmFtZXdvcmtFcnJvcihgcm9vdCBtdXN0IGJlIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBnb3QgJHtvcHRpb25zLnJvb3R9YClcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZyA9IHRoaXM6Om1rY29uZmlnKG9wdGlvbnMuY29uZmlnLCB7XG4gICAgICBhdGxhczogQXRsYXMuZGVmYXVsdHMsXG4gICAgICBzZXJ2aWNlczoge30sXG4gICAgICBob29rczoge30sXG4gICAgICBhY3Rpb25zOiB7fSxcbiAgICB9KVxuICAgIC8vIExvZ2dlciDwn4yyXG4gICAgdGhpcy5sb2cgPSB0aGlzOjpta2xvZyh0aGlzLmNvbmZpZy5hdGxhcy5sb2cpXG4gICAgLy8gQWp2IHZhbGlkYXRvciDinJNcbiAgICB0aGlzLnZhbGlkYXRvciA9IG5ldyBBanYodGhpcy5jb25maWcuYXRsYXMudmFsaWRhdG9yKVxuICAgIGFqdktleXdvcmRzKHRoaXMudmFsaWRhdG9yLCB0aGlzLmNvbmZpZy5hdGxhcy52YWxpZGF0b3Iua2V5d29yZHMpXG4gIH1cblxuICAvKipcbiAgICogUmVxdWlyZSBhIG1vZHVsZSBieSBwYXRoLCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCByb290XG4gICAqXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgbG9jYXRpb24gICAgICAgICAgVGhlIG1vZHVsZSdzIGxvY2F0aW9uLCByZWxhdGl2ZSB0byByb290XG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0aW9ucz8gICAgICAgICAgT3B0aW9uc1xuICAgKiBAcGFyYW0gICAgIHtCb29sZWFufSAgIG9wdGlvbnMub3B0aW9uYWwgIElmIHRydWUsIHdpbGwgbm90IHRocm93IGlmIHRoZSBtb2R1bGUgZG9lcyBub3QgZXhpc3RcbiAgICogQHBhcmFtICAgICB7Qm9vbGVhbn0gICBvcHRpb25zLm5vcm1hbGlzZSBJZiB0cnVlLCBpdCB3aWxsIHByZWZlciB0aGUgRVMgbW9kdWxlcycgZGVmYXVsdCBleHBvcnRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyIG5hbWVkIGV4cG9ydHMgb3IgdGhlIENvbW1vbkpTIGV4cG9ydHNcbiAgICogQHBhcmFtICAgICB7Qm9vbGVhbn0gICBvcHRpb25zLmFic29sdXRlICBJZiB0cnVlLCB3aWxsIHRyeSB0byBsb2FkIHRoZSBtb2R1bGUgd2l0aG91dFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmluZyB0aGUgbW9kdWxlJ3MgbmFtZSB0byB0aGUgcHJvamVjdCByb290IChpdFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwgbG9hZCB0aGUgbW9kdWxlIHVzaW5nIHN0YW5kYXJkIE5vZGUncyBtZWNoYW5pc20pXG4gICAqIEByZXR1cm4gICAge21peGVkfSAgICAgICAgICAgICAgICAgICAgICAgVGhlIG1vZHVsZSdzIGNvbnRlbnRzXG4gICAqL1xuICByZXF1aXJlKGxvY2F0aW9uLCBvcHRpb25zID0ge30pIHtcbiAgICBsb2NhdGlvbiA9IG9wdGlvbnMuYWJzb2x1dGVcbiAgICAgID8gbG9jYXRpb25cbiAgICAgIDogcGF0aC5yZXNvbHZlKHRoaXMucm9vdCwgbG9jYXRpb24pXG5cbiAgICBjb25zdCBsb2FkID0gb3B0aW9ucy5vcHRpb25hbFxuICAgICAgPyBvcHRyZXF1aXJlXG4gICAgICA6IHJlcXVpcmVcbiAgICBjb25zdCBjb250ZW50cyA9IGxvYWQobG9jYXRpb24pXG5cbiAgICByZXR1cm4gb3B0aW9ucy5ub3JtYWxpc2UgJiYgaXNQbGFpbk9iamVjdChjb250ZW50cy5kZWZhdWx0KVxuICAgICAgPyBjb250ZW50cy5kZWZhdWx0XG4gICAgICA6IGNvbnRlbnRzXG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBzZXJ2aWNlIGludG8gdGhpcyBpbnN0YW5jZSBvZiBBdGxhcyB3aXRoIHRoZSBnaXZlbiBhbGlhc1xuICAgKlxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgIGFsaWFzICAgICAgICAgICBUaGUgYWxpYXMgZm9yIHRoZSBzZXJ2aWNlIC0gaXQgd2lsbCBiZSB1c2VkIGZvciBleHBvc2luZ1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgc2VydmljZSdzIEFQSSBvbiB0aGUgYXRsYXMuc2VydmljZXMgb2JqZWN0IGFuZCBmb3JcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBjb25maWd1cmF0aW9uIGRhdGEgdG8gaXRcbiAgICogQHBhcmFtICAgICB7Y2xhc3N9ICAgICBDb21wb25lbnQgICAgICAgVGhlIHNlcnZpY2UgY2xhc3NcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRzICAgICAgICAgICAgUnVudGltZSBvcHRpb25zIGZvciB0aGUgc2VydmljZVxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdHMuYWxpYXNlcyAgICBCaW5kaW5ncyB0byBvdGhlciBkZWZpbmVkIGNvbXBvbmVudHNcbiAgICogQHJldHVybiAgICB7dGhpc31cbiAgICovXG4gIHNlcnZpY2UoYWxpYXMsIENvbXBvbmVudCwgb3B0cyA9IHt9KSB7XG4gICAgdGhpczo6Y29tcG9uZW50KHtcbiAgICAgIHR5cGU6ICdzZXJ2aWNlJyxcbiAgICAgIGFsaWFzLFxuICAgICAgQ29tcG9uZW50LFxuICAgICAgYWxpYXNlczogb3B0cy5hbGlhc2VzLFxuICAgIH0sIHRoaXMuI2NhdGFsb2cuc2VydmljZXMpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgaG9vayBpbnRvIHRoaXMgaW5zdGFuY2Ugb2YgQXRsYXMgd2l0aCB0aGUgZ2l2ZW4gYWxpYXNcbiAgICpcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBhbGlhcyAgICAgICAgICAgVGhlIGFsaWFzIGZvciB0aGUgaG9vayAtIGl0IHdpbGwgYmUgdXNlZCBmb3IgcGFzc2luZ1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uIGRhdGEgdG8gaXRcbiAgICogQHBhcmFtICAgICB7Y2xhc3N9ICAgICBDb21wb25lbnQgICAgICAgVGhlIGhvb2sgY2xhc3NcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRzICAgICAgICAgICAgUnVudGltZSBvcHRpb25zIGZvciB0aGUgaG9va1xuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdHMuYWxpYXNlcyAgICBCaW5kaW5ncyB0byBvdGhlciBkZWZpbmVkIGNvbXBvbmVudHNcbiAgICogQHJldHVybiAgICB7dGhpc31cbiAgICovXG4gIGhvb2soYWxpYXMsIENvbXBvbmVudCwgb3B0cyA9IHt9KSB7XG4gICAgdGhpczo6Y29tcG9uZW50KHtcbiAgICAgIHR5cGU6ICdob29rJyxcbiAgICAgIGFsaWFzLFxuICAgICAgQ29tcG9uZW50LFxuICAgICAgYWxpYXNlczogb3B0cy5hbGlhc2VzLFxuICAgIH0sIHRoaXMuI2NhdGFsb2cuaG9va3MpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGFuIGFjdGlvbiBpbnRvIHRoaXMgaW5zdGFuY2Ugb2YgQXRsYXMgd2l0aCB0aGUgZ2l2ZW4gYWxpYXNcbiAgICpcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBhbGlhcyAgICAgICAgICAgVGhlIGFsaWFzIGZvciB0aGUgYWN0aW9uIC0gaXQgd2lsbCBiZSB1c2VkIGZvciBleHBvc2luZ1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYWN0aW9uJ3MgQVBJIG9uIHRoZSBhdGxhcy5hY3Rpb25zIG9iamVjdCBhbmQgZm9yXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgY29uZmlndXJhdGlvbiBkYXRhIHRvIGl0XG4gICAqIEBwYXJhbSAgICAge2NsYXNzfSAgICAgQ29tcG9uZW50ICAgICAgIFRoZSBhY3Rpb24gY2xhc3NcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRzICAgICAgICAgICAgUnVudGltZSBvcHRpb25zIGZvciB0aGUgYWN0aW9uXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0cy5hbGlhc2VzICAgIEJpbmRpbmdzIHRvIG90aGVyIGRlZmluZWQgY29tcG9uZW50c1xuICAgKiBAcmV0dXJuICAgIHt0aGlzfVxuICAgKi9cbiAgYWN0aW9uKGFsaWFzLCBDb21wb25lbnQsIG9wdHMgPSB7fSkge1xuICAgIHRoaXM6OmNvbXBvbmVudCh7XG4gICAgICB0eXBlOiAnYWN0aW9uJyxcbiAgICAgIGFsaWFzLFxuICAgICAgQ29tcG9uZW50LFxuICAgICAgYWxpYXNlczogb3B0cy5hbGlhc2VzLFxuICAgIH0sIHRoaXMuI2NhdGFsb2cuYWN0aW9ucylcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZSBhbGwgc2VydmljZXMgYW5kIGhvb2tzIGZvciB1c2VcbiAgICpcbiAgICogR2VuZXJhbGx5IHlvdSBzaG91bGQgdXNlIGBhdGxhcy5zdGFydCgpYCBpbnN0ZWFkIHRvIGdldCB5b3VyIGluc3RhbmNlIHVwIGFuZCBydW5uaW5nLiBIb3dldmVyLFxuICAgKiBzb21ldGltZXMgaXQgaXMgbmVjZXNzYXJ5IHRvIGdldCBhbGwgdGhlIHNlcnZpY2VzIGludG8gYSBcImdldC1yZWFkeVwiIHN0YXRlIGJlZm9yZSB0aGV5IHN0YXJ0XG4gICAqIGNvbm5lY3RpbmcgdG8gcmVtb3RlIHJlc291cmNlcyBvciBkb2luZyBhbnkgaW50ZW5zaXZlIEkvTyBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJuICAgIHtQcm9taXNlPHRoaXM+fVxuICAgKi9cbiAgYXN5bmMgcHJlcGFyZSgpIHtcbiAgICBpZiAodGhpcy5wcmVwYXJlZCkge1xuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICBjb25zdCBjYXRhbG9nID0gdGhpcy4jY2F0YWxvZ1xuICAgIGNvbnN0IHsgc2VydmljZXMsIGFjdGlvbnMsIGhvb2tzIH0gPSBjYXRhbG9nXG5cbiAgICBmb3IgKGNvbnN0IFthbGlhcywgY29udGFpbmVyXSBvZiBob29rcykge1xuICAgICAgaWYgKCFjb250YWluZXIuQ29tcG9uZW50Lm9ic2VydmVzKSB7XG4gICAgICAgIHRocm93IG5ldyBGcmFtZXdvcmtFcnJvcihgSG9vayAke2FsaWFzfSBkb2VzIG5vdCBoYXZlIHN0YXRpYyAnb2JzZXJ2ZXMnIHByb3BlcnR5YClcbiAgICAgIH1cblxuICAgICAgLy8gUHJlcGFyZSBvYnNlcnZlcnMgb2YgQXRsYXMgaXRzZWxmXG4gICAgICBpZiAoY29udGFpbmVyLkNvbXBvbmVudC5vYnNlcnZlcyA9PT0gJ2F0bGFzJykge1xuICAgICAgICB0aGlzLiNvYnNlcnZlcnMuc2V0KGFsaWFzLCBjb250YWluZXIpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJlcGFyZSBhbGwgY29tcG9uZW50cywgaW4gcGFyYWxsZWwg8J+SqlxuICAgIHZvaWQgKGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIC4uLkFycmF5LmZyb20oaG9va3MpLm1hcChhc3luYyAoWywgY29udGFpbmVyXSkgPT4gKHtcbiAgICAgICAgZXhwb3NlOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6IGF3YWl0IGNvbnRhaW5lci5wcmVwYXJlKHsgY2F0YWxvZyB9KSxcbiAgICAgIH0pKSxcbiAgICAgIC4uLkFycmF5LmZyb20oc2VydmljZXMpLm1hcChhc3luYyAoW2FsaWFzLCBjb250YWluZXJdKSA9PiAoe1xuICAgICAgICBleHBvc2U6IGNvbnRhaW5lci5Db21wb25lbnQuaW50ZXJuYWwgPyBmYWxzZSA6ICdzZXJ2aWNlcycsXG4gICAgICAgIHZhbHVlOiBhd2FpdCBjb250YWluZXIucHJlcGFyZSh7IGNhdGFsb2cgfSksXG4gICAgICAgIGFsaWFzLFxuICAgICAgfSkpLFxuICAgICAgLi4uQXJyYXkuZnJvbShhY3Rpb25zKS5tYXAoYXN5bmMgKFthbGlhcywgY29udGFpbmVyXSkgPT4gKHtcbiAgICAgICAgZXhwb3NlOiBjb250YWluZXIuQ29tcG9uZW50LmludGVybmFsID8gZmFsc2UgOiAnYWN0aW9ucycsXG4gICAgICAgIHZhbHVlOiBhd2FpdCBjb250YWluZXIucHJlcGFyZSh7IGNhdGFsb2cgfSksXG4gICAgICAgIGFsaWFzLFxuICAgICAgfSkpLFxuICAgIF0pKVxuICAgICAgLmZpbHRlcihyZXN1bHQgPT4gQm9vbGVhbihyZXN1bHQuZXhwb3NlKSlcbiAgICAgIC5mb3JFYWNoKHJlc3VsdCA9PiB0aGlzOjpleHBvc2UocmVzdWx0LmV4cG9zZSwgcmVzdWx0LmFsaWFzLCByZXN1bHQudmFsdWUpKVxuXG4gICAgdGhpcy4jcHJlcGFyZWQgPSB0cnVlXG4gICAgYXdhaXQgdGhpcy4jb2JzZXJ2ZXJzOjpkaXNwYXRjaCgnYWZ0ZXJQcmVwYXJlJywgdGhpcylcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgYWxsIHNlcnZpY2VzXG4gICAqXG4gICAqIEByZXR1cm4gICAge1Byb21pc2U8dGhpcz59XG4gICAqL1xuICBhc3luYyBzdGFydCgpIHtcbiAgICBjb25zdCB7IGFjdGlvbnMsIHNlcnZpY2VzLCBob29rcyB9ID0gdGhpcy4jY2F0YWxvZ1xuXG4gICAgYXdhaXQgdGhpcy5wcmVwYXJlKClcbiAgICBhd2FpdCB0aGlzLiNvYnNlcnZlcnM6OmRpc3BhdGNoKCdiZWZvcmVTdGFydCcsIHRoaXMpXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAuLi5BcnJheS5mcm9tKGhvb2tzKSxcbiAgICAgIC4uLkFycmF5LmZyb20oYWN0aW9ucyksXG4gICAgXS5tYXAoKFssIGNvbnRhaW5lcl0pID0+IGNvbnRhaW5lci5zdGFydCh7IGhvb2tzIH0pKSlcblxuICAgIC8vIFN0YXJ0IGFsbCBzZXJ2aWNlcywgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBhZGRlZCB0byB0aGUgaW5zdGFuY2Ug8J+SqlxuICAgIC8vIE9yZGVyaW5nIGlzIGltcG9ydGFudCBoZXJlISBTb21lIHNlcnZpY2VzIHNob3VsZCBiZSBzdGFydGVkIGFzIHRoZSBsYXN0IG9uZXMgYmVjYXVzZSB0aGV5XG4gICAgLy8gZXhwb3NlIHNvbWUgZnVuY3Rpb25hbGl0eSB0byB0aGUgb3V0c2lkZSB3b3JsZCBhbmQgc3RhcnRpbmcgdGhvc2UgYmVmb3JlIGllLiBhIGRhdGFiYXNlXG4gICAgLy8gc2VydmljZSBpcyBzdGFydGVkIG1pZ2h0IGJyZWFrIHN0dWZmIVxuICAgIGZvciAoY29uc3QgWywgY29udGFpbmVyXSBvZiBzZXJ2aWNlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgY29udGFpbmVyLnN0YXJ0KHsgaG9va3MgfSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBSb2xsIGJhY2tcbiAgICAgICAgYXdhaXQgdGhpcy5zdG9wKClcbiAgICAgICAgICAvLyBTaGl0IGp1c3QgZ290IHNlcmlvdXMg8J+YsVxuICAgICAgICAgIC5jYXRjaChzdG9wRXJyID0+IHZvaWQgdGhpcy5sb2cuZmF0YWwoeyBlcnI6IHN0b3BFcnIgfSwgJ2F0bGFzOnN0YXJ0OnJvbGxiYWNrLWZhaWx1cmUnKSlcblxuICAgICAgICAvLyBSZS10aHJvdyB0aGUgb3JpZ2luYWwgZXJyb3Igd2hpY2ggY2F1c2VkIEF0bGFzIHRvIGZhaWwgdG8gc3RhcnRcbiAgICAgICAgdGhyb3cgZXJyXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy4jc3RhcnRlZCA9IHRydWVcbiAgICBhd2FpdCB0aGlzLiNvYnNlcnZlcnM6OmRpc3BhdGNoKCdhZnRlclN0YXJ0JywgdGhpcylcbiAgICB0aGlzLmxvZy5pbmZvKCdhdGxhczpyZWFkeScpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgYWxsIHNlcnZpY2VzLCB1bnJlZ2lzdGVyIGFsbCBhY3Rpb25zIGFuZCBob29rcyBhbmQgdW5wdWJsaXNoIGFueSBBUElzIGV4cG9zZWQgYnkgdGhlbVxuICAgKlxuICAgKiBUaGlzIHB1dHMgdGhlIHdob2xlIGFwcGxpY2F0aW9uIGludG8gYSBzdGF0ZSBhcyBpdCB3YXMgYmVmb3JlIGBhdGxhcy5wcmVwYXJlKClgIGFuZC9vclxuICAgKiBgYXRsYXMuc3RhcnQoKWAgd2FzIGNhbGxlZC5cbiAgICpcbiAgICogQHJldHVybiAgICB7UHJvbWlzZTx0aGlzPn1cbiAgICovXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgY29uc3QgeyBzZXJ2aWNlcywgYWN0aW9ucywgaG9va3MgfSA9IHRoaXMuI2NhdGFsb2dcblxuICAgIGF3YWl0IHRoaXMuI29ic2VydmVyczo6ZGlzcGF0Y2goJ2JlZm9yZVN0b3AnLCB0aGlzKVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgLi4uQXJyYXkuZnJvbShob29rcyksXG4gICAgICAuLi5BcnJheS5mcm9tKGFjdGlvbnMpLFxuICAgIF0ubWFwKChbLCBjb250YWluZXJdKSA9PiBjb250YWluZXIuc3RvcCgpKSlcblxuICAgIGxldCBlcnJvclxuXG4gICAgLy8gU3RvcCBhbGwgc2VydmljZXMsIGluIHRoZSByZXZlcnNlIG9yZGVyIHRoZXkgd2VyZSBhZGRlZCB0byB0aGUgaW5zdGFuY2Ug8J+SqlxuICAgIC8vIFRoaXMgd2lsbCBtYWtlIHN1cmUgdGhlIG1vc3QgaW1wb3J0YW50IHNlcnZpY2VzIGFyZSBzdG9wcGVkIGZpcnN0LlxuICAgIGZvciAoY29uc3QgW2FsaWFzLCBjb250YWluZXJdIG9mIEFycmF5LmZyb20oc2VydmljZXMpLnJldmVyc2UoKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZGVsZXRlIHRoaXMuc2VydmljZXNbYWxpYXNdXG4gICAgICAgIGF3YWl0IGNvbnRhaW5lci5zdG9wKHsgaG9va3MgfSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBlcnJvciA9IGVyclxuICAgICAgICAvLyBMZWF2ZSB0aGlzIHNlcnZpY2UgYXMgaXMgYW5kIG1vdmUgdG8gdGhlIG5leHQgc2VydmljZS4gV2UgcHJvYmFibHkgY2Fubm90IGRvIGFueXRoaW5nIHRvXG4gICAgICAgIC8vIHByb3Blcmx5IHN0b3AgdGhpcyBzZXJ2aWNlLiDwn5mBXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW5yZWdpc3RlciBhY3Rpb25zXG4gICAgZm9yIChjb25zdCBbYWxpYXNdIG9mIGFjdGlvbnMpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmFjdGlvbnNbYWxpYXNdXG4gICAgfVxuXG4gICAgdGhpcy4jc3RhcnRlZCA9IGZhbHNlXG4gICAgdGhpcy4jcHJlcGFyZWQgPSBmYWxzZVxuXG4gICAgYXdhaXQgaG9va3M6OmRpc3BhdGNoKCdhZnRlclN0b3AnLCBudWxsKVxuICAgIHRoaXMubG9nLmluZm8oJ2F0bGFzOnN0b3BwZWQnKVxuXG4gICAgLy8gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHRocm93biBpbiBvbmUgb2YgdGhlIHNlcnZpY2VzIGR1cmluZyAuc3RvcCgpLCByZS10aHJvdyBpdCBub3dcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBdGxhc1xuIl19

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

function _classPrivateFieldGet(receiver, privateMap) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return privateMap.get(receiver); }
function _classPrivateFieldGet(receiver, privateMap) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return privateMap.get(receiver).value; }

@@ -29,5 +29,11 @@ class ComponentContainer {

_observers.set(this, new Map());
_observers.set(this, {
writable: true,
value: new Map()
});
_catalog.set(this, new Map());
_catalog.set(this, {
writable: true,
value: new Map()
});

@@ -244,2 +250,2 @@ this.type = info.type;

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudC1jb250YWluZXIubWpzIl0sIm5hbWVzIjpbIkNvbXBvbmVudENvbnRhaW5lciIsImNvbnN0cnVjdG9yIiwiaW5mbyIsImF0bGFzIiwiTWFwIiwidHlwZSIsImFsaWFzIiwiYWxpYXNlcyIsIkNvbXBvbmVudCIsIkZyYW1ld29ya0Vycm9yIiwicHJvdmlkZWQiLCJPYmplY3QiLCJrZXlzIiwicmVxdWlyZWQiLCJyZXF1aXJlcyIsIm9ic2VydmVzIiwicHVzaCIsIm1pc3NpbmciLCJleHRyYSIsImxlbmd0aCIsImpvaW4iLCJjb25maWciLCJkZWZhdWx0cyIsInZhbGlkYXRvciIsInZhbGlkYXRlIiwiVmFsaWRhdGlvbkVycm9yIiwiZXJyb3JzIiwibG9nIiwidHJhY2UiLCJjb21wb25lbnQiLCJjaGlsZCIsImRpc3BhdGNoIiwibmFtZSIsImhhcyIsImdldCIsImluc3RhbmNlIiwicHJlcGFyZSIsIm9wdGlvbnMiLCJta2NhdGFsb2ciLCJzdGFydCIsIm9wdHMiLCJzdGFydGVkIiwibWtvYnNlcnZlcnMiLCJob29rcyIsImNhdGNoIiwiZXJyIiwiZXJyb3IiLCJzdG9wIiwiY2xlYXIiLCJvYnNlcnZlcnMiLCJjb250YWluZXIiLCJ0YXJnZXQiLCJzZXQiLCJkZXN0aW5hdGlvbiIsImNhdGFsb2ciLCJyZXNvbHZlZCIsImVudHJpZXMiLCJzcGxpdCIsInNvdXJjZSIsInNlcnZpY2VzIiwiYWN0aW9ucyIsImRlcGVuZGVuY3kiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFJQTs7QUFJQTs7Ozs7Ozs7QUFPQSxNQUFNQSxrQkFBTixDQUF5QjtBQXlCdkJDLGNBQVlDLElBQVosRUFBa0JDLEtBQWxCLEVBQXlCO0FBQUE7O0FBQUEscUNBcEJmLEtBb0JlOztBQUFBLHNDQWxCZCxJQWtCYzs7QUFBQSx5QkFoQlosSUFBSUMsR0FBSixFQWdCWTs7QUFBQSx1QkFmZCxJQUFJQSxHQUFKLEVBZWM7O0FBQ3ZCLFNBQUtDLElBQUwsR0FBWUgsS0FB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WUFBTSxJQUFJcEQsc0JBQUosQ0FBb0Isa0JBQWlCSixJQUFLLElBQUdrRCxRQUFTLGVBQWNqRCxLQUFNLEVBQTFFLENBQU47QUFDRDs7QUFFRCtDLGdCQUFZRCxHQUFaLENBQWdCOUMsS0FBaEIsRUFBdUJ1RCxVQUF2QjtBQUNEO0FBQ0Y7O2VBRWM3RCxrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEZyYW1ld29ya0Vycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gJ0BhdGxhcy5qcy9lcnJvcnMnXG5pbXBvcnQge1xuICBkZWZhdWx0c0RlZXAgYXMgZGVmYXVsdHMsXG4gIGRpZmZlcmVuY2UsXG59IGZyb20gJ2xvZGFzaCdcbmltcG9ydCBkaXNwYXRjaCBmcm9tICcuL2Rpc3BhdGNoJ1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaG9sZHMgYW5kIG1hbmFnZXMgYSBjb21wb25lbnRcbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBDb21wb25lbnRDb250YWluZXIge1xuICAvKipcbiAgICogSXMgdGhpcyBjb21wb25lbnQgYWxyZWFkeSBzdGFydGVkP1xuICAgKiBAdHlwZSAgICB7Qm9vbGVhbn1cbiAgICovXG4gIHN0YXJ0ZWQgPSBmYWxzZVxuXG4gIGluc3RhbmNlID0gbnVsbFxuXG4gICNvYnNlcnZlcnMgPSBuZXcgTWFwKClcbiAgI2NhdGFsb2cgPSBuZXcgTWFwKClcblxuICAvKipcbiAgICogQ3JlYXRlIG5ldyBjb250YWluZXIgZm9yIGEgY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgICAgIGluZm8gICAgICAgICAgICAgIENvbXBvbmVudCBpbmZvcm1hdGlvblxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgICAgICBpbmZvLnR5cGUgICAgICAgICBUaGUgY29tcG9uZW50J3MgdHlwZSAoc2VydmljZSwgaG9vaywgYWN0aW9uKVxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgICAgICBpbmZvLmFsaWFzICAgICAgICBUaGUgY29tcG9uZW50J3MgdXNlci1zcGVjaWZpZWQgbmFtZS9hbGlhc1xuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgICAgICBpbmZvLmFsaWFzZXMgICAgICBCaW5kaW5nIGluZm9ybWF0aW9uIGZyb20gdGhlIHVzZXIgdG8gbG9jYXRlIG90aGVyXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHNcbiAgICogQHBhcmFtICAgICB7Q2xhc3N9ICAgICAgICAgaW5mby5Db21wb25lbnQgICAgVGhlIGNvbXBvbmVudCBjbGFzc1xuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgICAgICBpbmZvLmNvbmZpZyAgICAgICBUaGUgY29tcG9uZW50J3MgdXNlci1zcGVjaWZpZWQgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gICAgIHtBanZ9ICAgICAgICAgICBpbmZvLnZhbGlkYXRvciAgICBBIEpTT04gc2NoZW1hIHZhbGlkYXRvciBpbnN0YW5jZVxuICAgKiBAcGFyYW0gICAgIHtBdGxhc30gICAgICAgICBhdGxhcyAgICAgICAgICAgICBUaGUgQXRsYXMgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKGluZm8sIGF0bGFzKSB7XG4gICAgdGhpcy50eXBlID0gaW5mby50eXBlXG4gICAgdGhpcy5hbGlhcyA9IGluZm8uYWxpYXNcbiAgICB0aGlzLmFsaWFzZXMgPSBpbmZvLmFsaWFzZXMgfHwge31cbiAgICB0aGlzLkNvbXBvbmVudCA9IGluZm8uQ29tcG9uZW50XG5cbiAgICBpZiAodHlwZW9mIHRoaXMuQ29tcG9uZW50ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCB0eXBlID0gdHlwZW9mIHRoaXMuQ29tcG9uZW50XG4gICAgICB0aHJvdyBuZXcgRnJhbWV3b3JrRXJyb3IoYENvbXBvbmVudCAke3RoaXMudHlwZX06JHt0aGlzLmFsaWFzfSBtdXN0IGJlIGNsYXNzLCBub3QgJHt0eXBlfWApXG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGNvbXBvbmVudCByZWNlaXZlZCBhbGwgdGhlIGFsaWFzZXMgaXQgcmVxdWlyZXNcbiAgICBjb25zdCBhbGlhc2VzID0ge1xuICAgICAgcHJvdmlkZWQ6IE9iamVjdC5rZXlzKHRoaXMuYWxpYXNlcyksXG4gICAgICAvLyBDb3B5IHRoZSBjb250ZW50cyB0byBhdm9pZCB0aGVpciBmdXR1cmUgbW9kaWZpY2F0aW9uXG4gICAgICByZXF1aXJlZDogWy4uLnRoaXMuQ29tcG9uZW50LnJlcXVpcmVzIHx8IFtdXSxcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnaG9vaycpIHtcbiAgICAgIC8vIFJlcXVpcmUgb2JzZXJ2ZWQgY29tcG9uZW50cyB0byBiZSByZXNvbHZlZCB2aWEgYWxpYXNcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5Db21wb25lbnQub2JzZXJ2ZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGFsaWFzZXMucmVxdWlyZWQucHVzaCh0aGlzLkNvbXBvbmVudC5vYnNlcnZlcylcbiAgICAgIH1cblxuICAgICAgLy8gRG8gbm90IHJlcXVpcmUgYXRsYXMgdG8gYmUgbGlzdGVkIGluIGFsaWFzZXMgLSB3ZSBjYW4gcmVzb2x2ZSBpdCBhdXRvbWF0aWNhbGx5XG4gICAgICBpZiAodGhpcy5Db21wb25lbnQub2JzZXJ2ZXMgPT09ICdhdGxhcycpIHtcbiAgICAgICAgYWxpYXNlcy5wcm92aWRlZC5wdXNoKCdhdGxhcycpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbWlzc2luZyA9IGRpZmZlcmVuY2UoYWxpYXNlcy5yZXF1aXJlZCwgYWxpYXNlcy5wcm92aWRlZClcbiAgICBjb25zdCBleHRyYSA9IGRpZmZlcmVuY2UoYWxpYXNlcy5wcm92aWRlZCwgYWxpYXNlcy5yZXF1aXJlZClcblxuICAgIGlmIChtaXNzaW5nLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEZyYW1ld29ya0Vycm9yKGBNaXNzaW5nIGFsaWFzZXMgZm9yIGNvbXBvbmVudCAke3RoaXMuYWxpYXN9OiAke21pc3Npbmcuam9pbignLCAnKX1gKVxuICAgIH1cblxuICAgIGlmIChleHRyYS5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBGcmFtZXdvcmtFcnJvcihgVW5uZWVkZWQgYWxpYXNlcyBmb3IgY29tcG9uZW50ICR7dGhpcy5hbGlhc306ICR7ZXh0cmEuam9pbignLCAnKX1gKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbmZpZyA9IGRlZmF1bHRzKGluZm8uY29uZmlnLCB0aGlzLkNvbXBvbmVudC5kZWZhdWx0cylcblxuICAgIGlmICghaW5mby52YWxpZGF0b3IudmFsaWRhdGUoaW5mby5Db21wb25lbnQuY29uZmlnLCBjb25maWcpKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGluZm8udmFsaWRhdG9yLmVycm9ycylcbiAgICB9XG5cbiAgICBhdGxhcy5sb2cudHJhY2Uoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLmFsaWFzLFxuICAgICAgY29uZmlnOiBpbmZvLmNvbmZpZyxcbiAgICAgIGRlZmF1bHRzOiB0aGlzLkNvbXBvbmVudC5kZWZhdWx0cyxcbiAgICB9LCAnY29tcG9uZW50OmNvbmZpZycpXG5cbiAgICB0aGlzLmNvbXBvbmVudCA9IG5ldyB0aGlzLkNvbXBvbmVudCh7XG4gICAgICBhdGxhcyxcbiAgICAgIGNvbmZpZyxcbiAgICAgIGxvZzogYXRsYXMubG9nLmNoaWxkKHsgW3RoaXMudHlwZV06IHRoaXMuYWxpYXMgfSksXG4gICAgICBkaXNwYXRjaDogdGhpcy4jb2JzZXJ2ZXJzOjpkaXNwYXRjaCxcbiAgICAgIGNvbXBvbmVudDogbmFtZSA9PiB7XG4gICAgICAgIGlmICghdGhpcy4jY2F0YWxvZy5oYXMobmFtZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRnJhbWV3b3JrRXJyb3IoYEFsaWFzIGZvciAke25hbWV9IG5vdCBkZWZpbmVkYClcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLiNjYXRhbG9nLmdldChuYW1lKS5pbnN0YW5jZVxuICAgICAgfSxcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgdGhlIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgICAgICAgIG9wdGlvbnMgICAgICAgICAgIElucHV0IG9wdGlvbnNcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICAgICAgICBvcHRpb25zLmNhdGFsb2cgICBBdGxhcyBjYXRhbG9nIG9mIGFsbCBjb21wb25lbnRzXG4gICAqIEByZXR1cm4gICAge1Byb21pc2U8dGhpcz59XG4gICAqL1xuICBhc3luYyBwcmVwYXJlKG9wdGlvbnMpIHtcbiAgICB0aGlzLmNvbXBvbmVudC5sb2cudHJhY2UoJ3ByZXBhcmU6YmVmb3JlJylcblxuICAgIHRoaXM6Om1rY2F0YWxvZyh0aGlzLiNjYXRhbG9nLCBvcHRpb25zKVxuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3NlcnZpY2UnOiB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UgPSBhd2FpdCB0aGlzLmNvbXBvbmVudC5wcmVwYXJlKClcbiAgICAgICAgdGhpcy5jb21wb25lbnQubG9nLnRyYWNlKCdwcmVwYXJlOmFmdGVyJylcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2hvb2snOlxuICAgICAgY2FzZSAnYWN0aW9uJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuY29tcG9uZW50LmxvZy50cmFjZSgncHJlcGFyZTphZnRlcicpXG4gICAgICAgIHRoaXMuaW5zdGFuY2UgPSB0aGlzLmNvbXBvbmVudFxuICAgICAgICBicmVha1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmluc3RhbmNlXG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgdGhlIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdHMgICAgICAgICAgICBBZGRpdGlvbmFsIG9wdGlvbnNcbiAgICogQHBhcmFtICAgICB7TWFwfSAgICAgICBvcHRzLmhvb2tzICAgICAgSG9va3MgYXZhaWxhYmxlIGluIHRoZSBhcHBsaWNhdGlvblxuICAgKiBAcmV0dXJuICAgIHtQcm9taXNlPHRoaXMuY29tcG9uZW50Pn1cbiAgICovXG4gIGFzeW5jIHN0YXJ0KG9wdHMpIHtcbiAgICBpZiAodGhpcy5zdGFydGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wb25lbnRcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBvbmVudC5sb2cudHJhY2UoJ3N0YXJ0OmJlZm9yZScpXG4gICAgdGhpczo6bWtvYnNlcnZlcnModGhpcy4jb2JzZXJ2ZXJzLCB7IGhvb2tzOiBvcHRzLmhvb2tzIH0pXG5cbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSAnc2VydmljZSc6XG4gICAgICAgIGF3YWl0IChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgdGhpcy4jb2JzZXJ2ZXJzOjpkaXNwYXRjaCgnYmVmb3JlU3RhcnQnLCB0aGlzLmluc3RhbmNlKVxuICAgICAgICAgIGF3YWl0IHRoaXMuY29tcG9uZW50LnN0YXJ0KHRoaXMuaW5zdGFuY2UpXG4gICAgICAgICAgYXdhaXQgdGhpcy4jb2JzZXJ2ZXJzOjpkaXNwYXRjaCgnYWZ0ZXJTdGFydCcsIHRoaXMuaW5zdGFuY2UpXG4gICAgICAgIH0pKClcbiAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50LmxvZy5lcnJvcih7IGVyciB9LCAnc3RhcnQ6ZmFpbHVyZScpXG4gICAgICAgICAgICB0aHJvdyBlcnJcbiAgICAgICAgICB9KVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdob29rJzpcbiAgICAgIGNhc2UgJ2FjdGlvbic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVha1xuICAgIH1cblxuICAgIHRoaXMuc3RhcnRlZCA9IHRydWVcblxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgdGhpcyBjb21wb25lbnQgYW5kIGNsZWFuIHVwIGFsbCBhc3NvY2lhdGVkIHJlc291cmNlc1xuICAgKlxuICAgKiBAcmV0dXJuICAgIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgc3RvcCgpIHtcbiAgICBpZiAoIXRoaXMuc3RhcnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnQubG9nLnRyYWNlKCdzdG9wOmJlZm9yZScpXG5cbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSAnc2VydmljZSc6XG4gICAgICAgIGF3YWl0IChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgdGhpcy4jb2JzZXJ2ZXJzOjpkaXNwYXRjaCgnYmVmb3JlU3RvcCcsIHRoaXMuaW5zdGFuY2UpXG4gICAgICAgICAgYXdhaXQgdGhpcy5jb21wb25lbnQuc3RvcCh0aGlzLmluc3RhbmNlKVxuICAgICAgICAgIGF3YWl0IHRoaXMuI29ic2VydmVyczo6ZGlzcGF0Y2goJ2FmdGVyU3RvcCcsIG51bGwpXG4gICAgICAgIH0pKClcbiAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50LmxvZy5lcnJvcih7IGVyciB9LCAnc3RvcDpmYWlsdXJlJylcbiAgICAgICAgICAgIHRoaXMuc3RhcnRlZCA9IHRydWVcbiAgICAgICAgICAgIHRocm93IGVyclxuICAgICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ2hvb2snOlxuICAgICAgY2FzZSAnYWN0aW9uJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgdGhpcy4jb2JzZXJ2ZXJzLmNsZWFyKClcbiAgICB0aGlzLiNjYXRhbG9nLmNsZWFyKClcbiAgICB0aGlzLmluc3RhbmNlID0gbnVsbFxuICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlXG4gIH1cbn1cblxuLyoqXG4gKiBGaW5kIGFsbCBob29rcyB3aGljaCB3YW50IHRvIG9ic2VydmUgdGhpcyBjb21wb25lbnQncyBldmVudHNcbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtICAgICB7TWFwfSAgICAgICAgIG9ic2VydmVycyAgICAgVGhlIG9ic2VydmVycyB0byBjaGVja1xuICogQHBhcmFtICAgICB7T2JqZWN0fSAgICAgIG9wdHMgICAgICAgICAgRnVuY3Rpb24gcGFyYW1ldGVyc1xuICogQHBhcmFtICAgICB7TWFwfSAgICAgICAgIG9wdHMuaG9va3MgICAgQWxsIGhvb2tzIGtub3duIHRvIEF0bGFzXG4gKiBAcmV0dXJuICAgIHt2b2lkfVxuICovXG5mdW5jdGlvbiBta29ic2VydmVycyhvYnNlcnZlcnMsIHsgaG9va3MgfSkge1xuICBmb3IgKGNvbnN0IFthbGlhcywgY29udGFpbmVyXSBvZiBob29rcykge1xuICAgIGNvbnN0IHRhcmdldCA9IGNvbnRhaW5lci5hbGlhc2VzW2NvbnRhaW5lci5Db21wb25lbnQub2JzZXJ2ZXNdXG5cbiAgICBpZiAodGhpcy5hbGlhcyA9PT0gdGFyZ2V0KSB7XG4gICAgICBvYnNlcnZlcnMuc2V0KGFsaWFzLCBjb250YWluZXIpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1rY2F0YWxvZyhkZXN0aW5hdGlvbiwgeyBjYXRhbG9nIH0pIHtcbiAgZm9yIChjb25zdCBbYWxpYXMsIHJlc29sdmVkXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmFsaWFzZXMpKSB7XG4gICAgY29uc3QgW3R5cGVdID0gYWxpYXMuc3BsaXQoJzonKVxuICAgIGNvbnN0IHNvdXJjZSA9ICgoKSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnc2VydmljZSc6IHJldHVybiBjYXRhbG9nLnNlcnZpY2VzXG4gICAgICAgIGNhc2UgJ2FjdGlvbic6IHJldHVybiBjYXRhbG9nLmFjdGlvbnNcbiAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEZyYW1ld29ya0Vycm9yKGBJbnZhbGlkIGNvbXBvbmVudCB0eXBlOiAke3R5cGV9IHVzZWQgaW4gYWxpYXMgJHthbGlhc31gKVxuICAgICAgfVxuICAgIH0pKClcblxuICAgIGNvbnN0IGRlcGVuZGVuY3kgPSBzb3VyY2UuZ2V0KHRoaXMuYWxpYXNlc1thbGlhc10pXG5cbiAgICBpZiAoIWRlcGVuZGVuY3kpIHtcbiAgICAgIHRocm93IG5ldyBGcmFtZXdvcmtFcnJvcihgVW5hYmxlIHRvIGZpbmQgJHt0eXBlfSAke3Jlc29sdmVkfSBhbGlhc2VkIGFzICR7YWxpYXN9YClcbiAgICB9XG5cbiAgICBkZXN0aW5hdGlvbi5zZXQoYWxpYXMsIGRlcGVuZGVuY3kpXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50Q29udGFpbmVyXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudC1jb250YWluZXIubWpzIl0sIm5hbWVzIjpbIkNvbXBvbmVudENvbnRhaW5lciIsImNvbnN0cnVjdG9yIiwiaW5mbyIsImF0bGFzIiwiTWFwIiwidHlwZSIsImFsaWFzIiwiYWxpYXNlcyIsIkNvbXBvbmVudCIsIkZyYW1ld29ya0Vycm9yIiwicHJvdmlkZWQiLCJPYmplY3QiLCJrZXlzIiwicmVxdWlyZWQiLCJyZXF1aXJlcyIsIm9ic2VydmVzIiwicHVzaCIsIm1pc3NpbmciLCJleHRyYSIsImxlbmd0aCIsImpvaW4iLCJjb25maWciLCJkZWZhdWx0cyIsInZhbGlkYXRvciIsInZhbGlkYXRlIiwiVmFsaWRhdGlvbkVycm9yIiwiZXJyb3JzIiwibG9nIiwidHJhY2UiLCJjb21wb25lbnQiLCJjaGlsZCIsImRpc3BhdGNoIiwibmFtZSIsImhhcyIsImdldCIsImluc3RhbmNlIiwicHJlcGFyZSIsIm9wdGlvbnMiLCJta2NhdGFsb2ciLCJzdGFydCIsIm9wdHMiLCJzdGFydGVkIiwibWtvYnNlcnZlcnMiLCJob29rcyIsImNhdGNoIiwiZXJyIiwiZXJyb3IiLCJzdG9wIiwiY2xlYXIiLCJvYnNlcnZlcnMiLCJjb250YWluZXIiLCJ0YXJnZXQiLCJzZXQiLCJkZXN0aW5hdGlvbiIsImNhdGFsb2ciLCJyZXNvbHZlZCIsImVudHJpZXMiLCJzcGxpdCIsInNvdXJjZSIsInNlcnZpY2VzIiwiYWN0aW9ucyIsImRlcGVuZGVuY3kiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFJQTs7QUFJQTs7Ozs7Ozs7QUFPQSxNQUFNQSxrQkFBTixDQUF5QjtBQXlCdkJDLEVBQUFBLFdBQVcsQ0FBQ0MsSUFBRCxFQUFPQyxLQUFQLEVBQWM7QUFBQTs7QUFBQSxxQ0FwQmYsS0FvQmU7O0FBQUEsc0NBbEJkLElBa0JjOztBQUFBO0FBQUE7QUFBQSxhQWhCWixJQUFJQyxHQUFKO0FBZ0JZOztBQUFBO0FBQUE7QUFBQSxhQWZkLElBQUlBLEdBQUo7QUFlYzs7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QU0sQ0FBQ0YsSUFBRCxJQUFTQyxLQUFLLENBQUNtRCxLQUFOLENBQVksR0FBWixDQUFmOztBQUNBLFVBQU1DLE1BQU0sR0FBRyxDQUFDLE1BQU07QUFDcEIsY0FBUXJELElBQVI7QUFDRSxhQUFLLFNBQUw7QUFBZ0IsaUJBQU9pRCxPQUFPLENBQUNLLFFBQWY7O0FBQ2hCLGFBQUssUUFBTDtBQUFlLGlCQUFPTCxPQUFPLENBQUNNLE9BQWY7O0FBQ2Y7QUFBUyxnQkFBTSxJQUFJbkQsc0JBQUosQ0FBb0IsMkJBQTBCSixJQUFLLGtCQUFpQkMsS0FBTSxFQUExRSxDQUFOO0FBSFg7QUFLRCxLQU5jLEdBQWY7O0FBUUEsVUFBTXVELFVBQVUsR0FBR0gsTUFBTSxDQUFDeEIsR0FBUCxDQUFXLEtBQUszQixPQUFMLENBQWFELEtBQWIsQ0FBWCxDQUFuQjs7QUFFQSxRQUFJLENBQUN1RCxVQUFMLEVBQWlCO0FBQ2YsWUFBTSxJQUFJcEQsc0JBQUosQ0FBb0Isa0JBQWlCSixJQUFLLElBQUdrRCxRQUFTLGVBQWNqRCxLQUFNLEVBQTFFLENBQU47QUFDRDs7QUFFRCtDLElBQUFBLFdBQVcsQ0FBQ0QsR0FBWixDQUFnQjlDLEtBQWhCLEVBQXVCdUQsVUFBdkI7QUFDRDtBQUNGOztlQUVjN0Qsa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGcmFtZXdvcmtFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxufSBmcm9tICdAYXRsYXMuanMvZXJyb3JzJ1xuaW1wb3J0IHtcbiAgZGVmYXVsdHNEZWVwIGFzIGRlZmF1bHRzLFxuICBkaWZmZXJlbmNlLFxufSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgZGlzcGF0Y2ggZnJvbSAnLi9kaXNwYXRjaCdcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGhvbGRzIGFuZCBtYW5hZ2VzIGEgY29tcG9uZW50XG4gKlxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgQ29tcG9uZW50Q29udGFpbmVyIHtcbiAgLyoqXG4gICAqIElzIHRoaXMgY29tcG9uZW50IGFscmVhZHkgc3RhcnRlZD9cbiAgICogQHR5cGUgICAge0Jvb2xlYW59XG4gICAqL1xuICBzdGFydGVkID0gZmFsc2VcblxuICBpbnN0YW5jZSA9IG51bGxcblxuICAjb2JzZXJ2ZXJzID0gbmV3IE1hcCgpXG4gICNjYXRhbG9nID0gbmV3IE1hcCgpXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBuZXcgY29udGFpbmVyIGZvciBhIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgICAgICBpbmZvICAgICAgICAgICAgICBDb21wb25lbnQgaW5mb3JtYXRpb25cbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICAgICAgaW5mby50eXBlICAgICAgICAgVGhlIGNvbXBvbmVudCdzIHR5cGUgKHNlcnZpY2UsIGhvb2ssIGFjdGlvbilcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICAgICAgaW5mby5hbGlhcyAgICAgICAgVGhlIGNvbXBvbmVudCdzIHVzZXItc3BlY2lmaWVkIG5hbWUvYWxpYXNcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICAgICAgaW5mby5hbGlhc2VzICAgICAgQmluZGluZyBpbmZvcm1hdGlvbiBmcm9tIHRoZSB1c2VyIHRvIGxvY2F0ZSBvdGhlclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzXG4gICAqIEBwYXJhbSAgICAge0NsYXNzfSAgICAgICAgIGluZm8uQ29tcG9uZW50ICAgIFRoZSBjb21wb25lbnQgY2xhc3NcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICAgICAgaW5mby5jb25maWcgICAgICAgVGhlIGNvbXBvbmVudCdzIHVzZXItc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtICAgICB7QWp2fSAgICAgICAgICAgaW5mby52YWxpZGF0b3IgICAgQSBKU09OIHNjaGVtYSB2YWxpZGF0b3IgaW5zdGFuY2VcbiAgICogQHBhcmFtICAgICB7QXRsYXN9ICAgICAgICAgYXRsYXMgICAgICAgICAgICAgVGhlIEF0bGFzIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihpbmZvLCBhdGxhcykge1xuICAgIHRoaXMudHlwZSA9IGluZm8udHlwZVxuICAgIHRoaXMuYWxpYXMgPSBpbmZvLmFsaWFzXG4gICAgdGhpcy5hbGlhc2VzID0gaW5mby5hbGlhc2VzIHx8IHt9XG4gICAgdGhpcy5Db21wb25lbnQgPSBpbmZvLkNvbXBvbmVudFxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLkNvbXBvbmVudCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgdHlwZSA9IHR5cGVvZiB0aGlzLkNvbXBvbmVudFxuICAgICAgdGhyb3cgbmV3IEZyYW1ld29ya0Vycm9yKGBDb21wb25lbnQgJHt0aGlzLnR5cGV9OiR7dGhpcy5hbGlhc30gbXVzdCBiZSBjbGFzcywgbm90ICR7dHlwZX1gKVxuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZSBjb21wb25lbnQgcmVjZWl2ZWQgYWxsIHRoZSBhbGlhc2VzIGl0IHJlcXVpcmVzXG4gICAgY29uc3QgYWxpYXNlcyA9IHtcbiAgICAgIHByb3ZpZGVkOiBPYmplY3Qua2V5cyh0aGlzLmFsaWFzZXMpLFxuICAgICAgLy8gQ29weSB0aGUgY29udGVudHMgdG8gYXZvaWQgdGhlaXIgZnV0dXJlIG1vZGlmaWNhdGlvblxuICAgICAgcmVxdWlyZWQ6IFsuLi50aGlzLkNvbXBvbmVudC5yZXF1aXJlcyB8fCBbXV0sXG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2hvb2snKSB7XG4gICAgICAvLyBSZXF1aXJlIG9ic2VydmVkIGNvbXBvbmVudHMgdG8gYmUgcmVzb2x2ZWQgdmlhIGFsaWFzXG4gICAgICBpZiAodHlwZW9mIHRoaXMuQ29tcG9uZW50Lm9ic2VydmVzID09PSAnc3RyaW5nJykge1xuICAgICAgICBhbGlhc2VzLnJlcXVpcmVkLnB1c2godGhpcy5Db21wb25lbnQub2JzZXJ2ZXMpXG4gICAgICB9XG5cbiAgICAgIC8vIERvIG5vdCByZXF1aXJlIGF0bGFzIHRvIGJlIGxpc3RlZCBpbiBhbGlhc2VzIC0gd2UgY2FuIHJlc29sdmUgaXQgYXV0b21hdGljYWxseVxuICAgICAgaWYgKHRoaXMuQ29tcG9uZW50Lm9ic2VydmVzID09PSAnYXRsYXMnKSB7XG4gICAgICAgIGFsaWFzZXMucHJvdmlkZWQucHVzaCgnYXRsYXMnKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG1pc3NpbmcgPSBkaWZmZXJlbmNlKGFsaWFzZXMucmVxdWlyZWQsIGFsaWFzZXMucHJvdmlkZWQpXG4gICAgY29uc3QgZXh0cmEgPSBkaWZmZXJlbmNlKGFsaWFzZXMucHJvdmlkZWQsIGFsaWFzZXMucmVxdWlyZWQpXG5cbiAgICBpZiAobWlzc2luZy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBGcmFtZXdvcmtFcnJvcihgTWlzc2luZyBhbGlhc2VzIGZvciBjb21wb25lbnQgJHt0aGlzLmFsaWFzfTogJHttaXNzaW5nLmpvaW4oJywgJyl9YClcbiAgICB9XG5cbiAgICBpZiAoZXh0cmEubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRnJhbWV3b3JrRXJyb3IoYFVubmVlZGVkIGFsaWFzZXMgZm9yIGNvbXBvbmVudCAke3RoaXMuYWxpYXN9OiAke2V4dHJhLmpvaW4oJywgJyl9YClcbiAgICB9XG5cbiAgICBjb25zdCBjb25maWcgPSBkZWZhdWx0cyhpbmZvLmNvbmZpZywgdGhpcy5Db21wb25lbnQuZGVmYXVsdHMpXG5cbiAgICBpZiAoIWluZm8udmFsaWRhdG9yLnZhbGlkYXRlKGluZm8uQ29tcG9uZW50LmNvbmZpZywgY29uZmlnKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihpbmZvLnZhbGlkYXRvci5lcnJvcnMpXG4gICAgfVxuXG4gICAgYXRsYXMubG9nLnRyYWNlKHtcbiAgICAgIGNvbXBvbmVudDogdGhpcy5hbGlhcyxcbiAgICAgIGNvbmZpZzogaW5mby5jb25maWcsXG4gICAgICBkZWZhdWx0czogdGhpcy5Db21wb25lbnQuZGVmYXVsdHMsXG4gICAgfSwgJ2NvbXBvbmVudDpjb25maWcnKVxuXG4gICAgdGhpcy5jb21wb25lbnQgPSBuZXcgdGhpcy5Db21wb25lbnQoe1xuICAgICAgYXRsYXMsXG4gICAgICBjb25maWcsXG4gICAgICBsb2c6IGF0bGFzLmxvZy5jaGlsZCh7IFt0aGlzLnR5cGVdOiB0aGlzLmFsaWFzIH0pLFxuICAgICAgZGlzcGF0Y2g6IHRoaXMuI29ic2VydmVyczo6ZGlzcGF0Y2gsXG4gICAgICBjb21wb25lbnQ6IG5hbWUgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuI2NhdGFsb2cuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEZyYW1ld29ya0Vycm9yKGBBbGlhcyBmb3IgJHtuYW1lfSBub3QgZGVmaW5lZGApXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy4jY2F0YWxvZy5nZXQobmFtZSkuaW5zdGFuY2VcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIHRoZSBjb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICAgICAgICBvcHRpb25zICAgICAgICAgICBJbnB1dCBvcHRpb25zXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgICAgICAgb3B0aW9ucy5jYXRhbG9nICAgQXRsYXMgY2F0YWxvZyBvZiBhbGwgY29tcG9uZW50c1xuICAgKiBAcmV0dXJuICAgIHtQcm9taXNlPHRoaXM+fVxuICAgKi9cbiAgYXN5bmMgcHJlcGFyZShvcHRpb25zKSB7XG4gICAgdGhpcy5jb21wb25lbnQubG9nLnRyYWNlKCdwcmVwYXJlOmJlZm9yZScpXG5cbiAgICB0aGlzOjpta2NhdGFsb2codGhpcy4jY2F0YWxvZywgb3B0aW9ucylcblxuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlICdzZXJ2aWNlJzoge1xuICAgICAgICB0aGlzLmluc3RhbmNlID0gYXdhaXQgdGhpcy5jb21wb25lbnQucHJlcGFyZSgpXG4gICAgICAgIHRoaXMuY29tcG9uZW50LmxvZy50cmFjZSgncHJlcGFyZTphZnRlcicpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdob29rJzpcbiAgICAgIGNhc2UgJ2FjdGlvbic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmNvbXBvbmVudC5sb2cudHJhY2UoJ3ByZXBhcmU6YWZ0ZXInKVxuICAgICAgICB0aGlzLmluc3RhbmNlID0gdGhpcy5jb21wb25lbnRcbiAgICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pbnN0YW5jZVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHRoZSBjb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRzICAgICAgICAgICAgQWRkaXRpb25hbCBvcHRpb25zXG4gICAqIEBwYXJhbSAgICAge01hcH0gICAgICAgb3B0cy5ob29rcyAgICAgIEhvb2tzIGF2YWlsYWJsZSBpbiB0aGUgYXBwbGljYXRpb25cbiAgICogQHJldHVybiAgICB7UHJvbWlzZTx0aGlzLmNvbXBvbmVudD59XG4gICAqL1xuICBhc3luYyBzdGFydChvcHRzKSB7XG4gICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50XG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnQubG9nLnRyYWNlKCdzdGFydDpiZWZvcmUnKVxuICAgIHRoaXM6Om1rb2JzZXJ2ZXJzKHRoaXMuI29ic2VydmVycywgeyBob29rczogb3B0cy5ob29rcyB9KVxuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgICBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IHRoaXMuI29ic2VydmVyczo6ZGlzcGF0Y2goJ2JlZm9yZVN0YXJ0JywgdGhpcy5pbnN0YW5jZSlcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbXBvbmVudC5zdGFydCh0aGlzLmluc3RhbmNlKVxuICAgICAgICAgIGF3YWl0IHRoaXMuI29ic2VydmVyczo6ZGlzcGF0Y2goJ2FmdGVyU3RhcnQnLCB0aGlzLmluc3RhbmNlKVxuICAgICAgICB9KSgpXG4gICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudC5sb2cuZXJyb3IoeyBlcnIgfSwgJ3N0YXJ0OmZhaWx1cmUnKVxuICAgICAgICAgICAgdGhyb3cgZXJyXG4gICAgICAgICAgfSlcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnaG9vayc6XG4gICAgICBjYXNlICdhY3Rpb24nOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlXG5cbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHRoaXMgY29tcG9uZW50IGFuZCBjbGVhbiB1cCBhbGwgYXNzb2NpYXRlZCByZXNvdXJjZXNcbiAgICpcbiAgICogQHJldHVybiAgICB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50LmxvZy50cmFjZSgnc3RvcDpiZWZvcmUnKVxuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgICBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IHRoaXMuI29ic2VydmVyczo6ZGlzcGF0Y2goJ2JlZm9yZVN0b3AnLCB0aGlzLmluc3RhbmNlKVxuICAgICAgICAgIGF3YWl0IHRoaXMuY29tcG9uZW50LnN0b3AodGhpcy5pbnN0YW5jZSlcbiAgICAgICAgICBhd2FpdCB0aGlzLiNvYnNlcnZlcnM6OmRpc3BhdGNoKCdhZnRlclN0b3AnLCBudWxsKVxuICAgICAgICB9KSgpXG4gICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudC5sb2cuZXJyb3IoeyBlcnIgfSwgJ3N0b3A6ZmFpbHVyZScpXG4gICAgICAgICAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlXG4gICAgICAgICAgICB0aHJvdyBlcnJcbiAgICAgICAgICB9KVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdob29rJzpcbiAgICAgIGNhc2UgJ2FjdGlvbic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVha1xuICAgIH1cblxuICAgIHRoaXMuI29ic2VydmVycy5jbGVhcigpXG4gICAgdGhpcy4jY2F0YWxvZy5jbGVhcigpXG4gICAgdGhpcy5pbnN0YW5jZSA9IG51bGxcbiAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZVxuICB9XG59XG5cbi8qKlxuICogRmluZCBhbGwgaG9va3Mgd2hpY2ggd2FudCB0byBvYnNlcnZlIHRoaXMgY29tcG9uZW50J3MgZXZlbnRzXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSAgICAge01hcH0gICAgICAgICBvYnNlcnZlcnMgICAgIFRoZSBvYnNlcnZlcnMgdG8gY2hlY2tcbiAqIEBwYXJhbSAgICAge09iamVjdH0gICAgICBvcHRzICAgICAgICAgIEZ1bmN0aW9uIHBhcmFtZXRlcnNcbiAqIEBwYXJhbSAgICAge01hcH0gICAgICAgICBvcHRzLmhvb2tzICAgIEFsbCBob29rcyBrbm93biB0byBBdGxhc1xuICogQHJldHVybiAgICB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gbWtvYnNlcnZlcnMob2JzZXJ2ZXJzLCB7IGhvb2tzIH0pIHtcbiAgZm9yIChjb25zdCBbYWxpYXMsIGNvbnRhaW5lcl0gb2YgaG9va3MpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBjb250YWluZXIuYWxpYXNlc1tjb250YWluZXIuQ29tcG9uZW50Lm9ic2VydmVzXVxuXG4gICAgaWYgKHRoaXMuYWxpYXMgPT09IHRhcmdldCkge1xuICAgICAgb2JzZXJ2ZXJzLnNldChhbGlhcywgY29udGFpbmVyKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBta2NhdGFsb2coZGVzdGluYXRpb24sIHsgY2F0YWxvZyB9KSB7XG4gIGZvciAoY29uc3QgW2FsaWFzLCByZXNvbHZlZF0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5hbGlhc2VzKSkge1xuICAgIGNvbnN0IFt0eXBlXSA9IGFsaWFzLnNwbGl0KCc6JylcbiAgICBjb25zdCBzb3VyY2UgPSAoKCkgPT4ge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ3NlcnZpY2UnOiByZXR1cm4gY2F0YWxvZy5zZXJ2aWNlc1xuICAgICAgICBjYXNlICdhY3Rpb24nOiByZXR1cm4gY2F0YWxvZy5hY3Rpb25zXG4gICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBGcmFtZXdvcmtFcnJvcihgSW52YWxpZCBjb21wb25lbnQgdHlwZTogJHt0eXBlfSB1c2VkIGluIGFsaWFzICR7YWxpYXN9YClcbiAgICAgIH1cbiAgICB9KSgpXG5cbiAgICBjb25zdCBkZXBlbmRlbmN5ID0gc291cmNlLmdldCh0aGlzLmFsaWFzZXNbYWxpYXNdKVxuXG4gICAgaWYgKCFkZXBlbmRlbmN5KSB7XG4gICAgICB0aHJvdyBuZXcgRnJhbWV3b3JrRXJyb3IoYFVuYWJsZSB0byBmaW5kICR7dHlwZX0gJHtyZXNvbHZlZH0gYWxpYXNlZCBhcyAke2FsaWFzfWApXG4gICAgfVxuXG4gICAgZGVzdGluYXRpb24uc2V0KGFsaWFzLCBkZXBlbmRlbmN5KVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudENvbnRhaW5lclxuIl19

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

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudC5tanMiXSwibmFtZXMiOlsiY29tcG9uZW50IiwiaW5mbyIsImNhdGFsb2ciLCJoYXMiLCJhbGlhcyIsIkZyYW1ld29ya0Vycm9yIiwidHlwZSIsImNvbmZpZyIsInZhbGlkYXRvciIsImNvbnRhaW5lciIsIkNvbXBvbmVudENvbnRhaW5lciIsInNldCIsImxvZyIsInRyYWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7Ozs7QUFjQSxTQUFTQSxTQUFULENBQW1CQyxJQUFuQixFQUF5QkMsT0FBekIsRUFBa0M7QUFFaEMsTUFBSUEsUUFBUUMsR0FBUixDQUFZRixLQUFLRyxLQUFqQixDQUFKLEVBQTZCO0FBQzNCLFVBQU0sSUFBSUMsc0JBQUosQ0FBb0Isd0JBQXVCSixLQUFLRyxLQUFNLEtBQUlILEtBQUtLLElBQUssZ0JBQXBFLENBQU47QUFDRDs7QUFJREwsT0FBS00sTUFBTCxHQUFjLEtBQUtBLE1BQUwsQ0FBYSxHQUFFTixLQUFLSyxJQUFLLEdBQXpCLEVBQTZCTCxLQUFLRyxLQUFsQyxDQUFkO0FBRUFILE9BQUtPLFNBQUwsR0FBaUIsS0FBS0EsU0FBdEI7QUFFQSxRQUFNQyxZQUFZLElBQUlDLDJCQUFKLENBQXVCVCxJQUF2QixFQUE2QixJQUE3QixDQUFsQjtBQUVBQyxVQUFRUyxHQUFSLENBQVlWLEtBQUtHLEtBQWpCLEVBQXdCSyxTQUF4QjtBQUNBLE9BQUtHLEdBQUwsQ0FBU0MsS0FBVCxDQUFlO0FBQUUsS0FBQ1osS0FBS0ssSUFBTixHQUFhTCxLQUFLRztBQUFwQixHQUFmLEVBQTZDLEdBQUVILEtBQUtLLElBQUssTUFBekQ7QUFFQSxTQUFPRyxTQUFQO0FBQ0Q7O2VBRWNULFMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGcmFtZXdvcmtFcnJvciB9IGZyb20gJ0BhdGxhcy5qcy9lcnJvcnMnXG5pbXBvcnQgQ29tcG9uZW50Q29udGFpbmVyIGZyb20gJy4vY29tcG9uZW50LWNvbnRhaW5lcidcblxuLyoqXG4gKiBSZWdpc3RlciBhIGNvbXBvbmVudCBpbnRvIHRoZSBnaXZlbiBjYXRhbG9nXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSAgICAge09iamVjdH0gICAgaW5mbyAgICAgICAgICAgICAgQ29tcG9uZW50IGluZm9ybWF0aW9uXG4gKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgIGluZm8udHlwZSAgICAgICAgIFRoZSBjb21wb25lbnQncyB0eXBlIChzZXJ2aWNlLCBob29rLCBhY3Rpb24pXG4gKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgIGluZm8uYWxpYXMgICAgICAgIFRoZSBjb21wb25lbnQncyB1c2VyLXNwZWNpZmllZCBuYW1lL2FsaWFzXG4gKiBAcGFyYW0gICAgIHtDbGFzc30gICAgIGluZm8uQ29tcG9uZW50ICAgIFRoZSBjb21wb25lbnQgY2xhc3NcbiAqIEBwYXJhbSAgICAge09iamVjdH0gICAgaW5mby5hbGlhc2VzICAgICAgQmluZGluZyBpbmZvcm1hdGlvbiB0byBvdGhlciBkZWZpbmVkIGNvbXBvbmVudHNcbiAqIEBwYXJhbSAgICAge01hcH0gICAgICAgY2F0YWxvZyAgICAgICAgICAgVGhlIGNhdGFsb2cgdG8gd2hpY2ggdG8gc2F2ZSB0aGUgY29tcG9uZW50XG4gKiBAcmV0dXJuICAgIHtDb21wb25lbnRDb250YWluZXJ9XG4gKi9cbmZ1bmN0aW9uIGNvbXBvbmVudChpbmZvLCBjYXRhbG9nKSB7XG4gIC8vIFNhZmV0eSBjaGVja3MgZmlyc3RcbiAgaWYgKGNhdGFsb2cuaGFzKGluZm8uYWxpYXMpKSB7XG4gICAgdGhyb3cgbmV3IEZyYW1ld29ya0Vycm9yKGBDb21wb25lbnQgd2l0aCBhbGlhcyAke2luZm8uYWxpYXN9ICgke2luZm8udHlwZX0pIGFscmVhZHkgdXNlZGApXG4gIH1cblxuICAvLyBQdWxsIHVzZXItcHJvdmlkZWQgY29uZmlnIGZvciB0aGlzIGNvbXBvbmVudFxuICAvLyBVc2UgYSBwbHVyYWwgZm9ybSBvZiB0aGUgY29tcG9uZW50IHR5cGUsIGllLiwgYWN0aW9uIC0+IGFjdGlvbnMsIHNlcnZpY2UgLT4gc2VydmljZXMgZXRjLlxuICBpbmZvLmNvbmZpZyA9IHRoaXMuY29uZmlnW2Ake2luZm8udHlwZX1zYF1baW5mby5hbGlhc11cbiAgLy8gUHVsbCBKU09OIHNjaGVtYSB2YWxpZGF0b3IgZnJvbSB0aGUgQXRsYXMgaW5zdGFuY2VcbiAgaW5mby52YWxpZGF0b3IgPSB0aGlzLnZhbGlkYXRvclxuXG4gIGNvbnN0IGNvbnRhaW5lciA9IG5ldyBDb21wb25lbnRDb250YWluZXIoaW5mbywgdGhpcylcblxuICBjYXRhbG9nLnNldChpbmZvLmFsaWFzLCBjb250YWluZXIpXG4gIHRoaXMubG9nLnRyYWNlKHsgW2luZm8udHlwZV06IGluZm8uYWxpYXMgfSwgYCR7aW5mby50eXBlfTphZGRgKVxuXG4gIHJldHVybiBjb250YWluZXJcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudC5tanMiXSwibmFtZXMiOlsiY29tcG9uZW50IiwiaW5mbyIsImNhdGFsb2ciLCJoYXMiLCJhbGlhcyIsIkZyYW1ld29ya0Vycm9yIiwidHlwZSIsImNvbmZpZyIsInZhbGlkYXRvciIsImNvbnRhaW5lciIsIkNvbXBvbmVudENvbnRhaW5lciIsInNldCIsImxvZyIsInRyYWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7Ozs7QUFjQSxTQUFTQSxTQUFULENBQW1CQyxJQUFuQixFQUF5QkMsT0FBekIsRUFBa0M7QUFFaEMsTUFBSUEsT0FBTyxDQUFDQyxHQUFSLENBQVlGLElBQUksQ0FBQ0csS0FBakIsQ0FBSixFQUE2QjtBQUMzQixVQUFNLElBQUlDLHNCQUFKLENBQW9CLHdCQUF1QkosSUFBSSxDQUFDRyxLQUFNLEtBQUlILElBQUksQ0FBQ0ssSUFBSyxnQkFBcEUsQ0FBTjtBQUNEOztBQUlETCxFQUFBQSxJQUFJLENBQUNNLE1BQUwsR0FBYyxLQUFLQSxNQUFMLENBQWEsR0FBRU4sSUFBSSxDQUFDSyxJQUFLLEdBQXpCLEVBQTZCTCxJQUFJLENBQUNHLEtBQWxDLENBQWQ7QUFFQUgsRUFBQUEsSUFBSSxDQUFDTyxTQUFMLEdBQWlCLEtBQUtBLFNBQXRCO0FBRUEsUUFBTUMsU0FBUyxHQUFHLElBQUlDLDJCQUFKLENBQXVCVCxJQUF2QixFQUE2QixJQUE3QixDQUFsQjtBQUVBQyxFQUFBQSxPQUFPLENBQUNTLEdBQVIsQ0FBWVYsSUFBSSxDQUFDRyxLQUFqQixFQUF3QkssU0FBeEI7QUFDQSxPQUFLRyxHQUFMLENBQVNDLEtBQVQsQ0FBZTtBQUFFLEtBQUNaLElBQUksQ0FBQ0ssSUFBTixHQUFhTCxJQUFJLENBQUNHO0FBQXBCLEdBQWYsRUFBNkMsR0FBRUgsSUFBSSxDQUFDSyxJQUFLLE1BQXpEO0FBRUEsU0FBT0csU0FBUDtBQUNEOztlQUVjVCxTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnJhbWV3b3JrRXJyb3IgfSBmcm9tICdAYXRsYXMuanMvZXJyb3JzJ1xuaW1wb3J0IENvbXBvbmVudENvbnRhaW5lciBmcm9tICcuL2NvbXBvbmVudC1jb250YWluZXInXG5cbi8qKlxuICogUmVnaXN0ZXIgYSBjb21wb25lbnQgaW50byB0aGUgZ2l2ZW4gY2F0YWxvZ1xuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIGluZm8gICAgICAgICAgICAgIENvbXBvbmVudCBpbmZvcm1hdGlvblxuICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBpbmZvLnR5cGUgICAgICAgICBUaGUgY29tcG9uZW50J3MgdHlwZSAoc2VydmljZSwgaG9vaywgYWN0aW9uKVxuICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBpbmZvLmFsaWFzICAgICAgICBUaGUgY29tcG9uZW50J3MgdXNlci1zcGVjaWZpZWQgbmFtZS9hbGlhc1xuICogQHBhcmFtICAgICB7Q2xhc3N9ICAgICBpbmZvLkNvbXBvbmVudCAgICBUaGUgY29tcG9uZW50IGNsYXNzXG4gKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIGluZm8uYWxpYXNlcyAgICAgIEJpbmRpbmcgaW5mb3JtYXRpb24gdG8gb3RoZXIgZGVmaW5lZCBjb21wb25lbnRzXG4gKiBAcGFyYW0gICAgIHtNYXB9ICAgICAgIGNhdGFsb2cgICAgICAgICAgIFRoZSBjYXRhbG9nIHRvIHdoaWNoIHRvIHNhdmUgdGhlIGNvbXBvbmVudFxuICogQHJldHVybiAgICB7Q29tcG9uZW50Q29udGFpbmVyfVxuICovXG5mdW5jdGlvbiBjb21wb25lbnQoaW5mbywgY2F0YWxvZykge1xuICAvLyBTYWZldHkgY2hlY2tzIGZpcnN0XG4gIGlmIChjYXRhbG9nLmhhcyhpbmZvLmFsaWFzKSkge1xuICAgIHRocm93IG5ldyBGcmFtZXdvcmtFcnJvcihgQ29tcG9uZW50IHdpdGggYWxpYXMgJHtpbmZvLmFsaWFzfSAoJHtpbmZvLnR5cGV9KSBhbHJlYWR5IHVzZWRgKVxuICB9XG5cbiAgLy8gUHVsbCB1c2VyLXByb3ZpZGVkIGNvbmZpZyBmb3IgdGhpcyBjb21wb25lbnRcbiAgLy8gVXNlIGEgcGx1cmFsIGZvcm0gb2YgdGhlIGNvbXBvbmVudCB0eXBlLCBpZS4sIGFjdGlvbiAtPiBhY3Rpb25zLCBzZXJ2aWNlIC0+IHNlcnZpY2VzIGV0Yy5cbiAgaW5mby5jb25maWcgPSB0aGlzLmNvbmZpZ1tgJHtpbmZvLnR5cGV9c2BdW2luZm8uYWxpYXNdXG4gIC8vIFB1bGwgSlNPTiBzY2hlbWEgdmFsaWRhdG9yIGZyb20gdGhlIEF0bGFzIGluc3RhbmNlXG4gIGluZm8udmFsaWRhdG9yID0gdGhpcy52YWxpZGF0b3JcblxuICBjb25zdCBjb250YWluZXIgPSBuZXcgQ29tcG9uZW50Q29udGFpbmVyKGluZm8sIHRoaXMpXG5cbiAgY2F0YWxvZy5zZXQoaW5mby5hbGlhcywgY29udGFpbmVyKVxuICB0aGlzLmxvZy50cmFjZSh7IFtpbmZvLnR5cGVdOiBpbmZvLmFsaWFzIH0sIGAke2luZm8udHlwZX06YWRkYClcblxuICByZXR1cm4gY29udGFpbmVyXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudFxuIl19

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

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRpc3BhdGNoLm1qcyJdLCJuYW1lcyI6WyJkaXNwYXRjaCIsImV2ZW50Iiwic3ViamVjdCIsInRhc2tzIiwiTWFwIiwiaG9vayIsImNvbXBvbmVudCIsImxvZyIsImRlYnVnIiwic2V0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0YXNrIiwiY2F0Y2giLCJlcnIiLCJlcnJvciIsImFsbCIsIkFycmF5IiwiZnJvbSIsInZhbHVlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVlBLGVBQWVBLFFBQWYsQ0FBd0JDLEtBQXhCLEVBQStCQyxPQUEvQixFQUF3QztBQUN0QyxRQUFNQyxRQUFRLElBQUlDLEdBQUosRUFBZDs7QUFFQSxPQUFLLE1BQU0sR0FBR0MsSUFBSCxDQUFYLElBQXVCLElBQXZCLEVBQTZCO0FBRTNCLFFBQUksT0FBT0EsS0FBS0MsU0FBTCxDQUFlTCxLQUFmLENBQVAsS0FBaUMsVUFBckMsRUFBaUQ7QUFDL0NJLFdBQUtDLFNBQUwsQ0FBZUMsR0FBZixDQUFtQkMsS0FBbkIsQ0FBeUI7QUFBRVA7QUFBRixPQUF6QixFQUFvQyxZQUFwQztBQUNBRSxZQUFNTSxHQUFOLENBQVVKLElBQVYsRUFBZ0JLLFFBQVFDLE9BQVIsQ0FBZ0JOLEtBQUtDLFNBQUwsQ0FBZUwsS0FBZixFQUFzQkMsT0FBdEIsQ0FBaEIsQ0FBaEI7QUFDRCxLQUhELE1BR087QUFDTEcsV0FBS0MsU0FBTCxDQUFlQyxHQUFmLENBQW1CQyxLQUFuQixDQUF5QjtBQUFFUDtBQUFGLE9BQXpCLEVBQW9DLDRCQUFwQztBQUNEO0FBQ0Y7O0FBRUQsT0FBSyxNQUFNLENBQUNJLElBQUQsRUFBT08sSUFBUCxDQUFYLElBQTJCVCxLQUEzQixFQUFrQztBQUNoQ1MsU0FBS0MsS0FBTCxDQUFXQyxPQUFPLEtBQUtULEtBQUtDLFNBQUwsQ0FBZUMsR0FBZixDQUFtQlEsS0FBbkIsQ0FBeUI7QUFBRUQsU0FBRjtBQUFPYjtBQUFQLEtBQXpCLEVBQXlDLG9CQUF6QyxDQUF2QjtBQUNEOztBQUdELFFBQU1TLFFBQVFNLEdBQVIsQ0FBWUMsTUFBTUMsSUFBTixDQUFXZixNQUFNZ0IsTUFBTixFQUFYLENBQVosRUFDSE4sS0FERyxDQUNHLE1BQU0sQ0FBRSxDQURYLENBQU47QUFFRDs7ZUFFY2IsUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGlzcGF0Y2ggYW4gZXZlbnQgdG8gaG9va3NcbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHRha2VzIHZhcmlhYmxlIG51bWJlciBvZiBldmVudHMgdG8gYmUgZGlzcGF0Y2hlZCB0byBob29rc1xuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgIGV2ZW50ICAgICBUaGUgZXZlbnQncyBuYW1lXG4gKiBAcGFyYW0gICAgIHttaXhlZH0gICAgIHN1YmplY3QgICBUaGUgdGhpbmcgdGhhdCBpcyByZWxhdGVkIHRvIHRoZSBldmVudCAoaWUuIGEgY29tcG9uZW50KVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgaXMgZ2l2ZW4gdG8gdGhlIGV2ZW50IGhhbmRsZXIgb24gaW5wdXQuXG4gKiBAdGhpcyAgICAgIE1hcFxuICogQHJldHVybiAgICB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZGlzcGF0Y2goZXZlbnQsIHN1YmplY3QpIHtcbiAgY29uc3QgdGFza3MgPSBuZXcgTWFwKClcblxuICBmb3IgKGNvbnN0IFssIGhvb2tdIG9mIHRoaXMpIHtcbiAgICAvLyBJcyB0aGlzIGhvb2sgbGlzdGVuaW5nIGZvciB0aGUgZXZlbnQgYmVpbmcgZGlzcGF0Y2hlZD9cbiAgICBpZiAodHlwZW9mIGhvb2suY29tcG9uZW50W2V2ZW50XSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaG9vay5jb21wb25lbnQubG9nLmRlYnVnKHsgZXZlbnQgfSwgJ2hvb2s6ZXZlbnQnKVxuICAgICAgdGFza3Muc2V0KGhvb2ssIFByb21pc2UucmVzb2x2ZShob29rLmNvbXBvbmVudFtldmVudF0oc3ViamVjdCkpKVxuICAgIH0gZWxzZSB7XG4gICAgICBob29rLmNvbXBvbmVudC5sb2cuZGVidWcoeyBldmVudCB9LCAnaG9vazpldmVudDpub3QtaW1wbGVtZW50ZWQnKVxuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgW2hvb2ssIHRhc2tdIG9mIHRhc2tzKSB7XG4gICAgdGFzay5jYXRjaChlcnIgPT4gdm9pZCBob29rLmNvbXBvbmVudC5sb2cuZXJyb3IoeyBlcnIsIGV2ZW50IH0sICdob29rOmV2ZW50OmZhaWx1cmUnKSlcbiAgfVxuXG4gIC8vIEVuc3VyZSBubyB1bmNhdWdodCBlcnJvciBlc2NhcGVzIGZyb20gdGhpcyBwbGFjZVxuICBhd2FpdCBQcm9taXNlLmFsbChBcnJheS5mcm9tKHRhc2tzLnZhbHVlcygpKSlcbiAgICAuY2F0Y2goKCkgPT4ge30pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGRpc3BhdGNoXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRpc3BhdGNoLm1qcyJdLCJuYW1lcyI6WyJkaXNwYXRjaCIsImV2ZW50Iiwic3ViamVjdCIsInRhc2tzIiwiTWFwIiwiaG9vayIsImNvbXBvbmVudCIsImxvZyIsImRlYnVnIiwic2V0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0YXNrIiwiY2F0Y2giLCJlcnIiLCJlcnJvciIsImFsbCIsIkFycmF5IiwiZnJvbSIsInZhbHVlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVlBLGVBQWVBLFFBQWYsQ0FBd0JDLEtBQXhCLEVBQStCQyxPQUEvQixFQUF3QztBQUN0QyxRQUFNQyxLQUFLLEdBQUcsSUFBSUMsR0FBSixFQUFkOztBQUVBLE9BQUssTUFBTSxHQUFHQyxJQUFILENBQVgsSUFBdUIsSUFBdkIsRUFBNkI7QUFFM0IsUUFBSSxPQUFPQSxJQUFJLENBQUNDLFNBQUwsQ0FBZUwsS0FBZixDQUFQLEtBQWlDLFVBQXJDLEVBQWlEO0FBQy9DSSxNQUFBQSxJQUFJLENBQUNDLFNBQUwsQ0FBZUMsR0FBZixDQUFtQkMsS0FBbkIsQ0FBeUI7QUFBRVAsUUFBQUE7QUFBRixPQUF6QixFQUFvQyxZQUFwQztBQUNBRSxNQUFBQSxLQUFLLENBQUNNLEdBQU4sQ0FBVUosSUFBVixFQUFnQkssT0FBTyxDQUFDQyxPQUFSLENBQWdCTixJQUFJLENBQUNDLFNBQUwsQ0FBZUwsS0FBZixFQUFzQkMsT0FBdEIsQ0FBaEIsQ0FBaEI7QUFDRCxLQUhELE1BR087QUFDTEcsTUFBQUEsSUFBSSxDQUFDQyxTQUFMLENBQWVDLEdBQWYsQ0FBbUJDLEtBQW5CLENBQXlCO0FBQUVQLFFBQUFBO0FBQUYsT0FBekIsRUFBb0MsNEJBQXBDO0FBQ0Q7QUFDRjs7QUFFRCxPQUFLLE1BQU0sQ0FBQ0ksSUFBRCxFQUFPTyxJQUFQLENBQVgsSUFBMkJULEtBQTNCLEVBQWtDO0FBQ2hDUyxJQUFBQSxJQUFJLENBQUNDLEtBQUwsQ0FBV0MsR0FBRyxJQUFJLEtBQUtULElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxHQUFmLENBQW1CUSxLQUFuQixDQUF5QjtBQUFFRCxNQUFBQSxHQUFGO0FBQU9iLE1BQUFBO0FBQVAsS0FBekIsRUFBeUMsb0JBQXpDLENBQXZCO0FBQ0Q7O0FBR0QsUUFBTVMsT0FBTyxDQUFDTSxHQUFSLENBQVlDLEtBQUssQ0FBQ0MsSUFBTixDQUFXZixLQUFLLENBQUNnQixNQUFOLEVBQVgsQ0FBWixFQUNITixLQURHLENBQ0csTUFBTSxDQUFFLENBRFgsQ0FBTjtBQUVEOztlQUVjYixRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEaXNwYXRjaCBhbiBldmVudCB0byBob29rc1xuICpcbiAqIERpc3BhdGNoIGFuIGV2ZW50IHRvIGFsbCBob29rcyBsaXN0ZW5pbmcgb24gdGhpcyBjb21wb25lbnRcbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBldmVudCAgICAgVGhlIGV2ZW50J3MgbmFtZVxuICogQHBhcmFtICAgICB7bWl4ZWR9ICAgICBzdWJqZWN0ICAgVGhlIHRoaW5nIHRoYXQgaXMgcmVsYXRlZCB0byB0aGUgZXZlbnQgKGllLiBhIGNvbXBvbmVudClcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IGlzIGdpdmVuIHRvIHRoZSBldmVudCBoYW5kbGVyIG9uIGlucHV0LlxuICogQHRoaXMgICAgICBNYXBcbiAqIEByZXR1cm4gICAge1Byb21pc2U8dm9pZD59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGRpc3BhdGNoKGV2ZW50LCBzdWJqZWN0KSB7XG4gIGNvbnN0IHRhc2tzID0gbmV3IE1hcCgpXG5cbiAgZm9yIChjb25zdCBbLCBob29rXSBvZiB0aGlzKSB7XG4gICAgLy8gSXMgdGhpcyBob29rIGxpc3RlbmluZyBmb3IgdGhlIGV2ZW50IGJlaW5nIGRpc3BhdGNoZWQ/XG4gICAgaWYgKHR5cGVvZiBob29rLmNvbXBvbmVudFtldmVudF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGhvb2suY29tcG9uZW50LmxvZy5kZWJ1Zyh7IGV2ZW50IH0sICdob29rOmV2ZW50JylcbiAgICAgIHRhc2tzLnNldChob29rLCBQcm9taXNlLnJlc29sdmUoaG9vay5jb21wb25lbnRbZXZlbnRdKHN1YmplY3QpKSlcbiAgICB9IGVsc2Uge1xuICAgICAgaG9vay5jb21wb25lbnQubG9nLmRlYnVnKHsgZXZlbnQgfSwgJ2hvb2s6ZXZlbnQ6bm90LWltcGxlbWVudGVkJylcbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IFtob29rLCB0YXNrXSBvZiB0YXNrcykge1xuICAgIHRhc2suY2F0Y2goZXJyID0+IHZvaWQgaG9vay5jb21wb25lbnQubG9nLmVycm9yKHsgZXJyLCBldmVudCB9LCAnaG9vazpldmVudDpmYWlsdXJlJykpXG4gIH1cblxuICAvLyBFbnN1cmUgbm8gdW5jYXVnaHQgZXJyb3IgZXNjYXBlcyBmcm9tIHRoaXMgcGxhY2VcbiAgYXdhaXQgUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh0YXNrcy52YWx1ZXMoKSkpXG4gICAgLmNhdGNoKCgpID0+IHt9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBkaXNwYXRjaFxuIl19

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

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4cG9zZS5tanMiXSwibmFtZXMiOlsiZXhwb3NlIiwiY29sbGVjdGlvbiIsInByb3BlcnR5IiwidmFsdWUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJnZXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTQSxTQUFTQSxNQUFULENBQWdCQyxVQUFoQixFQUE0QkMsUUFBNUIsRUFBc0NDLEtBQXRDLEVBQTZDO0FBQzNDQyxTQUFPQyxjQUFQLENBQXNCLEtBQUtKLFVBQUwsQ0FBdEIsRUFBd0NDLFFBQXhDLEVBQWtEO0FBQ2hESSxnQkFBWSxJQURvQztBQUVoREMsa0JBQWMsSUFGa0M7QUFHaERDLFNBQUssTUFBTUw7QUFIcUMsR0FBbEQ7QUFLRDs7ZUFFY0gsTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXhwb3NlIGEgZ2V0dGVyIG9uIHRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZSB1bmRlciB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24gKG9iamVjdClcbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBjb2xsZWN0aW9uICAgIFRoZSBjb2xsZWN0aW9uIChvYmplY3QpIG9udG8gd2hpY2ggdG8gYXR0YWNoIHRoZSBnZXR0ZXJcbiAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgcHJvcGVydHkgICAgICBUaGUgZ2V0dGVyJ3MgbmFtZS9rZXlcbiAqIEBwYXJhbSAgICAge21peGVkfSAgICAgdmFsdWUgICAgICAgVGhlIHZhbHVlIHRvIHJldHVybiBmcm9tIHRoZSBnZXR0ZXJcbiAqIEByZXR1cm4gICAge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGV4cG9zZShjb2xsZWN0aW9uLCBwcm9wZXJ0eSwgdmFsdWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXNbY29sbGVjdGlvbl0sIHByb3BlcnR5LCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiAoKSA9PiB2YWx1ZSxcbiAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXhwb3NlXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4cG9zZS5tanMiXSwibmFtZXMiOlsiZXhwb3NlIiwiY29sbGVjdGlvbiIsInByb3BlcnR5IiwidmFsdWUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJnZXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTQSxTQUFTQSxNQUFULENBQWdCQyxVQUFoQixFQUE0QkMsUUFBNUIsRUFBc0NDLEtBQXRDLEVBQTZDO0FBQzNDQyxFQUFBQSxNQUFNLENBQUNDLGNBQVAsQ0FBc0IsS0FBS0osVUFBTCxDQUF0QixFQUF3Q0MsUUFBeEMsRUFBa0Q7QUFDaERJLElBQUFBLFVBQVUsRUFBRSxJQURvQztBQUVoREMsSUFBQUEsWUFBWSxFQUFFLElBRmtDO0FBR2hEQyxJQUFBQSxHQUFHLEVBQUUsTUFBTUw7QUFIcUMsR0FBbEQ7QUFLRDs7ZUFFY0gsTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXhwb3NlIGEgZ2V0dGVyIG9uIHRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZSB1bmRlciB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24gKG9iamVjdClcbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBjb2xsZWN0aW9uICAgIFRoZSBjb2xsZWN0aW9uIChvYmplY3QpIG9udG8gd2hpY2ggdG8gYXR0YWNoIHRoZSBnZXR0ZXJcbiAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgcHJvcGVydHkgICAgICBUaGUgZ2V0dGVyJ3MgbmFtZS9rZXlcbiAqIEBwYXJhbSAgICAge21peGVkfSAgICAgdmFsdWUgICAgICAgVGhlIHZhbHVlIHRvIHJldHVybiBmcm9tIHRoZSBnZXR0ZXJcbiAqIEByZXR1cm4gICAge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGV4cG9zZShjb2xsZWN0aW9uLCBwcm9wZXJ0eSwgdmFsdWUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXNbY29sbGVjdGlvbl0sIHByb3BlcnR5LCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiAoKSA9PiB2YWx1ZSxcbiAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXhwb3NlXG4iXX0=

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

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1rY29uZmlnLm1qcyJdLCJuYW1lcyI6WyJta2NvbmZpZyIsImNvbmZpZyIsImJhc2UiLCJvcHRpb25zIiwib3B0aW9uYWwiLCJub3JtYWxpc2UiLCJtb2R1bGVzIiwicmVxdWlyZSIsImVudiIsImxvY2FsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBcUJBLFNBQVNBLFFBQVQsQ0FBa0JDLFNBQVMsRUFBM0IsRUFBK0JDLE9BQU8sRUFBdEMsRUFBMEM7QUFDeEMsTUFBSSxPQUFPRCxNQUFQLEtBQWtCLFFBQXRCLEVBQWdDO0FBQzlCLFVBQU1FLFVBQVU7QUFBRUMsZ0JBQVUsSUFBWjtBQUFrQkMsaUJBQVc7QUFBN0IsS0FBaEI7QUFDQSxVQUFNQyxVQUFVO0FBQ2RMLGNBQVEsS0FBS00sT0FBTCxDQUFhTixNQUFiLEVBQXFCRSxPQUFyQixDQURNO0FBRWRLLFdBQUssS0FBS0QsT0FBTCxDQUFjLEdBQUVOLE1BQU8sUUFBTyxLQUFLTyxHQUFJLEVBQXZDLEVBQTBDTCxPQUExQyxDQUZTO0FBR2RNLGFBQU8sS0FBS0YsT0FBTCxDQUFjLEdBQUVOLE1BQU8sUUFBdkIsRUFBZ0NFLE9BQWhDO0FBSE8sS0FBaEI7QUFNQUcsWUFBUUwsTUFBUixHQUFpQixtQkFBTUssUUFBUUwsTUFBZCxFQUFzQkssUUFBUUUsR0FBOUIsRUFBbUNGLFFBQVFHLEtBQTNDLENBQWpCO0FBQ0FILFlBQVFMLE1BQVIsR0FBaUIsMEJBQVNLLFFBQVFMLE1BQWpCLEVBQXlCQyxJQUF6QixDQUFqQjtBQUVBLFdBQU9JLFFBQVFMLE1BQWY7QUFDRDs7QUFHRCxTQUFPLDBCQUFTQSxNQUFULEVBQWlCQyxJQUFqQixDQUFQO0FBQ0Q7O2VBRWNGLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkZWZhdWx0c0RlZXAgYXMgZGVmYXVsdHMsXG4gIG1lcmdlLFxufSBmcm9tICdsb2Rhc2gnXG5cbi8qKlxuICogQ3JlYXRlIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCBmcm9tIGlucHV0c1xuICpcbiAqIEZvciBwYXRoLWJhc2VkIGNvbmZpZ3MsIHdlIGFkZGl0aW9uYWxseSB3YW50IHRvIHN1cHBvcnQ6XG4gKiAtIGxvYWRpbmcgYW5kIGFwcGx5aW5nIGVudmlyb25tZW50IG92ZXJyaWRlcyBvbiB0b3Agb2YgdGhlIGJhc2UgY29uZmlnXG4gKiAtIGxvYWRpbmcgYW5kIGFwcGx5aW5nIGxvY2FsIChwZXItbWFjaGluZSkgb3ZlcnJpZGVzIG9uIHRvcCBvZiB0aGUgY29uZmlnXG4gKlxuICogVGhpcyBwYXR0ZXJuIGlzIGZyZXF1ZW50LWVub3VnaCB0aGF0IGl0IHdhcnJhbnRzIGV4cGxpY2l0IHN1cHBvcnQgaW4gY29yZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBjb25maWcgICAgICAgIEJhc2UgY29uZmlnIG9iamVjdCwgb3IgYSBzdHJpbmcgKHBhdGgpIHRvIGEgbW9kdWxlIHdoZXJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNvbmZpZyBzaG91bGQgYmUgbG9kZWQgZnJvbSwgcmVsYXRpdmUgdG8gcm9vdFxuICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBiYXNlICAgICAgICAgIERlZmF1bHQgdmFsdWVzIHRvIGJlIGFkZGVkIHRvIHRoZSBjb25maWcgb2JqZWN0IGlmIHRoZXkgYXJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2luZyBmcm9tIHRoZSBpbnB1dCBjb25maWdcbiAqIEByZXR1cm4gICAge09iamVjdH1cbiAqL1xuZnVuY3Rpb24gbWtjb25maWcoY29uZmlnID0ge30sIGJhc2UgPSB7fSkge1xuICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBvcHRpb25zID0geyBvcHRpb25hbDogdHJ1ZSwgbm9ybWFsaXNlOiB0cnVlIH1cbiAgICBjb25zdCBtb2R1bGVzID0ge1xuICAgICAgY29uZmlnOiB0aGlzLnJlcXVpcmUoY29uZmlnLCBvcHRpb25zKSxcbiAgICAgIGVudjogdGhpcy5yZXF1aXJlKGAke2NvbmZpZ30vZW52LyR7dGhpcy5lbnZ9YCwgb3B0aW9ucyksXG4gICAgICBsb2NhbDogdGhpcy5yZXF1aXJlKGAke2NvbmZpZ30vbG9jYWxgLCBvcHRpb25zKSxcbiAgICB9XG5cbiAgICBtb2R1bGVzLmNvbmZpZyA9IG1lcmdlKG1vZHVsZXMuY29uZmlnLCBtb2R1bGVzLmVudiwgbW9kdWxlcy5sb2NhbClcbiAgICBtb2R1bGVzLmNvbmZpZyA9IGRlZmF1bHRzKG1vZHVsZXMuY29uZmlnLCBiYXNlKVxuXG4gICAgcmV0dXJuIG1vZHVsZXMuY29uZmlnXG4gIH1cblxuICAvLyBJdCdzIGp1c3QgYW4gb2JqZWN0LCBhcHBseSBkZWZhdWx0cyBhbmQgR1RGT1xuICByZXR1cm4gZGVmYXVsdHMoY29uZmlnLCBiYXNlKVxufVxuXG5leHBvcnQgZGVmYXVsdCBta2NvbmZpZ1xuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1rY29uZmlnLm1qcyJdLCJuYW1lcyI6WyJta2NvbmZpZyIsImNvbmZpZyIsImJhc2UiLCJvcHRpb25zIiwib3B0aW9uYWwiLCJub3JtYWxpc2UiLCJtb2R1bGVzIiwicmVxdWlyZSIsImVudiIsImxvY2FsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBcUJBLFNBQVNBLFFBQVQsQ0FBa0JDLE1BQU0sR0FBRyxFQUEzQixFQUErQkMsSUFBSSxHQUFHLEVBQXRDLEVBQTBDO0FBQ3hDLE1BQUksT0FBT0QsTUFBUCxLQUFrQixRQUF0QixFQUFnQztBQUM5QixVQUFNRSxPQUFPLEdBQUc7QUFBRUMsTUFBQUEsUUFBUSxFQUFFLElBQVo7QUFBa0JDLE1BQUFBLFNBQVMsRUFBRTtBQUE3QixLQUFoQjtBQUNBLFVBQU1DLE9BQU8sR0FBRztBQUNkTCxNQUFBQSxNQUFNLEVBQUUsS0FBS00sT0FBTCxDQUFhTixNQUFiLEVBQXFCRSxPQUFyQixDQURNO0FBRWRLLE1BQUFBLEdBQUcsRUFBRSxLQUFLRCxPQUFMLENBQWMsR0FBRU4sTUFBTyxRQUFPLEtBQUtPLEdBQUksRUFBdkMsRUFBMENMLE9BQTFDLENBRlM7QUFHZE0sTUFBQUEsS0FBSyxFQUFFLEtBQUtGLE9BQUwsQ0FBYyxHQUFFTixNQUFPLFFBQXZCLEVBQWdDRSxPQUFoQztBQUhPLEtBQWhCO0FBTUFHLElBQUFBLE9BQU8sQ0FBQ0wsTUFBUixHQUFpQixtQkFBTUssT0FBTyxDQUFDTCxNQUFkLEVBQXNCSyxPQUFPLENBQUNFLEdBQTlCLEVBQW1DRixPQUFPLENBQUNHLEtBQTNDLENBQWpCO0FBQ0FILElBQUFBLE9BQU8sQ0FBQ0wsTUFBUixHQUFpQiwwQkFBU0ssT0FBTyxDQUFDTCxNQUFqQixFQUF5QkMsSUFBekIsQ0FBakI7QUFFQSxXQUFPSSxPQUFPLENBQUNMLE1BQWY7QUFDRDs7QUFHRCxTQUFPLDBCQUFTQSxNQUFULEVBQWlCQyxJQUFqQixDQUFQO0FBQ0Q7O2VBRWNGLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkZWZhdWx0c0RlZXAgYXMgZGVmYXVsdHMsXG4gIG1lcmdlLFxufSBmcm9tICdsb2Rhc2gnXG5cbi8qKlxuICogQ3JlYXRlIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCBmcm9tIGlucHV0c1xuICpcbiAqIEZvciBwYXRoLWJhc2VkIGNvbmZpZ3MsIHdlIGFkZGl0aW9uYWxseSB3YW50IHRvIHN1cHBvcnQ6XG4gKiAtIGxvYWRpbmcgYW5kIGFwcGx5aW5nIGVudmlyb25tZW50IG92ZXJyaWRlcyBvbiB0b3Agb2YgdGhlIGJhc2UgY29uZmlnXG4gKiAtIGxvYWRpbmcgYW5kIGFwcGx5aW5nIGxvY2FsIChwZXItbWFjaGluZSkgb3ZlcnJpZGVzIG9uIHRvcCBvZiB0aGUgY29uZmlnXG4gKlxuICogVGhpcyBwYXR0ZXJuIGlzIGZyZXF1ZW50LWVub3VnaCB0aGF0IGl0IHdhcnJhbnRzIGV4cGxpY2l0IHN1cHBvcnQgaW4gY29yZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBjb25maWcgICAgICAgIEJhc2UgY29uZmlnIG9iamVjdCwgb3IgYSBzdHJpbmcgKHBhdGgpIHRvIGEgbW9kdWxlIHdoZXJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNvbmZpZyBzaG91bGQgYmUgbG9kZWQgZnJvbSwgcmVsYXRpdmUgdG8gcm9vdFxuICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBiYXNlICAgICAgICAgIERlZmF1bHQgdmFsdWVzIHRvIGJlIGFkZGVkIHRvIHRoZSBjb25maWcgb2JqZWN0IGlmIHRoZXkgYXJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2luZyBmcm9tIHRoZSBpbnB1dCBjb25maWdcbiAqIEByZXR1cm4gICAge09iamVjdH1cbiAqL1xuZnVuY3Rpb24gbWtjb25maWcoY29uZmlnID0ge30sIGJhc2UgPSB7fSkge1xuICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCBvcHRpb25zID0geyBvcHRpb25hbDogdHJ1ZSwgbm9ybWFsaXNlOiB0cnVlIH1cbiAgICBjb25zdCBtb2R1bGVzID0ge1xuICAgICAgY29uZmlnOiB0aGlzLnJlcXVpcmUoY29uZmlnLCBvcHRpb25zKSxcbiAgICAgIGVudjogdGhpcy5yZXF1aXJlKGAke2NvbmZpZ30vZW52LyR7dGhpcy5lbnZ9YCwgb3B0aW9ucyksXG4gICAgICBsb2NhbDogdGhpcy5yZXF1aXJlKGAke2NvbmZpZ30vbG9jYWxgLCBvcHRpb25zKSxcbiAgICB9XG5cbiAgICBtb2R1bGVzLmNvbmZpZyA9IG1lcmdlKG1vZHVsZXMuY29uZmlnLCBtb2R1bGVzLmVudiwgbW9kdWxlcy5sb2NhbClcbiAgICBtb2R1bGVzLmNvbmZpZyA9IGRlZmF1bHRzKG1vZHVsZXMuY29uZmlnLCBiYXNlKVxuXG4gICAgcmV0dXJuIG1vZHVsZXMuY29uZmlnXG4gIH1cblxuICAvLyBJdCdzIGp1c3QgYW4gb2JqZWN0LCBhcHBseSBkZWZhdWx0cyBhbmQgR1RGT1xuICByZXR1cm4gZGVmYXVsdHMoY29uZmlnLCBiYXNlKVxufVxuXG5leHBvcnQgZGVmYXVsdCBta2NvbmZpZ1xuIl19

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

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1rbG9nLm1qcyJdLCJuYW1lcyI6WyJta2xvZyIsImNvbmZpZyIsInNlcmlhbGl6ZXJzIiwicmVxdWlyZSIsIm5vcm1hbGlzZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBU0EsU0FBU0EsS0FBVCxDQUFlQyxNQUFmLEVBQXVCO0FBRXJCQSxTQUFPQyxXQUFQLEdBQXFCLE9BQU9ELE9BQU9DLFdBQWQsS0FBOEIsUUFBOUIsR0FDakIsS0FBS0MsT0FBTCxDQUFhRixPQUFPQyxXQUFwQixFQUFpQztBQUFFRSxlQUFXO0FBQWIsR0FBakMsQ0FEaUIsR0FFakJILE9BQU9DLFdBRlg7QUFJQSxTQUFPLG1CQUFLRCxNQUFMLENBQVA7QUFDRDs7ZUFFY0QsSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwaW5vIGZyb20gJ3Bpbm8nXG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIGxvZ2dlciAocGlubylcbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBjb25maWcgICAgTG9nZ2VyIGNvbmZpZ3VyYXRpb25cbiAqIEByZXR1cm4gICAge09iamVjdH1cbiAqL1xuZnVuY3Rpb24gbWtsb2coY29uZmlnKSB7XG4gIC8vIEFsbG93IGxvYWRpbmcgdGhlIHNlcmlhbGlzZXJzIGZyb20gYSBtb2R1bGVcbiAgY29uZmlnLnNlcmlhbGl6ZXJzID0gdHlwZW9mIGNvbmZpZy5zZXJpYWxpemVycyA9PT0gJ3N0cmluZydcbiAgICA/IHRoaXMucmVxdWlyZShjb25maWcuc2VyaWFsaXplcnMsIHsgbm9ybWFsaXNlOiB0cnVlIH0pXG4gICAgOiBjb25maWcuc2VyaWFsaXplcnNcblxuICByZXR1cm4gcGlubyhjb25maWcpXG59XG5cbmV4cG9ydCBkZWZhdWx0IG1rbG9nXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1rbG9nLm1qcyJdLCJuYW1lcyI6WyJta2xvZyIsImNvbmZpZyIsInNlcmlhbGl6ZXJzIiwicmVxdWlyZSIsIm5vcm1hbGlzZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBU0EsU0FBU0EsS0FBVCxDQUFlQyxNQUFmLEVBQXVCO0FBRXJCQSxFQUFBQSxNQUFNLENBQUNDLFdBQVAsR0FBcUIsT0FBT0QsTUFBTSxDQUFDQyxXQUFkLEtBQThCLFFBQTlCLEdBQ2pCLEtBQUtDLE9BQUwsQ0FBYUYsTUFBTSxDQUFDQyxXQUFwQixFQUFpQztBQUFFRSxJQUFBQSxTQUFTLEVBQUU7QUFBYixHQUFqQyxDQURpQixHQUVqQkgsTUFBTSxDQUFDQyxXQUZYO0FBSUEsU0FBTyxtQkFBS0QsTUFBTCxDQUFQO0FBQ0Q7O2VBRWNELEsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGlubyBmcm9tICdwaW5vJ1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBsb2dnZXIgKHBpbm8pXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSAgICAge09iamVjdH0gICAgY29uZmlnICAgIExvZ2dlciBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJuICAgIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIG1rbG9nKGNvbmZpZykge1xuICAvLyBBbGxvdyBsb2FkaW5nIHRoZSBzZXJpYWxpc2VycyBmcm9tIGEgbW9kdWxlXG4gIGNvbmZpZy5zZXJpYWxpemVycyA9IHR5cGVvZiBjb25maWcuc2VyaWFsaXplcnMgPT09ICdzdHJpbmcnXG4gICAgPyB0aGlzLnJlcXVpcmUoY29uZmlnLnNlcmlhbGl6ZXJzLCB7IG5vcm1hbGlzZTogdHJ1ZSB9KVxuICAgIDogY29uZmlnLnNlcmlhbGl6ZXJzXG5cbiAgcmV0dXJuIHBpbm8oY29uZmlnKVxufVxuXG5leHBvcnQgZGVmYXVsdCBta2xvZ1xuIl19

@@ -8,5 +8,5 @@ "use strict";

function optrequire(module) {
function optrequire(location) {
try {
require.resolve(module);
require.resolve(location);
} catch (err) {

@@ -16,3 +16,3 @@ return {};

return require(module);
return require(location);
}

@@ -22,2 +22,2 @@

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9wdHJlcXVpcmUubWpzIl0sIm5hbWVzIjpbIm9wdHJlcXVpcmUiLCJtb2R1bGUiLCJyZXF1aXJlIiwicmVzb2x2ZSIsImVyciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU9BLFNBQVNBLFVBQVQsQ0FBb0JDLE1BQXBCLEVBQTRCO0FBQzFCLE1BQUk7QUFDRkMsWUFBUUMsT0FBUixDQUFnQkYsTUFBaEI7QUFDRCxHQUZELENBRUUsT0FBT0csR0FBUCxFQUFZO0FBQ1osV0FBTyxFQUFQO0FBQ0Q7O0FBR0QsU0FBT0YsUUFBUUQsTUFBUixDQUFQO0FBQ0Q7O2VBRWNELFUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE9wdGlvbmFsbHkgcmVxdWlyZSBhIG1vZHVsZSwgcmV0dXJuaW5nIGFuIGVtcHR5IG9iamVjdCBpZiB0aGUgbW9kdWxlIGRvZXMgbm90IGV4aXN0XG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgbW9kdWxlICAgIFBhdGggdG8gdGhlIG1vZHVsZSB0byByZXF1aXJlXG4gKiBAcmV0dXJuICAgIHttaXhlZH0gICAgICAgICAgICAgICBUaGUgbW9kdWxlJ3MgY29udGVudHNcbiAqL1xuZnVuY3Rpb24gb3B0cmVxdWlyZShtb2R1bGUpIHtcbiAgdHJ5IHtcbiAgICByZXF1aXJlLnJlc29sdmUobW9kdWxlKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4ge31cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBnbG9iYWwtcmVxdWlyZVxuICByZXR1cm4gcmVxdWlyZShtb2R1bGUpXG59XG5cbmV4cG9ydCBkZWZhdWx0IG9wdHJlcXVpcmVcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9wdHJlcXVpcmUubWpzIl0sIm5hbWVzIjpbIm9wdHJlcXVpcmUiLCJsb2NhdGlvbiIsInJlcXVpcmUiLCJyZXNvbHZlIiwiZXJyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBT0EsU0FBU0EsVUFBVCxDQUFvQkMsUUFBcEIsRUFBOEI7QUFDNUIsTUFBSTtBQUNGQyxJQUFBQSxPQUFPLENBQUNDLE9BQVIsQ0FBZ0JGLFFBQWhCO0FBQ0QsR0FGRCxDQUVFLE9BQU9HLEdBQVAsRUFBWTtBQUNaLFdBQU8sRUFBUDtBQUNEOztBQUdELFNBQU9GLE9BQU8sQ0FBQ0QsUUFBRCxDQUFkO0FBQ0Q7O2VBRWNELFUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE9wdGlvbmFsbHkgcmVxdWlyZSBhIG1vZHVsZSwgcmV0dXJuaW5nIGFuIGVtcHR5IG9iamVjdCBpZiB0aGUgbW9kdWxlIGRvZXMgbm90IGV4aXN0XG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgbG9jYXRpb24gIFBhdGggdG8gdGhlIG1vZHVsZSB0byByZXF1aXJlXG4gKiBAcmV0dXJuICAgIHttaXhlZH0gICAgICAgICAgICAgICBUaGUgbW9kdWxlJ3MgY29udGVudHNcbiAqL1xuZnVuY3Rpb24gb3B0cmVxdWlyZShsb2NhdGlvbikge1xuICB0cnkge1xuICAgIHJlcXVpcmUucmVzb2x2ZShsb2NhdGlvbilcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIHt9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmVcbiAgcmV0dXJuIHJlcXVpcmUobG9jYXRpb24pXG59XG5cbmV4cG9ydCBkZWZhdWx0IG9wdHJlcXVpcmVcbiJdfQ==

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

expect(args.log).to.be.an('object');
expect(args.log.chindings).to.match(/"action":"dummy"/);
expect(args.log.chindings).to.match(/"action":"dummy"/u);
});

@@ -90,3 +90,3 @@ it('provides the config object on action constructor argument', () => {

atlas.action('dummy', action);
}).to.throw(_errors.FrameworkError, /Missing aliases for component dummy/);
}).to.throw(_errors.FrameworkError, /Missing aliases for component dummy/u);
});

@@ -102,3 +102,3 @@ it('throws when extraneous aliases are specified', () => {

});
}).to.throw(_errors.FrameworkError, /Unneeded aliases for component dummy/);
}).to.throw(_errors.FrameworkError, /Unneeded aliases for component dummy/u);
});

@@ -148,2 +148,2 @@ it('throws when user config fails component config schema', () => {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjdGlvbi50ZXN0Lm1qcyJdLCJuYW1lcyI6WyJEdW1teUFjdGlvbiIsIkFjdGlvbiIsImRlc2NyaWJlIiwiYXRsYXMiLCJvcHRpb25zIiwiYmVmb3JlRWFjaCIsInJvb3QiLCJfX2Rpcm5hbWUiLCJjb25maWciLCJhY3Rpb25zIiwiZHVtbXkiLCJ0ZXN0IiwiQXRsYXMiLCJpdCIsImV4cGVjdCIsImFjdGlvbiIsInRvIiwiZXF1YWwiLCJ0aHJvdyIsIkZyYW1ld29ya0Vycm9yIiwic2lub24iLCJzcHkiLCJhcmdzIiwiZ2V0Q2FsbCIsImhhdmUiLCJwcm9wZXJ0eSIsImxvZyIsImJlIiwiYW4iLCJjaGluZGluZ3MiLCJtYXRjaCIsImNvbXBvbmVudCIsImEiLCJkZWZhdWx0cyIsImRlZmF1bHQiLCJyZXF1aXJlcyIsImFsaWFzZXMiLCJsb2wiLCJ0eXBlIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiVmFsaWRhdGlvbkVycm9yIiwibm90Il0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOzs7O0FBS0EsTUFBTUEsV0FBTixTQUEwQkMsZUFBMUIsQ0FBaUM7O0FBRWpDQyxTQUFTLGlCQUFULEVBQTRCLE1BQU07QUFDaEMsTUFBSUMsS0FBSjtBQUNBLE1BQUlDLE9BQUo7QUFFQUMsYUFBVyxNQUFNO0FBQ2ZELGNBQVU7QUFDUkUsWUFBTUMsU0FERTtBQUVSQyxjQUFRO0FBQ05DLGlCQUFTO0FBQ1BDLGlCQUFPO0FBQ0xDLGtCQUFNO0FBREQ7QUFEQTtBQURIO0FBRkEsS0FBVjtBQVVBUixZQUFRLElBQUlTLE9BQUosQ0FBVVIsT0FBVixDQUFSO0FBQ0QsR0FaRDtBQWNBUyxLQUFHLGNBQUgsRUFBbUIsTUFBTTtBQUN2QkMsV0FBT1gsTUFBTVksTUFBTixDQUFhLE9BQWIsRUFBc0JmLFdBQXRCLENBQVAsRUFBMkNnQixFQUEzQyxDQUE4Q0MsS0FBOUMsQ0FBb0RkLEtBQXBEO0FBQ0QsR0FGRDtBQUlBVSxLQUFHLCtEQUFILEVB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RXFCLGlCQUFTO0FBQ3ZDLDJCQUFpQjtBQURzQjtBQUFYLE9BQTlCO0FBR0QsS0FKRCxFQUlHcEIsRUFKSCxDQUlNMEIsR0FKTixDQUlVeEIsS0FKVjtBQUtELEdBVEQ7QUFVRCxDQTdJRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0bGFzIH0gZnJvbSAnLi4nXG5pbXBvcnQgQWN0aW9uIGZyb20gJ0BhdGxhcy5qcy9hY3Rpb24nXG5pbXBvcnQge1xuICBGcmFtZXdvcmtFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxufSBmcm9tICdAYXRsYXMuanMvZXJyb3JzJ1xuXG5jbGFzcyBEdW1teUFjdGlvbiBleHRlbmRzIEFjdGlvbiB7fVxuXG5kZXNjcmliZSgnQXRsYXM6OmFjdGlvbigpJywgKCkgPT4ge1xuICBsZXQgYXRsYXNcbiAgbGV0IG9wdGlvbnNcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvcHRpb25zID0ge1xuICAgICAgcm9vdDogX19kaXJuYW1lLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgICBkdW1teToge1xuICAgICAgICAgICAgdGVzdDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG4gICAgYXRsYXMgPSBuZXcgQXRsYXMob3B0aW9ucylcbiAgfSlcblxuICBpdCgncmV0dXJucyB0aGlzJywgKCkgPT4ge1xuICAgIGV4cGVjdChhdGxhcy5hY3Rpb24oJ2R1bW15JywgRHVtbXlBY3Rpb24pKS50by5lcXVhbChhdGxhcylcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gdGhlIGFsaWFzIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCBieSBhbm90aGVyIGFjdGlvbicsICgpID0+IHtcbiAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgRHVtbXlBY3Rpb24pXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLmFjdGlvbignZHVtbXknLCBEdW1teUFjdGlvbikpLnRvLnRocm93KEZyYW1ld29ya0Vycm9yKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiB0aGUgYWN0aW9uIGlzIG5vdCBhIGNsYXNzL2Z1bmN0aW9uJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBhdGxhcy5hY3Rpb24oJ2R1bW15Jywge30pKS50by50aHJvdyhGcmFtZXdvcmtFcnJvcilcbiAgfSlcblxuICBpdCgncHJvdmlkZXMgdGhlIGF0bGFzIG9uIGFjdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudCcsICgpID0+IHtcbiAgICBjb25zdCBhY3Rpb24gPSBzaW5vbi5zcHkoKVxuICAgIGFjdGlvbi5jb25maWcgPSB7fVxuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBhY3Rpb24pXG4gICAgY29uc3QgYXJncyA9IGFjdGlvbi5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzKS50by5oYXZlLnByb3BlcnR5KCdhdGxhcycpXG4gICAgZXhwZWN0KGFyZ3MuYXRsYXMpLnRvLmVxdWFsKGF0bGFzKVxuICB9KVxuXG4gIGl0KCdwcm92aWRlcyBhIGxvZ2dlciBpbnN0YW5jZSBvbiBhY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgYWN0aW9uID0gc2lub24uc3B5KClcbiAgICBhY3Rpb24uY29uZmlnID0ge31cbiAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgYWN0aW9uKVxuICAgIGNvbnN0IGFyZ3MgPSBhY3Rpb24uZ2V0Q2FsbCgwKS5hcmdzWzBdXG5cbiAgICBleHBlY3QoYXJncykudG8uaGF2ZS5wcm9wZXJ0eSgnbG9nJylcbiAgICBleHBlY3QoYXJncy5sb2cpLnRvLmJlLmFuKCdvYmplY3QnKVxuICAgIGV4cGVjdChhcmdzLmxvZy5jaGluZGluZ3MpLnRvLm1hdGNoKC9cImFjdGlvblwiOlwiZHVtbXlcIi8pXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIHRoZSBjb25maWcgb2JqZWN0IG9uIGFjdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudCcsICgpID0+IHtcbiAgICBjb25zdCBhY3Rpb24gPSBzaW5vbi5zcHkoKVxuICAgIGFjdGlvbi5jb25maWcgPSB7fVxuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBhY3Rpb24pXG4gICAgY29uc3QgYXJncyA9IGFjdGlvbi5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzKS50by5oYXZlLnByb3BlcnR5KCdjb25maWcnKVxuICAgIGV4cGVjdChhcmdzLmNvbmZpZykudG8uYmUuYW4oJ29iamVjdCcpXG4gICAgZXhwZWN0KGFyZ3MuY29uZmlnKS50by5lcXVhbChvcHRpb25zLmNvbmZpZy5hY3Rpb25zLmR1bW15KVxuICB9KVxuXG4gIGl0KCdwcm92aWRlcyB0aGUgcmVzb2x2ZSBmdW5jdGlvbiBvbiBhY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnQgYXMgYGNvbXBvbmVudGAnLCAoKSA9PiB7XG4gICAgY29uc3QgYWN0aW9uID0gc2lub24uc3B5KClcbiAgICBhY3Rpb24uY29uZmlnID0ge31cbiAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgYWN0aW9uKVxuICAgIGNvbnN0IGFyZ3MgPSBhY3Rpb24uZ2V0Q2FsbCgwKS5hcmdzWzBdXG5cbiAgICBleHBlY3QoYXJncykudG8uaGF2ZS5wcm9wZXJ0eSgnY29tcG9uZW50JylcbiAgICBleHBlY3QoYXJncy5jb21wb25lbnQpLnRvLmJlLmEoJ2Z1bmN0aW9uJylcbiAgfSlcblxuICBpdCgnYXBwbGllcyBkZWZhdWx0cyBkZWZpbmVkIG9uIGFjdGlvbiBvbiB0b3Agb2YgdXNlci1wcm92aWRlZCBjb25maWcnLCAoKSA9PiB7XG4gICAgY29uc3QgYWN0aW9uID0gc2lub24uc3B5KClcbiAgICBhY3Rpb24uY29uZmlnID0ge31cbiAgICBhY3Rpb24uZGVmYXVsdHMgPSB7IGRlZmF1bHQ6IHRydWUgfVxuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBhY3Rpb24pXG4gICAgY29uc3QgYXJncyA9IGFjdGlvbi5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzLmNvbmZpZykudG8uaGF2ZS5wcm9wZXJ0eSgnZGVmYXVsdCcsIHRydWUpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIGFsaWFzZXMgZG8gbm90IHNhdGlzZnkgcmVxdWlyZW1lbnRzIG9mIHRoZSBjb21wb25lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgYWN0aW9uID0gc2lub24uc3B5KClcbiAgICBhY3Rpb24uY29uZmlnID0ge31cbiAgICBhY3Rpb24ucmVxdWlyZXMgPSBbJ3NlcnZpY2U6ZHVtbXknXVxuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgYWN0aW9uKVxuICAgIH0pLnRvLnRocm93KEZyYW1ld29ya0Vycm9yLCAvTWlzc2luZyBhbGlhc2VzIGZvciBjb21wb25lbnQgZHVtbXkvKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiBleHRyYW5lb3VzIGFsaWFzZXMgYXJlIHNwZWNpZmllZCcsICgpID0+IHtcbiAgICBjb25zdCBhY3Rpb24gPSBzaW5vbi5zcHkoKVxuICAgIGFjdGlvbi5jb25maWcgPSB7fVxuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgYWN0aW9uLCB7IGFsaWFzZXM6IHtcbiAgICAgICAgJ3NlcnZpY2U6ZHVtbXknOiAnZHVtbXknLFxuICAgICAgfSB9KVxuICAgIH0pLnRvLnRocm93KEZyYW1ld29ya0Vycm9yLCAvVW5uZWVkZWQgYWxpYXNlcyBmb3IgY29tcG9uZW50IGR1bW15LylcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gdXNlciBjb25maWcgZmFpbHMgY29tcG9uZW50IGNvbmZpZyBzY2hlbWEnLCAoKSA9PiB7XG4gICAgb3B0aW9ucy5jb25maWcuYWN0aW9ucy5kdW1teSA9IHsgbG9sOiB0cnVlIH1cbiAgICBhdGxhcyA9IG5ldyBBdGxhcyhvcHRpb25zKVxuXG4gICAgY29uc3QgYWN0aW9uID0gc2lub24uc3B5KClcbiAgICBhY3Rpb24uY29uZmlnID0ge1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHRlc3Q6IHsgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGV4cGVjdCgoKSA9PiBhdGxhcy5hY3Rpb24oJ2R1bW15JywgYWN0aW9uKSkudG8udGhyb3coVmFsaWRhdGlvbkVycm9yKVxuICB9KVxuXG4gIGl0KCd3b3JrcyB3aGVuIHVzZXIgY29uZmlnIHBhc3NlcyBjb21wb25lbnQgY29uZmlnIHNjaGVtYScsICgpID0+IHtcbiAgICBjb25zdCBhY3Rpb24gPSBzaW5vbi5zcHkoKVxuICAgIGFjdGlvbi5jb25maWcgPSB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdGVzdDogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLmFjdGlvbignZHVtbXknLCBhY3Rpb24pKS5ub3QudG8udGhyb3coVmFsaWRhdGlvbkVycm9yKVxuICB9KVxuXG4gIGl0KCd3b3JrcyB3aGVuIGFsbCByZXF1aXJlbWVudHMgYXJlIHNwZWNpZmllZCcsICgpID0+IHtcbiAgICBjb25zdCBhY3Rpb24gPSBzaW5vbi5zcHkoKVxuICAgIGFjdGlvbi5jb25maWcgPSB7fVxuICAgIGFjdGlvbi5yZXF1aXJlcyA9IFsnc2VydmljZTpkdW1teSddXG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBhY3Rpb24sIHsgYWxpYXNlczoge1xuICAgICAgICAnc2VydmljZTpkdW1teSc6ICdkdW1teScsXG4gICAgICB9IH0pXG4gICAgfSkudG8ubm90LnRocm93KClcbiAgfSlcbn0pXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjdGlvbi50ZXN0Lm1qcyJdLCJuYW1lcyI6WyJEdW1teUFjdGlvbiIsIkFjdGlvbiIsImRlc2NyaWJlIiwiYXRsYXMiLCJvcHRpb25zIiwiYmVmb3JlRWFjaCIsInJvb3QiLCJfX2Rpcm5hbWUiLCJjb25maWciLCJhY3Rpb25zIiwiZHVtbXkiLCJ0ZXN0IiwiQXRsYXMiLCJpdCIsImV4cGVjdCIsImFjdGlvbiIsInRvIiwiZXF1YWwiLCJ0aHJvdyIsIkZyYW1ld29ya0Vycm9yIiwic2lub24iLCJzcHkiLCJhcmdzIiwiZ2V0Q2FsbCIsImhhdmUiLCJwcm9wZXJ0eSIsImxvZyIsImJlIiwiYW4iLCJjaGluZGluZ3MiLCJtYXRjaCIsImNvbXBvbmVudCIsImEiLCJkZWZhdWx0cyIsImRlZmF1bHQiLCJyZXF1aXJlcyIsImFsaWFzZXMiLCJsb2wiLCJ0eXBlIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiVmFsaWRhdGlvbkVycm9yIiwibm90Il0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOzs7O0FBS0EsTUFBTUEsV0FBTixTQUEwQkMsZUFBMUIsQ0FBaUM7O0FBRWpDQyxRQUFRLENBQUMsaUJBQUQsRUFBb0IsTUFBTTtBQUNoQyxNQUFJQyxLQUFKO0FBQ0EsTUFBSUMsT0FBSjtBQUVBQyxFQUFBQSxVQUFVLENBQUMsTUFBTTtBQUNmRCxJQUFBQSxPQUFPLEdBQUc7QUFDUkUsTUFBQUEsSUFBSSxFQUFFQyxTQURFO0FBRVJDLE1BQUFBLE1BQU0sRUFBRTtBQUNOQyxRQUFBQSxPQUFPLEVBQUU7QUFDUEMsVUFBQUEsS0FBSyxFQUFFO0FBQ0xDLFlBQUFBLElBQUksRUFBRTtBQUREO0FBREE7QUFESDtBQUZBLEtBQVY7QUFVQVIsSUFBQUEsS0FBSyxHQUFHLElBQUlTLE9BQUosQ0FBVVIsT0FBVixDQUFSO0FBQ0QsR0FaUyxDQUFWO0FBY0FTLEVBQUFBLEVBQUUsQ0FBQyxjQUFELEVBQWlCLE1BQU07QUFDdkJDLElBQUFBLE1B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LEVBQWhELENBQW1ERSxLQUFuRCxDQUF5RHVCLHVCQUF6RDtBQUNELEdBWEMsQ0FBRjtBQWFBNUIsRUFBQUEsRUFBRSxDQUFDLDJDQUFELEVBQThDLE1BQU07QUFDcEQsVUFBTUUsTUFBTSxHQUFHSyxLQUFLLENBQUNDLEdBQU4sRUFBZjtBQUNBTixJQUFBQSxNQUFNLENBQUNQLE1BQVAsR0FBZ0IsRUFBaEI7QUFDQU8sSUFBQUEsTUFBTSxDQUFDb0IsUUFBUCxHQUFrQixDQUFDLGVBQUQsQ0FBbEI7QUFDQXJCLElBQUFBLE1BQU0sQ0FBQyxNQUFNO0FBQ1hYLE1BQUFBLEtBQUssQ0FBQ1ksTUFBTixDQUFhLE9BQWIsRUFBc0JBLE1BQXRCLEVBQThCO0FBQUVxQixRQUFBQSxPQUFPLEVBQUU7QUFDdkMsMkJBQWlCO0FBRHNCO0FBQVgsT0FBOUI7QUFHRCxLQUpLLENBQU4sQ0FJR3BCLEVBSkgsQ0FJTTBCLEdBSk4sQ0FJVXhCLEtBSlY7QUFLRCxHQVRDLENBQUY7QUFVRCxDQTdJTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXRsYXMgfSBmcm9tICcuLidcbmltcG9ydCBBY3Rpb24gZnJvbSAnQGF0bGFzLmpzL2FjdGlvbidcbmltcG9ydCB7XG4gIEZyYW1ld29ya0Vycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gJ0BhdGxhcy5qcy9lcnJvcnMnXG5cbmNsYXNzIER1bW15QWN0aW9uIGV4dGVuZHMgQWN0aW9uIHt9XG5cbmRlc2NyaWJlKCdBdGxhczo6YWN0aW9uKCknLCAoKSA9PiB7XG4gIGxldCBhdGxhc1xuICBsZXQgb3B0aW9uc1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICByb290OiBfX2Rpcm5hbWUsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgYWN0aW9uczoge1xuICAgICAgICAgIGR1bW15OiB7XG4gICAgICAgICAgICB0ZXN0OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cbiAgICBhdGxhcyA9IG5ldyBBdGxhcyhvcHRpb25zKVxuICB9KVxuXG4gIGl0KCdyZXR1cm5zIHRoaXMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGF0bGFzLmFjdGlvbignZHVtbXknLCBEdW1teUFjdGlvbikpLnRvLmVxdWFsKGF0bGFzKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiB0aGUgYWxpYXMgaGFzIGFscmVhZHkgYmVlbiB1c2VkIGJ5IGFub3RoZXIgYWN0aW9uJywgKCkgPT4ge1xuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBEdW1teUFjdGlvbilcbiAgICBleHBlY3QoKCkgPT4gYXRsYXMuYWN0aW9uKCdkdW1teScsIER1bW15QWN0aW9uKSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIHRoZSBhY3Rpb24gaXMgbm90IGEgY2xhc3MvZnVuY3Rpb24nLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLmFjdGlvbignZHVtbXknLCB7fSkpLnRvLnRocm93KEZyYW1ld29ya0Vycm9yKVxuICB9KVxuXG4gIGl0KCdwcm92aWRlcyB0aGUgYXRsYXMgb24gYWN0aW9uIGNvbnN0cnVjdG9yIGFyZ3VtZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IGFjdGlvbiA9IHNpbm9uLnNweSgpXG4gICAgYWN0aW9uLmNvbmZpZyA9IHt9XG4gICAgYXRsYXMuYWN0aW9uKCdkdW1teScsIGFjdGlvbilcbiAgICBjb25zdCBhcmdzID0gYWN0aW9uLmdldENhbGwoMCkuYXJnc1swXVxuXG4gICAgZXhwZWN0KGFyZ3MpLnRvLmhhdmUucHJvcGVydHkoJ2F0bGFzJylcbiAgICBleHBlY3QoYXJncy5hdGxhcykudG8uZXF1YWwoYXRsYXMpXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIGEgbG9nZ2VyIGluc3RhbmNlIG9uIGFjdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudCcsICgpID0+IHtcbiAgICBjb25zdCBhY3Rpb24gPSBzaW5vbi5zcHkoKVxuICAgIGFjdGlvbi5jb25maWcgPSB7fVxuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBhY3Rpb24pXG4gICAgY29uc3QgYXJncyA9IGFjdGlvbi5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzKS50by5oYXZlLnByb3BlcnR5KCdsb2cnKVxuICAgIGV4cGVjdChhcmdzLmxvZykudG8uYmUuYW4oJ29iamVjdCcpXG4gICAgZXhwZWN0KGFyZ3MubG9nLmNoaW5kaW5ncykudG8ubWF0Y2goL1wiYWN0aW9uXCI6XCJkdW1teVwiL3UpXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIHRoZSBjb25maWcgb2JqZWN0IG9uIGFjdGlvbiBjb25zdHJ1Y3RvciBhcmd1bWVudCcsICgpID0+IHtcbiAgICBjb25zdCBhY3Rpb24gPSBzaW5vbi5zcHkoKVxuICAgIGFjdGlvbi5jb25maWcgPSB7fVxuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBhY3Rpb24pXG4gICAgY29uc3QgYXJncyA9IGFjdGlvbi5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzKS50by5oYXZlLnByb3BlcnR5KCdjb25maWcnKVxuICAgIGV4cGVjdChhcmdzLmNvbmZpZykudG8uYmUuYW4oJ29iamVjdCcpXG4gICAgZXhwZWN0KGFyZ3MuY29uZmlnKS50by5lcXVhbChvcHRpb25zLmNvbmZpZy5hY3Rpb25zLmR1bW15KVxuICB9KVxuXG4gIGl0KCdwcm92aWRlcyB0aGUgcmVzb2x2ZSBmdW5jdGlvbiBvbiBhY3Rpb24gY29uc3RydWN0b3IgYXJndW1lbnQgYXMgYGNvbXBvbmVudGAnLCAoKSA9PiB7XG4gICAgY29uc3QgYWN0aW9uID0gc2lub24uc3B5KClcbiAgICBhY3Rpb24uY29uZmlnID0ge31cbiAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgYWN0aW9uKVxuICAgIGNvbnN0IGFyZ3MgPSBhY3Rpb24uZ2V0Q2FsbCgwKS5hcmdzWzBdXG5cbiAgICBleHBlY3QoYXJncykudG8uaGF2ZS5wcm9wZXJ0eSgnY29tcG9uZW50JylcbiAgICBleHBlY3QoYXJncy5jb21wb25lbnQpLnRvLmJlLmEoJ2Z1bmN0aW9uJylcbiAgfSlcblxuICBpdCgnYXBwbGllcyBkZWZhdWx0cyBkZWZpbmVkIG9uIGFjdGlvbiBvbiB0b3Agb2YgdXNlci1wcm92aWRlZCBjb25maWcnLCAoKSA9PiB7XG4gICAgY29uc3QgYWN0aW9uID0gc2lub24uc3B5KClcbiAgICBhY3Rpb24uY29uZmlnID0ge31cbiAgICBhY3Rpb24uZGVmYXVsdHMgPSB7IGRlZmF1bHQ6IHRydWUgfVxuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBhY3Rpb24pXG4gICAgY29uc3QgYXJncyA9IGFjdGlvbi5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzLmNvbmZpZykudG8uaGF2ZS5wcm9wZXJ0eSgnZGVmYXVsdCcsIHRydWUpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIGFsaWFzZXMgZG8gbm90IHNhdGlzZnkgcmVxdWlyZW1lbnRzIG9mIHRoZSBjb21wb25lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgYWN0aW9uID0gc2lub24uc3B5KClcbiAgICBhY3Rpb24uY29uZmlnID0ge31cbiAgICBhY3Rpb24ucmVxdWlyZXMgPSBbJ3NlcnZpY2U6ZHVtbXknXVxuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgYWN0aW9uKVxuICAgIH0pLnRvLnRocm93KEZyYW1ld29ya0Vycm9yLCAvTWlzc2luZyBhbGlhc2VzIGZvciBjb21wb25lbnQgZHVtbXkvdSlcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gZXh0cmFuZW91cyBhbGlhc2VzIGFyZSBzcGVjaWZpZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgYWN0aW9uID0gc2lub24uc3B5KClcbiAgICBhY3Rpb24uY29uZmlnID0ge31cbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgYXRsYXMuYWN0aW9uKCdkdW1teScsIGFjdGlvbiwgeyBhbGlhc2VzOiB7XG4gICAgICAgICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyxcbiAgICAgIH0gfSlcbiAgICB9KS50by50aHJvdyhGcmFtZXdvcmtFcnJvciwgL1VubmVlZGVkIGFsaWFzZXMgZm9yIGNvbXBvbmVudCBkdW1teS91KVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiB1c2VyIGNvbmZpZyBmYWlscyBjb21wb25lbnQgY29uZmlnIHNjaGVtYScsICgpID0+IHtcbiAgICBvcHRpb25zLmNvbmZpZy5hY3Rpb25zLmR1bW15ID0geyBsb2w6IHRydWUgfVxuICAgIGF0bGFzID0gbmV3IEF0bGFzKG9wdGlvbnMpXG5cbiAgICBjb25zdCBhY3Rpb24gPSBzaW5vbi5zcHkoKVxuICAgIGFjdGlvbi5jb25maWcgPSB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdGVzdDogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLmFjdGlvbignZHVtbXknLCBhY3Rpb24pKS50by50aHJvdyhWYWxpZGF0aW9uRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3dvcmtzIHdoZW4gdXNlciBjb25maWcgcGFzc2VzIGNvbXBvbmVudCBjb25maWcgc2NoZW1hJywgKCkgPT4ge1xuICAgIGNvbnN0IGFjdGlvbiA9IHNpbm9uLnNweSgpXG4gICAgYWN0aW9uLmNvbmZpZyA9IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICB0ZXN0OiB7IHR5cGU6ICdib29sZWFuJyB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBleHBlY3QoKCkgPT4gYXRsYXMuYWN0aW9uKCdkdW1teScsIGFjdGlvbikpLm5vdC50by50aHJvdyhWYWxpZGF0aW9uRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3dvcmtzIHdoZW4gYWxsIHJlcXVpcmVtZW50cyBhcmUgc3BlY2lmaWVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGFjdGlvbiA9IHNpbm9uLnNweSgpXG4gICAgYWN0aW9uLmNvbmZpZyA9IHt9XG4gICAgYWN0aW9uLnJlcXVpcmVzID0gWydzZXJ2aWNlOmR1bW15J11cbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgYXRsYXMuYWN0aW9uKCdkdW1teScsIGFjdGlvbiwgeyBhbGlhc2VzOiB7XG4gICAgICAgICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyxcbiAgICAgIH0gfSlcbiAgICB9KS50by5ub3QudGhyb3coKVxuICB9KVxufSlcbiJdfQ==

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

prepare() {
return api;
return Promise.resolve(api);
}

@@ -117,3 +117,3 @@

prepare() {
return api;
return Promise.resolve(api);
}

@@ -167,3 +167,3 @@

});
return expect(atlas.start()).to.be.eventually.rejectedWith(_errors.FrameworkError, /Invalid component type: invalid used in alias invalid:name/);
return expect(atlas.start()).to.be.eventually.rejectedWith(_errors.FrameworkError, /Invalid component type: invalid used in alias invalid:name/u);
});

@@ -180,5 +180,5 @@ it('resolving an alias into unknown component throws', () => {

});
return expect(atlas.start()).to.be.eventually.rejectedWith(_errors.FrameworkError, /Unable to find service unknown aliased as service:dummy/);
return expect(atlas.start()).to.be.eventually.rejectedWith(_errors.FrameworkError, /Unable to find service unknown aliased as service:dummy/u);
});
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFsaWFzaW5nLnRlc3QubWpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiYXRsYXMiLCJiZWZvcmVFYWNoIiwiQXRsYXMiLCJyb290IiwiX19kaXJuYW1lIiwiY29uZmlnIiwibG9nIiwibGV2ZWwiLCJpdCIsIkR1bW15U2VydmljZSIsIlNlcnZpY2UiLCJzdGFydCIsImNvbXBvbmVudCIsInBpbmciLCJEdW1teUFjdGlvbiIsIkFjdGlvbiIsInByb3RvdHlwZSIsInNpbm9uIiwic3R1YiIsInNlcnZpY2UiLCJhbGlhc2VzIiwiYWN0aW9uIiwiZXhwZWN0IiwidG8iLCJoYXZlIiwiY2FsbENvdW50IiwiYmVlbiIsImNhbGxlZFdpdGgiLCJhcGkiLCJwcmVwYXJlIiwiYWN0aW9ucyIsImR1bW15IiwiSW50ZXJuYWxBY3Rpb24iLCJJbnRlcm5hbFNlcnZpY2UiLCJhbGlhcyIsInRocm93IiwiRnJhbWV3b3JrRXJyb3IiLCJiZSIsImV2ZW50dWFsbHkiLCJyZWplY3RlZFdpdGgiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBQSxTQUFTLHNDQUFULEVBQWlELE1BQU07QUFDckQsTUFBSUMsS0FBSjtBQUVBQyxhQUFXLE1BQU07QUFDZkQsWUFBUSxJQUFJRSxPQUFKLENBQVU7QUFDaEJDLFlBQU1DLFNBRFU7QUFFaEJDLGNBQVE7QUFBRUwsZUFBTztBQUFFTSxlQUFLO0FBQ3RCQyxtQkFBTztBQURlO0FBQVA7QUFBVDtBQUZRLEtBQVYsQ0FBUjtBQU1ELEdBUEQ7QUFTQUMsS0FBRyx5QkFBSCxFQUE4QixZQUFZO0FBQ3hDLFVBQU1DLFlBQU4sU0FBMkJDLGdCQUEzQixDQUFtQztBQUdqQ0MsY0FBUTtBQUNOLGFBQUtDLFNBQUwsQ0FBZSxjQUFmLEVBQStCQyxJQUEvQixDQUFvQyxlQUFwQztBQUNEOztBQUxnQzs7QUFESyxvQkFDbENKLFlBRGtDLGNBRXBCLENBQUMsY0FBRCxDQUZvQjs7QUFTeEMsVUFBTUssV0FBTixTQUEw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QUFNVyxLQUFOLEVBQU47QUFFQVcsV0FBTyxNQUFNdEIsTUFBTThCLE9BQU4sQ0FBY0MsS0FBZCxDQUFvQmxCLElBQXBCLENBQXlCLGdCQUF6QixDQUFiLEVBQXlEVSxFQUF6RCxDQUE0RFksS0FBNUQsQ0FBa0VDLHNCQUFsRTtBQUNELEdBVkQ7QUFZQTVCLEtBQUcsOENBQUgsRUFBbUQsTUFBTTtBQUN2RCxVQUFNTSxXQUFOLFNBQTBCQyxlQUExQixDQUFpQzs7QUFEc0Isb0JBQ2pERCxXQURpRCxjQUVuQyxDQUFDLGNBQUQsQ0FGbUM7O0FBS3ZEZCxVQUFNcUIsTUFBTixDQUFhLE9BQWIsRUFBc0JQLFdBQXRCLEVBQW1DO0FBQUVNLGVBQVM7QUFBRSx3QkFBZ0I7QUFBbEI7QUFBWCxLQUFuQztBQUVBLFdBQU9FLE9BQU90QixNQUFNVyxLQUFOLEVBQVAsRUFBc0JZLEVBQXRCLENBQXlCYyxFQUF6QixDQUE0QkMsVUFBNUIsQ0FBdUNDLFlBQXZDLENBQ0xILHNCQURLLEVBRUwsNERBRkssQ0FBUDtBQUlELEdBWEQ7QUFhQTVCLEtBQUcsa0RBQUgsRUFBdUQsTUFBTTtBQUMzRCxVQUFNTSxXQUFOLFNBQTBCQyxlQUExQixDQUFpQzs7QUFEMEIsb0JBQ3JERCxXQURxRCxjQUV2QyxDQUFDLGVBQUQsQ0FGdUM7O0FBSzNEZCxVQUFNcUIsTUFBTixDQUFhLE9BQWIsRUFBc0JQLFdBQXRCLEVBQW1DO0FBQUVNLGVBQVM7QUFBRSx5QkFBaUI7QUFBbkI7QUFBWCxLQUFuQztBQUVBLFdBQU9FLE9BQU90QixNQUFNVyxLQUFOLEVBQVAsRUFBc0JZLEVBQXRCLENBQXlCYyxFQUF6QixDQUE0QkMsVUFBNUIsQ0FBdUNDLFlBQXZDLENBQ0xILHNCQURLLEVBRUwseURBRkssQ0FBUDtBQUlELEdBWEQ7QUFZRCxDQW5KRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0bGFzIH0gZnJvbSAnLi4nXG5pbXBvcnQgU2VydmljZSBmcm9tICdAYXRsYXMuanMvc2VydmljZSdcbmltcG9ydCBBY3Rpb24gZnJvbSAnQGF0bGFzLmpzL2FjdGlvbidcbmltcG9ydCB7IEZyYW1ld29ya0Vycm9yIH0gZnJvbSAnQGF0bGFzLmpzL2Vycm9ycydcblxuZGVzY3JpYmUoJ0F0bGFzOiBjcm9zcy1jb21wb25lbnQgY29tbXVuaWNhdGlvbicsICgpID0+IHtcbiAgbGV0IGF0bGFzXG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgYXRsYXMgPSBuZXcgQXRsYXMoe1xuICAgICAgcm9vdDogX19kaXJuYW1lLFxuICAgICAgY29uZmlnOiB7IGF0bGFzOiB7IGxvZzoge1xuICAgICAgICBsZXZlbDogJ3dhcm4nLFxuICAgICAgfSB9IH0sXG4gICAgfSlcbiAgfSlcblxuICBpdCgnc2VydmljZSBjYW4gZmluZCBhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgY2xhc3MgRHVtbXlTZXJ2aWNlIGV4dGVuZHMgU2VydmljZSB7XG4gICAgICBzdGF0aWMgcmVxdWlyZXMgPSBbJ2FjdGlvbjpkdW1teSddXG5cbiAgICAgIHN0YXJ0KCkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudCgnYWN0aW9uOmR1bW15JykucGluZygnc2VydmljZTpkdW1teScpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY2xhc3MgRHVtbXlBY3Rpb24gZXh0ZW5kcyBBY3Rpb24ge31cblxuICAgIER1bW15QWN0aW9uLnByb3RvdHlwZS5waW5nID0gc2lub24uc3R1YigpXG5cbiAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIER1bW15U2VydmljZSwgeyBhbGlhc2VzOiB7ICdhY3Rpb246ZHVtbXknOiAnZHVtbXknIH0gfSlcbiAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgRHVtbXlBY3Rpb24pXG5cbiAgICBhd2FpdCBhdGxhcy5zdGFydCgpXG5cbiAgICBleHBlY3QoRHVtbXlBY3Rpb24ucHJvdG90eXBlLnBpbmcpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgZXhwZWN0KER1bW15QWN0aW9uLnByb3RvdHlwZS5waW5nKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aCgnc2VydmljZTpkdW1teScpXG4gIH0pXG5cbiAgaXQoJ2FjdGlvbiBjYW4gZmluZCBzZXJ2aWNlJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGFwaSA9IHtcbiAgICAgIHBpbmc6IHNpbm9uLnN0dWIoKSxcbiAgICB9XG5cbiAgICBjbGFzcyBEdW1teVNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHtcbiAgICAgIHByZXBhcmUoKSB7IHJldHVybiBhcGkgfVxuICAgIH1cblxuICAgIGNsYXNzIER1bW15QWN0aW9uIGV4dGVuZHMgQWN0aW9uIHtcbiAgICAgIHN0YXRpYyByZXF1aXJlcyA9IFsnc2VydmljZTpkdW1teSddXG4gICAgICBwaW5nKCkgeyB0aGlzLmNvbXBvbmVudCgnc2VydmljZTpkdW1teScpLnBpbmcoJ2FjdGlvbjpkdW1teScpIH1cbiAgICB9XG5cbiAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIER1bW15U2VydmljZSlcbiAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgRHVtbXlBY3Rpb24sIHsgYWxpYXNlczogeyAnc2VydmljZTpkdW1teSc6ICdkdW1teScgfSB9KVxuXG4gICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuICAgIGF0bGFzLmFjdGlvbnMuZHVtbXkucGluZygpXG5cbiAgICBleHBlY3QoYXBpLnBpbmcpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgZXhwZWN0KGFwaS5waW5nKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aCgnYWN0aW9uOmR1bW15JylcbiAgfSlcblxuICBpdCgnc2VydmljZSBjYW4gZmluZCBpbnRlcm5hbCBhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgY2xhc3MgRHVtbXlTZXJ2aWNlIGV4dGVuZHMgU2VydmljZSB7XG4gICAgICBzdGF0aWMgcmVxdWlyZXMgPSBbJ2FjdGlvbjppbnRlcm5hbCddXG4gICAgICBzdGFydCgpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnQoJ2FjdGlvbjppbnRlcm5hbCcpLnBpbmcoJ3NlcnZpY2U6ZHVtbXknKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNsYXNzIEludGVybmFsQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHtcbiAgICAgIHN0YXRpYyBpbnRlcm5hbCA9IHRydWVcbiAgICB9XG5cbiAgICBJbnRlcm5hbEFjdGlvbi5wcm90b3R5cGUucGluZyA9IHNpbm9uLnN0dWIoKVxuXG4gICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBEdW1teVNlcnZpY2UsIHsgYWxpYXNlczogeyAnYWN0aW9uOmludGVybmFsJzogJ2ludGVybmFsJyB9IH0pXG4gICAgYXRsYXMuYWN0aW9uKCdpbnRlcm5hbCcsIEludGVybmFsQWN0aW9uKVxuXG4gICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuXG4gICAgZXhwZWN0KEludGVybmFsQWN0aW9uLnByb3RvdHlwZS5waW5nKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgIGV4cGVjdChJbnRlcm5hbEFjdGlvbi5wcm90b3R5cGUucGluZykudG8uaGF2ZS5iZWVuLmNhbGxlZFdpdGgoJ3NlcnZpY2U6ZHVtbXknKVxuICB9KVxuXG4gIGl0KCdhY3Rpb24gY2FuIGZpbmQgaW50ZXJuYWwgc2VydmljZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBhcGkgPSB7XG4gICAgICBwaW5nOiBzaW5vbi5zdHViKCksXG4gICAgfVxuXG4gICAgY2xhc3MgSW50ZXJuYWxTZXJ2aWNlIGV4dGVuZHMgU2VydmljZSB7XG4gICAgICBzdGF0aWMgaW50ZXJuYWwgPSB0cnVlXG5cbiAgICAgIHByZXBhcmUoKSB7IHJldHVybiBhcGkgfVxuICAgIH1cblxuICAgIGNsYXNzIER1bW15QWN0aW9uIGV4dGVuZHMgQWN0aW9uIHtcbiAgICAgIHN0YXRpYyByZXF1aXJlcyA9IFsnc2VydmljZTppbnRlcm5hbCddXG5cbiAgICAgIHBpbmcoKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50KCdzZXJ2aWNlOmludGVybmFsJykucGluZygnYWN0aW9uOmR1bW15JylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhdGxhcy5zZXJ2aWNlKCdpbnRlcm5hbCcsIEludGVybmFsU2VydmljZSlcbiAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgRHVtbXlBY3Rpb24sIHsgYWxpYXNlczogeyAnc2VydmljZTppbnRlcm5hbCc6ICdpbnRlcm5hbCcgfSB9KVxuXG4gICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuICAgIGF0bGFzLmFjdGlvbnMuZHVtbXkucGluZygpXG5cbiAgICBleHBlY3QoYXBpLnBpbmcpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgZXhwZWN0KGFwaS5waW5nKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aCgnYWN0aW9uOmR1bW15JylcbiAgfSlcblxuICBpdCgncmVxdWVzdGluZyB1bmtub3duIGNvbXBvbmVudCB0aHJvd3MnLCBhc3luYyAoKSA9PiB7XG4gICAgY2xhc3MgRHVtbXlBY3Rpb24gZXh0ZW5kcyBBY3Rpb24ge1xuICAgICAgcGluZyhhbGlhcykge1xuICAgICAgICB0aGlzLmNvbXBvbmVudChhbGlhcylcbiAgICAgIH1cbiAgICB9XG4gICAgYXRsYXMuYWN0aW9uKCdkdW1teScsIER1bW15QWN0aW9uKVxuICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcblxuICAgIGV4cGVjdCgoKSA9PiBhdGxhcy5hY3Rpb25zLmR1bW15LnBpbmcoJ3NlcnZpY2U6bG9sc3ZjJykpLnRvLnRocm93KEZyYW1ld29ya0Vycm9yKVxuICB9KVxuXG4gIGl0KCdkZWNsYXJpbmcgYSBjb21wb25lbnQgb2YgaW52YWxpZCB0eXBlIHRocm93cycsICgpID0+IHtcbiAgICBjbGFzcyBEdW1teUFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XG4gICAgICBzdGF0aWMgcmVxdWlyZXMgPSBbJ2ludmFsaWQ6bmFtZSddXG4gICAgfVxuXG4gICAgYXRsYXMuYWN0aW9uKCdkdW1teScsIER1bW15QWN0aW9uLCB7IGFsaWFzZXM6IHsgJ2ludmFsaWQ6bmFtZSc6ICdkdW1teScgfSB9KVxuXG4gICAgcmV0dXJuIGV4cGVjdChhdGxhcy5zdGFydCgpKS50by5iZS5ldmVudHVhbGx5LnJlamVjdGVkV2l0aChcbiAgICAgIEZyYW1ld29ya0Vycm9yLFxuICAgICAgL0ludmFsaWQgY29tcG9uZW50IHR5cGU6IGludmFsaWQgdXNlZCBpbiBhbGlhcyBpbnZhbGlkOm5hbWUvLFxuICAgIClcbiAgfSlcblxuICBpdCgncmVzb2x2aW5nIGFuIGFsaWFzIGludG8gdW5rbm93biBjb21wb25lbnQgdGhyb3dzJywgKCkgPT4ge1xuICAgIGNsYXNzIER1bW15QWN0aW9uIGV4dGVuZHMgQWN0aW9uIHtcbiAgICAgIHN0YXRpYyByZXF1aXJlcyA9IFsnc2VydmljZTpkdW1teSddXG4gICAgfVxuXG4gICAgYXRsYXMuYWN0aW9uKCdkdW1teScsIER1bW15QWN0aW9uLCB7IGFsaWFzZXM6IHsgJ3NlcnZpY2U6ZHVtbXknOiAndW5rbm93bicgfSB9KVxuXG4gICAgcmV0dXJuIGV4cGVjdChhdGxhcy5zdGFydCgpKS50by5iZS5ldmVudHVhbGx5LnJlamVjdGVkV2l0aChcbiAgICAgIEZyYW1ld29ya0Vycm9yLFxuICAgICAgL1VuYWJsZSB0byBmaW5kIHNlcnZpY2UgdW5rbm93biBhbGlhc2VkIGFzIHNlcnZpY2U6ZHVtbXkvLFxuICAgIClcbiAgfSlcbn0pXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFsaWFzaW5nLnRlc3QubWpzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiYXRsYXMiLCJiZWZvcmVFYWNoIiwiQXRsYXMiLCJyb290IiwiX19kaXJuYW1lIiwiY29uZmlnIiwibG9nIiwibGV2ZWwiLCJpdCIsIkR1bW15U2VydmljZSIsIlNlcnZpY2UiLCJzdGFydCIsImNvbXBvbmVudCIsInBpbmciLCJEdW1teUFjdGlvbiIsIkFjdGlvbiIsInByb3RvdHlwZSIsInNpbm9uIiwic3R1YiIsInNlcnZpY2UiLCJhbGlhc2VzIiwiYWN0aW9uIiwiZXhwZWN0IiwidG8iLCJoYXZlIiwiY2FsbENvdW50IiwiYmVlbiIsImNhbGxlZFdpdGgiLCJhcGkiLCJwcmVwYXJlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJhY3Rpb25zIiwiZHVtbXkiLCJJbnRlcm5hbEFjdGlvbiIsIkludGVybmFsU2VydmljZSIsImFsaWFzIiwidGhyb3ciLCJGcmFtZXdvcmtFcnJvciIsImJlIiwiZXZlbnR1YWxseSIsInJlamVjdGVkV2l0aCJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUFBLFFBQVEsQ0FBQyxzQ0FBRCxFQUF5QyxNQUFNO0FBQ3JELE1BQUlDLEtBQUo7QUFFQUMsRUFBQUEsVUFBVSxDQUFDLE1BQU07QUFDZkQsSUFBQUEsS0FBSyxHQUFHLElBQUlFLE9BQUosQ0FBVTtBQUNoQkMsTUFBQUEsSUFBSSxFQUFFQyxTQURVO0FBRWhCQyxNQUFBQSxNQUFNLEVBQUU7QUFBRUwsUUFBQUEsS0FBSyxFQUFFO0FBQUVNLFVBQUFBLEdBQUcsRUFBRTtBQUN0QkMsWUFBQUEsS0FBSyxFQUFFO0FBRGU7QUFBUDtBQUFUO0FBRlEsS0FBVixDQUFSO0FBTUQsR0FQUyxDQUFWO0FBU0FDLEVBQUFBLEVBQUUsQ0FBQyx5QkFBRCxFQUE0QixZQUFZO0FBQ3hDLFVBQU1DLFlBQU4sU0FBMkJDLGdCQUEzQixDQUFtQztBQUdqQ0MsTUFBQUEsS0FBSyxHQUFHO0FBQ04sYUFBS0MsU0FBTCxDQUFlLGNBQWYsRUFBK0JDLElBQS9CLENBQW9DLGVBQXBDO0FBQ0Q7O0FBTGdDOztBQURLLG9CQUNsQ0osWUFEa0MsY0FFcEIsQ0FBQyxjQUFELENBRm9COztBQVN4QyxVQUFNSyxXQUFOLFNBQTBCQyxlQUExQixDQUFpQzs7QUFFakNELElBQUFBLFdBQVcsQ0FBQ0UsU0FBWixDQUFzQkgsSUFBdEIsR0FBNkJJLEtBQUssQ0FBQ0MsSUFBTixFQUE3QjtBQUVBbEIsSUFBQUEsS0FBSyxDQUFDbUIsT0FBTixDQUFjLE9BQWQsRUFBdUJWLFlBQXZCLEVBQXFDO0FBQUVXLE1BQUFBLE9BQU8sRUFBRTtBQUFFLHdCQUFnQjtBQUFsQjtBQUFYLEtBQXJDO0FBQ0FwQixJQUFBQSxLQUFLLENBQUNxQixNQUFOLENBQWEsT0FBYixFQUFzQlAsV0FBdEI7QUFFQSxVQUFNZCxLQUFLLENBQUNXLEtBQU4sRUFBTjtBQUVBVyxJQUFBQSxNQUFNLENBQUNSLFdBQVcsQ0FBQ0UsU0FBWixDQUFzQkgsSUFBdkIsQ0FBTixDQUFtQ1UsRUFBbkMsQ0FBc0NDLElBQXRDLENBQTJDQyxTQUEzQyxDQUFxRCxDQUFyRDtBQUNBSCxJQUFBQSxNQUFNLENBQUNSLFdBQVcsQ0FBQ0UsU0FBWixDQUFzQkgsSUFBdkIsQ0FBTixDQUFtQ1UsRUFBbkMsQ0FBc0NDLElBQXRDLENBQTJDRSxJQUEzQyxDQUFnREMsVUFBaEQsQ0FBMkQsZUFBM0Q7QUFDRCxHQXBCQyxDQUFGO0FBc0JBbkIsRUFBQUEsRUFBRSxDQUFDLHlCQUFELEVBQTRCLFlBQVk7QUFDeEMsVUFBTW9CLEdBQUcsR0FBRztBQUNWZixNQUFBQSxJQUFJLEVBQUVJLEtBQUssQ0FBQ0MsSUFBTjtBQURJLEtBQVo7O0FBSUEsVUFBTVQsWUFBTixTQUEyQkMsZ0JBQTNCLENBQW1DO0FBQ2pDbUIsTUFBQUEsT0FBTyxHQUFHO0FBQUUsZUFBT0MsT0FBTyxDQUFDQyxPQUFSLENBQWdCSCxHQUFoQixDQUFQO0FBQTZCOztBQURSOztBQUluQyxVQUFNZCxXQUFOLFNBQTBCQyxlQUExQixDQUFpQztBQUUvQkYsTUFBQUEsSUFBSSxHQUFHO0FBQUUsYUFBS0QsU0FBTCxDQUFlLGVBQWYsRUFBZ0NDLElBQWhDLENBQXFDLGNBQXJDO0FBQXNEOztBQUZoQzs7QUFUTyxvQkFTbENDLFdBVGtDLGNBVXBCLENBQUMsZUFBRCxDQVZvQjs7QUFjeENkLElBQUFBLEtBQUssQ0FBQ21CLE9BQU4sQ0FBYyxPQUFkLEVBQXVCVixZQUF2QjtBQUNBVCxJQUFBQSxLQUFLLENBQUNxQixNQUFOLENBQWEsT0FBYixFQUFzQlAsV0FBdEIsRUFBbUM7QUFBRU0sTUFBQUEsT0FBTyxFQUFFO0FBQUUseUJBQWlCO0FBQW5CO0FBQVgsS0FBbkM7QUFFQSxVQUFNcEIsS0FBSyxDQUFDVyxLQUFOLEVBQU47QUFDQVgsSUFBQUEsS0FBSyxDQUFDZ0MsT0FBTixDQUFjQyxLQUFkLENBQW9CcEIsSUFBcEI7QUFFQVMsSUFBQUEsTUFBTSxDQUFDTSxHQUFHLENBQUNmLElBQUwsQ0FBTixDQUFpQlUsRUFBakIsQ0FBb0JDLElBQXBCLENBQXlCQyxTQUF6QixDQUFtQyxDQUFuQztBQUNBSCxJQUFBQSxNQUFNLENBQUNNLEdBQUcsQ0FBQ2YsSUFBTCxDQUFOLENBQWlCVSxFQUFqQixDQUFvQkMsSUFBcEIsQ0FBeUJFLElBQXpCLENBQThCQyxVQUE5QixDQUF5QyxjQUF6QztBQUNELEdBdEJDLENBQUY7QUF3QkFuQixFQUFBQSxFQUFFLENBQUMsa0NBQUQsRUFBcUMsWUFBWTtBQUNqRCxVQUFNQyxZQUFOLFNBQTJCQyxnQkFBM0IsQ0FBbUM7QUFFakNDLE1BQUFBLEtBQUssR0FBRztBQUNOLGFBQUtDLFNBQUwsQ0FBZSxpQkFBZixFQUFrQ0MsSUFBbEMsQ0FBdUMsZUFBdkM7QUFDRDs7QUFKZ0M7O0FBRGMsb0JBQzNDSixZQUQyQyxjQUU3QixDQUFDLGlCQUFELENBRjZCOztBQVFqRCxVQUFNeUIsY0FBTixTQUE2Qm5CLGVBQTdCLENBQW9DOztBQVJhLG9CQVEzQ21CLGNBUjJDLGNBUzdCLElBVDZCOztBQVlqREEsSUFBQUEsY0FBYyxDQUFDbEIsU0FBZixDQUF5QkgsSUFBekIsR0FBZ0NJLEtBQUssQ0FBQ0MsSUFBTixFQUFoQztBQUVBbEIsSUFBQUEsS0FBSyxDQUFDbUIsT0FBTixDQUFjLE9BQWQsRUFBdUJWLFlBQXZCLEVBQXFDO0FBQUVXLE1BQUFBLE9BQU8sRUFBRTtBQUFFLDJCQUFtQjtBQUFyQjtBQUFYLEtBQXJDO0FBQ0FwQixJQUFBQSxLQUFLLENBQUNxQixNQUFOLENBQWEsVUFBYixFQUF5QmEsY0FBekI7QUFFQSxVQUFNbEMsS0FBSyxDQUFDVyxLQUFOLEVBQU47QUFFQVcsSUFBQUEsTUFBTSxDQUFDWSxjQUFjLENBQUNsQixTQUFmLENBQXlCSCxJQUExQixDQUFOLENBQXNDVSxFQUF0QyxDQUF5Q0MsSUFBekMsQ0FBOENDLFNBQTlDLENBQXdELENBQXhEO0FBQ0FILElBQUFBLE1BQU0sQ0FBQ1ksY0FBYyxDQUFDbEIsU0FBZixDQUF5QkgsSUFBMUIsQ0FBTixDQUFzQ1UsRUFBdEMsQ0FBeUNDLElBQXpDLENBQThDRSxJQUE5QyxDQUFtREMsVUFBbkQsQ0FBOEQsZUFBOUQ7QUFDRCxHQXJCQyxDQUFGO0FBdUJBbkIsRUFBQUEsRUFBRSxDQUFDLGtDQUFELEVBQXFDLFlBQVk7QUFDakQsVUFBTW9CLEdBQUcsR0FBRztBQUNWZixNQUFBQSxJQUFJLEVBQUVJLEtBQUssQ0FBQ0MsSUFBTjtBQURJLEtBQVo7O0FBSUEsVUFBTWlCLGVBQU4sU0FBOEJ6QixnQkFBOUIsQ0FBc0M7QUFHcENtQixNQUFBQSxPQUFPLEdBQUc7QUFBRSxlQUFPQyxPQUFPLENBQUNDLE9BQVIsQ0FBZ0JILEdBQWhCLENBQVA7QUFBNkI7O0FBSEw7O0FBTFcsb0JBSzNDTyxlQUwyQyxjQU03QixJQU42Qjs7QUFXakQsVUFBTXJCLFdBQU4sU0FBMEJDLGVBQTFCLENBQWlDO0FBRy9CRixNQUFBQSxJQUFJLEdBQUc7QUFDTCxhQUFLRCxTQUFMLENBQWUsa0JBQWYsRUFBbUNDLElBQW5DLENBQXdDLGNBQXhDO0FBQ0Q7O0FBTDhCOztBQVhnQixvQkFXM0NDLFdBWDJDLGNBWTdCLENBQUMsa0JBQUQsQ0FaNkI7O0FBbUJqRGQsSUFBQUEsS0FBSyxDQUFDbUIsT0FBTixDQUFjLFVBQWQsRUFBMEJnQixlQUExQjtBQUNBbkMsSUFBQUEsS0FBSyxDQUFDcUIsTUFBTixDQUFhLE9BQWIsRUFBc0JQLFdBQXRCLEVBQW1DO0FBQUVNLE1BQUFBLE9BQU8sRUFBRTtBQUFFLDRCQUFvQjtBQUF0QjtBQUFYLEtBQW5DO0FBRUEsVUFBTXBCLEtBQUssQ0FBQ1csS0FBTixFQUFOO0FBQ0FYLElBQUFBLEtBQUssQ0FBQ2dDLE9BQU4sQ0FBY0MsS0FBZCxDQUFvQnBCLElBQXBCO0FBRUFTLElBQUFBLE1BQU0sQ0FBQ00sR0FBRyxDQUFDZixJQUFMLENBQU4sQ0FBaUJVLEVBQWpCLENBQW9CQyxJQUFwQixDQUF5QkMsU0FBekIsQ0FBbUMsQ0FBbkM7QUFDQUgsSUFBQUEsTUFBTSxDQUFDTSxHQUFHLENBQUNmLElBQUwsQ0FBTixDQUFpQlUsRUFBakIsQ0FBb0JDLElBQXBCLENBQXlCRSxJQUF6QixDQUE4QkMsVUFBOUIsQ0FBeUMsY0FBekM7QUFDRCxHQTNCQyxDQUFGO0FBNkJBbkIsRUFBQUEsRUFBRSxDQUFDLHFDQUFELEVBQXdDLFlBQVk7QUFDcEQsVUFBTU0sV0FBTixTQUEwQkMsZUFBMUIsQ0FBaUM7QUFDL0JGLE1BQUFBLElBQUksQ0FBQ3VCLEtBQUQsRUFBUTtBQUNWLGFBQUt4QixTQUFMLENBQWV3QixLQUFmO0FBQ0Q7O0FBSDhCOztBQUtqQ3BDLElBQUFBLEtBQUssQ0FBQ3FCLE1BQU4sQ0FBYSxPQUFiLEVBQXNCUCxXQUF0QjtBQUNBLFVBQU1kLEtBQUssQ0FBQ1csS0FBTixFQUFOO0FBRUFXLElBQUFBLE1BQU0sQ0FBQyxNQUFNdEIsS0FBSyxDQUFDZ0MsT0FBTixDQUFjQyxLQUFkLENBQW9CcEIsSUFBcEIsQ0FBeUIsZ0JBQXpCLENBQVAsQ0FBTixDQUF5RFUsRUFBekQsQ0FBNERjLEtBQTVELENBQWtFQyxzQkFBbEU7QUFDRCxHQVZDLENBQUY7QUFZQTlCLEVBQUFBLEVBQUUsQ0FBQyw4Q0FBRCxFQUFpRCxNQUFNO0FBQ3ZELFVBQU1NLFdBQU4sU0FBMEJDLGVBQTFCLENBQWlDOztBQURzQixvQkFDakRELFdBRGlELGNBRW5DLENBQUMsY0FBRCxDQUZtQzs7QUFLdkRkLElBQUFBLEtBQUssQ0FBQ3FCLE1BQU4sQ0FBYSxPQUFiLEVBQXNCUCxXQUF0QixFQUFtQztBQUFFTSxNQUFBQSxPQUFPLEVBQUU7QUFBRSx3QkFBZ0I7QUFBbEI7QUFBWCxLQUFuQztBQUVBLFdBQU9FLE1BQU0sQ0FBQ3RCLEtBQUssQ0FBQ1csS0FBTixFQUFELENBQU4sQ0FBc0JZLEVBQXRCLENBQXlCZ0IsRUFBekIsQ0FBNEJDLFVBQTVCLENBQXVDQyxZQUF2QyxDQUNMSCxzQkFESyxFQUVMLDZEQUZLLENBQVA7QUFJRCxHQVhDLENBQUY7QUFhQTlCLEVBQUFBLEVBQUUsQ0FBQyxrREFBRCxFQUFxRCxNQUFNO0FBQzNELFVBQU1NLFdBQU4sU0FBMEJDLGVBQTFCLENBQWlDOztBQUQwQixvQkFDckRELFdBRHFELGNBRXZDLENBQUMsZUFBRCxDQUZ1Qzs7QUFLM0RkLElBQUFBLEtBQUssQ0FBQ3FCLE1BQU4sQ0FBYSxPQUFiLEVBQXNCUCxXQUF0QixFQUFtQztBQUFFTSxNQUFBQSxPQUFPLEVBQUU7QUFBRSx5QkFBaUI7QUFBbkI7QUFBWCxLQUFuQztBQUVBLFdBQU9FLE1BQU0sQ0FBQ3RCLEtBQUssQ0FBQ1csS0FBTixFQUFELENBQU4sQ0FBc0JZLEVBQXRCLENBQXlCZ0IsRUFBekIsQ0FBNEJDLFVBQTVCLENBQXVDQyxZQUF2QyxDQUNMSCxzQkFESyxFQUVMLDBEQUZLLENBQVA7QUFJRCxHQVhDLENBQUY7QUFZRCxDQW5KTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXRsYXMgfSBmcm9tICcuLidcbmltcG9ydCBTZXJ2aWNlIGZyb20gJ0BhdGxhcy5qcy9zZXJ2aWNlJ1xuaW1wb3J0IEFjdGlvbiBmcm9tICdAYXRsYXMuanMvYWN0aW9uJ1xuaW1wb3J0IHsgRnJhbWV3b3JrRXJyb3IgfSBmcm9tICdAYXRsYXMuanMvZXJyb3JzJ1xuXG5kZXNjcmliZSgnQXRsYXM6IGNyb3NzLWNvbXBvbmVudCBjb21tdW5pY2F0aW9uJywgKCkgPT4ge1xuICBsZXQgYXRsYXNcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhdGxhcyA9IG5ldyBBdGxhcyh7XG4gICAgICByb290OiBfX2Rpcm5hbWUsXG4gICAgICBjb25maWc6IHsgYXRsYXM6IHsgbG9nOiB7XG4gICAgICAgIGxldmVsOiAnd2FybicsXG4gICAgICB9IH0gfSxcbiAgICB9KVxuICB9KVxuXG4gIGl0KCdzZXJ2aWNlIGNhbiBmaW5kIGFjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICBjbGFzcyBEdW1teVNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHtcbiAgICAgIHN0YXRpYyByZXF1aXJlcyA9IFsnYWN0aW9uOmR1bW15J11cblxuICAgICAgc3RhcnQoKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50KCdhY3Rpb246ZHVtbXknKS5waW5nKCdzZXJ2aWNlOmR1bW15JylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjbGFzcyBEdW1teUFjdGlvbiBleHRlbmRzIEFjdGlvbiB7fVxuXG4gICAgRHVtbXlBY3Rpb24ucHJvdG90eXBlLnBpbmcgPSBzaW5vbi5zdHViKClcblxuICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15JywgRHVtbXlTZXJ2aWNlLCB7IGFsaWFzZXM6IHsgJ2FjdGlvbjpkdW1teSc6ICdkdW1teScgfSB9KVxuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBEdW1teUFjdGlvbilcblxuICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcblxuICAgIGV4cGVjdChEdW1teUFjdGlvbi5wcm90b3R5cGUucGluZykudG8uaGF2ZS5jYWxsQ291bnQoMSlcbiAgICBleHBlY3QoRHVtbXlBY3Rpb24ucHJvdG90eXBlLnBpbmcpLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKCdzZXJ2aWNlOmR1bW15JylcbiAgfSlcblxuICBpdCgnYWN0aW9uIGNhbiBmaW5kIHNlcnZpY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgcGluZzogc2lub24uc3R1YigpLFxuICAgIH1cblxuICAgIGNsYXNzIER1bW15U2VydmljZSBleHRlbmRzIFNlcnZpY2Uge1xuICAgICAgcHJlcGFyZSgpIHsgcmV0dXJuIFByb21pc2UucmVzb2x2ZShhcGkpIH1cbiAgICB9XG5cbiAgICBjbGFzcyBEdW1teUFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XG4gICAgICBzdGF0aWMgcmVxdWlyZXMgPSBbJ3NlcnZpY2U6ZHVtbXknXVxuICAgICAgcGluZygpIHsgdGhpcy5jb21wb25lbnQoJ3NlcnZpY2U6ZHVtbXknKS5waW5nKCdhY3Rpb246ZHVtbXknKSB9XG4gICAgfVxuXG4gICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBEdW1teVNlcnZpY2UpXG4gICAgYXRsYXMuYWN0aW9uKCdkdW1teScsIER1bW15QWN0aW9uLCB7IGFsaWFzZXM6IHsgJ3NlcnZpY2U6ZHVtbXknOiAnZHVtbXknIH0gfSlcblxuICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcbiAgICBhdGxhcy5hY3Rpb25zLmR1bW15LnBpbmcoKVxuXG4gICAgZXhwZWN0KGFwaS5waW5nKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgIGV4cGVjdChhcGkucGluZykudG8uaGF2ZS5iZWVuLmNhbGxlZFdpdGgoJ2FjdGlvbjpkdW1teScpXG4gIH0pXG5cbiAgaXQoJ3NlcnZpY2UgY2FuIGZpbmQgaW50ZXJuYWwgYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgIGNsYXNzIER1bW15U2VydmljZSBleHRlbmRzIFNlcnZpY2Uge1xuICAgICAgc3RhdGljIHJlcXVpcmVzID0gWydhY3Rpb246aW50ZXJuYWwnXVxuICAgICAgc3RhcnQoKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50KCdhY3Rpb246aW50ZXJuYWwnKS5waW5nKCdzZXJ2aWNlOmR1bW15JylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjbGFzcyBJbnRlcm5hbEFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XG4gICAgICBzdGF0aWMgaW50ZXJuYWwgPSB0cnVlXG4gICAgfVxuXG4gICAgSW50ZXJuYWxBY3Rpb24ucHJvdG90eXBlLnBpbmcgPSBzaW5vbi5zdHViKClcblxuICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15JywgRHVtbXlTZXJ2aWNlLCB7IGFsaWFzZXM6IHsgJ2FjdGlvbjppbnRlcm5hbCc6ICdpbnRlcm5hbCcgfSB9KVxuICAgIGF0bGFzLmFjdGlvbignaW50ZXJuYWwnLCBJbnRlcm5hbEFjdGlvbilcblxuICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcblxuICAgIGV4cGVjdChJbnRlcm5hbEFjdGlvbi5wcm90b3R5cGUucGluZykudG8uaGF2ZS5jYWxsQ291bnQoMSlcbiAgICBleHBlY3QoSW50ZXJuYWxBY3Rpb24ucHJvdG90eXBlLnBpbmcpLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKCdzZXJ2aWNlOmR1bW15JylcbiAgfSlcblxuICBpdCgnYWN0aW9uIGNhbiBmaW5kIGludGVybmFsIHNlcnZpY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgcGluZzogc2lub24uc3R1YigpLFxuICAgIH1cblxuICAgIGNsYXNzIEludGVybmFsU2VydmljZSBleHRlbmRzIFNlcnZpY2Uge1xuICAgICAgc3RhdGljIGludGVybmFsID0gdHJ1ZVxuXG4gICAgICBwcmVwYXJlKCkgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGFwaSkgfVxuICAgIH1cblxuICAgIGNsYXNzIER1bW15QWN0aW9uIGV4dGVuZHMgQWN0aW9uIHtcbiAgICAgIHN0YXRpYyByZXF1aXJlcyA9IFsnc2VydmljZTppbnRlcm5hbCddXG5cbiAgICAgIHBpbmcoKSB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50KCdzZXJ2aWNlOmludGVybmFsJykucGluZygnYWN0aW9uOmR1bW15JylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhdGxhcy5zZXJ2aWNlKCdpbnRlcm5hbCcsIEludGVybmFsU2VydmljZSlcbiAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgRHVtbXlBY3Rpb24sIHsgYWxpYXNlczogeyAnc2VydmljZTppbnRlcm5hbCc6ICdpbnRlcm5hbCcgfSB9KVxuXG4gICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuICAgIGF0bGFzLmFjdGlvbnMuZHVtbXkucGluZygpXG5cbiAgICBleHBlY3QoYXBpLnBpbmcpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgZXhwZWN0KGFwaS5waW5nKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aCgnYWN0aW9uOmR1bW15JylcbiAgfSlcblxuICBpdCgncmVxdWVzdGluZyB1bmtub3duIGNvbXBvbmVudCB0aHJvd3MnLCBhc3luYyAoKSA9PiB7XG4gICAgY2xhc3MgRHVtbXlBY3Rpb24gZXh0ZW5kcyBBY3Rpb24ge1xuICAgICAgcGluZyhhbGlhcykge1xuICAgICAgICB0aGlzLmNvbXBvbmVudChhbGlhcylcbiAgICAgIH1cbiAgICB9XG4gICAgYXRsYXMuYWN0aW9uKCdkdW1teScsIER1bW15QWN0aW9uKVxuICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcblxuICAgIGV4cGVjdCgoKSA9PiBhdGxhcy5hY3Rpb25zLmR1bW15LnBpbmcoJ3NlcnZpY2U6bG9sc3ZjJykpLnRvLnRocm93KEZyYW1ld29ya0Vycm9yKVxuICB9KVxuXG4gIGl0KCdkZWNsYXJpbmcgYSBjb21wb25lbnQgb2YgaW52YWxpZCB0eXBlIHRocm93cycsICgpID0+IHtcbiAgICBjbGFzcyBEdW1teUFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XG4gICAgICBzdGF0aWMgcmVxdWlyZXMgPSBbJ2ludmFsaWQ6bmFtZSddXG4gICAgfVxuXG4gICAgYXRsYXMuYWN0aW9uKCdkdW1teScsIER1bW15QWN0aW9uLCB7IGFsaWFzZXM6IHsgJ2ludmFsaWQ6bmFtZSc6ICdkdW1teScgfSB9KVxuXG4gICAgcmV0dXJuIGV4cGVjdChhdGxhcy5zdGFydCgpKS50by5iZS5ldmVudHVhbGx5LnJlamVjdGVkV2l0aChcbiAgICAgIEZyYW1ld29ya0Vycm9yLFxuICAgICAgL0ludmFsaWQgY29tcG9uZW50IHR5cGU6IGludmFsaWQgdXNlZCBpbiBhbGlhcyBpbnZhbGlkOm5hbWUvdSxcbiAgICApXG4gIH0pXG5cbiAgaXQoJ3Jlc29sdmluZyBhbiBhbGlhcyBpbnRvIHVua25vd24gY29tcG9uZW50IHRocm93cycsICgpID0+IHtcbiAgICBjbGFzcyBEdW1teUFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XG4gICAgICBzdGF0aWMgcmVxdWlyZXMgPSBbJ3NlcnZpY2U6ZHVtbXknXVxuICAgIH1cblxuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBEdW1teUFjdGlvbiwgeyBhbGlhc2VzOiB7ICdzZXJ2aWNlOmR1bW15JzogJ3Vua25vd24nIH0gfSlcblxuICAgIHJldHVybiBleHBlY3QoYXRsYXMuc3RhcnQoKSkudG8uYmUuZXZlbnR1YWxseS5yZWplY3RlZFdpdGgoXG4gICAgICBGcmFtZXdvcmtFcnJvcixcbiAgICAgIC9VbmFibGUgdG8gZmluZCBzZXJ2aWNlIHVua25vd24gYWxpYXNlZCBhcyBzZXJ2aWNlOmR1bW15L3UsXG4gICAgKVxuICB9KVxufSlcbiJdfQ==

@@ -21,7 +21,7 @@ "use strict";

it('requires root on construction', () => {
expect(() => new _.Atlas()).to.throw(_errors.FrameworkError, /root must be explicitly specified/);
expect(() => new _.Atlas()).to.throw(_errors.FrameworkError, /root must be explicitly specified/u);
});
it('throws when env is not provided and NODE_ENV is not set', function () {
this.sandbox.stub(process.env, 'NODE_ENV').value('');
expect(() => new _.Atlas(opts)).to.throw(_errors.FrameworkError, /env not specified/);
expect(() => new _.Atlas(opts)).to.throw(_errors.FrameworkError, /env not specified/u);
});

@@ -117,2 +117,2 @@ it('supports loading the config from module path relative to root', () => {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwaS50ZXN0Lm1qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsIm9wdHMiLCJiZWZvcmVFYWNoIiwicm9vdCIsIl9fZGlybmFtZSIsIml0IiwiZXhwZWN0IiwiQXRsYXMiLCJ0byIsImJlIiwiYSIsIm5vdCIsInRocm93IiwiRnJhbWV3b3JrRXJyb3IiLCJzYW5kYm94Iiwic3R1YiIsInByb2Nlc3MiLCJlbnYiLCJ2YWx1ZSIsIm1vZHVsZXMiLCJiYXNlIiwicmVxdWlyZSIsImxvY2FsIiwiYXRsYXMiLCJoYXZlIiwicHJvcGVydHkiLCJjb25maWciLCJkZWZhdWx0IiwibG9nIiwic2VyaWFsaXplcnMiLCJhbiIsImFsbCIsImtleXMiLCJyZXNwb25kVG8iLCJpbmNsdWRlIiwiZXF1YWwiLCJOT0RFX0VOViIsImFuZCIsInByZXBhcmVkIiwic3RhcnRlZCJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFDQTs7QUFFQUEsU0FBUyx1QkFBVCxFQUFrQyxNQUFNO0FBQ3RDLE1BQUlDLElBQUo7QUFFQUMsYUFBVyxNQUFNO0FBQ2ZELFdBQU87QUFBRUUsWUFBTUM7QUFBUixLQUFQO0FBQ0QsR0FGRDtBQUtBQyxLQUFHLFFBQUgsRUFBYSxNQUFNO0FBQ2pCQyxXQUFPQyxPQUFQLEVBQWNDLEVBQWQsQ0FBaUJDLEVBQWpCLENBQW9CQyxDQUFwQixDQUFzQixVQUF0QjtBQUNELEdBRkQ7QUFJQUwsS0FBRyxvQkFBSCxFQUF5QixNQUFNO0FBQzdCQyxXQUFPLE1BQU0sSUFBSUMsT0FBSixDQUFVTixJQUFWLENBQWIsRUFBOEJPLEVBQTlCLENBQWlDRyxHQUFqQyxDQUFxQ0MsS0FBckM7QUFDRCxHQUZEO0FBSUFQLEtBQUcsK0JBQUgsRUFBb0MsTUFBTTtBQUN4Q0MsV0FBTyxNQUFNLElBQUlDLE9BQUosRUFBYixFQUEwQkMsRUFBMUIsQ0FBNkJJLEtBQTdCLENBQW1DQyxzQkFBbkMsRUFBbUQsbUNBQW5EO0FBQ0QsR0FGRDtBQUlBUixLQUFHLHlEQUFILEVBQThELFlBQVc7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QixDQUFxQnlCLFNBQXJCLENBQStCLE1BQS9CO0FBQ0EzQixXQUFPaUIsTUFBTUssR0FBYixFQUFrQnBCLEVBQWxCLENBQXFCeUIsU0FBckIsQ0FBK0IsT0FBL0I7QUFDRCxHQVJEO0FBVUE1QixLQUFHLGlDQUFILEVBQXNDLE1BQU07QUFDMUMsVUFBTWtCLFFBQVEsSUFBSWhCLE9BQUosQ0FBVU4sSUFBVixDQUFkO0FBRUFLLFdBQU8sTUFBTTtBQUNYaUIsWUFBTWUsUUFBTixHQUFpQixJQUFqQjtBQUNELEtBRkQsRUFFRzlCLEVBRkgsQ0FFTUksS0FGTjtBQUdELEdBTkQ7QUFRQVAsS0FBRyxnQ0FBSCxFQUFxQyxNQUFNO0FBQ3pDLFVBQU1rQixRQUFRLElBQUloQixPQUFKLENBQVVOLElBQVYsQ0FBZDtBQUVBSyxXQUFPLE1BQU07QUFDWGlCLFlBQU1nQixPQUFOLEdBQWdCLElBQWhCO0FBQ0QsS0FGRCxFQUVHL0IsRUFGSCxDQUVNSSxLQUZOO0FBR0QsR0FORDtBQU9ELENBaEpEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXRsYXMgfSBmcm9tICcuLidcbmltcG9ydCB7IEZyYW1ld29ya0Vycm9yIH0gZnJvbSAnQGF0bGFzLmpzL2Vycm9ycydcblxuZGVzY3JpYmUoJ0F0bGFzOiBiYXNpY3MgYW5kIEFQSScsICgpID0+IHtcbiAgbGV0IG9wdHNcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvcHRzID0geyByb290OiBfX2Rpcm5hbWUgfVxuICB9KVxuXG5cbiAgaXQoJ2V4aXN0cycsICgpID0+IHtcbiAgICBleHBlY3QoQXRsYXMpLnRvLmJlLmEoJ2Z1bmN0aW9uJylcbiAgfSlcblxuICBpdCgnY2FuIGJlIGNvbnN0cnVjdGVkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBuZXcgQXRsYXMob3B0cykpLnRvLm5vdC50aHJvdygpXG4gIH0pXG5cbiAgaXQoJ3JlcXVpcmVzIHJvb3Qgb24gY29uc3RydWN0aW9uJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBuZXcgQXRsYXMoKSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IsIC9yb290IG11c3QgYmUgZXhwbGljaXRseSBzcGVjaWZpZWQvKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiBlbnYgaXMgbm90IHByb3ZpZGVkIGFuZCBOT0RFX0VOViBpcyBub3Qgc2V0JywgZnVuY3Rpb24oKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb2Nlc3MtZW52XG4gICAgdGhpcy5zYW5kYm94LnN0dWIocHJvY2Vzcy5lbnYsICdOT0RFX0VOVicpLnZhbHVlKCcnKVxuICAgIGV4cGVjdCgoKSA9PiBuZXcgQXRsYXMob3B0cykpLnRvLnRocm93KEZyYW1ld29ya0Vycm9yLCAvZW52IG5vdCBzcGVjaWZpZWQvKVxuICB9KVxuXG4gIGl0KCdzdXBwb3J0cyBsb2FkaW5nIHRoZSBjb25maWcgZnJvbSBtb2R1bGUgcGF0aCByZWxhdGl2ZSB0byByb290JywgKCkgPT4ge1xuICAgIC8vIFNhbml0eSBjaGVja1xuICAgIGNvbnN0IG1vZHVsZXMgPSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBnbG9iYWwtcmVxdWlyZSAqL1xuICAgICAgYmFzZTogcmVxdWlyZSgnLi9kZW1vY29uZmlnJyksXG4gICAgICBlbnY6IHJlcXVpcmUoJy4vZGVtb2NvbmZpZy9lbnYvbG9sZW52JyksXG4gICAgICBsb2NhbDogcmVxdWlyZSgnLi9kZW1vY29uZmlnL2xvY2FsJyksXG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIGdsb2JhbC1yZXF1aXJlICovXG4gICAgfVxuICAgIGV4cGVjdChtb2R1bGVzLmJhc2UuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21CYXNlJywgdHJ1ZSlcbiAgICBleHBlY3QobW9kdWxlcy5iYXNlLmF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdmcm9tRW52JywgZmFsc2UpXG4gICAgZXhwZWN0KG1vZHVsZXMuYmFzZS5hdGxhcykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUxvY2FsJywgZmFsc2UpXG4gICAgZXhwZWN0KG1vZHVsZXMuZW52LmF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdmcm9tRW52JywgdHJ1ZSlcbiAgICBleHBlY3QobW9kdWxlcy5lbnYuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21Mb2NhbCcsIGZhbHNlKVxuICAgIGV4cGVjdChtb2R1bGVzLmxvY2FsLmF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdmcm9tTG9jYWwnLCB0cnVlKVxuXG4gICAgY29uc3QgYXRsYXMgPSBuZXcgQXRsYXMoe1xuICAgICAgcm9vdDogX19kaXJuYW1lLFxuICAgICAgZW52OiAnbG9sZW52JyxcbiAgICAgIGNvbmZpZzogJ2RlbW9jb25maWcnLFxuICAgIH0pXG4gICAgY29uc3QgY29uZmlnID0gYXRsYXMuY29uZmlnLmF0bGFzXG5cbiAgICBleHBlY3QoY29uZmlnKS50by5oYXZlLnByb3BlcnR5KCdmcm9tQmFzZScsIHRydWUpXG4gICAgZXhwZWN0KGNvbmZpZykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUVudicsIHRydWUpXG4gICAgZXhwZWN0KGNvbmZpZykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUxvY2FsJywgdHJ1ZSlcbiAgfSlcblxuICBpdCgncHJlZmVycyBFUyBtb2R1bGUgZGVmYXVsdCBleHBvcnQgaW4gdGhlIGNvbmZpZyBmaWxlcycsICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGVzID0ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGdsb2JhbC1yZXF1aXJlXG4gICAgICBlbnY6IHJlcXVpcmUoJy4vZGVtb2NvbmZpZy9lbnYvbW9kZW52JykuZGVmYXVsdCxcbiAgICB9XG5cbiAgICBleHBlY3QobW9kdWxlcy5lbnYuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21FbnYnLCB0cnVlKVxuICAgIGV4cGVjdChtb2R1bGVzLmVudi5hdGxhcykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUxvY2FsJywgZmFsc2UpXG5cbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyh7XG4gICAgICByb290OiBfX2Rpcm5hbWUsXG4gICAgICBlbnY6ICdtb2RlbnYnLFxuICAgICAgY29uZmlnOiAnZGVtb2NvbmZpZycsXG4gICAgfSlcbiAgICBjb25zdCBjb25maWcgPSBhdGxhcy5jb25maWcuYXRsYXNcblxuICAgIGV4cGVjdChjb25maWcpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21CYXNlJywgdHJ1ZSlcbiAgICBleHBlY3QoY29uZmlnKS50by5oYXZlLnByb3BlcnR5KCdmcm9tRW52JywgdHJ1ZSlcbiAgICBleHBlY3QoY29uZmlnKS50by5oYXZlLnByb3BlcnR5KCdmcm9tTG9jYWwnLCB0cnVlKVxuICB9KVxuXG4gIGl0KCdzdXBwb3J0cyBsb2FkaW5nIFBpbm8gbG9nIHNlcmlhbGlzZXJzIGZyb20gbW9kdWxlIHBhdGggcmVsYXRpdmUgdG8gcm9vdCcsICgpID0+IHtcbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyh7XG4gICAgICByb290OiBfX2Rpcm5hbWUsXG4gICAgICBlbnY6ICdsb2xlbnYnLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGF0bGFzOiB7XG4gICAgICAgICAgbG9nOiB7XG4gICAgICAgICAgICBzZXJpYWxpemVyczogJ2RlbW9jb25maWcvc2VyaWFsaXNlcnMnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgY29uc3QgY29uZmlnID0gYXRsYXMuY29uZmlnLmF0bGFzXG5cbiAgICBleHBlY3QoY29uZmlnLmxvZy5zZXJpYWxpemVycykudG8uYmUuYW4oJ29iamVjdCcpXG4gICAgZXhwZWN0KGNvbmZpZy5sb2cuc2VyaWFsaXplcnMpLnRvLmhhdmUuYWxsLmtleXMoWydlcnInLCAncmVxJywgJ3JlcycsICdjdXN0b20nXSlcbiAgfSlcblxuICBpdCgncmVzcG9uZHMgdG8ga25vd24gbWV0aG9kcycsICgpID0+IHtcbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyhvcHRzKVxuXG4gICAgZXhwZWN0KGF0bGFzKS50by5yZXNwb25kVG8oJ3ByZXBhcmUnKVxuICAgIGV4cGVjdChhdGxhcykudG8ucmVzcG9uZFRvKCdzdGFydCcpXG4gICAgZXhwZWN0KGF0bGFzKS50by5yZXNwb25kVG8oJ3N0b3AnKVxuICB9KVxuXG4gIGl0KCdoYXMga25vd24gcHVibGljIHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgYXRsYXMgPSBuZXcgQXRsYXMob3B0cylcblxuICAgIGV4cGVjdChhdGxhcykudG8uaW5jbHVkZS5hbGwua2V5cyhbXG4gICAgICAnYWN0aW9ucycsXG4gICAgICAnc2VydmljZXMnLFxuICAgICAgJ2NvbmZpZycsXG4gICAgICAnbG9nJyxcbiAgICAgICd2YWxpZGF0b3InLFxuICAgIF0pXG4gICAgLy8gSW1wbGVtZW50ZWQgYXMgZ2V0dGVycywgYW5kIENoYWkgZG9lcyBub3Qgc2VlbSB0byB3b3JrIHdpdGggdGhlbSB3aGVuIGNoZWNraW5nIGZvciAua2V5cygpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb2Nlc3MtZW52XG4gICAgZXhwZWN0KGF0bGFzLmVudikudG8uZXF1YWwocHJvY2Vzcy5lbnYuTk9ERV9FTlYpLmFuZC50by5iZS5hKCdzdHJpbmcnKVxuICAgIGV4cGVjdChhdGxhcy5yb290KS50by5lcXVhbChfX2Rpcm5hbWUpXG4gICAgZXhwZWN0KGF0bGFzLnByZXBhcmVkKS50by5lcXVhbChmYWxzZSlcbiAgICBleHBlY3QoYXRsYXMuc3RhcnRlZCkudG8uZXF1YWwoZmFsc2UpXG4gIH0pXG5cbiAgaXQoJ2NvbnN0cnVjdHMgYSBsb2cgb2JqZWN0IG9uIHRoaXMubG9nJywgKCkgPT4ge1xuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKG9wdHMpXG5cbiAgICBleHBlY3QoYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2xvZycpXG4gICAgZXhwZWN0KGF0bGFzLmxvZykudG8ucmVzcG9uZFRvKCdkZWJ1ZycpXG4gICAgZXhwZWN0KGF0bGFzLmxvZykudG8ucmVzcG9uZFRvKCdpbmZvJylcbiAgICBleHBlY3QoYXRsYXMubG9nKS50by5yZXNwb25kVG8oJ3dhcm4nKVxuICAgIGV4cGVjdChhdGxhcy5sb2cpLnRvLnJlc3BvbmRUbygnZXJyb3InKVxuICB9KVxuXG4gIGl0KCdwcmV2ZW50cyBzZXR0aW5nIGF0bGFzLnByZXBhcmVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKG9wdHMpXG5cbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgYXRsYXMucHJlcGFyZWQgPSB0cnVlXG4gICAgfSkudG8udGhyb3coKVxuICB9KVxuXG4gIGl0KCdwcmV2ZW50cyBzZXR0aW5nIGF0bGFzLnN0YXJ0ZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgYXRsYXMgPSBuZXcgQXRsYXMob3B0cylcblxuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBhdGxhcy5zdGFydGVkID0gdHJ1ZVxuICAgIH0pLnRvLnRocm93KClcbiAgfSlcbn0pXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwaS50ZXN0Lm1qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsIm9wdHMiLCJiZWZvcmVFYWNoIiwicm9vdCIsIl9fZGlybmFtZSIsIml0IiwiZXhwZWN0IiwiQXRsYXMiLCJ0byIsImJlIiwiYSIsIm5vdCIsInRocm93IiwiRnJhbWV3b3JrRXJyb3IiLCJzYW5kYm94Iiwic3R1YiIsInByb2Nlc3MiLCJlbnYiLCJ2YWx1ZSIsIm1vZHVsZXMiLCJiYXNlIiwicmVxdWlyZSIsImxvY2FsIiwiYXRsYXMiLCJoYXZlIiwicHJvcGVydHkiLCJjb25maWciLCJkZWZhdWx0IiwibG9nIiwic2VyaWFsaXplcnMiLCJhbiIsImFsbCIsImtleXMiLCJyZXNwb25kVG8iLCJpbmNsdWRlIiwiZXF1YWwiLCJOT0RFX0VOViIsImFuZCIsInByZXBhcmVkIiwic3RhcnRlZCJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFDQTs7QUFFQUEsUUFBUSxDQUFDLHVCQUFELEVBQTBCLE1BQU07QUFDdEMsTUFBSUMsSUFBSjtBQUVBQyxFQUFBQSxVQUFVLENBQUMsTUFBTTtBQUNmRCxJQUFBQSxJQUFJLEdBQUc7QUFBRUUsTUFBQUEsSUFBSSxFQUFFQztBQUFSLEtBQVA7QUFDRCxHQUZTLENBQVY7QUFLQUMsRUFBQUEsRUFBRSxDQUFDLFFBQUQsRUFBVyxNQUFNO0FBQ2pCQyxJQUFBQSxNQUFNLENBQUNDLE9BQUQsQ0FBTixDQUFjQyxFQUFkLENBQWlCQyxFQUFqQixDQUFvQkMsQ0FBcEIsQ0FBc0IsVUFBdEI7QUFDRCxHQUZDLENBQUY7QUFJQUwsRUFBQUEsRUFBRSxDQUFDLG9CQUFELEVBQXVCLE1BQU07QUFDN0JDLElBQUFBLE1BQU0sQ0FBQyxNQUFNLElBQUlDLE9BQUosQ0FBVU4sSUFBVixDQUFQLENBQU4sQ0FBOEJPLEVBQTlCLENBQWlDRyxHQUFqQyxDQUFxQ0MsS0FBckM7QUFDRCxHQUZDLENBQUY7QUFJQVAsRUFBQUEsRUFBRSxDQUFDLCtCQUFELEVBQWtDLE1BQU07QUFDeEND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eUIsU0FBckIsQ0FBK0IsT0FBL0I7QUFDQTNCLElBQUFBLE1BQU0sQ0FBQ2lCLEtBQUssQ0FBQ0ssR0FBUCxDQUFOLENBQWtCcEIsRUFBbEIsQ0FBcUJ5QixTQUFyQixDQUErQixNQUEvQjtBQUNBM0IsSUFBQUEsTUFBTSxDQUFDaUIsS0FBSyxDQUFDSyxHQUFQLENBQU4sQ0FBa0JwQixFQUFsQixDQUFxQnlCLFNBQXJCLENBQStCLE1BQS9CO0FBQ0EzQixJQUFBQSxNQUFNLENBQUNpQixLQUFLLENBQUNLLEdBQVAsQ0FBTixDQUFrQnBCLEVBQWxCLENBQXFCeUIsU0FBckIsQ0FBK0IsT0FBL0I7QUFDRCxHQVJDLENBQUY7QUFVQTVCLEVBQUFBLEVBQUUsQ0FBQyxpQ0FBRCxFQUFvQyxNQUFNO0FBQzFDLFVBQU1rQixLQUFLLEdBQUcsSUFBSWhCLE9BQUosQ0FBVU4sSUFBVixDQUFkO0FBRUFLLElBQUFBLE1BQU0sQ0FBQyxNQUFNO0FBQ1hpQixNQUFBQSxLQUFLLENBQUNlLFFBQU4sR0FBaUIsSUFBakI7QUFDRCxLQUZLLENBQU4sQ0FFRzlCLEVBRkgsQ0FFTUksS0FGTjtBQUdELEdBTkMsQ0FBRjtBQVFBUCxFQUFBQSxFQUFFLENBQUMsZ0NBQUQsRUFBbUMsTUFBTTtBQUN6QyxVQUFNa0IsS0FBSyxHQUFHLElBQUloQixPQUFKLENBQVVOLElBQVYsQ0FBZDtBQUVBSyxJQUFBQSxNQUFNLENBQUMsTUFBTTtBQUNYaUIsTUFBQUEsS0FBSyxDQUFDZ0IsT0FBTixHQUFnQixJQUFoQjtBQUNELEtBRkssQ0FBTixDQUVHL0IsRUFGSCxDQUVNSSxLQUZOO0FBR0QsR0FOQyxDQUFGO0FBT0QsQ0FoSk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0bGFzIH0gZnJvbSAnLi4nXG5pbXBvcnQgeyBGcmFtZXdvcmtFcnJvciB9IGZyb20gJ0BhdGxhcy5qcy9lcnJvcnMnXG5cbmRlc2NyaWJlKCdBdGxhczogYmFzaWNzIGFuZCBBUEknLCAoKSA9PiB7XG4gIGxldCBvcHRzXG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb3B0cyA9IHsgcm9vdDogX19kaXJuYW1lIH1cbiAgfSlcblxuXG4gIGl0KCdleGlzdHMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KEF0bGFzKS50by5iZS5hKCdmdW5jdGlvbicpXG4gIH0pXG5cbiAgaXQoJ2NhbiBiZSBjb25zdHJ1Y3RlZCcsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4gbmV3IEF0bGFzKG9wdHMpKS50by5ub3QudGhyb3coKVxuICB9KVxuXG4gIGl0KCdyZXF1aXJlcyByb290IG9uIGNvbnN0cnVjdGlvbicsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4gbmV3IEF0bGFzKCkpLnRvLnRocm93KEZyYW1ld29ya0Vycm9yLCAvcm9vdCBtdXN0IGJlIGV4cGxpY2l0bHkgc3BlY2lmaWVkL3UpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIGVudiBpcyBub3QgcHJvdmlkZWQgYW5kIE5PREVfRU5WIGlzIG5vdCBzZXQnLCBmdW5jdGlvbigpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvY2Vzcy1lbnZcbiAgICB0aGlzLnNhbmRib3guc3R1Yihwcm9jZXNzLmVudiwgJ05PREVfRU5WJykudmFsdWUoJycpXG4gICAgZXhwZWN0KCgpID0+IG5ldyBBdGxhcyhvcHRzKSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IsIC9lbnYgbm90IHNwZWNpZmllZC91KVxuICB9KVxuXG4gIGl0KCdzdXBwb3J0cyBsb2FkaW5nIHRoZSBjb25maWcgZnJvbSBtb2R1bGUgcGF0aCByZWxhdGl2ZSB0byByb290JywgKCkgPT4ge1xuICAgIC8vIFNhbml0eSBjaGVja1xuICAgIGNvbnN0IG1vZHVsZXMgPSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBnbG9iYWwtcmVxdWlyZSAqL1xuICAgICAgYmFzZTogcmVxdWlyZSgnLi9kZW1vY29uZmlnJyksXG4gICAgICBlbnY6IHJlcXVpcmUoJy4vZGVtb2NvbmZpZy9lbnYvbG9sZW52JyksXG4gICAgICBsb2NhbDogcmVxdWlyZSgnLi9kZW1vY29uZmlnL2xvY2FsJyksXG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIGdsb2JhbC1yZXF1aXJlICovXG4gICAgfVxuICAgIGV4cGVjdChtb2R1bGVzLmJhc2UuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21CYXNlJywgdHJ1ZSlcbiAgICBleHBlY3QobW9kdWxlcy5iYXNlLmF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdmcm9tRW52JywgZmFsc2UpXG4gICAgZXhwZWN0KG1vZHVsZXMuYmFzZS5hdGxhcykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUxvY2FsJywgZmFsc2UpXG4gICAgZXhwZWN0KG1vZHVsZXMuZW52LmF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdmcm9tRW52JywgdHJ1ZSlcbiAgICBleHBlY3QobW9kdWxlcy5lbnYuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21Mb2NhbCcsIGZhbHNlKVxuICAgIGV4cGVjdChtb2R1bGVzLmxvY2FsLmF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdmcm9tTG9jYWwnLCB0cnVlKVxuXG4gICAgY29uc3QgYXRsYXMgPSBuZXcgQXRsYXMoe1xuICAgICAgcm9vdDogX19kaXJuYW1lLFxuICAgICAgZW52OiAnbG9sZW52JyxcbiAgICAgIGNvbmZpZzogJ2RlbW9jb25maWcnLFxuICAgIH0pXG4gICAgY29uc3QgY29uZmlnID0gYXRsYXMuY29uZmlnLmF0bGFzXG5cbiAgICBleHBlY3QoY29uZmlnKS50by5oYXZlLnByb3BlcnR5KCdmcm9tQmFzZScsIHRydWUpXG4gICAgZXhwZWN0KGNvbmZpZykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUVudicsIHRydWUpXG4gICAgZXhwZWN0KGNvbmZpZykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUxvY2FsJywgdHJ1ZSlcbiAgfSlcblxuICBpdCgncHJlZmVycyBFUyBtb2R1bGUgZGVmYXVsdCBleHBvcnQgaW4gdGhlIGNvbmZpZyBmaWxlcycsICgpID0+IHtcbiAgICBjb25zdCBtb2R1bGVzID0ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGdsb2JhbC1yZXF1aXJlXG4gICAgICBlbnY6IHJlcXVpcmUoJy4vZGVtb2NvbmZpZy9lbnYvbW9kZW52JykuZGVmYXVsdCxcbiAgICB9XG5cbiAgICBleHBlY3QobW9kdWxlcy5lbnYuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21FbnYnLCB0cnVlKVxuICAgIGV4cGVjdChtb2R1bGVzLmVudi5hdGxhcykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUxvY2FsJywgZmFsc2UpXG5cbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyh7XG4gICAgICByb290OiBfX2Rpcm5hbWUsXG4gICAgICBlbnY6ICdtb2RlbnYnLFxuICAgICAgY29uZmlnOiAnZGVtb2NvbmZpZycsXG4gICAgfSlcbiAgICBjb25zdCBjb25maWcgPSBhdGxhcy5jb25maWcuYXRsYXNcblxuICAgIGV4cGVjdChjb25maWcpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21CYXNlJywgdHJ1ZSlcbiAgICBleHBlY3QoY29uZmlnKS50by5oYXZlLnByb3BlcnR5KCdmcm9tRW52JywgdHJ1ZSlcbiAgICBleHBlY3QoY29uZmlnKS50by5oYXZlLnByb3BlcnR5KCdmcm9tTG9jYWwnLCB0cnVlKVxuICB9KVxuXG4gIGl0KCdzdXBwb3J0cyBsb2FkaW5nIFBpbm8gbG9nIHNlcmlhbGlzZXJzIGZyb20gbW9kdWxlIHBhdGggcmVsYXRpdmUgdG8gcm9vdCcsICgpID0+IHtcbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyh7XG4gICAgICByb290OiBfX2Rpcm5hbWUsXG4gICAgICBlbnY6ICdsb2xlbnYnLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGF0bGFzOiB7XG4gICAgICAgICAgbG9nOiB7XG4gICAgICAgICAgICBzZXJpYWxpemVyczogJ2RlbW9jb25maWcvc2VyaWFsaXNlcnMnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgY29uc3QgY29uZmlnID0gYXRsYXMuY29uZmlnLmF0bGFzXG5cbiAgICBleHBlY3QoY29uZmlnLmxvZy5zZXJpYWxpemVycykudG8uYmUuYW4oJ29iamVjdCcpXG4gICAgZXhwZWN0KGNvbmZpZy5sb2cuc2VyaWFsaXplcnMpLnRvLmhhdmUuYWxsLmtleXMoWydlcnInLCAncmVxJywgJ3JlcycsICdjdXN0b20nXSlcbiAgfSlcblxuICBpdCgncmVzcG9uZHMgdG8ga25vd24gbWV0aG9kcycsICgpID0+IHtcbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyhvcHRzKVxuXG4gICAgZXhwZWN0KGF0bGFzKS50by5yZXNwb25kVG8oJ3ByZXBhcmUnKVxuICAgIGV4cGVjdChhdGxhcykudG8ucmVzcG9uZFRvKCdzdGFydCcpXG4gICAgZXhwZWN0KGF0bGFzKS50by5yZXNwb25kVG8oJ3N0b3AnKVxuICB9KVxuXG4gIGl0KCdoYXMga25vd24gcHVibGljIHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgYXRsYXMgPSBuZXcgQXRsYXMob3B0cylcblxuICAgIGV4cGVjdChhdGxhcykudG8uaW5jbHVkZS5hbGwua2V5cyhbXG4gICAgICAnYWN0aW9ucycsXG4gICAgICAnc2VydmljZXMnLFxuICAgICAgJ2NvbmZpZycsXG4gICAgICAnbG9nJyxcbiAgICAgICd2YWxpZGF0b3InLFxuICAgIF0pXG4gICAgLy8gSW1wbGVtZW50ZWQgYXMgZ2V0dGVycywgYW5kIENoYWkgZG9lcyBub3Qgc2VlbSB0byB3b3JrIHdpdGggdGhlbSB3aGVuIGNoZWNraW5nIGZvciAua2V5cygpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb2Nlc3MtZW52XG4gICAgZXhwZWN0KGF0bGFzLmVudikudG8uZXF1YWwocHJvY2Vzcy5lbnYuTk9ERV9FTlYpLmFuZC50by5iZS5hKCdzdHJpbmcnKVxuICAgIGV4cGVjdChhdGxhcy5yb290KS50by5lcXVhbChfX2Rpcm5hbWUpXG4gICAgZXhwZWN0KGF0bGFzLnByZXBhcmVkKS50by5lcXVhbChmYWxzZSlcbiAgICBleHBlY3QoYXRsYXMuc3RhcnRlZCkudG8uZXF1YWwoZmFsc2UpXG4gIH0pXG5cbiAgaXQoJ2NvbnN0cnVjdHMgYSBsb2cgb2JqZWN0IG9uIHRoaXMubG9nJywgKCkgPT4ge1xuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKG9wdHMpXG5cbiAgICBleHBlY3QoYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2xvZycpXG4gICAgZXhwZWN0KGF0bGFzLmxvZykudG8ucmVzcG9uZFRvKCdkZWJ1ZycpXG4gICAgZXhwZWN0KGF0bGFzLmxvZykudG8ucmVzcG9uZFRvKCdpbmZvJylcbiAgICBleHBlY3QoYXRsYXMubG9nKS50by5yZXNwb25kVG8oJ3dhcm4nKVxuICAgIGV4cGVjdChhdGxhcy5sb2cpLnRvLnJlc3BvbmRUbygnZXJyb3InKVxuICB9KVxuXG4gIGl0KCdwcmV2ZW50cyBzZXR0aW5nIGF0bGFzLnByZXBhcmVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKG9wdHMpXG5cbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgYXRsYXMucHJlcGFyZWQgPSB0cnVlXG4gICAgfSkudG8udGhyb3coKVxuICB9KVxuXG4gIGl0KCdwcmV2ZW50cyBzZXR0aW5nIGF0bGFzLnN0YXJ0ZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgYXRsYXMgPSBuZXcgQXRsYXMob3B0cylcblxuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBhdGxhcy5zdGFydGVkID0gdHJ1ZVxuICAgIH0pLnRvLnRocm93KClcbiAgfSlcbn0pXG4iXX0=

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

exports.atlas = atlas;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvbGVudi5tanMiXSwibmFtZXMiOlsiYXRsYXMiLCJmcm9tRW52IiwiZnJvbUxvY2FsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxNQUFNQSxRQUFRO0FBQ1pDLFdBQVMsSUFERztBQUVaQyxhQUFXO0FBRkMsQ0FBZCIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVudi1zcGVjaWZpYyBjb25maWd1cmF0aW9uLlxuY29uc3QgYXRsYXMgPSB7XG4gIGZyb21FbnY6IHRydWUsXG4gIGZyb21Mb2NhbDogZmFsc2UsXG59XG5cbmV4cG9ydCB7XG4gIGF0bGFzLFxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvbGVudi5tanMiXSwibmFtZXMiOlsiYXRsYXMiLCJmcm9tRW52IiwiZnJvbUxvY2FsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxNQUFNQSxLQUFLLEdBQUc7QUFDWkMsRUFBQUEsT0FBTyxFQUFFLElBREc7QUFFWkMsRUFBQUEsU0FBUyxFQUFFO0FBRkMsQ0FBZCIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVudi1zcGVjaWZpYyBjb25maWd1cmF0aW9uLlxuY29uc3QgYXRsYXMgPSB7XG4gIGZyb21FbnY6IHRydWUsXG4gIGZyb21Mb2NhbDogZmFsc2UsXG59XG5cbmV4cG9ydCB7XG4gIGF0bGFzLFxufVxuIl19

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

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1vZGVudi5tanMiXSwibmFtZXMiOlsiYXRsYXMiLCJmcm9tRW52IiwiZnJvbUxvY2FsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7ZUFDZTtBQUNiQSxTQUFPO0FBQ0xDLGFBQVMsSUFESjtBQUVMQyxlQUFXO0FBRk47QUFETSxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZW52LXNwZWNpZmljIGNvbmZpZ3VyYXRpb24uXG5leHBvcnQgZGVmYXVsdCB7XG4gIGF0bGFzOiB7XG4gICAgZnJvbUVudjogdHJ1ZSxcbiAgICBmcm9tTG9jYWw6IGZhbHNlLFxuICB9LFxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1vZGVudi5tanMiXSwibmFtZXMiOlsiYXRsYXMiLCJmcm9tRW52IiwiZnJvbUxvY2FsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7ZUFDZTtBQUNiQSxFQUFBQSxLQUFLLEVBQUU7QUFDTEMsSUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTEMsSUFBQUEsU0FBUyxFQUFFO0FBRk47QUFETSxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZW52LXNwZWNpZmljIGNvbmZpZ3VyYXRpb24uXG5leHBvcnQgZGVmYXVsdCB7XG4gIGF0bGFzOiB7XG4gICAgZnJvbUVudjogdHJ1ZSxcbiAgICBmcm9tTG9jYWw6IGZhbHNlLFxuICB9LFxufVxuIl19

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

exports.atlas = atlas;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4Lm1qcyJdLCJuYW1lcyI6WyJhdGxhcyIsImZyb21CYXNlIiwiZnJvbUVudiIsImZyb21Mb2NhbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsTUFBTUEsUUFBUTtBQUNaQyxZQUFVLElBREU7QUFFWkMsV0FBUyxLQUZHO0FBR1pDLGFBQVc7QUFIQyxDQUFkIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQmFzZSBjb25maWd1cmF0aW9uIG1vZHVsZS5cbmNvbnN0IGF0bGFzID0ge1xuICBmcm9tQmFzZTogdHJ1ZSxcbiAgZnJvbUVudjogZmFsc2UsXG4gIGZyb21Mb2NhbDogZmFsc2UsXG59XG5cbmV4cG9ydCB7XG4gIGF0bGFzLFxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4Lm1qcyJdLCJuYW1lcyI6WyJhdGxhcyIsImZyb21CYXNlIiwiZnJvbUVudiIsImZyb21Mb2NhbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsTUFBTUEsS0FBSyxHQUFHO0FBQ1pDLEVBQUFBLFFBQVEsRUFBRSxJQURFO0FBRVpDLEVBQUFBLE9BQU8sRUFBRSxLQUZHO0FBR1pDLEVBQUFBLFNBQVMsRUFBRTtBQUhDLENBQWQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCYXNlIGNvbmZpZ3VyYXRpb24gbW9kdWxlLlxuY29uc3QgYXRsYXMgPSB7XG4gIGZyb21CYXNlOiB0cnVlLFxuICBmcm9tRW52OiBmYWxzZSxcbiAgZnJvbUxvY2FsOiBmYWxzZSxcbn1cblxuZXhwb3J0IHtcbiAgYXRsYXMsXG59XG4iXX0=

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

exports.atlas = atlas;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvY2FsLm1qcyJdLCJuYW1lcyI6WyJhdGxhcyIsImZyb21Mb2NhbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsTUFBTUEsUUFBUTtBQUNaQyxhQUFXO0FBREMsQ0FBZCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVzZWZ1bCBmb3IgcHJvdmlkaW5nIGxvY2FsLCBwZXItbWFjaGluZSBjb25maWd1cmF0aW9uIHdoaWNoIGlzIG5ldmVyIGNvbW1pdGVkIHRvIHRoZSByZXBvLlxuY29uc3QgYXRsYXMgPSB7XG4gIGZyb21Mb2NhbDogdHJ1ZSxcbn1cblxuZXhwb3J0IHtcbiAgYXRsYXMsXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvY2FsLm1qcyJdLCJuYW1lcyI6WyJhdGxhcyIsImZyb21Mb2NhbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsTUFBTUEsS0FBSyxHQUFHO0FBQ1pDLEVBQUFBLFNBQVMsRUFBRTtBQURDLENBQWQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBVc2VmdWwgZm9yIHByb3ZpZGluZyBsb2NhbCwgcGVyLW1hY2hpbmUgY29uZmlndXJhdGlvbiB3aGljaCBpcyBuZXZlciBjb21taXRlZCB0byB0aGUgcmVwby5cbmNvbnN0IGF0bGFzID0ge1xuICBmcm9tTG9jYWw6IHRydWUsXG59XG5cbmV4cG9ydCB7XG4gIGF0bGFzLFxufVxuIl19

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

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1peGVkLWV4cG9ydHMubWpzIl0sIm5hbWVzIjpbInRlc3QiLCJuYW1lZCIsImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLE9BQU87QUFDbEJDLFNBQU87QUFEVyxDQUFiOztlQUlRO0FBQ2JDLFdBQVM7QUFESSxDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRlc3QgPSB7XG4gIG5hbWVkOiB0cnVlLFxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGRlZmF1bHQ6IHRydWUsXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1peGVkLWV4cG9ydHMubWpzIl0sIm5hbWVzIjpbInRlc3QiLCJuYW1lZCIsImRlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLElBQUksR0FBRztBQUNsQkMsRUFBQUEsS0FBSyxFQUFFO0FBRFcsQ0FBYjs7ZUFJUTtBQUNiQyxFQUFBQSxPQUFPLEVBQUU7QUFESSxDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRlc3QgPSB7XG4gIG5hbWVkOiB0cnVlLFxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGRlZmF1bHQ6IHRydWUsXG59XG4iXX0=

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

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlcmlhbGlzZXJzLm1qcyJdLCJuYW1lcyI6WyJzdGRTZXJpYWxpemVycyIsImVyciIsInBpbm8iLCJyZXEiLCJyZXMiLCJjdXN0b20iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUVBLE1BQU1BLGlCQUFpQjtBQUNyQkMsT0FBS0MsY0FBS0YsY0FBTCxDQUFvQkMsR0FESjtBQUVyQkUsT0FBS0QsY0FBS0YsY0FBTCxDQUFvQkcsR0FGSjtBQUdyQkMsT0FBS0YsY0FBS0YsY0FBTCxDQUFvQkk7QUFISixDQUF2QjtlQU1lLEVBQ2IsR0FBR0osY0FEVTtBQUViSyxVQUFRO0FBRkssQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwaW5vIGZyb20gJ3Bpbm8nXG5cbmNvbnN0IHN0ZFNlcmlhbGl6ZXJzID0ge1xuICBlcnI6IHBpbm8uc3RkU2VyaWFsaXplcnMuZXJyLFxuICByZXE6IHBpbm8uc3RkU2VyaWFsaXplcnMucmVxLFxuICByZXM6IHBpbm8uc3RkU2VyaWFsaXplcnMucmVzLFxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC4uLnN0ZFNlcmlhbGl6ZXJzLFxuICBjdXN0b206IHRydWUsXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlcmlhbGlzZXJzLm1qcyJdLCJuYW1lcyI6WyJzdGRTZXJpYWxpemVycyIsImVyciIsInBpbm8iLCJyZXEiLCJyZXMiLCJjdXN0b20iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUVBLE1BQU1BLGNBQWMsR0FBRztBQUNyQkMsRUFBQUEsR0FBRyxFQUFFQyxjQUFLRixjQUFMLENBQW9CQyxHQURKO0FBRXJCRSxFQUFBQSxHQUFHLEVBQUVELGNBQUtGLGNBQUwsQ0FBb0JHLEdBRko7QUFHckJDLEVBQUFBLEdBQUcsRUFBRUYsY0FBS0YsY0FBTCxDQUFvQkk7QUFISixDQUF2QjtlQU1lLEVBQ2IsR0FBR0osY0FEVTtBQUViSyxFQUFBQSxNQUFNLEVBQUU7QUFGSyxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBpbm8gZnJvbSAncGlubydcblxuY29uc3Qgc3RkU2VyaWFsaXplcnMgPSB7XG4gIGVycjogcGluby5zdGRTZXJpYWxpemVycy5lcnIsXG4gIHJlcTogcGluby5zdGRTZXJpYWxpemVycy5yZXEsXG4gIHJlczogcGluby5zdGRTZXJpYWxpemVycy5yZXMsXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLi4uc3RkU2VyaWFsaXplcnMsXG4gIGN1c3RvbTogdHJ1ZSxcbn1cbiJdfQ==

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

class DummyAction extends _action.default {
trigger(event, context) {
return this.dispatch(event, context);
trigger(event, ctx) {
return this.dispatch(event, ctx);
}

@@ -73,8 +73,8 @@

it('dispatches a custom event from a component to all observing hooks', async () => {
const context = {};
await atlas.actions.dummy.trigger('handleEvent', context);
const ctx = {};
await atlas.actions.dummy.trigger('handleEvent', ctx);
expect(DummyHook.prototype.handleEvent).to.have.callCount(1);
expect(DummyHook.prototype.handleEvent).to.have.been.calledWith(context);
expect(DummyHook.prototype.handleEvent).to.have.been.calledWith(ctx);
expect(AnotherHook.prototype.handleEvent).to.have.callCount(1);
expect(AnotherHook.prototype.handleEvent).to.have.been.calledWith(context);
expect(AnotherHook.prototype.handleEvent).to.have.been.calledWith(ctx);
});

@@ -117,2 +117,2 @@ it('does not dispatch the event to hooks not observing the component', async () => {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRpc3BhdGNoLnRlc3QubWpzIl0sIm5hbWVzIjpbIkR1bW15SG9vayIsIkhvb2siLCJBbm90aGVySG9vayIsIlVucmVsYXRlZEhvb2siLCJEdW1teUFjdGlvbiIsIkFjdGlvbiIsInRyaWdnZXIiLCJldmVudCIsImNvbnRleHQiLCJkaXNwYXRjaCIsIlVucmVsYXRlZEFjdGlvbiIsImRlc2NyaWJlIiwiYXRsYXMiLCJiZWZvcmUiLCJBdGxhcyIsInJvb3QiLCJfX2Rpcm5hbWUiLCJjb25maWciLCJsb2ciLCJsZXZlbCIsImhvb2siLCJhbGlhc2VzIiwiYWN0aW9uIiwic3RhcnQiLCJiZWZvcmVFYWNoIiwicHJvdG90eXBlIiwiaGFuZGxlRXZlbnQiLCJzaW5vbiIsInN0dWIiLCJpdCIsImFjdGlvbnMiLCJkdW1teSIsImV4cGVjdCIsInRvIiwiaGF2ZSIsImNhbGxDb3VudCIsImJlZW4iLCJjYWxsZWRXaXRoIiwiaGFuZGxlT3RoZXJFdmVudCIsIm5vdCIsImV2ZW50dWFsbHkiLCJiZSIsInJlamVjdGVkV2l0aCIsIkVycm9yIiwicmVzb2x2ZXMiLCJyZWplY3RzIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOzs7Ozs7QUFFQSxNQUFNQSxTQUFOLFNBQXdCQyxhQUF4QixDQUE2Qjs7Z0JBQXZCRCxTLGNBQ2MsYzs7QUFHcEIsTUFBTUUsV0FBTixTQUEwQkQsYUFBMUIsQ0FBK0I7O2dCQUF6QkMsVyxjQUNjLGM7O0FBR3BCLE1BQU1DLGFBQU4sU0FBNEJGLGFBQTVCLENBQWlDOztnQkFBM0JFLGEsY0FDYyxrQjs7QUFHcEIsTUFBTUMsV0FBTixTQUEwQkMsZUFBMUIsQ0FBaUM7QUFDL0JDLFVBQVFDLEtBQVIsRUFBZUMsT0FBZixFQUF3QjtBQUN0QixXQUFPLEtBQUtDLFFBQUwsQ0FBY0YsS0FBZCxFQUFxQkMsT0FBckIsQ0FBUDtBQUNEOztBQUg4Qjs7QUFNakMsTUFBTUUsZUFBTixTQUE4QkwsZUFBOUIsQ0FBcUM7O0FBRXJDTSxTQUFTLHFC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QUFRO0FBQ05MLGVBQU87QUFBRU0sZUFBSztBQUFFQyxtQkFBTztBQUFUO0FBQVA7QUFERDtBQUZRLEtBQVYsQ0FBUjtBQU1BUCxVQUFNUSxJQUFOLENBQVcsT0FBWCxFQUFvQnBCLFNBQXBCLEVBQStCO0FBQUVxQixlQUFTO0FBQUUsd0JBQWdCO0FBQWxCO0FBQVgsS0FBL0I7QUFDQVQsVUFBTVEsSUFBTixDQUFXLFNBQVgsRUFBc0JsQixXQUF0QixFQUFtQztBQUFFbUIsZUFBUztBQUFFLHdCQUFnQjtBQUFsQjtBQUFYLEtBQW5DO0FBQ0FULFVBQU1VLE1BQU4sQ0FBYSxPQUFiLEVBQXNCbEIsV0FBdEI7QUFFQSxVQUFNUSxNQUFNVyxLQUFOLEVBQU47QUFFQXZCLGNBQVV5QixTQUFWLENBQW9CQyxXQUFwQixHQUFrQ0MsTUFBTUMsSUFBTixHQUFhZ0IsUUFBYixFQUFsQztBQUNBMUMsZ0JBQVl1QixTQUFaLENBQXNCQyxXQUF0QixHQUFvQ0MsTUFBTUMsSUFBTixHQUFhaUIsT0FBYixDQUFxQixJQUFJRixLQUFKLENBQVUsTUFBVixDQUFyQixDQUFwQztBQUVBLFdBQU9YLE9BQU9wQixNQUFNa0IsT0FBTixDQUFjQyxLQUFkLENBQW9CekIsT0FBcEIsQ0FBNEIsYUFBNUIsQ0FBUCxFQUNKMkIsRUFESSxDQUNETSxHQURDLENBQ0dFLEVBREgsQ0FDTUQsVUFETixDQUNpQkUsWUFEakIsQ0FDOEJDLEtBRDlCLENBQVA7QUFFRCxHQWxCRDtBQW1CRCxDQXJFRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0bGFzIH0gZnJvbSAnLi4nXG5pbXBvcnQgSG9vayBmcm9tICdAYXRsYXMuanMvaG9vaydcbmltcG9ydCBBY3Rpb24gZnJvbSAnQGF0bGFzLmpzL2FjdGlvbidcblxuY2xhc3MgRHVtbXlIb29rIGV4dGVuZHMgSG9vayB7XG4gIHN0YXRpYyBvYnNlcnZlcyA9ICdhY3Rpb246ZHVtbXknXG59XG5cbmNsYXNzIEFub3RoZXJIb29rIGV4dGVuZHMgSG9vayB7XG4gIHN0YXRpYyBvYnNlcnZlcyA9ICdhY3Rpb246ZHVtbXknXG59XG5cbmNsYXNzIFVucmVsYXRlZEhvb2sgZXh0ZW5kcyBIb29rIHtcbiAgc3RhdGljIG9ic2VydmVzID0gJ2FjdGlvbjp1bnJlbGF0ZWQnXG59XG5cbmNsYXNzIER1bW15QWN0aW9uIGV4dGVuZHMgQWN0aW9uIHtcbiAgdHJpZ2dlcihldmVudCwgY29udGV4dCkge1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKGV2ZW50LCBjb250ZXh0KVxuICB9XG59XG5cbmNsYXNzIFVucmVsYXRlZEFjdGlvbiBleHRlbmRzIEFjdGlvbiB7fVxuXG5kZXNjcmliZSgnSG9vazogY3VzdG9tIGV2ZW50cycsICgpID0+IHtcbiAgbGV0IGF0bGFzXG5cbiAgYmVmb3JlKCgpID0+IHtcbiAgICBhdGxhcyA9IG5ldyBBdGxhcyh7XG4gICAgICByb290OiBfX2Rpcm5hbWUsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgYXRsYXM6IHsgbG9nOiB7IGxldmVsOiAnd2FybicgfSB9LFxuICAgICAgfSxcbiAgICB9KVxuICAgIGF0bGFzLmhvb2soJ2R1bW15JywgRHVtbXlIb29rLCB7IGFsaWFzZXM6IHsgJ2FjdGlvbjpkdW1teSc6ICdkdW1teScgfSB9KVxuICAgIGF0bGFzLmhvb2soJ2Fub3RoZXInLCBBbm90aGVySG9vaywgeyBhbGlhc2VzOiB7ICdhY3Rpb246ZHVtbXknOiAnZHVtbXknIH0gfSlcbiAgICBhdGxhcy5ob29rKCd1bnJlbGF0ZWQnLCBVbnJlbGF0ZWRIb29rLCB7IGFsaWFzZXM6IHsgJ2FjdGlvbjp1bnJlbGF0ZWQnOiAndW5yZWxhdGVkJyB9IH0pXG4gICAgYXRsYXMuYWN0aW9uKCdkdW1teScsIER1bW15QWN0aW9uKVxuICAgIGF0bGFzLmFjdGlvbigndW5yZWxhdGVkJywgVW5yZWxhdGVkQWN0aW9uKVxuXG4gICAgcmV0dXJuIGF0bGFzLnN0YXJ0KClcbiAgfSlcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBEdW1teUhvb2sucHJvdG90eXBlLmhhbmRsZUV2ZW50ID0gc2lub24uc3R1YigpXG4gICAgQW5vdGhlckhvb2sucHJvdG90eXBlLmhhbmRsZUV2ZW50ID0gc2lub24uc3R1YigpXG4gICAgVW5yZWxhdGVkSG9vay5wcm90b3R5cGUuaGFuZGxlRXZlbnQgPSBzaW5vbi5zdHViKClcbiAgfSlcblxuXG4gIGl0KCdkaXNwYXRjaGVzIGEgY3VzdG9tIGV2ZW50IGZyb20gYSBjb21wb25lbnQgdG8gYWxsIG9ic2VydmluZyBob29rcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0ge31cblxuICAgIGF3YWl0IGF0bGFzLmFjdGlvbnMuZHVtbXkudHJpZ2dlcignaGFuZGxlRXZlbnQnLCBjb250ZXh0KVxuXG4gICAgZXhwZWN0KER1bW15SG9vay5wcm90b3R5cGUuaGFuZGxlRXZlbnQpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgZXhwZWN0KER1bW15SG9vay5wcm90b3R5cGUuaGFuZGxlRXZlbnQpLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKGNvbnRleHQpXG4gICAgZXhwZWN0KEFub3RoZXJIb29rLnByb3RvdHlwZS5oYW5kbGVFdmVudCkudG8uaGF2ZS5jYWxsQ291bnQoMSlcbiAgICBleHBlY3QoQW5vdGhlckhvb2sucHJvdG90eXBlLmhhbmRsZUV2ZW50KS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChjb250ZXh0KVxuICB9KVxuXG4gIGl0KCdkb2VzIG5vdCBkaXNwYXRjaCB0aGUgZXZlbnQgdG8gaG9va3Mgbm90IG9ic2VydmluZyB0aGUgY29tcG9uZW50JywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGF0bGFzLmFjdGlvbnMuZHVtbXkudHJpZ2dlcignaGFuZGxlRXZlbnQnKVxuXG4gICAgZXhwZWN0KFVucmVsYXRlZEhvb2sucHJvdG90eXBlLmhhbmRsZUV2ZW50KS50by5oYXZlLmNhbGxDb3VudCgwKVxuICB9KVxuXG4gIGl0KCdkb2VzIG5vdCBjcmFzaCBpZiBzb21lIGhvb2sgZG9lcyBub3QgaGFuZGxlIHRoZSBkaXNwYXRjaGVkIGV2ZW50JywgKCkgPT4ge1xuICAgIER1bW15SG9vay5wcm90b3R5cGUuaGFuZGxlT3RoZXJFdmVudCA9IHNpbm9uLnN0dWIoKVxuXG4gICAgcmV0dXJuIGV4cGVjdChhdGxhcy5hY3Rpb25zLmR1bW15LnRyaWdnZXIoJ2hhbmRsZU90aGVyRXZlbnQnKSlcbiAgICAgIC50by5ub3QuZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3N0aWxsIHJlc29sdmVzIGV2ZW4gaWYgb25lIG9mIHRoZSBob29rcyB0aHJvd3MnLCBhc3luYyAoKSA9PiB7XG4gICAgYXRsYXMgPSBuZXcgQXRsYXMoe1xuICAgICAgcm9vdDogX19kaXJuYW1lLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGF0bGFzOiB7IGxvZzogeyBsZXZlbDogJ2ZhdGFsJyB9IH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgYXRsYXMuaG9vaygnZHVtbXknLCBEdW1teUhvb2ssIHsgYWxpYXNlczogeyAnYWN0aW9uOmR1bW15JzogJ2R1bW15JyB9IH0pXG4gICAgYXRsYXMuaG9vaygnYW5vdGhlcicsIEFub3RoZXJIb29rLCB7IGFsaWFzZXM6IHsgJ2FjdGlvbjpkdW1teSc6ICdkdW1teScgfSB9KVxuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBEdW1teUFjdGlvbilcblxuICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcblxuICAgIER1bW15SG9vay5wcm90b3R5cGUuaGFuZGxlRXZlbnQgPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMoKVxuICAgIEFub3RoZXJIb29rLnByb3RvdHlwZS5oYW5kbGVFdmVudCA9IHNpbm9uLnN0dWIoKS5yZWplY3RzKG5ldyBFcnJvcigndS1vaCcpKVxuXG4gICAgcmV0dXJuIGV4cGVjdChhdGxhcy5hY3Rpb25zLmR1bW15LnRyaWdnZXIoJ2hhbmRsZUV2ZW50JykpXG4gICAgICAudG8ubm90LmJlLmV2ZW50dWFsbHkucmVqZWN0ZWRXaXRoKEVycm9yKVxuICB9KVxufSlcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRpc3BhdGNoLnRlc3QubWpzIl0sIm5hbWVzIjpbIkR1bW15SG9vayIsIkhvb2siLCJBbm90aGVySG9vayIsIlVucmVsYXRlZEhvb2siLCJEdW1teUFjdGlvbiIsIkFjdGlvbiIsInRyaWdnZXIiLCJldmVudCIsImN0eCIsImRpc3BhdGNoIiwiVW5yZWxhdGVkQWN0aW9uIiwiZGVzY3JpYmUiLCJhdGxhcyIsImJlZm9yZSIsIkF0bGFzIiwicm9vdCIsIl9fZGlybmFtZSIsImNvbmZpZyIsImxvZyIsImxldmVsIiwiaG9vayIsImFsaWFzZXMiLCJhY3Rpb24iLCJzdGFydCIsImJlZm9yZUVhY2giLCJwcm90b3R5cGUiLCJoYW5kbGVFdmVudCIsInNpbm9uIiwic3R1YiIsIml0IiwiYWN0aW9ucyIsImR1bW15IiwiZXhwZWN0IiwidG8iLCJoYXZlIiwiY2FsbENvdW50IiwiYmVlbiIsImNhbGxlZFdpdGgiLCJoYW5kbGVPdGhlckV2ZW50Iiwibm90IiwiZXZlbnR1YWxseSIsImJlIiwicmVqZWN0ZWRXaXRoIiwiRXJyb3IiLCJyZXNvbHZlcyIsInJlamVjdHMiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLE1BQU1BLFNBQU4sU0FBd0JDLGFBQXhCLENBQTZCOztnQkFBdkJELFMsY0FDYyxjOztBQUdwQixNQUFNRSxXQUFOLFNBQTBCRCxhQUExQixDQUErQjs7Z0JBQXpCQyxXLGNBQ2MsYzs7QUFHcEIsTUFBTUMsYUFBTixTQUE0QkYsYUFBNUIsQ0FBaUM7O2dCQUEzQkUsYSxjQUNjLGtCOztBQUdwQixNQUFNQyxXQUFOLFNBQTBCQyxlQUExQixDQUFpQztBQUMvQkMsRUFBQUEsT0FBTyxDQUFDQyxLQUFELEVBQVFDLEdBQVIsRUFBYTtBQUNsQixXQUFPLEtBQUtDLFFBQUwsQ0FBY0YsS0FBZCxFQUFxQkMsR0FBckIsQ0FBUDtBQUNEOztBQUg4Qjs7QUFNakMsTUFBTUUsZUFBTixTQUE4QkwsZUFBOUIsQ0FBcUM7O0FBRXJDTSxRQUFRLENBQUMscUJBQUQsRUFBd0IsTUFBTTtBQUNwQyxNQUFJQyxLQUFKO0FBRUFDLEVBQUFBLE1BQU0sQ0FBQyxNQUFNO0FBQ1hELElBQUFBLEtBQUssR0FBRyxJQUFJRSxPQUFKLENBQVU7QUFDaEJDLE1BQUFBLElBQUksRUFBRUMsU0FEVTtBQUVoQkMsTUFBQUEsTUFBTSxFQUFFO0FBQ05MLFFBQUFBLEtBQUssRUFBRTtBQUFFTSxVQUFBQSxHQUFHLEVBQUU7QUFBRUMsWUFBQUEsS0FBSyxFQUFFO0FBQVQ7QUFBUDtBQUREO0FBRlEsS0FBVixDQUFSO0FBTUFQLElBQUFBLEtBQUssQ0FBQ1EsSUFBTixDQUFXLE9BQVgsRUFBb0JwQixTQUFwQixFQUErQjtBQUFFcUIsTUFBQUEsT0FBTyxFQUFFO0FBQUUsd0JBQWdCO0FBQWxCO0FBQVgsS0FBL0I7QUFDQVQsSUFBQUEsS0FBSyxDQUFDUSxJQUFOLENBQVcsU0FBWCxFQUFzQmxCLFdBQXRCLEVBQW1DO0FBQUVtQixNQUFBQSxPQUFPLEVBQUU7QUFBRSx3QkFBZ0I7QUFBbEI7QUFBWCxLQUFuQztBQUNBVCxJQUFBQSxLQUFLLENBQUNRLElBQU4sQ0FBVyxXQUFYLEVBQXdCakIsYUFBeEIsRUFBdUM7QUFBRWtCLE1BQUFBLE9BQU8sRUFBRTtBQUFFLDRCQUFvQjtBQUF0QjtBQUFYLEtBQXZDO0FBQ0FULElBQUFBLEtBQUssQ0FBQ1UsTUFBTixDQUFhLE9BQWIsRUFBc0JsQixXQUF0QjtBQUNBUSxJQUFBQSxLQUFLLENBQUNVLE1BQU4sQ0FBYSxXQUFiLEVBQTBCWixlQUExQjtBQUVBLFdBQU9FLEtBQUssQ0FBQ1csS0FBTixFQUFQO0FBQ0QsR0FkSyxDQUFOO0FBZ0JBQyxFQUFBQSxVQUFVLENBQUMsTUFBTTtBQUNmeEIsSUFBQUEsU0FBUyxDQUFDeUIsU0FBVixDQUFvQkMsV0FBcEIsR0FBa0NDLEtBQUssQ0FBQ0MsSUFBTixFQUFsQztBQUNBMUIsSUFBQUEsV0FBVyxDQUFDdUIsU0FBWixDQUFzQkMsV0FBdEIsR0FBb0NDLEtBQUssQ0FBQ0MsSUFBTixFQUFwQztBQUNBekIsSUFBQUEsYUFBYSxDQUFDc0IsU0FBZCxDQUF3QkMsV0FBeEIsR0FBc0NDLEtBQUssQ0FBQ0MsSUFBTixFQUF0QztBQUNELEdBSlMsQ0FBVjtBQU9BQyxFQUFBQSxFQUFFLENBQUMsbUVBQUQsRUFBc0UsWUFBWTtBQUNsRixVQUFNckIsR0FBRyxHQUFHLEVBQVo7QUFFQSxVQUFNSSxLQUFLLENBQUNrQixPQUFOLENBQWNDLEtBQWQsQ0FBb0J6QixPQUFwQixDQUE0QixhQUE1QixFQUEyQ0UsR0FBM0MsQ0FBTjtBQUVBd0IsSUFBQUEsTUFBTSxDQUFDaEMsU0FBUyxDQUFDeUIsU0FBVixDQUFvQkMsV0FBckIsQ0FBTixDQUF3Q08sRUFBeEMsQ0FBMkNDLElBQTNDLENBQWdEQyxTQUFoRCxDQUEwRCxDQUExRDtBQUNBSCxJQUFBQSxNQUFNLENBQUNoQyxTQUFTLENBQUN5QixTQUFWLENBQW9CQyxXQUFyQixDQUFOLENBQXdDTyxFQUF4QyxDQUEyQ0MsSUFBM0MsQ0FBZ0RFLElBQWhELENBQXFEQyxVQUFyRCxDQUFnRTdCLEdBQWhFO0FBQ0F3QixJQUFBQSxNQUFNLENBQUM5QixXQUFXLENBQUN1QixTQUFaLENBQXNCQyxXQUF2QixDQUFOLENBQTBDTyxFQUExQyxDQUE2Q0MsSUFBN0MsQ0FBa0RDLFNBQWxELENBQTRELENBQTVEO0FBQ0FILElBQUFBLE1BQU0sQ0FBQzlCLFdBQVcsQ0FBQ3VCLFNBQVosQ0FBc0JDLFdBQXZCLENBQU4sQ0FBMENPLEVBQTFDLENBQTZDQyxJQUE3QyxDQUFrREUsSUFBbEQsQ0FBdURDLFVBQXZELENBQWtFN0IsR0FBbEU7QUFDRCxHQVRDLENBQUY7QUFXQXFCLEVBQUFBLEVBQUUsQ0FBQyxrRUFBRCxFQUFxRSxZQUFZO0FBQ2pGLFVBQU1qQixLQUFLLENBQUNrQixPQUFOLENBQWNDLEtBQWQsQ0FBb0J6QixPQUFwQixDQUE0QixhQUE1QixDQUFOO0FBRUEwQixJQUFBQSxNQUFNLENBQUM3QixhQUFhLENBQUNzQixTQUFkLENBQXdCQyxXQUF6QixDQUFOLENBQTRDTyxFQUE1QyxDQUErQ0MsSUFBL0MsQ0FBb0RDLFNBQXBELENBQThELENBQTlEO0FBQ0QsR0FKQyxDQUFGO0FBTUFOLEVBQUFBLEVBQUUsQ0FBQyxrRUFBRCxFQUFxRSxNQUFNO0FBQzNFN0IsSUFBQUEsU0FBUyxDQUFDeUIsU0FBVixDQUFvQmEsZ0JBQXBCLEdBQXVDWCxLQUFLLENBQUNDLElBQU4sRUFBdkM7QUFFQSxXQUFPSSxNQUFNLENBQUNwQixLQUFLLENBQUNrQixPQUFOLENBQWNDLEtBQWQsQ0FBb0J6QixPQUFwQixDQUE0QixrQkFBNUIsQ0FBRCxDQUFOLENBQ0oyQixFQURJLENBQ0RNLEdBREMsQ0FDR0MsVUFESCxDQUNjQyxFQURkLENBQ2lCQyxZQURqQixDQUM4QkMsS0FEOUIsQ0FBUDtBQUVELEdBTEMsQ0FBRjtBQU9BZCxFQUFBQSxFQUFFLENBQUMsZ0RBQUQsRUFBbUQsWUFBWTtBQUMvRGpCLElBQUFBLEtBQUssR0FBRyxJQUFJRSxPQUFKLENBQVU7QUFDaEJDLE1BQUFBLElBQUksRUFBRUMsU0FEVTtBQUVoQkMsTUFBQUEsTUFBTSxFQUFFO0FBQ05MLFFBQUFBLEtBQUssRUFBRTtBQUFFTSxVQUFBQSxHQUFHLEVBQUU7QUFBRUMsWUFBQUEsS0FBSyxFQUFFO0FBQVQ7QUFBUDtBQUREO0FBRlEsS0FBVixDQUFSO0FBTUFQLElBQUFBLEtBQUssQ0FBQ1EsSUFBTixDQUFXLE9BQVgsRUFBb0JwQixTQUFwQixFQUErQjtBQUFFcUIsTUFBQUEsT0FBTyxFQUFFO0FBQUUsd0JBQWdCO0FBQWxCO0FBQVgsS0FBL0I7QUFDQVQsSUFBQUEsS0FBSyxDQUFDUSxJQUFOLENBQVcsU0FBWCxFQUFzQmxCLFdBQXRCLEVBQW1DO0FBQUVtQixNQUFBQSxPQUFPLEVBQUU7QUFBRSx3QkFBZ0I7QUFBbEI7QUFBWCxLQUFuQztBQUNBVCxJQUFBQSxLQUFLLENBQUNVLE1BQU4sQ0FBYSxPQUFiLEVBQXNCbEIsV0FBdEI7QUFFQSxVQUFNUSxLQUFLLENBQUNXLEtBQU4sRUFBTjtBQUVBdkIsSUFBQUEsU0FBUyxDQUFDeUIsU0FBVixDQUFvQkMsV0FBcEIsR0FBa0NDLEtBQUssQ0FBQ0MsSUFBTixHQUFhZ0IsUUFBYixFQUFsQztBQUNBMUMsSUFBQUEsV0FBVyxDQUFDdUIsU0FBWixDQUFzQkMsV0FBdEIsR0FBb0NDLEtBQUssQ0FBQ0MsSUFBTixHQUFhaUIsT0FBYixDQUFxQixJQUFJRixLQUFKLENBQVUsTUFBVixDQUFyQixDQUFwQztBQUVBLFdBQU9YLE1BQU0sQ0FBQ3BCLEtBQUssQ0FBQ2tCLE9BQU4sQ0FBY0MsS0FBZCxDQUFvQnpCLE9BQXBCLENBQTRCLGFBQTVCLENBQUQsQ0FBTixDQUNKMkIsRUFESSxDQUNETSxHQURDLENBQ0dFLEVBREgsQ0FDTUQsVUFETixDQUNpQkUsWUFEakIsQ0FDOEJDLEtBRDlCLENBQVA7QUFFRCxHQWxCQyxDQUFGO0FBbUJELENBckVPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uJ1xuaW1wb3J0IEhvb2sgZnJvbSAnQGF0bGFzLmpzL2hvb2snXG5pbXBvcnQgQWN0aW9uIGZyb20gJ0BhdGxhcy5qcy9hY3Rpb24nXG5cbmNsYXNzIER1bW15SG9vayBleHRlbmRzIEhvb2sge1xuICBzdGF0aWMgb2JzZXJ2ZXMgPSAnYWN0aW9uOmR1bW15J1xufVxuXG5jbGFzcyBBbm90aGVySG9vayBleHRlbmRzIEhvb2sge1xuICBzdGF0aWMgb2JzZXJ2ZXMgPSAnYWN0aW9uOmR1bW15J1xufVxuXG5jbGFzcyBVbnJlbGF0ZWRIb29rIGV4dGVuZHMgSG9vayB7XG4gIHN0YXRpYyBvYnNlcnZlcyA9ICdhY3Rpb246dW5yZWxhdGVkJ1xufVxuXG5jbGFzcyBEdW1teUFjdGlvbiBleHRlbmRzIEFjdGlvbiB7XG4gIHRyaWdnZXIoZXZlbnQsIGN0eCkge1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKGV2ZW50LCBjdHgpXG4gIH1cbn1cblxuY2xhc3MgVW5yZWxhdGVkQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHt9XG5cbmRlc2NyaWJlKCdIb29rOiBjdXN0b20gZXZlbnRzJywgKCkgPT4ge1xuICBsZXQgYXRsYXNcblxuICBiZWZvcmUoKCkgPT4ge1xuICAgIGF0bGFzID0gbmV3IEF0bGFzKHtcbiAgICAgIHJvb3Q6IF9fZGlybmFtZSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBhdGxhczogeyBsb2c6IHsgbGV2ZWw6ICd3YXJuJyB9IH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgYXRsYXMuaG9vaygnZHVtbXknLCBEdW1teUhvb2ssIHsgYWxpYXNlczogeyAnYWN0aW9uOmR1bW15JzogJ2R1bW15JyB9IH0pXG4gICAgYXRsYXMuaG9vaygnYW5vdGhlcicsIEFub3RoZXJIb29rLCB7IGFsaWFzZXM6IHsgJ2FjdGlvbjpkdW1teSc6ICdkdW1teScgfSB9KVxuICAgIGF0bGFzLmhvb2soJ3VucmVsYXRlZCcsIFVucmVsYXRlZEhvb2ssIHsgYWxpYXNlczogeyAnYWN0aW9uOnVucmVsYXRlZCc6ICd1bnJlbGF0ZWQnIH0gfSlcbiAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgRHVtbXlBY3Rpb24pXG4gICAgYXRsYXMuYWN0aW9uKCd1bnJlbGF0ZWQnLCBVbnJlbGF0ZWRBY3Rpb24pXG5cbiAgICByZXR1cm4gYXRsYXMuc3RhcnQoKVxuICB9KVxuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIER1bW15SG9vay5wcm90b3R5cGUuaGFuZGxlRXZlbnQgPSBzaW5vbi5zdHViKClcbiAgICBBbm90aGVySG9vay5wcm90b3R5cGUuaGFuZGxlRXZlbnQgPSBzaW5vbi5zdHViKClcbiAgICBVbnJlbGF0ZWRIb29rLnByb3RvdHlwZS5oYW5kbGVFdmVudCA9IHNpbm9uLnN0dWIoKVxuICB9KVxuXG5cbiAgaXQoJ2Rpc3BhdGNoZXMgYSBjdXN0b20gZXZlbnQgZnJvbSBhIGNvbXBvbmVudCB0byBhbGwgb2JzZXJ2aW5nIGhvb2tzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGN0eCA9IHt9XG5cbiAgICBhd2FpdCBhdGxhcy5hY3Rpb25zLmR1bW15LnRyaWdnZXIoJ2hhbmRsZUV2ZW50JywgY3R4KVxuXG4gICAgZXhwZWN0KER1bW15SG9vay5wcm90b3R5cGUuaGFuZGxlRXZlbnQpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgZXhwZWN0KER1bW15SG9vay5wcm90b3R5cGUuaGFuZGxlRXZlbnQpLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKGN0eClcbiAgICBleHBlY3QoQW5vdGhlckhvb2sucHJvdG90eXBlLmhhbmRsZUV2ZW50KS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgIGV4cGVjdChBbm90aGVySG9vay5wcm90b3R5cGUuaGFuZGxlRXZlbnQpLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKGN0eClcbiAgfSlcblxuICBpdCgnZG9lcyBub3QgZGlzcGF0Y2ggdGhlIGV2ZW50IHRvIGhvb2tzIG5vdCBvYnNlcnZpbmcgdGhlIGNvbXBvbmVudCcsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBhdGxhcy5hY3Rpb25zLmR1bW15LnRyaWdnZXIoJ2hhbmRsZUV2ZW50JylcblxuICAgIGV4cGVjdChVbnJlbGF0ZWRIb29rLnByb3RvdHlwZS5oYW5kbGVFdmVudCkudG8uaGF2ZS5jYWxsQ291bnQoMClcbiAgfSlcblxuICBpdCgnZG9lcyBub3QgY3Jhc2ggaWYgc29tZSBob29rIGRvZXMgbm90IGhhbmRsZSB0aGUgZGlzcGF0Y2hlZCBldmVudCcsICgpID0+IHtcbiAgICBEdW1teUhvb2sucHJvdG90eXBlLmhhbmRsZU90aGVyRXZlbnQgPSBzaW5vbi5zdHViKClcblxuICAgIHJldHVybiBleHBlY3QoYXRsYXMuYWN0aW9ucy5kdW1teS50cmlnZ2VyKCdoYW5kbGVPdGhlckV2ZW50JykpXG4gICAgICAudG8ubm90LmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKEVycm9yKVxuICB9KVxuXG4gIGl0KCdzdGlsbCByZXNvbHZlcyBldmVuIGlmIG9uZSBvZiB0aGUgaG9va3MgdGhyb3dzJywgYXN5bmMgKCkgPT4ge1xuICAgIGF0bGFzID0gbmV3IEF0bGFzKHtcbiAgICAgIHJvb3Q6IF9fZGlybmFtZSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBhdGxhczogeyBsb2c6IHsgbGV2ZWw6ICdmYXRhbCcgfSB9LFxuICAgICAgfSxcbiAgICB9KVxuICAgIGF0bGFzLmhvb2soJ2R1bW15JywgRHVtbXlIb29rLCB7IGFsaWFzZXM6IHsgJ2FjdGlvbjpkdW1teSc6ICdkdW1teScgfSB9KVxuICAgIGF0bGFzLmhvb2soJ2Fub3RoZXInLCBBbm90aGVySG9vaywgeyBhbGlhc2VzOiB7ICdhY3Rpb246ZHVtbXknOiAnZHVtbXknIH0gfSlcbiAgICBhdGxhcy5hY3Rpb24oJ2R1bW15JywgRHVtbXlBY3Rpb24pXG5cbiAgICBhd2FpdCBhdGxhcy5zdGFydCgpXG5cbiAgICBEdW1teUhvb2sucHJvdG90eXBlLmhhbmRsZUV2ZW50ID0gc2lub24uc3R1YigpLnJlc29sdmVzKClcbiAgICBBbm90aGVySG9vay5wcm90b3R5cGUuaGFuZGxlRXZlbnQgPSBzaW5vbi5zdHViKCkucmVqZWN0cyhuZXcgRXJyb3IoJ3Utb2gnKSlcblxuICAgIHJldHVybiBleHBlY3QoYXRsYXMuYWN0aW9ucy5kdW1teS50cmlnZ2VyKCdoYW5kbGVFdmVudCcpKVxuICAgICAgLnRvLm5vdC5iZS5ldmVudHVhbGx5LnJlamVjdGVkV2l0aChFcnJvcilcbiAgfSlcbn0pXG4iXX0=

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

expect(args.log).to.be.an('object');
expect(args.log.chindings).to.match(/"hook":"dummy"/);
expect(args.log.chindings).to.match(/"hook":"dummy"/u);
});

@@ -94,3 +94,3 @@ it('provides config object on hook constructor argument', () => {

atlas.hook('dummy', hook);
}).to.throw(_errors.FrameworkError, /Missing aliases for component dummy/);
}).to.throw(_errors.FrameworkError, /Missing aliases for component dummy/u);
});

@@ -106,3 +106,3 @@ it('throws when extraneous aliases are specified', () => {

});
}).to.throw(_errors.FrameworkError, /Unneeded aliases for component dummy/);
}).to.throw(_errors.FrameworkError, /Unneeded aliases for component dummy/u);
});

@@ -142,3 +142,3 @@ it('works when all requirements are specified', () => {

atlas.hook('dummy', Dummy);
}).to.throw(_errors.FrameworkError, /Missing aliases for component dummy/);
}).to.throw(_errors.FrameworkError, /Missing aliases for component dummy/u);
});

@@ -185,2 +185,2 @@ it('throws when user config fails component config schema', () => {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhvb2sudGVzdC5tanMiXSwibmFtZXMiOlsiRHVtbXlIb29rIiwiSG9vayIsImRlc2NyaWJlIiwiYXRsYXMiLCJvcHRpb25zIiwiYmVmb3JlRWFjaCIsInJvb3QiLCJfX2Rpcm5hbWUiLCJjb25maWciLCJob29rcyIsImR1bW15IiwidGVzdCIsIkF0bGFzIiwiaXQiLCJleHBlY3QiLCJob29rIiwidG8iLCJlcXVhbCIsInRocm93IiwiRnJhbWV3b3JrRXJyb3IiLCJzaW5vbiIsInNweSIsImFyZ3MiLCJnZXRDYWxsIiwiaGF2ZSIsInByb3BlcnR5IiwibG9nIiwiYmUiLCJhbiIsImNoaW5kaW5ncyIsIm1hdGNoIiwiY29tcG9uZW50IiwiYSIsImRlZmF1bHRzIiwiZGVmYXVsdCIsInJlcXVpcmVzIiwiYWxpYXNlcyIsIm5vdCIsIkR1bW15IiwibG9sIiwidHlwZSIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwicHJvcGVydGllcyIsIlZhbGlkYXRpb25FcnJvciJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7O0FBS0EsTUFBTUEsU0FBTixTQUF3QkMsYUFBeEIsQ0FBNkI7O2dCQUF2QkQsUyxjQUNjLE87O0FBR3BCRSxTQUFTLGVBQVQsRUFBMEIsTUFBTTtBQUM5QixNQUFJQyxLQUFKO0FBQ0EsTUFBSUMsT0FBSjtBQUVBQyxhQUFXLE1BQU07QUFDZkQsY0FBVTtBQUNSRSxZQUFNQyxTQURFO0FBRVJDLGNBQVE7QUFDTkMsZUFBTztBQUNMQyxpQkFBTztBQUNMQyxrQkFBTTtBQUREO0FBREY7QUFERDtBQUZBLEtBQVY7QUFVQVIsWUFBUSxJQUFJUyxPQUFKLENBQVVSLE9BQVYsQ0FBUjtBQUNELEdBWkQ7QUFjQVMsS0FBRyxjQUFILEVBQW1CLE1BQU07QUFDdkJDLFdBQU9YLE1BQU1ZLElBQU4sQ0FBVyxPQUFYLEVBQW9CZixTQUFwQixDQUFQLEVBQXVDZ0IsRUFBdkMsQ0FBMENDLEtBQTFDLENBQWdEZCxLQUFoRDtBQUNELEdBRkQ7QUFJ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XG5pbXBvcnQgSG9vayBmcm9tICdAYXRsYXMuanMvaG9vaydcbmltcG9ydCB7XG4gIEZyYW1ld29ya0Vycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gJ0BhdGxhcy5qcy9lcnJvcnMnXG5cbmNsYXNzIER1bW15SG9vayBleHRlbmRzIEhvb2sge1xuICBzdGF0aWMgb2JzZXJ2ZXMgPSAnYXRsYXMnXG59XG5cbmRlc2NyaWJlKCdBdGxhczo6aG9vaygpJywgKCkgPT4ge1xuICBsZXQgYXRsYXNcbiAgbGV0IG9wdGlvbnNcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvcHRpb25zID0ge1xuICAgICAgcm9vdDogX19kaXJuYW1lLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGhvb2tzOiB7XG4gICAgICAgICAgZHVtbXk6IHtcbiAgICAgICAgICAgIHRlc3Q6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGF0bGFzID0gbmV3IEF0bGFzKG9wdGlvbnMpXG4gIH0pXG5cbiAgaXQoJ3JldHVybnMgdGhpcycsICgpID0+IHtcbiAgICBleHBlY3QoYXRsYXMuaG9vaygnZHVtbXknLCBEdW1teUhvb2spKS50by5lcXVhbChhdGxhcylcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gdGhlIGFsaWFzIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCBieSBhbm90aGVyIGhvb2snLCAoKSA9PiB7XG4gICAgYXRsYXMuaG9vaygnZHVtbXknLCBEdW1teUhvb2spXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLmhvb2soJ2R1bW15JywgRHVtbXlIb29rKSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIHRoZSBob29rIGlzIG5vdCBhIGNsYXNzL2Z1bmN0aW9uJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBhdGxhcy5ob29rKCdkdW1teScsIHt9KSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIHRoZSBhdGxhcyBvbiBob29rIGNvbnN0cnVjdG9yIGFyZ3VtZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IGhvb2sgPSBzaW5vbi5zcHkoKVxuICAgIGhvb2suY29uZmlnID0ge31cbiAgICBhdGxhcy5ob29rKCdkdW1teScsIGhvb2spXG4gICAgY29uc3QgYXJncyA9IGhvb2suZ2V0Q2FsbCgwKS5hcmdzWzBdXG5cbiAgICBleHBlY3QoYXJncykudG8uaGF2ZS5wcm9wZXJ0eSgnYXRsYXMnKVxuICAgIGV4cGVjdChhcmdzLmF0bGFzKS50by5lcXVhbChhdGxhcylcbiAgfSlcblxuICBpdCgncHJvdmlkZXMgYSBsb2dnZXIgaW5zdGFuY2Ugb24gaG9vayBjb25zdHJ1Y3RvciBhcmd1bWVudCcsICgpID0+IHtcbiAgICBjb25zdCBob29rID0gc2lub24uc3B5KClcbiAgICBob29rLmNvbmZpZyA9IHt9XG4gICAgYXRsYXMuaG9vaygnZHVtbXknLCBob29rKVxuICAgIGNvbnN0IGFyZ3MgPSBob29rLmdldENhbGwoMCkuYXJnc1swXVxuXG4gICAgZXhwZWN0KGFyZ3MpLnRvLmhhdmUucHJvcGVydHkoJ2xvZycpXG4gICAgZXhwZWN0KGFyZ3MubG9nKS50by5iZS5hbignb2JqZWN0JylcbiAgICBleHBlY3QoYXJncy5sb2cuY2hpbmRpbmdzKS50by5tYXRjaCgvXCJob29rXCI6XCJkdW1teVwiLylcbiAgfSlcblxuICBpdCgncHJvdmlkZXMgY29uZmlnIG9iamVjdCBvbiBob29rIGNvbnN0cnVjdG9yIGFyZ3VtZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IGhvb2sgPSBzaW5vbi5zcHkoKVxuICAgIGhvb2suY29uZmlnID0ge31cbiAgICBhdGxhcy5ob29rKCdkdW1teScsIGhvb2spXG4gICAgY29uc3QgYXJncyA9IGhvb2suZ2V0Q2FsbCgwKS5hcmdzWzBdXG5cbiAgICBleHBlY3QoYXJncykudG8uaGF2ZS5wcm9wZXJ0eSgnY29uZmlnJylcbiAgICBleHBlY3QoYXJncy5jb25maWcpLnRvLmJlLmFuKCdvYmplY3QnKVxuICAgIGV4cGVjdChhcmdzLmNvbmZpZykudG8uZXF1YWwob3B0aW9ucy5jb25maWcuaG9va3MuZHVtbXkpXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIHRoZSByZXNvbHZlIGZ1bmN0aW9uIG9uIGhvb2sgY29uc3RydWN0b3IgYXJndW1lbnQgYXMgYGNvbXBvbmVudGAnLCAoKSA9PiB7XG4gICAgY29uc3QgaG9vayA9IHNpbm9uLnNweSgpXG4gICAgaG9vay5jb25maWcgPSB7fVxuICAgIGF0bGFzLmhvb2soJ2R1bW15JywgaG9vaylcbiAgICBjb25zdCBhcmdzID0gaG9vay5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzKS50by5oYXZlLnByb3BlcnR5KCdjb21wb25lbnQnKVxuICAgIGV4cGVjdChhcmdzLmNvbXBvbmVudCkudG8uYmUuYSgnZnVuY3Rpb24nKVxuICB9KVxuXG4gIGl0KCdhcHBsaWVzIGRlZmF1bHRzIGRlZmluZWQgb24gaG9vayBvbiB0b3Agb2YgdXNlci1wcm92aWRlZCBjb25maWcnLCAoKSA9PiB7XG4gICAgY29uc3QgaG9vayA9IHNpbm9uLnNweSgpXG4gICAgaG9vay5jb25maWcgPSB7fVxuICAgIGhvb2suZGVmYXVsdHMgPSB7IGRlZmF1bHQ6IHRydWUgfVxuICAgIGF0bGFzLmhvb2soJ2R1bW15JywgaG9vaylcbiAgICBjb25zdCBhcmdzID0gaG9vay5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzLmNvbmZpZykudG8uaGF2ZS5wcm9wZXJ0eSgnZGVmYXVsdCcsIHRydWUpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIGFsaWFzZXMgZG8gbm90IHNhdGlzZnkgcmVxdWlyZW1lbnRzIG9mIHRoZSBjb21wb25lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgaG9vayA9IHNpbm9uLnNweSgpXG4gICAgaG9vay5jb25maWcgPSB7fVxuICAgIGhvb2sucmVxdWlyZXMgPSBbJ3NlcnZpY2U6ZHVtbXknLCAnYWN0aW9uOmR1bW15J11cbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgYXRsYXMuaG9vaygnZHVtbXknLCBob29rKVxuICAgIH0pLnRvLnRocm93KEZyYW1ld29ya0Vycm9yLCAvTWlzc2luZyBhbGlhc2VzIGZvciBjb21wb25lbnQgZHVtbXkvKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiBleHRyYW5lb3VzIGFsaWFzZXMgYXJlIHNwZWNpZmllZCcsICgpID0+IHtcbiAgICBjb25zdCBob29rID0gc2lub24uc3B5KClcbiAgICBob29rLmNvbmZpZyA9IHt9XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGF0bGFzLmhvb2soJ2R1bW15JywgaG9vaywgeyBhbGlhc2VzOiB7XG4gICAgICAgICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyxcbiAgICAgIH0gfSlcbiAgICB9KS50by50aHJvdyhGcmFtZXdvcmtFcnJvciwgL1VubmVlZGVkIGFsaWFzZXMgZm9yIGNvbXBvbmVudCBkdW1teS8pXG4gIH0pXG5cbiAgaXQoJ3dvcmtzIHdoZW4gYWxsIHJlcXVpcmVtZW50cyBhcmUgc3BlY2lmaWVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGhvb2sgPSBzaW5vbi5zcHkoKVxuICAgIGhvb2suY29uZmlnID0ge31cbiAgICBob29rLnJlcXVpcmVzID0gWydzZXJ2aWNlOmR1bW15JywgJ2FjdGlvbjpkdW1teSddXG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGF0bGFzLmhvb2soJ2R1bW15JywgaG9vaywgeyBhbGlhc2VzOiB7XG4gICAgICAgICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyxcbiAgICAgICAgJ2FjdGlvbjpkdW1teSc6ICdkdW1teScsXG4gICAgICB9IH0pXG4gICAgfSkudG8ubm90LnRocm93KClcbiAgfSlcblxuICBpdCgnZG9lcyBub3QgdGhyb3cgd2hlbiBhbGlhc2VzIGluY2x1ZGUgdGhlIG9ic2VydmVkIGNvbXBvbmVudCcsICgpID0+IHtcbiAgICBjbGFzcyBEdW1teSBleHRlbmRzIEhvb2sge1xuICAgICAgc3RhdGljIG9ic2VydmVzID0gJ3NlcnZpY2U6ZHVtbXknXG4gICAgfVxuXG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGF0bGFzLmhvb2soJ2R1bW15JywgRHVtbXksIHsgYWxpYXNlczoge1xuICAgICAgICAnc2VydmljZTpkdW1teSc6ICdkdW1teScsXG4gICAgICB9IH0pXG4gICAgfSkudG8ubm90LnRocm93KClcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gdGhlIG9ic2VydmVkIGNvbXBvbmVudCBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGFsaWFzZXMnLCAoKSA9PiB7XG4gICAgY2xhc3MgRHVtbXkgZXh0ZW5kcyBIb29rIHtcbiAgICAgIHN0YXRpYyBvYnNlcnZlcyA9ICdzZXJ2aWNlOmR1bW15J1xuICAgIH1cblxuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBhdGxhcy5ob29rKCdkdW1teScsIER1bW15KVxuICAgIH0pLnRvLnRocm93KEZyYW1ld29ya0Vycm9yLCAvTWlzc2luZyBhbGlhc2VzIGZvciBjb21wb25lbnQgZHVtbXkvKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiB1c2VyIGNvbmZpZyBmYWlscyBjb21wb25lbnQgY29uZmlnIHNjaGVtYScsICgpID0+IHtcbiAgICBvcHRpb25zLmNvbmZpZy5ob29rcy5kdW1teSA9IHsgbG9sOiB0cnVlIH1cbiAgICBhdGxhcyA9IG5ldyBBdGxhcyhvcHRpb25zKVxuXG4gICAgY29uc3QgaG9vayA9IHNpbm9uLnNweSgpXG4gICAgaG9vay5jb25maWcgPSB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdGVzdDogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLmhvb2soJ2R1bW15JywgaG9vaykpLnRvLnRocm93KFZhbGlkYXRpb25FcnJvcilcbiAgfSlcblxuICBpdCgnd29ya3Mgd2hlbiB1c2VyIGNvbmZpZyBwYXNzZXMgY29tcG9uZW50IGNvbmZpZyBzY2hlbWEnLCAoKSA9PiB7XG4gICAgY29uc3QgaG9vayA9IHNpbm9uLnNweSgpXG4gICAgaG9vay5jb25maWcgPSB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdGVzdDogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLmhvb2soJ2R1bW15JywgaG9vaykpLm5vdC50by50aHJvdyhWYWxpZGF0aW9uRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ2RvZXMgbm90IHRocm93IGlmIGEgaG9vayBvYnNlcnZlcyB0aGUgYXRsYXMgaW5zdGFuY2UgYW5kIGF0bGFzIGlzIG5vdCBpbiBhbGlhc2VzJywgKCkgPT4ge1xuICAgIGNsYXNzIER1bW15IGV4dGVuZHMgSG9vayB7XG4gICAgICBzdGF0aWMgb2JzZXJ2ZXMgPSAnYXRsYXMnXG4gICAgfVxuXG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGF0bGFzLmhvb2soJ2R1bW15JywgRHVtbXkpXG4gICAgfSkudG8ubm90LnRocm93KClcbiAgfSlcbn0pXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhvb2sudGVzdC5tanMiXSwibmFtZXMiOlsiRHVtbXlIb29rIiwiSG9vayIsImRlc2NyaWJlIiwiYXRsYXMiLCJvcHRpb25zIiwiYmVmb3JlRWFjaCIsInJvb3QiLCJfX2Rpcm5hbWUiLCJjb25maWciLCJob29rcyIsImR1bW15IiwidGVzdCIsIkF0bGFzIiwiaXQiLCJleHBlY3QiLCJob29rIiwidG8iLCJlcXVhbCIsInRocm93IiwiRnJhbWV3b3JrRXJyb3IiLCJzaW5vbiIsInNweSIsImFyZ3MiLCJnZXRDYWxsIiwiaGF2ZSIsInByb3BlcnR5IiwibG9nIiwiYmUiLCJhbiIsImNoaW5kaW5ncyIsIm1hdGNoIiwiY29tcG9uZW50IiwiYSIsImRlZmF1bHRzIiwiZGVmYXVsdCIsInJlcXVpcmVzIiwiYWxpYXNlcyIsIm5vdCIsIkR1bW15IiwibG9sIiwidHlwZSIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwicHJvcGVydGllcyIsIlZhbGlkYXRpb25FcnJvciJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7O0FBS0EsTUFBTUEsU0FBTixTQUF3QkMsYUFBeEIsQ0FBNkI7O2dCQUF2QkQsUyxjQUNjLE87O0FBR3BCRSxRQUFRLENBQUMsZUFBRCxFQUFrQixNQUFNO0FBQzlCLE1BQUlDLEtBQUo7QUFDQSxNQUFJQyxPQUFKO0FBRUFDLEVBQUFBLFVBQVUsQ0FBQyxNQUFNO0FBQ2ZELElBQUFBLE9BQU8sR0FBRztBQUNSRSxNQUFBQSxJQUFJLEVBQUVDLFNBREU7QUFFUkMsTUFBQUEsTUFBTSxFQUFFO0FBQ05DLFFBQUFBLEtBQUssRUFBRTtBQUNMQyxVQUFBQSxLQUFLLEVBQUU7QUFDTEMsWUFBQUEsSUFBSSxFQUFFO0FBREQ7QUFERjtBQUREO0FBRkEsS0FBVjtBQVVBUixJQUFBQSxLQUFLLEdBQUcsSUFBSVMsT0FBSixDQUFVUixPQUFWLENBQVI7QUFDRCxHQVpTLENBQVY7QUFjQVMsRUFBQUEsRUFBRSxDQUFDLGNBQUQsRUFBaUIsTUFB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QSxLQUFkO0FBUUExQixJQUFBQSxNQUFNLENBQUMsTUFBTVgsS0FBSyxDQUFDWSxJQUFOLENBQVcsT0FBWCxFQUFvQkEsSUFBcEIsQ0FBUCxDQUFOLENBQXdDc0IsR0FBeEMsQ0FBNENyQixFQUE1QyxDQUErQ0UsS0FBL0MsQ0FBcUR5Qix1QkFBckQ7QUFDRCxHQVhDLENBQUY7QUFhQTlCLEVBQUFBLEVBQUUsQ0FBQyxrRkFBRCxFQUFxRixNQUFNO0FBQzNGLFVBQU15QixLQUFOLFNBQW9CckMsYUFBcEIsQ0FBeUI7O0FBRGtFLG9CQUNyRnFDLEtBRHFGLGNBRXZFLE9BRnVFOztBQUszRnhCLElBQUFBLE1BQU0sQ0FBQyxNQUFNO0FBQ1hYLE1BQUFBLEtBQUssQ0FBQ1ksSUFBTixDQUFXLE9BQVgsRUFBb0J1QixLQUFwQjtBQUNELEtBRkssQ0FBTixDQUVHdEIsRUFGSCxDQUVNcUIsR0FGTixDQUVVbkIsS0FGVjtBQUdELEdBUkMsQ0FBRjtBQVNELENBOUtPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uJ1xuaW1wb3J0IEhvb2sgZnJvbSAnQGF0bGFzLmpzL2hvb2snXG5pbXBvcnQge1xuICBGcmFtZXdvcmtFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxufSBmcm9tICdAYXRsYXMuanMvZXJyb3JzJ1xuXG5jbGFzcyBEdW1teUhvb2sgZXh0ZW5kcyBIb29rIHtcbiAgc3RhdGljIG9ic2VydmVzID0gJ2F0bGFzJ1xufVxuXG5kZXNjcmliZSgnQXRsYXM6Omhvb2soKScsICgpID0+IHtcbiAgbGV0IGF0bGFzXG4gIGxldCBvcHRpb25zXG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIHJvb3Q6IF9fZGlybmFtZSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBob29rczoge1xuICAgICAgICAgIGR1bW15OiB7XG4gICAgICAgICAgICB0ZXN0OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cbiAgICBhdGxhcyA9IG5ldyBBdGxhcyhvcHRpb25zKVxuICB9KVxuXG4gIGl0KCdyZXR1cm5zIHRoaXMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGF0bGFzLmhvb2soJ2R1bW15JywgRHVtbXlIb29rKSkudG8uZXF1YWwoYXRsYXMpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIHRoZSBhbGlhcyBoYXMgYWxyZWFkeSBiZWVuIHVzZWQgYnkgYW5vdGhlciBob29rJywgKCkgPT4ge1xuICAgIGF0bGFzLmhvb2soJ2R1bW15JywgRHVtbXlIb29rKVxuICAgIGV4cGVjdCgoKSA9PiBhdGxhcy5ob29rKCdkdW1teScsIER1bW15SG9vaykpLnRvLnRocm93KEZyYW1ld29ya0Vycm9yKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiB0aGUgaG9vayBpcyBub3QgYSBjbGFzcy9mdW5jdGlvbicsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4gYXRsYXMuaG9vaygnZHVtbXknLCB7fSkpLnRvLnRocm93KEZyYW1ld29ya0Vycm9yKVxuICB9KVxuXG4gIGl0KCdwcm92aWRlcyB0aGUgYXRsYXMgb24gaG9vayBjb25zdHJ1Y3RvciBhcmd1bWVudCcsICgpID0+IHtcbiAgICBjb25zdCBob29rID0gc2lub24uc3B5KClcbiAgICBob29rLmNvbmZpZyA9IHt9XG4gICAgYXRsYXMuaG9vaygnZHVtbXknLCBob29rKVxuICAgIGNvbnN0IGFyZ3MgPSBob29rLmdldENhbGwoMCkuYXJnc1swXVxuXG4gICAgZXhwZWN0KGFyZ3MpLnRvLmhhdmUucHJvcGVydHkoJ2F0bGFzJylcbiAgICBleHBlY3QoYXJncy5hdGxhcykudG8uZXF1YWwoYXRsYXMpXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIGEgbG9nZ2VyIGluc3RhbmNlIG9uIGhvb2sgY29uc3RydWN0b3IgYXJndW1lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgaG9vayA9IHNpbm9uLnNweSgpXG4gICAgaG9vay5jb25maWcgPSB7fVxuICAgIGF0bGFzLmhvb2soJ2R1bW15JywgaG9vaylcbiAgICBjb25zdCBhcmdzID0gaG9vay5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzKS50by5oYXZlLnByb3BlcnR5KCdsb2cnKVxuICAgIGV4cGVjdChhcmdzLmxvZykudG8uYmUuYW4oJ29iamVjdCcpXG4gICAgZXhwZWN0KGFyZ3MubG9nLmNoaW5kaW5ncykudG8ubWF0Y2goL1wiaG9va1wiOlwiZHVtbXlcIi91KVxuICB9KVxuXG4gIGl0KCdwcm92aWRlcyBjb25maWcgb2JqZWN0IG9uIGhvb2sgY29uc3RydWN0b3IgYXJndW1lbnQnLCAoKSA9PiB7XG4gICAgY29uc3QgaG9vayA9IHNpbm9uLnNweSgpXG4gICAgaG9vay5jb25maWcgPSB7fVxuICAgIGF0bGFzLmhvb2soJ2R1bW15JywgaG9vaylcbiAgICBjb25zdCBhcmdzID0gaG9vay5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzKS50by5oYXZlLnByb3BlcnR5KCdjb25maWcnKVxuICAgIGV4cGVjdChhcmdzLmNvbmZpZykudG8uYmUuYW4oJ29iamVjdCcpXG4gICAgZXhwZWN0KGFyZ3MuY29uZmlnKS50by5lcXVhbChvcHRpb25zLmNvbmZpZy5ob29rcy5kdW1teSlcbiAgfSlcblxuICBpdCgncHJvdmlkZXMgdGhlIHJlc29sdmUgZnVuY3Rpb24gb24gaG9vayBjb25zdHJ1Y3RvciBhcmd1bWVudCBhcyBgY29tcG9uZW50YCcsICgpID0+IHtcbiAgICBjb25zdCBob29rID0gc2lub24uc3B5KClcbiAgICBob29rLmNvbmZpZyA9IHt9XG4gICAgYXRsYXMuaG9vaygnZHVtbXknLCBob29rKVxuICAgIGNvbnN0IGFyZ3MgPSBob29rLmdldENhbGwoMCkuYXJnc1swXVxuXG4gICAgZXhwZWN0KGFyZ3MpLnRvLmhhdmUucHJvcGVydHkoJ2NvbXBvbmVudCcpXG4gICAgZXhwZWN0KGFyZ3MuY29tcG9uZW50KS50by5iZS5hKCdmdW5jdGlvbicpXG4gIH0pXG5cbiAgaXQoJ2FwcGxpZXMgZGVmYXVsdHMgZGVmaW5lZCBvbiBob29rIG9uIHRvcCBvZiB1c2VyLXByb3ZpZGVkIGNvbmZpZycsICgpID0+IHtcbiAgICBjb25zdCBob29rID0gc2lub24uc3B5KClcbiAgICBob29rLmNvbmZpZyA9IHt9XG4gICAgaG9vay5kZWZhdWx0cyA9IHsgZGVmYXVsdDogdHJ1ZSB9XG4gICAgYXRsYXMuaG9vaygnZHVtbXknLCBob29rKVxuICAgIGNvbnN0IGFyZ3MgPSBob29rLmdldENhbGwoMCkuYXJnc1swXVxuXG4gICAgZXhwZWN0KGFyZ3MuY29uZmlnKS50by5oYXZlLnByb3BlcnR5KCdkZWZhdWx0JywgdHJ1ZSlcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gYWxpYXNlcyBkbyBub3Qgc2F0aXNmeSByZXF1aXJlbWVudHMgb2YgdGhlIGNvbXBvbmVudCcsICgpID0+IHtcbiAgICBjb25zdCBob29rID0gc2lub24uc3B5KClcbiAgICBob29rLmNvbmZpZyA9IHt9XG4gICAgaG9vay5yZXF1aXJlcyA9IFsnc2VydmljZTpkdW1teScsICdhY3Rpb246ZHVtbXknXVxuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBhdGxhcy5ob29rKCdkdW1teScsIGhvb2spXG4gICAgfSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IsIC9NaXNzaW5nIGFsaWFzZXMgZm9yIGNvbXBvbmVudCBkdW1teS91KVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiBleHRyYW5lb3VzIGFsaWFzZXMgYXJlIHNwZWNpZmllZCcsICgpID0+IHtcbiAgICBjb25zdCBob29rID0gc2lub24uc3B5KClcbiAgICBob29rLmNvbmZpZyA9IHt9XG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGF0bGFzLmhvb2soJ2R1bW15JywgaG9vaywgeyBhbGlhc2VzOiB7XG4gICAgICAgICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyxcbiAgICAgIH0gfSlcbiAgICB9KS50by50aHJvdyhGcmFtZXdvcmtFcnJvciwgL1VubmVlZGVkIGFsaWFzZXMgZm9yIGNvbXBvbmVudCBkdW1teS91KVxuICB9KVxuXG4gIGl0KCd3b3JrcyB3aGVuIGFsbCByZXF1aXJlbWVudHMgYXJlIHNwZWNpZmllZCcsICgpID0+IHtcbiAgICBjb25zdCBob29rID0gc2lub24uc3B5KClcbiAgICBob29rLmNvbmZpZyA9IHt9XG4gICAgaG9vay5yZXF1aXJlcyA9IFsnc2VydmljZTpkdW1teScsICdhY3Rpb246ZHVtbXknXVxuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBhdGxhcy5ob29rKCdkdW1teScsIGhvb2ssIHsgYWxpYXNlczoge1xuICAgICAgICAnc2VydmljZTpkdW1teSc6ICdkdW1teScsXG4gICAgICAgICdhY3Rpb246ZHVtbXknOiAnZHVtbXknLFxuICAgICAgfSB9KVxuICAgIH0pLnRvLm5vdC50aHJvdygpXG4gIH0pXG5cbiAgaXQoJ2RvZXMgbm90IHRocm93IHdoZW4gYWxpYXNlcyBpbmNsdWRlIHRoZSBvYnNlcnZlZCBjb21wb25lbnQnLCAoKSA9PiB7XG4gICAgY2xhc3MgRHVtbXkgZXh0ZW5kcyBIb29rIHtcbiAgICAgIHN0YXRpYyBvYnNlcnZlcyA9ICdzZXJ2aWNlOmR1bW15J1xuICAgIH1cblxuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBhdGxhcy5ob29rKCdkdW1teScsIER1bW15LCB7IGFsaWFzZXM6IHtcbiAgICAgICAgJ3NlcnZpY2U6ZHVtbXknOiAnZHVtbXknLFxuICAgICAgfSB9KVxuICAgIH0pLnRvLm5vdC50aHJvdygpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIHRoZSBvYnNlcnZlZCBjb21wb25lbnQgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBhbGlhc2VzJywgKCkgPT4ge1xuICAgIGNsYXNzIER1bW15IGV4dGVuZHMgSG9vayB7XG4gICAgICBzdGF0aWMgb2JzZXJ2ZXMgPSAnc2VydmljZTpkdW1teSdcbiAgICB9XG5cbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgYXRsYXMuaG9vaygnZHVtbXknLCBEdW1teSlcbiAgICB9KS50by50aHJvdyhGcmFtZXdvcmtFcnJvciwgL01pc3NpbmcgYWxpYXNlcyBmb3IgY29tcG9uZW50IGR1bW15L3UpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIHVzZXIgY29uZmlnIGZhaWxzIGNvbXBvbmVudCBjb25maWcgc2NoZW1hJywgKCkgPT4ge1xuICAgIG9wdGlvbnMuY29uZmlnLmhvb2tzLmR1bW15ID0geyBsb2w6IHRydWUgfVxuICAgIGF0bGFzID0gbmV3IEF0bGFzKG9wdGlvbnMpXG5cbiAgICBjb25zdCBob29rID0gc2lub24uc3B5KClcbiAgICBob29rLmNvbmZpZyA9IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICB0ZXN0OiB7IHR5cGU6ICdib29sZWFuJyB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBleHBlY3QoKCkgPT4gYXRsYXMuaG9vaygnZHVtbXknLCBob29rKSkudG8udGhyb3coVmFsaWRhdGlvbkVycm9yKVxuICB9KVxuXG4gIGl0KCd3b3JrcyB3aGVuIHVzZXIgY29uZmlnIHBhc3NlcyBjb21wb25lbnQgY29uZmlnIHNjaGVtYScsICgpID0+IHtcbiAgICBjb25zdCBob29rID0gc2lub24uc3B5KClcbiAgICBob29rLmNvbmZpZyA9IHtcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICB0ZXN0OiB7IHR5cGU6ICdib29sZWFuJyB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBleHBlY3QoKCkgPT4gYXRsYXMuaG9vaygnZHVtbXknLCBob29rKSkubm90LnRvLnRocm93KFZhbGlkYXRpb25FcnJvcilcbiAgfSlcblxuICBpdCgnZG9lcyBub3QgdGhyb3cgaWYgYSBob29rIG9ic2VydmVzIHRoZSBhdGxhcyBpbnN0YW5jZSBhbmQgYXRsYXMgaXMgbm90IGluIGFsaWFzZXMnLCAoKSA9PiB7XG4gICAgY2xhc3MgRHVtbXkgZXh0ZW5kcyBIb29rIHtcbiAgICAgIHN0YXRpYyBvYnNlcnZlcyA9ICdhdGxhcydcbiAgICB9XG5cbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgYXRsYXMuaG9vaygnZHVtbXknLCBEdW1teSlcbiAgICB9KS50by5ub3QudGhyb3coKVxuICB9KVxufSlcbiJdfQ==

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

exports.services = services;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFsaWFzZXMubWpzIl0sIm5hbWVzIjpbImFjdGlvbnMiLCJkdW1teSIsImhvb2tzIiwic2VydmljZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQU1BLFVBQVU7QUFDZEMsU0FBTztBQUNMLHFCQUFpQjtBQURaO0FBRE8sQ0FBaEI7O0FBS0EsTUFBTUMsUUFBUTtBQUNaRCxTQUFPO0FBQ0wscUJBQWlCO0FBRFo7QUFESyxDQUFkOztBQUtBLE1BQU1FLFdBQVc7QUFDZkYsU0FBTztBQURRLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYWN0aW9ucyA9IHtcbiAgZHVtbXk6IHtcbiAgICAnc2VydmljZTpkdW1teSc6ICdkdW1teScsXG4gIH0sXG59XG5jb25zdCBob29rcyA9IHtcbiAgZHVtbXk6IHtcbiAgICAnc2VydmljZTpkdW1teSc6ICdkdW1teScsXG4gIH0sXG59XG5jb25zdCBzZXJ2aWNlcyA9IHtcbiAgZHVtbXk6IHt9LFxufVxuXG5leHBvcnQge1xuICBhY3Rpb25zLFxuICBob29rcyxcbiAgc2VydmljZXMsXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFsaWFzZXMubWpzIl0sIm5hbWVzIjpbImFjdGlvbnMiLCJkdW1teSIsImhvb2tzIiwic2VydmljZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQU1BLE9BQU8sR0FBRztBQUNkQyxFQUFBQSxLQUFLLEVBQUU7QUFDTCxxQkFBaUI7QUFEWjtBQURPLENBQWhCOztBQUtBLE1BQU1DLEtBQUssR0FBRztBQUNaRCxFQUFBQSxLQUFLLEVBQUU7QUFDTCxxQkFBaUI7QUFEWjtBQURLLENBQWQ7O0FBS0EsTUFBTUUsUUFBUSxHQUFHO0FBQ2ZGLEVBQUFBLEtBQUssRUFBRTtBQURRLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYWN0aW9ucyA9IHtcbiAgZHVtbXk6IHtcbiAgICAnc2VydmljZTpkdW1teSc6ICdkdW1teScsXG4gIH0sXG59XG5jb25zdCBob29rcyA9IHtcbiAgZHVtbXk6IHtcbiAgICAnc2VydmljZTpkdW1teSc6ICdkdW1teScsXG4gIH0sXG59XG5jb25zdCBzZXJ2aWNlcyA9IHtcbiAgZHVtbXk6IHt9LFxufVxuXG5leHBvcnQge1xuICBhY3Rpb25zLFxuICBob29rcyxcbiAgc2VydmljZXMsXG59XG4iXX0=

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

exports.hooks = hooks;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QubWpzIl0sIm5hbWVzIjpbImF0bGFzIiwib3ZlcnJpZGUiLCJhY3Rpb25zIiwiZHVtbXkiLCJzZXJ2aWNlcyIsImhvb2tzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxNQUFNQSxRQUFRO0FBQUVDLFlBQVU7QUFBWixDQUFkOztBQUNBLE1BQU1DLFVBQVU7QUFBRUMsU0FBTztBQUFFRixjQUFVO0FBQVo7QUFBVCxDQUFoQjs7QUFDQSxNQUFNRyxXQUFXO0FBQUVELFNBQU87QUFBRUYsY0FBVTtBQUFaO0FBQVQsQ0FBakI7O0FBQ0EsTUFBTUksUUFBUTtBQUFFRixTQUFPO0FBQUVGLGNBQVU7QUFBWjtBQUFULENBQWQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhdGxhcyA9IHsgb3ZlcnJpZGU6IHRydWUgfVxuY29uc3QgYWN0aW9ucyA9IHsgZHVtbXk6IHsgb3ZlcnJpZGU6IHRydWUgfSB9XG5jb25zdCBzZXJ2aWNlcyA9IHsgZHVtbXk6IHsgb3ZlcnJpZGU6IHRydWUgfSB9XG5jb25zdCBob29rcyA9IHsgZHVtbXk6IHsgb3ZlcnJpZGU6IHRydWUgfSB9XG5cbmV4cG9ydCB7XG4gIGF0bGFzLFxuICBhY3Rpb25zLFxuICBzZXJ2aWNlcyxcbiAgaG9va3MsXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QubWpzIl0sIm5hbWVzIjpbImF0bGFzIiwib3ZlcnJpZGUiLCJhY3Rpb25zIiwiZHVtbXkiLCJzZXJ2aWNlcyIsImhvb2tzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxNQUFNQSxLQUFLLEdBQUc7QUFBRUMsRUFBQUEsUUFBUSxFQUFFO0FBQVosQ0FBZDs7QUFDQSxNQUFNQyxPQUFPLEdBQUc7QUFBRUMsRUFBQUEsS0FBSyxFQUFFO0FBQUVGLElBQUFBLFFBQVEsRUFBRTtBQUFaO0FBQVQsQ0FBaEI7O0FBQ0EsTUFBTUcsUUFBUSxHQUFHO0FBQUVELEVBQUFBLEtBQUssRUFBRTtBQUFFRixJQUFBQSxRQUFRLEVBQUU7QUFBWjtBQUFULENBQWpCOztBQUNBLE1BQU1JLEtBQUssR0FBRztBQUFFRixFQUFBQSxLQUFLLEVBQUU7QUFBRUYsSUFBQUEsUUFBUSxFQUFFO0FBQVo7QUFBVCxDQUFkIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXRsYXMgPSB7IG92ZXJyaWRlOiB0cnVlIH1cbmNvbnN0IGFjdGlvbnMgPSB7IGR1bW15OiB7IG92ZXJyaWRlOiB0cnVlIH0gfVxuY29uc3Qgc2VydmljZXMgPSB7IGR1bW15OiB7IG92ZXJyaWRlOiB0cnVlIH0gfVxuY29uc3QgaG9va3MgPSB7IGR1bW15OiB7IG92ZXJyaWRlOiB0cnVlIH0gfVxuXG5leHBvcnQge1xuICBhdGxhcyxcbiAgYWN0aW9ucyxcbiAgc2VydmljZXMsXG4gIGhvb2tzLFxufVxuIl19

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

exports.hooks = hooks;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4Lm1qcyJdLCJuYW1lcyI6WyJhdGxhcyIsInRlc3QiLCJhY3Rpb25zIiwiZHVtbXkiLCJzZXJ2aWNlcyIsImhvb2tzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxNQUFNQSxRQUFRO0FBQUVDLFFBQU07QUFBUixDQUFkOztBQUNBLE1BQU1DLFVBQVU7QUFBRUMsU0FBTztBQUFFRixVQUFNO0FBQVI7QUFBVCxDQUFoQjs7QUFDQSxNQUFNRyxXQUFXO0FBQUVELFNBQU87QUFBRUYsVUFBTTtBQUFSO0FBQVQsQ0FBakI7O0FBQ0EsTUFBTUksUUFBUTtBQUFFRixTQUFPO0FBQUVGLFVBQU07QUFBUjtBQUFULENBQWQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhdGxhcyA9IHsgdGVzdDogdHJ1ZSB9XG5jb25zdCBhY3Rpb25zID0geyBkdW1teTogeyB0ZXN0OiB0cnVlIH0gfVxuY29uc3Qgc2VydmljZXMgPSB7IGR1bW15OiB7IHRlc3Q6IHRydWUgfSB9XG5jb25zdCBob29rcyA9IHsgZHVtbXk6IHsgdGVzdDogdHJ1ZSB9IH1cblxuZXhwb3J0IHtcbiAgYXRsYXMsXG4gIGFjdGlvbnMsXG4gIHNlcnZpY2VzLFxuICBob29rcyxcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4Lm1qcyJdLCJuYW1lcyI6WyJhdGxhcyIsInRlc3QiLCJhY3Rpb25zIiwiZHVtbXkiLCJzZXJ2aWNlcyIsImhvb2tzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxNQUFNQSxLQUFLLEdBQUc7QUFBRUMsRUFBQUEsSUFBSSxFQUFFO0FBQVIsQ0FBZDs7QUFDQSxNQUFNQyxPQUFPLEdBQUc7QUFBRUMsRUFBQUEsS0FBSyxFQUFFO0FBQUVGLElBQUFBLElBQUksRUFBRTtBQUFSO0FBQVQsQ0FBaEI7O0FBQ0EsTUFBTUcsUUFBUSxHQUFHO0FBQUVELEVBQUFBLEtBQUssRUFBRTtBQUFFRixJQUFBQSxJQUFJLEVBQUU7QUFBUjtBQUFULENBQWpCOztBQUNBLE1BQU1JLEtBQUssR0FBRztBQUFFRixFQUFBQSxLQUFLLEVBQUU7QUFBRUYsSUFBQUEsSUFBSSxFQUFFO0FBQVI7QUFBVCxDQUFkIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYXRsYXMgPSB7IHRlc3Q6IHRydWUgfVxuY29uc3QgYWN0aW9ucyA9IHsgZHVtbXk6IHsgdGVzdDogdHJ1ZSB9IH1cbmNvbnN0IHNlcnZpY2VzID0geyBkdW1teTogeyB0ZXN0OiB0cnVlIH0gfVxuY29uc3QgaG9va3MgPSB7IGR1bW15OiB7IHRlc3Q6IHRydWUgfSB9XG5cbmV4cG9ydCB7XG4gIGF0bGFzLFxuICBhY3Rpb25zLFxuICBzZXJ2aWNlcyxcbiAgaG9va3MsXG59XG4iXX0=

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

env: 'test'
})).to.throw(_errors.FrameworkError, /root must be explicitly specified/);
})).to.throw(_errors.FrameworkError, /root must be explicitly specified/u);
});

@@ -133,2 +133,2 @@ it('does not throw TypeError when options is not provided', () => {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluaXQudGVzdC5tanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJiZWZvcmVFYWNoIiwic2FuZGJveCIsInN0dWIiLCJBdGxhcyIsInByb3RvdHlwZSIsInJldHVybnNUaGlzIiwiaXQiLCJleHBlY3QiLCJpdHNlbGYiLCJ0byIsInJlc3BvbmRUbyIsImluaXQiLCJlbnYiLCJ0aHJvdyIsIkZyYW1ld29ya0Vycm9yIiwibm90IiwiVHlwZUVycm9yIiwicHJvdG8iLCJyb290IiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJhdGxhcyIsImNvbmZpZyIsImhvb2tzIiwiYWN0aW9ucyIsInNlcnZpY2VzIiwiYWxpYXNlcyIsIm5hbWUiLCJDb21wb25lbnQiLCJPYmplY3QiLCJlbnRyaWVzIiwidGVzdHNlcnZpY2VzIiwidGVzdGFsaWFzZXMiLCJzZXJ2aWNlIiwiaGF2ZSIsImJlZW4iLCJjYWxsZWRXaXRoIiwidGVzdGFjdGlvbnMiLCJhY3Rpb24iLCJ0ZXN0aG9va3MiLCJob29rIiwiYWxsIiwia2V5cyIsImluY2x1ZGUiLCJlcWwiLCJkdW1teSIsInRlc3QiLCJvdmVycmlkZSIsInByZXBhcmUiLCJ0eXBlcyIsInR5cGUiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQUEsU0FBUyxlQUFULEVBQTBCLE1BQU07QUFDOUJDLGFBQVcsWUFBVztBQUNwQixTQUFLQyxPQUFMLENBQWFDLElBQWIsQ0FBa0JDLFFBQU1DLFNBQXhCLEVBQW1DLFFBQW5DLEVBQTZDQyxXQUE3QztBQUNBLFNBQUtKLE9BQUwsQ0FBYUMsSUFBYixDQUFrQkMsUUFBTUMsU0FBeEIsRUFBbUMsTUFBbkMsRUFBMkNDLFdBQTNDO0FBQ0EsU0FBS0osT0FBTCxDQUFhQyxJQUFiLENBQWtCQyxRQUFNQyxTQUF4QixFQUFtQyxTQUFuQyxFQUE4Q0MsV0FBOUM7QUFDRCxHQUpEO0FBT0FDLEtBQUcsUUFBSCxFQUFhLE1BQU07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QUFDckQ1QyxlQUFPLE1BQU07QUFDWEosa0JBQU1RLElBQU4sQ0FBVztBQUNUTyxnQkFEUztBQUVUTixpQkFBSyxNQUZJO0FBR1QsYUFBQ3VDLElBQUQsR0FBUTtBQUhDLFdBQVg7QUFLRCxTQU5ELEVBTUcxQyxFQU5ILENBTU1JLEtBTk47QUFPRCxPQVJEO0FBU0Q7QUFDRixHQWpDRDtBQWtDRCxDQWpIRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBGcmFtZXdvcmtFcnJvciB9IGZyb20gJ0BhdGxhcy5qcy9lcnJvcnMnXG5pbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uLy4uJ1xuaW1wb3J0ICogYXMgdGVzdHNlcnZpY2VzIGZyb20gJy4vZGVtb2FwcC9zZXJ2aWNlcydcbmltcG9ydCAqIGFzIHRlc3RhY3Rpb25zIGZyb20gJy4vZGVtb2FwcC9hY3Rpb25zJ1xuaW1wb3J0ICogYXMgdGVzdGhvb2tzIGZyb20gJy4vZGVtb2FwcC9ob29rcydcbmltcG9ydCAqIGFzIHRlc3RhbGlhc2VzIGZyb20gJy4vZGVtb2FwcC9hbGlhc2VzJ1xuXG5kZXNjcmliZSgnQXRsYXM6OmluaXQoKScsICgpID0+IHtcbiAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHtcbiAgICB0aGlzLnNhbmRib3guc3R1YihBdGxhcy5wcm90b3R5cGUsICdhY3Rpb24nKS5yZXR1cm5zVGhpcygpXG4gICAgdGhpcy5zYW5kYm94LnN0dWIoQXRsYXMucHJvdG90eXBlLCAnaG9vaycpLnJldHVybnNUaGlzKClcbiAgICB0aGlzLnNhbmRib3guc3R1YihBdGxhcy5wcm90b3R5cGUsICdzZXJ2aWNlJykucmV0dXJuc1RoaXMoKVxuICB9KVxuXG5cbiAgaXQoJ2V4aXN0cycsICgpID0+IHtcbiAgICBleHBlY3QoQXRsYXMpLml0c2VsZi50by5yZXNwb25kVG8oJ2luaXQnKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiBubyByb290IGlzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBBdGxhcy5pbml0KHsgZW52OiAndGVzdCcgfSkpXG4gICAgICAudG8udGhyb3coRnJhbWV3b3JrRXJyb3IsIC9yb290IG11c3QgYmUgZXhwbGljaXRseSBzcGVjaWZpZWQvKVxuICB9KVxuXG4gIGl0KCdkb2VzIG5vdCB0aHJvdyBUeXBlRXJyb3Igd2hlbiBvcHRpb25zIGlzIG5vdCBwcm92aWRlZCcsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4gQXRsYXMuaW5pdCgpKS50by5ub3QudGhyb3coVHlwZUVycm9yKVxuICB9KVxuXG4gIGl0KCdsb2FkcyBhbGwgYWN0aW9ucywgaG9va3MgYW5kIHNlcnZpY2VzIGZyb20gdGhlIHNwZWNpZmllZCBsb2NhdGlvbnMnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvdG8gPSBBdGxhcy5wcm90b3R5cGVcbiAgICBjb25zdCByb290ID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2RlbW9hcHAnKVxuICAgIGNvbnN0IGF0bGFzID0gQXRsYXMuaW5pdCh7XG4gICAgICByb290LFxuICAgICAgZW52OiAndGVzdCcsXG4gICAgICBjb25maWc6ICdjb25maWcnLFxuICAgICAgaG9va3M6ICdob29rcycsXG4gICAgICBhY3Rpb25zOiAnYWN0aW9ucycsXG4gICAgICBzZXJ2aWNlczogJ3NlcnZpY2VzJyxcbiAgICAgIGFsaWFzZXM6ICdhbGlhc2VzJyxcbiAgICB9KVxuXG4gICAgLy8gVGVzdCBzZXJ2aWNlc1xuICAgIGZvciAoY29uc3QgW25hbWUsIENvbXBvbmVudF0gb2YgT2JqZWN0LmVudHJpZXModGVzdHNlcnZpY2VzKSkge1xuICAgICAgY29uc3QgYWxpYXNlcyA9IHRlc3RhbGlhc2VzLnNlcnZpY2VzW25hbWVdXG4gICAgICBleHBlY3QocHJvdG8uc2VydmljZSkudG8uaGF2ZS5iZWVuLmNhbGxlZFdpdGgobmFtZSwgQ29tcG9uZW50LCB7IGFsaWFzZXMgfSlcbiAgICB9XG4gICAgLy8gVGVzdCBhY3Rpb25zXG4gICAgZm9yIChjb25zdCBbbmFtZSwgQ29tcG9uZW50XSBvZiBPYmplY3QuZW50cmllcyh0ZXN0YWN0aW9ucykpIHtcbiAgICAgIGNvbnN0IGFsaWFzZXMgPSB0ZXN0YWxpYXNlcy5hY3Rpb25zW25hbWVdXG4gICAgICBleHBlY3QocHJvdG8uYWN0aW9uKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChuYW1lLCBDb21wb25lbnQsIHsgYWxpYXNlcyB9KVxuICAgIH1cbiAgICAvLyBUZXN0IGhvb2tzXG4gICAgZm9yIChjb25zdCBbbmFtZSwgQ29tcG9uZW50XSBvZiBPYmplY3QuZW50cmllcyh0ZXN0aG9va3MpKSB7XG4gICAgICBjb25zdCBhbGlhc2VzID0gdGVzdGFsaWFzZXMuaG9va3NbbmFtZV1cbiAgICAgIGV4cGVjdChwcm90by5ob29rKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChuYW1lLCBDb21wb25lbnQsIHsgYWxpYXNlcyB9KVxuICAgIH1cblxuICAgIC8vIFN0dWZmIGRpcmVjdGx5IG9uIGF0bGFzXG4gICAgZXhwZWN0KGF0bGFzLmNvbmZpZykudG8uaGF2ZS5hbGwua2V5cyhbJ2F0bGFzJywgJ3NlcnZpY2VzJywgJ2hvb2tzJywgJ2FjdGlvbnMnXSlcbiAgICBleHBlY3QoYXRsYXMuY29uZmlnLmF0bGFzKS50by5pbmNsdWRlLmtleXMoWyd0ZXN0JywgJ292ZXJyaWRlJ10pXG4gICAgZXhwZWN0KGF0bGFzLmNvbmZpZy5zZXJ2aWNlcykudG8uZXFsKHsgZHVtbXk6IHtcbiAgICAgIHRlc3Q6IHRydWUsXG4gICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICB9IH0pXG4gICAgZXhwZWN0KGF0bGFzLmNvbmZpZy5ob29rcykudG8uZXFsKHsgZHVtbXk6IHtcbiAgICAgIHRlc3Q6IHRydWUsXG4gICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICB9IH0pXG4gICAgZXhwZWN0KGF0bGFzLmNvbmZpZy5hY3Rpb25zKS50by5lcWwoeyBkdW1teToge1xuICAgICAgdGVzdDogdHJ1ZSxcbiAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIH0gfSlcbiAgfSlcblxuICBpdCgncHJvdmlkZXMgZGVmYXVsdHMgZm9yIHBhdGhzIHRvIHNlcnZpY2VzLCBob29rcywgYWN0aW9ucywgYWxpYXNlcyBhbmQgY29uZmlnIGRpcnMnLCAoKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdkZW1vYXBwJylcbiAgICBjb25zdCBhdGxhcyA9IEF0bGFzLmluaXQoe1xuICAgICAgcm9vdCxcbiAgICAgIGVudjogJ3Rlc3QnLFxuICAgIH0pXG5cbiAgICAvLyBTaG91bGQgbm90IHRocm93XG4gICAgcmV0dXJuIGF0bGFzLnByZXBhcmUoKVxuICB9KVxuXG5cbiAgZGVzY3JpYmUoJ0V4Y2VwdGlvbiBoYW5kbGluZycsICgpID0+IHtcbiAgICBjb25zdCByb290ID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2RlbW9hcHAnKVxuICAgIGNvbnN0IHR5cGVzID0gW1xuICAgICAgJ2NvbmZpZycsXG4gICAgICAnc2VydmljZXMnLFxuICAgICAgJ2FjdGlvbnMnLFxuICAgICAgJ2hvb2tzJyxcbiAgICAgICdhbGlhc2VzJyxcbiAgICBdXG5cbiAgICBmb3IgKGNvbnN0IHR5cGUgb2YgdHlwZXMpIHtcbiAgICAgIGl0KGBkb2VzIG5vdCB0aHJvdyB3aGVuICR7dHlwZX0gbW9kdWxlIGRvZXMgbm90IGV4aXN0YCwgKCkgPT4ge1xuICAgICAgICBBdGxhcy5pbml0KHtcbiAgICAgICAgICByb290LFxuICAgICAgICAgIGVudjogJ3Rlc3QnLFxuICAgICAgICAgIGNvbmZpZzogJ2xvbGNvbmYnLFxuICAgICAgICAgIHNlcnZpY2VzOiAnbG9sc2VydicsXG4gICAgICAgICAgYWN0aW9uczogJ2xvbGFjdGlvbnMnLFxuICAgICAgICAgIGhvb2tzOiAnbG9saG9va3MnLFxuICAgICAgICAgIGFsaWFzZXM6ICdsb2xhbGlhc2VzJyxcbiAgICAgICAgfSlcbiAgICAgIH0pXG5cbiAgICAgIGl0KGB0aHJvd3Mgd2hlbiAke3R5cGV9IG1vZHVsZSBjb250YWlucyBlcnJvcnNgLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgICAgQXRsYXMuaW5pdCh7XG4gICAgICAgICAgICByb290LFxuICAgICAgICAgICAgZW52OiAndGVzdCcsXG4gICAgICAgICAgICBbdHlwZV06ICd3aWxsLXRocm93JyxcbiAgICAgICAgICB9KVxuICAgICAgICB9KS50by50aHJvdygpXG4gICAgICB9KVxuICAgIH1cbiAgfSlcbn0pXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluaXQudGVzdC5tanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJiZWZvcmVFYWNoIiwic2FuZGJveCIsInN0dWIiLCJBdGxhcyIsInByb3RvdHlwZSIsInJldHVybnNUaGlzIiwiaXQiLCJleHBlY3QiLCJpdHNlbGYiLCJ0byIsInJlc3BvbmRUbyIsImluaXQiLCJlbnYiLCJ0aHJvdyIsIkZyYW1ld29ya0Vycm9yIiwibm90IiwiVHlwZUVycm9yIiwicHJvdG8iLCJyb290IiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJhdGxhcyIsImNvbmZpZyIsImhvb2tzIiwiYWN0aW9ucyIsInNlcnZpY2VzIiwiYWxpYXNlcyIsIm5hbWUiLCJDb21wb25lbnQiLCJPYmplY3QiLCJlbnRyaWVzIiwidGVzdHNlcnZpY2VzIiwidGVzdGFsaWFzZXMiLCJzZXJ2aWNlIiwiaGF2ZSIsImJlZW4iLCJjYWxsZWRXaXRoIiwidGVzdGFjdGlvbnMiLCJhY3Rpb24iLCJ0ZXN0aG9va3MiLCJob29rIiwiYWxsIiwia2V5cyIsImluY2x1ZGUiLCJlcWwiLCJkdW1teSIsInRlc3QiLCJvdmVycmlkZSIsInByZXBhcmUiLCJ0eXBlcyIsInR5cGUiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQUEsUUFBUSxDQUFDLGVBQUQsRUFBa0IsTUFBTTtBQUM5QkMsRUFBQUEsVUFBVSxDQUFDLFlBQVc7QUFDcEIsU0FBS0MsT0FBTCxDQUFhQyxJQUFiLENBQWtCQyxRQUFNQyxTQUF4QixFQUFtQyxRQUFuQyxFQUE2Q0MsV0FBN0M7QUFDQSxTQUFLSixPQUFMLENBQWFDLElBQWIsQ0FBa0JDLFFBQU1DLFNBQXhCLEVBQW1DLE1BQW5DLEVBQTJDQyxXQUEzQztBQUNBLFNBQUtKLE9BQUwsQ0FBYUMsSUFBYixDQUFrQkMsUUFBTUMsU0FBeEIsRUFBbUMsU0FBbkMsRUFBOENDLFdBQTlDO0FBQ0QsR0FKUyxDQUFWO0FBT0FD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RDtBQUNGLEdBakNPLENBQVI7QUFrQ0QsQ0FqSE8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBGcmFtZXdvcmtFcnJvciB9IGZyb20gJ0BhdGxhcy5qcy9lcnJvcnMnXG5pbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uLy4uJ1xuaW1wb3J0ICogYXMgdGVzdHNlcnZpY2VzIGZyb20gJy4vZGVtb2FwcC9zZXJ2aWNlcydcbmltcG9ydCAqIGFzIHRlc3RhY3Rpb25zIGZyb20gJy4vZGVtb2FwcC9hY3Rpb25zJ1xuaW1wb3J0ICogYXMgdGVzdGhvb2tzIGZyb20gJy4vZGVtb2FwcC9ob29rcydcbmltcG9ydCAqIGFzIHRlc3RhbGlhc2VzIGZyb20gJy4vZGVtb2FwcC9hbGlhc2VzJ1xuXG5kZXNjcmliZSgnQXRsYXM6OmluaXQoKScsICgpID0+IHtcbiAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHtcbiAgICB0aGlzLnNhbmRib3guc3R1YihBdGxhcy5wcm90b3R5cGUsICdhY3Rpb24nKS5yZXR1cm5zVGhpcygpXG4gICAgdGhpcy5zYW5kYm94LnN0dWIoQXRsYXMucHJvdG90eXBlLCAnaG9vaycpLnJldHVybnNUaGlzKClcbiAgICB0aGlzLnNhbmRib3guc3R1YihBdGxhcy5wcm90b3R5cGUsICdzZXJ2aWNlJykucmV0dXJuc1RoaXMoKVxuICB9KVxuXG5cbiAgaXQoJ2V4aXN0cycsICgpID0+IHtcbiAgICBleHBlY3QoQXRsYXMpLml0c2VsZi50by5yZXNwb25kVG8oJ2luaXQnKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiBubyByb290IGlzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBBdGxhcy5pbml0KHsgZW52OiAndGVzdCcgfSkpXG4gICAgICAudG8udGhyb3coRnJhbWV3b3JrRXJyb3IsIC9yb290IG11c3QgYmUgZXhwbGljaXRseSBzcGVjaWZpZWQvdSlcbiAgfSlcblxuICBpdCgnZG9lcyBub3QgdGhyb3cgVHlwZUVycm9yIHdoZW4gb3B0aW9ucyBpcyBub3QgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IEF0bGFzLmluaXQoKSkudG8ubm90LnRocm93KFR5cGVFcnJvcilcbiAgfSlcblxuICBpdCgnbG9hZHMgYWxsIGFjdGlvbnMsIGhvb2tzIGFuZCBzZXJ2aWNlcyBmcm9tIHRoZSBzcGVjaWZpZWQgbG9jYXRpb25zJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3RvID0gQXRsYXMucHJvdG90eXBlXG4gICAgY29uc3Qgcm9vdCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdkZW1vYXBwJylcbiAgICBjb25zdCBhdGxhcyA9IEF0bGFzLmluaXQoe1xuICAgICAgcm9vdCxcbiAgICAgIGVudjogJ3Rlc3QnLFxuICAgICAgY29uZmlnOiAnY29uZmlnJyxcbiAgICAgIGhvb2tzOiAnaG9va3MnLFxuICAgICAgYWN0aW9uczogJ2FjdGlvbnMnLFxuICAgICAgc2VydmljZXM6ICdzZXJ2aWNlcycsXG4gICAgICBhbGlhc2VzOiAnYWxpYXNlcycsXG4gICAgfSlcblxuICAgIC8vIFRlc3Qgc2VydmljZXNcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBDb21wb25lbnRdIG9mIE9iamVjdC5lbnRyaWVzKHRlc3RzZXJ2aWNlcykpIHtcbiAgICAgIGNvbnN0IGFsaWFzZXMgPSB0ZXN0YWxpYXNlcy5zZXJ2aWNlc1tuYW1lXVxuICAgICAgZXhwZWN0KHByb3RvLnNlcnZpY2UpLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKG5hbWUsIENvbXBvbmVudCwgeyBhbGlhc2VzIH0pXG4gICAgfVxuICAgIC8vIFRlc3QgYWN0aW9uc1xuICAgIGZvciAoY29uc3QgW25hbWUsIENvbXBvbmVudF0gb2YgT2JqZWN0LmVudHJpZXModGVzdGFjdGlvbnMpKSB7XG4gICAgICBjb25zdCBhbGlhc2VzID0gdGVzdGFsaWFzZXMuYWN0aW9uc1tuYW1lXVxuICAgICAgZXhwZWN0KHByb3RvLmFjdGlvbikudG8uaGF2ZS5iZWVuLmNhbGxlZFdpdGgobmFtZSwgQ29tcG9uZW50LCB7IGFsaWFzZXMgfSlcbiAgICB9XG4gICAgLy8gVGVzdCBob29rc1xuICAgIGZvciAoY29uc3QgW25hbWUsIENvbXBvbmVudF0gb2YgT2JqZWN0LmVudHJpZXModGVzdGhvb2tzKSkge1xuICAgICAgY29uc3QgYWxpYXNlcyA9IHRlc3RhbGlhc2VzLmhvb2tzW25hbWVdXG4gICAgICBleHBlY3QocHJvdG8uaG9vaykudG8uaGF2ZS5iZWVuLmNhbGxlZFdpdGgobmFtZSwgQ29tcG9uZW50LCB7IGFsaWFzZXMgfSlcbiAgICB9XG5cbiAgICAvLyBTdHVmZiBkaXJlY3RseSBvbiBhdGxhc1xuICAgIGV4cGVjdChhdGxhcy5jb25maWcpLnRvLmhhdmUuYWxsLmtleXMoWydhdGxhcycsICdzZXJ2aWNlcycsICdob29rcycsICdhY3Rpb25zJ10pXG4gICAgZXhwZWN0KGF0bGFzLmNvbmZpZy5hdGxhcykudG8uaW5jbHVkZS5rZXlzKFsndGVzdCcsICdvdmVycmlkZSddKVxuICAgIGV4cGVjdChhdGxhcy5jb25maWcuc2VydmljZXMpLnRvLmVxbCh7IGR1bW15OiB7XG4gICAgICB0ZXN0OiB0cnVlLFxuICAgICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgfSB9KVxuICAgIGV4cGVjdChhdGxhcy5jb25maWcuaG9va3MpLnRvLmVxbCh7IGR1bW15OiB7XG4gICAgICB0ZXN0OiB0cnVlLFxuICAgICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgfSB9KVxuICAgIGV4cGVjdChhdGxhcy5jb25maWcuYWN0aW9ucykudG8uZXFsKHsgZHVtbXk6IHtcbiAgICAgIHRlc3Q6IHRydWUsXG4gICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICB9IH0pXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIGRlZmF1bHRzIGZvciBwYXRocyB0byBzZXJ2aWNlcywgaG9va3MsIGFjdGlvbnMsIGFsaWFzZXMgYW5kIGNvbmZpZyBkaXJzJywgKCkgPT4ge1xuICAgIGNvbnN0IHJvb3QgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnZGVtb2FwcCcpXG4gICAgY29uc3QgYXRsYXMgPSBBdGxhcy5pbml0KHtcbiAgICAgIHJvb3QsXG4gICAgICBlbnY6ICd0ZXN0JyxcbiAgICB9KVxuXG4gICAgLy8gU2hvdWxkIG5vdCB0aHJvd1xuICAgIHJldHVybiBhdGxhcy5wcmVwYXJlKClcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdFeGNlcHRpb24gaGFuZGxpbmcnLCAoKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdkZW1vYXBwJylcbiAgICBjb25zdCB0eXBlcyA9IFtcbiAgICAgICdjb25maWcnLFxuICAgICAgJ3NlcnZpY2VzJyxcbiAgICAgICdhY3Rpb25zJyxcbiAgICAgICdob29rcycsXG4gICAgICAnYWxpYXNlcycsXG4gICAgXVxuXG4gICAgZm9yIChjb25zdCB0eXBlIG9mIHR5cGVzKSB7XG4gICAgICBpdChgZG9lcyBub3QgdGhyb3cgd2hlbiAke3R5cGV9IG1vZHVsZSBkb2VzIG5vdCBleGlzdGAsICgpID0+IHtcbiAgICAgICAgQXRsYXMuaW5pdCh7XG4gICAgICAgICAgcm9vdCxcbiAgICAgICAgICBlbnY6ICd0ZXN0JyxcbiAgICAgICAgICBjb25maWc6ICdsb2xjb25mJyxcbiAgICAgICAgICBzZXJ2aWNlczogJ2xvbHNlcnYnLFxuICAgICAgICAgIGFjdGlvbnM6ICdsb2xhY3Rpb25zJyxcbiAgICAgICAgICBob29rczogJ2xvbGhvb2tzJyxcbiAgICAgICAgICBhbGlhc2VzOiAnbG9sYWxpYXNlcycsXG4gICAgICAgIH0pXG4gICAgICB9KVxuXG4gICAgICBpdChgdGhyb3dzIHdoZW4gJHt0eXBlfSBtb2R1bGUgY29udGFpbnMgZXJyb3JzYCwgKCkgPT4ge1xuICAgICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICAgIEF0bGFzLmluaXQoe1xuICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgIGVudjogJ3Rlc3QnLFxuICAgICAgICAgICAgW3R5cGVdOiAnd2lsbC10aHJvdycsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSkudG8udGhyb3coKVxuICAgICAgfSlcbiAgICB9XG4gIH0pXG59KVxuIl19

@@ -151,6 +151,6 @@ "use strict";

atlas.hook('empty', Empty);
return expect(atlas.prepare()).to.eventually.be.rejectedWith(_errors.FrameworkError, /does not have static 'observes' property/i);
return expect(atlas.prepare()).to.eventually.be.rejectedWith(_errors.FrameworkError, /does not have static 'observes' property/ui);
});
});
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByZXBhcmUudGVzdC5tanMiXSwibmFtZXMiOlsiU2VydmljZUFwaSIsIkR1bW15U2VydmljZSIsIlNlcnZpY2UiLCJkZWZhdWx0IiwiRHVtbXlIb29rIiwiSG9vayIsIkR1bW15QWN0aW9uIiwiQWN0aW9uIiwic2lub24iLCJzdHViIiwiZGVzY3JpYmUiLCJhdGxhcyIsIm9wdGlvbnMiLCJiZWZvcmVFYWNoIiwicm9vdCIsIl9fZGlybmFtZSIsImNvbmZpZyIsInNlcnZpY2VzIiwiZHVtbXkiLCJ0ZXN0IiwiaG9va3MiLCJBdGxhcyIsIml0IiwiZXhwZWN0IiwicHJlcGFyZSIsInRvIiwiYmUiLCJpbnN0YW5jZW9mIiwiUHJvbWlzZSIsImVxdWFsIiwicHJlcGFyZWQiLCJwcm90b3R5cGUiLCJyZXNvbHZlcyIsInNlcnZpY2UiLCJoYXZlIiwiY2FsbENvdW50IiwiaW5zdGFuY2UiLCJhcGkiLCJwcm9wZXJ0eSIsIkludGVybmFsU2VydmljZSIsIm5vdCIsImFjdGlvbiIsImFjdGlvbnMiLCJyZXNwb25kVG8iLCJJbnRlcm5hbEFjdGlvbiIsImFmdGVyUHJlcGFyZSIsImhvb2siLCJwcm90byIsImJlZW4iLCJjYWxsZWRXaXRoIiwiRW1wdHkiLCJldmVudHVhbGx5IiwicmVqZWN0ZWRXaXRoIiwiRnJhbWV3b3JrRXJyb3IiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLE1BQU1BLFVBQU4sQ0FBaUI7O0FBRWpCLE1BQU1DLFlBQU4sU0FBMkJDLGdCQUEzQixDQUFtQzs7Z0JBQTdCRCxZLGNBQ2M7QUFBRUUsV0FBUztBQUFYLEM7O0FBR3BCLE1BQU1DLFNBQU4sU0FBd0JDLGFBQXhCLENBQTZCOztnQkFBdkJELFMsY0FDYyxPOztnQkFEZEEsUyxjQUVjO0FBQUVELFdBQVM7QUFBWCxDOztBQUdwQixNQUFNRyxXQUFOLFNBQTBCQyxlQUExQixDQUFpQztBQUFBO0FBQUE7O0FBQUEseUNBQ2pCQyxNQUFNQyxJ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MkIsU0FBVixDQUFvQmMsWUFBM0IsRUFBeUNwQixFQUF6QyxDQUE0Q1MsSUFBNUMsQ0FBaURDLFNBQWpELENBQTJELENBQTNEO0FBQ0QsS0FKRDtBQU1BYixPQUFHLHFEQUFILEVBQTBELFlBQVk7QUFDcEUsWUFBTXlCLFFBQVEzQyxVQUFVMkIsU0FBeEI7QUFDQSxZQUFNcEIsTUFBTWEsT0FBTixFQUFOO0FBRUFELGFBQU93QixNQUFNRixZQUFiLEVBQTJCcEIsRUFBM0IsQ0FBOEJTLElBQTlCLENBQW1DYyxJQUFuQyxDQUF3Q0MsVUFBeEMsQ0FBbUR0QyxLQUFuRDtBQUNELEtBTEQ7QUFPQVcsT0FBRyx1REFBSCxFQUE0RCxZQUFZO0FBQ3RFLFlBQU00QixLQUFOLFNBQW9CN0MsYUFBcEIsQ0FBeUI7O0FBRDZDLHNCQUNoRTZDLEtBRGdFLGNBRWxELE9BRmtEOztBQUt0RXZDLFlBQU1tQyxJQUFOLENBQVcsT0FBWCxFQUFvQkksS0FBcEI7QUFFQSxZQUFNdkMsTUFBTWEsT0FBTixFQUFOO0FBQ0QsS0FSRDtBQVVBRixPQUFHLHdFQUFILEVBQTZFLE1BQU07QUFDakYsWUFBTTRCLEtBQU4sU0FBb0I3QyxhQUFwQixDQUF5Qjs7QUFFekJNLFlBQU1tQyxJQUFOLENBQVcsT0FBWCxFQUFvQkksS0FBcEI7QUFFQSxhQUFPM0IsT0FBT1osTUFBTWEsT0FBTixFQUFQLEVBQXdCQyxFQUF4QixDQUEyQjBCLFVBQTNCLENBQXNDekIsRUFBdEMsQ0FBeUMwQixZQUF6QyxDQUNMQyxzQkFESyxFQUVMLDJDQUZLLENBQVA7QUFJRCxLQVREO0FBVUQsR0F6Q0Q7QUEwQ0QsQ0E3SUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uJ1xuaW1wb3J0IFNlcnZpY2UgZnJvbSAnQGF0bGFzLmpzL3NlcnZpY2UnXG5pbXBvcnQgSG9vayBmcm9tICdAYXRsYXMuanMvaG9vaydcbmltcG9ydCBBY3Rpb24gZnJvbSAnQGF0bGFzLmpzL2FjdGlvbidcbmltcG9ydCB7IEZyYW1ld29ya0Vycm9yIH0gZnJvbSAnQGF0bGFzLmpzL2Vycm9ycydcblxuY2xhc3MgU2VydmljZUFwaSB7fVxuXG5jbGFzcyBEdW1teVNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHtcbiAgc3RhdGljIGRlZmF1bHRzID0geyBkZWZhdWx0OiB0cnVlIH1cbn1cblxuY2xhc3MgRHVtbXlIb29rIGV4dGVuZHMgSG9vayB7XG4gIHN0YXRpYyBvYnNlcnZlcyA9ICdhdGxhcydcbiAgc3RhdGljIGRlZmF1bHRzID0geyBkZWZhdWx0OiB0cnVlIH1cbn1cblxuY2xhc3MgRHVtbXlBY3Rpb24gZXh0ZW5kcyBBY3Rpb24ge1xuICBkdW1teU1ldGhvZCA9IHNpbm9uLnN0dWIoKVxufVxuXG5kZXNjcmliZSgnQXRsYXM6OnByZXBhcmUoKScsICgpID0+IHtcbiAgbGV0IGF0bGFzXG4gIGxldCBvcHRpb25zXG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIHJvb3Q6IF9fZGlybmFtZSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBzZXJ2aWNlczoge1xuICAgICAgICAgIGR1bW15OiB7XG4gICAgICAgICAgICB0ZXN0OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGhvb2tzOiB7XG4gICAgICAgICAgZHVtbXk6IHtcbiAgICAgICAgICAgIHRlc3Q6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGF0bGFzID0gbmV3IEF0bGFzKG9wdGlvbnMpXG4gIH0pXG5cblxuICBpdCgnaXMgYXN5bmMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGF0bGFzLnByZXBhcmUoKSkudG8uYmUuaW5zdGFuY2VvZihQcm9taXNlKVxuICB9KVxuXG4gIGl0KCdyZXR1cm5zIHRoaXMnLCBhc3luYyAoKSA9PiB7XG4gICAgZXhwZWN0KGF3YWl0IGF0bGFzLnByZXBhcmUoKSkudG8uZXF1YWwoYXRsYXMpXG4gIH0pXG5cbiAgaXQoJ3NldHMgYXRsYXMucHJlcGFyZWQgdG8gdHJ1ZScsIGFzeW5jICgpID0+IHtcbiAgICBleHBlY3QoYXRsYXMucHJlcGFyZWQpLnRvLmVxdWFsKGZhbHNlKVxuICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuICAgIGV4cGVjdChhdGxhcy5wcmVwYXJlZCkudG8uZXF1YWwodHJ1ZSlcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdTZXJ2aWNlIGludGVyYWN0aW9ucycsICgpID0+IHtcbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIER1bW15U2VydmljZS5wcm90b3R5cGUucHJlcGFyZSA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcyhuZXcgU2VydmljZUFwaSgpKVxuICAgICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBEdW1teVNlcnZpY2UpXG4gICAgfSlcblxuXG4gICAgaXQoJ2NhbGxzIHByZXBhcmUgb24gdGhlIHNlcnZpY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBhdGxhcy5wcmVwYXJlKClcbiAgICAgIGV4cGVjdChEdW1teVNlcnZpY2UucHJvdG90eXBlLnByZXBhcmUpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgfSlcblxuICAgIGl0KCdleHBvc2VzIHRoZSByZXR1cm5lZCBpbnN0YW5jZSBvbiBhdGxhcy5zZXJ2aWNlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0geyBhcGk6IHRydWUgfVxuICAgICAgRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5wcmVwYXJlLnJlc29sdmVzKGluc3RhbmNlKVxuICAgICAgYXdhaXQgYXRsYXMucHJlcGFyZSgpXG5cbiAgICAgIGV4cGVjdChhdGxhcy5zZXJ2aWNlcykudG8uaGF2ZS5wcm9wZXJ0eSgnZHVtbXknKVxuICAgICAgZXhwZWN0KGF0bGFzLnNlcnZpY2VzLmR1bW15KS50by5lcXVhbChpbnN0YW5jZSlcbiAgICB9KVxuXG4gICAgaXQoJ2NhbGxzIHRoZSBtZXRob2Qgb25seSBvbmNlIGZvciBlYWNoIHNlcnZpY2UgZm9yIG11bHRpcGxlIC5wcmVwYXJlKCkgY2FsbHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBhdGxhcy5wcmVwYXJlKClcbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5wcmVwYXJlKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgIH0pXG5cbiAgICBpdCgnZG9lcyBub3QgZXhwb3NlIHNlcnZpY2VzIG1hcmtlZCBhcyBpbnRlcm5hbCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNsYXNzIEludGVybmFsU2VydmljZSBleHRlbmRzIFNlcnZpY2Uge1xuICAgICAgICBzdGF0aWMgaW50ZXJuYWwgPSB0cnVlXG4gICAgICB9XG4gICAgICBhdGxhcy5zZXJ2aWNlKCdpbnRlcm5hbCcsIEludGVybmFsU2VydmljZSlcbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuXG4gICAgICBleHBlY3QoYXRsYXMuc2VydmljZXMpLm5vdC50by5oYXZlLnByb3BlcnR5KCdpbnRlcm5hbCcpXG4gICAgfSlcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdBY3Rpb24gaW50ZXJhY3Rpb25zJywgKCkgPT4ge1xuICAgIGl0KCdleHBvc2VzIGFsbCBhY3Rpb25zIG9uIHRoaXMuYWN0aW9ucycsIGFzeW5jICgpID0+IHtcbiAgICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBEdW1teUFjdGlvbilcbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuXG4gICAgICBleHBlY3QoYXRsYXMuYWN0aW9ucykudG8uaGF2ZS5wcm9wZXJ0eSgnZHVtbXknKVxuICAgICAgZXhwZWN0KGF0bGFzLmFjdGlvbnMuZHVtbXkpLnRvLnJlc3BvbmRUbygnZHVtbXlNZXRob2QnKVxuICAgIH0pXG5cbiAgICBpdCgnZG9lcyBub3QgZXhwb3NlIGFjdGlvbnMgbWFya2VkIGFzIGludGVybmFsJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY2xhc3MgSW50ZXJuYWxBY3Rpb24gZXh0ZW5kcyBBY3Rpb24ge1xuICAgICAgICBzdGF0aWMgaW50ZXJuYWwgPSB0cnVlXG4gICAgICB9XG4gICAgICBhdGxhcy5hY3Rpb24oJ2ludGVybmFsJywgSW50ZXJuYWxBY3Rpb24pXG4gICAgICBhd2FpdCBhdGxhcy5wcmVwYXJlKClcblxuICAgICAgZXhwZWN0KGF0bGFzLmFjdGlvbnMpLm5vdC50by5oYXZlLnByb3BlcnR5KCdpbnRlcm5hbCcpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgnSG9vayBpbnRlcmFjdGlvbnMnLCAoKSA9PiB7XG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBEdW1teUhvb2sucHJvdG90eXBlLmFmdGVyUHJlcGFyZSA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG5cbiAgICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15JywgRHVtbXlTZXJ2aWNlKVxuICAgICAgYXRsYXMuaG9vaygnZHVtbXknLCBEdW1teUhvb2spXG4gICAgfSlcblxuICAgIGl0KCdjYWxscyB0aGUgcHJlcGFyZSBob29rcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuXG4gICAgICBleHBlY3QoRHVtbXlIb29rLnByb3RvdHlwZS5hZnRlclByZXBhcmUpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgfSlcblxuICAgIGl0KCdjYWxscyB0aGUgYWZ0ZXJQcmVwYXJlIGhvb2sgd2l0aCB0aGUgYXRsYXMgaW5zdGFuY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm90byA9IER1bW15SG9vay5wcm90b3R5cGVcbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuXG4gICAgICBleHBlY3QocHJvdG8uYWZ0ZXJQcmVwYXJlKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChhdGxhcylcbiAgICB9KVxuXG4gICAgaXQoJ2NhbiBoYW5kbGUgaG9va3Mgd2hpY2ggZG8gbm90IGltcGxlbWVudCBhbnkgbGlzdGVuZXJzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY2xhc3MgRW1wdHkgZXh0ZW5kcyBIb29rIHtcbiAgICAgICAgc3RhdGljIG9ic2VydmVzID0gJ2F0bGFzJ1xuICAgICAgfVxuXG4gICAgICBhdGxhcy5ob29rKCdlbXB0eScsIEVtcHR5KVxuICAgICAgLy8gVGhpcyBub3QgdGhyb3dpbmcgd2lsbCBzdWZmaWNlIPCfmI5cbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuICAgIH0pXG5cbiAgICBpdCgndGhyb3dzIHdoZW4gYSBob29rIGRvZXMgbm90IGRlY2xhcmUgdGhlIGNvbXBvbmVudCB0aGV5IHdhbnQgdG8gb2JzZXJ2ZScsICgpID0+IHtcbiAgICAgIGNsYXNzIEVtcHR5IGV4dGVuZHMgSG9vayB7fVxuXG4gICAgICBhdGxhcy5ob29rKCdlbXB0eScsIEVtcHR5KVxuXG4gICAgICByZXR1cm4gZXhwZWN0KGF0bGFzLnByZXBhcmUoKSkudG8uZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoXG4gICAgICAgIEZyYW1ld29ya0Vycm9yLFxuICAgICAgICAvZG9lcyBub3QgaGF2ZSBzdGF0aWMgJ29ic2VydmVzJyBwcm9wZXJ0eS9pLFxuICAgICAgKVxuICAgIH0pXG4gIH0pXG59KVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByZXBhcmUudGVzdC5tanMiXSwibmFtZXMiOlsiU2VydmljZUFwaSIsIkR1bW15U2VydmljZSIsIlNlcnZpY2UiLCJkZWZhdWx0IiwiRHVtbXlIb29rIiwiSG9vayIsIkR1bW15QWN0aW9uIiwiQWN0aW9uIiwic2lub24iLCJzdHViIiwiZGVzY3JpYmUiLCJhdGxhcyIsIm9wdGlvbnMiLCJiZWZvcmVFYWNoIiwicm9vdCIsIl9fZGlybmFtZSIsImNvbmZpZyIsInNlcnZpY2VzIiwiZHVtbXkiLCJ0ZXN0IiwiaG9va3MiLCJBdGxhcyIsIml0IiwiZXhwZWN0IiwicHJlcGFyZSIsInRvIiwiYmUiLCJpbnN0YW5jZW9mIiwiUHJvbWlzZSIsImVxdWFsIiwicHJlcGFyZWQiLCJwcm90b3R5cGUiLCJyZXNvbHZlcyIsInNlcnZpY2UiLCJoYXZlIiwiY2FsbENvdW50IiwiaW5zdGFuY2UiLCJhcGkiLCJwcm9wZXJ0eSIsIkludGVybmFsU2VydmljZSIsIm5vdCIsImFjdGlvbiIsImFjdGlvbnMiLCJyZXNwb25kVG8iLCJJbnRlcm5hbEFjdGlvbiIsImFmdGVyUHJlcGFyZSIsImhvb2siLCJwcm90byIsImJlZW4iLCJjYWxsZWRXaXRoIiwiRW1wdHkiLCJldmVudHVhbGx5IiwicmVqZWN0ZWRXaXRoIiwiRnJhbWV3b3JrRXJyb3IiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLE1BQU1BLFVBQU4sQ0FBaUI7O0FBRWpCLE1BQU1DLFlBQU4sU0FBMkJDLGdCQUEzQixDQUFtQzs7Z0JBQTdCRCxZLGNBQ2M7QUFBRUUsRUFBQUEsT0FBTyxFQUFFO0FBQVgsQzs7QUFHcEIsTUFBTUMsU0FBTixTQUF3QkMsYUFBeEIsQ0FBNkI7O2dCQUF2QkQsUyxjQUNjLE87O2dCQURkQSxTLGNBRWM7QUFBRUQsRUFBQUEsT0FBTyxFQUFFO0FBQVgsQzs7QUFHcEIsTUFBTUcsV0FBTixTQUEwQkMsZUFBMUIsQ0FBaUM7QUFBQTtBQUFB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S0FKQyxDQUFGO0FBTUFiLElBQUFBLEVBQUUsQ0FBQyxxREFBRCxFQUF3RCxZQUFZO0FBQ3BFLFlBQU15QixLQUFLLEdBQUczQyxTQUFTLENBQUMyQixTQUF4QjtBQUNBLFlBQU1wQixLQUFLLENBQUNhLE9BQU4sRUFBTjtBQUVBRCxNQUFBQSxNQUFNLENBQUN3QixLQUFLLENBQUNGLFlBQVAsQ0FBTixDQUEyQnBCLEVBQTNCLENBQThCUyxJQUE5QixDQUFtQ2MsSUFBbkMsQ0FBd0NDLFVBQXhDLENBQW1EdEMsS0FBbkQ7QUFDRCxLQUxDLENBQUY7QUFPQVcsSUFBQUEsRUFBRSxDQUFDLHVEQUFELEVBQTBELFlBQVk7QUFDdEUsWUFBTTRCLEtBQU4sU0FBb0I3QyxhQUFwQixDQUF5Qjs7QUFENkMsc0JBQ2hFNkMsS0FEZ0UsY0FFbEQsT0FGa0Q7O0FBS3RFdkMsTUFBQUEsS0FBSyxDQUFDbUMsSUFBTixDQUFXLE9BQVgsRUFBb0JJLEtBQXBCO0FBRUEsWUFBTXZDLEtBQUssQ0FBQ2EsT0FBTixFQUFOO0FBQ0QsS0FSQyxDQUFGO0FBVUFGLElBQUFBLEVBQUUsQ0FBQyx3RUFBRCxFQUEyRSxNQUFNO0FBQ2pGLFlBQU00QixLQUFOLFNBQW9CN0MsYUFBcEIsQ0FBeUI7O0FBRXpCTSxNQUFBQSxLQUFLLENBQUNtQyxJQUFOLENBQVcsT0FBWCxFQUFvQkksS0FBcEI7QUFFQSxhQUFPM0IsTUFBTSxDQUFDWixLQUFLLENBQUNhLE9BQU4sRUFBRCxDQUFOLENBQXdCQyxFQUF4QixDQUEyQjBCLFVBQTNCLENBQXNDekIsRUFBdEMsQ0FBeUMwQixZQUF6QyxDQUNMQyxzQkFESyxFQUVMLDRDQUZLLENBQVA7QUFJRCxLQVRDLENBQUY7QUFVRCxHQXpDTyxDQUFSO0FBMENELENBN0lPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uJ1xuaW1wb3J0IFNlcnZpY2UgZnJvbSAnQGF0bGFzLmpzL3NlcnZpY2UnXG5pbXBvcnQgSG9vayBmcm9tICdAYXRsYXMuanMvaG9vaydcbmltcG9ydCBBY3Rpb24gZnJvbSAnQGF0bGFzLmpzL2FjdGlvbidcbmltcG9ydCB7IEZyYW1ld29ya0Vycm9yIH0gZnJvbSAnQGF0bGFzLmpzL2Vycm9ycydcblxuY2xhc3MgU2VydmljZUFwaSB7fVxuXG5jbGFzcyBEdW1teVNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHtcbiAgc3RhdGljIGRlZmF1bHRzID0geyBkZWZhdWx0OiB0cnVlIH1cbn1cblxuY2xhc3MgRHVtbXlIb29rIGV4dGVuZHMgSG9vayB7XG4gIHN0YXRpYyBvYnNlcnZlcyA9ICdhdGxhcydcbiAgc3RhdGljIGRlZmF1bHRzID0geyBkZWZhdWx0OiB0cnVlIH1cbn1cblxuY2xhc3MgRHVtbXlBY3Rpb24gZXh0ZW5kcyBBY3Rpb24ge1xuICBkdW1teU1ldGhvZCA9IHNpbm9uLnN0dWIoKVxufVxuXG5kZXNjcmliZSgnQXRsYXM6OnByZXBhcmUoKScsICgpID0+IHtcbiAgbGV0IGF0bGFzXG4gIGxldCBvcHRpb25zXG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIHJvb3Q6IF9fZGlybmFtZSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBzZXJ2aWNlczoge1xuICAgICAgICAgIGR1bW15OiB7XG4gICAgICAgICAgICB0ZXN0OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGhvb2tzOiB7XG4gICAgICAgICAgZHVtbXk6IHtcbiAgICAgICAgICAgIHRlc3Q6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGF0bGFzID0gbmV3IEF0bGFzKG9wdGlvbnMpXG4gIH0pXG5cblxuICBpdCgnaXMgYXN5bmMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGF0bGFzLnByZXBhcmUoKSkudG8uYmUuaW5zdGFuY2VvZihQcm9taXNlKVxuICB9KVxuXG4gIGl0KCdyZXR1cm5zIHRoaXMnLCBhc3luYyAoKSA9PiB7XG4gICAgZXhwZWN0KGF3YWl0IGF0bGFzLnByZXBhcmUoKSkudG8uZXF1YWwoYXRsYXMpXG4gIH0pXG5cbiAgaXQoJ3NldHMgYXRsYXMucHJlcGFyZWQgdG8gdHJ1ZScsIGFzeW5jICgpID0+IHtcbiAgICBleHBlY3QoYXRsYXMucHJlcGFyZWQpLnRvLmVxdWFsKGZhbHNlKVxuICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuICAgIGV4cGVjdChhdGxhcy5wcmVwYXJlZCkudG8uZXF1YWwodHJ1ZSlcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdTZXJ2aWNlIGludGVyYWN0aW9ucycsICgpID0+IHtcbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIER1bW15U2VydmljZS5wcm90b3R5cGUucHJlcGFyZSA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcyhuZXcgU2VydmljZUFwaSgpKVxuICAgICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBEdW1teVNlcnZpY2UpXG4gICAgfSlcblxuXG4gICAgaXQoJ2NhbGxzIHByZXBhcmUgb24gdGhlIHNlcnZpY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBhdGxhcy5wcmVwYXJlKClcbiAgICAgIGV4cGVjdChEdW1teVNlcnZpY2UucHJvdG90eXBlLnByZXBhcmUpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgfSlcblxuICAgIGl0KCdleHBvc2VzIHRoZSByZXR1cm5lZCBpbnN0YW5jZSBvbiBhdGxhcy5zZXJ2aWNlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0geyBhcGk6IHRydWUgfVxuICAgICAgRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5wcmVwYXJlLnJlc29sdmVzKGluc3RhbmNlKVxuICAgICAgYXdhaXQgYXRsYXMucHJlcGFyZSgpXG5cbiAgICAgIGV4cGVjdChhdGxhcy5zZXJ2aWNlcykudG8uaGF2ZS5wcm9wZXJ0eSgnZHVtbXknKVxuICAgICAgZXhwZWN0KGF0bGFzLnNlcnZpY2VzLmR1bW15KS50by5lcXVhbChpbnN0YW5jZSlcbiAgICB9KVxuXG4gICAgaXQoJ2NhbGxzIHRoZSBtZXRob2Qgb25seSBvbmNlIGZvciBlYWNoIHNlcnZpY2UgZm9yIG11bHRpcGxlIC5wcmVwYXJlKCkgY2FsbHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBhdGxhcy5wcmVwYXJlKClcbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5wcmVwYXJlKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgIH0pXG5cbiAgICBpdCgnZG9lcyBub3QgZXhwb3NlIHNlcnZpY2VzIG1hcmtlZCBhcyBpbnRlcm5hbCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNsYXNzIEludGVybmFsU2VydmljZSBleHRlbmRzIFNlcnZpY2Uge1xuICAgICAgICBzdGF0aWMgaW50ZXJuYWwgPSB0cnVlXG4gICAgICB9XG4gICAgICBhdGxhcy5zZXJ2aWNlKCdpbnRlcm5hbCcsIEludGVybmFsU2VydmljZSlcbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuXG4gICAgICBleHBlY3QoYXRsYXMuc2VydmljZXMpLm5vdC50by5oYXZlLnByb3BlcnR5KCdpbnRlcm5hbCcpXG4gICAgfSlcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdBY3Rpb24gaW50ZXJhY3Rpb25zJywgKCkgPT4ge1xuICAgIGl0KCdleHBvc2VzIGFsbCBhY3Rpb25zIG9uIHRoaXMuYWN0aW9ucycsIGFzeW5jICgpID0+IHtcbiAgICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBEdW1teUFjdGlvbilcbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuXG4gICAgICBleHBlY3QoYXRsYXMuYWN0aW9ucykudG8uaGF2ZS5wcm9wZXJ0eSgnZHVtbXknKVxuICAgICAgZXhwZWN0KGF0bGFzLmFjdGlvbnMuZHVtbXkpLnRvLnJlc3BvbmRUbygnZHVtbXlNZXRob2QnKVxuICAgIH0pXG5cbiAgICBpdCgnZG9lcyBub3QgZXhwb3NlIGFjdGlvbnMgbWFya2VkIGFzIGludGVybmFsJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY2xhc3MgSW50ZXJuYWxBY3Rpb24gZXh0ZW5kcyBBY3Rpb24ge1xuICAgICAgICBzdGF0aWMgaW50ZXJuYWwgPSB0cnVlXG4gICAgICB9XG4gICAgICBhdGxhcy5hY3Rpb24oJ2ludGVybmFsJywgSW50ZXJuYWxBY3Rpb24pXG4gICAgICBhd2FpdCBhdGxhcy5wcmVwYXJlKClcblxuICAgICAgZXhwZWN0KGF0bGFzLmFjdGlvbnMpLm5vdC50by5oYXZlLnByb3BlcnR5KCdpbnRlcm5hbCcpXG4gICAgfSlcbiAgfSlcblxuICBkZXNjcmliZSgnSG9vayBpbnRlcmFjdGlvbnMnLCAoKSA9PiB7XG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBEdW1teUhvb2sucHJvdG90eXBlLmFmdGVyUHJlcGFyZSA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG5cbiAgICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15JywgRHVtbXlTZXJ2aWNlKVxuICAgICAgYXRsYXMuaG9vaygnZHVtbXknLCBEdW1teUhvb2spXG4gICAgfSlcblxuICAgIGl0KCdjYWxscyB0aGUgcHJlcGFyZSBob29rcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuXG4gICAgICBleHBlY3QoRHVtbXlIb29rLnByb3RvdHlwZS5hZnRlclByZXBhcmUpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgfSlcblxuICAgIGl0KCdjYWxscyB0aGUgYWZ0ZXJQcmVwYXJlIGhvb2sgd2l0aCB0aGUgYXRsYXMgaW5zdGFuY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm90byA9IER1bW15SG9vay5wcm90b3R5cGVcbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuXG4gICAgICBleHBlY3QocHJvdG8uYWZ0ZXJQcmVwYXJlKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChhdGxhcylcbiAgICB9KVxuXG4gICAgaXQoJ2NhbiBoYW5kbGUgaG9va3Mgd2hpY2ggZG8gbm90IGltcGxlbWVudCBhbnkgbGlzdGVuZXJzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY2xhc3MgRW1wdHkgZXh0ZW5kcyBIb29rIHtcbiAgICAgICAgc3RhdGljIG9ic2VydmVzID0gJ2F0bGFzJ1xuICAgICAgfVxuXG4gICAgICBhdGxhcy5ob29rKCdlbXB0eScsIEVtcHR5KVxuICAgICAgLy8gVGhpcyBub3QgdGhyb3dpbmcgd2lsbCBzdWZmaWNlIPCfmI5cbiAgICAgIGF3YWl0IGF0bGFzLnByZXBhcmUoKVxuICAgIH0pXG5cbiAgICBpdCgndGhyb3dzIHdoZW4gYSBob29rIGRvZXMgbm90IGRlY2xhcmUgdGhlIGNvbXBvbmVudCB0aGV5IHdhbnQgdG8gb2JzZXJ2ZScsICgpID0+IHtcbiAgICAgIGNsYXNzIEVtcHR5IGV4dGVuZHMgSG9vayB7fVxuXG4gICAgICBhdGxhcy5ob29rKCdlbXB0eScsIEVtcHR5KVxuXG4gICAgICByZXR1cm4gZXhwZWN0KGF0bGFzLnByZXBhcmUoKSkudG8uZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoXG4gICAgICAgIEZyYW1ld29ya0Vycm9yLFxuICAgICAgICAvZG9lcyBub3QgaGF2ZSBzdGF0aWMgJ29ic2VydmVzJyBwcm9wZXJ0eS91aSxcbiAgICAgIClcbiAgICB9KVxuICB9KVxufSlcbiJdfQ==

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

it('throws if the module does not exist', () => {
expect(() => atlas.require('lolmodule')).to.throw(/Cannot find module/);
expect(() => atlas.require('lolmodule')).to.throw(/Cannot find module/u);
});

@@ -70,2 +70,2 @@ describe('optional: true', () => {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlcXVpcmUudGVzdC5tanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJhdGxhcyIsImJlZm9yZUVhY2giLCJBdGxhcyIsInJvb3QiLCJfX2Rpcm5hbWUiLCJpdCIsImV4cGVjdCIsInRvIiwicmVzcG9uZFRvIiwiY29uZmlnIiwicmVxdWlyZSIsImVxdWFsIiwiZGVtb2NvbmZpZyIsInRocm93Iiwib3B0aW9uYWwiLCJub3QiLCJjb250ZW50cyIsImJlIiwiYW4iLCJPYmplY3QiLCJrZXlzIiwiaGF2ZSIsImxlbmd0aCIsImFic29sdXRlIiwibm9ybWFsaXNlIiwicHJvcGVydHkiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7Ozs7QUFFQUEsU0FBUyxrQkFBVCxFQUE2QixNQUFNO0FBQ2pDLE1BQUlDLEtBQUo7QUFFQUMsYUFBVyxNQUFNO0FBQ2ZELFlBQVEsSUFBSUUsT0FBSixDQUFVO0FBQUVDLFlBQU1DO0FBQVIsS0FBVixDQUFSO0FBQ0QsR0FGRDtBQUtBQyxLQUFHLFFBQUgsRUFBYSxNQUFNO0FBQ2pCQyxXQUFPTixLQUFQLEVBQWNPLEVBQWQsQ0FBaUJDLFNBQWpCLENBQTJCLFNBQTNCO0FBQ0QsR0FGRDtBQUlBSCxLQUFHLHdDQUFILEVBQTZDLE1BQU07QUFDakQsVUFBTUksU0FBU1QsTUFBTVUsT0FBTixDQUFjLFlBQWQsQ0FBZjs7QUFFQUosV0FBT0csTUFBUCxFQUFlRixFQUFmLENBQWtCSSxLQUFsQixDQUF3QkMsVUFBeEI7QUFDRCxHQUpEO0FBTUFQLEtBQUcscUNBQUgsRUFBMEMsTUFBTTtBQUM5Q0MsV0FBTyxNQUFNTixNQUFNVSxPQUFOLENBQWMsV0FBZCxDQUFiLEVBQXlDSCxFQUF6QyxDQUE0Q00sS0FBNUMsQ0FBa0Qsb0JBQWxEO0FBQ0QsR0FGRDtBQUtBZCxXQUFTLGdCQUFULEVBQTJCLE1BQU07QUFDL0JNLE9BQUcsZ0JBQUgsRUFBcUIsTUFBTTtBQUN6QkMsYUFBTyxNQUFNTixNQUFNVSxPQUFOLENBQWMsV0FBZCxFQUEyQjtBQUFFSSxrQkFBVTtBQUFaLE9BQTNCLENBQWIsRUFBNkRQLEVBQTdELENBQWdFUSxHQUFoRSxDQUFvRUYsS0FBcEU7QUFDRCxLQUZEO0FBSUFSLE9BQUcsc0JBQUgsRUFBMkIsTUFBTTtBQUMvQixZQUFNVyxXQUFXaEIsTUFBTVUsT0FBTixDQUFjLFdBQWQsRUFBMkI7QUFBRUksa0JBQVU7QUFBWixPQUEzQixDQUFqQjs7QUFFQVIsYUFBT1UsUUFBUCxFQUFpQlQsRUFBakIsQ0FBb0JVLEVBQXBCLENBQXVCQyxFQUF2QixDQUEwQixRQUExQjtBQUNBWixhQUFPYSxPQUFPQyxJQUFQLENBQVlKLFFBQVosQ0FBUCxFQUE4QlQsRUFBOUIsQ0FBaUNjLElBQWpDLENBQXNDQyxNQUF0QyxDQUE2QyxDQUE3QztBQUNELEtBTEQ7QUFNRCxHQVhEO0FBY0F2QixXQUFTLGdCQUFULEVBQTJCLE1BQU07QUFDL0JNLE9BQUcsb0NBQUgsRUFBeUMsTUFBTTtBQUM3QyxZQUFNVyxXQUFXaEIsTUFBTVUsT0FBTixDQUFjLE1BQWQsRUFBc0I7QUFBRWEsa0JBQVU7QUFBWixPQUF0QixDQUFqQjs7QUFFQWpCLGFBQU9VLFFBQVAsRUFBaUJULEVBQWpCLENBQW9CVSxFQUFwQixDQUF1QkMsRUFBdkIsQ0FBMEIsUUFBMUI7QUFDRCxLQUpEO0FBS0QsR0FORDtBQVNBbkIsV0FBUyxpQkFBVCxFQUE0QixNQUFNO0FBQ2hDTSxPQUFHLDJDQUFILEVBQWdELE1BQU07QUFDcEQsWUFBTVcsV0FBV2hCLE1BQU1VLE9BQU4sQ0FBYywwQkFBZCxFQUEwQztBQUFFYyxtQkFBVztBQUFiLE9BQTFDLENBQWpCOztBQUVBbEIsYUFBT1UsUUFBUCxFQUFpQlQsRUFBakIsQ0FBb0JjLElBQXBCLENBQXlCSSxRQUF6QixDQUFrQyxTQUFsQyxFQUE2QyxJQUE3QztBQUNELEtBSkQ7QUFNQXBCLE9BQUcsOERBQUgsRUFBbUUsTUFBTTtBQUN2RSxZQUFNVyxXQUFXaEIsTUFBTVUsT0FBTixDQUFjLFlBQWQsRUFBNEI7QUFBRWMsbUJBQVc7QUFBYixPQUE1QixDQUFqQjs7QUFFQWxCLGFBQU9VLFFBQVAsRUFBaUJULEVBQWpCLENBQW9CYyxJQUFwQixDQUF5QkksUUFBekIsQ0FBa0MsT0FBbEM7QUFDQW5CLGFBQU9VLFNBQVNoQixLQUFoQixFQUF1Qk8sRUFBdkIsQ0FBMEJVLEVBQTFCLENBQTZCQyxFQUE3QixDQUFnQyxRQUFoQztBQUNELEtBTEQ7QUFNRCxHQWJEO0FBY0QsQ0E1REQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uJ1xuaW1wb3J0ICogYXMgZGVtb2NvbmZpZyBmcm9tICcuL2RlbW9jb25maWcnXG5cbmRlc2NyaWJlKCdBdGxhczo6cmVxdWlyZSgpJywgKCkgPT4ge1xuICBsZXQgYXRsYXNcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhdGxhcyA9IG5ldyBBdGxhcyh7IHJvb3Q6IF9fZGlybmFtZSB9KVxuICB9KVxuXG5cbiAgaXQoJ2V4aXN0cycsICgpID0+IHtcbiAgICBleHBlY3QoYXRsYXMpLnRvLnJlc3BvbmRUbygncmVxdWlyZScpXG4gIH0pXG5cbiAgaXQoJ3JlcXVpcmVzIGEgbW9kdWxlIHJlbGF0aXZlIHRvIHRoZSByb290JywgKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF0bGFzLnJlcXVpcmUoJ2RlbW9jb25maWcnKVxuXG4gICAgZXhwZWN0KGNvbmZpZykudG8uZXF1YWwoZGVtb2NvbmZpZylcbiAgfSlcblxuICBpdCgndGhyb3dzIGlmIHRoZSBtb2R1bGUgZG9lcyBub3QgZXhpc3QnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLnJlcXVpcmUoJ2xvbG1vZHVsZScpKS50by50aHJvdygvQ2Fubm90IGZpbmQgbW9kdWxlLylcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdvcHRpb25hbDogdHJ1ZScsICgpID0+IHtcbiAgICBpdCgnZG9lcyBub3QgdGhyb3cnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4gYXRsYXMucmVxdWlyZSgnbG9sbW9kdWxlJywgeyBvcHRpb25hbDogdHJ1ZSB9KSkudG8ubm90LnRocm93KClcbiAgICB9KVxuXG4gICAgaXQoJ3JldHVybnMgZW1wdHkgb2JqZWN0JywgKCkgPT4ge1xuICAgICAgY29uc3QgY29udGVudHMgPSBhdGxhcy5yZXF1aXJlKCdsb2xtb2R1bGUnLCB7IG9wdGlvbmFsOiB0cnVlIH0pXG5cbiAgICAgIGV4cGVjdChjb250ZW50cykudG8uYmUuYW4oJ29iamVjdCcpXG4gICAgICBleHBlY3QoT2JqZWN0LmtleXMoY29udGVudHMpKS50by5oYXZlLmxlbmd0aCgwKVxuICAgIH0pXG4gIH0pXG5cblxuICBkZXNjcmliZSgnYWJzb2x1dGU6IHRydWUnLCAoKSA9PiB7XG4gICAgaXQoJ2xvYWRzIHRoZSBtb2R1bGUgZnJvbSBub2RlX21vZHVsZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb250ZW50cyA9IGF0bGFzLnJlcXVpcmUoJ2NoYWknLCB7IGFic29sdXRlOiB0cnVlIH0pXG5cbiAgICAgIGV4cGVjdChjb250ZW50cykudG8uYmUuYW4oJ29iamVjdCcpXG4gICAgfSlcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdub3JtYWxpc2U6IHRydWUnLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgdGhlIGBkZWZhdWx0YCBleHBvcnQgaWYgaXQgZXhpc3RzJywgKCkgPT4ge1xuICAgICAgY29uc3QgY29udGVudHMgPSBhdGxhcy5yZXF1aXJlKCdkZW1vY29uZmlnL21peGVkLWV4cG9ydHMnLCB7IG5vcm1hbGlzZTogdHJ1ZSB9KVxuXG4gICAgICBleHBlY3QoY29udGVudHMpLnRvLmhhdmUucHJvcGVydHkoJ2RlZmF1bHQnLCB0cnVlKVxuICAgIH0pXG5cbiAgICBpdCgncmV0dXJucyB0aGUgbmFtZWQgZXhwb3J0cyBpZiBgZGVmYXVsdGAgZXhwb3J0IGRvZXMgbm90IGV4aXN0JywgKCkgPT4ge1xuICAgICAgY29uc3QgY29udGVudHMgPSBhdGxhcy5yZXF1aXJlKCdkZW1vY29uZmlnJywgeyBub3JtYWxpc2U6IHRydWUgfSlcblxuICAgICAgZXhwZWN0KGNvbnRlbnRzKS50by5oYXZlLnByb3BlcnR5KCdhdGxhcycpXG4gICAgICBleHBlY3QoY29udGVudHMuYXRsYXMpLnRvLmJlLmFuKCdvYmplY3QnKVxuICAgIH0pXG4gIH0pXG59KVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlcXVpcmUudGVzdC5tanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJhdGxhcyIsImJlZm9yZUVhY2giLCJBdGxhcyIsInJvb3QiLCJfX2Rpcm5hbWUiLCJpdCIsImV4cGVjdCIsInRvIiwicmVzcG9uZFRvIiwiY29uZmlnIiwicmVxdWlyZSIsImVxdWFsIiwiZGVtb2NvbmZpZyIsInRocm93Iiwib3B0aW9uYWwiLCJub3QiLCJjb250ZW50cyIsImJlIiwiYW4iLCJPYmplY3QiLCJrZXlzIiwiaGF2ZSIsImxlbmd0aCIsImFic29sdXRlIiwibm9ybWFsaXNlIiwicHJvcGVydHkiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7Ozs7QUFFQUEsUUFBUSxDQUFDLGtCQUFELEVBQXFCLE1BQU07QUFDakMsTUFBSUMsS0FBSjtBQUVBQyxFQUFBQSxVQUFVLENBQUMsTUFBTTtBQUNmRCxJQUFBQSxLQUFLLEdBQUcsSUFBSUUsT0FBSixDQUFVO0FBQUVDLE1BQUFBLElBQUksRUFBRUM7QUFBUixLQUFWLENBQVI7QUFDRCxHQUZTLENBQVY7QUFLQUMsRUFBQUEsRUFBRSxDQUFDLFFBQUQsRUFBVyxNQUFNO0FBQ2pCQyxJQUFBQSxNQUFNLENBQUNOLEtBQUQsQ0FBTixDQUFjTyxFQUFkLENBQWlCQyxTQUFqQixDQUEyQixTQUEzQjtBQUNELEdBRkMsQ0FBRjtBQUlBSCxFQUFBQSxFQUFFLENBQUMsd0NBQUQsRUFBMkMsTUFBTTtBQUNqRCxVQUFNSSxNQUFNLEdBQUdULEtBQUssQ0FBQ1UsT0FBTixDQUFjLFlBQWQsQ0FBZjs7QUFFQUosSUFBQUEsTUFBTSxDQUFDRyxNQUFELENBQU4sQ0FBZUYsRUFBZixDQUFrQkksS0FBbEIsQ0FBd0JDLFVBQXhCO0FBQ0QsR0FKQyxDQUFGO0FBTUFQLEVBQUFBLEVBQUUsQ0FBQyxxQ0FBRCxFQUF3QyxNQUFNO0FBQzlDQyxJQUFBQSxNQUFNLENBQUMsTUFBTU4sS0FBSyxDQUFDVSxPQUFOLENBQWMsV0FBZCxDQUFQLENBQU4sQ0FBeUNILEVBQXpDLENBQTRDTSxLQUE1QyxDQUFrRCxxQkFBbEQ7QUFDRCxHQUZDLENBQUY7QUFLQWQsRUFBQUEsUUFBUSxDQUFDLGdCQUFELEVBQW1CLE1BQU07QUFDL0JNLElBQUFBLEVBQUUsQ0FBQyxnQkFBRCxFQUFtQixNQUFNO0FBQ3pCQyxNQUFBQSxNQUFNLENBQUMsTUFBTU4sS0FBSyxDQUFDVSxPQUFOLENBQWMsV0FBZCxFQUEyQjtBQUFFSSxRQUFBQSxRQUFRLEVBQUU7QUFBWixPQUEzQixDQUFQLENBQU4sQ0FBNkRQLEVBQTdELENBQWdFUSxHQUFoRSxDQUFvRUYsS0FBcEU7QUFDRCxLQUZDLENBQUY7QUFJQVIsSUFBQUEsRUFBRSxDQUFDLHNCQUFELEVBQXlCLE1BQU07QUFDL0IsWUFBTVcsUUFBUSxHQUFHaEIsS0FBSyxDQUFDVSxPQUFOLENBQWMsV0FBZCxFQUEyQjtBQUFFSSxRQUFBQSxRQUFRLEVBQUU7QUFBWixPQUEzQixDQUFqQjs7QUFFQVIsTUFBQUEsTUFBTSxDQUFDVSxRQUFELENBQU4sQ0FBaUJULEVBQWpCLENBQW9CVSxFQUFwQixDQUF1QkMsRUFBdkIsQ0FBMEIsUUFBMUI7QUFDQVosTUFBQUEsTUFBTSxDQUFDYSxNQUFNLENBQUNDLElBQVAsQ0FBWUosUUFBWixDQUFELENBQU4sQ0FBOEJULEVBQTlCLENBQWlDYyxJQUFqQyxDQUFzQ0MsTUFBdEMsQ0FBNkMsQ0FBN0M7QUFDRCxLQUxDLENBQUY7QUFNRCxHQVhPLENBQVI7QUFjQXZCLEVBQUFBLFFBQVEsQ0FBQyxnQkFBRCxFQUFtQixNQUFNO0FBQy9CTSxJQUFBQSxFQUFFLENBQUMsb0NBQUQsRUFBdUMsTUFBTTtBQUM3QyxZQUFNVyxRQUFRLEdBQUdoQixLQUFLLENBQUNVLE9BQU4sQ0FBYyxNQUFkLEVBQXNCO0FBQUVhLFFBQUFBLFFBQVEsRUFBRTtBQUFaLE9BQXRCLENBQWpCOztBQUVBakIsTUFBQUEsTUFBTSxDQUFDVSxRQUFELENBQU4sQ0FBaUJULEVBQWpCLENBQW9CVSxFQUFwQixDQUF1QkMsRUFBdkIsQ0FBMEIsUUFBMUI7QUFDRCxLQUpDLENBQUY7QUFLRCxHQU5PLENBQVI7QUFTQW5CLEVBQUFBLFFBQVEsQ0FBQyxpQkFBRCxFQUFvQixNQUFNO0FBQ2hDTSxJQUFBQSxFQUFFLENBQUMsMkNBQUQsRUFBOEMsTUFBTTtBQUNwRCxZQUFNVyxRQUFRLEdBQUdoQixLQUFLLENBQUNVLE9BQU4sQ0FBYywwQkFBZCxFQUEwQztBQUFFYyxRQUFBQSxTQUFTLEVBQUU7QUFBYixPQUExQyxDQUFqQjs7QUFFQWxCLE1BQUFBLE1BQU0sQ0FBQ1UsUUFBRCxDQUFOLENBQWlCVCxFQUFqQixDQUFvQmMsSUFBcEIsQ0FBeUJJLFFBQXpCLENBQWtDLFNBQWxDLEVBQTZDLElBQTdDO0FBQ0QsS0FKQyxDQUFGO0FBTUFwQixJQUFBQSxFQUFFLENBQUMsOERBQUQsRUFBaUUsTUFBTTtBQUN2RSxZQUFNVyxRQUFRLEdBQUdoQixLQUFLLENBQUNVLE9BQU4sQ0FBYyxZQUFkLEVBQTRCO0FBQUVjLFFBQUFBLFNBQVMsRUFBRTtBQUFiLE9BQTVCLENBQWpCOztBQUVBbEIsTUFBQUEsTUFBTSxDQUFDVSxRQUFELENBQU4sQ0FBaUJULEVBQWpCLENBQW9CYyxJQUFwQixDQUF5QkksUUFBekIsQ0FBa0MsT0FBbEM7QUFDQW5CLE1BQUFBLE1BQU0sQ0FBQ1UsUUFBUSxDQUFDaEIsS0FBVixDQUFOLENBQXVCTyxFQUF2QixDQUEwQlUsRUFBMUIsQ0FBNkJDLEVBQTdCLENBQWdDLFFBQWhDO0FBQ0QsS0FMQyxDQUFGO0FBTUQsR0FiTyxDQUFSO0FBY0QsQ0E1RE8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0bGFzIH0gZnJvbSAnLi4nXG5pbXBvcnQgKiBhcyBkZW1vY29uZmlnIGZyb20gJy4vZGVtb2NvbmZpZydcblxuZGVzY3JpYmUoJ0F0bGFzOjpyZXF1aXJlKCknLCAoKSA9PiB7XG4gIGxldCBhdGxhc1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGF0bGFzID0gbmV3IEF0bGFzKHsgcm9vdDogX19kaXJuYW1lIH0pXG4gIH0pXG5cblxuICBpdCgnZXhpc3RzJywgKCkgPT4ge1xuICAgIGV4cGVjdChhdGxhcykudG8ucmVzcG9uZFRvKCdyZXF1aXJlJylcbiAgfSlcblxuICBpdCgncmVxdWlyZXMgYSBtb2R1bGUgcmVsYXRpdmUgdG8gdGhlIHJvb3QnLCAoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gYXRsYXMucmVxdWlyZSgnZGVtb2NvbmZpZycpXG5cbiAgICBleHBlY3QoY29uZmlnKS50by5lcXVhbChkZW1vY29uZmlnKVxuICB9KVxuXG4gIGl0KCd0aHJvd3MgaWYgdGhlIG1vZHVsZSBkb2VzIG5vdCBleGlzdCcsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4gYXRsYXMucmVxdWlyZSgnbG9sbW9kdWxlJykpLnRvLnRocm93KC9DYW5ub3QgZmluZCBtb2R1bGUvdSlcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdvcHRpb25hbDogdHJ1ZScsICgpID0+IHtcbiAgICBpdCgnZG9lcyBub3QgdGhyb3cnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4gYXRsYXMucmVxdWlyZSgnbG9sbW9kdWxlJywgeyBvcHRpb25hbDogdHJ1ZSB9KSkudG8ubm90LnRocm93KClcbiAgICB9KVxuXG4gICAgaXQoJ3JldHVybnMgZW1wdHkgb2JqZWN0JywgKCkgPT4ge1xuICAgICAgY29uc3QgY29udGVudHMgPSBhdGxhcy5yZXF1aXJlKCdsb2xtb2R1bGUnLCB7IG9wdGlvbmFsOiB0cnVlIH0pXG5cbiAgICAgIGV4cGVjdChjb250ZW50cykudG8uYmUuYW4oJ29iamVjdCcpXG4gICAgICBleHBlY3QoT2JqZWN0LmtleXMoY29udGVudHMpKS50by5oYXZlLmxlbmd0aCgwKVxuICAgIH0pXG4gIH0pXG5cblxuICBkZXNjcmliZSgnYWJzb2x1dGU6IHRydWUnLCAoKSA9PiB7XG4gICAgaXQoJ2xvYWRzIHRoZSBtb2R1bGUgZnJvbSBub2RlX21vZHVsZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb250ZW50cyA9IGF0bGFzLnJlcXVpcmUoJ2NoYWknLCB7IGFic29sdXRlOiB0cnVlIH0pXG5cbiAgICAgIGV4cGVjdChjb250ZW50cykudG8uYmUuYW4oJ29iamVjdCcpXG4gICAgfSlcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdub3JtYWxpc2U6IHRydWUnLCAoKSA9PiB7XG4gICAgaXQoJ3JldHVybnMgdGhlIGBkZWZhdWx0YCBleHBvcnQgaWYgaXQgZXhpc3RzJywgKCkgPT4ge1xuICAgICAgY29uc3QgY29udGVudHMgPSBhdGxhcy5yZXF1aXJlKCdkZW1vY29uZmlnL21peGVkLWV4cG9ydHMnLCB7IG5vcm1hbGlzZTogdHJ1ZSB9KVxuXG4gICAgICBleHBlY3QoY29udGVudHMpLnRvLmhhdmUucHJvcGVydHkoJ2RlZmF1bHQnLCB0cnVlKVxuICAgIH0pXG5cbiAgICBpdCgncmV0dXJucyB0aGUgbmFtZWQgZXhwb3J0cyBpZiBgZGVmYXVsdGAgZXhwb3J0IGRvZXMgbm90IGV4aXN0JywgKCkgPT4ge1xuICAgICAgY29uc3QgY29udGVudHMgPSBhdGxhcy5yZXF1aXJlKCdkZW1vY29uZmlnJywgeyBub3JtYWxpc2U6IHRydWUgfSlcblxuICAgICAgZXhwZWN0KGNvbnRlbnRzKS50by5oYXZlLnByb3BlcnR5KCdhdGxhcycpXG4gICAgICBleHBlY3QoY29udGVudHMuYXRsYXMpLnRvLmJlLmFuKCdvYmplY3QnKVxuICAgIH0pXG4gIH0pXG59KVxuIl19

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

expect(args.log).to.be.an('object');
expect(args.log.chindings).to.match(/"service":"dummy"/);
expect(args.log.chindings).to.match(/"service":"dummy"/u);
});

@@ -90,3 +90,3 @@ it('provides config object on service constructor argument', () => {

atlas.service('dummy', service);
}).to.throw(_errors.FrameworkError, /Missing aliases for component dummy/);
}).to.throw(_errors.FrameworkError, /Missing aliases for component dummy/u);
});

@@ -101,3 +101,3 @@ it('throws when extraneous aliases are specified', () => {

});
}).to.throw(_errors.FrameworkError, /Unneeded aliases for component dummy/);
}).to.throw(_errors.FrameworkError, /Unneeded aliases for component dummy/u);
});

@@ -148,2 +148,2 @@ it('throws when user config fails component config schema', () => {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlcnZpY2UudGVzdC5tanMiXSwibmFtZXMiOlsiRHVtbXlTZXJ2aWNlIiwiU2VydmljZSIsImRlc2NyaWJlIiwiYXRsYXMiLCJvcHRpb25zIiwiYmVmb3JlRWFjaCIsInJvb3QiLCJfX2Rpcm5hbWUiLCJjb25maWciLCJzZXJ2aWNlcyIsImR1bW15IiwidGVzdCIsIkF0bGFzIiwiaXQiLCJleHBlY3QiLCJzZXJ2aWNlIiwidG8iLCJlcXVhbCIsInRocm93IiwiRnJhbWV3b3JrRXJyb3IiLCJzaW5vbiIsInNweSIsImFyZ3MiLCJnZXRDYWxsIiwiaGF2ZSIsInByb3BlcnR5IiwibG9nIiwiYmUiLCJhbiIsImNoaW5kaW5ncyIsIm1hdGNoIiwiY29tcG9uZW50IiwiYSIsImRlZmF1bHRzIiwiZGVmYXVsdCIsInJlcXVpcmVzIiwiYWxpYXNlcyIsImxvbCIsInR5cGUiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsInByb3BlcnRpZXMiLCJWYWxpZGF0aW9uRXJyb3IiLCJub3QiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBSUE7Ozs7QUFFQSxNQUFNQSxZQUFOLFNBQTJCQyxnQkFBM0IsQ0FBbUM7O0FBRW5DQyxTQUFTLGtCQUFULEVBQTZCLE1BQU07QUFDakMsTUFBSUMsS0FBSjtBQUNBLE1BQUlDLE9BQUo7QUFFQUMsYUFBVyxNQUFNO0FBQ2ZELGNBQVU7QUFDUkUsWUFBTUMsU0FERTtBQUVSQyxjQUFRO0FBQ05DLGtCQUFVO0FBQ1JDLGlCQUFPO0FBQ0xDLGtCQUFNO0FBREQ7QUFEQztBQURKO0FBRkEsS0FBVjtBQVVBUixZQUFRLElBQUlTLE9BQUosQ0FBVVIsT0FBVixDQUFSO0FBQ0QsR0FaRDtBQWNBUyxLQUFHLGNBQUgsRUFBbUIsTUFBTTtBQUN2QkMsV0FBT1gsTUFBTVksT0FBTixDQUFjLE9BQWQsRUFBdUJmLFlBQXZCLENBQVAsRUFBNkNnQixFQUE3QyxDQUFnREMsS0FBaEQsQ0FBc0RkLEtBQXREO0FBQ0QsR0FGRDtBQUlBVSxLQUFHLGdF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QUF1QkEsT0FBdkIsRUFBZ0M7QUFBRXFCLGlCQUFTO0FBQ3pDLDJCQUFpQixPQUR3QjtBQUV6QywwQkFBZ0I7QUFGeUI7QUFBWCxPQUFoQztBQUlELEtBTEQsRUFLR3BCLEVBTEgsQ0FLTTBCLEdBTE4sQ0FLVXhCLEtBTFY7QUFNRCxHQVZEO0FBV0QsQ0E3SUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uJ1xuaW1wb3J0IHtcbiAgRnJhbWV3b3JrRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbn0gZnJvbSAnQGF0bGFzLmpzL2Vycm9ycydcbmltcG9ydCBTZXJ2aWNlIGZyb20gJ0BhdGxhcy5qcy9zZXJ2aWNlJ1xuXG5jbGFzcyBEdW1teVNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHt9XG5cbmRlc2NyaWJlKCdBdGxhczo6c2VydmljZSgpJywgKCkgPT4ge1xuICBsZXQgYXRsYXNcbiAgbGV0IG9wdGlvbnNcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvcHRpb25zID0ge1xuICAgICAgcm9vdDogX19kaXJuYW1lLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIHNlcnZpY2VzOiB7XG4gICAgICAgICAgZHVtbXk6IHtcbiAgICAgICAgICAgIHRlc3Q6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGF0bGFzID0gbmV3IEF0bGFzKG9wdGlvbnMpXG4gIH0pXG5cbiAgaXQoJ3JldHVybnMgdGhpcycsICgpID0+IHtcbiAgICBleHBlY3QoYXRsYXMuc2VydmljZSgnZHVtbXknLCBEdW1teVNlcnZpY2UpKS50by5lcXVhbChhdGxhcylcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gdGhlIGFsaWFzIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCBieSBhbm90aGVyIHNlcnZpY2UnLCAoKSA9PiB7XG4gICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBEdW1teVNlcnZpY2UpXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLnNlcnZpY2UoJ2R1bW15JywgRHVtbXlTZXJ2aWNlKSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIHRoZSBzZXJ2aWNlIGlzIG5vdCBhIGNsYXNzL2Z1bmN0aW9uJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIHt9KSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIHRoZSBhdGxhcyBvbiBzZXJ2aWNlIGNvbnN0cnVjdG9yIGFyZ3VtZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBzaW5vbi5zcHkoKVxuICAgIHNlcnZpY2UuY29uZmlnID0ge31cbiAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIHNlcnZpY2UpXG4gICAgY29uc3QgYXJncyA9IHNlcnZpY2UuZ2V0Q2FsbCgwKS5hcmdzWzBdXG5cbiAgICBleHBlY3QoYXJncykudG8uaGF2ZS5wcm9wZXJ0eSgnYXRsYXMnKVxuICAgIGV4cGVjdChhcmdzLmF0bGFzKS50by5lcXVhbChhdGxhcylcbiAgfSlcblxuICBpdCgncHJvdmlkZXMgYSBsb2dnZXIgaW5zdGFuY2Ugb24gc2VydmljZSBjb25zdHJ1Y3RvciBhcmd1bWVudCcsICgpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlID0gc2lub24uc3B5KClcbiAgICBzZXJ2aWNlLmNvbmZpZyA9IHt9XG4gICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBzZXJ2aWNlKVxuICAgIGNvbnN0IGFyZ3MgPSBzZXJ2aWNlLmdldENhbGwoMCkuYXJnc1swXVxuXG4gICAgZXhwZWN0KGFyZ3MpLnRvLmhhdmUucHJvcGVydHkoJ2xvZycpXG4gICAgZXhwZWN0KGFyZ3MubG9nKS50by5iZS5hbignb2JqZWN0JylcbiAgICBleHBlY3QoYXJncy5sb2cuY2hpbmRpbmdzKS50by5tYXRjaCgvXCJzZXJ2aWNlXCI6XCJkdW1teVwiLylcbiAgfSlcblxuICBpdCgncHJvdmlkZXMgY29uZmlnIG9iamVjdCBvbiBzZXJ2aWNlIGNvbnN0cnVjdG9yIGFyZ3VtZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBzaW5vbi5zcHkoKVxuICAgIHNlcnZpY2UuY29uZmlnID0ge31cbiAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIHNlcnZpY2UpXG4gICAgY29uc3QgYXJncyA9IHNlcnZpY2UuZ2V0Q2FsbCgwKS5hcmdzWzBdXG5cbiAgICBleHBlY3QoYXJncykudG8uaGF2ZS5wcm9wZXJ0eSgnY29uZmlnJylcbiAgICBleHBlY3QoYXJncy5jb25maWcpLnRvLmJlLmFuKCdvYmplY3QnKVxuICAgIGV4cGVjdChhcmdzLmNvbmZpZykudG8uZXF1YWwob3B0aW9ucy5jb25maWcuc2VydmljZXMuZHVtbXkpXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIHRoZSByZXNvbHZlIGZ1bmN0aW9uIG9uIHNlcnZpY2UgY29uc3RydWN0b3IgYXJndW1lbnQgYXMgYGNvbXBvbmVudGAnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2VydmljZSA9IHNpbm9uLnNweSgpXG4gICAgc2VydmljZS5jb25maWcgPSB7fVxuICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15Jywgc2VydmljZSlcbiAgICBjb25zdCBhcmdzID0gc2VydmljZS5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzKS50by5oYXZlLnByb3BlcnR5KCdjb21wb25lbnQnKVxuICAgIGV4cGVjdChhcmdzLmNvbXBvbmVudCkudG8uYmUuYSgnZnVuY3Rpb24nKVxuICB9KVxuXG4gIGl0KCdhcHBsaWVzIGRlZmF1bHRzIGRlZmluZWQgb24gc2VydmljZSBvbiB0b3Agb2YgdXNlci1wcm92aWRlZCBjb25maWcnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2VydmljZSA9IHNpbm9uLnNweSgpXG4gICAgc2VydmljZS5jb25maWcgPSB7fVxuICAgIHNlcnZpY2UuZGVmYXVsdHMgPSB7IGRlZmF1bHQ6IHRydWUgfVxuICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15Jywgc2VydmljZSlcbiAgICBjb25zdCBhcmdzID0gc2VydmljZS5nZXRDYWxsKDApLmFyZ3NbMF1cblxuICAgIGV4cGVjdChhcmdzLmNvbmZpZykudG8uaGF2ZS5wcm9wZXJ0eSgnZGVmYXVsdCcsIHRydWUpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIGFsaWFzZXMgZG8gbm90IHNhdGlzZnkgcmVxdWlyZW1lbnRzIG9mIHRoZSBjb21wb25lbnQnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2VydmljZSA9IHNpbm9uLnNweSgpXG4gICAgc2VydmljZS5jb25maWcgPSB7fVxuICAgIHNlcnZpY2UucmVxdWlyZXMgPSBbJ3NlcnZpY2U6ZHVtbXknLCAnYWN0aW9uOmR1bW15J11cbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBzZXJ2aWNlKVxuICAgIH0pLnRvLnRocm93KEZyYW1ld29ya0Vycm9yLCAvTWlzc2luZyBhbGlhc2VzIGZvciBjb21wb25lbnQgZHVtbXkvKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiBleHRyYW5lb3VzIGFsaWFzZXMgYXJlIHNwZWNpZmllZCcsICgpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlID0gc2lub24uc3B5KClcbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBzZXJ2aWNlLCB7IGFsaWFzZXM6IHtcbiAgICAgICAgJ2FjdGlvbjpkdW1teSc6ICdkdW1teScsXG4gICAgICB9IH0pXG4gICAgfSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IsIC9Vbm5lZWRlZCBhbGlhc2VzIGZvciBjb21wb25lbnQgZHVtbXkvKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiB1c2VyIGNvbmZpZyBmYWlscyBjb21wb25lbnQgY29uZmlnIHNjaGVtYScsICgpID0+IHtcbiAgICBvcHRpb25zLmNvbmZpZy5zZXJ2aWNlcy5kdW1teSA9IHsgbG9sOiB0cnVlIH1cbiAgICBhdGxhcyA9IG5ldyBBdGxhcyhvcHRpb25zKVxuXG4gICAgY29uc3Qgc2VydmljZSA9IHNpbm9uLnNweSgpXG4gICAgc2VydmljZS5jb25maWcgPSB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdGVzdDogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLnNlcnZpY2UoJ2R1bW15Jywgc2VydmljZSkpLnRvLnRocm93KFZhbGlkYXRpb25FcnJvcilcbiAgfSlcblxuICBpdCgnd29ya3Mgd2hlbiB1c2VyIGNvbmZpZyBwYXNzZXMgY29tcG9uZW50IGNvbmZpZyBzY2hlbWEnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2VydmljZSA9IHNpbm9uLnNweSgpXG4gICAgc2VydmljZS5jb25maWcgPSB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdGVzdDogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLnNlcnZpY2UoJ2R1bW15Jywgc2VydmljZSkpLm5vdC50by50aHJvdyhWYWxpZGF0aW9uRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3dvcmtzIHdoZW4gYWxsIHJlcXVpcmVtZW50cyBhcmUgc3BlY2lmaWVkJywgKCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBzaW5vbi5zcHkoKVxuICAgIHNlcnZpY2UuY29uZmlnID0ge31cbiAgICBzZXJ2aWNlLnJlcXVpcmVzID0gWydzZXJ2aWNlOmR1bW15JywgJ2FjdGlvbjpkdW1teSddXG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15Jywgc2VydmljZSwgeyBhbGlhc2VzOiB7XG4gICAgICAgICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyxcbiAgICAgICAgJ2FjdGlvbjpkdW1teSc6ICdkdW1teScsXG4gICAgICB9IH0pXG4gICAgfSkudG8ubm90LnRocm93KClcbiAgfSlcbn0pXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlcnZpY2UudGVzdC5tanMiXSwibmFtZXMiOlsiRHVtbXlTZXJ2aWNlIiwiU2VydmljZSIsImRlc2NyaWJlIiwiYXRsYXMiLCJvcHRpb25zIiwiYmVmb3JlRWFjaCIsInJvb3QiLCJfX2Rpcm5hbWUiLCJjb25maWciLCJzZXJ2aWNlcyIsImR1bW15IiwidGVzdCIsIkF0bGFzIiwiaXQiLCJleHBlY3QiLCJzZXJ2aWNlIiwidG8iLCJlcXVhbCIsInRocm93IiwiRnJhbWV3b3JrRXJyb3IiLCJzaW5vbiIsInNweSIsImFyZ3MiLCJnZXRDYWxsIiwiaGF2ZSIsInByb3BlcnR5IiwibG9nIiwiYmUiLCJhbiIsImNoaW5kaW5ncyIsIm1hdGNoIiwiY29tcG9uZW50IiwiYSIsImRlZmF1bHRzIiwiZGVmYXVsdCIsInJlcXVpcmVzIiwiYWxpYXNlcyIsImxvbCIsInR5cGUiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsInByb3BlcnRpZXMiLCJWYWxpZGF0aW9uRXJyb3IiLCJub3QiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBSUE7Ozs7QUFFQSxNQUFNQSxZQUFOLFNBQTJCQyxnQkFBM0IsQ0FBbUM7O0FBRW5DQyxRQUFRLENBQUMsa0JBQUQsRUFBcUIsTUFBTTtBQUNqQyxNQUFJQyxLQUFKO0FBQ0EsTUFBSUMsT0FBSjtBQUVBQyxFQUFBQSxVQUFVLENBQUMsTUFBTTtBQUNmRCxJQUFBQSxPQUFPLEdBQUc7QUFDUkUsTUFBQUEsSUFBSSxFQUFFQyxTQURFO0FBRVJDLE1BQUFBLE1BQU0sRUFBRTtBQUNOQyxRQUFBQSxRQUFRLEVBQUU7QUFDUkMsVUFBQUEsS0FBSyxFQUFFO0FBQ0xDLFlBQUFBLElBQUksRUFBRTtBQUREO0FBREM7QUFESjtBQUZBLEtBQVY7QUFVQVIsSUFBQUEsS0FBSyxHQUFHLElBQUlTLE9BQUosQ0FBVVIsT0FBVixDQUFSO0FBQ0QsR0FaUyxDQUFWO0FBY0FTLEVBQUFBLEVBQUUsQ0FBQyxjQUFELEVBQWlCLE1BQU07QUFDdkJDLElB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QWxELENBQXFERSxLQUFyRCxDQUEyRHVCLHVCQUEzRDtBQUNELEdBWEMsQ0FBRjtBQWFBNUIsRUFBQUEsRUFBRSxDQUFDLDJDQUFELEVBQThDLE1BQU07QUFDcEQsVUFBTUUsT0FBTyxHQUFHSyxLQUFLLENBQUNDLEdBQU4sRUFBaEI7QUFDQU4sSUFBQUEsT0FBTyxDQUFDUCxNQUFSLEdBQWlCLEVBQWpCO0FBQ0FPLElBQUFBLE9BQU8sQ0FBQ29CLFFBQVIsR0FBbUIsQ0FBQyxlQUFELEVBQWtCLGNBQWxCLENBQW5CO0FBQ0FyQixJQUFBQSxNQUFNLENBQUMsTUFBTTtBQUNYWCxNQUFBQSxLQUFLLENBQUNZLE9BQU4sQ0FBYyxPQUFkLEVBQXVCQSxPQUF2QixFQUFnQztBQUFFcUIsUUFBQUEsT0FBTyxFQUFFO0FBQ3pDLDJCQUFpQixPQUR3QjtBQUV6QywwQkFBZ0I7QUFGeUI7QUFBWCxPQUFoQztBQUlELEtBTEssQ0FBTixDQUtHcEIsRUFMSCxDQUtNMEIsR0FMTixDQUtVeEIsS0FMVjtBQU1ELEdBVkMsQ0FBRjtBQVdELENBN0lPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uJ1xuaW1wb3J0IHtcbiAgRnJhbWV3b3JrRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbn0gZnJvbSAnQGF0bGFzLmpzL2Vycm9ycydcbmltcG9ydCBTZXJ2aWNlIGZyb20gJ0BhdGxhcy5qcy9zZXJ2aWNlJ1xuXG5jbGFzcyBEdW1teVNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHt9XG5cbmRlc2NyaWJlKCdBdGxhczo6c2VydmljZSgpJywgKCkgPT4ge1xuICBsZXQgYXRsYXNcbiAgbGV0IG9wdGlvbnNcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvcHRpb25zID0ge1xuICAgICAgcm9vdDogX19kaXJuYW1lLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIHNlcnZpY2VzOiB7XG4gICAgICAgICAgZHVtbXk6IHtcbiAgICAgICAgICAgIHRlc3Q6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGF0bGFzID0gbmV3IEF0bGFzKG9wdGlvbnMpXG4gIH0pXG5cbiAgaXQoJ3JldHVybnMgdGhpcycsICgpID0+IHtcbiAgICBleHBlY3QoYXRsYXMuc2VydmljZSgnZHVtbXknLCBEdW1teVNlcnZpY2UpKS50by5lcXVhbChhdGxhcylcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gdGhlIGFsaWFzIGhhcyBhbHJlYWR5IGJlZW4gdXNlZCBieSBhbm90aGVyIHNlcnZpY2UnLCAoKSA9PiB7XG4gICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBEdW1teVNlcnZpY2UpXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLnNlcnZpY2UoJ2R1bW15JywgRHVtbXlTZXJ2aWNlKSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIHRoZSBzZXJ2aWNlIGlzIG5vdCBhIGNsYXNzL2Z1bmN0aW9uJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIHt9KSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIHRoZSBhdGxhcyBvbiBzZXJ2aWNlIGNvbnN0cnVjdG9yIGFyZ3VtZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBzaW5vbi5zcHkoKVxuICAgIHNlcnZpY2UuY29uZmlnID0ge31cbiAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIHNlcnZpY2UpXG4gICAgY29uc3QgYXJncyA9IHNlcnZpY2UuZ2V0Q2FsbCgwKS5hcmdzWzBdXG5cbiAgICBleHBlY3QoYXJncykudG8uaGF2ZS5wcm9wZXJ0eSgnYXRsYXMnKVxuICAgIGV4cGVjdChhcmdzLmF0bGFzKS50by5lcXVhbChhdGxhcylcbiAgfSlcblxuICBpdCgncHJvdmlkZXMgYSBsb2dnZXIgaW5zdGFuY2Ugb24gc2VydmljZSBjb25zdHJ1Y3RvciBhcmd1bWVudCcsICgpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlID0gc2lub24uc3B5KClcbiAgICBzZXJ2aWNlLmNvbmZpZyA9IHt9XG4gICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBzZXJ2aWNlKVxuICAgIGNvbnN0IGFyZ3MgPSBzZXJ2aWNlLmdldENhbGwoMCkuYXJnc1swXVxuXG4gICAgZXhwZWN0KGFyZ3MpLnRvLmhhdmUucHJvcGVydHkoJ2xvZycpXG4gICAgZXhwZWN0KGFyZ3MubG9nKS50by5iZS5hbignb2JqZWN0JylcbiAgICBleHBlY3QoYXJncy5sb2cuY2hpbmRpbmdzKS50by5tYXRjaCgvXCJzZXJ2aWNlXCI6XCJkdW1teVwiL3UpXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIGNvbmZpZyBvYmplY3Qgb24gc2VydmljZSBjb25zdHJ1Y3RvciBhcmd1bWVudCcsICgpID0+IHtcbiAgICBjb25zdCBzZXJ2aWNlID0gc2lub24uc3B5KClcbiAgICBzZXJ2aWNlLmNvbmZpZyA9IHt9XG4gICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBzZXJ2aWNlKVxuICAgIGNvbnN0IGFyZ3MgPSBzZXJ2aWNlLmdldENhbGwoMCkuYXJnc1swXVxuXG4gICAgZXhwZWN0KGFyZ3MpLnRvLmhhdmUucHJvcGVydHkoJ2NvbmZpZycpXG4gICAgZXhwZWN0KGFyZ3MuY29uZmlnKS50by5iZS5hbignb2JqZWN0JylcbiAgICBleHBlY3QoYXJncy5jb25maWcpLnRvLmVxdWFsKG9wdGlvbnMuY29uZmlnLnNlcnZpY2VzLmR1bW15KVxuICB9KVxuXG4gIGl0KCdwcm92aWRlcyB0aGUgcmVzb2x2ZSBmdW5jdGlvbiBvbiBzZXJ2aWNlIGNvbnN0cnVjdG9yIGFyZ3VtZW50IGFzIGBjb21wb25lbnRgJywgKCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBzaW5vbi5zcHkoKVxuICAgIHNlcnZpY2UuY29uZmlnID0ge31cbiAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIHNlcnZpY2UpXG4gICAgY29uc3QgYXJncyA9IHNlcnZpY2UuZ2V0Q2FsbCgwKS5hcmdzWzBdXG5cbiAgICBleHBlY3QoYXJncykudG8uaGF2ZS5wcm9wZXJ0eSgnY29tcG9uZW50JylcbiAgICBleHBlY3QoYXJncy5jb21wb25lbnQpLnRvLmJlLmEoJ2Z1bmN0aW9uJylcbiAgfSlcblxuICBpdCgnYXBwbGllcyBkZWZhdWx0cyBkZWZpbmVkIG9uIHNlcnZpY2Ugb24gdG9wIG9mIHVzZXItcHJvdmlkZWQgY29uZmlnJywgKCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBzaW5vbi5zcHkoKVxuICAgIHNlcnZpY2UuY29uZmlnID0ge31cbiAgICBzZXJ2aWNlLmRlZmF1bHRzID0geyBkZWZhdWx0OiB0cnVlIH1cbiAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIHNlcnZpY2UpXG4gICAgY29uc3QgYXJncyA9IHNlcnZpY2UuZ2V0Q2FsbCgwKS5hcmdzWzBdXG5cbiAgICBleHBlY3QoYXJncy5jb25maWcpLnRvLmhhdmUucHJvcGVydHkoJ2RlZmF1bHQnLCB0cnVlKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiBhbGlhc2VzIGRvIG5vdCBzYXRpc2Z5IHJlcXVpcmVtZW50cyBvZiB0aGUgY29tcG9uZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBzaW5vbi5zcHkoKVxuICAgIHNlcnZpY2UuY29uZmlnID0ge31cbiAgICBzZXJ2aWNlLnJlcXVpcmVzID0gWydzZXJ2aWNlOmR1bW15JywgJ2FjdGlvbjpkdW1teSddXG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15Jywgc2VydmljZSlcbiAgICB9KS50by50aHJvdyhGcmFtZXdvcmtFcnJvciwgL01pc3NpbmcgYWxpYXNlcyBmb3IgY29tcG9uZW50IGR1bW15L3UpXG4gIH0pXG5cbiAgaXQoJ3Rocm93cyB3aGVuIGV4dHJhbmVvdXMgYWxpYXNlcyBhcmUgc3BlY2lmaWVkJywgKCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBzaW5vbi5zcHkoKVxuICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIHNlcnZpY2UsIHsgYWxpYXNlczoge1xuICAgICAgICAnYWN0aW9uOmR1bW15JzogJ2R1bW15JyxcbiAgICAgIH0gfSlcbiAgICB9KS50by50aHJvdyhGcmFtZXdvcmtFcnJvciwgL1VubmVlZGVkIGFsaWFzZXMgZm9yIGNvbXBvbmVudCBkdW1teS91KVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiB1c2VyIGNvbmZpZyBmYWlscyBjb21wb25lbnQgY29uZmlnIHNjaGVtYScsICgpID0+IHtcbiAgICBvcHRpb25zLmNvbmZpZy5zZXJ2aWNlcy5kdW1teSA9IHsgbG9sOiB0cnVlIH1cbiAgICBhdGxhcyA9IG5ldyBBdGxhcyhvcHRpb25zKVxuXG4gICAgY29uc3Qgc2VydmljZSA9IHNpbm9uLnNweSgpXG4gICAgc2VydmljZS5jb25maWcgPSB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdGVzdDogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLnNlcnZpY2UoJ2R1bW15Jywgc2VydmljZSkpLnRvLnRocm93KFZhbGlkYXRpb25FcnJvcilcbiAgfSlcblxuICBpdCgnd29ya3Mgd2hlbiB1c2VyIGNvbmZpZyBwYXNzZXMgY29tcG9uZW50IGNvbmZpZyBzY2hlbWEnLCAoKSA9PiB7XG4gICAgY29uc3Qgc2VydmljZSA9IHNpbm9uLnNweSgpXG4gICAgc2VydmljZS5jb25maWcgPSB7XG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdGVzdDogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgZXhwZWN0KCgpID0+IGF0bGFzLnNlcnZpY2UoJ2R1bW15Jywgc2VydmljZSkpLm5vdC50by50aHJvdyhWYWxpZGF0aW9uRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ3dvcmtzIHdoZW4gYWxsIHJlcXVpcmVtZW50cyBhcmUgc3BlY2lmaWVkJywgKCkgPT4ge1xuICAgIGNvbnN0IHNlcnZpY2UgPSBzaW5vbi5zcHkoKVxuICAgIHNlcnZpY2UuY29uZmlnID0ge31cbiAgICBzZXJ2aWNlLnJlcXVpcmVzID0gWydzZXJ2aWNlOmR1bW15JywgJ2FjdGlvbjpkdW1teSddXG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15Jywgc2VydmljZSwgeyBhbGlhc2VzOiB7XG4gICAgICAgICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyxcbiAgICAgICAgJ2FjdGlvbjpkdW1teSc6ICdkdW1teScsXG4gICAgICB9IH0pXG4gICAgfSkudG8ubm90LnRocm93KClcbiAgfSlcbn0pXG4iXX0=

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

DummyService.prototype.start.rejects(new Error('fail!'));
return expect(atlas.start()).to.eventually.be.rejectedWith(/fail!/);
return expect(atlas.start()).to.eventually.be.rejectedWith(/fail!/u);
});

@@ -216,2 +216,2 @@ it('stops already started service if one of the components fails to start', async () => {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0YXJ0LnRlc3QubWpzIl0sIm5hbWVzIjpbIlNlcnZpY2VBcGkiLCJEdW1teVNlcnZpY2UiLCJTZXJ2aWNlIiwiRHVtbXlIb29rIiwiSG9vayIsImRlc2NyaWJlIiwiYXRsYXMiLCJvcHRpb25zIiwiYmVmb3JlRWFjaCIsInByb3RvdHlwZSIsInByZXBhcmUiLCJzaW5vbiIsInN0dWIiLCJyZXNvbHZlcyIsInN0YXJ0Iiwic3RvcCIsInJvb3QiLCJfX2Rpcm5hbWUiLCJjb25maWciLCJsb2ciLCJsZXZlbCIsInNlcnZpY2VzIiwiZHVtbXkiLCJ0ZXN0IiwiQXRsYXMiLCJpdCIsImV4cGVjdCIsInRvIiwiYmUiLCJpbnN0YW5jZW9mIiwiUHJvbWlzZSIsImVxdWFsIiwic3RhcnRlZCIsInNhbmRib3giLCJoYXZlIiwiY2FsbENvdW50Iiwic2VydmljZSIsImluc3RhbmNlIiwiYmVlbiIsImNhbGxlZFdpdGgiLCJyZWplY3RzIiwiRXJyb3IiLCJldmVudHVhbGx5IiwicmVqZWN0ZWRXaXRoIiwiRmFpbGluZ1NlcnZpY2UiLCJjYXRjaCIsImV2ZW50cyIsImV2ZW50IiwiaG9vayIsInByb3RvIiwiRW1wdHkiLCJDb21wb25lbnRIb29rIiwiYWxpYXNlcyIsIkZpcnN0U2VydmljZSIsIlNlY29uZFNlcnZpY2UiLCJGaXJzdEhvb2siLCJTZWNvbmRIb29rIiwiYmVmb3JlU3RhcnQiLCJhZnRlclN0YXJ0Iiwib3JkZXIiLCJjYWxsc0Zha2UiLCJwdXNoIiwib3JkZXJlZCIsIm1lbWJlcnMiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLE1BQU1BLFVBQU4sQ0FBaUI7O0FBRWpCLE1BQU1DLFlBQU4sU0FBMkJDLGdCQUEzQixDQUFtQzs7QUFFbkMsTUFBTUMsU0FBTixTQUF3QkMsYUFBeEIsQ0FBNkI7O2dCQUF2QkQsUyxjQUNjLE87O0FBR3BCRSxTQUFTLGdCQUFULEVBQTJCLE1BQU07QUFDL0IsTUFBSUMsS0FBSjtBQUNBLE1BQUlD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RyxTQUFoQyxDQUEwQyxNQUFNLEtBQUtELE1BQU1FLElBQU4sQ0FBVyxtQkFBWCxDQUFyRDtBQUNBUixtQkFBYTVDLFNBQWIsQ0FBdUJLLEtBQXZCLENBQTZCOEMsU0FBN0IsQ0FBdUMsTUFBTSxLQUFLRCxNQUFNRSxJQUFOLENBQVcsYUFBWCxDQUFsRDtBQUNBTixnQkFBVTlDLFNBQVYsQ0FBb0JpRCxVQUFwQixDQUErQkUsU0FBL0IsQ0FBeUMsTUFBTSxLQUFLRCxNQUFNRSxJQUFOLENBQVcsa0JBQVgsQ0FBcEQ7QUFDQUwsaUJBQVcvQyxTQUFYLENBQXFCZ0QsV0FBckIsQ0FBaUNHLFNBQWpDLENBQTJDLE1BQU0sS0FBS0QsTUFBTUUsSUFBTixDQUFXLG9CQUFYLENBQXREO0FBQ0FQLG9CQUFjN0MsU0FBZCxDQUF3QkssS0FBeEIsQ0FBOEI4QyxTQUE5QixDQUF3QyxNQUFNLEtBQUtELE1BQU1FLElBQU4sQ0FBVyxjQUFYLENBQW5EO0FBQ0FMLGlCQUFXL0MsU0FBWCxDQUFxQmlELFVBQXJCLENBQWdDRSxTQUFoQyxDQUEwQyxNQUFNLEtBQUtELE1BQU1FLElBQU4sQ0FBVyxtQkFBWCxDQUFyRDtBQUVBLFlBQU12RCxNQUFNUSxLQUFOLEVBQU47QUFFQVksYUFBT2lDLEtBQVAsRUFBY2hDLEVBQWQsQ0FBaUJPLElBQWpCLENBQXNCNEIsT0FBdEIsQ0FBOEJDLE9BQTlCLENBQXNDLENBQ3BDLG1CQURvQyxFQUVwQyxhQUZvQyxFQUdwQyxrQkFIb0MsRUFJcEMsb0JBSm9DLEVBS3BDLGNBTG9DLEVBTXBDLG1CQU5vQyxDQUF0QztBQVFELEtBcEJEO0FBcUJELEdBakREO0FBa0RELENBeE9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXRsYXMgfSBmcm9tICcuLidcbmltcG9ydCBTZXJ2aWNlIGZyb20gJ0BhdGxhcy5qcy9zZXJ2aWNlJ1xuaW1wb3J0IEhvb2sgZnJvbSAnQGF0bGFzLmpzL2hvb2snXG5cbmNsYXNzIFNlcnZpY2VBcGkge31cblxuY2xhc3MgRHVtbXlTZXJ2aWNlIGV4dGVuZHMgU2VydmljZSB7fVxuXG5jbGFzcyBEdW1teUhvb2sgZXh0ZW5kcyBIb29rIHtcbiAgc3RhdGljIG9ic2VydmVzID0gJ2F0bGFzJ1xufVxuXG5kZXNjcmliZSgnQXRsYXM6OnN0YXJ0KCknLCAoKSA9PiB7XG4gIGxldCBhdGxhc1xuICBsZXQgb3B0aW9uc1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIER1bW15U2VydmljZS5wcm90b3R5cGUucHJlcGFyZSA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcyhuZXcgU2VydmljZUFwaSgpKVxuICAgIER1bW15U2VydmljZS5wcm90b3R5cGUuc3RhcnQgPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMoKVxuICAgIER1bW15U2VydmljZS5wcm90b3R5cGUuc3RvcCA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG5cbiAgICBvcHRpb25zID0ge1xuICAgICAgcm9vdDogX19kaXJuYW1lLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGF0bGFzOiB7XG4gICAgICAgICAgbG9nOiB7XG4gICAgICAgICAgICBsZXZlbDogJ2ZhdGFsJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzZXJ2aWNlczoge1xuICAgICAgICAgIGR1bW15OiB7XG4gICAgICAgICAgICB0ZXN0OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cbiAgICBhdGxhcyA9IG5ldyBBdGxhcyhvcHRpb25zKVxuICB9KVxuXG5cbiAgaXQoJ2lzIGFzeW5jJywgKCkgPT4ge1xuICAgIGV4cGVjdChhdGxhcy5zdGFydCgpKS50by5iZS5pbnN0YW5jZW9mKFByb21pc2UpXG4gIH0pXG5cbiAgaXQoJ3JldHVybnMgdGhpcycsIGFzeW5jICgpID0+IHtcbiAgICBleHBlY3QoYXdhaXQgYXRsYXMuc3RhcnQoKSkudG8uZXF1YWwoYXRsYXMpXG4gIH0pXG5cbiAgaXQoJ3NldHMgYXRsYXMuc3RhcnRlZCB0byB0cnVlJywgYXN5bmMgKCkgPT4ge1xuICAgIGV4cGVjdChhdGxhcy5zdGFydGVkKS50by5lcXVhbChmYWxzZSlcbiAgICBhd2FpdCBhdGxhcy5zdGFydCgpXG4gICAgZXhwZWN0KGF0bGFzLnN0YXJ0ZWQpLnRvLmVxdWFsKHRydWUpXG4gIH0pXG5cbiAgaXQoJ2NhbGxzIGF0bGFzLnByZXBhcmUoKScsIGFzeW5jIGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuc2FuZGJveC5zdHViKGF0bGFzLCAncHJlcGFyZScpLnJlc29sdmVzKGF0bGFzKVxuICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcblxuICAgIGV4cGVjdChhdGxhcy5wcmVwYXJlKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICB9KVxuXG5cbiAgZGVzY3JpYmUoJ1NlcnZpY2UgaW50ZXJhY3Rpb25zJywgKCkgPT4ge1xuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBEdW1teVNlcnZpY2UpXG4gICAgfSlcblxuXG4gICAgaXQoJ2NhbGxzIHN0YXJ0IG9uIHRoZSBzZXJ2aWNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuICAgICAgZXhwZWN0KER1bW15U2VydmljZS5wcm90b3R5cGUuc3RhcnQpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgfSlcblxuICAgIGl0KCdjYWxscyBzdGFydCB3aXRoIHRoZSBpbnN0YW5jZSByZXR1cm5lZCBmcm9tIHByZXBhcmUoKSBzdGVwJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSB7IHRlc3Q6IHRydWUgfVxuICAgICAgRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5wcmVwYXJlLnJlc29sdmVzKGluc3RhbmNlKVxuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdGFydCkudG8uaGF2ZS5iZWVuLmNhbGxlZFdpdGgoaW5zdGFuY2UpXG4gICAgfSlcblxuICAgIGl0KCdjYWxscyB0aGUgbWV0aG9kIG9ubHkgb25jZSBmb3IgZWFjaCBzZXJ2aWNlIGZvciBtdWx0aXBsZSAuc3RhcnQoKSBjYWxscycsIGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcbiAgICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcblxuICAgICAgZXhwZWN0KER1bW15U2VydmljZS5wcm90b3R5cGUuc3RhcnQpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgfSlcblxuICAgIGl0KCdyZS10aHJvd3MgY29tcG9uZW50IGVycm9ycyB0aHJvd24gZHVyaW5nIC5zdGFydCgpJywgKCkgPT4ge1xuICAgICAgRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdGFydC5yZWplY3RzKG5ldyBFcnJvcignZmFpbCEnKSlcblxuICAgICAgcmV0dXJuIGV4cGVjdChhdGxhcy5zdGFydCgpKS50by5ldmVudHVhbGx5LmJlLnJlamVjdGVkV2l0aCgvZmFpbCEvKVxuICAgIH0pXG5cbiAgICBpdCgnc3RvcHMgYWxyZWFkeSBzdGFydGVkIHNlcnZpY2UgaWYgb25lIG9mIHRoZSBjb21wb25lbnRzIGZhaWxzIHRvIHN0YXJ0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY2xhc3MgRmFpbGluZ1NlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHt9XG4gICAgICBzaW5vbi5zdHViKEZhaWxpbmdTZXJ2aWNlLnByb3RvdHlwZSwgJ3N0YXJ0JykucmVqZWN0cyhuZXcgRXJyb3IoJ2ZhaWwhJykpXG4gICAgICBhdGxhcy5zZXJ2aWNlKCdmYWlsaW5nLXNlcnZpY2UnLCBGYWlsaW5nU2VydmljZSlcblxuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuICAgICAgICAuY2F0Y2goKCkgPT4ge30pXG5cbiAgICAgIGV4cGVjdChEdW1teVNlcnZpY2UucHJvdG90eXBlLnN0YXJ0KS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgICAgZXhwZWN0KER1bW15U2VydmljZS5wcm90b3R5cGUuc3RvcCkudG8uaGF2ZS5jYWxsQ291bnQoMSlcbiAgICB9KVxuICB9KVxuXG5cbiAgZGVzY3JpYmUoJ0hvb2sgaW50ZXJhY3Rpb25zIChvYnNlcnZlcyA9IGF0bGFzKScsICgpID0+IHtcbiAgICBjb25zdCBldmVudHMgPSBbXG4gICAgICAnYmVmb3JlU3RhcnQnLFxuICAgICAgJ2FmdGVyU3RhcnQnLFxuICAgIF1cblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgLy8gU3R1YiBvdXQgYWxsIHRoZSBldmVudCBoYW5kbGVyc1xuICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgICAgRHVtbXlIb29rLnByb3RvdHlwZVtldmVudF0gPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMoKVxuICAgICAgfVxuXG4gICAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIER1bW15U2VydmljZSlcbiAgICAgIGF0bGFzLmhvb2soJ2R1bW15JywgRHVtbXlIb29rKVxuICAgIH0pXG5cbiAgICBpdCgnY2FsbHMgdGhlIHN0YXJ0IGhvb2tzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuXG4gICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgICAgICBleHBlY3QoRHVtbXlIb29rLnByb3RvdHlwZVtldmVudF0pLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgICB9XG4gICAgfSlcblxuICAgIGl0KCdjYWxscyB0aGUgaG9va3Mgd2l0aCB0aGUgYXRsYXMgaW5zdGFuY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm90byA9IER1bW15SG9vay5wcm90b3R5cGVcbiAgICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcblxuICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgICAgZXhwZWN0KHByb3RvW2V2ZW50XSkudG8uaGF2ZS5iZWVuLmNhbGxlZFdpdGgoYXRsYXMpXG4gICAgICB9XG4gICAgfSlcblxuICAgIGl0KCdjYW4gaGFuZGxlIGhvb2tzIHdoaWNoIGRvIG5vdCBpbXBsZW1lbnQgYW55IGxpc3RlbmVycycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNsYXNzIEVtcHR5IGV4dGVuZHMgSG9vayB7XG4gICAgICAgIHN0YXRpYyBvYnNlcnZlcyA9ICdhdGxhcydcbiAgICAgIH1cblxuICAgICAgYXRsYXMuaG9vaygnZW1wdHknLCBFbXB0eSlcbiAgICAgIC8vIFRoaXMgbm90IHRocm93aW5nIHdpbGwgc3VmZmljZSDwn5iOXG4gICAgICBhd2FpdCBhdGxhcy5zdGFydCgpXG4gICAgfSlcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdIb29rIGludGVyYWN0aW9ucyAob2JzZXJ2ZXMgPSBjb21wb25lbnQpJywgKCkgPT4ge1xuICAgIGNsYXNzIENvbXBvbmVudEhvb2sgZXh0ZW5kcyBIb29rIHtcbiAgICAgIHN0YXRpYyBvYnNlcnZlcyA9ICdzZXJ2aWNlOmR1bW15J1xuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50cyA9IFtcbiAgICAgICdiZWZvcmVTdGFydCcsXG4gICAgICAnYWZ0ZXJTdGFydCcsXG4gICAgXVxuXG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgICAgICBDb21wb25lbnRIb29rLnByb3RvdHlwZVtldmVudF0gPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMoKVxuICAgICAgfVxuXG4gICAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIER1bW15U2VydmljZSlcbiAgICAgIGF0bGFzLmhvb2soJ2R1bW15JywgQ29tcG9uZW50SG9vaywgeyBhbGlhc2VzOiB7ICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyB9IH0pXG4gICAgfSlcblxuXG4gICAgaXQoJ2NhbGxzIHRoZSBob29rcyB3aXRoIHRoZSBjb21wb25lbnQgaW5zdGFuY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm90byA9IENvbXBvbmVudEhvb2sucHJvdG90eXBlXG4gICAgICBhd2FpdCBhdGxhcy5zdGFydCgpXG5cbiAgICAgIGZvciAoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgICAgIGV4cGVjdChwcm90b1tldmVudF0pLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKGF0bGFzLnNlcnZpY2VzLmR1bW15KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpdCgnY2FuIGhhbmRsZSBob29rcyB3aGljaCBkbyBub3QgaW1wbGVtZW50IGFueSBsaXN0ZW5lcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjbGFzcyBFbXB0eSBleHRlbmRzIEhvb2sge1xuICAgICAgICBzdGF0aWMgb2JzZXJ2ZXMgPSAnc2VydmljZTpkdW1teSdcbiAgICAgIH1cblxuICAgICAgYXRsYXMuaG9vaygnZW1wdHknLCBFbXB0eSwgeyBhbGlhc2VzOiB7ICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyB9IH0pXG4gICAgICAvLyBUaGlzIG5vdCB0aHJvd2luZyB3aWxsIHN1ZmZpY2Ug8J+YjlxuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuICAgIH0pXG4gIH0pXG5cblxuICBkZXNjcmliZSgnSG9vayBleGVjdXRpb24gb3JkZXInLCAoKSA9PiB7XG4gICAgY2xhc3MgRmlyc3RTZXJ2aWNlIGV4dGVuZHMgU2VydmljZSB7fVxuXG4gICAgY2xhc3MgU2Vjb25kU2VydmljZSBleHRlbmRzIFNlcnZpY2Uge31cblxuICAgIGNsYXNzIEZpcnN0SG9vayBleHRlbmRzIEhvb2sge1xuICAgICAgc3RhdGljIG9ic2VydmVzID0gJ3NlcnZpY2U6Zmlyc3QnXG4gICAgfVxuXG4gICAgY2xhc3MgU2Vjb25kSG9vayBleHRlbmRzIEhvb2sge1xuICAgICAgc3RhdGljIG9ic2VydmVzID0gJ3NlcnZpY2U6c2Vjb25kJ1xuICAgIH1cblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgRmlyc3RTZXJ2aWNlLnByb3RvdHlwZS5zdGFydCA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG4gICAgICBTZWNvbmRTZXJ2aWNlLnByb3RvdHlwZS5zdGFydCA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG4gICAgICBGaXJzdEhvb2sucHJvdG90eXBlLmJlZm9yZVN0YXJ0ID0gc2lub24uc3R1YigpLnJlc29sdmVzKClcbiAgICAgIEZpcnN0SG9vay5wcm90b3R5cGUuYWZ0ZXJTdGFydCA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG4gICAgICBTZWNvbmRIb29rLnByb3RvdHlwZS5iZWZvcmVTdGFydCA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG4gICAgICBTZWNvbmRIb29rLnByb3RvdHlwZS5hZnRlclN0YXJ0ID0gc2lub24uc3R1YigpLnJlc29sdmVzKClcblxuICAgICAgYXRsYXMuc2VydmljZSgnZmlyc3QnLCBGaXJzdFNlcnZpY2UpXG4gICAgICBhdGxhcy5zZXJ2aWNlKCdzZWNvbmQnLCBTZWNvbmRTZXJ2aWNlKVxuICAgICAgYXRsYXMuaG9vaygnZmlyc3QnLCBGaXJzdEhvb2ssIHsgYWxpYXNlczogeyAnc2VydmljZTpmaXJzdCc6ICdmaXJzdCcgfSB9KVxuICAgICAgYXRsYXMuaG9vaygnc2Vjb25kJywgU2Vjb25kSG9vaywgeyBhbGlhc2VzOiB7ICdzZXJ2aWNlOnNlY29uZCc6ICdzZWNvbmQnIH0gfSlcbiAgICB9KVxuXG5cbiAgICBpdCgnZ3JvdXBzIHRoZSBob29rIGV2ZW50cyB0b2dldGhlciB3aXRoIHRoZSBzZXJ2aWNlIGl0IG9ic2VydmVzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgb3JkZXIgPSBbXVxuXG4gICAgICBGaXJzdEhvb2sucHJvdG90eXBlLmJlZm9yZVN0YXJ0LmNhbGxzRmFrZSgoKSA9PiB2b2lkIG9yZGVyLnB1c2goJ2ZpcnN0OmJlZm9yZVN0YXJ0JykpXG4gICAgICBGaXJzdFNlcnZpY2UucHJvdG90eXBlLnN0YXJ0LmNhbGxzRmFrZSgoKSA9PiB2b2lkIG9yZGVyLnB1c2goJ2ZpcnN0OnN0YXJ0JykpXG4gICAgICBGaXJzdEhvb2sucHJvdG90eXBlLmFmdGVyU3RhcnQuY2FsbHNGYWtlKCgpID0+IHZvaWQgb3JkZXIucHVzaCgnZmlyc3Q6YWZ0ZXJTdGFydCcpKVxuICAgICAgU2Vjb25kSG9vay5wcm90b3R5cGUuYmVmb3JlU3RhcnQuY2FsbHNGYWtlKCgpID0+IHZvaWQgb3JkZXIucHVzaCgnc2Vjb25kOmJlZm9yZVN0YXJ0JykpXG4gICAgICBTZWNvbmRTZXJ2aWNlLnByb3RvdHlwZS5zdGFydC5jYWxsc0Zha2UoKCkgPT4gdm9pZCBvcmRlci5wdXNoKCdzZWNvbmQ6c3RhcnQnKSlcbiAgICAgIFNlY29uZEhvb2sucHJvdG90eXBlLmFmdGVyU3RhcnQuY2FsbHNGYWtlKCgpID0+IHZvaWQgb3JkZXIucHVzaCgnc2Vjb25kOmFmdGVyU3RhcnQnKSlcblxuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuXG4gICAgICBleHBlY3Qob3JkZXIpLnRvLmhhdmUub3JkZXJlZC5tZW1iZXJzKFtcbiAgICAgICAgJ2ZpcnN0OmJlZm9yZVN0YXJ0JyxcbiAgICAgICAgJ2ZpcnN0OnN0YXJ0JyxcbiAgICAgICAgJ2ZpcnN0OmFmdGVyU3RhcnQnLFxuICAgICAgICAnc2Vjb25kOmJlZm9yZVN0YXJ0JyxcbiAgICAgICAgJ3NlY29uZDpzdGFydCcsXG4gICAgICAgICdzZWNvbmQ6YWZ0ZXJTdGFydCcsXG4gICAgICBdKVxuICAgIH0pXG4gIH0pXG59KVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0YXJ0LnRlc3QubWpzIl0sIm5hbWVzIjpbIlNlcnZpY2VBcGkiLCJEdW1teVNlcnZpY2UiLCJTZXJ2aWNlIiwiRHVtbXlIb29rIiwiSG9vayIsImRlc2NyaWJlIiwiYXRsYXMiLCJvcHRpb25zIiwiYmVmb3JlRWFjaCIsInByb3RvdHlwZSIsInByZXBhcmUiLCJzaW5vbiIsInN0dWIiLCJyZXNvbHZlcyIsInN0YXJ0Iiwic3RvcCIsInJvb3QiLCJfX2Rpcm5hbWUiLCJjb25maWciLCJsb2ciLCJsZXZlbCIsInNlcnZpY2VzIiwiZHVtbXkiLCJ0ZXN0IiwiQXRsYXMiLCJpdCIsImV4cGVjdCIsInRvIiwiYmUiLCJpbnN0YW5jZW9mIiwiUHJvbWlzZSIsImVxdWFsIiwic3RhcnRlZCIsInNhbmRib3giLCJoYXZlIiwiY2FsbENvdW50Iiwic2VydmljZSIsImluc3RhbmNlIiwiYmVlbiIsImNhbGxlZFdpdGgiLCJyZWplY3RzIiwiRXJyb3IiLCJldmVudHVhbGx5IiwicmVqZWN0ZWRXaXRoIiwiRmFpbGluZ1NlcnZpY2UiLCJjYXRjaCIsImV2ZW50cyIsImV2ZW50IiwiaG9vayIsInByb3RvIiwiRW1wdHkiLCJDb21wb25lbnRIb29rIiwiYWxpYXNlcyIsIkZpcnN0U2VydmljZSIsIlNlY29uZFNlcnZpY2UiLCJGaXJzdEhvb2siLCJTZWNvbmRIb29rIiwiYmVmb3JlU3RhcnQiLCJhZnRlclN0YXJ0Iiwib3JkZXIiLCJjYWxsc0Zha2UiLCJwdXNoIiwib3JkZXJlZCIsIm1lbWJlcnMiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLE1BQU1BLFVBQU4sQ0FBaUI7O0FBRWpCLE1BQU1DLFlBQU4sU0FBMkJDLGdCQUEzQixDQUFtQzs7QUFFbkMsTUFBTUMsU0FBTixTQUF3QkMsYUFBeEIsQ0FBNkI7O2dCQUF2QkQsUyxjQUNjLE87O0FBR3BCRSxRQUFRLENBQUMsZ0JBQUQsRUFBbUIsTUFBTTtBQUMvQixNQUFJQyxLQUFKO0FBQ0Es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RSxTQUFoQyxDQUEwQyxNQUFNLEtBQUtELEtBQUssQ0FBQ0UsSUFBTixDQUFXLG1CQUFYLENBQXJEO0FBRUEsWUFBTXZELEtBQUssQ0FBQ1EsS0FBTixFQUFOO0FBRUFZLE1BQUFBLE1BQU0sQ0FBQ2lDLEtBQUQsQ0FBTixDQUFjaEMsRUFBZCxDQUFpQk8sSUFBakIsQ0FBc0I0QixPQUF0QixDQUE4QkMsT0FBOUIsQ0FBc0MsQ0FDcEMsbUJBRG9DLEVBRXBDLGFBRm9DLEVBR3BDLGtCQUhvQyxFQUlwQyxvQkFKb0MsRUFLcEMsY0FMb0MsRUFNcEMsbUJBTm9DLENBQXRDO0FBUUQsS0FwQkMsQ0FBRjtBQXFCRCxHQWpETyxDQUFSO0FBa0RELENBeE9PLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uJ1xuaW1wb3J0IFNlcnZpY2UgZnJvbSAnQGF0bGFzLmpzL3NlcnZpY2UnXG5pbXBvcnQgSG9vayBmcm9tICdAYXRsYXMuanMvaG9vaydcblxuY2xhc3MgU2VydmljZUFwaSB7fVxuXG5jbGFzcyBEdW1teVNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHt9XG5cbmNsYXNzIER1bW15SG9vayBleHRlbmRzIEhvb2sge1xuICBzdGF0aWMgb2JzZXJ2ZXMgPSAnYXRsYXMnXG59XG5cbmRlc2NyaWJlKCdBdGxhczo6c3RhcnQoKScsICgpID0+IHtcbiAgbGV0IGF0bGFzXG4gIGxldCBvcHRpb25zXG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5wcmVwYXJlID0gc2lub24uc3R1YigpLnJlc29sdmVzKG5ldyBTZXJ2aWNlQXBpKCkpXG4gICAgRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdGFydCA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG4gICAgRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdG9wID0gc2lub24uc3R1YigpLnJlc29sdmVzKClcblxuICAgIG9wdGlvbnMgPSB7XG4gICAgICByb290OiBfX2Rpcm5hbWUsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgYXRsYXM6IHtcbiAgICAgICAgICBsb2c6IHtcbiAgICAgICAgICAgIGxldmVsOiAnZmF0YWwnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHNlcnZpY2VzOiB7XG4gICAgICAgICAgZHVtbXk6IHtcbiAgICAgICAgICAgIHRlc3Q6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGF0bGFzID0gbmV3IEF0bGFzKG9wdGlvbnMpXG4gIH0pXG5cblxuICBpdCgnaXMgYXN5bmMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGF0bGFzLnN0YXJ0KCkpLnRvLmJlLmluc3RhbmNlb2YoUHJvbWlzZSlcbiAgfSlcblxuICBpdCgncmV0dXJucyB0aGlzJywgYXN5bmMgKCkgPT4ge1xuICAgIGV4cGVjdChhd2FpdCBhdGxhcy5zdGFydCgpKS50by5lcXVhbChhdGxhcylcbiAgfSlcblxuICBpdCgnc2V0cyBhdGxhcy5zdGFydGVkIHRvIHRydWUnLCBhc3luYyAoKSA9PiB7XG4gICAgZXhwZWN0KGF0bGFzLnN0YXJ0ZWQpLnRvLmVxdWFsKGZhbHNlKVxuICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcbiAgICBleHBlY3QoYXRsYXMuc3RhcnRlZCkudG8uZXF1YWwodHJ1ZSlcbiAgfSlcblxuICBpdCgnY2FsbHMgYXRsYXMucHJlcGFyZSgpJywgYXN5bmMgZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5zYW5kYm94LnN0dWIoYXRsYXMsICdwcmVwYXJlJykucmVzb2x2ZXMoYXRsYXMpXG4gICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuXG4gICAgZXhwZWN0KGF0bGFzLnByZXBhcmUpLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gIH0pXG5cblxuICBkZXNjcmliZSgnU2VydmljZSBpbnRlcmFjdGlvbnMnLCAoKSA9PiB7XG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIER1bW15U2VydmljZSlcbiAgICB9KVxuXG5cbiAgICBpdCgnY2FsbHMgc3RhcnQgb24gdGhlIHNlcnZpY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBhdGxhcy5zdGFydCgpXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdGFydCkudG8uaGF2ZS5jYWxsQ291bnQoMSlcbiAgICB9KVxuXG4gICAgaXQoJ2NhbGxzIHN0YXJ0IHdpdGggdGhlIGluc3RhbmNlIHJldHVybmVkIGZyb20gcHJlcGFyZSgpIHN0ZXAnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IHsgdGVzdDogdHJ1ZSB9XG4gICAgICBEdW1teVNlcnZpY2UucHJvdG90eXBlLnByZXBhcmUucmVzb2x2ZXMoaW5zdGFuY2UpXG4gICAgICBhd2FpdCBhdGxhcy5zdGFydCgpXG5cbiAgICAgIGV4cGVjdChEdW1teVNlcnZpY2UucHJvdG90eXBlLnN0YXJ0KS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChpbnN0YW5jZSlcbiAgICB9KVxuXG4gICAgaXQoJ2NhbGxzIHRoZSBtZXRob2Qgb25seSBvbmNlIGZvciBlYWNoIHNlcnZpY2UgZm9yIG11bHRpcGxlIC5zdGFydCgpIGNhbGxzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdGFydCkudG8uaGF2ZS5jYWxsQ291bnQoMSlcbiAgICB9KVxuXG4gICAgaXQoJ3JlLXRocm93cyBjb21wb25lbnQgZXJyb3JzIHRocm93biBkdXJpbmcgLnN0YXJ0KCknLCAoKSA9PiB7XG4gICAgICBEdW1teVNlcnZpY2UucHJvdG90eXBlLnN0YXJ0LnJlamVjdHMobmV3IEVycm9yKCdmYWlsIScpKVxuXG4gICAgICByZXR1cm4gZXhwZWN0KGF0bGFzLnN0YXJ0KCkpLnRvLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9mYWlsIS91KVxuICAgIH0pXG5cbiAgICBpdCgnc3RvcHMgYWxyZWFkeSBzdGFydGVkIHNlcnZpY2UgaWYgb25lIG9mIHRoZSBjb21wb25lbnRzIGZhaWxzIHRvIHN0YXJ0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY2xhc3MgRmFpbGluZ1NlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHt9XG4gICAgICBzaW5vbi5zdHViKEZhaWxpbmdTZXJ2aWNlLnByb3RvdHlwZSwgJ3N0YXJ0JykucmVqZWN0cyhuZXcgRXJyb3IoJ2ZhaWwhJykpXG4gICAgICBhdGxhcy5zZXJ2aWNlKCdmYWlsaW5nLXNlcnZpY2UnLCBGYWlsaW5nU2VydmljZSlcblxuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuICAgICAgICAuY2F0Y2goKCkgPT4ge30pXG5cbiAgICAgIGV4cGVjdChEdW1teVNlcnZpY2UucHJvdG90eXBlLnN0YXJ0KS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgICAgZXhwZWN0KER1bW15U2VydmljZS5wcm90b3R5cGUuc3RvcCkudG8uaGF2ZS5jYWxsQ291bnQoMSlcbiAgICB9KVxuICB9KVxuXG5cbiAgZGVzY3JpYmUoJ0hvb2sgaW50ZXJhY3Rpb25zIChvYnNlcnZlcyA9IGF0bGFzKScsICgpID0+IHtcbiAgICBjb25zdCBldmVudHMgPSBbXG4gICAgICAnYmVmb3JlU3RhcnQnLFxuICAgICAgJ2FmdGVyU3RhcnQnLFxuICAgIF1cblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgLy8gU3R1YiBvdXQgYWxsIHRoZSBldmVudCBoYW5kbGVyc1xuICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgICAgRHVtbXlIb29rLnByb3RvdHlwZVtldmVudF0gPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMoKVxuICAgICAgfVxuXG4gICAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIER1bW15U2VydmljZSlcbiAgICAgIGF0bGFzLmhvb2soJ2R1bW15JywgRHVtbXlIb29rKVxuICAgIH0pXG5cbiAgICBpdCgnY2FsbHMgdGhlIHN0YXJ0IGhvb2tzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuXG4gICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgICAgICBleHBlY3QoRHVtbXlIb29rLnByb3RvdHlwZVtldmVudF0pLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgICB9XG4gICAgfSlcblxuICAgIGl0KCdjYWxscyB0aGUgaG9va3Mgd2l0aCB0aGUgYXRsYXMgaW5zdGFuY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm90byA9IER1bW15SG9vay5wcm90b3R5cGVcbiAgICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcblxuICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgICAgZXhwZWN0KHByb3RvW2V2ZW50XSkudG8uaGF2ZS5iZWVuLmNhbGxlZFdpdGgoYXRsYXMpXG4gICAgICB9XG4gICAgfSlcblxuICAgIGl0KCdjYW4gaGFuZGxlIGhvb2tzIHdoaWNoIGRvIG5vdCBpbXBsZW1lbnQgYW55IGxpc3RlbmVycycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNsYXNzIEVtcHR5IGV4dGVuZHMgSG9vayB7XG4gICAgICAgIHN0YXRpYyBvYnNlcnZlcyA9ICdhdGxhcydcbiAgICAgIH1cblxuICAgICAgYXRsYXMuaG9vaygnZW1wdHknLCBFbXB0eSlcbiAgICAgIC8vIFRoaXMgbm90IHRocm93aW5nIHdpbGwgc3VmZmljZSDwn5iOXG4gICAgICBhd2FpdCBhdGxhcy5zdGFydCgpXG4gICAgfSlcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdIb29rIGludGVyYWN0aW9ucyAob2JzZXJ2ZXMgPSBjb21wb25lbnQpJywgKCkgPT4ge1xuICAgIGNsYXNzIENvbXBvbmVudEhvb2sgZXh0ZW5kcyBIb29rIHtcbiAgICAgIHN0YXRpYyBvYnNlcnZlcyA9ICdzZXJ2aWNlOmR1bW15J1xuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50cyA9IFtcbiAgICAgICdiZWZvcmVTdGFydCcsXG4gICAgICAnYWZ0ZXJTdGFydCcsXG4gICAgXVxuXG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgICAgICBDb21wb25lbnRIb29rLnByb3RvdHlwZVtldmVudF0gPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMoKVxuICAgICAgfVxuXG4gICAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIER1bW15U2VydmljZSlcbiAgICAgIGF0bGFzLmhvb2soJ2R1bW15JywgQ29tcG9uZW50SG9vaywgeyBhbGlhc2VzOiB7ICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyB9IH0pXG4gICAgfSlcblxuXG4gICAgaXQoJ2NhbGxzIHRoZSBob29rcyB3aXRoIHRoZSBjb21wb25lbnQgaW5zdGFuY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm90byA9IENvbXBvbmVudEhvb2sucHJvdG90eXBlXG4gICAgICBhd2FpdCBhdGxhcy5zdGFydCgpXG5cbiAgICAgIGZvciAoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgICAgIGV4cGVjdChwcm90b1tldmVudF0pLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKGF0bGFzLnNlcnZpY2VzLmR1bW15KVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpdCgnY2FuIGhhbmRsZSBob29rcyB3aGljaCBkbyBub3QgaW1wbGVtZW50IGFueSBsaXN0ZW5lcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjbGFzcyBFbXB0eSBleHRlbmRzIEhvb2sge1xuICAgICAgICBzdGF0aWMgb2JzZXJ2ZXMgPSAnc2VydmljZTpkdW1teSdcbiAgICAgIH1cblxuICAgICAgYXRsYXMuaG9vaygnZW1wdHknLCBFbXB0eSwgeyBhbGlhc2VzOiB7ICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyB9IH0pXG4gICAgICAvLyBUaGlzIG5vdCB0aHJvd2luZyB3aWxsIHN1ZmZpY2Ug8J+YjlxuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuICAgIH0pXG4gIH0pXG5cblxuICBkZXNjcmliZSgnSG9vayBleGVjdXRpb24gb3JkZXInLCAoKSA9PiB7XG4gICAgY2xhc3MgRmlyc3RTZXJ2aWNlIGV4dGVuZHMgU2VydmljZSB7fVxuXG4gICAgY2xhc3MgU2Vjb25kU2VydmljZSBleHRlbmRzIFNlcnZpY2Uge31cblxuICAgIGNsYXNzIEZpcnN0SG9vayBleHRlbmRzIEhvb2sge1xuICAgICAgc3RhdGljIG9ic2VydmVzID0gJ3NlcnZpY2U6Zmlyc3QnXG4gICAgfVxuXG4gICAgY2xhc3MgU2Vjb25kSG9vayBleHRlbmRzIEhvb2sge1xuICAgICAgc3RhdGljIG9ic2VydmVzID0gJ3NlcnZpY2U6c2Vjb25kJ1xuICAgIH1cblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgRmlyc3RTZXJ2aWNlLnByb3RvdHlwZS5zdGFydCA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG4gICAgICBTZWNvbmRTZXJ2aWNlLnByb3RvdHlwZS5zdGFydCA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG4gICAgICBGaXJzdEhvb2sucHJvdG90eXBlLmJlZm9yZVN0YXJ0ID0gc2lub24uc3R1YigpLnJlc29sdmVzKClcbiAgICAgIEZpcnN0SG9vay5wcm90b3R5cGUuYWZ0ZXJTdGFydCA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG4gICAgICBTZWNvbmRIb29rLnByb3RvdHlwZS5iZWZvcmVTdGFydCA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG4gICAgICBTZWNvbmRIb29rLnByb3RvdHlwZS5hZnRlclN0YXJ0ID0gc2lub24uc3R1YigpLnJlc29sdmVzKClcblxuICAgICAgYXRsYXMuc2VydmljZSgnZmlyc3QnLCBGaXJzdFNlcnZpY2UpXG4gICAgICBhdGxhcy5zZXJ2aWNlKCdzZWNvbmQnLCBTZWNvbmRTZXJ2aWNlKVxuICAgICAgYXRsYXMuaG9vaygnZmlyc3QnLCBGaXJzdEhvb2ssIHsgYWxpYXNlczogeyAnc2VydmljZTpmaXJzdCc6ICdmaXJzdCcgfSB9KVxuICAgICAgYXRsYXMuaG9vaygnc2Vjb25kJywgU2Vjb25kSG9vaywgeyBhbGlhc2VzOiB7ICdzZXJ2aWNlOnNlY29uZCc6ICdzZWNvbmQnIH0gfSlcbiAgICB9KVxuXG5cbiAgICBpdCgnZ3JvdXBzIHRoZSBob29rIGV2ZW50cyB0b2dldGhlciB3aXRoIHRoZSBzZXJ2aWNlIGl0IG9ic2VydmVzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgb3JkZXIgPSBbXVxuXG4gICAgICBGaXJzdEhvb2sucHJvdG90eXBlLmJlZm9yZVN0YXJ0LmNhbGxzRmFrZSgoKSA9PiB2b2lkIG9yZGVyLnB1c2goJ2ZpcnN0OmJlZm9yZVN0YXJ0JykpXG4gICAgICBGaXJzdFNlcnZpY2UucHJvdG90eXBlLnN0YXJ0LmNhbGxzRmFrZSgoKSA9PiB2b2lkIG9yZGVyLnB1c2goJ2ZpcnN0OnN0YXJ0JykpXG4gICAgICBGaXJzdEhvb2sucHJvdG90eXBlLmFmdGVyU3RhcnQuY2FsbHNGYWtlKCgpID0+IHZvaWQgb3JkZXIucHVzaCgnZmlyc3Q6YWZ0ZXJTdGFydCcpKVxuICAgICAgU2Vjb25kSG9vay5wcm90b3R5cGUuYmVmb3JlU3RhcnQuY2FsbHNGYWtlKCgpID0+IHZvaWQgb3JkZXIucHVzaCgnc2Vjb25kOmJlZm9yZVN0YXJ0JykpXG4gICAgICBTZWNvbmRTZXJ2aWNlLnByb3RvdHlwZS5zdGFydC5jYWxsc0Zha2UoKCkgPT4gdm9pZCBvcmRlci5wdXNoKCdzZWNvbmQ6c3RhcnQnKSlcbiAgICAgIFNlY29uZEhvb2sucHJvdG90eXBlLmFmdGVyU3RhcnQuY2FsbHNGYWtlKCgpID0+IHZvaWQgb3JkZXIucHVzaCgnc2Vjb25kOmFmdGVyU3RhcnQnKSlcblxuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuXG4gICAgICBleHBlY3Qob3JkZXIpLnRvLmhhdmUub3JkZXJlZC5tZW1iZXJzKFtcbiAgICAgICAgJ2ZpcnN0OmJlZm9yZVN0YXJ0JyxcbiAgICAgICAgJ2ZpcnN0OnN0YXJ0JyxcbiAgICAgICAgJ2ZpcnN0OmFmdGVyU3RhcnQnLFxuICAgICAgICAnc2Vjb25kOmJlZm9yZVN0YXJ0JyxcbiAgICAgICAgJ3NlY29uZDpzdGFydCcsXG4gICAgICAgICdzZWNvbmQ6YWZ0ZXJTdGFydCcsXG4gICAgICBdKVxuICAgIH0pXG4gIH0pXG59KVxuIl19

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

DummyService.prototype.stop.rejects(new Error('fail!'));
return expect(atlas.stop()).to.eventually.be.rejectedWith(/fail!/);
return expect(atlas.stop()).to.eventually.be.rejectedWith(/fail!/u);
});

@@ -179,2 +179,2 @@ it('stops the other services if one of the services throws during .stop()', async () => {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3AudGVzdC5tanMiXSwibmFtZXMiOlsiU2VydmljZUFwaSIsIkR1bW15U2VydmljZSIsIlNlcnZpY2UiLCJEdW1teUFjdGlvbiIsIkFjdGlvbiIsIkR1bW15SG9vayIsIkhvb2siLCJkZXNjcmliZSIsImF0bGFzIiwib3B0aW9ucyIsImJlZm9yZUVhY2giLCJwcm90b3R5cGUiLCJwcmVwYXJlIiwic2lub24iLCJzdHViIiwicmVzb2x2ZXMiLCJzdG9wIiwicm9vdCIsIl9fZGlybmFtZSIsImNvbmZpZyIsImxvZyIsImxldmVsIiwic2VydmljZXMiLCJkdW1teSIsInRlc3QiLCJob29rcyIsIkF0bGFzIiwic2VydmljZSIsImFjdGlvbiIsImhvb2siLCJzdGFydCIsIml0IiwiZXhwZWN0IiwidG8iLCJiZSIsImluc3RhbmNlb2YiLCJQcm9taXNlIiwiZXF1YWwiLCJzdGFydGVkIiwicHJlcGFyZWQiLCJoYXZlIiwiY2FsbENvdW50IiwiaW5zdGFuY2UiLCJiZWVuIiwiY2FsbGVkV2l0aCIsInByb3BlcnR5Iiwibm90IiwicmVqZWN0cyIsIkVycm9yIiwiZXZlbnR1YWxseSIsInJlamVjdGVkV2l0aCIsIkZhaWxpbmdTZXJ2aWNlIiwiY2F0Y2giLCJldmVudHMiLCJldmVudCIsInByb3RvIiwiYmVmb3JlU3RvcCIsImFyZ3MiLCJhZnRlclN0b3AiLCJsYXN0Q2FsbCIsImxlbmd0aCIsIkNvbXBvbmVudEhvb2siLCJhbGlhc2VzIiwiYWN0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsTUFBTUEsVUFBTixDQUFpQjs7QUFFakIsTUFBTUMsWUFBTixTQUEyQkMsZ0JBQTNCLENBQW1DOztBQUVuQyxNQUFNQyxXQUFOLFNBQTBCQyxlQUExQixDQUFpQzs7QUFFakMsTUFBTUMsU0FBTixTQUF3QkMsYUFBeEIsQ0FBNkI7O2dCQUF2QkQsUyxjQUNjLE87O0FBR3BCRSxTQUFTLGVBQVQsRUFBMEIsTUFBTTtBQUM5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LEtBTkQ7QUFRQUksT0FBRyxvQ0FBSCxFQUF5QyxZQUFZO0FBQ25ELFlBQU13QixRQUFRTSxjQUFjbEQsU0FBNUI7QUFDQSxZQUFNSCxNQUFNUSxJQUFOLEVBQU47QUFFQWdCLGFBQU91QixNQUFNRyxTQUFiLEVBQXdCekIsRUFBeEIsQ0FBMkJPLElBQTNCLENBQWdDRyxJQUFoQyxDQUFxQ0MsVUFBckMsQ0FBZ0QsSUFBaEQ7QUFDRCxLQUxEO0FBTUQsR0FyQ0Q7QUF3Q0FyQyxXQUFTLHFCQUFULEVBQWdDLE1BQU07QUFDcEN3QixPQUFHLHNDQUFILEVBQTJDLFlBQVk7QUFFckRDLGFBQU94QixNQUFNdUQsT0FBYixFQUFzQjlCLEVBQXRCLENBQXlCTyxJQUF6QixDQUE4QkssUUFBOUIsQ0FBdUMsT0FBdkM7QUFFQSxZQUFNckMsTUFBTVEsSUFBTixFQUFOO0FBQ0FnQixhQUFPeEIsTUFBTXVELE9BQWIsRUFBc0I5QixFQUF0QixDQUF5QmEsR0FBekIsQ0FBNkJOLElBQTdCLENBQWtDSyxRQUFsQyxDQUEyQyxPQUEzQztBQUNELEtBTkQ7QUFPRCxHQVJEO0FBU0QsQ0FuTUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uJ1xuaW1wb3J0IFNlcnZpY2UgZnJvbSAnQGF0bGFzLmpzL3NlcnZpY2UnXG5pbXBvcnQgSG9vayBmcm9tICdAYXRsYXMuanMvaG9vaydcbmltcG9ydCBBY3Rpb24gZnJvbSAnQGF0bGFzLmpzL2FjdGlvbidcblxuY2xhc3MgU2VydmljZUFwaSB7fVxuXG5jbGFzcyBEdW1teVNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHt9XG5cbmNsYXNzIER1bW15QWN0aW9uIGV4dGVuZHMgQWN0aW9uIHt9XG5cbmNsYXNzIER1bW15SG9vayBleHRlbmRzIEhvb2sge1xuICBzdGF0aWMgb2JzZXJ2ZXMgPSAnYXRsYXMnXG59XG5cbmRlc2NyaWJlKCdBdGxhczo6c3RvcCgpJywgKCkgPT4ge1xuICBsZXQgYXRsYXNcbiAgbGV0IG9wdGlvbnNcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBEdW1teVNlcnZpY2UucHJvdG90eXBlLnByZXBhcmUgPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMobmV3IFNlcnZpY2VBcGkoKSlcbiAgICBEdW1teVNlcnZpY2UucHJvdG90eXBlLnN0b3AgPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMoKVxuXG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIHJvb3Q6IF9fZGlybmFtZSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBhdGxhczoge1xuICAgICAgICAgIGxvZzoge1xuICAgICAgICAgICAgbGV2ZWw6ICdmYXRhbCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2VydmljZXM6IHtcbiAgICAgICAgICBkdW1teToge1xuICAgICAgICAgICAgdGVzdDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBob29rczoge1xuICAgICAgICAgIGR1bW15OiB7XG4gICAgICAgICAgICB0ZXN0OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cbiAgICBhdGxhcyA9IG5ldyBBdGxhcyhvcHRpb25zKVxuICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15JywgRHVtbXlTZXJ2aWNlKVxuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBEdW1teUFjdGlvbilcbiAgICBhdGxhcy5ob29rKCdkdW1teScsIER1bW15SG9vaylcblxuICAgIHJldHVybiBhdGxhcy5zdGFydCgpXG4gIH0pXG5cblxuICBpdCgnaXMgYXN5bmMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGF0bGFzLnN0b3AoKSkudG8uYmUuaW5zdGFuY2VvZihQcm9taXNlKVxuICB9KVxuXG4gIGl0KCdyZXR1cm5zIHRoaXMnLCBhc3luYyAoKSA9PiB7XG4gICAgZXhwZWN0KGF3YWl0IGF0bGFzLnN0b3AoKSkudG8uZXF1YWwoYXRsYXMpXG4gIH0pXG5cbiAgaXQoJ3NldHMgYXRsYXMuc3RhcnRlZCBhbmQgYXRsYXMucHJlcGFyZWQgdG8gZmFsc2UnLCBhc3luYyAoKSA9PiB7XG4gICAgZXhwZWN0KGF0bGFzLnN0YXJ0ZWQpLnRvLmVxdWFsKHRydWUpXG4gICAgZXhwZWN0KGF0bGFzLnByZXBhcmVkKS50by5lcXVhbCh0cnVlKVxuICAgIGF3YWl0IGF0bGFzLnN0b3AoKVxuICAgIGV4cGVjdChhdGxhcy5zdGFydGVkKS50by5lcXVhbChmYWxzZSlcbiAgICBleHBlY3QoYXRsYXMucHJlcGFyZWQpLnRvLmVxdWFsKGZhbHNlKVxuICB9KVxuXG5cbiAgZGVzY3JpYmUoJ1NlcnZpY2UgaW50ZXJhY3Rpb25zJywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBzdG9wIG9uIHRoZSBzZXJ2aWNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgYXRsYXMuc3RvcCgpXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdG9wKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgIH0pXG5cbiAgICBpdCgncGFzc2VzIHRoZSBleHBvc2VkIGluc3RhbmNlIHRvIHRoZSBzdG9wKCkgbWV0aG9kIG9uIHRoZSBzZXJ2aWNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSB7IHRlc3Q6IHRydWUgfVxuICAgICAgRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5wcmVwYXJlLnJlc29sdmVzKGluc3RhbmNlKVxuXG4gICAgICBhdGxhcyA9IG5ldyBBdGxhcyhvcHRpb25zKVxuICAgICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBEdW1teVNlcnZpY2UpXG5cbiAgICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcbiAgICAgIGF3YWl0IGF0bGFzLnN0b3AoKVxuXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdG9wKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChpbnN0YW5jZSlcbiAgICB9KVxuXG4gICAgaXQoJ2NhbGxzIHRoZSBtZXRob2Qgb25seSBvbmNlIGZvciBlYWNoIHNlcnZpY2UgZm9yIG11bHRpcGxlIC5zdG9wKCkgY2FsbHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBhdGxhcy5zdG9wKClcbiAgICAgIGF3YWl0IGF0bGFzLnN0b3AoKVxuXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdG9wKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgIH0pXG5cbiAgICBpdCgncmVtb3ZlcyBnZXR0ZXJzIGZvciBzZXJ2aWNlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGV4cGVjdChhdGxhcy5zZXJ2aWNlcykudG8uaGF2ZS5wcm9wZXJ0eSgnZHVtbXknKVxuICAgICAgYXdhaXQgYXRsYXMuc3RvcCgpXG4gICAgICBleHBlY3QoYXRsYXMuc2VydmljZXMpLnRvLm5vdC5oYXZlLnByb3BlcnR5KCdkdW1teScpXG4gICAgfSlcblxuICAgIGl0KCdyZS10aHJvd3MgY29tcG9uZW50IGVycm9ycyB0aHJvd24gZHVyaW5nIC5zdG9wKCknLCAoKSA9PiB7XG4gICAgICBEdW1teVNlcnZpY2UucHJvdG90eXBlLnN0b3AucmVqZWN0cyhuZXcgRXJyb3IoJ2ZhaWwhJykpXG5cbiAgICAgIHJldHVybiBleHBlY3QoYXRsYXMuc3RvcCgpKS50by5ldmVudHVhbGx5LmJlLnJlamVjdGVkV2l0aCgvZmFpbCEvKVxuICAgIH0pXG5cbiAgICBpdCgnc3RvcHMgdGhlIG90aGVyIHNlcnZpY2VzIGlmIG9uZSBvZiB0aGUgc2VydmljZXMgdGhyb3dzIGR1cmluZyAuc3RvcCgpJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY2xhc3MgRmFpbGluZ1NlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHt9XG4gICAgICBzaW5vbi5zdHViKEZhaWxpbmdTZXJ2aWNlLnByb3RvdHlwZSwgJ3N0b3AnKS5yZWplY3RzKG5ldyBFcnJvcignZmFpbCEnKSlcbiAgICAgIGF0bGFzLnNlcnZpY2UoJ2ZhaWxpbmctc2VydmljZScsIEZhaWxpbmdTZXJ2aWNlKVxuXG4gICAgICBhd2FpdCBhdGxhcy5zdGFydCgpXG4gICAgICBhd2FpdCBhdGxhcy5zdG9wKClcbiAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxuXG4gICAgICBleHBlY3QoRmFpbGluZ1NlcnZpY2UucHJvdG90eXBlLnN0b3ApLnRvLmhhdmUuY2FsbENvdW50KDEpXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdG9wKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgIH0pXG4gIH0pXG5cblxuICBkZXNjcmliZSgnSG9vayBpbnRlcmFjdGlvbnMgKG9ic2VydmVzID0gYXRsYXMpJywgKCkgPT4ge1xuICAgIGNvbnN0IGV2ZW50cyA9IFtcbiAgICAgICdiZWZvcmVTdG9wJyxcbiAgICAgICdhZnRlclN0b3AnLFxuICAgIF1cblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgLy8gU3R1YiBvdXQgYWxsIHRoZSBldmVudCBoYW5kbGVyc1xuICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgICAgRHVtbXlIb29rLnByb3RvdHlwZVtldmVudF0gPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMoKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpdCgnY2FsbHMgdGhlIHN0b3AgaG9va3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBhdGxhcy5zdG9wKClcblxuICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgICAgZXhwZWN0KER1bW15SG9vay5wcm90b3R5cGVbZXZlbnRdKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpdCgnY2FsbHMgdGhlIGJlZm9yZVN0b3AgaG9vayB3aXRoIHRoZSBhcHBsaWNhdGlvbiBpbnN0YW5jZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3RvID0gRHVtbXlIb29rLnByb3RvdHlwZVxuICAgICAgYXdhaXQgYXRsYXMuc3RvcCgpXG5cbiAgICAgIGV4cGVjdChwcm90by5iZWZvcmVTdG9wKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChhdGxhcylcbiAgICB9KVxuXG4gICAgaXQoJ2NhbGxzIHRoZSBhZnRlclN0b3AgaG9vayB3aXRoIG51bGwnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm90byA9IER1bW15SG9vay5wcm90b3R5cGVcbiAgICAgIGF3YWl0IGF0bGFzLnN0b3AoKVxuICAgICAgY29uc3QgYXJncyA9IHByb3RvLmFmdGVyU3RvcC5sYXN0Q2FsbC5hcmdzXG5cbiAgICAgIGV4cGVjdChhcmdzKS50by5oYXZlLmxlbmd0aCgxKVxuICAgICAgZXhwZWN0KGFyZ3NbMF0pLnRvLmVxdWFsKG51bGwpXG4gICAgfSlcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdIb29rIGludGVyYWN0aW9ucyAob2JzZXJ2ZXMgPSBjb21wb25lbnQpJywgKCkgPT4ge1xuICAgIGNsYXNzIENvbXBvbmVudEhvb2sgZXh0ZW5kcyBIb29rIHtcbiAgICAgIHN0YXRpYyBvYnNlcnZlcyA9ICdzZXJ2aWNlOmR1bW15J1xuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50cyA9IFtcbiAgICAgICdiZWZvcmVTdG9wJyxcbiAgICAgICdhZnRlclN0b3AnLFxuICAgIF1cblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgLy8gU3R1YiBvdXQgYWxsIHRoZSBldmVudCBoYW5kbGVyc1xuICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgICAgQ29tcG9uZW50SG9vay5wcm90b3R5cGVbZXZlbnRdID0gc2lub24uc3R1YigpLnJlc29sdmVzKClcbiAgICAgIH1cblxuICAgICAgYXRsYXMgPSBuZXcgQXRsYXMob3B0aW9ucylcbiAgICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15JywgRHVtbXlTZXJ2aWNlKVxuICAgICAgYXRsYXMuaG9vaygnZHVtbXknLCBDb21wb25lbnRIb29rLCB7IGFsaWFzZXM6IHsgJ3NlcnZpY2U6ZHVtbXknOiAnZHVtbXknIH0gfSlcblxuICAgICAgcmV0dXJuIGF0bGFzLnN0YXJ0KClcbiAgICB9KVxuXG4gICAgaXQoJ2NhbGxzIHRoZSBiZWZvcmVTdG9wIGhvb2sgd2l0aCB0aGUgY29tcG9uZW50IGluc3RhbmNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgc2VydmljZSA9IGF0bGFzLnNlcnZpY2VzLmR1bW15XG4gICAgICBjb25zdCBwcm90byA9IENvbXBvbmVudEhvb2sucHJvdG90eXBlXG4gICAgICBhd2FpdCBhdGxhcy5zdG9wKClcblxuICAgICAgZXhwZWN0KHByb3RvLmJlZm9yZVN0b3ApLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKHNlcnZpY2UpXG4gICAgfSlcblxuICAgIGl0KCdjYWxscyB0aGUgYWZ0ZXJTdG9wIGhvb2sgd2l0aCBudWxsJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvdG8gPSBDb21wb25lbnRIb29rLnByb3RvdHlwZVxuICAgICAgYXdhaXQgYXRsYXMuc3RvcCgpXG5cbiAgICAgIGV4cGVjdChwcm90by5hZnRlclN0b3ApLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKG51bGwpXG4gICAgfSlcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdBY3Rpb24gaW50ZXJhY3Rpb25zJywgKCkgPT4ge1xuICAgIGl0KCdyZW1vdmVzIHRoZSBhY3Rpb24gZnJvbSB0aGlzLmFjdGlvbnMnLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBTYW5pdHkgY2hlY2tcbiAgICAgIGV4cGVjdChhdGxhcy5hY3Rpb25zKS50by5oYXZlLnByb3BlcnR5KCdkdW1teScpXG5cbiAgICAgIGF3YWl0IGF0bGFzLnN0b3AoKVxuICAgICAgZXhwZWN0KGF0bGFzLmFjdGlvbnMpLnRvLm5vdC5oYXZlLnByb3BlcnR5KCdkdW1teScpXG4gICAgfSlcbiAgfSlcbn0pXG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0b3AudGVzdC5tanMiXSwibmFtZXMiOlsiU2VydmljZUFwaSIsIkR1bW15U2VydmljZSIsIlNlcnZpY2UiLCJEdW1teUFjdGlvbiIsIkFjdGlvbiIsIkR1bW15SG9vayIsIkhvb2siLCJkZXNjcmliZSIsImF0bGFzIiwib3B0aW9ucyIsImJlZm9yZUVhY2giLCJwcm90b3R5cGUiLCJwcmVwYXJlIiwic2lub24iLCJzdHViIiwicmVzb2x2ZXMiLCJzdG9wIiwicm9vdCIsIl9fZGlybmFtZSIsImNvbmZpZyIsImxvZyIsImxldmVsIiwic2VydmljZXMiLCJkdW1teSIsInRlc3QiLCJob29rcyIsIkF0bGFzIiwic2VydmljZSIsImFjdGlvbiIsImhvb2siLCJzdGFydCIsIml0IiwiZXhwZWN0IiwidG8iLCJiZSIsImluc3RhbmNlb2YiLCJQcm9taXNlIiwiZXF1YWwiLCJzdGFydGVkIiwicHJlcGFyZWQiLCJoYXZlIiwiY2FsbENvdW50IiwiaW5zdGFuY2UiLCJiZWVuIiwiY2FsbGVkV2l0aCIsInByb3BlcnR5Iiwibm90IiwicmVqZWN0cyIsIkVycm9yIiwiZXZlbnR1YWxseSIsInJlamVjdGVkV2l0aCIsIkZhaWxpbmdTZXJ2aWNlIiwiY2F0Y2giLCJldmVudHMiLCJldmVudCIsInByb3RvIiwiYmVmb3JlU3RvcCIsImFyZ3MiLCJhZnRlclN0b3AiLCJsYXN0Q2FsbCIsImxlbmd0aCIsIkNvbXBvbmVudEhvb2siLCJhbGlhc2VzIiwiYWN0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsTUFBTUEsVUFBTixDQUFpQjs7QUFFakIsTUFBTUMsWUFBTixTQUEyQkMsZ0JBQTNCLENBQW1DOztBQUVuQyxNQUFNQyxXQUFOLFNBQTBCQyxlQUExQixDQUFpQzs7QUFFakMsTUFBTUMsU0FBTixTQUF3QkMsYUFBeEIsQ0FBNkI7O2dCQUF2QkQsUyxjQUNjLE87O0FBR3BCRSxRQUFRLENBQUMsZUFBRCxFQUFrQixNQUFNO0FBQzlCLE1BQUlDLEtBQUo7QUFDQSxNQUFJQyxPQUFKO0FBRUFDLEVBQUFBLFVBQVUsQ0FBQyxNQUFNO0FBQ2ZULElBQUFBLFlBQVksQ0FBQ1UsU0FBYixDQUF1QkMsT0FBdkIsR0FBaUNDLEtBQUssQ0FBQ0MsSUFBTixHQUFhQyxRQUFiLENBQXNCLElBQUlmLFVBQUosRUFBdEIsQ0FBakM7QUFDQUMsSUFBQUEsWUFBWSxDQUFDVSxTQUFiLENBQXVCSyxJQUF2QixHQUE4QkgsS0FBSyxDQUFDQyxJQUFOLEdBQWFDLFFBQWIsRUFBOUI7QUFFQU4sSUFBQUEsT0FBTyxHQUFHO0FBQ1JRLE1BQUFBLElBQUksRUFBRUMsU0FERTtBQUVSQyxNQUFBQSxNQUFNLEVBQUU7QUFDTlgsUUFBQUEsS0FBSyxFQUFFO0FBQ0xZLFVBQUFBLEdBQUcsRUFBRTtBQUNIQyxZQUFBQSxLQUFLLEVBQUU7QUFESjtBQURBLFNBREQ7QUFNTkMsUUFBQUEsUUFBUSxFQUFFO0FBQ1JDLFVBQUFBLEtBQUssRUFBRTtBQUNMQyxZQUFBQSxJQUFJLEVBQUU7QUFERDtBQURDLFNBTko7QUFXTkMsUUFBQUEsS0FBSyxFQUFFO0FBQ0xGLFVBQUFBLEtBQUssRUFBRTtBQUNMQyxZQUFBQSxJQUFJLEVBQUU7QUFERDtBQURGO0FBWEQ7QUFGQSxLQUFWO0FBb0JBaEIsSUFBQUEsS0FBSyxHQUFHLElBQUlrQixPQUFKLENBQVVqQixPQUFWLENBQVI7QUFDQUQsSUFBQUEsS0FBSyxDQUFDbUIsT0FBTixDQUFjLE9BQWQsRUFBdUIxQixZQUF2QjtBQUNBTyxJQUFBQSxLQUFLLENBQUNvQixNQUFOLENBQWEsT0FBYixFQUFzQnpCLFdBQXRCO0FBQ0FLLElBQUFBLEtBQUssQ0FBQ3FCLElBQU4sQ0FBVyxPQUFYLEVBQW9CeEIsU0FBcEI7QUFFQSxXQUFPRyxLQUFLLENBQUNzQixLQUFOLEVBQVA7QUFDRCxHQTlCUyxDQUFWO0FBaUNBQyxFQUFBQSxFQUFFLENBQUMsVUFBRCxFQUFhLE1BQU07QUFDbkJDLElBQUFBLE1BQU0sQ0FBQ3hCLEtBQUssQ0FBQ1EsSUFBTixFQUFELENBQU4sQ0FBcUJpQixFQUFyQixDQUF3QkMsRUFBeEIsQ0FBMkJDLFVBQTNCLENBQXNDQyxPQUF0QztBQUNELEdBRkMsQ0FBRjtBQUlBTCxFQUFBQSxFQUFFLENBQUMsY0FBRCxFQUFpQixZQUFZO0FBQzdCQyxJQUFBQSxNQUFNLEVBQUMsTUFBTXhCLEtBQUssQ0FBQ1EsSUFBTixFQUFQLEVBQU4sQ0FBMkJpQixFQUEzQixDQUE4QkksS0FBOUIsQ0FBb0M3QixLQUFwQztBQUNELEdBRkMsQ0FBRjtBQUlBdUIsRUFBQUEsRUFBRSxDQUFDLGdEQUFELEVBQW1ELFlBQVk7QUFDL0RDLElBQUFBLE1BQU0sQ0FBQ3hCLEtBQUssQ0FBQzhCLE9BQVAsQ0FBTixDQUFzQkwsRUFBdEIsQ0FBeUJJLEtBQXpCLENBQStCLElBQS9CO0FBQ0FMLElBQUFBLE1BQU0sQ0FBQ3hCLEtBQUssQ0FBQytCLFFBQVAsQ0FBTixDQUF1Qk4sRUFBdkIsQ0FBMEJJLEtBQTFCLENBQWdDLElBQWhDO0FBQ0EsVUFBTTdCLEtBQUssQ0FBQ1EsSUFBTixFQUFOO0FBQ0FnQixJQUFBQSxNQUFNLENBQUN4QixLQUFLLENBQUM4QixPQUFQLENBQU4sQ0FBc0JMLEVBQXRCLENBQXlCSSxLQUF6QixDQUErQixLQUEvQjtBQUNBTCxJQUFBQSxNQUFNLENBQUN4QixLQUFLLENBQUMrQixRQUFQLENBQU4sQ0FBdUJOLEVBQXZCLENBQTBCSSxLQUExQixDQUFnQyxLQUFoQztBQUNELEdBTkMsQ0FBRjtBQVNBOUIsRUFBQUEsUUFBUSxDQUFDLHNCQUFELEVBQXlCLE1BQU07QUFDckN3QixJQUFBQSxFQUFFLENBQUMsMkJBQUQsRUFBOEIsWUFBWTtBQUMxQyxZQUFNdkIsS0FBSyxDQUFDUSxJQUFOLEVBQU47QUFDQWdCLE1BQUFBLE1BQU0sQ0FBQy9CLFlBQVksQ0FBQ1UsU0FBYixDQUF1QkssSUFBeEIsQ0FBTixDQUFvQ2lCLEVBQXBDLENBQXVDTyxJQUF2QyxDQUE0Q0MsU0FBNUMsQ0FBc0QsQ0FBdEQ7QUFDRCxLQUhDLENBQUY7QUFLQVYsSUFBQUEsRUFBRSxDQUFDLGlFQUFELEVBQW9FLFlBQVk7QUFDaEYsWUFBTVcsUUFBUSxHQUFHO0FBQUVsQixRQUFBQSxJQUFJLEVBQUU7QUFBUixPQUFqQjtBQUNBdkIsTUFBQUEsWUFBWSxDQUFDVSxTQUFiLENBQXVCQyxPQUF2QixDQUErQkcsUUFBL0IsQ0FBd0MyQixRQUF4QztBQUVBbEMsTUFBQUEsS0FBSyxHQUFHLElBQUlrQixPQUFKLENBQVVqQixPQUFWLENBQVI7QUFDQUQsTUFBQUEsS0FBSyxDQUFDbUIsT0FBTixDQUFjLE9BQWQsRUFBdUIxQixZQUF2QjtBQUVBLFlBQU1PLEtBQUssQ0FBQ3NCLEtBQU4sRUFBTjtBQUNBLFlBQU10QixLQUFLLENBQUNRLElBQU4sRUFBTjtBQUVBZ0IsTUFBQUEsTUFBTSxDQUFDL0IsWUFBWSxDQUFDVSxTQUFiLENBQXVCSyxJQUF4QixDQUFOLENBQW9DaUIsRUFBcEMsQ0FBdUNPLElBQXZDLENBQTRDRyxJQUE1QyxDQUFpREMsVUFBakQsQ0FBNERGLFFBQTVEO0FBQ0QsS0FYQyxDQUFGO0FBYUFYLElBQUFBLEVBQUUsQ0FBQyx3RUFBRCxFQUEyRSxZQUFZO0FBQ3ZGLFlBQU12QixLQUFLLENBQUNRLElBQU4sRUFBTjtBQUNBLFlBQU1SLEtBQUssQ0FBQ1EsSUFBTixFQUFOO0FBRUFnQixNQUFBQSxNQUFNLENBQUMvQixZQUFZLENBQUNVLFNBQWIsQ0FBdUJLLElBQXhCLENBQU4sQ0FBb0NpQixFQUFwQyxDQUF1Q08sSUFBdkMsQ0FBNENDLFNBQTVDLENBQXNELENBQXREO0FBQ0QsS0FMQyxDQUFGO0FBT0FWLElBQUFBLEVBQUUsQ0FBQyw4QkFBRCxFQUFpQyxZQUFZO0FBQzdDQyxNQUFBQSxNQUFNLENBQUN4QixLQUFLLENBQUNjLFFBQVAsQ0FBTixDQUF1QlcsRUFBdkIsQ0FBMEJPLElBQTFCLENBQStCSyxRQUEvQixDQUF3QyxPQUF4QztBQUNBLFlBQU1yQyxLQUFLLENBQUNRLElBQU4sRUFBTjtBQUNBZ0IsTUFBQUEsTUFBTSxDQUFDeEIsS0FBSyxDQUFDYyxRQUFQLENBQU4sQ0FBdUJXLEVBQXZCLENBQTBCYSxHQUExQixDQUE4Qk4sSUFBOUIsQ0FBbUNLLFFBQW5DLENBQTRDLE9BQTVDO0FBQ0QsS0FKQyxDQUFGO0FBTUFkLElBQUFBLEVBQUUsQ0FBQyxrREFBRCxFQUFxRCxNQUFNO0FBQzNEOUIsTUFBQUEsWUFBWSxDQUFDVSxTQUFiLENBQXVCSyxJQUF2QixDQUE0QitCLE9BQTVCLENBQW9DLElBQUlDLEtBQUosQ0FBVSxPQUFWLENBQXBDO0FBRUEsYUFBT2hCLE1BQU0sQ0FBQ3hCLEtBQUssQ0FBQ1EsSUFBTixFQUFELENBQU4sQ0FBcUJpQixFQUFyQixDQUF3QmdCLFVBQXhCLENBQW1DZixFQUFuQyxDQUFzQ2dCLFlBQXRDLENBQW1ELFFBQW5ELENBQVA7QUFDRCxLQUpDLENBQUY7QUFNQW5CLElBQUFBLEVBQUUsQ0FBQyx1RUFBRCxFQUEwRSxZQUFZO0FBQ3RGLFlBQU1vQixjQUFOLFNBQTZCakQsZ0JBQTdCLENBQXFDOztBQUNyQ1csTUFBQUEsS0FBSyxDQUFDQyxJQUFOLENBQVdxQyxjQUFjLENBQUN4QyxTQUExQixFQUFxQyxNQUFyQyxFQUE2Q29DLE9BQTdDLENBQXFELElBQUlDLEtBQUosQ0FBVSxPQUFWLENBQXJEO0FBQ0F4QyxNQUFBQSxLQUFLLENBQUNtQixPQUFOLENBQWMsaUJBQWQsRUFBaUN3QixjQUFqQztBQUVBLFlBQU0zQyxLQUFLLENBQUNzQixLQUFOLEVBQU47QUFDQSxZQUFNdEIsS0FBSyxDQUFDUSxJQUFOLEdBQ0hvQyxLQURHLENBQ0csTUFBTSxDQUFFLENBRFgsQ0FBTjtBQUdBcEIsTUFBQUEsTUFBTSxDQUFDbUIsY0FBYyxDQUFDeEMsU0FBZixDQUF5QkssSUFBMUIsQ0FBTixDQUFzQ2lCLEVBQXRDLENBQXlDTyxJQUF6QyxDQUE4Q0MsU0FBOUMsQ0FBd0QsQ0FBeEQ7QUFDQVQsTUFBQUEsTUFBTSxDQUFDL0IsWUFBWSxDQUFDVSxTQUFiLENBQXVCSyxJQUF4QixDQUFOLENBQW9DaUIsRUFBcEMsQ0FBdUNPLElBQXZDLENBQTRDQyxTQUE1QyxDQUFzRCxDQUF0RDtBQUNELEtBWEMsQ0FBRjtBQVlELEdBbERPLENBQVI7QUFxREFsQyxFQUFBQSxRQUFRLENBQUMsc0NBQUQsRUFBeUMsTUFBTTtBQUNyRCxVQUFNOEMsTUFBTSxHQUFHLENBQ2IsWUFEYSxFQUViLFdBRmEsQ0FBZjtBQUtBM0MsSUFBQUEsVUFBVSxDQUFDLE1BQU07QUFFZixXQUFLLE1BQU00QyxLQUFYLElBQW9CRCxNQUFwQixFQUE0QjtBQUMxQmhELFFBQUFBLFNBQVMsQ0FBQ00sU0FBVixDQUFvQjJDLEtBQXBCLElBQTZCekMsS0FBSyxDQUFDQyxJQUFOLEdBQWFDLFFBQWIsRUFBN0I7QUFDRDtBQUNGLEtBTFMsQ0FBVjtBQU9BZ0IsSUFBQUEsRUFBRSxDQUFDLHNCQUFELEVBQXlCLFlBQVk7QUFDckMsWUFBTXZCLEtBQUssQ0FBQ1EsSUFBTixFQUFOOztBQUVBLFdBQUssTUFBTXNDLEtBQVgsSUFBb0JELE1BQXBCLEVBQTRCO0FBQzFCckIsUUFBQUEsTUFBTSxDQUFDM0IsU0FBUyxDQUFDTSxTQUFWLENBQW9CMkMsS0FBcEIsQ0FBRCxDQUFOLENBQW1DckIsRUFBbkMsQ0FBc0NPLElBQXRDLENBQTJDQyxTQUEzQyxDQUFxRCxDQUFyRDtBQUNEO0FBQ0YsS0FOQyxDQUFGO0FBUUFWLElBQUFBLEVBQUUsQ0FBQyx5REFBRCxFQUE0RCxZQUFZO0FBQ3hFLFlBQU13QixLQUFLLEdBQUdsRCxTQUFTLENBQUNNLFNBQXhCO0FBQ0EsWUFBTUgsS0FBSyxDQUFDUSxJQUFOLEVBQU47QUFFQWdCLE1BQUFBLE1BQU0sQ0FBQ3VCLEtBQUssQ0FBQ0MsVUFBUCxDQUFOLENBQXlCdkIsRUFBekIsQ0FBNEJPLElBQTVCLENBQWlDRyxJQUFqQyxDQUFzQ0MsVUFBdEMsQ0FBaURwQyxLQUFqRDtBQUNELEtBTEMsQ0FBRjtBQU9BdUIsSUFBQUEsRUFBRSxDQUFDLG9DQUFELEVBQXVDLFlBQVk7QUFDbkQsWUFBTXdCLEtBQUssR0FBR2xELFNBQVMsQ0FBQ00sU0FBeEI7QUFDQSxZQUFNSCxLQUFLLENBQUNRLElBQU4sRUFBTjtBQUNBLFlBQU15QyxJQUFJLEdBQUdGLEtBQUssQ0FBQ0csU0FBTixDQUFnQkMsUUFBaEIsQ0FBeUJGLElBQXRDO0FBRUF6QixNQUFBQSxNQUFNLENBQUN5QixJQUFELENBQU4sQ0FBYXhCLEVBQWIsQ0FBZ0JPLElBQWhCLENBQXFCb0IsTUFBckIsQ0FBNEIsQ0FBNUI7QUFDQTVCLE1BQUFBLE1BQU0sQ0FBQ3lCLElBQUksQ0FBQyxDQUFELENBQUwsQ0FBTixDQUFnQnhCLEVBQWhCLENBQW1CSSxLQUFuQixDQUF5QixJQUF6QjtBQUNELEtBUEMsQ0FBRjtBQVFELEdBcENPLENBQVI7QUF1Q0E5QixFQUFBQSxRQUFRLENBQUMsMENBQUQsRUFBNkMsTUFBTTtBQUN6RCxVQUFNc0QsYUFBTixTQUE0QnZELGFBQTVCLENBQWlDOztBQUR3QixvQkFDbkR1RCxhQURtRCxjQUVyQyxlQUZxQzs7QUFLekQsVUFBTVIsTUFBTSxHQUFHLENBQ2IsWUFEYSxFQUViLFdBRmEsQ0FBZjtBQUtBM0MsSUFBQUEsVUFBVSxDQUFDLE1BQU07QUFFZixXQUFLLE1BQU00QyxLQUFYLElBQW9CRCxNQUFwQixFQUE0QjtBQUMxQlEsUUFBQUEsYUFBYSxDQUFDbEQsU0FBZCxDQUF3QjJDLEtBQXhCLElBQWlDekMsS0FBSyxDQUFDQyxJQUFOLEdBQWFDLFFBQWIsRUFBakM7QUFDRDs7QUFFRFAsTUFBQUEsS0FBSyxHQUFHLElBQUlrQixPQUFKLENBQVVqQixPQUFWLENBQVI7QUFDQUQsTUFBQUEsS0FBSyxDQUFDbUIsT0FBTixDQUFjLE9BQWQsRUFBdUIxQixZQUF2QjtBQUNBTyxNQUFBQSxLQUFLLENBQUNxQixJQUFOLENBQVcsT0FBWCxFQUFvQmdDLGFBQXBCLEVBQW1DO0FBQUVDLFFBQUFBLE9BQU8sRUFBRTtBQUFFLDJCQUFpQjtBQUFuQjtBQUFYLE9BQW5DO0FBRUEsYUFBT3RELEtBQUssQ0FBQ3NCLEtBQU4sRUFBUDtBQUNELEtBWFMsQ0FBVjtBQWFBQyxJQUFBQSxFQUFFLENBQUMsdURBQUQsRUFBMEQsWUFBWTtBQUN0RSxZQUFNSixPQUFPLEdBQUduQixLQUFLLENBQUNjLFFBQU4sQ0FBZUMsS0FBL0I7QUFDQSxZQUFNZ0MsS0FBSyxHQUFHTSxhQUFhLENBQUNsRCxTQUE1QjtBQUNBLFlBQU1ILEtBQUssQ0FBQ1EsSUFBTixFQUFOO0FBRUFnQixNQUFBQSxNQUFNLENBQUN1QixLQUFLLENBQUNDLFVBQVAsQ0FBTixDQUF5QnZCLEVBQXpCLENBQTRCTyxJQUE1QixDQUFpQ0csSUFBakMsQ0FBc0NDLFVBQXRDLENBQWlEakIsT0FBakQ7QUFDRCxLQU5DLENBQUY7QUFRQUksSUFBQUEsRUFBRSxDQUFDLG9DQUFELEVBQXVDLFlBQVk7QUFDbkQsWUFBTXdCLEtBQUssR0FBR00sYUFBYSxDQUFDbEQsU0FBNUI7QUFDQSxZQUFNSCxLQUFLLENBQUNRLElBQU4sRUFBTjtBQUVBZ0IsTUFBQUEsTUFBTSxDQUFDdUIsS0FBSyxDQUFDRyxTQUFQLENBQU4sQ0FBd0J6QixFQUF4QixDQUEyQk8sSUFBM0IsQ0FBZ0NHLElBQWhDLENBQXFDQyxVQUFyQyxDQUFnRCxJQUFoRDtBQUNELEtBTEMsQ0FBRjtBQU1ELEdBckNPLENBQVI7QUF3Q0FyQyxFQUFBQSxRQUFRLENBQUMscUJBQUQsRUFBd0IsTUFBTTtBQUNwQ3dCLElBQUFBLEVBQUUsQ0FBQyxzQ0FBRCxFQUF5QyxZQUFZO0FBRXJEQyxNQUFBQSxNQUFNLENBQUN4QixLQUFLLENBQUN1RCxPQUFQLENBQU4sQ0FBc0I5QixFQUF0QixDQUF5Qk8sSUFBekIsQ0FBOEJLLFFBQTlCLENBQXVDLE9BQXZDO0FBRUEsWUFBTXJDLEtBQUssQ0FBQ1EsSUFBTixFQUFOO0FBQ0FnQixNQUFBQSxNQUFNLENBQUN4QixLQUFLLENBQUN1RCxPQUFQLENBQU4sQ0FBc0I5QixFQUF0QixDQUF5QmEsR0FBekIsQ0FBNkJOLElBQTdCLENBQWtDSyxRQUFsQyxDQUEyQyxPQUEzQztBQUNELEtBTkMsQ0FBRjtBQU9ELEdBUk8sQ0FBUjtBQVNELENBbk1PLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdGxhcyB9IGZyb20gJy4uJ1xuaW1wb3J0IFNlcnZpY2UgZnJvbSAnQGF0bGFzLmpzL3NlcnZpY2UnXG5pbXBvcnQgSG9vayBmcm9tICdAYXRsYXMuanMvaG9vaydcbmltcG9ydCBBY3Rpb24gZnJvbSAnQGF0bGFzLmpzL2FjdGlvbidcblxuY2xhc3MgU2VydmljZUFwaSB7fVxuXG5jbGFzcyBEdW1teVNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlIHt9XG5cbmNsYXNzIER1bW15QWN0aW9uIGV4dGVuZHMgQWN0aW9uIHt9XG5cbmNsYXNzIER1bW15SG9vayBleHRlbmRzIEhvb2sge1xuICBzdGF0aWMgb2JzZXJ2ZXMgPSAnYXRsYXMnXG59XG5cbmRlc2NyaWJlKCdBdGxhczo6c3RvcCgpJywgKCkgPT4ge1xuICBsZXQgYXRsYXNcbiAgbGV0IG9wdGlvbnNcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBEdW1teVNlcnZpY2UucHJvdG90eXBlLnByZXBhcmUgPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMobmV3IFNlcnZpY2VBcGkoKSlcbiAgICBEdW1teVNlcnZpY2UucHJvdG90eXBlLnN0b3AgPSBzaW5vbi5zdHViKCkucmVzb2x2ZXMoKVxuXG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIHJvb3Q6IF9fZGlybmFtZSxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBhdGxhczoge1xuICAgICAgICAgIGxvZzoge1xuICAgICAgICAgICAgbGV2ZWw6ICdmYXRhbCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2VydmljZXM6IHtcbiAgICAgICAgICBkdW1teToge1xuICAgICAgICAgICAgdGVzdDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBob29rczoge1xuICAgICAgICAgIGR1bW15OiB7XG4gICAgICAgICAgICB0ZXN0OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cbiAgICBhdGxhcyA9IG5ldyBBdGxhcyhvcHRpb25zKVxuICAgIGF0bGFzLnNlcnZpY2UoJ2R1bW15JywgRHVtbXlTZXJ2aWNlKVxuICAgIGF0bGFzLmFjdGlvbignZHVtbXknLCBEdW1teUFjdGlvbilcbiAgICBhdGxhcy5ob29rKCdkdW1teScsIER1bW15SG9vaylcblxuICAgIHJldHVybiBhdGxhcy5zdGFydCgpXG4gIH0pXG5cblxuICBpdCgnaXMgYXN5bmMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGF0bGFzLnN0b3AoKSkudG8uYmUuaW5zdGFuY2VvZihQcm9taXNlKVxuICB9KVxuXG4gIGl0KCdyZXR1cm5zIHRoaXMnLCBhc3luYyAoKSA9PiB7XG4gICAgZXhwZWN0KGF3YWl0IGF0bGFzLnN0b3AoKSkudG8uZXF1YWwoYXRsYXMpXG4gIH0pXG5cbiAgaXQoJ3NldHMgYXRsYXMuc3RhcnRlZCBhbmQgYXRsYXMucHJlcGFyZWQgdG8gZmFsc2UnLCBhc3luYyAoKSA9PiB7XG4gICAgZXhwZWN0KGF0bGFzLnN0YXJ0ZWQpLnRvLmVxdWFsKHRydWUpXG4gICAgZXhwZWN0KGF0bGFzLnByZXBhcmVkKS50by5lcXVhbCh0cnVlKVxuICAgIGF3YWl0IGF0bGFzLnN0b3AoKVxuICAgIGV4cGVjdChhdGxhcy5zdGFydGVkKS50by5lcXVhbChmYWxzZSlcbiAgICBleHBlY3QoYXRsYXMucHJlcGFyZWQpLnRvLmVxdWFsKGZhbHNlKVxuICB9KVxuXG5cbiAgZGVzY3JpYmUoJ1NlcnZpY2UgaW50ZXJhY3Rpb25zJywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBzdG9wIG9uIHRoZSBzZXJ2aWNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgYXRsYXMuc3RvcCgpXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdG9wKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgIH0pXG5cbiAgICBpdCgncGFzc2VzIHRoZSBleHBvc2VkIGluc3RhbmNlIHRvIHRoZSBzdG9wKCkgbWV0aG9kIG9uIHRoZSBzZXJ2aWNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSB7IHRlc3Q6IHRydWUgfVxuICAgICAgRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5wcmVwYXJlLnJlc29sdmVzKGluc3RhbmNlKVxuXG4gICAgICBhdGxhcyA9IG5ldyBBdGxhcyhvcHRpb25zKVxuICAgICAgYXRsYXMuc2VydmljZSgnZHVtbXknLCBEdW1teVNlcnZpY2UpXG5cbiAgICAgIGF3YWl0IGF0bGFzLnN0YXJ0KClcbiAgICAgIGF3YWl0IGF0bGFzLnN0b3AoKVxuXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdG9wKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChpbnN0YW5jZSlcbiAgICB9KVxuXG4gICAgaXQoJ2NhbGxzIHRoZSBtZXRob2Qgb25seSBvbmNlIGZvciBlYWNoIHNlcnZpY2UgZm9yIG11bHRpcGxlIC5zdG9wKCkgY2FsbHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBhdGxhcy5zdG9wKClcbiAgICAgIGF3YWl0IGF0bGFzLnN0b3AoKVxuXG4gICAgICBleHBlY3QoRHVtbXlTZXJ2aWNlLnByb3RvdHlwZS5zdG9wKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgIH0pXG5cbiAgICBpdCgncmVtb3ZlcyBnZXR0ZXJzIGZvciBzZXJ2aWNlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGV4cGVjdChhdGxhcy5zZXJ2aWNlcykudG8uaGF2ZS5wcm9wZXJ0eSgnZHVtbXknKVxuICAgICAgYXdhaXQgYXRsYXMuc3RvcCgpXG4gICAgICBleHBlY3QoYXRsYXMuc2VydmljZXMpLnRvLm5vdC5oYXZlLnByb3BlcnR5KCdkdW1teScpXG4gICAgfSlcblxuICAgIGl0KCdyZS10aHJvd3MgY29tcG9uZW50IGVycm9ycyB0aHJvd24gZHVyaW5nIC5zdG9wKCknLCAoKSA9PiB7XG4gICAgICBEdW1teVNlcnZpY2UucHJvdG90eXBlLnN0b3AucmVqZWN0cyhuZXcgRXJyb3IoJ2ZhaWwhJykpXG5cbiAgICAgIHJldHVybiBleHBlY3QoYXRsYXMuc3RvcCgpKS50by5ldmVudHVhbGx5LmJlLnJlamVjdGVkV2l0aCgvZmFpbCEvdSlcbiAgICB9KVxuXG4gICAgaXQoJ3N0b3BzIHRoZSBvdGhlciBzZXJ2aWNlcyBpZiBvbmUgb2YgdGhlIHNlcnZpY2VzIHRocm93cyBkdXJpbmcgLnN0b3AoKScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNsYXNzIEZhaWxpbmdTZXJ2aWNlIGV4dGVuZHMgU2VydmljZSB7fVxuICAgICAgc2lub24uc3R1YihGYWlsaW5nU2VydmljZS5wcm90b3R5cGUsICdzdG9wJykucmVqZWN0cyhuZXcgRXJyb3IoJ2ZhaWwhJykpXG4gICAgICBhdGxhcy5zZXJ2aWNlKCdmYWlsaW5nLXNlcnZpY2UnLCBGYWlsaW5nU2VydmljZSlcblxuICAgICAgYXdhaXQgYXRsYXMuc3RhcnQoKVxuICAgICAgYXdhaXQgYXRsYXMuc3RvcCgpXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7fSlcblxuICAgICAgZXhwZWN0KEZhaWxpbmdTZXJ2aWNlLnByb3RvdHlwZS5zdG9wKS50by5oYXZlLmNhbGxDb3VudCgxKVxuICAgICAgZXhwZWN0KER1bW15U2VydmljZS5wcm90b3R5cGUuc3RvcCkudG8uaGF2ZS5jYWxsQ291bnQoMSlcbiAgICB9KVxuICB9KVxuXG5cbiAgZGVzY3JpYmUoJ0hvb2sgaW50ZXJhY3Rpb25zIChvYnNlcnZlcyA9IGF0bGFzKScsICgpID0+IHtcbiAgICBjb25zdCBldmVudHMgPSBbXG4gICAgICAnYmVmb3JlU3RvcCcsXG4gICAgICAnYWZ0ZXJTdG9wJyxcbiAgICBdXG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIC8vIFN0dWIgb3V0IGFsbCB0aGUgZXZlbnQgaGFuZGxlcnNcbiAgICAgIGZvciAoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgICAgIER1bW15SG9vay5wcm90b3R5cGVbZXZlbnRdID0gc2lub24uc3R1YigpLnJlc29sdmVzKClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaXQoJ2NhbGxzIHRoZSBzdG9wIGhvb2tzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgYXRsYXMuc3RvcCgpXG5cbiAgICAgIGZvciAoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgICAgIGV4cGVjdChEdW1teUhvb2sucHJvdG90eXBlW2V2ZW50XSkudG8uaGF2ZS5jYWxsQ291bnQoMSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaXQoJ2NhbGxzIHRoZSBiZWZvcmVTdG9wIGhvb2sgd2l0aCB0aGUgYXBwbGljYXRpb24gaW5zdGFuY2UnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm90byA9IER1bW15SG9vay5wcm90b3R5cGVcbiAgICAgIGF3YWl0IGF0bGFzLnN0b3AoKVxuXG4gICAgICBleHBlY3QocHJvdG8uYmVmb3JlU3RvcCkudG8uaGF2ZS5iZWVuLmNhbGxlZFdpdGgoYXRsYXMpXG4gICAgfSlcblxuICAgIGl0KCdjYWxscyB0aGUgYWZ0ZXJTdG9wIGhvb2sgd2l0aCBudWxsJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvdG8gPSBEdW1teUhvb2sucHJvdG90eXBlXG4gICAgICBhd2FpdCBhdGxhcy5zdG9wKClcbiAgICAgIGNvbnN0IGFyZ3MgPSBwcm90by5hZnRlclN0b3AubGFzdENhbGwuYXJnc1xuXG4gICAgICBleHBlY3QoYXJncykudG8uaGF2ZS5sZW5ndGgoMSlcbiAgICAgIGV4cGVjdChhcmdzWzBdKS50by5lcXVhbChudWxsKVxuICAgIH0pXG4gIH0pXG5cblxuICBkZXNjcmliZSgnSG9vayBpbnRlcmFjdGlvbnMgKG9ic2VydmVzID0gY29tcG9uZW50KScsICgpID0+IHtcbiAgICBjbGFzcyBDb21wb25lbnRIb29rIGV4dGVuZHMgSG9vayB7XG4gICAgICBzdGF0aWMgb2JzZXJ2ZXMgPSAnc2VydmljZTpkdW1teSdcbiAgICB9XG5cbiAgICBjb25zdCBldmVudHMgPSBbXG4gICAgICAnYmVmb3JlU3RvcCcsXG4gICAgICAnYWZ0ZXJTdG9wJyxcbiAgICBdXG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIC8vIFN0dWIgb3V0IGFsbCB0aGUgZXZlbnQgaGFuZGxlcnNcbiAgICAgIGZvciAoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgICAgIENvbXBvbmVudEhvb2sucHJvdG90eXBlW2V2ZW50XSA9IHNpbm9uLnN0dWIoKS5yZXNvbHZlcygpXG4gICAgICB9XG5cbiAgICAgIGF0bGFzID0gbmV3IEF0bGFzKG9wdGlvbnMpXG4gICAgICBhdGxhcy5zZXJ2aWNlKCdkdW1teScsIER1bW15U2VydmljZSlcbiAgICAgIGF0bGFzLmhvb2soJ2R1bW15JywgQ29tcG9uZW50SG9vaywgeyBhbGlhc2VzOiB7ICdzZXJ2aWNlOmR1bW15JzogJ2R1bW15JyB9IH0pXG5cbiAgICAgIHJldHVybiBhdGxhcy5zdGFydCgpXG4gICAgfSlcblxuICAgIGl0KCdjYWxscyB0aGUgYmVmb3JlU3RvcCBob29rIHdpdGggdGhlIGNvbXBvbmVudCBpbnN0YW5jZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHNlcnZpY2UgPSBhdGxhcy5zZXJ2aWNlcy5kdW1teVxuICAgICAgY29uc3QgcHJvdG8gPSBDb21wb25lbnRIb29rLnByb3RvdHlwZVxuICAgICAgYXdhaXQgYXRsYXMuc3RvcCgpXG5cbiAgICAgIGV4cGVjdChwcm90by5iZWZvcmVTdG9wKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChzZXJ2aWNlKVxuICAgIH0pXG5cbiAgICBpdCgnY2FsbHMgdGhlIGFmdGVyU3RvcCBob29rIHdpdGggbnVsbCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3RvID0gQ29tcG9uZW50SG9vay5wcm90b3R5cGVcbiAgICAgIGF3YWl0IGF0bGFzLnN0b3AoKVxuXG4gICAgICBleHBlY3QocHJvdG8uYWZ0ZXJTdG9wKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChudWxsKVxuICAgIH0pXG4gIH0pXG5cblxuICBkZXNjcmliZSgnQWN0aW9uIGludGVyYWN0aW9ucycsICgpID0+IHtcbiAgICBpdCgncmVtb3ZlcyB0aGUgYWN0aW9uIGZyb20gdGhpcy5hY3Rpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gU2FuaXR5IGNoZWNrXG4gICAgICBleHBlY3QoYXRsYXMuYWN0aW9ucykudG8uaGF2ZS5wcm9wZXJ0eSgnZHVtbXknKVxuXG4gICAgICBhd2FpdCBhdGxhcy5zdG9wKClcbiAgICAgIGV4cGVjdChhdGxhcy5hY3Rpb25zKS50by5ub3QuaGF2ZS5wcm9wZXJ0eSgnZHVtbXknKVxuICAgIH0pXG4gIH0pXG59KVxuIl19

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc