Socket
Socket
Sign inDemoInstall

@atlas.js/atlas

Package Overview
Dependencies
45
Maintainers
2
Versions
23
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.2.0-alpha.4 to 2.2.0-alpha.5

11

CHANGELOG.md

@@ -6,2 +6,13 @@ # Change Log

# [2.2.0-alpha.5](https://github.com/strvcom/atlas.js/compare/@atlas.js/atlas@2.2.0-alpha.4...@atlas.js/atlas@2.2.0-alpha.5) (2019-01-16)
### Bug Fixes
* **atlas:** do not depend on named exports order when iterating services ([d75862b](https://github.com/strvcom/atlas.js/commit/d75862b))
<a name="2.1.0"></a>

@@ -8,0 +19,0 @@ # [2.1.0](https://github.com/strvcom/atlas.js/compare/@atlas.js/atlas@2.0.0...@atlas.js/atlas@2.1.0) (2018-07-12)

4

package.json
{
"name": "@atlas.js/atlas",
"description": "A component-based Node.js library to reduce boilerplate and provide sane project structure 🍻",
"version": "2.2.0-alpha.4",
"version": "2.2.0-alpha.5",
"author": "Robert Rossmann <robert.rossmann@strv.com>",

@@ -34,3 +34,3 @@ "bugs": "https://github.com/strvcom/atlas.js/issues",

},
"gitHead": "5a7ec5098e521b7d14d2ecdf584d1bef188c9bbf"
"gitHead": "8b27d87a507b5ce31392fc7c02b4b3f22b14a163"
}

@@ -49,3 +49,4 @@ "use strict";

modules[type] = atlas.require(options[type], {
optional: true
optional: true,
normalise: true
});

@@ -358,2 +359,14 @@ }

var _env = new WeakMap();
var _root = new WeakMap();
var _prepared = new WeakMap();
var _started = new WeakMap();
var _catalog = new WeakMap();
var _observers = new WeakMap();
_defineProperty(Atlas, "defaults", {

@@ -376,16 +389,4 @@ log: {

var _env = new WeakMap();
var _root = new WeakMap();
var _prepared = new WeakMap();
var _started = new WeakMap();
var _catalog = new WeakMap();
var _observers = new WeakMap();
var _default = Atlas;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF0bGFzLm1qcyJdLCJuYW1lcyI6WyJBdGxhcyIsImluaXQiLCJvcHRpb25zIiwiY29uZmlnIiwiaG9va3MiLCJzZXJ2aWNlcyIsImFjdGlvbnMiLCJhbGlhc2VzIiwiYXRsYXMiLCJlbnYiLCJyb290IiwidHlwZXMiLCJwYXRocyIsIm1vZHVsZXMiLCJ0eXBlIiwicGF0aCIsInJlc29sdmUiLCJyZXF1aXJlIiwib3B0aW9uYWwiLCJsb2ciLCJkZWJ1ZyIsImJvb3RzdHJhcCIsImNvbXBvbmVudHMiLCJPYmplY3QiLCJrZXlzIiwiYWxpYXMiLCJIb29rIiwiZW50cmllcyIsImhvb2siLCJTZXJ2aWNlIiwic2VydmljZSIsIkFjdGlvbiIsImFjdGlvbiIsInByZXBhcmVkIiwic3RhcnRlZCIsImNvbnN0cnVjdG9yIiwiTWFwIiwicHJvY2VzcyIsIk5PREVfRU5WIiwiRnJhbWV3b3JrRXJyb3IiLCJta2NvbmZpZyIsImRlZmF1bHRzIiwibWtsb2ciLCJ2YWxpZGF0b3IiLCJBanYiLCJhanZLZXl3b3JkcyIsImtleXdvcmRzIiwibG9jYXRpb24iLCJhYnNvbHV0ZSIsImxvYWQiLCJvcHRyZXF1aXJlIiwiY29udGVudHMiLCJub3JtYWxpc2UiLCJkZWZhdWx0IiwiQ29tcG9uZW50Iiwib3B0cyIsImNvbXBvbmVudCIsInByZXBhcmUiLCJjYXRhbG9nIiwiY29udGFpbmVyIiwib2JzZXJ2ZXMiLCJzZXQiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiQXJyYXkiLCJmcm9tIiwiZXhwb3NlIiwiaW50ZXJuYWwiLCJ2YWx1ZSIsImZpbHRlciIsInJlc3VsdCIsIkJvb2xlYW4iLCJmb3JFYWNoIiwiZGlzcGF0Y2giLCJzdGFydCIsImVyciIsInN0b3AiLCJjYXRjaCIsInN0b3BFcnIiLCJmYXRhbCIsImluZm8iLCJlcnJvciIsInJldmVyc2UiLCJuYW1lIiwiYmFzZW5hbWUiLCJjd2QiLCJsZXZlbCIsInNlcmlhbGl6ZXJzIiwicGlubyIsInN0ZFNlcmlhbGl6ZXJzIiwi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dWl0ZSBleHRlbnNpdmVseSBoZXJlIGZvciBsZWdpdGltYXRlIHB1cnBvc2VzXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1hd2FpdC1pbi1sb29wICovXG5cbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCAqIGFzIEFqdiBmcm9tICdhanYnXG5pbXBvcnQgKiBhcyBhanZLZXl3b3JkcyBmcm9tICdhanYta2V5d29yZHMnXG5pbXBvcnQgKiBhcyBwaW5vIGZyb20gJ3Bpbm8nXG5pbXBvcnQge1xuICBkZWZhdWx0c0RlZXAgYXMgZGVmYXVsdHMsXG4gIGlzUGxhaW5PYmplY3QsXG59IGZyb20gJ2xvZGFzaCdcbmltcG9ydCB7IEZyYW1ld29ya0Vycm9yIH0gZnJvbSAnQGF0bGFzLmpzL2Vycm9ycydcbmltcG9ydCB7XG4gIGV4cG9zZSxcbiAgZGlzcGF0Y2gsXG4gIGNvbXBvbmVudCxcbiAgbWtjb25maWcsXG4gIG1rbG9nLFxuICBvcHRyZXF1aXJlLFxufSBmcm9tICcuL3ByaXZhdGUnXG5cbi8qKlxuICogVGhpcyBjbGFzcyByZXByZXNlbnRzIHlvdXIgYXBwbGljYXRpb24gYW5kIGFnZ3JlZ2F0ZXMgYWxsIGNvbXBvbmVudHMgdG9nZXRoZXJcbiAqXG4gKiBZb3Ugc2hvdWxkIGdlbmVyYWxseSBjcmVhdGUgb25seSBvbmUgaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyBpbiBhIHByb2dyYW0uXG4gKi9cbmNsYXNzIEF0bGFzIHtcbiAgc3RhdGljIGRlZmF1bHRzID0ge1xuICAgIGxvZzoge1xuICAgICAgbmFtZTogcGF0aC5iYXNlbmFtZShwcm9jZXNzLmN3ZCgpKSxcbiAgICAgIGxldmVsOiAnaW5mbycsXG4gICAgICBzZXJpYWxpemVyczoge1xuICAgICAgICBlcnI6IHBpbm8uc3RkU2VyaWFsaXplcnMuZXJyLFxuICAgICAgICByZXE6IHBpbm8uc3RkU2VyaWFsaXplcnMucmVxLFxuICAgICAgICByZXM6IHBpbm8uc3RkU2VyaWFsaXplcnMucmVzLFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgdmFsaWRhdG9yOiB7XG4gICAgICBhbGxFcnJvcnM6IHRydWUsXG4gICAgICB1c2VEZWZhdWx0czogdHJ1ZSxcbiAgICAgIGtleXdvcmRzOiBbXG4gICAgICAgICd0eXBlb2YnLFxuICAgICAgXSxcbiAgICB9LFxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpc2UgYSBicmFuZC1uZXcgYXRsYXMgaW5zdGFuY2UgZnJvbSB0aGUgZ2l2ZW4gbW9kdWxlIGxvY2F0aW9uc1xuICAgKlxuICAgKiBVc2UgdGhpcyBtZXRob2QgdG8gcXVpY2tseSBjb25maWd1cmUgQXRsYXMgaW5zdGFuY2UgYnkgc2ltcGx5IHRlbGxpbmcgaXQgd2hlcmUgeW91ciBjb21wb25lbnRzXG4gICAqIGxpdmUgb24gdGhlIGZpbGVzeXN0ZW0sIGFuZCBBdGxhcyB3aWxsIGxvYWQgdGhlbSBmcm9tIHRoZSBnaXZlbiBtb2R1bGUgbG9jYXRpb25zIGFuZCBhZGQgdGhlbVxuICAgKiB0byB0aGUgQXRsYXMgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgICBvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICAgIG9wdGlvbnMuZW52ICAgICAgICAgICAgICAgICAgIFRoZSBlbnZpcm9ubWVudCB1bmRlciB3aGljaCB0byBvcGVyYXRlXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgICBvcHRpb25zLnJvb3QgICAgICAgICAgICAgICAgICBUaGUgcm9vdCBkaXJlY3RvcnkgdG8gd2hpY2ggYWxsIG90aGVyXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcmllcyBtZW50aW9uZWQgaGVyZSBhcmUgcmVsYXRpdmVcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICAgIG9wdGlvbnMuY29uZmlnPSdjb25maWcnICAgICAgIE1vZHVsZSBsb2NhdGlvbiBmb3IgdGhlIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICAgIG9wdGlvbnMuaG9va3M9J2hvb2tzJyAgICAgICAgIE1vZHVsZSBsb2NhdGlvbiBmb3IgdGhlIGhvb2tzXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgICBvcHRpb25zLnNlcnZpY2VzPSdzZXJ2aWNlcycgICBNb2R1bGUgbG9jYXRpb24gZm9yIHRoZSBzZXJ2aWNlc1xuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgICAgb3B0aW9ucy5hY3Rpb25zPSdhY3Rpb25zJyAgICAgTW9kdWxlIGxvY2F0aW9uIGZvciB0aGUgYWN0aW9uc1xuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgICAgb3B0aW9ucy5hbGlhc2VzPSdhbGlhc2VzJyAgICAgTW9kdWxlIGxvY2F0aW9uIGZvciB0aGUgYWxpYXNlc1xuICAgKiBAcmV0dXJuICAgIHtBdGxhc31cbiAgICovXG4gIHN0YXRpYyBpbml0KG9wdGlvbnMgPSB7fSkge1xuICAgIGRlZmF1bHRzKG9wdGlvbnMsIHtcbiAgICAgIGNvbmZpZzogJ2NvbmZpZycsXG4gICAgICBob29rczogJ2hvb2tzJyxcbiAgICAgIHNlcnZpY2VzOiAnc2VydmljZXMnLFxuICAgICAgYWN0aW9uczogJ2FjdGlvbnMnLFxuICAgICAgYWxpYXNlczogJ2FsaWFzZXMnLFxuICAgIH0pXG5cbiAgICBjb25zdCBhdGxhcyA9IG5ldyB0aGlzKHtcbiAgICAgIGVudjogb3B0aW9ucy5lbnYsXG4gICAgICByb290OiBvcHRpb25zLnJvb3QsXG4gICAgICBjb25maWc6IG9wdGlvbnMuY29uZmlnLFxuICAgIH0pXG4gICAgY29uc3QgdHlwZXMgPSBbXG4gICAgICAnaG9va3MnLFxuICAgICAgJ3NlcnZpY2VzJyxcbiAgICAgICdhY3Rpb25zJyxcbiAgICAgICdhbGlhc2VzJyxcbiAgICBdXG4gICAgY29uc3QgcGF0aHMgPSB7fVxuICAgIGNvbnN0IG1vZHVsZXMgPSB7fVxuXG4gICAgZm9yIChjb25zdCB0eXBlIG9mIHR5cGVzKSB7XG4gICAgICBwYXRoc1t0eXBlXSA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnJvb3QsIG9wdGlvbnNbdHlwZV0pXG4gICAgICBtb2R1bGVzW3R5cGVdID0gYXRsYXMucmVxdWlyZShvcHRpb25zW3R5cGVdLCB7IG9wdGlvbmFsOiB0cnVlIH0pXG4gICAgfVxuXG4gICAgYXRsYXMubG9nLmRlYnVnKHsgcGF0aHMgfSwgJ2F0bGFzOmluaXQnKVxuXG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwKGF0bGFzLCBtb2R1bGVzKVxuICB9XG5cbiAgLyoqXG4gICAqIEJvb3RzdHJhcCB0aGUgZ2l2ZW4gQXRsYXMgaW5zdGFuY2Ugd2l0aCB0aGUgcHJvdmlkZWQgbW9kdWxlc1xuICAgKlxuICAgKiBVc2UgdGhpcyBtZXRob2QgdG8gcXVpY2tseSBzZXQgdXAgdGhlIGdpdmVuIEF0bGFzIGluc3RhbmNlIHRvIHVzZSB0aGUgcHJvdmlkZWQgY29tcG9uZW50cy4gVGhpc1xuICAgKiBpcyB1c2VmdWwgaWYgeW91IG5lZWQgdG8gaGF2ZSBtdWx0aXBsZSBlbnRyeSBwb2ludHMgdG8geW91ciBwcm9ncmFtIGFuZCBzb21lIGVudHJ5cG9pbnRzIHNob3VsZFxuICAgKiBvbmx5IHVzZSBzb21lIGNvbXBvbmVudHMgYXZhaWxhYmxlLiBUaGlzIGlzIGVzcGVjaWFsbHkgdXNlZnVsIHdoZW4gaW1wbGVtZW50aW5nIHdvcmtlclxuICAgKiBwcm9jZXNzZXMgd2hlcmUgeW91IG9ubHkgbmVlZCBhIHN1YnNldCBvZiBhbGwgYXZhaWxhYmxlIGNvbXBvbmVudHMuIFRoaXMgbWV0aG9kLCB3aGlsZSBtb3JlXG4gICAqIHZlcmJvc2UgYXMgQXRsYXMuaW5pdCgpLCBzdGlsbCBmcmVlcyB5b3UgZnJvbSBtYW51YWxseSBhZGRpbmcgYWxsIHRoZSBjb21wb25lbnRzIGJ5IGhhbmQgd2hpbGVcbiAgICogcHJvdmlkaW5nIGdyZWF0ZXIgZmxleGliaWxpdHkgYXMgdG8gd2hpY2ggY29tcG9uZW50cyB3aWxsIGJlIHVzZWQuXG4gICAqXG4gICAqIEBwYXJhbSAgICAge0F0bGFzfSAgIGF0bGFzICAgICAgICAgICAgICAgICBUaGUgQXRsYXMgaW5zdGFuY2UgdG8gYm9vdHN0cmFwXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gIG1vZHVsZXM/ICAgICAgICAgICAgICBBbGwgdGhlIG1vZHVsZXMgd2hpY2ggc2hvdWxkIGJlIGFkZGVkIHRvIEF0bGFzXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gIG1vZHVsZXMuYWN0aW9ucyAgICAgICBBY3Rpb25zIHRvIGFkZFxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICBtb2R1bGVzLmhvb2tzICAgICAgICAgSG9va3MgdG8gYWRkXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gIG1vZHVsZXMuc2VydmljZXMgICAgICBTZXJ2aWNlcyB0byBhZGRcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgbW9kdWxlcy5hbGlhc2VzICAgICAgIEFsaWFzZXMgZm9yIGFsbCB0aGUgY29tcG9uZW50c1xuICAgKiBAcmV0dXJuICAgIHtBdGxhc30gICAgICAgICAgICAgICAgICAgICAgICAgVGhlIEF0bGFzIGluc3RhbmNlIHdpdGggYWxsIGNvbXBvbmVudHMgYWRkZWQsIHJlYWR5XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBiZSBzdGFydGVkXG4gICAqL1xuICBzdGF0aWMgYm9vdHN0cmFwKGF0bGFzLCBtb2R1bGVzID0ge30pIHtcbiAgICBkZWZhdWx0cyhtb2R1bGVzLCB7XG4gICAgICAvLyBjb25maWcgbW9kdWxlIGlzIGxvYWRlZCBieSBBdGxhcyBpbnN0YW5jZSBpdHNlbGYsIHNvIGl0J3Mgb2theSB0byB1c2UgYSBzdHJpbmcgaGVyZSBhbmQgbGV0XG4gICAgICAvLyBBdGxhcyBsb2FkIGl0XG4gICAgICBjb25maWc6ICdjb25maWcnLFxuICAgICAgLy8gVGhlIGZvbGxvd2luZyBtb2R1bGVzIG11c3QgYWxyZWFkeSBiZSBwcm92aWRlZCBkaXJlY3RseSBhcyB3ZSB3b24ndCBsb2FkIHRoZW1cbiAgICAgIGFjdGlvbnM6IHt9LFxuICAgICAgaG9va3M6IHt9LFxuICAgICAgc2VydmljZXM6IHt9LFxuICAgICAgYWxpYXNlczoge1xuICAgICAgICBhY3Rpb25zOiB7fSxcbiAgICAgICAgaG9va3M6IHt9LFxuICAgICAgICBzZXJ2aWNlczoge30sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBhdGxhcy5sb2cuZGVidWcoe1xuICAgICAgZW52OiBhdGxhcy5lbnYsXG4gICAgICByb290OiBhdGxhcy5yb290LFxuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICBhY3Rpb25zOiBPYmplY3Qua2V5cyhtb2R1bGVzLmFjdGlvbnMpLFxuICAgICAgICBob29rczogT2JqZWN0LmtleXMobW9kdWxlcy5ob29rcyksXG4gICAgICAgIHNlcnZpY2VzOiBPYmplY3Qua2V5cyhtb2R1bGVzLnNlcnZpY2VzKSxcbiAgICAgIH0sXG4gICAgfSwgJ2F0bGFzOmJvb3RzdHJhcCcpXG5cbiAgICAvLyBIb29rc1xuICAgIGZvciAoY29uc3QgW2FsaWFzLCBIb29rXSBvZiBPYmplY3QuZW50cmllcyhtb2R1bGVzLmhvb2tzKSkge1xuICAgICAgY29uc3QgYWxpYXNlcyA9IG1vZHVsZXMuYWxpYXNlcy5ob29rc1thbGlhc11cbiAgICAgIGF0bGFzLmhvb2soYWxpYXMsIEhvb2ssIHsgYWxpYXNlcyB9KVxuICAgIH1cblxuICAgIC8vIFNlcnZpY2VzXG4gICAgZm9yIChjb25zdCBbYWxpYXMsIFNlcnZpY2VdIG9mIE9iamVjdC5lbnRyaWVzKG1vZHVsZXMuc2VydmljZXMpKSB7XG4gICAgICBjb25zdCBhbGlhc2VzID0gbW9kdWxlcy5hbGlhc2VzLnNlcnZpY2VzW2FsaWFzXVxuICAgICAgYXRsYXMuc2VydmljZShhbGlhcywgU2VydmljZSwgeyBhbGlhc2VzIH0pXG4gICAgfVxuXG4gICAgLy8gQWN0aW9uc1xuICAgIGZvciAoY29uc3QgW2FsaWFzLCBBY3Rpb25dIG9mIE9iamVjdC5lbnRyaWVzKG1vZHVsZXMuYWN0aW9ucykpIHtcbiAgICAgIGNvbnN0IGFsaWFzZXMgPSBtb2R1bGVzLmFsaWFzZXMuYWN0aW9uc1thbGlhc11cbiAgICAgIGF0bGFzLmFjdGlvbihhbGlhcywgQWN0aW9uLCB7IGFsaWFzZXMgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gYXRsYXNcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IGVudmlyb25tZW50IHVuZGVyIHdoaWNoIHRoaXMgaW5zdGFuY2Ugb3BlcmF0ZXNcbiAgICpcbiAgICogRGVmYXVsdHMgdG8gTk9ERV9FTlYgZnJvbSB0aGUgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIEByZWFkb25seVxuICAgKiBAcmV0dXJuICAgIHtTdHJpbmd9XG4gICAqL1xuICBnZXQgZW52KCkge1xuICAgIHJldHVybiB0aGlzLiNlbnZcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBmb2xkZXIgd2hlcmUgYWxsIG90aGVyIHBhdGhzIHNob3VsZCBiZSByZWxhdGl2ZSB0b1xuICAgKlxuICAgKiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSBzZXQgdGhpcyB0byB0aGUgcHJvamVjdCdzIHJvb3QgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAcmVhZG9ubHlcbiAgICogQHJldHVybiAgICB7U3RyaW5nfVxuICAgKi9cbiAgZ2V0IHJvb3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3Jvb3RcbiAgfVxuXG4gIC8qKlxuICAgKiBJcyB0aGlzIGluc3RhbmNlIGluIGEgcHJlcGFyZWQgc3RhdGU/XG4gICAqXG4gICAqIEByZWFkb25seVxuICAgKiBAcmV0dXJuICAgIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IHByZXBhcmVkKCkge1xuICAgIHJldHVybiB0aGlzLiNwcmVwYXJlZFxuICB9XG5cbiAgLyoqXG4gICAqIElzIHRoaXMgaW5zdGFuY2UgaW4gYSBzdGFydGVkIHN0YXRlP1xuICAgKlxuICAgKiBAcmVhZG9ubHlcbiAgICogQHJldHVybiAgICB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBzdGFydGVkKCkge1xuICAgIHJldHVybiB0aGlzLiNzdGFydGVkXG4gIH1cblxuICAvKipcbiAgICogQXRsYXMgY29uZmlndXJhdGlvbiwgYXMgcGFzc2VkIGluIHRvIHRoZSBjb25zdHJ1Y3RvclxuICAgKlxuICAgKiBAdHlwZSAgICB7T2JqZWN0fVxuICAgKi9cbiAgY29uZmlnID0ge31cblxuICAvKipcbiAgICogQWxsIHNlcnZpY2VzIGFkZGVkIHRvIHRoaXMgaW5zdGFuY2VcbiAgICpcbiAgICogQHR5cGUgICAge09iamVjdH1cbiAgICovXG4gIHNlcnZpY2VzID0ge31cblxuICAvKipcbiAgICogQWxsIGFjdGlvbnMgYWRkZWQgdG8gdGhpcyBpbnN0YW5jZVxuICAgKlxuICAgKiBAdHlwZSAgICB7T2JqZWN0fVxuICAgKi9cbiAgYWN0aW9ucyA9IHt9XG5cbiAgI2VudiA9IG51bGxcbiAgI3Jvb3QgPSBudWxsXG4gICNwcmVwYXJlZCA9IGZhbHNlXG4gICNzdGFydGVkID0gZmFsc2VcbiAgI2NhdGFsb2cgPSB7XG4gICAgc2VydmljZXM6IG5ldyBNYXAoKSxcbiAgICBob29rczogbmV3IE1hcCgpLFxuICAgIGFjdGlvbnM6IG5ldyBNYXAoKSxcbiAgfVxuXG4gICNvYnNlcnZlcnMgPSBuZXcgTWFwKClcblxuICAvKipcbiAgICogQW4gaW5zdGFuY2Ugb2YgQWp2IHVzZWQgdG8gdmFsaWRhdGUgY29tcG9uZW50IGNvbmZpZ3VyYXRpb25cbiAgICogQHR5cGUgICAge0Fqdn1cbiAgICovXG4gIHZhbGlkYXRvciA9IG51bGxcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGluc3RhbmNlXG4gICAqXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0aW9ucyAgICAgICAgICAgICBPcHRpb25zIGZvciB0aGUgaW5zdGFuY2VcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRpb25zLmNvbmZpZyAgICAgIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgaW5zdGFuY2UgYW5kIGZvciBhbGxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VzIG9yIG90aGVyIGNvbXBvbmVudHMgd2hpY2ggd2lsbCBiZSBhZGRlZCB0b1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGluc3RhbmNlXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgb3B0aW9ucy5yb290ICAgICAgICBUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIGluc3RhbmNlXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgb3B0aW9ucy5lbnYgICAgICAgICBUaGUgZW52aXJvbm1lbnQgdW5kZXIgd2hpY2ggdGhpcyBpbnN0YW5jZSBvcGVyYXRlcy5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudHMgbWF5IHVzZSB0aGlzIHZhbHVlIGZvciB2YXJpb3VzIHB1cnBvc2VzLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gTk9ERV9FTlYuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICAvLyBJbml0aWFsaXNlIHByaXZhdGUgc3R1ZmZcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvY2Vzcy1lbnZcbiAgICB0aGlzLiNlbnYgPSBvcHRpb25zLmVudiB8fCBwcm9jZXNzLmVudi5OT0RFX0VOVlxuICAgIHRoaXMuI3Jvb3QgPSBvcHRpb25zLnJvb3RcblxuICAgIC8vIFNhZmV0eSBjaGVja3NcbiAgICBpZiAoIXRoaXMuI2Vudikge1xuICAgICAgdGhyb3cgbmV3IEZyYW1ld29ya0Vycm9yKCdlbnYgbm90IHNwZWNpZmllZCBhbmQgTk9ERV9FTlYgd2FzIG5vdCBzZXQnKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5yb290ICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEZyYW1ld29ya0Vycm9yKGByb290IG11c3QgYmUgZXhwbGljaXRseSBzcGVjaWZpZWQsIGdvdCAke29wdGlvbnMucm9vdH1gKVxuICAgIH1cblxuICAgIHRoaXMuY29uZmlnID0gdGhpczo6bWtjb25maWcob3B0aW9ucy5jb25maWcsIHtcbiAgICAgIGF0bGFzOiBBdGxhcy5kZWZhdWx0cyxcbiAgICAgIHNlcnZpY2VzOiB7fSxcbiAgICAgIGhvb2tzOiB7fSxcbiAgICAgIGFjdGlvbnM6IHt9LFxuICAgIH0pXG4gICAgLy8gTG9nZ2VyIPCfjLJcbiAgICB0aGlzLmxvZyA9IHRoaXM6Om1rbG9nKHRoaXMuY29uZmlnLmF0bGFzLmxvZylcbiAgICAvLyBBanYgdmFsaWRhdG9yIOKck1xuICAgIHRoaXMudmFsaWRhdG9yID0gbmV3IEFqdih0aGlzLmNvbmZpZy5hdGxhcy52YWxpZGF0b3IpXG4gICAgYWp2S2V5d29yZHModGhpcy52YWxpZGF0b3IsIHRoaXMuY29uZmlnLmF0bGFzLnZhbGlkYXRvci5rZXl3b3JkcylcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXF1aXJlIGEgbW9kdWxlIGJ5IHBhdGgsIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHJvb3RcbiAgICpcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBsb2NhdGlvbiAgICAgICAgICBUaGUgbW9kdWxlJ3MgbG9jYXRpb24sIHJlbGF0aXZlIHRvIHJvb3RcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRpb25zPyAgICAgICAgICBPcHRpb25zXG4gICAqIEBwYXJhbSAgICAge0Jvb2xlYW59ICAgb3B0aW9ucy5vcHRpb25hbCAgSWYgdHJ1ZSwgd2lsbCBub3QgdGhyb3cgaWYgdGhlIG1vZHVsZSBkb2VzIG5vdCBleGlzdFxuICAgKiBAcGFyYW0gICAgIHtCb29sZWFufSAgIG9wdGlvbnMubm9ybWFsaXNlIElmIHRydWUsIGl0IHdpbGwgcHJlZmVyIHRoZSBFUyBtb2R1bGVzJyBkZWZhdWx0IGV4cG9ydFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXIgbmFtZWQgZXhwb3J0cyBvciB0aGUgQ29tbW9uSlMgZXhwb3J0c1xuICAgKiBAcGFyYW0gICAgIHtCb29sZWFufSAgIG9wdGlvbnMuYWJzb2x1dGUgIElmIHRydWUsIHdpbGwgdHJ5IHRvIGxvYWQgdGhlIG1vZHVsZSB3aXRob3V0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2aW5nIHRoZSBtb2R1bGUncyBuYW1lIHRvIHRoZSBwcm9qZWN0IHJvb3QgKGl0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBsb2FkIHRoZSBtb2R1bGUgdXNpbmcgc3RhbmRhcmQgTm9kZSdzIG1lY2hhbmlzbSlcbiAgICogQHJldHVybiAgICB7bWl4ZWR9ICAgICAgICAgICAgICAgICAgICAgICBUaGUgbW9kdWxlJ3MgY29udGVudHNcbiAgICovXG4gIHJlcXVpcmUobG9jYXRpb24sIG9wdGlvbnMgPSB7fSkge1xuICAgIGxvY2F0aW9uID0gb3B0aW9ucy5hYnNvbHV0ZVxuICAgICAgPyBsb2NhdGlvblxuICAgICAgOiBwYXRoLnJlc29sdmUodGhpcy5yb290LCBsb2NhdGlvbilcblxuICAgIGNvbnN0IGxvYWQgPSBvcHRpb25zLm9wdGlvbmFsXG4gICAgICA/IG9wdHJlcXVpcmVcbiAgICAgIDogcmVxdWlyZVxuICAgIGNvbnN0IGNvbnRlbnRzID0gbG9hZChsb2NhdGlvbilcblxuICAgIHJldHVybiBvcHRpb25zLm5vcm1hbGlzZSAmJiBpc1BsYWluT2JqZWN0KGNvbnRlbnRzLmRlZmF1bHQpXG4gICAgICA/IGNvbnRlbnRzLmRlZmF1bHRcbiAgICAgIDogY29udGVudHNcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIHNlcnZpY2UgaW50byB0aGlzIGluc3RhbmNlIG9mIEF0bGFzIHdpdGggdGhlIGdpdmVuIGFsaWFzXG4gICAqXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgYWxpYXMgICAgICAgICAgIFRoZSBhbGlhcyBmb3IgdGhlIHNlcnZpY2UgLSBpdCB3aWxsIGJlIHVzZWQgZm9yIGV4cG9zaW5nXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzZXJ2aWNlJ3MgQVBJIG9uIHRoZSBhdGxhcy5zZXJ2aWNlcyBvYmplY3QgYW5kIGZvclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIGNvbmZpZ3VyYXRpb24gZGF0YSB0byBpdFxuICAgKiBAcGFyYW0gICAgIHtjbGFzc30gICAgIENvbXBvbmVudCAgICAgICBUaGUgc2VydmljZSBjbGFzc1xuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdHMgICAgICAgICAgICBSdW50aW1lIG9wdGlvbnMgZm9yIHRoZSBzZXJ2aWNlXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0cy5hbGlhc2VzICAgIEJpbmRpbmdzIHRvIG90aGVyIGRlZmluZWQgY29tcG9uZW50c1xuICAgKiBAcmV0dXJuICAgIHt0aGlzfVxuICAgKi9cbiAgc2VydmljZShhbGlhcywgQ29tcG9uZW50LCBvcHRzID0ge30pIHtcbiAgICB0aGlzOjpjb21wb25lbnQoe1xuICAgICAgdHlwZTogJ3NlcnZpY2UnLFxuICAgICAgYWxpYXMsXG4gICAgICBDb21wb25lbnQsXG4gICAgICBhbGlhc2VzOiBvcHRzLmFsaWFzZXMsXG4gICAgfSwgdGhpcy4jY2F0YWxvZy5zZXJ2aWNlcylcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBob29rIGludG8gdGhpcyBpbnN0YW5jZSBvZiBBdGxhcyB3aXRoIHRoZSBnaXZlbiBhbGlhc1xuICAgKlxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgIGFsaWFzICAgICAgICAgICBUaGUgYWxpYXMgZm9yIHRoZSBob29rIC0gaXQgd2lsbCBiZSB1c2VkIGZvciBwYXNzaW5nXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gZGF0YSB0byBpdFxuICAgKiBAcGFyYW0gICAgIHtjbGFzc30gICAgIENvbXBvbmVudCAgICAgICBUaGUgaG9vayBjbGFzc1xuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdHMgICAgICAgICAgICBSdW50aW1lIG9wdGlvbnMgZm9yIHRoZSBob29rXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0cy5hbGlhc2VzICAgIEJpbmRpbmdzIHRvIG90aGVyIGRlZmluZWQgY29tcG9uZW50c1xuICAgKiBAcmV0dXJuICAgIHt0aGlzfVxuICAgKi9cbiAgaG9vayhhbGlhcywgQ29tcG9uZW50LCBvcHRzID0ge30pIHtcbiAgICB0aGlzOjpjb21wb25lbnQoe1xuICAgICAgdHlwZTogJ2hvb2snLFxuICAgICAgYWxpYXMsXG4gICAgICBDb21wb25lbnQsXG4gICAgICBhbGlhc2VzOiBvcHRzLmFsaWFzZXMsXG4gICAgfSwgdGhpcy4jY2F0YWxvZy5ob29rcylcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYW4gYWN0aW9uIGludG8gdGhpcyBpbnN0YW5jZSBvZiBBdGxhcyB3aXRoIHRoZSBnaXZlbiBhbGlhc1xuICAgKlxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgIGFsaWFzICAgICAgICAgICBUaGUgYWxpYXMgZm9yIHRoZSBhY3Rpb24gLSBpdCB3aWxsIGJlIHVzZWQgZm9yIGV4cG9zaW5nXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBhY3Rpb24ncyBBUEkgb24gdGhlIGF0bGFzLmFjdGlvbnMgb2JqZWN0IGFuZCBmb3JcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBjb25maWd1cmF0aW9uIGRhdGEgdG8gaXRcbiAgICogQHBhcmFtICAgICB7Y2xhc3N9ICAgICBDb21wb25lbnQgICAgICAgVGhlIGFjdGlvbiBjbGFzc1xuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdHMgICAgICAgICAgICBSdW50aW1lIG9wdGlvbnMgZm9yIHRoZSBhY3Rpb25cbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRzLmFsaWFzZXMgICAgQmluZGluZ3MgdG8gb3RoZXIgZGVmaW5lZCBjb21wb25lbnRzXG4gICAqIEByZXR1cm4gICAge3RoaXN9XG4gICAqL1xuICBhY3Rpb24oYWxpYXMsIENvbXBvbmVudCwgb3B0cyA9IHt9KSB7XG4gICAgdGhpczo6Y29tcG9uZW50KHtcbiAgICAgIHR5cGU6ICdhY3Rpb24nLFxuICAgICAgYWxpYXMsXG4gICAgICBDb21wb25lbnQsXG4gICAgICBhbGlhc2VzOiBvcHRzLmFsaWFzZXMsXG4gICAgfSwgdGhpcy4jY2F0YWxvZy5hY3Rpb25zKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGFsbCBzZXJ2aWNlcyBhbmQgaG9va3MgZm9yIHVzZVxuICAgKlxuICAgKiBHZW5lcmFsbHkgeW91IHNob3VsZCB1c2UgYGF0bGFzLnN0YXJ0KClgIGluc3RlYWQgdG8gZ2V0IHlvdXIgaW5zdGFuY2UgdXAgYW5kIHJ1bm5pbmcuIEhvd2V2ZXIsXG4gICAqIHNvbWV0aW1lcyBpdCBpcyBuZWNlc3NhcnkgdG8gZ2V0IGFsbCB0aGUgc2VydmljZXMgaW50byBhIFwiZ2V0LXJlYWR5XCIgc3RhdGUgYmVmb3JlIHRoZXkgc3RhcnRcbiAgICogY29ubmVjdGluZyB0byByZW1vdGUgcmVzb3VyY2VzIG9yIGRvaW5nIGFueSBpbnRlbnNpdmUgSS9PIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm4gICAge1Byb21pc2U8dGhpcz59XG4gICAqL1xuICBhc3luYyBwcmVwYXJlKCkge1xuICAgIGlmICh0aGlzLnByZXBhcmVkKSB7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIGNvbnN0IGNhdGFsb2cgPSB0aGlzLiNjYXRhbG9nXG4gICAgY29uc3QgeyBzZXJ2aWNlcywgYWN0aW9ucywgaG9va3MgfSA9IGNhdGFsb2dcblxuICAgIGZvciAoY29uc3QgW2FsaWFzLCBjb250YWluZXJdIG9mIGhvb2tzKSB7XG4gICAgICBpZiAoIWNvbnRhaW5lci5Db21wb25lbnQub2JzZXJ2ZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEZyYW1ld29ya0Vycm9yKGBIb29rICR7YWxpYXN9IGRvZXMgbm90IGhhdmUgc3RhdGljICdvYnNlcnZlcycgcHJvcGVydHlgKVxuICAgICAgfVxuXG4gICAgICAvLyBQcmVwYXJlIG9ic2VydmVycyBvZiBBdGxhcyBpdHNlbGZcbiAgICAgIGlmIChjb250YWluZXIuQ29tcG9uZW50Lm9ic2VydmVzID09PSAnYXRsYXMnKSB7XG4gICAgICAgIHRoaXMuI29ic2VydmVycy5zZXQoYWxpYXMsIGNvbnRhaW5lcilcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGhvb2tzXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoWy4uLmhvb2tzXS5tYXAoKFssIGNvbnRhaW5lcl0pID0+IGNvbnRhaW5lci5wcmVwYXJlKHsgY2F0YWxvZyB9KSkpXG5cbiAgICAvLyBQcmVwYXJlIGFjdGlvbnMgYW5kIHNlcnZpY2VzIGluIHBhcmFsbGVsIPCfmoBcbiAgICB2b2lkIChhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAuLi5BcnJheS5mcm9tKGFjdGlvbnMpLm1hcChhc3luYyAoW2FsaWFzLCBjb250YWluZXJdKSA9PiAoe1xuICAgICAgICBleHBvc2U6IGNvbnRhaW5lci5Db21wb25lbnQuaW50ZXJuYWwgPyBmYWxzZSA6ICdhY3Rpb25zJyxcbiAgICAgICAgdmFsdWU6IGF3YWl0IGNvbnRhaW5lci5wcmVwYXJlKHsgY2F0YWxvZywgaG9va3MgfSksXG4gICAgICAgIGFsaWFzLFxuICAgICAgfSkpLFxuICAgICAgLi4uQXJyYXkuZnJvbShzZXJ2aWNlcykubWFwKGFzeW5jIChbYWxpYXMsIGNvbnRhaW5lcl0pID0+ICh7XG4gICAgICAgIGV4cG9zZTogY29udGFpbmVyLkNvbXBvbmVudC5pbnRlcm5hbCA/IGZhbHNlIDogJ3NlcnZpY2VzJyxcbiAgICAgICAgdmFsdWU6IGF3YWl0IGNvbnRhaW5lci5wcmVwYXJlKHsgY2F0YWxvZywgaG9va3MgfSksXG4gICAgICAgIGFsaWFzLFxuICAgICAgfSkpLFxuICAgIF0pKVxuICAgICAgLmZpbHRlcihyZXN1bHQgPT4gQm9vbGVhbihyZXN1bHQuZXhwb3NlKSlcbiAgICAgIC5mb3JFYWNoKHJlc3VsdCA9PiB0aGlzOjpleHBvc2UocmVzdWx0LmV4cG9zZSwgcmVzdWx0LmFsaWFzLCByZXN1bHQudmFsdWUpKVxuXG4gICAgdGhpcy4jcHJlcGFyZWQgPSB0cnVlXG4gICAgYXdhaXQgdGhpcy4jb2JzZXJ2ZXJzOjpkaXNwYXRjaCgnYWZ0ZXJQcmVwYXJlJywgdGhpcylcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgYWxsIHNlcnZpY2VzXG4gICAqXG4gICAqIEByZXR1cm4gICAge1Byb21pc2U8dGhpcz59XG4gICAqL1xuICBhc3luYyBzdGFydCgpIHtcbiAgICBjb25zdCB7IGFjdGlvbnMsIHNlcnZpY2VzLCBob29rcyB9ID0gdGhpcy4jY2F0YWxvZ1xuXG4gICAgYXdhaXQgdGhpcy5wcmVwYXJlKClcbiAgICBhd2FpdCB0aGlzLiNvYnNlcnZlcnM6OmRpc3BhdGNoKCdiZWZvcmVTdGFydCcsIHRoaXMpXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAuLi5BcnJheS5mcm9tKGhvb2tzKSxcbiAgICAgIC4uLkFycmF5LmZyb20oYWN0aW9ucyksXG4gICAgXS5tYXAoKFssIGNvbnRhaW5lcl0pID0+IGNvbnRhaW5lci5zdGFydCgpKSlcblxuICAgIC8vIFN0YXJ0IGFsbCBzZXJ2aWNlcywgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBhZGRlZCB0byB0aGUgaW5zdGFuY2Ug8J+SqlxuICAgIC8vIE9yZGVyaW5nIGlzIGltcG9ydGFudCBoZXJlISBTb21lIHNlcnZpY2VzIHNob3VsZCBiZSBzdGFydGVkIGFzIHRoZSBsYXN0IG9uZXMgYmVjYXVzZSB0aGV5XG4gICAgLy8gZXhwb3NlIHNvbWUgZnVuY3Rpb25hbGl0eSB0byB0aGUgb3V0c2lkZSB3b3JsZCBhbmQgc3RhcnRpbmcgdGhvc2UgYmVmb3JlIGllLiBhIGRhdGFiYXNlXG4gICAgLy8gc2VydmljZSBpcyBzdGFydGVkIG1pZ2h0IGJyZWFrIHN0dWZmIVxuICAgIGZvciAoY29uc3QgWywgY29udGFpbmVyXSBvZiBzZXJ2aWNlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgY29udGFpbmVyLnN0YXJ0KHsgaG9va3MgfSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBSb2xsIGJhY2tcbiAgICAgICAgYXdhaXQgdGhpcy5zdG9wKClcbiAgICAgICAgICAvLyBTaGl0IGp1c3QgZ290IHNlcmlvdXMg8J+YsVxuICAgICAgICAgIC5jYXRjaChzdG9wRXJyID0+IHZvaWQgdGhpcy5sb2cuZmF0YWwoeyBlcnI6IHN0b3BFcnIgfSwgJ2F0bGFzOnN0YXJ0OnJvbGxiYWNrLWZhaWx1cmUnKSlcblxuICAgICAgICAvLyBSZS10aHJvdyB0aGUgb3JpZ2luYWwgZXJyb3Igd2hpY2ggY2F1c2VkIEF0bGFzIHRvIGZhaWwgdG8gc3RhcnRcbiAgICAgICAgdGhyb3cgZXJyXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy4jc3RhcnRlZCA9IHRydWVcbiAgICBhd2FpdCB0aGlzLiNvYnNlcnZlcnM6OmRpc3BhdGNoKCdhZnRlclN0YXJ0JywgdGhpcylcbiAgICB0aGlzLmxvZy5pbmZvKHsgZW52OiB0aGlzLmVudiB9LCAnYXRsYXM6cmVhZHknKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIGFsbCBzZXJ2aWNlcywgdW5yZWdpc3RlciBhbGwgYWN0aW9ucyBhbmQgaG9va3MgYW5kIHVucHVibGlzaCBhbnkgQVBJcyBleHBvc2VkIGJ5IHRoZW1cbiAgICpcbiAgICogVGhpcyBwdXRzIHRoZSB3aG9sZSBhcHBsaWNhdGlvbiBpbnRvIGEgc3RhdGUgYXMgaXQgd2FzIGJlZm9yZSBgYXRsYXMucHJlcGFyZSgpYCBhbmQvb3JcbiAgICogYGF0bGFzLnN0YXJ0KClgIHdhcyBjYWxsZWQuXG4gICAqXG4gICAqIEByZXR1cm4gICAge1Byb21pc2U8dGhpcz59XG4gICAqL1xuICBhc3luYyBzdG9wKCkge1xuICAgIGNvbnN0IHsgc2VydmljZXMsIGFjdGlvbnMsIGhvb2tzIH0gPSB0aGlzLiNjYXRhbG9nXG5cbiAgICBhd2FpdCB0aGlzLiNvYnNlcnZlcnM6OmRpc3BhdGNoKCdiZWZvcmVTdG9wJywgdGhpcylcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIC4uLkFycmF5LmZyb20oaG9va3MpLFxuICAgICAgLi4uQXJyYXkuZnJvbShhY3Rpb25zKSxcbiAgICBdLm1hcCgoWywgY29udGFpbmVyXSkgPT4gY29udGFpbmVyLnN0b3AoKSkpXG5cbiAgICBsZXQgZXJyb3JcblxuICAgIC8vIFN0b3AgYWxsIHNlcnZpY2VzLCBpbiB0aGUgcmV2ZXJzZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQgdG8gdGhlIGluc3RhbmNlIPCfkqpcbiAgICAvLyBUaGlzIHdpbGwgbWFrZSBzdXJlIHRoZSBtb3N0IGltcG9ydGFudCBzZXJ2aWNlcyBhcmUgc3RvcHBlZCBmaXJzdC5cbiAgICBmb3IgKGNvbnN0IFthbGlhcywgY29udGFpbmVyXSBvZiBBcnJheS5mcm9tKHNlcnZpY2VzKS5yZXZlcnNlKCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnNlcnZpY2VzW2FsaWFzXVxuICAgICAgICBhd2FpdCBjb250YWluZXIuc3RvcCh7IGhvb2tzIH0pXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgZXJyb3IgPSBlcnJcbiAgICAgICAgLy8gTGVhdmUgdGhpcyBzZXJ2aWNlIGFzIGlzIGFuZCBtb3ZlIHRvIHRoZSBuZXh0IHNlcnZpY2UuIFdlIHByb2JhYmx5IGNhbm5vdCBkbyBhbnl0aGluZyB0b1xuICAgICAgICAvLyBwcm9wZXJseSBzdG9wIHRoaXMgc2VydmljZS4g8J+ZgVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVucmVnaXN0ZXIgYWN0aW9uc1xuICAgIGZvciAoY29uc3QgW2FsaWFzXSBvZiBhY3Rpb25zKSB7XG4gICAgICBkZWxldGUgdGhpcy5hY3Rpb25zW2FsaWFzXVxuICAgIH1cblxuICAgIHRoaXMuI3N0YXJ0ZWQgPSBmYWxzZVxuICAgIHRoaXMuI3ByZXBhcmVkID0gZmFsc2VcblxuICAgIGF3YWl0IGhvb2tzOjpkaXNwYXRjaCgnYWZ0ZXJTdG9wJywgbnVsbClcbiAgICB0aGlzLmxvZy5pbmZvKCdhdGxhczpzdG9wcGVkJylcblxuICAgIC8vIElmIHRoZXJlIHdhcyBhbiBlcnJvciB0aHJvd24gaW4gb25lIG9mIHRoZSBzZXJ2aWNlcyBkdXJpbmcgLnN0b3AoKSwgcmUtdGhyb3cgaXQgbm93XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXRsYXNcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF0bGFzLm1qcyJdLCJuYW1lcyI6WyJBdGxhcyIsImluaXQiLCJvcHRpb25zIiwiY29uZmlnIiwiaG9va3MiLCJzZXJ2aWNlcyIsImFjdGlvbnMiLCJhbGlhc2VzIiwiYXRsYXMiLCJlbnYiLCJyb290IiwidHlwZXMiLCJwYXRocyIsIm1vZHVsZXMiLCJ0eXBlIiwicGF0aCIsInJlc29sdmUiLCJyZXF1aXJlIiwib3B0aW9uYWwiLCJub3JtYWxpc2UiLCJsb2ciLCJkZWJ1ZyIsImJvb3RzdHJhcCIsImNvbXBvbmVudHMiLCJPYmplY3QiLCJrZXlzIiwiYWxpYXMiLCJIb29rIiwiZW50cmllcyIsImhvb2siLCJTZXJ2aWNlIiwic2VydmljZSIsIkFjdGlvbiIsImFjdGlvbiIsInByZXBhcmVkIiwic3RhcnRlZCIsImNvbnN0cnVjdG9yIiwiTWFwIiwicHJvY2VzcyIsIk5PREVfRU5WIiwiRnJhbWV3b3JrRXJyb3IiLCJta2NvbmZpZyIsImRlZmF1bHRzIiwibWtsb2ciLCJ2YWxpZGF0b3IiLCJBanYiLCJhanZLZXl3b3JkcyIsImtleXdvcmRzIiwibG9jYXRpb24iLCJhYnNvbHV0ZSIsImxvYWQiLCJvcHRyZXF1aXJlIiwiY29udGVudHMiLCJkZWZhdWx0IiwiQ29tcG9uZW50Iiwib3B0cyIsImNvbXBvbmVudCIsInByZXBhcmUiLCJjYXRhbG9nIiwiY29udGFpbmVyIiwib2JzZXJ2ZXMiLCJzZXQiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiQXJyYXkiLCJmcm9tIiwiZXhwb3NlIiwiaW50ZXJuYWwiLCJ2YWx1ZSIsImZpbHRlciIsInJlc3VsdCIsIkJvb2xlYW4iLCJmb3JFYWNoIiwiZGlzcGF0Y2giLCJzdGFydCIsImVyciIsInN0b3AiLCJjYXRjaCIsInN0b3BFcnIiLCJmYXRhbCIsImluZm8iLCJlcnJvciIsInJldmVyc2UiLCJuYW1lIiwiYmFzZW5hbWUiLCJjd2QiLCJsZXZlbCIsInNlcmlhbGl6ZXJzIiwicGlubyIsInN0ZFNlcmlhbGl6ZXJzIiwi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WyIvLyBXZSB1c2UgZm9yLWF3YWl0IHBhdHRlcm4gcXVpdGUgZXh0ZW5zaXZlbHkgaGVyZSBmb3IgbGVnaXRpbWF0ZSBwdXJwb3Nlc1xuLyogZXNsaW50LWRpc2FibGUgbm8tYXdhaXQtaW4tbG9vcCAqL1xuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgKiBhcyBBanYgZnJvbSAnYWp2J1xuaW1wb3J0ICogYXMgYWp2S2V5d29yZHMgZnJvbSAnYWp2LWtleXdvcmRzJ1xuaW1wb3J0ICogYXMgcGlubyBmcm9tICdwaW5vJ1xuaW1wb3J0IHtcbiAgZGVmYXVsdHNEZWVwIGFzIGRlZmF1bHRzLFxuICBpc1BsYWluT2JqZWN0LFxufSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBGcmFtZXdvcmtFcnJvciB9IGZyb20gJ0BhdGxhcy5qcy9lcnJvcnMnXG5pbXBvcnQge1xuICBleHBvc2UsXG4gIGRpc3BhdGNoLFxuICBjb21wb25lbnQsXG4gIG1rY29uZmlnLFxuICBta2xvZyxcbiAgb3B0cmVxdWlyZSxcbn0gZnJvbSAnLi9wcml2YXRlJ1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyB5b3VyIGFwcGxpY2F0aW9uIGFuZCBhZ2dyZWdhdGVzIGFsbCBjb21wb25lbnRzIHRvZ2V0aGVyXG4gKlxuICogWW91IHNob3VsZCBnZW5lcmFsbHkgY3JlYXRlIG9ubHkgb25lIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgaW4gYSBwcm9ncmFtLlxuICovXG5jbGFzcyBBdGxhcyB7XG4gIHN0YXRpYyBkZWZhdWx0cyA9IHtcbiAgICBsb2c6IHtcbiAgICAgIG5hbWU6IHBhdGguYmFzZW5hbWUocHJvY2Vzcy5jd2QoKSksXG4gICAgICBsZXZlbDogJ2luZm8nLFxuICAgICAgc2VyaWFsaXplcnM6IHtcbiAgICAgICAgZXJyOiBwaW5vLnN0ZFNlcmlhbGl6ZXJzLmVycixcbiAgICAgICAgcmVxOiBwaW5vLnN0ZFNlcmlhbGl6ZXJzLnJlcSxcbiAgICAgICAgcmVzOiBwaW5vLnN0ZFNlcmlhbGl6ZXJzLnJlcyxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHZhbGlkYXRvcjoge1xuICAgICAgYWxsRXJyb3JzOiB0cnVlLFxuICAgICAgdXNlRGVmYXVsdHM6IHRydWUsXG4gICAgICBrZXl3b3JkczogW1xuICAgICAgICAndHlwZW9mJyxcbiAgICAgIF0sXG4gICAgfSxcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXNlIGEgYnJhbmQtbmV3IGF0bGFzIGluc3RhbmNlIGZyb20gdGhlIGdpdmVuIG1vZHVsZSBsb2NhdGlvbnNcbiAgICpcbiAgICogVXNlIHRoaXMgbWV0aG9kIHRvIHF1aWNrbHkgY29uZmlndXJlIEF0bGFzIGluc3RhbmNlIGJ5IHNpbXBseSB0ZWxsaW5nIGl0IHdoZXJlIHlvdXIgY29tcG9uZW50c1xuICAgKiBsaXZlIG9uIHRoZSBmaWxlc3lzdGVtLCBhbmQgQXRsYXMgd2lsbCBsb2FkIHRoZW0gZnJvbSB0aGUgZ2l2ZW4gbW9kdWxlIGxvY2F0aW9ucyBhbmQgYWRkIHRoZW1cbiAgICogdG8gdGhlIEF0bGFzIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgICAgb3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgICBvcHRpb25zLmVudiAgICAgICAgICAgICAgICAgICBUaGUgZW52aXJvbm1lbnQgdW5kZXIgd2hpY2ggdG8gb3BlcmF0ZVxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgICAgb3B0aW9ucy5yb290ICAgICAgICAgICAgICAgICAgVGhlIHJvb3QgZGlyZWN0b3J5IHRvIHdoaWNoIGFsbCBvdGhlclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3JpZXMgbWVudGlvbmVkIGhlcmUgYXJlIHJlbGF0aXZlXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgICBvcHRpb25zLmNvbmZpZz0nY29uZmlnJyAgICAgICBNb2R1bGUgbG9jYXRpb24gZm9yIHRoZSBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgICBvcHRpb25zLmhvb2tzPSdob29rcycgICAgICAgICBNb2R1bGUgbG9jYXRpb24gZm9yIHRoZSBob29rc1xuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgICAgb3B0aW9ucy5zZXJ2aWNlcz0nc2VydmljZXMnICAgTW9kdWxlIGxvY2F0aW9uIGZvciB0aGUgc2VydmljZXNcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICAgIG9wdGlvbnMuYWN0aW9ucz0nYWN0aW9ucycgICAgIE1vZHVsZSBsb2NhdGlvbiBmb3IgdGhlIGFjdGlvbnNcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICAgIG9wdGlvbnMuYWxpYXNlcz0nYWxpYXNlcycgICAgIE1vZHVsZSBsb2NhdGlvbiBmb3IgdGhlIGFsaWFzZXNcbiAgICogQHJldHVybiAgICB7QXRsYXN9XG4gICAqL1xuICBzdGF0aWMgaW5pdChvcHRpb25zID0ge30pIHtcbiAgICBkZWZhdWx0cyhvcHRpb25zLCB7XG4gICAgICBjb25maWc6ICdjb25maWcnLFxuICAgICAgaG9va3M6ICdob29rcycsXG4gICAgICBzZXJ2aWNlczogJ3NlcnZpY2VzJyxcbiAgICAgIGFjdGlvbnM6ICdhY3Rpb25zJyxcbiAgICAgIGFsaWFzZXM6ICdhbGlhc2VzJyxcbiAgICB9KVxuXG4gICAgY29uc3QgYXRsYXMgPSBuZXcgdGhpcyh7XG4gICAgICBlbnY6IG9wdGlvbnMuZW52LFxuICAgICAgcm9vdDogb3B0aW9ucy5yb290LFxuICAgICAgY29uZmlnOiBvcHRpb25zLmNvbmZpZyxcbiAgICB9KVxuICAgIGNvbnN0IHR5cGVzID0gW1xuICAgICAgJ2hvb2tzJyxcbiAgICAgICdzZXJ2aWNlcycsXG4gICAgICAnYWN0aW9ucycsXG4gICAgICAnYWxpYXNlcycsXG4gICAgXVxuICAgIGNvbnN0IHBhdGhzID0ge31cbiAgICBjb25zdCBtb2R1bGVzID0ge31cblxuICAgIGZvciAoY29uc3QgdHlwZSBvZiB0eXBlcykge1xuICAgICAgcGF0aHNbdHlwZV0gPSBwYXRoLnJlc29sdmUob3B0aW9ucy5yb290LCBvcHRpb25zW3R5cGVdKVxuICAgICAgbW9kdWxlc1t0eXBlXSA9IGF0bGFzLnJlcXVpcmUob3B0aW9uc1t0eXBlXSwgeyBvcHRpb25hbDogdHJ1ZSwgbm9ybWFsaXNlOiB0cnVlIH0pXG4gICAgfVxuXG4gICAgYXRsYXMubG9nLmRlYnVnKHsgcGF0aHMgfSwgJ2F0bGFzOmluaXQnKVxuXG4gICAgcmV0dXJuIHRoaXMuYm9vdHN0cmFwKGF0bGFzLCBtb2R1bGVzKVxuICB9XG5cbiAgLyoqXG4gICAqIEJvb3RzdHJhcCB0aGUgZ2l2ZW4gQXRsYXMgaW5zdGFuY2Ugd2l0aCB0aGUgcHJvdmlkZWQgbW9kdWxlc1xuICAgKlxuICAgKiBVc2UgdGhpcyBtZXRob2QgdG8gcXVpY2tseSBzZXQgdXAgdGhlIGdpdmVuIEF0bGFzIGluc3RhbmNlIHRvIHVzZSB0aGUgcHJvdmlkZWQgY29tcG9uZW50cy4gVGhpc1xuICAgKiBpcyB1c2VmdWwgaWYgeW91IG5lZWQgdG8gaGF2ZSBtdWx0aXBsZSBlbnRyeSBwb2ludHMgdG8geW91ciBwcm9ncmFtIGFuZCBzb21lIGVudHJ5cG9pbnRzIHNob3VsZFxuICAgKiBvbmx5IHVzZSBzb21lIGNvbXBvbmVudHMgYXZhaWxhYmxlLiBUaGlzIGlzIGVzcGVjaWFsbHkgdXNlZnVsIHdoZW4gaW1wbGVtZW50aW5nIHdvcmtlclxuICAgKiBwcm9jZXNzZXMgd2hlcmUgeW91IG9ubHkgbmVlZCBhIHN1YnNldCBvZiBhbGwgYXZhaWxhYmxlIGNvbXBvbmVudHMuIFRoaXMgbWV0aG9kLCB3aGlsZSBtb3JlXG4gICAqIHZlcmJvc2UgYXMgQXRsYXMuaW5pdCgpLCBzdGlsbCBmcmVlcyB5b3UgZnJvbSBtYW51YWxseSBhZGRpbmcgYWxsIHRoZSBjb21wb25lbnRzIGJ5IGhhbmQgd2hpbGVcbiAgICogcHJvdmlkaW5nIGdyZWF0ZXIgZmxleGliaWxpdHkgYXMgdG8gd2hpY2ggY29tcG9uZW50cyB3aWxsIGJlIHVzZWQuXG4gICAqXG4gICAqIEBwYXJhbSAgICAge0F0bGFzfSAgIGF0bGFzICAgICAgICAgICAgICAgICBUaGUgQXRsYXMgaW5zdGFuY2UgdG8gYm9vdHN0cmFwXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gIG1vZHVsZXM/ICAgICAgICAgICAgICBBbGwgdGhlIG1vZHVsZXMgd2hpY2ggc2hvdWxkIGJlIGFkZGVkIHRvIEF0bGFzXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gIG1vZHVsZXMuYWN0aW9ucyAgICAgICBBY3Rpb25zIHRvIGFkZFxuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICBtb2R1bGVzLmhvb2tzICAgICAgICAgSG9va3MgdG8gYWRkXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gIG1vZHVsZXMuc2VydmljZXMgICAgICBTZXJ2aWNlcyB0byBhZGRcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgbW9kdWxlcy5hbGlhc2VzICAgICAgIEFsaWFzZXMgZm9yIGFsbCB0aGUgY29tcG9uZW50c1xuICAgKiBAcmV0dXJuICAgIHtBdGxhc30gICAgICAgICAgICAgICAgICAgICAgICAgVGhlIEF0bGFzIGluc3RhbmNlIHdpdGggYWxsIGNvbXBvbmVudHMgYWRkZWQsIHJlYWR5XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBiZSBzdGFydGVkXG4gICAqL1xuICBzdGF0aWMgYm9vdHN0cmFwKGF0bGFzLCBtb2R1bGVzID0ge30pIHtcbiAgICBkZWZhdWx0cyhtb2R1bGVzLCB7XG4gICAgICAvLyBjb25maWcgbW9kdWxlIGlzIGxvYWRlZCBieSBBdGxhcyBpbnN0YW5jZSBpdHNlbGYsIHNvIGl0J3Mgb2theSB0byB1c2UgYSBzdHJpbmcgaGVyZSBhbmQgbGV0XG4gICAgICAvLyBBdGxhcyBsb2FkIGl0XG4gICAgICBjb25maWc6ICdjb25maWcnLFxuICAgICAgLy8gVGhlIGZvbGxvd2luZyBtb2R1bGVzIG11c3QgYWxyZWFkeSBiZSBwcm92aWRlZCBkaXJlY3RseSBhcyB3ZSB3b24ndCBsb2FkIHRoZW1cbiAgICAgIGFjdGlvbnM6IHt9LFxuICAgICAgaG9va3M6IHt9LFxuICAgICAgc2VydmljZXM6IHt9LFxuICAgICAgYWxpYXNlczoge1xuICAgICAgICBhY3Rpb25zOiB7fSxcbiAgICAgICAgaG9va3M6IHt9LFxuICAgICAgICBzZXJ2aWNlczoge30sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBhdGxhcy5sb2cuZGVidWcoe1xuICAgICAgZW52OiBhdGxhcy5lbnYsXG4gICAgICByb290OiBhdGxhcy5yb290LFxuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICBhY3Rpb25zOiBPYmplY3Qua2V5cyhtb2R1bGVzLmFjdGlvbnMpLFxuICAgICAgICBob29rczogT2JqZWN0LmtleXMobW9kdWxlcy5ob29rcyksXG4gICAgICAgIHNlcnZpY2VzOiBPYmplY3Qua2V5cyhtb2R1bGVzLnNlcnZpY2VzKSxcbiAgICAgIH0sXG4gICAgfSwgJ2F0bGFzOmJvb3RzdHJhcCcpXG5cbiAgICAvLyBIb29rc1xuICAgIGZvciAoY29uc3QgW2FsaWFzLCBIb29rXSBvZiBPYmplY3QuZW50cmllcyhtb2R1bGVzLmhvb2tzKSkge1xuICAgICAgY29uc3QgYWxpYXNlcyA9IG1vZHVsZXMuYWxpYXNlcy5ob29rc1thbGlhc11cbiAgICAgIGF0bGFzLmhvb2soYWxpYXMsIEhvb2ssIHsgYWxpYXNlcyB9KVxuICAgIH1cblxuICAgIC8vIFNlcnZpY2VzXG4gICAgZm9yIChjb25zdCBbYWxpYXMsIFNlcnZpY2VdIG9mIE9iamVjdC5lbnRyaWVzKG1vZHVsZXMuc2VydmljZXMpKSB7XG4gICAgICBjb25zdCBhbGlhc2VzID0gbW9kdWxlcy5hbGlhc2VzLnNlcnZpY2VzW2FsaWFzXVxuICAgICAgYXRsYXMuc2VydmljZShhbGlhcywgU2VydmljZSwgeyBhbGlhc2VzIH0pXG4gICAgfVxuXG4gICAgLy8gQWN0aW9uc1xuICAgIGZvciAoY29uc3QgW2FsaWFzLCBBY3Rpb25dIG9mIE9iamVjdC5lbnRyaWVzKG1vZHVsZXMuYWN0aW9ucykpIHtcbiAgICAgIGNvbnN0IGFsaWFzZXMgPSBtb2R1bGVzLmFsaWFzZXMuYWN0aW9uc1thbGlhc11cbiAgICAgIGF0bGFzLmFjdGlvbihhbGlhcywgQWN0aW9uLCB7IGFsaWFzZXMgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gYXRsYXNcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IGVudmlyb25tZW50IHVuZGVyIHdoaWNoIHRoaXMgaW5zdGFuY2Ugb3BlcmF0ZXNcbiAgICpcbiAgICogRGVmYXVsdHMgdG8gTk9ERV9FTlYgZnJvbSB0aGUgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIEByZWFkb25seVxuICAgKiBAcmV0dXJuICAgIHtTdHJpbmd9XG4gICAqL1xuICBnZXQgZW52KCkge1xuICAgIHJldHVybiB0aGlzLiNlbnZcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBmb2xkZXIgd2hlcmUgYWxsIG90aGVyIHBhdGhzIHNob3VsZCBiZSByZWxhdGl2ZSB0b1xuICAgKlxuICAgKiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSBzZXQgdGhpcyB0byB0aGUgcHJvamVjdCdzIHJvb3QgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAcmVhZG9ubHlcbiAgICogQHJldHVybiAgICB7U3RyaW5nfVxuICAgKi9cbiAgZ2V0IHJvb3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3Jvb3RcbiAgfVxuXG4gIC8qKlxuICAgKiBJcyB0aGlzIGluc3RhbmNlIGluIGEgcHJlcGFyZWQgc3RhdGU/XG4gICAqXG4gICAqIEByZWFkb25seVxuICAgKiBAcmV0dXJuICAgIHtib29sZWFufVxuICAgKi9cbiAgZ2V0IHByZXBhcmVkKCkge1xuICAgIHJldHVybiB0aGlzLiNwcmVwYXJlZFxuICB9XG5cbiAgLyoqXG4gICAqIElzIHRoaXMgaW5zdGFuY2UgaW4gYSBzdGFydGVkIHN0YXRlP1xuICAgKlxuICAgKiBAcmVhZG9ubHlcbiAgICogQHJldHVybiAgICB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBzdGFydGVkKCkge1xuICAgIHJldHVybiB0aGlzLiNzdGFydGVkXG4gIH1cblxuICAvKipcbiAgICogQXRsYXMgY29uZmlndXJhdGlvbiwgYXMgcGFzc2VkIGluIHRvIHRoZSBjb25zdHJ1Y3RvclxuICAgKlxuICAgKiBAdHlwZSAgICB7T2JqZWN0fVxuICAgKi9cbiAgY29uZmlnID0ge31cblxuICAvKipcbiAgICogQWxsIHNlcnZpY2VzIGFkZGVkIHRvIHRoaXMgaW5zdGFuY2VcbiAgICpcbiAgICogQHR5cGUgICAge09iamVjdH1cbiAgICovXG4gIHNlcnZpY2VzID0ge31cblxuICAvKipcbiAgICogQWxsIGFjdGlvbnMgYWRkZWQgdG8gdGhpcyBpbnN0YW5jZVxuICAgKlxuICAgKiBAdHlwZSAgICB7T2JqZWN0fVxuICAgKi9cbiAgYWN0aW9ucyA9IHt9XG5cbiAgI2VudiA9IG51bGxcbiAgI3Jvb3QgPSBudWxsXG4gICNwcmVwYXJlZCA9IGZhbHNlXG4gICNzdGFydGVkID0gZmFsc2VcbiAgI2NhdGFsb2cgPSB7XG4gICAgc2VydmljZXM6IG5ldyBNYXAoKSxcbiAgICBob29rczogbmV3IE1hcCgpLFxuICAgIGFjdGlvbnM6IG5ldyBNYXAoKSxcbiAgfVxuXG4gICNvYnNlcnZlcnMgPSBuZXcgTWFwKClcblxuICAvKipcbiAgICogQW4gaW5zdGFuY2Ugb2YgQWp2IHVzZWQgdG8gdmFsaWRhdGUgY29tcG9uZW50IGNvbmZpZ3VyYXRpb25cbiAgICogQHR5cGUgICAge0Fqdn1cbiAgICovXG4gIHZhbGlkYXRvciA9IG51bGxcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGluc3RhbmNlXG4gICAqXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0aW9ucyAgICAgICAgICAgICBPcHRpb25zIGZvciB0aGUgaW5zdGFuY2VcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRpb25zLmNvbmZpZyAgICAgIENvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgaW5zdGFuY2UgYW5kIGZvciBhbGxcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VzIG9yIG90aGVyIGNvbXBvbmVudHMgd2hpY2ggd2lsbCBiZSBhZGRlZCB0b1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGluc3RhbmNlXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgb3B0aW9ucy5yb290ICAgICAgICBUaGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIGluc3RhbmNlXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgb3B0aW9ucy5lbnYgICAgICAgICBUaGUgZW52aXJvbm1lbnQgdW5kZXIgd2hpY2ggdGhpcyBpbnN0YW5jZSBvcGVyYXRlcy5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudHMgbWF5IHVzZSB0aGlzIHZhbHVlIGZvciB2YXJpb3VzIHB1cnBvc2VzLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gTk9ERV9FTlYuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICAvLyBJbml0aWFsaXNlIHByaXZhdGUgc3R1ZmZcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvY2Vzcy1lbnZcbiAgICB0aGlzLiNlbnYgPSBvcHRpb25zLmVudiB8fCBwcm9jZXNzLmVudi5OT0RFX0VOVlxuICAgIHRoaXMuI3Jvb3QgPSBvcHRpb25zLnJvb3RcblxuICAgIC8vIFNhZmV0eSBjaGVja3NcbiAgICBpZiAoIXRoaXMuI2Vudikge1xuICAgICAgdGhyb3cgbmV3IEZyYW1ld29ya0Vycm9yKCdlbnYgbm90IHNwZWNpZmllZCBhbmQgTk9ERV9FTlYgd2FzIG5vdCBzZXQnKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5yb290ICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEZyYW1ld29ya0Vycm9yKGByb290IG11c3QgYmUgZXhwbGljaXRseSBzcGVjaWZpZWQsIGdvdCAke29wdGlvbnMucm9vdH1gKVxuICAgIH1cblxuICAgIHRoaXMuY29uZmlnID0gdGhpczo6bWtjb25maWcob3B0aW9ucy5jb25maWcsIHtcbiAgICAgIGF0bGFzOiBBdGxhcy5kZWZhdWx0cyxcbiAgICAgIHNlcnZpY2VzOiB7fSxcbiAgICAgIGhvb2tzOiB7fSxcbiAgICAgIGFjdGlvbnM6IHt9LFxuICAgIH0pXG4gICAgLy8gTG9nZ2VyIPCfjLJcbiAgICB0aGlzLmxvZyA9IHRoaXM6Om1rbG9nKHRoaXMuY29uZmlnLmF0bGFzLmxvZylcbiAgICAvLyBBanYgdmFsaWRhdG9yIOKck1xuICAgIHRoaXMudmFsaWRhdG9yID0gbmV3IEFqdih0aGlzLmNvbmZpZy5hdGxhcy52YWxpZGF0b3IpXG4gICAgYWp2S2V5d29yZHModGhpcy52YWxpZGF0b3IsIHRoaXMuY29uZmlnLmF0bGFzLnZhbGlkYXRvci5rZXl3b3JkcylcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXF1aXJlIGEgbW9kdWxlIGJ5IHBhdGgsIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHJvb3RcbiAgICpcbiAgICogQHBhcmFtICAgICB7U3RyaW5nfSAgICBsb2NhdGlvbiAgICAgICAgICBUaGUgbW9kdWxlJ3MgbG9jYXRpb24sIHJlbGF0aXZlIHRvIHJvb3RcbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRpb25zPyAgICAgICAgICBPcHRpb25zXG4gICAqIEBwYXJhbSAgICAge0Jvb2xlYW59ICAgb3B0aW9ucy5vcHRpb25hbCAgSWYgdHJ1ZSwgd2lsbCBub3QgdGhyb3cgaWYgdGhlIG1vZHVsZSBkb2VzIG5vdCBleGlzdFxuICAgKiBAcGFyYW0gICAgIHtCb29sZWFufSAgIG9wdGlvbnMubm9ybWFsaXNlIElmIHRydWUsIGl0IHdpbGwgcHJlZmVyIHRoZSBFUyBtb2R1bGVzJyBkZWZhdWx0IGV4cG9ydFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXIgbmFtZWQgZXhwb3J0cyBvciB0aGUgQ29tbW9uSlMgZXhwb3J0c1xuICAgKiBAcGFyYW0gICAgIHtCb29sZWFufSAgIG9wdGlvbnMuYWJzb2x1dGUgIElmIHRydWUsIHdpbGwgdHJ5IHRvIGxvYWQgdGhlIG1vZHVsZSB3aXRob3V0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2aW5nIHRoZSBtb2R1bGUncyBuYW1lIHRvIHRoZSBwcm9qZWN0IHJvb3QgKGl0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBsb2FkIHRoZSBtb2R1bGUgdXNpbmcgc3RhbmRhcmQgTm9kZSdzIG1lY2hhbmlzbSlcbiAgICogQHJldHVybiAgICB7bWl4ZWR9ICAgICAgICAgICAgICAgICAgICAgICBUaGUgbW9kdWxlJ3MgY29udGVudHNcbiAgICovXG4gIHJlcXVpcmUobG9jYXRpb24sIG9wdGlvbnMgPSB7fSkge1xuICAgIGxvY2F0aW9uID0gb3B0aW9ucy5hYnNvbHV0ZVxuICAgICAgPyBsb2NhdGlvblxuICAgICAgOiBwYXRoLnJlc29sdmUodGhpcy5yb290LCBsb2NhdGlvbilcblxuICAgIGNvbnN0IGxvYWQgPSBvcHRpb25zLm9wdGlvbmFsXG4gICAgICA/IG9wdHJlcXVpcmVcbiAgICAgIDogcmVxdWlyZVxuICAgIGNvbnN0IGNvbnRlbnRzID0gbG9hZChsb2NhdGlvbilcblxuICAgIHJldHVybiBvcHRpb25zLm5vcm1hbGlzZSAmJiBpc1BsYWluT2JqZWN0KGNvbnRlbnRzLmRlZmF1bHQpXG4gICAgICA/IGNvbnRlbnRzLmRlZmF1bHRcbiAgICAgIDogY29udGVudHNcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIHNlcnZpY2UgaW50byB0aGlzIGluc3RhbmNlIG9mIEF0bGFzIHdpdGggdGhlIGdpdmVuIGFsaWFzXG4gICAqXG4gICAqIEBwYXJhbSAgICAge1N0cmluZ30gICAgYWxpYXMgICAgICAgICAgIFRoZSBhbGlhcyBmb3IgdGhlIHNlcnZpY2UgLSBpdCB3aWxsIGJlIHVzZWQgZm9yIGV4cG9zaW5nXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzZXJ2aWNlJ3MgQVBJIG9uIHRoZSBhdGxhcy5zZXJ2aWNlcyBvYmplY3QgYW5kIGZvclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIGNvbmZpZ3VyYXRpb24gZGF0YSB0byBpdFxuICAgKiBAcGFyYW0gICAgIHtjbGFzc30gICAgIENvbXBvbmVudCAgICAgICBUaGUgc2VydmljZSBjbGFzc1xuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdHMgICAgICAgICAgICBSdW50aW1lIG9wdGlvbnMgZm9yIHRoZSBzZXJ2aWNlXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0cy5hbGlhc2VzICAgIEJpbmRpbmdzIHRvIG90aGVyIGRlZmluZWQgY29tcG9uZW50c1xuICAgKiBAcmV0dXJuICAgIHt0aGlzfVxuICAgKi9cbiAgc2VydmljZShhbGlhcywgQ29tcG9uZW50LCBvcHRzID0ge30pIHtcbiAgICB0aGlzOjpjb21wb25lbnQoe1xuICAgICAgdHlwZTogJ3NlcnZpY2UnLFxuICAgICAgYWxpYXMsXG4gICAgICBDb21wb25lbnQsXG4gICAgICBhbGlhc2VzOiBvcHRzLmFsaWFzZXMsXG4gICAgfSwgdGhpcy4jY2F0YWxvZy5zZXJ2aWNlcylcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBob29rIGludG8gdGhpcyBpbnN0YW5jZSBvZiBBdGxhcyB3aXRoIHRoZSBnaXZlbiBhbGlhc1xuICAgKlxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgIGFsaWFzICAgICAgICAgICBUaGUgYWxpYXMgZm9yIHRoZSBob29rIC0gaXQgd2lsbCBiZSB1c2VkIGZvciBwYXNzaW5nXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gZGF0YSB0byBpdFxuICAgKiBAcGFyYW0gICAgIHtjbGFzc30gICAgIENvbXBvbmVudCAgICAgICBUaGUgaG9vayBjbGFzc1xuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdHMgICAgICAgICAgICBSdW50aW1lIG9wdGlvbnMgZm9yIHRoZSBob29rXG4gICAqIEBwYXJhbSAgICAge09iamVjdH0gICAgb3B0cy5hbGlhc2VzICAgIEJpbmRpbmdzIHRvIG90aGVyIGRlZmluZWQgY29tcG9uZW50c1xuICAgKiBAcmV0dXJuICAgIHt0aGlzfVxuICAgKi9cbiAgaG9vayhhbGlhcywgQ29tcG9uZW50LCBvcHRzID0ge30pIHtcbiAgICB0aGlzOjpjb21wb25lbnQoe1xuICAgICAgdHlwZTogJ2hvb2snLFxuICAgICAgYWxpYXMsXG4gICAgICBDb21wb25lbnQsXG4gICAgICBhbGlhc2VzOiBvcHRzLmFsaWFzZXMsXG4gICAgfSwgdGhpcy4jY2F0YWxvZy5ob29rcylcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYW4gYWN0aW9uIGludG8gdGhpcyBpbnN0YW5jZSBvZiBBdGxhcyB3aXRoIHRoZSBnaXZlbiBhbGlhc1xuICAgKlxuICAgKiBAcGFyYW0gICAgIHtTdHJpbmd9ICAgIGFsaWFzICAgICAgICAgICBUaGUgYWxpYXMgZm9yIHRoZSBhY3Rpb24gLSBpdCB3aWxsIGJlIHVzZWQgZm9yIGV4cG9zaW5nXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBhY3Rpb24ncyBBUEkgb24gdGhlIGF0bGFzLmFjdGlvbnMgb2JqZWN0IGFuZCBmb3JcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBjb25maWd1cmF0aW9uIGRhdGEgdG8gaXRcbiAgICogQHBhcmFtICAgICB7Y2xhc3N9ICAgICBDb21wb25lbnQgICAgICAgVGhlIGFjdGlvbiBjbGFzc1xuICAgKiBAcGFyYW0gICAgIHtPYmplY3R9ICAgIG9wdHMgICAgICAgICAgICBSdW50aW1lIG9wdGlvbnMgZm9yIHRoZSBhY3Rpb25cbiAgICogQHBhcmFtICAgICB7T2JqZWN0fSAgICBvcHRzLmFsaWFzZXMgICAgQmluZGluZ3MgdG8gb3RoZXIgZGVmaW5lZCBjb21wb25lbnRzXG4gICAqIEByZXR1cm4gICAge3RoaXN9XG4gICAqL1xuICBhY3Rpb24oYWxpYXMsIENvbXBvbmVudCwgb3B0cyA9IHt9KSB7XG4gICAgdGhpczo6Y29tcG9uZW50KHtcbiAgICAgIHR5cGU6ICdhY3Rpb24nLFxuICAgICAgYWxpYXMsXG4gICAgICBDb21wb25lbnQsXG4gICAgICBhbGlhc2VzOiBvcHRzLmFsaWFzZXMsXG4gICAgfSwgdGhpcy4jY2F0YWxvZy5hY3Rpb25zKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGFsbCBzZXJ2aWNlcyBhbmQgaG9va3MgZm9yIHVzZVxuICAgKlxuICAgKiBHZW5lcmFsbHkgeW91IHNob3VsZCB1c2UgYGF0bGFzLnN0YXJ0KClgIGluc3RlYWQgdG8gZ2V0IHlvdXIgaW5zdGFuY2UgdXAgYW5kIHJ1bm5pbmcuIEhvd2V2ZXIsXG4gICAqIHNvbWV0aW1lcyBpdCBpcyBuZWNlc3NhcnkgdG8gZ2V0IGFsbCB0aGUgc2VydmljZXMgaW50byBhIFwiZ2V0LXJlYWR5XCIgc3RhdGUgYmVmb3JlIHRoZXkgc3RhcnRcbiAgICogY29ubmVjdGluZyB0byByZW1vdGUgcmVzb3VyY2VzIG9yIGRvaW5nIGFueSBpbnRlbnNpdmUgSS9PIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm4gICAge1Byb21pc2U8dGhpcz59XG4gICAqL1xuICBhc3luYyBwcmVwYXJlKCkge1xuICAgIGlmICh0aGlzLnByZXBhcmVkKSB7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIGNvbnN0IGNhdGFsb2cgPSB0aGlzLiNjYXRhbG9nXG4gICAgY29uc3QgeyBzZXJ2aWNlcywgYWN0aW9ucywgaG9va3MgfSA9IGNhdGFsb2dcblxuICAgIGZvciAoY29uc3QgW2FsaWFzLCBjb250YWluZXJdIG9mIGhvb2tzKSB7XG4gICAgICBpZiAoIWNvbnRhaW5lci5Db21wb25lbnQub2JzZXJ2ZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEZyYW1ld29ya0Vycm9yKGBIb29rICR7YWxpYXN9IGRvZXMgbm90IGhhdmUgc3RhdGljICdvYnNlcnZlcycgcHJvcGVydHlgKVxuICAgICAgfVxuXG4gICAgICAvLyBQcmVwYXJlIG9ic2VydmVycyBvZiBBdGxhcyBpdHNlbGZcbiAgICAgIGlmIChjb250YWluZXIuQ29tcG9uZW50Lm9ic2VydmVzID09PSAnYXRsYXMnKSB7XG4gICAgICAgIHRoaXMuI29ic2VydmVycy5zZXQoYWxpYXMsIGNvbnRhaW5lcilcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGhvb2tzXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoWy4uLmhvb2tzXS5tYXAoKFssIGNvbnRhaW5lcl0pID0+IGNvbnRhaW5lci5wcmVwYXJlKHsgY2F0YWxvZyB9KSkpXG5cbiAgICAvLyBQcmVwYXJlIGFjdGlvbnMgYW5kIHNlcnZpY2VzIGluIHBhcmFsbGVsIPCfmoBcbiAgICB2b2lkIChhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAuLi5BcnJheS5mcm9tKGFjdGlvbnMpLm1hcChhc3luYyAoW2FsaWFzLCBjb250YWluZXJdKSA9PiAoe1xuICAgICAgICBleHBvc2U6IGNvbnRhaW5lci5Db21wb25lbnQuaW50ZXJuYWwgPyBmYWxzZSA6ICdhY3Rpb25zJyxcbiAgICAgICAgdmFsdWU6IGF3YWl0IGNvbnRhaW5lci5wcmVwYXJlKHsgY2F0YWxvZywgaG9va3MgfSksXG4gICAgICAgIGFsaWFzLFxuICAgICAgfSkpLFxuICAgICAgLi4uQXJyYXkuZnJvbShzZXJ2aWNlcykubWFwKGFzeW5jIChbYWxpYXMsIGNvbnRhaW5lcl0pID0+ICh7XG4gICAgICAgIGV4cG9zZTogY29udGFpbmVyLkNvbXBvbmVudC5pbnRlcm5hbCA/IGZhbHNlIDogJ3NlcnZpY2VzJyxcbiAgICAgICAgdmFsdWU6IGF3YWl0IGNvbnRhaW5lci5wcmVwYXJlKHsgY2F0YWxvZywgaG9va3MgfSksXG4gICAgICAgIGFsaWFzLFxuICAgICAgfSkpLFxuICAgIF0pKVxuICAgICAgLmZpbHRlcihyZXN1bHQgPT4gQm9vbGVhbihyZXN1bHQuZXhwb3NlKSlcbiAgICAgIC5mb3JFYWNoKHJlc3VsdCA9PiB0aGlzOjpleHBvc2UocmVzdWx0LmV4cG9zZSwgcmVzdWx0LmFsaWFzLCByZXN1bHQudmFsdWUpKVxuXG4gICAgdGhpcy4jcHJlcGFyZWQgPSB0cnVlXG4gICAgYXdhaXQgdGhpcy4jb2JzZXJ2ZXJzOjpkaXNwYXRjaCgnYWZ0ZXJQcmVwYXJlJywgdGhpcylcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgYWxsIHNlcnZpY2VzXG4gICAqXG4gICAqIEByZXR1cm4gICAge1Byb21pc2U8dGhpcz59XG4gICAqL1xuICBhc3luYyBzdGFydCgpIHtcbiAgICBjb25zdCB7IGFjdGlvbnMsIHNlcnZpY2VzLCBob29rcyB9ID0gdGhpcy4jY2F0YWxvZ1xuXG4gICAgYXdhaXQgdGhpcy5wcmVwYXJlKClcbiAgICBhd2FpdCB0aGlzLiNvYnNlcnZlcnM6OmRpc3BhdGNoKCdiZWZvcmVTdGFydCcsIHRoaXMpXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAuLi5BcnJheS5mcm9tKGhvb2tzKSxcbiAgICAgIC4uLkFycmF5LmZyb20oYWN0aW9ucyksXG4gICAgXS5tYXAoKFssIGNvbnRhaW5lcl0pID0+IGNvbnRhaW5lci5zdGFydCgpKSlcblxuICAgIC8vIFN0YXJ0IGFsbCBzZXJ2aWNlcywgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBhZGRlZCB0byB0aGUgaW5zdGFuY2Ug8J+SqlxuICAgIC8vIE9yZGVyaW5nIGlzIGltcG9ydGFudCBoZXJlISBTb21lIHNlcnZpY2VzIHNob3VsZCBiZSBzdGFydGVkIGFzIHRoZSBsYXN0IG9uZXMgYmVjYXVzZSB0aGV5XG4gICAgLy8gZXhwb3NlIHNvbWUgZnVuY3Rpb25hbGl0eSB0byB0aGUgb3V0c2lkZSB3b3JsZCBhbmQgc3RhcnRpbmcgdGhvc2UgYmVmb3JlIGllLiBhIGRhdGFiYXNlXG4gICAgLy8gc2VydmljZSBpcyBzdGFydGVkIG1pZ2h0IGJyZWFrIHN0dWZmIVxuICAgIGZvciAoY29uc3QgWywgY29udGFpbmVyXSBvZiBzZXJ2aWNlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgY29udGFpbmVyLnN0YXJ0KHsgaG9va3MgfSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBSb2xsIGJhY2tcbiAgICAgICAgYXdhaXQgdGhpcy5zdG9wKClcbiAgICAgICAgICAvLyBTaGl0IGp1c3QgZ290IHNlcmlvdXMg8J+YsVxuICAgICAgICAgIC5jYXRjaChzdG9wRXJyID0+IHZvaWQgdGhpcy5sb2cuZmF0YWwoeyBlcnI6IHN0b3BFcnIgfSwgJ2F0bGFzOnN0YXJ0OnJvbGxiYWNrLWZhaWx1cmUnKSlcblxuICAgICAgICAvLyBSZS10aHJvdyB0aGUgb3JpZ2luYWwgZXJyb3Igd2hpY2ggY2F1c2VkIEF0bGFzIHRvIGZhaWwgdG8gc3RhcnRcbiAgICAgICAgdGhyb3cgZXJyXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy4jc3RhcnRlZCA9IHRydWVcbiAgICBhd2FpdCB0aGlzLiNvYnNlcnZlcnM6OmRpc3BhdGNoKCdhZnRlclN0YXJ0JywgdGhpcylcbiAgICB0aGlzLmxvZy5pbmZvKHsgZW52OiB0aGlzLmVudiB9LCAnYXRsYXM6cmVhZHknKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIGFsbCBzZXJ2aWNlcywgdW5yZWdpc3RlciBhbGwgYWN0aW9ucyBhbmQgaG9va3MgYW5kIHVucHVibGlzaCBhbnkgQVBJcyBleHBvc2VkIGJ5IHRoZW1cbiAgICpcbiAgICogVGhpcyBwdXRzIHRoZSB3aG9sZSBhcHBsaWNhdGlvbiBpbnRvIGEgc3RhdGUgYXMgaXQgd2FzIGJlZm9yZSBgYXRsYXMucHJlcGFyZSgpYCBhbmQvb3JcbiAgICogYGF0bGFzLnN0YXJ0KClgIHdhcyBjYWxsZWQuXG4gICAqXG4gICAqIEByZXR1cm4gICAge1Byb21pc2U8dGhpcz59XG4gICAqL1xuICBhc3luYyBzdG9wKCkge1xuICAgIGNvbnN0IHsgc2VydmljZXMsIGFjdGlvbnMsIGhvb2tzIH0gPSB0aGlzLiNjYXRhbG9nXG5cbiAgICBhd2FpdCB0aGlzLiNvYnNlcnZlcnM6OmRpc3BhdGNoKCdiZWZvcmVTdG9wJywgdGhpcylcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIC4uLkFycmF5LmZyb20oaG9va3MpLFxuICAgICAgLi4uQXJyYXkuZnJvbShhY3Rpb25zKSxcbiAgICBdLm1hcCgoWywgY29udGFpbmVyXSkgPT4gY29udGFpbmVyLnN0b3AoKSkpXG5cbiAgICBsZXQgZXJyb3JcblxuICAgIC8vIFN0b3AgYWxsIHNlcnZpY2VzLCBpbiB0aGUgcmV2ZXJzZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQgdG8gdGhlIGluc3RhbmNlIPCfkqpcbiAgICAvLyBUaGlzIHdpbGwgbWFrZSBzdXJlIHRoZSBtb3N0IGltcG9ydGFudCBzZXJ2aWNlcyBhcmUgc3RvcHBlZCBmaXJzdC5cbiAgICBmb3IgKGNvbnN0IFthbGlhcywgY29udGFpbmVyXSBvZiBBcnJheS5mcm9tKHNlcnZpY2VzKS5yZXZlcnNlKCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnNlcnZpY2VzW2FsaWFzXVxuICAgICAgICBhd2FpdCBjb250YWluZXIuc3RvcCh7IGhvb2tzIH0pXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgZXJyb3IgPSBlcnJcbiAgICAgICAgLy8gTGVhdmUgdGhpcyBzZXJ2aWNlIGFzIGlzIGFuZCBtb3ZlIHRvIHRoZSBuZXh0IHNlcnZpY2UuIFdlIHByb2JhYmx5IGNhbm5vdCBkbyBhbnl0aGluZyB0b1xuICAgICAgICAvLyBwcm9wZXJseSBzdG9wIHRoaXMgc2VydmljZS4g8J+ZgVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVucmVnaXN0ZXIgYWN0aW9uc1xuICAgIGZvciAoY29uc3QgW2FsaWFzXSBvZiBhY3Rpb25zKSB7XG4gICAgICBkZWxldGUgdGhpcy5hY3Rpb25zW2FsaWFzXVxuICAgIH1cblxuICAgIHRoaXMuI3N0YXJ0ZWQgPSBmYWxzZVxuICAgIHRoaXMuI3ByZXBhcmVkID0gZmFsc2VcblxuICAgIGF3YWl0IGhvb2tzOjpkaXNwYXRjaCgnYWZ0ZXJTdG9wJywgbnVsbClcbiAgICB0aGlzLmxvZy5pbmZvKCdhdGxhczpzdG9wcGVkJylcblxuICAgIC8vIElmIHRoZXJlIHdhcyBhbiBlcnJvciB0aHJvd24gaW4gb25lIG9mIHRoZSBzZXJ2aWNlcyBkdXJpbmcgLnN0b3AoKSwgcmUtdGhyb3cgaXQgbm93XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXRsYXNcbiJdfQ==

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

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

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

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwaS50ZXN0Lm1qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsIm9wdHMiLCJiZWZvcmVFYWNoIiwicm9vdCIsIl9fZGlybmFtZSIsIml0IiwiZXhwZWN0IiwiQXRsYXMiLCJ0byIsImJlIiwiYSIsIm5vdCIsInRocm93IiwiRnJhbWV3b3JrRXJyb3IiLCJzYW5kYm94Iiwic3R1YiIsInByb2Nlc3MiLCJlbnYiLCJ2YWx1ZSIsIm1vZHVsZXMiLCJiYXNlIiwicmVxdWlyZSIsImxvY2FsIiwiYXRsYXMiLCJoYXZlIiwicHJvcGVydHkiLCJjb25maWciLCJkZWZhdWx0IiwibG9nIiwic2VyaWFsaXplcnMiLCJhbiIsImFsbCIsImtleXMiLCJlcnIiLCJlcXVhbCIsInJlcSIsInN0ZFNlcmlhbGl6ZXJzIiwicmVzIiwicmVzcG9uZFRvIiwiaW5jbHVkZSIsIk5PREVfRU5WIiwiYW5kIiwicHJlcGFyZWQiLCJzdGFydGVkIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOztBQUVBQSxRQUFRLENBQUMsdUJBQUQsRUFBMEIsTUFBTTtBQUN0QyxNQUFJQyxJQUFKO0FBRUFDLEVBQUFBLFVBQVUsQ0FBQyxNQUFNO0FBQ2ZELElBQUFBLElBQUksR0FBRztBQUFFRSxNQUFBQSxJQUFJLEVBQUVDO0FBQVIsS0FBUDtBQUNELEdBRlMsQ0FBVjtBQUtBQyxFQUFBQSxFQUFFLENBQUMsUUFBRCxFQUFXLE1BQU07QUFDakJDLElBQUFBLE1BQU0sQ0FBQ0MsT0FBRCxDQUFOLENBQWNDLEVBQWQsQ0FBaUJDLEVBQWpCLENBQW9CQyxDQUFwQixDQUFzQixVQUF0QjtBQUNELEdBRkMsQ0FBRjtBQUlBTCxFQUFBQSxFQUFFLENBQUMsb0JBQUQsRUFBdUIsTUFBTTtBQUM3QkMsSUFBQUEsTUFBTSxDQUFDLE1BQU0sSUFBSUMsT0FBSixDQUFVTixJQUFWLENBQVAsQ0FBTixDQUE4Qk8sRUFBOUIsQ0FBaUNHLEdBQWpDLENBQXFDQyxLQUFyQztBQUNELEdBRkMsQ0FBRjtBQUlB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LEVBQUFBLEVBQUUsQ0FBQyxnQ0FBRCxFQUFtQyxNQUFNO0FBQ3pDLFVBQU1rQixLQUFLLEdBQUcsSUFBSWhCLE9BQUosQ0FBVU4sSUFBVixDQUFkO0FBRUFLLElBQUFBLE1BQU0sQ0FBQyxNQUFNO0FBQ1hpQixNQUFBQSxLQUFLLENBQUNvQixPQUFOLEdBQWdCLElBQWhCO0FBQ0QsS0FGSyxDQUFOLENBRUduQyxFQUZILENBRU1JLEtBRk47QUFHRCxHQU5DLENBQUY7QUFPRCxDQW5KTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RkU2VyaWFsaXplcnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHsgQXRsYXMgfSBmcm9tICcuLidcbmltcG9ydCB7IEZyYW1ld29ya0Vycm9yIH0gZnJvbSAnQGF0bGFzLmpzL2Vycm9ycydcblxuZGVzY3JpYmUoJ0F0bGFzOiBiYXNpY3MgYW5kIEFQSScsICgpID0+IHtcbiAgbGV0IG9wdHNcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvcHRzID0geyByb290OiBfX2Rpcm5hbWUgfVxuICB9KVxuXG5cbiAgaXQoJ2V4aXN0cycsICgpID0+IHtcbiAgICBleHBlY3QoQXRsYXMpLnRvLmJlLmEoJ2Z1bmN0aW9uJylcbiAgfSlcblxuICBpdCgnY2FuIGJlIGNvbnN0cnVjdGVkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBuZXcgQXRsYXMob3B0cykpLnRvLm5vdC50aHJvdygpXG4gIH0pXG5cbiAgaXQoJ3JlcXVpcmVzIHJvb3Qgb24gY29uc3RydWN0aW9uJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBuZXcgQXRsYXMoKSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IsIC9yb290IG11c3QgYmUgZXhwbGljaXRseSBzcGVjaWZpZWQvdSlcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gZW52IGlzIG5vdCBwcm92aWRlZCBhbmQgTk9ERV9FTlYgaXMgbm90IHNldCcsIGZ1bmN0aW9uKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm9jZXNzLWVudlxuICAgIHRoaXMuc2FuZGJveC5zdHViKHByb2Nlc3MuZW52LCAnTk9ERV9FTlYnKS52YWx1ZSgnJylcbiAgICBleHBlY3QoKCkgPT4gbmV3IEF0bGFzKG9wdHMpKS50by50aHJvdyhGcmFtZXdvcmtFcnJvciwgL2VudiBub3Qgc3BlY2lmaWVkL3UpXG4gIH0pXG5cbiAgaXQoJ3N1cHBvcnRzIGxvYWRpbmcgdGhlIGNvbmZpZyBmcm9tIG1vZHVsZSBwYXRoIHJlbGF0aXZlIHRvIHJvb3QnLCAoKSA9PiB7XG4gICAgLy8gU2FuaXR5IGNoZWNrXG4gICAgY29uc3QgbW9kdWxlcyA9IHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIGdsb2JhbC1yZXF1aXJlICovXG4gICAgICBiYXNlOiByZXF1aXJlKCcuL2RlbW9jb25maWcnKSxcbiAgICAgIGVudjogcmVxdWlyZSgnLi9kZW1vY29uZmlnL2Vudi9sb2xlbnYnKSxcbiAgICAgIGxvY2FsOiByZXF1aXJlKCcuL2RlbW9jb25maWcvbG9jYWwnKSxcbiAgICAgIC8qIGVzbGludC1lbmFibGUgZ2xvYmFsLXJlcXVpcmUgKi9cbiAgICB9XG4gICAgZXhwZWN0KG1vZHVsZXMuYmFzZS5hdGxhcykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUJhc2UnLCB0cnVlKVxuICAgIGV4cGVjdChtb2R1bGVzLmJhc2UuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21FbnYnLCBmYWxzZSlcbiAgICBleHBlY3QobW9kdWxlcy5iYXNlLmF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdmcm9tTG9jYWwnLCBmYWxzZSlcbiAgICBleHBlY3QobW9kdWxlcy5lbnYuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21FbnYnLCB0cnVlKVxuICAgIGV4cGVjdChtb2R1bGVzLmVudi5hdGxhcykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUxvY2FsJywgZmFsc2UpXG4gICAgZXhwZWN0KG1vZHVsZXMubG9jYWwuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21Mb2NhbCcsIHRydWUpXG5cbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyh7XG4gICAgICByb290OiBfX2Rpcm5hbWUsXG4gICAgICBlbnY6ICdsb2xlbnYnLFxuICAgICAgY29uZmlnOiAnZGVtb2NvbmZpZycsXG4gICAgfSlcbiAgICBjb25zdCBjb25maWcgPSBhdGxhcy5jb25maWcuYXRsYXNcblxuICAgIGV4cGVjdChjb25maWcpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21CYXNlJywgdHJ1ZSlcbiAgICBleHBlY3QoY29uZmlnKS50by5oYXZlLnByb3BlcnR5KCdmcm9tRW52JywgdHJ1ZSlcbiAgICBleHBlY3QoY29uZmlnKS50by5oYXZlLnByb3BlcnR5KCdmcm9tTG9jYWwnLCB0cnVlKVxuICB9KVxuXG4gIGl0KCdwcmVmZXJzIEVTIG1vZHVsZSBkZWZhdWx0IGV4cG9ydCBpbiB0aGUgY29uZmlnIGZpbGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZXMgPSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmVcbiAgICAgIGVudjogcmVxdWlyZSgnLi9kZW1vY29uZmlnL2Vudi9tb2RlbnYnKS5kZWZhdWx0LFxuICAgIH1cblxuICAgIGV4cGVjdChtb2R1bGVzLmVudi5hdGxhcykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUVudicsIHRydWUpXG4gICAgZXhwZWN0KG1vZHVsZXMuZW52LmF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdmcm9tTG9jYWwnLCBmYWxzZSlcblxuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKHtcbiAgICAgIHJvb3Q6IF9fZGlybmFtZSxcbiAgICAgIGVudjogJ21vZGVudicsXG4gICAgICBjb25maWc6ICdkZW1vY29uZmlnJyxcbiAgICB9KVxuICAgIGNvbnN0IGNvbmZpZyA9IGF0bGFzLmNvbmZpZy5hdGxhc1xuXG4gICAgZXhwZWN0KGNvbmZpZykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUJhc2UnLCB0cnVlKVxuICAgIGV4cGVjdChjb25maWcpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21FbnYnLCB0cnVlKVxuICAgIGV4cGVjdChjb25maWcpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21Mb2NhbCcsIHRydWUpXG4gIH0pXG5cbiAgaXQoJ3N1cHBvcnRzIGxvYWRpbmcgUGlubyBsb2cgc2VyaWFsaXNlcnMgZnJvbSBtb2R1bGUgcGF0aCByZWxhdGl2ZSB0byByb290JywgKCkgPT4ge1xuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKHtcbiAgICAgIHJvb3Q6IF9fZGlybmFtZSxcbiAgICAgIGVudjogJ2xvbGVudicsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgYXRsYXM6IHtcbiAgICAgICAgICBsb2c6IHtcbiAgICAgICAgICAgIHNlcmlhbGl6ZXJzOiAnZGVtb2NvbmZpZy9zZXJpYWxpc2VycycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgICBjb25zdCBjb25maWcgPSBhdGxhcy5jb25maWcuYXRsYXNcblxuICAgIGV4cGVjdChjb25maWcubG9nLnNlcmlhbGl6ZXJzKS50by5iZS5hbignb2JqZWN0JylcbiAgICBleHBlY3QoY29uZmlnLmxvZy5zZXJpYWxpemVycykudG8uaGF2ZS5hbGwua2V5cyhbJ2VycicsICdyZXEnLCAncmVzJywgJ2N1c3RvbSddKVxuICAgIGV4cGVjdChjb25maWcubG9nLnNlcmlhbGl6ZXJzLmVycikudG8uZXF1YWwoJ292ZXJyaWRlbicpXG4gICAgZXhwZWN0KGNvbmZpZy5sb2cuc2VyaWFsaXplcnMucmVxKS50by5lcXVhbChzdGRTZXJpYWxpemVycy5yZXEpXG4gICAgZXhwZWN0KGNvbmZpZy5sb2cuc2VyaWFsaXplcnMucmVzKS50by5lcXVhbChzdGRTZXJpYWxpemVycy5yZXMpXG4gIH0pXG5cbiAgaXQoJ3Jlc3BvbmRzIHRvIGtub3duIG1ldGhvZHMnLCAoKSA9PiB7XG4gICAgY29uc3QgYXRsYXMgPSBuZXcgQXRsYXMob3B0cylcblxuICAgIGV4cGVjdChhdGxhcykudG8ucmVzcG9uZFRvKCdwcmVwYXJlJylcbiAgICBleHBlY3QoYXRsYXMpLnRvLnJlc3BvbmRUbygnc3RhcnQnKVxuICAgIGV4cGVjdChhdGxhcykudG8ucmVzcG9uZFRvKCdzdG9wJylcbiAgfSlcblxuICBpdCgnaGFzIGtub3duIHB1YmxpYyBwcm9wZXJ0aWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKG9wdHMpXG5cbiAgICBleHBlY3QoYXRsYXMpLnRvLmluY2x1ZGUuYWxsLmtleXMoW1xuICAgICAgJ2FjdGlvbnMnLFxuICAgICAgJ3NlcnZpY2VzJyxcbiAgICAgICdjb25maWcnLFxuICAgICAgJ2xvZycsXG4gICAgICAndmFsaWRhdG9yJyxcbiAgICBdKVxuICAgIC8vIEltcGxlbWVudGVkIGFzIGdldHRlcnMsIGFuZCBDaGFpIGRvZXMgbm90IHNlZW0gdG8gd29yayB3aXRoIHRoZW0gd2hlbiBjaGVja2luZyBmb3IgLmtleXMoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm9jZXNzLWVudlxuICAgIGV4cGVjdChhdGxhcy5lbnYpLnRvLmVxdWFsKHByb2Nlc3MuZW52Lk5PREVfRU5WKS5hbmQudG8uYmUuYSgnc3RyaW5nJylcbiAgICBleHBlY3QoYXRsYXMucm9vdCkudG8uZXF1YWwoX19kaXJuYW1lKVxuICAgIGV4cGVjdChhdGxhcy5wcmVwYXJlZCkudG8uZXF1YWwoZmFsc2UpXG4gICAgZXhwZWN0KGF0bGFzLnN0YXJ0ZWQpLnRvLmVxdWFsKGZhbHNlKVxuICB9KVxuXG4gIGl0KCdjb25zdHJ1Y3RzIGEgbG9nIG9iamVjdCBvbiB0aGlzLmxvZycsICgpID0+IHtcbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyhvcHRzKVxuXG4gICAgZXhwZWN0KGF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdsb2cnKVxuICAgIGV4cGVjdChhdGxhcy5sb2cpLnRvLnJlc3BvbmRUbygnZGVidWcnKVxuICAgIGV4cGVjdChhdGxhcy5sb2cpLnRvLnJlc3BvbmRUbygnaW5mbycpXG4gICAgZXhwZWN0KGF0bGFzLmxvZykudG8ucmVzcG9uZFRvKCd3YXJuJylcbiAgICBleHBlY3QoYXRsYXMubG9nKS50by5yZXNwb25kVG8oJ2Vycm9yJylcbiAgfSlcblxuICBpdCgncHJldmVudHMgc2V0dGluZyBhdGxhcy5wcmVwYXJlZCcsICgpID0+IHtcbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyhvcHRzKVxuXG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGF0bGFzLnByZXBhcmVkID0gdHJ1ZVxuICAgIH0pLnRvLnRocm93KClcbiAgfSlcblxuICBpdCgncHJldmVudHMgc2V0dGluZyBhdGxhcy5zdGFydGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKG9wdHMpXG5cbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgYXRsYXMuc3RhcnRlZCA9IHRydWVcbiAgICB9KS50by50aHJvdygpXG4gIH0pXG59KVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwaS50ZXN0Lm1qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsIm9wdHMiLCJiZWZvcmVFYWNoIiwicm9vdCIsIl9fZGlybmFtZSIsIml0IiwiZXhwZWN0IiwiQXRsYXMiLCJ0byIsImJlIiwiYSIsIm5vdCIsInRocm93IiwiRnJhbWV3b3JrRXJyb3IiLCJzYW5kYm94Iiwic3R1YiIsInByb2Nlc3MiLCJlbnYiLCJ2YWx1ZSIsIm1vZHVsZXMiLCJiYXNlIiwicmVxdWlyZSIsImxvY2FsIiwiYXRsYXMiLCJoYXZlIiwicHJvcGVydHkiLCJjb25maWciLCJkZWZhdWx0IiwibG9nIiwic2VyaWFsaXplcnMiLCJhbiIsImFsbCIsImtleXMiLCJlcnIiLCJlcXVhbCIsInJlcSIsInN0ZFNlcmlhbGl6ZXJzIiwicmVzIiwicmVzcG9uZFRvIiwiaW5jbHVkZSIsIk5PREVfRU5WIiwiYW5kIiwicHJlcGFyZWQiLCJzdGFydGVkIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOztBQUVBQSxRQUFRLENBQUMsdUJBQUQsRUFBMEIsTUFBTTtBQUN0QyxNQUFJQyxJQUFKO0FBRUFDLEVBQUFBLFVBQVUsQ0FBQyxNQUFNO0FBQ2ZELElBQUFBLElBQUksR0FBRztBQUFFRSxNQUFBQSxJQUFJLEVBQUVDO0FBQVIsS0FBUDtBQUNELEdBRlMsQ0FBVjtBQUtBQyxFQUFBQSxFQUFFLENBQUMsUUFBRCxFQUFXLE1BQU07QUFDakJDLElBQUFBLE1BQU0sQ0FBQ0MsT0FBRCxDQUFOLENBQWNDLEVBQWQsQ0FBaUJDLEVBQWpCLENBQW9CQyxDQUFwQixDQUFzQixVQUF0QjtBQUNELEdBRkMsQ0FBRjtBQUlBTCxFQUFBQSxFQUFFLENBQUMsb0JBQUQsRUFBdUIsTUFBTTtBQUM3QkMsSUFBQUEsTUFBTSxDQUFDLE1BQU0sSUFBSUMsT0FBSixDQUFVTixJQUFWLENBQVAsQ0FBTixDQUE4Qk8sRUFBOUIsQ0FBaUNHLEdBQWpDLENBQXFDQyxLQUFyQztBQUNELEdBRkMsQ0FBRjtBQUlB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LEVBQUFBLEVBQUUsQ0FBQyxnQ0FBRCxFQUFtQyxNQUFNO0FBQ3pDLFVBQU1rQixLQUFLLEdBQUcsSUFBSWhCLE9BQUosQ0FBVU4sSUFBVixDQUFkO0FBRUFLLElBQUFBLE1BQU0sQ0FBQyxNQUFNO0FBQ1hpQixNQUFBQSxLQUFLLENBQUNvQixPQUFOLEdBQWdCLElBQWhCO0FBQ0QsS0FGSyxDQUFOLENBRUduQyxFQUZILENBRU1JLEtBRk47QUFHRCxHQU5DLENBQUY7QUFPRCxDQW5KTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RkU2VyaWFsaXplcnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHsgQXRsYXMgfSBmcm9tICcuLidcbmltcG9ydCB7IEZyYW1ld29ya0Vycm9yIH0gZnJvbSAnQGF0bGFzLmpzL2Vycm9ycydcblxuZGVzY3JpYmUoJ0F0bGFzOiBiYXNpY3MgYW5kIEFQSScsICgpID0+IHtcbiAgbGV0IG9wdHNcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvcHRzID0geyByb290OiBfX2Rpcm5hbWUgfVxuICB9KVxuXG5cbiAgaXQoJ2V4aXN0cycsICgpID0+IHtcbiAgICBleHBlY3QoQXRsYXMpLnRvLmJlLmEoJ2Z1bmN0aW9uJylcbiAgfSlcblxuICBpdCgnY2FuIGJlIGNvbnN0cnVjdGVkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBuZXcgQXRsYXMob3B0cykpLnRvLm5vdC50aHJvdygpXG4gIH0pXG5cbiAgaXQoJ3JlcXVpcmVzIHJvb3Qgb24gY29uc3RydWN0aW9uJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBuZXcgQXRsYXMoKSkudG8udGhyb3coRnJhbWV3b3JrRXJyb3IsIC9yb290IG11c3QgYmUgZXhwbGljaXRseSBzcGVjaWZpZWQvdSlcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gZW52IGlzIG5vdCBwcm92aWRlZCBhbmQgTk9ERV9FTlYgaXMgbm90IHNldCcsIGZ1bmN0aW9uKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm9jZXNzLWVudlxuICAgIHRoaXMuc2FuZGJveC5zdHViKHByb2Nlc3MuZW52LCAnTk9ERV9FTlYnKS52YWx1ZSgnJylcbiAgICBleHBlY3QoKCkgPT4gbmV3IEF0bGFzKG9wdHMpKS50by50aHJvdyhGcmFtZXdvcmtFcnJvciwgL2VudiBub3Qgc3BlY2lmaWVkL3UpXG4gIH0pXG5cbiAgaXQoJ3N1cHBvcnRzIGxvYWRpbmcgdGhlIGNvbmZpZyBmcm9tIG1vZHVsZSBwYXRoIHJlbGF0aXZlIHRvIHJvb3QnLCAoKSA9PiB7XG4gICAgLy8gU2FuaXR5IGNoZWNrXG4gICAgY29uc3QgbW9kdWxlcyA9IHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIGdsb2JhbC1yZXF1aXJlICovXG4gICAgICBiYXNlOiByZXF1aXJlKCcuL2RlbW9jb25maWcnKSxcbiAgICAgIGVudjogcmVxdWlyZSgnLi9kZW1vY29uZmlnL2Vudi9sb2xlbnYnKSxcbiAgICAgIGxvY2FsOiByZXF1aXJlKCcuL2RlbW9jb25maWcvbG9jYWwnKSxcbiAgICAgIC8qIGVzbGludC1lbmFibGUgZ2xvYmFsLXJlcXVpcmUgKi9cbiAgICB9XG4gICAgZXhwZWN0KG1vZHVsZXMuYmFzZS5hdGxhcykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUJhc2UnLCB0cnVlKVxuICAgIGV4cGVjdChtb2R1bGVzLmJhc2UuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21FbnYnLCBmYWxzZSlcbiAgICBleHBlY3QobW9kdWxlcy5iYXNlLmF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdmcm9tTG9jYWwnLCBmYWxzZSlcbiAgICBleHBlY3QobW9kdWxlcy5lbnYuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21FbnYnLCB0cnVlKVxuICAgIGV4cGVjdChtb2R1bGVzLmVudi5hdGxhcykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUxvY2FsJywgZmFsc2UpXG4gICAgZXhwZWN0KG1vZHVsZXMubG9jYWwuYXRsYXMpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21Mb2NhbCcsIHRydWUpXG5cbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyh7XG4gICAgICByb290OiBfX2Rpcm5hbWUsXG4gICAgICBlbnY6ICdsb2xlbnYnLFxuICAgICAgY29uZmlnOiAnZGVtb2NvbmZpZycsXG4gICAgfSlcbiAgICBjb25zdCBjb25maWcgPSBhdGxhcy5jb25maWcuYXRsYXNcblxuICAgIGV4cGVjdChjb25maWcpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21CYXNlJywgdHJ1ZSlcbiAgICBleHBlY3QoY29uZmlnKS50by5oYXZlLnByb3BlcnR5KCdmcm9tRW52JywgdHJ1ZSlcbiAgICBleHBlY3QoY29uZmlnKS50by5oYXZlLnByb3BlcnR5KCdmcm9tTG9jYWwnLCB0cnVlKVxuICB9KVxuXG4gIGl0KCdwcmVmZXJzIEVTIG1vZHVsZSBkZWZhdWx0IGV4cG9ydCBpbiB0aGUgY29uZmlnIGZpbGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1vZHVsZXMgPSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmVcbiAgICAgIGVudjogcmVxdWlyZSgnLi9kZW1vY29uZmlnL2Vudi9tb2RlbnYnKS5kZWZhdWx0LFxuICAgIH1cblxuICAgIGV4cGVjdChtb2R1bGVzLmVudi5hdGxhcykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUVudicsIHRydWUpXG4gICAgZXhwZWN0KG1vZHVsZXMuZW52LmF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdmcm9tTG9jYWwnLCBmYWxzZSlcblxuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKHtcbiAgICAgIHJvb3Q6IF9fZGlybmFtZSxcbiAgICAgIGVudjogJ21vZGVudicsXG4gICAgICBjb25maWc6ICdkZW1vY29uZmlnJyxcbiAgICB9KVxuICAgIGNvbnN0IGNvbmZpZyA9IGF0bGFzLmNvbmZpZy5hdGxhc1xuXG4gICAgZXhwZWN0KGNvbmZpZykudG8uaGF2ZS5wcm9wZXJ0eSgnZnJvbUJhc2UnLCB0cnVlKVxuICAgIGV4cGVjdChjb25maWcpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21FbnYnLCB0cnVlKVxuICAgIGV4cGVjdChjb25maWcpLnRvLmhhdmUucHJvcGVydHkoJ2Zyb21Mb2NhbCcsIHRydWUpXG4gIH0pXG5cbiAgaXQoJ3N1cHBvcnRzIGxvYWRpbmcgUGlubyBsb2cgc2VyaWFsaXNlcnMgZnJvbSBtb2R1bGUgcGF0aCByZWxhdGl2ZSB0byByb290JywgKCkgPT4ge1xuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKHtcbiAgICAgIHJvb3Q6IF9fZGlybmFtZSxcbiAgICAgIGVudjogJ2xvbGVudicsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgYXRsYXM6IHtcbiAgICAgICAgICBsb2c6IHtcbiAgICAgICAgICAgIHNlcmlhbGl6ZXJzOiAnZGVtb2NvbmZpZy9zZXJpYWxpc2VycycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgICBjb25zdCBjb25maWcgPSBhdGxhcy5jb25maWcuYXRsYXNcblxuICAgIGV4cGVjdChjb25maWcubG9nLnNlcmlhbGl6ZXJzKS50by5iZS5hbignb2JqZWN0JylcbiAgICBleHBlY3QoY29uZmlnLmxvZy5zZXJpYWxpemVycykudG8uaGF2ZS5hbGwua2V5cyhbJ2VycicsICdyZXEnLCAncmVzJywgJ2N1c3RvbSddKVxuICAgIGV4cGVjdChjb25maWcubG9nLnNlcmlhbGl6ZXJzLmVycikudG8uZXF1YWwoJ292ZXJyaWRlbicpXG4gICAgZXhwZWN0KGNvbmZpZy5sb2cuc2VyaWFsaXplcnMucmVxKS50by5lcXVhbChzdGRTZXJpYWxpemVycy5yZXEpXG4gICAgZXhwZWN0KGNvbmZpZy5sb2cuc2VyaWFsaXplcnMucmVzKS50by5lcXVhbChzdGRTZXJpYWxpemVycy5yZXMpXG4gIH0pXG5cbiAgaXQoJ3Jlc3BvbmRzIHRvIGtub3duIG1ldGhvZHMnLCAoKSA9PiB7XG4gICAgY29uc3QgYXRsYXMgPSBuZXcgQXRsYXMob3B0cylcblxuICAgIGV4cGVjdChhdGxhcykudG8ucmVzcG9uZFRvKCdwcmVwYXJlJylcbiAgICBleHBlY3QoYXRsYXMpLnRvLnJlc3BvbmRUbygnc3RhcnQnKVxuICAgIGV4cGVjdChhdGxhcykudG8ucmVzcG9uZFRvKCdzdG9wJylcbiAgfSlcblxuICBpdCgnaGFzIGtub3duIHB1YmxpYyBwcm9wZXJ0aWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKG9wdHMpXG5cbiAgICBleHBlY3QoYXRsYXMpLnRvLmluY2x1ZGUuYWxsLmtleXMoW1xuICAgICAgJ2FjdGlvbnMnLFxuICAgICAgJ3NlcnZpY2VzJyxcbiAgICAgICdjb25maWcnLFxuICAgICAgJ2xvZycsXG4gICAgICAndmFsaWRhdG9yJyxcbiAgICBdKVxuICAgIC8vIEltcGxlbWVudGVkIGFzIGdldHRlcnMsIGFuZCBDaGFpIGRvZXMgbm90IHNlZW0gdG8gd29yayB3aXRoIHRoZW0gd2hlbiBjaGVja2luZyBmb3IgLmtleXMoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm9jZXNzLWVudlxuICAgIGV4cGVjdChhdGxhcy5lbnYpLnRvLmVxdWFsKHByb2Nlc3MuZW52Lk5PREVfRU5WKS5hbmQudG8uYmUuYSgnc3RyaW5nJylcbiAgICBleHBlY3QoYXRsYXMucm9vdCkudG8uZXF1YWwoX19kaXJuYW1lKVxuICAgIGV4cGVjdChhdGxhcy5wcmVwYXJlZCkudG8uZXF1YWwoZmFsc2UpXG4gICAgZXhwZWN0KGF0bGFzLnN0YXJ0ZWQpLnRvLmVxdWFsKGZhbHNlKVxuICB9KVxuXG4gIGl0KCdjb25zdHJ1Y3RzIGEgbG9nIG9iamVjdCBvbiB0aGlzLmxvZycsICgpID0+IHtcbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyhvcHRzKVxuXG4gICAgZXhwZWN0KGF0bGFzKS50by5oYXZlLnByb3BlcnR5KCdsb2cnKVxuICAgIGV4cGVjdChhdGxhcy5sb2cpLnRvLnJlc3BvbmRUbygnZGVidWcnKVxuICAgIGV4cGVjdChhdGxhcy5sb2cpLnRvLnJlc3BvbmRUbygnaW5mbycpXG4gICAgZXhwZWN0KGF0bGFzLmxvZykudG8ucmVzcG9uZFRvKCd3YXJuJylcbiAgICBleHBlY3QoYXRsYXMubG9nKS50by5yZXNwb25kVG8oJ2Vycm9yJylcbiAgfSlcblxuICBpdCgncHJldmVudHMgc2V0dGluZyBhdGxhcy5wcmVwYXJlZCcsICgpID0+IHtcbiAgICBjb25zdCBhdGxhcyA9IG5ldyBBdGxhcyhvcHRzKVxuXG4gICAgZXhwZWN0KCgpID0+IHtcbiAgICAgIGF0bGFzLnByZXBhcmVkID0gdHJ1ZVxuICAgIH0pLnRvLnRocm93KClcbiAgfSlcblxuICBpdCgncHJldmVudHMgc2V0dGluZyBhdGxhcy5zdGFydGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGF0bGFzID0gbmV3IEF0bGFzKG9wdHMpXG5cbiAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgYXRsYXMuc3RhcnRlZCA9IHRydWVcbiAgICB9KS50by50aHJvdygpXG4gIH0pXG59KVxuIl19

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

});
Object.defineProperty(exports, "dummy", {
enumerable: true,
get: function () {
return _dummy.default;
}
});
exports.default = void 0;
var _dummy = require("./dummy");
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4Lm1qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkdW1teSBmcm9tICcuL2R1bW15J1xuXG5leHBvcnQge1xuICBkdW1teSxcbn1cbiJdfQ==
var _default = {
dummy: _dummy.default
};
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4Lm1qcyJdLCJuYW1lcyI6WyJkdW1teSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztlQUVlO0FBQ2JBLEVBQUFBLEtBQUssRUFBTEE7QUFEYSxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGR1bW15IGZyb20gJy4vZHVtbXknXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZHVtbXksXG59XG4iXX0=

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

var testservices = require("./demoapp/services");
var _services = require("./demoapp/services");

@@ -49,3 +49,3 @@ var testactions = require("./demoapp/actions");

for (const [name, Component] of Object.entries(testservices)) {
for (const [name, Component] of Object.entries(_services.default)) {
const aliases = testaliases.services[name];

@@ -130,2 +130,2 @@ expect(proto.service).to.have.been.calledWith(name, Component, {

});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluaXQudGVzdC5tanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJiZWZvcmVFYWNoIiwic2FuZGJveCIsInN0dWIiLCJBdGxhcyIsInByb3RvdHlwZSIsInJldHVybnNUaGlzIiwiaXQiLCJleHBlY3QiLCJpdHNlbGYiLCJ0byIsInJlc3BvbmRUbyIsImluaXQiLCJlbnYiLCJ0aHJvdyIsIkZyYW1ld29ya0Vycm9yIiwibm90IiwiVHlwZUVycm9yIiwicHJvdG8iLCJyb290IiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJhdGxhcyIsImNvbmZpZyIsImhvb2tzIiwiYWN0aW9ucyIsInNlcnZpY2VzIiwiYWxpYXNlcyIsIm5hbWUiLCJDb21wb25lbnQiLCJPYmplY3QiLCJlbnRyaWVzIiwidGVzdHNlcnZpY2VzIiwidGVzdGFsaWFzZXMiLCJzZXJ2aWNlIiwiaGF2ZSIsImJlZW4iLCJjYWxsZWRXaXRoIiwidGVzdGFjdGlvbnMiLCJhY3Rpb24iLCJ0ZXN0aG9va3MiLCJob29rIiwiYWxsIiwia2V5cyIsImluY2x1ZGUiLCJlcWwiLCJkdW1teSIsInRlc3QiLCJvdmVycmlkZSIsInByZXBhcmUiLCJ0eXBlcyIsInR5cGUiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUFBLFFBQVEsQ0FBQyxlQUFELEVBQWtCLE1BQU07QUFDOUJDLEVBQUFBLFVBQVUsQ0FBQyxZQUFXO0FBQ3BCLFNBQUtDLE9BQUwsQ0FBYUMsSUFBYixDQUFrQkMsUUFBTUMsU0FBeEIsRUFBbUMsUUFBbkMsRUFBNkNDLFdBQTdDO0FBQ0EsU0FBS0osT0FBTCxDQUFhQyxJQUFiLENBQWtCQyxRQUFNQyxTQUF4QixFQUFtQyxNQUFuQyxFQUEyQ0MsV0FBM0M7QUFDQSxTQUFLSixPQUFMLENBQWFDLElBQWIsQ0FBa0JDLFFBQU1DLFNBQXhCLEVBQW1DLFNBQW5DLEVBQThDQyxXQUE5QztBQUNELEdBSlMsQ0FBVjtBQU9BQyxF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UkMsQ0FBRjtBQVNEO0FBQ0YsR0FqQ08sQ0FBUjtBQWtDRCxDQWpITyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgRnJhbWV3b3JrRXJyb3IgfSBmcm9tICdAYXRsYXMuanMvZXJyb3JzJ1xuaW1wb3J0IHsgQXRsYXMgfSBmcm9tICcuLi8uLidcbmltcG9ydCAqIGFzIHRlc3RzZXJ2aWNlcyBmcm9tICcuL2RlbW9hcHAvc2VydmljZXMnXG5pbXBvcnQgKiBhcyB0ZXN0YWN0aW9ucyBmcm9tICcuL2RlbW9hcHAvYWN0aW9ucydcbmltcG9ydCAqIGFzIHRlc3Rob29rcyBmcm9tICcuL2RlbW9hcHAvaG9va3MnXG5pbXBvcnQgKiBhcyB0ZXN0YWxpYXNlcyBmcm9tICcuL2RlbW9hcHAvYWxpYXNlcydcblxuZGVzY3JpYmUoJ0F0bGFzOjppbml0KCknLCAoKSA9PiB7XG4gIGJlZm9yZUVhY2goZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5zYW5kYm94LnN0dWIoQXRsYXMucHJvdG90eXBlLCAnYWN0aW9uJykucmV0dXJuc1RoaXMoKVxuICAgIHRoaXMuc2FuZGJveC5zdHViKEF0bGFzLnByb3RvdHlwZSwgJ2hvb2snKS5yZXR1cm5zVGhpcygpXG4gICAgdGhpcy5zYW5kYm94LnN0dWIoQXRsYXMucHJvdG90eXBlLCAnc2VydmljZScpLnJldHVybnNUaGlzKClcbiAgfSlcblxuXG4gIGl0KCdleGlzdHMnLCAoKSA9PiB7XG4gICAgZXhwZWN0KEF0bGFzKS5pdHNlbGYudG8ucmVzcG9uZFRvKCdpbml0JylcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gbm8gcm9vdCBpcyBwcm92aWRlZCcsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT4gQXRsYXMuaW5pdCh7IGVudjogJ3Rlc3QnIH0pKVxuICAgICAgLnRvLnRocm93KEZyYW1ld29ya0Vycm9yLCAvcm9vdCBtdXN0IGJlIGV4cGxpY2l0bHkgc3BlY2lmaWVkL3UpXG4gIH0pXG5cbiAgaXQoJ2RvZXMgbm90IHRocm93IFR5cGVFcnJvciB3aGVuIG9wdGlvbnMgaXMgbm90IHByb3ZpZGVkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBBdGxhcy5pbml0KCkpLnRvLm5vdC50aHJvdyhUeXBlRXJyb3IpXG4gIH0pXG5cbiAgaXQoJ2xvYWRzIGFsbCBhY3Rpb25zLCBob29rcyBhbmQgc2VydmljZXMgZnJvbSB0aGUgc3BlY2lmaWVkIGxvY2F0aW9ucycsICgpID0+IHtcbiAgICBjb25zdCBwcm90byA9IEF0bGFzLnByb3RvdHlwZVxuICAgIGNvbnN0IHJvb3QgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnZGVtb2FwcCcpXG4gICAgY29uc3QgYXRsYXMgPSBBdGxhcy5pbml0KHtcbiAgICAgIHJvb3QsXG4gICAgICBlbnY6ICd0ZXN0JyxcbiAgICAgIGNvbmZpZzogJ2NvbmZpZycsXG4gICAgICBob29rczogJ2hvb2tzJyxcbiAgICAgIGFjdGlvbnM6ICdhY3Rpb25zJyxcbiAgICAgIHNlcnZpY2VzOiAnc2VydmljZXMnLFxuICAgICAgYWxpYXNlczogJ2FsaWFzZXMnLFxuICAgIH0pXG5cbiAgICAvLyBUZXN0IHNlcnZpY2VzXG4gICAgZm9yIChjb25zdCBbbmFtZSwgQ29tcG9uZW50XSBvZiBPYmplY3QuZW50cmllcyh0ZXN0c2VydmljZXMpKSB7XG4gICAgICBjb25zdCBhbGlhc2VzID0gdGVzdGFsaWFzZXMuc2VydmljZXNbbmFtZV1cbiAgICAgIGV4cGVjdChwcm90by5zZXJ2aWNlKS50by5oYXZlLmJlZW4uY2FsbGVkV2l0aChuYW1lLCBDb21wb25lbnQsIHsgYWxpYXNlcyB9KVxuICAgIH1cbiAgICAvLyBUZXN0IGFjdGlvbnNcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBDb21wb25lbnRdIG9mIE9iamVjdC5lbnRyaWVzKHRlc3RhY3Rpb25zKSkge1xuICAgICAgY29uc3QgYWxpYXNlcyA9IHRlc3RhbGlhc2VzLmFjdGlvbnNbbmFtZV1cbiAgICAgIGV4cGVjdChwcm90by5hY3Rpb24pLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKG5hbWUsIENvbXBvbmVudCwgeyBhbGlhc2VzIH0pXG4gICAgfVxuICAgIC8vIFRlc3QgaG9va3NcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBDb21wb25lbnRdIG9mIE9iamVjdC5lbnRyaWVzKHRlc3Rob29rcykpIHtcbiAgICAgIGNvbnN0IGFsaWFzZXMgPSB0ZXN0YWxpYXNlcy5ob29rc1tuYW1lXVxuICAgICAgZXhwZWN0KHByb3RvLmhvb2spLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKG5hbWUsIENvbXBvbmVudCwgeyBhbGlhc2VzIH0pXG4gICAgfVxuXG4gICAgLy8gU3R1ZmYgZGlyZWN0bHkgb24gYXRsYXNcbiAgICBleHBlY3QoYXRsYXMuY29uZmlnKS50by5oYXZlLmFsbC5rZXlzKFsnYXRsYXMnLCAnc2VydmljZXMnLCAnaG9va3MnLCAnYWN0aW9ucyddKVxuICAgIGV4cGVjdChhdGxhcy5jb25maWcuYXRsYXMpLnRvLmluY2x1ZGUua2V5cyhbJ3Rlc3QnLCAnb3ZlcnJpZGUnXSlcbiAgICBleHBlY3QoYXRsYXMuY29uZmlnLnNlcnZpY2VzKS50by5lcWwoeyBkdW1teToge1xuICAgICAgdGVzdDogdHJ1ZSxcbiAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIH0gfSlcbiAgICBleHBlY3QoYXRsYXMuY29uZmlnLmhvb2tzKS50by5lcWwoeyBkdW1teToge1xuICAgICAgdGVzdDogdHJ1ZSxcbiAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIH0gfSlcbiAgICBleHBlY3QoYXRsYXMuY29uZmlnLmFjdGlvbnMpLnRvLmVxbCh7IGR1bW15OiB7XG4gICAgICB0ZXN0OiB0cnVlLFxuICAgICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgfSB9KVxuICB9KVxuXG4gIGl0KCdwcm92aWRlcyBkZWZhdWx0cyBmb3IgcGF0aHMgdG8gc2VydmljZXMsIGhvb2tzLCBhY3Rpb25zLCBhbGlhc2VzIGFuZCBjb25maWcgZGlycycsICgpID0+IHtcbiAgICBjb25zdCByb290ID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ2RlbW9hcHAnKVxuICAgIGNvbnN0IGF0bGFzID0gQXRsYXMuaW5pdCh7XG4gICAgICByb290LFxuICAgICAgZW52OiAndGVzdCcsXG4gICAgfSlcblxuICAgIC8vIFNob3VsZCBub3QgdGhyb3dcbiAgICByZXR1cm4gYXRsYXMucHJlcGFyZSgpXG4gIH0pXG5cblxuICBkZXNjcmliZSgnRXhjZXB0aW9uIGhhbmRsaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IHJvb3QgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnZGVtb2FwcCcpXG4gICAgY29uc3QgdHlwZXMgPSBbXG4gICAgICAnY29uZmlnJyxcbiAgICAgICdzZXJ2aWNlcycsXG4gICAgICAnYWN0aW9ucycsXG4gICAgICAnaG9va3MnLFxuICAgICAgJ2FsaWFzZXMnLFxuICAgIF1cblxuICAgIGZvciAoY29uc3QgdHlwZSBvZiB0eXBlcykge1xuICAgICAgaXQoYGRvZXMgbm90IHRocm93IHdoZW4gJHt0eXBlfSBtb2R1bGUgZG9lcyBub3QgZXhpc3RgLCAoKSA9PiB7XG4gICAgICAgIEF0bGFzLmluaXQoe1xuICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgZW52OiAndGVzdCcsXG4gICAgICAgICAgY29uZmlnOiAnbG9sY29uZicsXG4gICAgICAgICAgc2VydmljZXM6ICdsb2xzZXJ2JyxcbiAgICAgICAgICBhY3Rpb25zOiAnbG9sYWN0aW9ucycsXG4gICAgICAgICAgaG9va3M6ICdsb2xob29rcycsXG4gICAgICAgICAgYWxpYXNlczogJ2xvbGFsaWFzZXMnLFxuICAgICAgICB9KVxuICAgICAgfSlcblxuICAgICAgaXQoYHRocm93cyB3aGVuICR7dHlwZX0gbW9kdWxlIGNvbnRhaW5zIGVycm9yc2AsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgICBBdGxhcy5pbml0KHtcbiAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICBlbnY6ICd0ZXN0JyxcbiAgICAgICAgICAgIFt0eXBlXTogJ3dpbGwtdGhyb3cnLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0pLnRvLnRocm93KClcbiAgICAgIH0pXG4gICAgfVxuICB9KVxufSlcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluaXQudGVzdC5tanMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJiZWZvcmVFYWNoIiwic2FuZGJveCIsInN0dWIiLCJBdGxhcyIsInByb3RvdHlwZSIsInJldHVybnNUaGlzIiwiaXQiLCJleHBlY3QiLCJpdHNlbGYiLCJ0byIsInJlc3BvbmRUbyIsImluaXQiLCJlbnYiLCJ0aHJvdyIsIkZyYW1ld29ya0Vycm9yIiwibm90IiwiVHlwZUVycm9yIiwicHJvdG8iLCJyb290IiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJhdGxhcyIsImNvbmZpZyIsImhvb2tzIiwiYWN0aW9ucyIsInNlcnZpY2VzIiwiYWxpYXNlcyIsIm5hbWUiLCJDb21wb25lbnQiLCJPYmplY3QiLCJlbnRyaWVzIiwidGVzdHNlcnZpY2VzIiwidGVzdGFsaWFzZXMiLCJzZXJ2aWNlIiwiaGF2ZSIsImJlZW4iLCJjYWxsZWRXaXRoIiwidGVzdGFjdGlvbnMiLCJhY3Rpb24iLCJ0ZXN0aG9va3MiLCJob29rIiwiYWxsIiwia2V5cyIsImluY2x1ZGUiLCJlcWwiLCJkdW1teSIsInRlc3QiLCJvdmVycmlkZSIsInByZXBhcmUiLCJ0eXBlcyIsInR5cGUiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUFBLFFBQVEsQ0FBQyxlQUFELEVBQWtCLE1BQU07QUFDOUJDLEVBQUFBLFVBQVUsQ0FBQyxZQUFXO0FBQ3BCLFNBQUtDLE9BQUwsQ0FBYUMsSUFBYixDQUFrQkMsUUFBTUMsU0FBeEIsRUFBbUMsUUFBbkMsRUFBNkNDLFdBQTdDO0FBQ0EsU0FBS0osT0FBTCxDQUFhQyxJQUFiLENBQWtCQyxRQUFNQyxTQUF4QixFQUFtQyxNQUFuQyxFQUEyQ0MsV0FBM0M7QUFDQSxTQUFLSixPQUFMLENBQWFDLElBQWIsQ0FBa0JDLFFBQU1DLFNBQXhCLEVBQW1DLFNBQW5DLEVBQThDQyxXQUE5QztBQUNELEdBSlMsQ0FBVjtBQU9BQyxF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QVJDLENBQUY7QUFTRDtBQUNGLEdBakNPLENBQVI7QUFrQ0QsQ0FqSE8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IEZyYW1ld29ya0Vycm9yIH0gZnJvbSAnQGF0bGFzLmpzL2Vycm9ycydcbmltcG9ydCB7IEF0bGFzIH0gZnJvbSAnLi4vLi4nXG5pbXBvcnQgdGVzdHNlcnZpY2VzIGZyb20gJy4vZGVtb2FwcC9zZXJ2aWNlcydcbmltcG9ydCAqIGFzIHRlc3RhY3Rpb25zIGZyb20gJy4vZGVtb2FwcC9hY3Rpb25zJ1xuaW1wb3J0ICogYXMgdGVzdGhvb2tzIGZyb20gJy4vZGVtb2FwcC9ob29rcydcbmltcG9ydCAqIGFzIHRlc3RhbGlhc2VzIGZyb20gJy4vZGVtb2FwcC9hbGlhc2VzJ1xuXG5kZXNjcmliZSgnQXRsYXM6OmluaXQoKScsICgpID0+IHtcbiAgYmVmb3JlRWFjaChmdW5jdGlvbigpIHtcbiAgICB0aGlzLnNhbmRib3guc3R1YihBdGxhcy5wcm90b3R5cGUsICdhY3Rpb24nKS5yZXR1cm5zVGhpcygpXG4gICAgdGhpcy5zYW5kYm94LnN0dWIoQXRsYXMucHJvdG90eXBlLCAnaG9vaycpLnJldHVybnNUaGlzKClcbiAgICB0aGlzLnNhbmRib3guc3R1YihBdGxhcy5wcm90b3R5cGUsICdzZXJ2aWNlJykucmV0dXJuc1RoaXMoKVxuICB9KVxuXG5cbiAgaXQoJ2V4aXN0cycsICgpID0+IHtcbiAgICBleHBlY3QoQXRsYXMpLml0c2VsZi50by5yZXNwb25kVG8oJ2luaXQnKVxuICB9KVxuXG4gIGl0KCd0aHJvd3Mgd2hlbiBubyByb290IGlzIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgIGV4cGVjdCgoKSA9PiBBdGxhcy5pbml0KHsgZW52OiAndGVzdCcgfSkpXG4gICAgICAudG8udGhyb3coRnJhbWV3b3JrRXJyb3IsIC9yb290IG11c3QgYmUgZXhwbGljaXRseSBzcGVjaWZpZWQvdSlcbiAgfSlcblxuICBpdCgnZG9lcyBub3QgdGhyb3cgVHlwZUVycm9yIHdoZW4gb3B0aW9ucyBpcyBub3QgcHJvdmlkZWQnLCAoKSA9PiB7XG4gICAgZXhwZWN0KCgpID0+IEF0bGFzLmluaXQoKSkudG8ubm90LnRocm93KFR5cGVFcnJvcilcbiAgfSlcblxuICBpdCgnbG9hZHMgYWxsIGFjdGlvbnMsIGhvb2tzIGFuZCBzZXJ2aWNlcyBmcm9tIHRoZSBzcGVjaWZpZWQgbG9jYXRpb25zJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb3RvID0gQXRsYXMucHJvdG90eXBlXG4gICAgY29uc3Qgcm9vdCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdkZW1vYXBwJylcbiAgICBjb25zdCBhdGxhcyA9IEF0bGFzLmluaXQoe1xuICAgICAgcm9vdCxcbiAgICAgIGVudjogJ3Rlc3QnLFxuICAgICAgY29uZmlnOiAnY29uZmlnJyxcbiAgICAgIGhvb2tzOiAnaG9va3MnLFxuICAgICAgYWN0aW9uczogJ2FjdGlvbnMnLFxuICAgICAgc2VydmljZXM6ICdzZXJ2aWNlcycsXG4gICAgICBhbGlhc2VzOiAnYWxpYXNlcycsXG4gICAgfSlcblxuICAgIC8vIFRlc3Qgc2VydmljZXNcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBDb21wb25lbnRdIG9mIE9iamVjdC5lbnRyaWVzKHRlc3RzZXJ2aWNlcykpIHtcbiAgICAgIGNvbnN0IGFsaWFzZXMgPSB0ZXN0YWxpYXNlcy5zZXJ2aWNlc1tuYW1lXVxuICAgICAgZXhwZWN0KHByb3RvLnNlcnZpY2UpLnRvLmhhdmUuYmVlbi5jYWxsZWRXaXRoKG5hbWUsIENvbXBvbmVudCwgeyBhbGlhc2VzIH0pXG4gICAgfVxuICAgIC8vIFRlc3QgYWN0aW9uc1xuICAgIGZvciAoY29uc3QgW25hbWUsIENvbXBvbmVudF0gb2YgT2JqZWN0LmVudHJpZXModGVzdGFjdGlvbnMpKSB7XG4gICAgICBjb25zdCBhbGlhc2VzID0gdGVzdGFsaWFzZXMuYWN0aW9uc1tuYW1lXVxuICAgICAgZXhwZWN0KHByb3RvLmFjdGlvbikudG8uaGF2ZS5iZWVuLmNhbGxlZFdpdGgobmFtZSwgQ29tcG9uZW50LCB7IGFsaWFzZXMgfSlcbiAgICB9XG4gICAgLy8gVGVzdCBob29rc1xuICAgIGZvciAoY29uc3QgW25hbWUsIENvbXBvbmVudF0gb2YgT2JqZWN0LmVudHJpZXModGVzdGhvb2tzKSkge1xuICAgICAgY29uc3QgYWxpYXNlcyA9IHRlc3RhbGlhc2VzLmhvb2tzW25hbWVdXG4gICAgICBleHBlY3QocHJvdG8uaG9vaykudG8uaGF2ZS5iZWVuLmNhbGxlZFdpdGgobmFtZSwgQ29tcG9uZW50LCB7IGFsaWFzZXMgfSlcbiAgICB9XG5cbiAgICAvLyBTdHVmZiBkaXJlY3RseSBvbiBhdGxhc1xuICAgIGV4cGVjdChhdGxhcy5jb25maWcpLnRvLmhhdmUuYWxsLmtleXMoWydhdGxhcycsICdzZXJ2aWNlcycsICdob29rcycsICdhY3Rpb25zJ10pXG4gICAgZXhwZWN0KGF0bGFzLmNvbmZpZy5hdGxhcykudG8uaW5jbHVkZS5rZXlzKFsndGVzdCcsICdvdmVycmlkZSddKVxuICAgIGV4cGVjdChhdGxhcy5jb25maWcuc2VydmljZXMpLnRvLmVxbCh7IGR1bW15OiB7XG4gICAgICB0ZXN0OiB0cnVlLFxuICAgICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgfSB9KVxuICAgIGV4cGVjdChhdGxhcy5jb25maWcuaG9va3MpLnRvLmVxbCh7IGR1bW15OiB7XG4gICAgICB0ZXN0OiB0cnVlLFxuICAgICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgfSB9KVxuICAgIGV4cGVjdChhdGxhcy5jb25maWcuYWN0aW9ucykudG8uZXFsKHsgZHVtbXk6IHtcbiAgICAgIHRlc3Q6IHRydWUsXG4gICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICB9IH0pXG4gIH0pXG5cbiAgaXQoJ3Byb3ZpZGVzIGRlZmF1bHRzIGZvciBwYXRocyB0byBzZXJ2aWNlcywgaG9va3MsIGFjdGlvbnMsIGFsaWFzZXMgYW5kIGNvbmZpZyBkaXJzJywgKCkgPT4ge1xuICAgIGNvbnN0IHJvb3QgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnZGVtb2FwcCcpXG4gICAgY29uc3QgYXRsYXMgPSBBdGxhcy5pbml0KHtcbiAgICAgIHJvb3QsXG4gICAgICBlbnY6ICd0ZXN0JyxcbiAgICB9KVxuXG4gICAgLy8gU2hvdWxkIG5vdCB0aHJvd1xuICAgIHJldHVybiBhdGxhcy5wcmVwYXJlKClcbiAgfSlcblxuXG4gIGRlc2NyaWJlKCdFeGNlcHRpb24gaGFuZGxpbmcnLCAoKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICdkZW1vYXBwJylcbiAgICBjb25zdCB0eXBlcyA9IFtcbiAgICAgICdjb25maWcnLFxuICAgICAgJ3NlcnZpY2VzJyxcbiAgICAgICdhY3Rpb25zJyxcbiAgICAgICdob29rcycsXG4gICAgICAnYWxpYXNlcycsXG4gICAgXVxuXG4gICAgZm9yIChjb25zdCB0eXBlIG9mIHR5cGVzKSB7XG4gICAgICBpdChgZG9lcyBub3QgdGhyb3cgd2hlbiAke3R5cGV9IG1vZHVsZSBkb2VzIG5vdCBleGlzdGAsICgpID0+IHtcbiAgICAgICAgQXRsYXMuaW5pdCh7XG4gICAgICAgICAgcm9vdCxcbiAgICAgICAgICBlbnY6ICd0ZXN0JyxcbiAgICAgICAgICBjb25maWc6ICdsb2xjb25mJyxcbiAgICAgICAgICBzZXJ2aWNlczogJ2xvbHNlcnYnLFxuICAgICAgICAgIGFjdGlvbnM6ICdsb2xhY3Rpb25zJyxcbiAgICAgICAgICBob29rczogJ2xvbGhvb2tzJyxcbiAgICAgICAgICBhbGlhc2VzOiAnbG9sYWxpYXNlcycsXG4gICAgICAgIH0pXG4gICAgICB9KVxuXG4gICAgICBpdChgdGhyb3dzIHdoZW4gJHt0eXBlfSBtb2R1bGUgY29udGFpbnMgZXJyb3JzYCwgKCkgPT4ge1xuICAgICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICAgIEF0bGFzLmluaXQoe1xuICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgIGVudjogJ3Rlc3QnLFxuICAgICAgICAgICAgW3R5cGVdOiAnd2lsbC10aHJvdycsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSkudG8udGhyb3coKVxuICAgICAgfSlcbiAgICB9XG4gIH0pXG59KVxuIl19

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc