You're Invited: Meet the Socket team at BSidesSF and RSAC - April 27 - May 1.RSVP
Socket
Sign inDemoInstall
Socket

@axway/amplify-sdk

Package Overview
Dependencies
Maintainers
14
Versions
68
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@axway/amplify-sdk - npm Package Compare versions

Comparing version

to
1.0.1

6

dist/index.js

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

for (const org of account.orgs) {
log(` ${highlight(org.name)} ${note(`(${org.org_id})`)}`);
log(` ${highlight(org.name)} ${note(`(${org.id})`)}`);
}

@@ -476,3 +476,3 @@

* @type {Auth}
* @access private
* @access public
*/

@@ -570,2 +570,2 @@

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIkVycm9yIiwicHJlcGFyZVN0YWNrVHJhY2UiLCJyZXF1aXJlIiwibG9nIiwiaGlnaGxpZ2h0IiwibWFnZW50YSIsIm5vdGUiLCJzbm9vcGxvZ2ciLCJzdHlsZXMiLCJBbXBsaWZ5U0RLIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiZW52IiwiZW52aXJvbm1lbnRzIiwicmVzb2x2ZSIsInBsYXRmb3JtVXJsIiwicmVwbGFjZSIsImF1dGgiLCJmaW5kIiwiYWNjb3VudE5hbWUiLCJhY2NvdW50IiwiY2xpZW50IiwibG9hZFNlc3Npb24iLCJsaXN0Iiwib3JnIiwib3JncyIsInVzZXIiLCJyZXF1ZXN0IiwiZ3VpZCIsImlkIiwib3JnX2lkIiwibmFtZSIsIm1hcCIsIk9iamVjdCIsImFzc2lnbiIsImF4d2F5SWQiLCJheHdheV9pZCIsImVtYWlsIiwiZmlyc3ROYW1lIiwiZmlyc3RuYW1lIiwiaXMyRkFFbmFibGVkIiwiZGlzYWJsZV8yZmEiLCJsYXN0TmFtZSIsImxhc3RuYW1lIiwib3JnYW5pemF0aW9uIiwidXBkYXRlQWNjb3VudCIsImUiLCJtZXNzYWdlIiwibG9naW4iLCJsb2dvdXQiLCJzZXJ2ZXJJbmZvIiwic3dpdGNoT3JnIiwib3JnSWQiLCJUeXBlRXJyb3IiLCJvcmdfbmFtZSIsImpzb24iLCJtYnNVc2VySGVscGVyIiwiZ3JvdXBJZCIsInVzZXJJbmZvIiwicmVzcG9uc2UiLCJ1c2VycyIsIm1icyIsImNyZWF0ZUFwcHMiLCJhcHBHdWlkIiwiYXBwTmFtZSIsImFwcF9ndWlkIiwiYXBwX25hbWUiLCJhcHBzIiwiY3JlYXRlVXNlciIsInBhc3N3b3JkIiwicGFzc3dvcmRfY29uZmlybWF0aW9uIiwiZ2V0VXNlcnMiLCJnZXRFbnZpcm9ubWVudHMiLCJ0aSIsImJ1aWxkVXBkYXRlIiwiZGF0YSIsImJ1aWxkSWQiLCJidWlsZFNIQSIsImtleXMiLCJidWlsZGlkIiwiYnVpbGRzaGEiLCJidWlsZFZlcmlmeSIsImtleSIsInMiLCJ0b0xvd2VyQ2FzZSIsIm1vZHVsZXMiLCJBcnJheSIsImlzQXJyYXkiLCJzb21lIiwibSIsIm9iaiIsImJpbmRpbmdzIiwiYXBwaWQiLCJhcHBJZCIsImRlcGxveXR5cGUiLCJkZXBsb3lUeXBlIiwiZmluZ2VycHJpbnQiLCJpcGFkZHJlc3MiLCJpcEFkZHJlc3MiLCJ0aWFwcHhtbCIsInRpYXBwIiwiZW5yb2xsIiwicmVzdWx0S2V5IiwiZ2V0QUNBVXBsb2FkVVJMIiwiZ2V0QXBwIiwiZ2V0QXBwVmVyaWZ5VVJMIiwiZ2V0RG93bmxvYWRzIiwic2V0QXBwIiwiX2NsaWVudCIsIkF1dGgiLCJlcnIiLCJjb2RlIiwiaXNXaW4iLCJwcm9jZXNzIiwicGxhdGZvcm0iLCJwYXRoIiwibWV0aG9kIiwic2lkIiwidG9rZW4iLCJ0b2tlbnMiLCJhY2Nlc3NfdG9rZW4iLCJ1cmwiLCJoZWFkZXJzIiwiQWNjZXB0IiwiQ29va2llIiwiQXV0aG9yaXphdGlvbiIsImdvdCIsInJlc3BvbnNlVHlwZSIsInJldHJ5IiwiY29va2llcyIsImNvbm5lY3RTaWQiLCJzZXRDb29raWUiLCJwYXJzZSIsImMiLCJ2YWx1ZSIsImJvZHkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7QUFWQTtBQUNBLElBQUksQ0FBQ0EsS0FBSyxDQUFDQyxpQkFBWCxFQUE4QjtBQUM3QkMsRUFBQUEsT0FBTyxDQUFDLDZCQUFELENBQVA7QUFDQTs7QUFTRCxNQUFNO0FBQUVDLEVBQUFBO0FBQUYsSUFBVSx3QkFBVSxhQUFWLENBQWhCO0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxTQUFGO0FBQWFDLEVBQUFBLE9BQWI7QUFBc0JDLEVBQUFBO0FBQXRCLElBQStCQyxtQkFBVUMsTUFBL0M7QUFFQTs7OztBQUdPLE1BQU1DLFVBQU4sQ0FBaUI7QUFDdkI7Ozs7Ozs7QUFPQUMsRUFBQUEsV0FBVyxDQUFDQyxJQUFELEVBQU87QUFDakI7Ozs7QUFJQSxTQUFLQSxJQUFMLEdBQVlBLElB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O0FBT0EsVUFBTUMsT0FBTyxHQUFHdEUsUUFBUSxDQUFDK0QsT0FBVCxDQUFpQixZQUFqQixDQUFoQjtBQUNBLFVBQU1RLFVBQVUsR0FBR0QsT0FBTyw4QkFBSUUseUJBQVVDLEtBQVYsQ0FBZ0JILE9BQWhCLEVBQXlCL0csSUFBekIsQ0FBOEJtSCxDQUFDLElBQUlBLENBQUMsQ0FBQ3RHLElBQUYsS0FBVyxhQUE5QyxDQUFKLDBEQUFJLHNCQUE4RHVHLEtBQWxFLENBQTFCOztBQUNBLFFBQUlKLFVBQUosRUFBZ0I7QUFDZi9ILE1BQUFBLEdBQUcsQ0FBRSxnQkFBZUMsU0FBUyxDQUFDOEgsVUFBRCxDQUFhLEVBQXZDLENBQUg7QUFDQTlHLE1BQUFBLE9BQU8sQ0FBQ2lHLEdBQVIsR0FBY2EsVUFBZDtBQUNBLFlBQU0sS0FBSzdHLE1BQUwsQ0FBWXdCLGFBQVosQ0FBMEJ6QixPQUExQixDQUFOO0FBQ0E7O0FBRUQsNkJBQU91QyxRQUFRLENBQUM0RSxJQUFoQixtREFBTyxlQUFnQmpDLFNBQWhCLENBQVA7QUFDQTs7QUEvY3NCOzs7ZUFrZFQ3RixVIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAoIUVycm9yLnByZXBhcmVTdGFja1RyYWNlKSB7XG5cdHJlcXVpcmUoJ3NvdXJjZS1tYXAtc3VwcG9ydC9yZWdpc3RlcicpO1xufVxuXG5pbXBvcnQgQXV0aCBmcm9tICdAYXh3YXkvYW1wbGlmeS1hdXRoLXNkayc7XG5pbXBvcnQgc2V0Q29va2llIGZyb20gJ3NldC1jb29raWUtcGFyc2VyJztcbmltcG9ydCBnb3QgZnJvbSAnZ290JztcbmltcG9ydCBzbm9vcGxvZ2cgZnJvbSAnc25vb3Bsb2dnJztcblxuaW1wb3J0ICogYXMgZW52aXJvbm1lbnRzIGZyb20gJy4vZW52aXJvbm1lbnRzJztcblxuY29uc3QgeyBsb2cgfSA9IHNub29wbG9nZygnYW1wbGlmeS1zZGsnKTtcbmNvbnN0IHsgaGlnaGxpZ2h0LCBtYWdlbnRhLCBub3RlIH0gPSBzbm9vcGxvZ2cuc3R5bGVzO1xuXG4vKipcbiAqIEFuIFNESyBmb3IgYWNjZXNzaW5nIEFNUExJRlkgQVBJJ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBBbXBsaWZ5U0RLIHtcblx0LyoqXG5cdCAqIEluaXRpYWxpemVzIHRoZSBlbnZpcm9ubWVudCBhbmQgU0RLJ3MgQVBJLlxuXHQgKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIEF1dGhlbnRpY2F0aW9uIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cy5lbnY9cHJvZF0gLSBUaGUgZW52aXJvbm1lbnQgbmFtZS5cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGNvbnN0cnVjdG9yKG9wdHMpIHtcblx0XHQvKipcblx0XHQgKiBBdXRoZW50aWNhdGlvbiBvcHRpb25zIGluY2x1ZGluZyBiYXNlVVJMLCBjbGllbnRJRCwgZW52LCByZWFsbSwgYW5kIHRva2VuIHN0b3JlIHNldHRpbmdzLlxuXHRcdCAqIEB0eXBlIHtPYmplY3R9XG5cdFx0ICovXG5cdFx0dGhpcy5vcHRzID0gb3B0cztcblxuXHRcdC8qKlxuXHRcdCAqIFJlc29sdmVkIGVudmlyb25tZW50LXNwZWNpZmljIHNldHRpbmdzLlxuXHRcdCAqIEB0eXBlIHtPYmplY3R9XG5cdFx0ICovXG5cdFx0dGhpcy5lbnYgPSBlbnZpcm9ubWVudHMucmVzb2x2ZShvcHRzLmVudik7XG5cblx0XHQvKipcblx0XHQgKiBUaGUgcGxhdGZvcm0gVVJMLlxuXHRcdCAqIEB0eXBlIHtTdHJpbmd9XG5cdFx0ICovXG5cdFx0dGhpcy5wbGF0Zm9ybVVybCA9IG9wdHMucGxhdGZvcm1VcmwgPyBvcHRzLnBsYXRmb3JtVXJsLnJlcGxhY2UoL1xcLyQvLCAnJykgOiBudWxsO1xuXG5cdFx0dGhpcy5hdXRoID0ge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBGaW5kcyBhbiBhdXRoZW50aWNhdGVkIGFjY291bnQgb3IgYG51bGxgIGlmIG5vdCBmb3VuZC4gSWYgdGhlIGFjY291bnQgaXMgZm91bmQgYW5kXG5cdFx0XHQgKiB0aGUgYWNjZXNzIHRva2VuIGlzIGV4cGlyZWQgeWV0IHRoZSByZWZyZXNoIHRva2VuIGlzIHN0aWxsIHZhbGlkLCBpdCB3aWxsXG5cdFx0XHQgKiBhdXRvbWF0aWNhbGx5IGdldCBhIHZhbGlkIGFjY2VzcyB0b2tlbi5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBhY2NvdW50TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBhY2NvdW50IGluY2x1ZGluZyB0aGUgY2xpZW50IGlkIHByZWZpeC5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc29sdmVzIHRoZSBhY2NvdW50IGluZm8gb2JqZWN0LlxuXHRcdFx0ICovXG5cdFx0XHRmaW5kOiBhc3luYyBhY2NvdW50TmFtZSA9PiB7XG5cdFx0XHRcdGNvbnN0IGFjY291bnQgPSBhd2FpdCB0aGlzLmNsaWVudC5maW5kKGFjY291bnROYW1lKTtcblx0XHRcdFx0cmV0dXJuIGFjY291bnQgPyBhd2FpdCB0aGlzLmF1dGgubG9hZFNlc3Npb24oYWNjb3VudCkgOiBudWxsO1xuXHRcdFx0fSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgYXV0aGVudGljYXRlZCBhY2NvdW50cy5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5Pn1cblx0XHRcdCAqL1xuXHRcdFx0bGlzdDogKCkgPT4gdGhpcy5jbGllbnQubGlzdCgpLFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIFBvcHVsYXRlcyB0aGUgc3BlY2lmaWVkIGFjY291bnQgaW5mbyBvYmplY3Qgd2l0aCBhIGRhc2hib2FyZCBzZXNzaW9uIGlkIGFuZCBvcmdcblx0XHRcdCAqIGluZm9ybWF0aW9uLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGFjY291bnQgLSBUaGUgYWNjb3VudCBvYmplY3QuXG5cdFx0XHQgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBSZXNvbHZlcyB0aGUgb3JpZ2luYWwgYWNjb3VudCBpbmZvIG9iamVjdC5cblx0XHRcdCAqL1xuXHRcdFx0bG9hZFNlc3Npb246IGFzeW5jIGFjY291bnQgPT4ge1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGNvbnN0IHsgb3JnLCBvcmdzLCB1c2VyIH0gPSBhd2FpdCB0aGlzLnJlcXVlc3QoJy9hcGkvdjEvYXV0aC9maW5kU2Vzc2lvbicsIGFjY291bnQpO1xuXG5cdFx0XHRcdFx0YWNjb3VudC5vcmcgPSB7XG5cdFx0XHRcdFx0XHRndWlkOiBvcmcuZ3VpZCxcblx0XHRcdFx0XHRcdGlkOiAgIG9yZy5vcmdfaWQsXG5cdFx0XHRcdFx0XHRuYW1lOiBvcmcubmFtZVxuXHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRsb2coYEN1cnJlbnQgb3JnOiAke2hpZ2hsaWdodChvcmcubmFtZSl9ICR7bm90ZShgKCR7b3JnLm9yZ19pZH0pYCl9YCk7XG5cdFx0XHRcdFx0YWNjb3VudC5vcmdzID0gb3Jncy5tYXAoKHsgZ3VpZCwgbmFtZSwgb3JnX2lkIH0pID0+ICh7IGd1aWQsIGlkOiBvcmdfaWQsIG5hbWUgfSkpO1xuXG5cdFx0XHRcdFx0bG9nKCdBdmFpbGFibGUgb3JnczonKTtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IG9yZyBvZiBhY2NvdW50Lm9yZ3MpIHtcblx0XHRcdFx0XHRcdGxvZyhgICAke2hpZ2hsaWdodChvcmcubmFtZSl9ICR7bm90ZShgKCR7b3JnLm9yZ19pZH0pYCl9YCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0T2JqZWN0LmFzc2lnbihhY2NvdW50LnVzZXIsIHtcblx0XHRcdFx0XHRcdGF4d2F5SWQ6ICAgICAgdXNlci5heHdheV9pZCxcblx0XHRcdFx0XHRcdGVtYWlsOiAgICAgICAgdXNlci5lbWFpbCxcblx0XHRcdFx0XHRcdGZpcnN0TmFtZTogICAgdXNlci5maXJzdG5hbWUsXG5cdFx0XHRcdFx0XHRndWlkOiAgICAgICAgIHVzZXIuZ3VpZCxcblx0XHRcdFx0XHRcdGlzMkZBRW5hYmxlZDogIXVzZXIuZGlzYWJsZV8yZmEsXG5cdFx0XHRcdFx0XHRsYXN0TmFtZTogICAgIHVzZXIubGFzdG5hbWUsXG5cdFx0XHRcdFx0XHRvcmdhbml6YXRpb246IHVzZXIub3JnYW5pemF0aW9uXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRhd2FpdCB0aGlzLmNsaWVudC51cGRhdGVBY2NvdW50KGFjY291bnQpO1xuXG5cdFx0XHRcdFx0cmV0dXJuIGFjY291bnQ7XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgc2Vzc2lvbjogJHtlLm1lc3NhZ2V9YCk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogQXV0aGVudGljYXRlcyBhIHVzZXIsIHJldHJpZXZlcyB0aGUgYWNjZXNzIHRva2VucywgcG9wdWxhdGVzIHRoZSBzZXNzaW9uIGlkIGFuZFxuXHRcdFx0ICogb3JnIGluZm8sIGFuZCByZXR1cm5zIGl0LlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBWYXJpb3VzIGF1dGhlbnRpY2F0aW9uIG9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHRzIHNldFxuXHRcdFx0ICogdmlhIHRoZSBjb25zdHJ1Y3Rvci4gU2VlIHRoZSBBTVBMSUZZIEF1dGggU0RLIChAYXh3YXkvYW1wbGlmeS1hdXRoLXNkaykgZm9yIG1vcmVcblx0XHRcdCAqIGRldGFpbHMuXG5cdFx0XHQgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBSZXNvbHZlcyB0aGUgYWNjb3VudCBpbmZvIG9iamVjdC5cblx0XHRcdCAqL1xuXHRcdFx0bG9naW46IGFzeW5jIG9wdHMgPT4ge1xuXHRcdFx0XHRjb25zdCBhY2NvdW50ID0gYXdhaXQgdGhpcy5jbGllbnQubG9naW4ob3B0cyk7XG5cdFx0XHRcdHJldHVybiBhd2FpdCB0aGlzLmF1dGgubG9hZFNlc3Npb24oYWNjb3VudCk7XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIERpc2NhcmRzIGFuIGFjY2VzcyB0b2tlbiBhbmQgbm90aWZpZXMgQXh3YXlJRCB0byByZXZva2UgdGhlIGFjY2VzcyB0b2tlbi5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVmFyaW91cyBhdXRoZW50aWNhdGlvbiBvcHRpb25zIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0cyBzZXRcblx0XHRcdCAqIHZpYSB0aGUgY29uc3RydWN0b3IuIFNlZSB0aGUgQU1QTElGWSBBdXRoIFNESyAoQGF4d2F5L2FtcGxpZnktYXV0aC1zZGspIGZvciBtb3JlXG5cdFx0XHQgKiBkZXRhaWxzLlxuXHRcdFx0ICogQHBhcmFtIHtBcnJheS48U3RyaW5nPnxTdHJpbmd9IG9wdHMuYWNjb3VudHMgLSBBIGxpc3Qgb2YgYWNjb3VudHMgbmFtZXMuXG5cdFx0XHQgKiBAcGFyYW0ge0Jvb2xlYW59IG9wdHMuYWxsIC0gV2hlbiBgdHJ1ZWAsIHJldm9rZXMgYWxsIGFjY291bnRzLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLmJhc2VVcmxdIC0gVGhlIGJhc2UgVVJMIHVzZWQgdG8gZmlsdGVyIGFjY291bnRzLlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gUmVzb2x2ZXMgYSBsaXN0IG9mIHJldm9rZWQgY3JlZGVudGlhbHMuXG5cdFx0XHQgKi9cblx0XHRcdGxvZ291dDogb3B0cyA9PiB0aGlzLmNsaWVudC5sb2dvdXQob3B0cyksXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogUmV0dXJucyBBeHdheUlEIHNlcnZlciBpbmZvcm1hdGlvbi5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVmFyaW91cyBhdXRoZW50aWNhdGlvbiBvcHRpb25zIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0cyBzZXRcblx0XHRcdCAqIHZpYSB0aGUgY29uc3RydWN0b3IuIFNlZSB0aGUgQU1QTElGWSBBdXRoIFNESyAoQGF4d2F5L2FtcGxpZnktYXV0aC1zZGspIGZvciBtb3JlXG5cdFx0XHQgKiBkZXRhaWxzLlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8b2JqZWN0Pn1cblx0XHRcdCAqL1xuXHRcdFx0c2VydmVySW5mbzogb3B0cyA9PiB0aGlzLmNsaWVudC5zZXJ2ZXJJbmZvKG9wdHMpLFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIFN3aXRjaGVzIHlvdXIgY3VycmVudCBvcmdhbml6YXRpb24uXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gYWNjb3VudCAtIFRoZSBhY2NvdW50IG9iamVjdC4gTm90ZSB0aGF0IHRoaXMgb2JqZWN0IHJlZmVyZW5jZSB3aWxsXG5cdFx0XHQgKiBiZSB1cGRhdGVzIHdpdGggbmV3IG9yZyBpbmZvLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IG9yZ0lkIC0gVGhlIG9yZyBpZCB0byBzd2l0Y2ggdG8uIE5vdGUgdGhpcyBpcyBOT1QgdGhlIG9yZyBndWlkLlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gUmVzb2x2ZXMgdGhlIHVwZGF0ZWQgYWNjb3VudCBvYmplY3QuXG5cdFx0XHQgKi9cblx0XHRcdHN3aXRjaE9yZzogYXN5bmMgKGFjY291bnQsIG9yZ0lkKSA9PiB7XG5cdFx0XHRcdGlmICghb3JnSWQgfHwgdHlwZW9mIG9yZ0lkICE9PSAnbnVtYmVyJykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIG9yZyBpZCcpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uc3QgeyBndWlkLCBvcmdfaWQsIG9yZ19uYW1lOiBuYW1lIH0gPSBhd2FpdCB0aGlzLnJlcXVlc3QoJy9hcGkvdjEvYXV0aC9zd2l0Y2hMb2dnZWRJbk9yZycsIGFjY291bnQsIHtcblx0XHRcdFx0XHRqc29uOiB7IG9yZ19pZDogb3JnSWQgfVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0YWNjb3VudC5vcmcgPSB7IGd1aWQsIG5hbWUsIG9yZ19pZCB9O1xuXHRcdFx0XHRhd2FpdCB0aGlzLmNsaWVudC51cGRhdGVBY2NvdW50KGFjY291bnQpO1xuXG5cdFx0XHRcdHJldHVybiBhY2NvdW50O1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRjb25zdCBtYnNVc2VySGVscGVyID0gYXN5bmMgKGFjY291bnQsIGdyb3VwSWQsIGVudiwgdXNlckluZm8pID0+IHtcblx0XHRcdGlmICghZ3JvdXBJZCB8fCB0eXBlb2YgZ3JvdXBJZCAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgZ3JvdXAgaWQgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nJyk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIWVudiB8fCB0eXBlb2YgZW52ICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBlbnYgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nJyk7XG5cdFx0XHR9XG5cblx0XHRcdGxldCBvcHRzID0gdXNlckluZm8gJiYgeyBqc29uOiB1c2VySW5mbyB9O1xuXHRcdFx0Y29uc3QgeyByZXNwb25zZSB9ID0gYXdhaXQgdGhpcy5yZXF1ZXN0KGAvYXBpL3YxL2Fjcy8ke2dyb3VwSWR9LyR7ZW52fS9kYXRhL3VzZXJgLCBhY2NvdW50LCBvcHRzKTtcblx0XHRcdHJldHVybiByZXNwb25zZS51c2Vycztcblx0XHR9O1xuXG5cdFx0dGhpcy5tYnMgPSB7XG5cdFx0XHQvKipcblx0XHRcdCAqIENyZWF0ZXMgYSBuZXcgTUJTIGFwcCBmb3IgZWFjaCBNQlMgZW52aXJvbm1lbnQuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gYWNjb3VudCAtIFRoZSBhY2NvdW50IG9iamVjdC5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBhcHBHdWlkIC0gVGhlIE1CUyBhcHAgZ3VpZC5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBhcHBOYW1lIC0gVGhlIE1CUyBuYW1lLlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8QXJyYXk+fSBSZXNvbHZlcyB0aGUgbGlzdCBvZiBjcmVhdGVkIGFwcHMuXG5cdFx0XHQgKi9cblx0XHRcdGNyZWF0ZUFwcHM6IGFzeW5jIChhY2NvdW50LCBhcHBHdWlkLCBhcHBOYW1lKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHsgcmVzcG9uc2UgfSA9IGF3YWl0IHRoaXMucmVxdWVzdCgnL2FwaS92MS9hY3MnLCBhY2NvdW50LCB7XG5cdFx0XHRcdFx0anNvbjoge1xuXHRcdFx0XHRcdFx0YXBwX2d1aWQ6IGFwcEd1aWQsXG5cdFx0XHRcdFx0XHRhcHBfbmFtZTogYXBwTmFtZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybiByZXNwb25zZS5hcHBzO1xuXHRcdFx0fSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBDcmVhdGVzIGFuIE1CUyB1c2VyLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGFjY291bnQgLSBUaGUgYWNjb3VudCBvYmplY3QuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZ3JvdXBJZCAtIFRoZSBNQlMgYXBwIGd1aWQgKGkuZS4gZ3JvdXAgaWQpLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IGVudiAtIFRoZSBNQlMgZW52aXJvbm1lbnQgKHByb2R1Y3Rpb24sIGRldmVsb3BtZW50LCBWUEMgbmFtZSkuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gdXNlckluZm8gLSBEZXRhaWxlZCB1c2VyIGluZm9ybWF0aW9uLlxuXHRcdFx0ICogQHBhcmFtIHs/fSBbdXNlckluZm8uYWRtaW5dIC0gQSBhZG1pbiBmbGFnIG9mIHNvbWUgc29ydC5cblx0XHRcdCAqIEBwYXJhbSB7P30gW3VzZXJJbmZvLmN1c3RvbV9maWVsZHNdIC0gQ3VzdG9tIGZpZWxkcyBvZiBzb21lIHNvcnQuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gW3VzZXJJbmZvLmVtYWlsXSAtIFRoZSB1c2VyJ3MgZW1haWwgYWRkcmVzcy5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBbdXNlckluZm8uZmlyc3RfbmFtZV0gLSBUaGUgdXNlcidzIGZpcnN0IG5hbWUuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gW3VzZXJJbmZvLmxhc3RfbmFtZV0gLSBUaGUgdXNlcidzIGxhc3QgbmFtZS5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSB1c2VySW5mby5wYXNzd29yZCAtIFRoZSB1c2VyJ3MgcGFzc3dvcmQuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gdXNlckluZm8ucGFzc3dvcmRfY29uZmlybWF0aW9uIC0gVGhlIHBhc3N3b3JkIGNvbmZpcm1hdGlvbi5cblx0XHRcdCAqIEBwYXJhbSB7P30gW3VzZXJJbmZvLnBob3RvX2lkXSAtIEEgcGhvdG8gaWQgb2Ygc29tZSBzb3J0LlxuXHRcdFx0ICogQHBhcmFtIHs/fSBbdXNlckluZm8ucm9sZV0gLSBUaGUgdXNlcidzIHJvbGUuXG5cdFx0XHQgKiBAcGFyYW0gez99IFt1c2VySW5mby50YWdzXSAtIE1ldGFkYXRhIG9mIHNvbWUgc29ydC5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBbdXNlckluZm8udXNlcm5hbWVdIC0gVGhlIHVzZXIncyB1c2VybmFtZS5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5Pn0gUmVzb2x2ZXMgdGhlIG5ld2x5IGNyZWF0ZWQgdXNlciByZWNvcmQgaW5jbHVkaW5nIHRoZSBgaWRgLFxuXHRcdFx0ICogYGZpcnN0X25hbWVgLCBgbGFzdF9uYW1lYCwgYGNyZWF0ZWRfYXRgLCBgdXBkYXRlZF9hdGAsIGBleHRlcm5hbF9hY2NvdW50c2AsXG5cdFx0XHQgKiBgY29uZmlybWVkX2F0YCwgYHVzZXJuYW1lYCwgYGVtYWlsYCwgYGFkbWluYCwgYHN0YXRzYCwgYW5kIGBmcmllbmRfY291bnRzYC5cblx0XHRcdCAqL1xuXHRcdFx0Y3JlYXRlVXNlcjogYXN5bmMgKGFjY291bnQsIGdyb3VwSWQsIGVudiwgdXNlckluZm8pID0+IHtcblx0XHRcdFx0aWYgKCF1c2VySW5mbyB8fCB0eXBlb2YgdXNlckluZm8gIT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgdXNlciBpbmZvIHRvIGJlIGFuIG9iamVjdCcpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghdXNlckluZm8ucGFzc3dvcmQgfHwgdHlwZW9mIHVzZXJJbmZvLnBhc3N3b3JkICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIHVzZXIgcGFzc3dvcmQgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCF1c2VySW5mby5wYXNzd29yZF9jb25maXJtYXRpb24gfHwgdHlwZW9mIHVzZXJJbmZvLnBhc3N3b3JkX2NvbmZpcm1hdGlvbiAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCB1c2VyIHBhc3N3b3JkIGNvbmZpcm1hdGlvbiB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gKGF3YWl0IG1ic1VzZXJIZWxwZXIoYWNjb3VudCwgZ3JvdXBJZCwgZW52LCB1c2VySW5mbykpWzBdO1xuXHRcdFx0fSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgZW52aXJvbm1lbnRzIGFzc29jaWF0ZWQgdG8gdGhlIHVzZXIncyBvcmcuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gYWNjb3VudCAtIFRoZSBhY2NvdW50IG9iamVjdC5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBncm91cElkIC0gVGhlIE1CUyBhcHAgZ3VpZCAoaS5lLiBncm91cCBpZCkuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZW52IC0gVGhlIE1CUyBlbnZpcm9ubWVudCAocHJvZHVjdGlvbiwgZGV2ZWxvcG1lbnQsIFZQQyBuYW1lKS5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5Pn1cblx0XHRcdCAqL1xuXHRcdFx0Z2V0VXNlcnM6IGFzeW5jIChhY2NvdW50LCBncm91cElkLCBlbnYpID0+IHtcblx0XHRcdFx0cmV0dXJuIGF3YWl0IG1ic1VzZXJIZWxwZXIoYWNjb3VudCwgZ3JvdXBJZCwgZW52KTtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0dGhpcy5vcmcgPSB7XG5cdFx0XHQvKipcblx0XHRcdCAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBlbnZpcm9ubWVudHMgYXNzb2NpYXRlZCB0byB0aGUgdXNlcidzIG9yZy5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBhY2NvdW50IC0gVGhlIGFjY291bnQgb2JqZWN0LlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8QXJyYXk+fVxuXHRcdFx0ICovXG5cdFx0XHRnZXRFbnZpcm9ubWVudHM6IGFjY291bnQgPT4gdGhpcy5yZXF1ZXN0KCcvYXBpL3YxL29yZy9lbnYnLCBhY2NvdW50KVxuXHRcdH07XG5cblx0XHR0aGlzLnRpID0ge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBVcGRhdGVzIHRoZSBhcHAncyBidWlsZCBpbmZvIGluIHRoZSBwbGF0Zm9ybS5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBhY2NvdW50IC0gVGhlIGFjY291bnQgb2JqZWN0LlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBQb3N0IGRhdGEuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZGF0YS5idWlsZElkIC0gVGhlIGJ1aWxkIGlkLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IGRhdGEuYnVpbGRTSEEgLSBBIFNIQSBvZiBhbGwgU0hBcyBvZiBlbmNyeXB0ZWQgLmpzIGZpbGVzLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGRhdGEua2V5cyAtIEEgbWFwIG9mIGZpbGVuYW1lcyBvZiB0aGUgZW5jcnlwdGVkIC5qcyBmaWxlcyBhbmQgdGhlaXJcblx0XHRcdCAqIHJlc3BlY3RpdmUga2V5cy5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlfVxuXHRcdFx0ICovXG5cdFx0XHRidWlsZFVwZGF0ZTogYXN5bmMgKGFjY291bnQsIGRhdGEpID0+IHtcblx0XHRcdFx0aWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGRhdGEgdG8gYmUgYW4gb2JqZWN0Jyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCFkYXRhLmJ1aWxkSWQgfHwgdHlwZW9mIGRhdGEuYnVpbGRJZCAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBidWlsZCBpZCB0byBiZSBhIHN0cmluZycpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghZGF0YS5idWlsZFNIQSB8fCB0eXBlb2YgZGF0YS5idWlsZFNIQSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBidWlsZCBTSEEgdG8gYmUgYSBzdHJpbmcnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIWRhdGEua2V5cyB8fCB0eXBlb2YgZGF0YS5rZXlzICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGtleXMgdG8gYmUgYW4gb2JqZWN0Jyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhd2FpdCB0aGlzLnJlcXVlc3QoJy9hcGkvdjEvYXV0aC9idWlsZC11cGRhdGUnLCBhY2NvdW50LCB7XG5cdFx0XHRcdFx0anNvbjoge1xuXHRcdFx0XHRcdFx0YnVpbGRpZDogIGRhdGEuYnVpbGRJZCxcblx0XHRcdFx0XHRcdGJ1aWxkc2hhOiBkYXRhLmJ1aWxkU0hBLFxuXHRcdFx0XHRcdFx0a2V5czogICAgIHsgLi4uZGF0YS5rZXlzIH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBWZXJpZmllcyB0aGUgYXBwIGlzIHJlZ2lzdGVyZWQgYW5kIHRoZSB1c2VyIGhhcyByaWdodHMgdG8gYnVpbGQgdGhlIGFwcCBhbmQgdXNlIHRoZVxuXHRcdFx0ICogbW9kdWxlcy5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBhY2NvdW50IC0gVGhlIGFjY291bnQgb2JqZWN0LlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBQb3N0IGRhdGEuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZGF0YS5hcHBHdWlkIC0gVGhlIGFwcGxpY2F0aW9uIGd1aWQuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZGF0YS5hcHBJZCAtIFRoZSBhcHBsaWNhdGlvbiBpZC5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhLmRlcGxveVR5cGUgLSBUaGUgZGVwbG95IHR5cGUgKHByb2R1Y3Rpb24sIHRlc3QsIGRldmVsb3BtZW50KS5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhLmZpbmdlcnByaW50IC0gVGhlIG1hY2hpbmUncyBmaW5nZXJwcmludC5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhLmlwQWRkcmVzcyAtIFRoZSBtYWNoaW5lJ3MgSVAgYWRkcmVzcy5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBbZGF0YS5tb2R1bGVzXSAtIEFuIGFycmF5IG9mIG1vZHVsZXMgZnJvbSB0aGUgYHRpYXBwLnhtbGAuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZGF0YS50aWFwcCAtIFRoZSBjb250ZW50cyBvZiB0aGUgYHRpYXBwLnhtbGAuXG5cdFx0XHQgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBSZXNvbHZlcyB0aGUgdmVyaWZpY2F0aW9uIGluZm8uXG5cdFx0XHQgKi9cblx0XHRcdGJ1aWxkVmVyaWZ5OiBhc3luYyAoYWNjb3VudCwgZGF0YSkgPT4ge1xuXHRcdFx0XHRpZiAoIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgZGF0YSB0byBiZSBhbiBvYmplY3QnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBbICdhcHBHdWlkJywgJ2FwcElkJywgJ2RlcGxveVR5cGUnLCAnZmluZ2VycHJpbnQnLCAnaXBBZGRyZXNzJywgJ3RpYXBwJyBdKSB7XG5cdFx0XHRcdFx0aWYgKCFkYXRhW2tleV0gfHwgdHlwZW9mIGRhdGFba2V5XSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICR7a2V5LnJlcGxhY2UoL1tBLVpdL2csIHMgPT4gYCAke3MudG9Mb3dlckNhc2UoKX1gKX0gdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nYCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChkYXRhLm1vZHVsZXMpIHtcblx0XHRcdFx0XHRpZiAoIUFycmF5LmlzQXJyYXkoZGF0YS5tb2R1bGVzKSB8fCBkYXRhLm1vZHVsZXMuc29tZShtID0+ICFtIHx8IHR5cGVvZiBtICE9PSAnb2JqZWN0JykpIHtcblx0XHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIG1vZHVsZXMgdG8gYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cycpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRkYXRhLm1vZHVsZXMgPSBkYXRhLm1vZHVsZXMubWFwKG0gPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3Qgb2JqID0geyAuLi5tIH07XG5cdFx0XHRcdFx0XHRkZWxldGUgb2JqLmJpbmRpbmdzO1xuXHRcdFx0XHRcdFx0cmV0dXJuIG9iajtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBhd2FpdCB0aGlzLnJlcXVlc3QoJy9hcGkvdjEvYXV0aC9idWlsZC12ZXJpZnknLCBhY2NvdW50LCB7XG5cdFx0XHRcdFx0anNvbjoge1xuXHRcdFx0XHRcdFx0YXBwaWQ6ICAgICAgIGRhdGEuYXBwSWQsXG5cdFx0XHRcdFx0XHRkZXBsb3l0eXBlOiAgZGF0YS5kZXBsb3lUeXBlLFxuXHRcdFx0XHRcdFx0ZmluZ2VycHJpbnQ6IGRhdGEuZmluZ2VycHJpbnQsXG5cdFx0XHRcdFx0XHRndWlkOiAgICAgICAgZGF0YS5hcHBHdWlkLFxuXHRcdFx0XHRcdFx0aXBhZGRyZXNzOiAgIGRhdGEuaXBBZGRyZXNzLFxuXHRcdFx0XHRcdFx0bW9kdWxlczogICAgIGRhdGEubW9kdWxlcyxcblx0XHRcdFx0XHRcdHRpYXBweG1sOiAgICBkYXRhLnRpYXBwXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogR2VuZXJhdGVzIGEgZGV2ZWxvcGVyIGNlcnRpZmljYXRlLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGFjY291bnQgLSBUaGUgYWNjb3VudCBvYmplY3QuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gZGF0YSAtIFZhcmlvdXMgcG9zdCBkYXRhLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IGRhdGEuZGVzY3JpcHRpb24gLSBUaGUgZGVzY3JpcHRpb24gdG8gdXNlIGZvciB0aGUgY2VydC5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhLmZpbmdlcnByaW50IC0gVGhlIG1hY2hpbmUncyBmaW5nZXJwcmludC5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhLnB1YmxpY0tleSAtIFB1YmxpYyBrZXkgdG8gdXNlIGZvciB0aGUgY2VydC5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc29sdmVzIHRoZSBzZXJ2ZXIgZ2VuZXJhdGVkIGRldmVsb3BlciBjZXJ0aWZpY2F0ZS5cblx0XHRcdCAqL1xuXHRcdFx0ZW5yb2xsOiBhc3luYyAoYWNjb3VudCwgZGF0YSkgPT4ge1xuXHRcdFx0XHRpZiAoIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgZGF0YSB0byBiZSBhbiBvYmplY3QnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBbICdkZXNjcmlwdGlvbicsICdmaW5nZXJwcmludCcsICdwdWJsaWNLZXknIF0pIHtcblx0XHRcdFx0XHRpZiAoIWRhdGFba2V5XSB8fCB0eXBlb2YgZGF0YVtrZXldICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgJHtrZXkucmVwbGFjZSgvW0EtWl0vZywgcyA9PiBgICR7cy50b0xvd2VyQ2FzZSgpfWApfSB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmdgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGF3YWl0IHRoaXMucmVxdWVzdCgnL2FwaS92MS9hdXRoL2Rldi1lbnJvbGwnLCBhY2NvdW50LCB7IGpzb246IGRhdGEsIHJlc3VsdEtleTogJ2NlcnRpZmljYXRlJyB9KTtcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogUmV0cmlldmVzIHRoZSBVUkwgdG8gdXBsb2FkIHN5bWJvbHMgZm9yIGNyYXNoIGFuYWx5dGljcy5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBhY2NvdW50IC0gVGhlIGFjY291bnQgb2JqZWN0LlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGFwcEd1aWQgLSBUaGUgVGl0YW5pdW0gYXBwbGljYXRpb24gZ3VpZC5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc29sdmVzIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBgdXJsYCwgYGFwaV90b2tlbmAsXG5cdFx0XHQgKiBgbGltaXRgLCBhbmQgYG1vZHVsZWAuXG5cdFx0XHQgKi9cblx0XHRcdGdldEFDQVVwbG9hZFVSTDogYXN5bmMgKGFjY291bnQsIGFwcEd1aWQpID0+IHtcblx0XHRcdFx0aWYgKCFhcHBHdWlkIHx8IHR5cGVvZiBhcHBHdWlkICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGFwcCBndWlkJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGF3YWl0IHRoaXMucmVxdWVzdChgL2FwaS92MS9hcHAvJHthcHBHdWlkfS91cGxvYWRgLCBhY2NvdW50KTtcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogR2V0cyBpbmZvIGFib3V0IGEgVGl0YW5pdW0gYXBwLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGFjY291bnQgLSBUaGUgYWNjb3VudCBvYmplY3QuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gYXBwR3VpZCAtIFRoZSBhcHBsaWNhdGlvbiBndWlkLlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gUmVzb2x2ZXMgdGhlIGFwcCBpbmZvLlxuXHRcdFx0ICovXG5cdFx0XHRnZXRBcHA6IGFzeW5jIChhY2NvdW50LCBhcHBHdWlkKSA9PiB7XG5cdFx0XHRcdGlmICghYXBwR3VpZCB8fCB0eXBlb2YgYXBwR3VpZCAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBhcHAgZ3VpZCcpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhd2FpdCB0aGlzLnJlcXVlc3QoYC9hcGkvdjEvYXBwLyR7YXBwR3VpZH1gLCBhY2NvdW50KTtcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogQ29uc3RydWN0cyB0aGUgYXBwIHZlcmlmeSBVUkwgdGhhdCBnZXRzIGVtYmVkZGVkIGluIGEgVGl0YW5pdW0gYXBwLlxuXHRcdFx0ICogQHJldHVybnMge1N0cmluZ31cblx0XHRcdCAqL1xuXHRcdFx0Z2V0QXBwVmVyaWZ5VVJMOiAoKSA9PiBgJHt0aGlzLmVudi5wbGF0Zm9ybVVybH0vYXBpL3YxL2FwcC92ZXJpZnlgLFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIFJldHVybnMgdGhlIGxpc3Qgb2YgVGl0YW5pdW0gbW9kdWxlcy5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBhY2NvdW50IC0gVGhlIGFjY291bnQgb2JqZWN0LlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8QXJyYXk+fSBSZXNvbHZlcyB0aGUgbGlzdCBvZiBtb2R1bGVzLlxuXHRcdFx0ICovXG5cdFx0XHRnZXREb3dubG9hZHM6IGFzeW5jIGFjY291bnQgPT4gYXdhaXQgdGhpcy5yZXF1ZXN0KCcvYXBpL3YxL2Rvd25sb2FkcycsIGFjY291bnQpLFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIFVwZGF0ZXMgb3IgcmVnaXN0ZXJzIGEgVGl0YW5pdW0gYXBwIHdpdGggdGhlIHBsYXRmb3JtIGJ5IHVwbG9hZGluZyBhIGB0aWFwcC54bWxgLlxuXHRcdFx0ICogVGhlIHRpYXBwIG11c3QgY29udGFpbiBhIGA8bmFtZT5gLCBgPGlkPmAsIGFuZCBhIGA8Z3VpZD5gLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGFjY291bnQgLSBUaGUgYWNjb3VudCBvYmplY3QuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gdGlhcHAgLSBUaGUgY29udGVudHMgb2YgdGhlIGB0aWFwcC54bWxgLlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gUmVzb2x2ZXMgdGhlIGFwcCBpbmZvLlxuXHRcdFx0ICovXG5cdFx0XHRzZXRBcHA6IGFzeW5jIChhY2NvdW50LCB0aWFwcCkgPT4ge1xuXHRcdFx0XHRpZiAoIXRpYXBwIHx8IHR5cGVvZiB0aWFwcCAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCB0aWFwcCB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gYXdhaXQgdGhpcy5yZXF1ZXN0KCcvYXBpL3YxL2FwcC9zYXZlRnJvbVRpQXBwJywgYWNjb3VudCwgeyBqc29uOiB7IHRpYXBwIH0gfSk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGFuIEFNUExJRlkgQXV0aCBTREsgY2xpZW50IG9yIGNyZWF0ZXMgb25lIGlmIGl0IGRvZXNuJ3QgZXhpc3QuXG5cdCAqIEB0eXBlIHtBdXRofVxuXHQgKiBAYWNjZXNzIHByaXZhdGVcblx0ICovXG5cdGdldCBjbGllbnQoKSB7XG5cdFx0dHJ5IHtcblx0XHRcdGlmICghdGhpcy5fY2xpZW50KSB7XG5cdFx0XHRcdHRoaXMuX2NsaWVudCA9IG5ldyBBdXRoKHRoaXMub3B0cyk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGhpcy5fY2xpZW50O1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0aWYgKGVyci5jb2RlID09PSAnRVJSX1NFQ1VSRV9TVE9SRV9VTkFWQUlMQUJMRScpIHtcblx0XHRcdFx0Y29uc3QgaXNXaW4gPSBwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInO1xuXHRcdFx0XHRlcnIubWVzc2FnZSA9IGBTZWN1cmUgdG9rZW4gc3RvcmUgaXMgbm90IGF2YWlsYWJsZS5cXG5QbGVhc2UgcmVpbnN0YWxsIHRoZSBBTVBMSUZZIENMSSBieSBydW5uaW5nOlxcbiAgICAke2lzV2luID8gJycgOiAnc3VkbyAnfW5wbSBpbnN0YWxsIC0tZ2xvYmFsICR7aXNXaW4gPyAnJyA6ICctLXVuc2FmZS1wZXJtICd9QGF4d2F5L2FtcGxpZnktY2xpYDtcblx0XHRcdH1cblx0XHRcdHRocm93IGVycjtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogTWFrZXMgYW4gSFRUUCByZXF1ZXN0LlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gcGF0aCAtIFRoZSBwYXRoIHRvIGFwcGVuZCB0byB0aGUgVVJMLlxuXHQgKiBAcGFyYW0ge09iamVjdH0gYWNjb3VudCAtIFRoZSBhY2NvdW50IG9iamVjdC5cblx0ICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIFZhcmlvdXMgb3B0aW9ucy5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnJlc3VsdEtleT0ncmVzdWx0J10gLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgcmV0dXJuIGZyb20gdGhlIHJlc3BvbnNlLlxuXHQgKiBAcGFyYW0ge09iamVjdH0gW29wdHMuanNvbl0gLSBBIEpTT04gcGF5bG9hZCB0byBzZW5kLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMubWV0aG9kXSAtIFRoZSBIVFRQIG1ldGhvZCB0byB1c2UuIElmIG5vdCBzZXQsIHRoZW4gdXNlcyBgcG9zdGAgaWZcblx0ICogYG9wdHMuanNvbmAgaXMgc2V0LCBvdGhlcndpc2UgYGdldGAuXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBSZXNvbHZlcyB0aGUgSlNPTi1wYXJzZWQgcmVzdWx0LlxuXHQgKiBAYWNjZXNzIHByaXZhdGVcblx0ICovXG5cdGFzeW5jIHJlcXVlc3QocGF0aCwgYWNjb3VudCwgeyByZXN1bHRLZXkgPSAncmVzdWx0JywganNvbiwgbWV0aG9kIH0gPSB7fSkge1xuXHRcdGlmICghYWNjb3VudCB8fCB0eXBlb2YgYWNjb3VudCAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignQWNjb3VudCByZXF1aXJlZCcpO1xuXHRcdH1cblxuXHRcdGNvbnN0IHsgc2lkIH0gPSBhY2NvdW50O1xuXHRcdGNvbnN0IHRva2VuID0gYWNjb3VudC5hdXRoPy50b2tlbnM/LmFjY2Vzc190b2tlbjtcblx0XHRpZiAoIXNpZCAmJiAhdG9rZW4pIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZC9leHBpcmVkIGFjY291bnQnKTtcblx0XHR9XG5cblx0XHRjb25zdCB1cmwgPSBgJHt0aGlzLnBsYXRmb3JtVXJsIHx8IHRoaXMuZW52LnBsYXRmb3JtVXJsfSR7cGF0aH1gO1xuXHRcdGNvbnN0IGhlYWRlcnMgPSB7XG5cdFx0XHRBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJ1xuXHRcdH07XG5cblx0XHRpZiAoYWNjb3VudC5zaWQpIHtcblx0XHRcdGhlYWRlcnMuQ29va2llID0gYGNvbm5lY3Quc2lkPSR7YWNjb3VudC5zaWR9YDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aGVhZGVycy5BdXRob3JpemF0aW9uID0gYEJlYXJlciAke3Rva2VufWA7XG5cdFx0fVxuXG5cdFx0aWYgKCFtZXRob2QpIHtcblx0XHRcdG1ldGhvZCA9IGpzb24gPyAncG9zdCcgOiAnZ2V0Jztcblx0XHR9XG5cblx0XHRsb2coYFJlcXVlc3RpbmcgJHttYWdlbnRhKG1ldGhvZCl9ICR7aGlnaGxpZ2h0KHVybCl9ICR7bm90ZShgKCR7YWNjb3VudC5zaWQgPyBgc2lkICR7YWNjb3VudC5zaWR9YCA6IGB0b2tlbiAke3Rva2VufWB9KWApfWApO1xuXHRcdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ290W21ldGhvZF0odXJsLCB7XG5cdFx0XHRoZWFkZXJzLFxuXHRcdFx0anNvbixcblx0XHRcdHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuXHRcdFx0cmV0cnk6IDBcblx0XHR9KTtcblxuXHRcdGNvbnN0IGNvb2tpZXMgPSByZXNwb25zZS5oZWFkZXJzWydzZXQtY29va2llJ107XG5cdFx0Y29uc3QgY29ubmVjdFNpZCA9IGNvb2tpZXMgJiYgc2V0Q29va2llLnBhcnNlKGNvb2tpZXMpLmZpbmQoYyA9PiBjLm5hbWUgPT09ICdjb25uZWN0LnNpZCcpPy52YWx1ZTtcblx0XHRpZiAoY29ubmVjdFNpZCkge1xuXHRcdFx0bG9nKGBTZXR0aW5nIHNpZDogJHtoaWdobGlnaHQoY29ubmVjdFNpZCl9YCk7XG5cdFx0XHRhY2NvdW50LnNpZCA9IGNvbm5lY3RTaWQ7XG5cdFx0XHRhd2FpdCB0aGlzLmNsaWVudC51cGRhdGVBY2NvdW50KGFjY291bnQpO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXNwb25zZS5ib2R5Py5bcmVzdWx0S2V5XTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBBbXBsaWZ5U0RLO1xuIl0sImZpbGUiOiJpbmRleC5qcyJ9
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIkVycm9yIiwicHJlcGFyZVN0YWNrVHJhY2UiLCJyZXF1aXJlIiwibG9nIiwiaGlnaGxpZ2h0IiwibWFnZW50YSIsIm5vdGUiLCJzbm9vcGxvZ2ciLCJzdHlsZXMiLCJBbXBsaWZ5U0RLIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiZW52IiwiZW52aXJvbm1lbnRzIiwicmVzb2x2ZSIsInBsYXRmb3JtVXJsIiwicmVwbGFjZSIsImF1dGgiLCJmaW5kIiwiYWNjb3VudE5hbWUiLCJhY2NvdW50IiwiY2xpZW50IiwibG9hZFNlc3Npb24iLCJsaXN0Iiwib3JnIiwib3JncyIsInVzZXIiLCJyZXF1ZXN0IiwiZ3VpZCIsImlkIiwib3JnX2lkIiwibmFtZSIsIm1hcCIsIk9iamVjdCIsImFzc2lnbiIsImF4d2F5SWQiLCJheHdheV9pZCIsImVtYWlsIiwiZmlyc3ROYW1lIiwiZmlyc3RuYW1lIiwiaXMyRkFFbmFibGVkIiwiZGlzYWJsZV8yZmEiLCJsYXN0TmFtZSIsImxhc3RuYW1lIiwib3JnYW5pemF0aW9uIiwidXBkYXRlQWNjb3VudCIsImUiLCJtZXNzYWdlIiwibG9naW4iLCJsb2dvdXQiLCJzZXJ2ZXJJbmZvIiwic3dpdGNoT3JnIiwib3JnSWQiLCJUeXBlRXJyb3IiLCJvcmdfbmFtZSIsImpzb24iLCJtYnNVc2VySGVscGVyIiwiZ3JvdXBJZCIsInVzZXJJbmZvIiwicmVzcG9uc2UiLCJ1c2VycyIsIm1icyIsImNyZWF0ZUFwcHMiLCJhcHBHdWlkIiwiYXBwTmFtZSIsImFwcF9ndWlkIiwiYXBwX25hbWUiLCJhcHBzIiwiY3JlYXRlVXNlciIsInBhc3N3b3JkIiwicGFzc3dvcmRfY29uZmlybWF0aW9uIiwiZ2V0VXNlcnMiLCJnZXRFbnZpcm9ubWVudHMiLCJ0aSIsImJ1aWxkVXBkYXRlIiwiZGF0YSIsImJ1aWxkSWQiLCJidWlsZFNIQSIsImtleXMiLCJidWlsZGlkIiwiYnVpbGRzaGEiLCJidWlsZFZlcmlmeSIsImtleSIsInMiLCJ0b0xvd2VyQ2FzZSIsIm1vZHVsZXMiLCJBcnJheSIsImlzQXJyYXkiLCJzb21lIiwibSIsIm9iaiIsImJpbmRpbmdzIiwiYXBwaWQiLCJhcHBJZCIsImRlcGxveXR5cGUiLCJkZXBsb3lUeXBlIiwiZmluZ2VycHJpbnQiLCJpcGFkZHJlc3MiLCJpcEFkZHJlc3MiLCJ0aWFwcHhtbCIsInRpYXBwIiwiZW5yb2xsIiwicmVzdWx0S2V5IiwiZ2V0QUNBVXBsb2FkVVJMIiwiZ2V0QXBwIiwiZ2V0QXBwVmVyaWZ5VVJMIiwiZ2V0RG93bmxvYWRzIiwic2V0QXBwIiwiX2NsaWVudCIsIkF1dGgiLCJlcnIiLCJjb2RlIiwiaXNXaW4iLCJwcm9jZXNzIiwicGxhdGZvcm0iLCJwYXRoIiwibWV0aG9kIiwic2lkIiwidG9rZW4iLCJ0b2tlbnMiLCJhY2Nlc3NfdG9rZW4iLCJ1cmwiLCJoZWFkZXJzIiwiQWNjZXB0IiwiQ29va2llIiwiQXV0aG9yaXphdGlvbiIsImdvdCIsInJlc3BvbnNlVHlwZSIsInJldHJ5IiwiY29va2llcyIsImNvbm5lY3RTaWQiLCJzZXRDb29raWUiLCJwYXJzZSIsImMiLCJ2YWx1ZSIsImJvZHkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7QUFWQTtBQUNBLElBQUksQ0FBQ0EsS0FBSyxDQUFDQyxpQkFBWCxFQUE4QjtBQUM3QkMsRUFBQUEsT0FBTyxDQUFDLDZCQUFELENBQVA7QUFDQTs7QUFTRCxNQUFNO0FBQUVDLEVBQUFBO0FBQUYsSUFBVSx3QkFBVSxhQUFWLENBQWhCO0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxTQUFGO0FBQWFDLEVBQUFBLE9BQWI7QUFBc0JDLEVBQUFBO0FBQXRCLElBQStCQyxtQkFBVUMsTUFBL0M7QUFFQTs7OztBQUdPLE1BQU1DLFVBQU4sQ0FBaUI7QUFDdkI7Ozs7Ozs7QUFPQUMsRUFBQUEsV0FBVyxDQUFDQyxJQUFELEVBQU87QUFDakI7Ozs7QUFJQSxTQUFLQSxJQUFMLEdBQVlBLElBQVo7QUFFQTs7Ozs7QUFJQSxTQUFLQyxHQUFMLEdBQVdDLFlBQVksQ0FBQ0MsT0FBYixDQUFxQkgsSUFBSSxDQUFDQyxHQUExQixDQUFYO0FBRUE7Ozs7O0FBSUEsU0FBS0csV0FBTCxHQUFtQkosSUFBSSxDQUFDSSxXQUFMLEdBQW1CSixJQUFJLENBQUNJLFdBQUwsQ0FBaUJDLE9BQWpCLENBQXlCLEtBQXpCLEVBQWdDLEVBQWhDLENBQW5CLEdBQXlELElBQTVFO0FBRUEsU0FBS0MsSUFBTCxHQUFZO0FBQ1g7Ozs7Ozs7QUFPQUMsTUFBQUEsSUFBSSxFQUFFLE1BQU1DLFdBQU4sSUFBcUI7QUFDMUIsY0FBTUMsT0FBTyxHQUFHLE1BQU0sS0FBS0MsTUFBTCxDQUFZSCxJQUFaLENBQWlCQyxXQUFqQixDQUF0QjtBQUNBLGVBQU9DLE9BQU8sR0FBRyxNQUFNLEtBQUtILElBQUwsQ0FBVUssV0FBVixDQUFzQkYsT0FBdEIsQ0FBVCxHQUEwQyxJQUF4RDtBQUNBLE9BWFU7O0FBYVg7Ozs7QUFJQUcsTUFBQUEsSUFBSSxFQUFFLE1BQU0sS0FBS0YsTUFBTCxDQUFZRSxJQUFaLEVBakJEOztBQW1CWDs7Ozs7O0FBTUFELE1BQUFBLFdBQVcsRUFBRSxNQUFNRixPQUFOLElBQWlCO0FBQzdCLFlBQUk7QUFDSCxnQkFBTTtBQUFFSSxZQUFBQSxHQUFGO0FBQU9DLFlBQUFBLElBQVA7QUFBYUMsWUFBQUE7QUFBYixjQUFzQixNQUFNLEtBQUtDLE9BQUwsQ0FBYSwwQkFBYixFQUF5Q1AsT0FBekMsQ0FBbEM7QUFFQUEsVUFBQUEsT0FBTyxDQUFDSSxHQUFSLEdBQWM7QUFDYkksWUFBQUEsSUFBSSxFQUFFSixHQUFHLENBQUNJLElBREc7QUFFYkMsWUFBQUEsRUFBRSxFQUFJTCxHQUFHLENBQUNNLE1BRkc7QUFHYkMsWUFBQUEsSUFBSSxFQUFFUCxHQUFHLENBQUNPO0FBSEcsV0FBZDtBQU1BNUIsVUFBQUEsR0FBRyxDQUFFLGdCQUFlQyxTQUFTLENBQUNvQixHQUFHLENBQUNPLElBQUwsQ0FBVyxJQUFHekIsSUFBSSxDQUFFLElBQUdrQixHQUFHLENBQUNNLE1BQU8sR0FBaEIsQ0FBb0IsRUFBaEUsQ0FBSDtBQUNBVixVQUFBQSxPQUFPLENBQUNLLElBQVIsR0FBZUEsSUFBSSxDQUFDTyxHQUFMLENBQVMsQ0FBQztBQUFFSixZQUFBQSxJQUFGO0FBQVFHLFlBQUFBLElBQVI7QUFBY0QsWUFBQUE7QUFBZCxXQUFELE1BQTZCO0FBQUVGLFlBQUFBLElBQUY7QUFBUUMsWUFBQUEsRUFBRSxFQUFFQyxNQUFaO0FBQW9CQyxZQUFBQTtBQUFwQixXQUE3QixDQUFULENBQWY7QUFFQTVCLFVBQUFBLEdBQUcsQ0FBQyxpQkFBRCxDQUFIOztBQUNBLGVBQUssTUFBTXFCLEdBQVgsSUFBa0JKLE9BQU8sQ0FBQ0ssSUFBMUIsRUFBZ0M7QUFDL0J0QixZQUFBQSxHQUFHLENBQUUsS0FBSUMsU0FBUyxDQUFDb0IsR0FBRyxDQUFDTyxJQUFMLENBQVcsSUFBR3pCLElBQUksQ0FBRSxJQUFHa0IsR0FBRyxDQUFDSyxFQUFHLEdBQVosQ0FBZ0IsRUFBakQsQ0FBSDtBQUNBOztBQUVESSxVQUFBQSxNQUFNLENBQUNDLE1BQVAsQ0FBY2QsT0FBTyxDQUFDTSxJQUF0QixFQUE0QjtBQUMzQlMsWUFBQUEsT0FBTyxFQUFPVCxJQUFJLENBQUNVLFFBRFE7QUFFM0JDLFlBQUFBLEtBQUssRUFBU1gsSUFBSSxDQUFDVyxLQUZRO0FBRzNCQyxZQUFBQSxTQUFTLEVBQUtaLElBQUksQ0FBQ2EsU0FIUTtBQUkzQlgsWUFBQUEsSUFBSSxFQUFVRixJQUFJLENBQUNFLElBSlE7QUFLM0JZLFlBQUFBLFlBQVksRUFBRSxDQUFDZCxJQUFJLENBQUNlLFdBTE87QUFNM0JDLFlBQUFBLFFBQVEsRUFBTWhCLElBQUksQ0FBQ2lCLFFBTlE7QUFPM0JDLFlBQUFBLFlBQVksRUFBRWxCLElBQUksQ0FBQ2tCO0FBUFEsV0FBNUI7QUFVQSxnQkFBTSxLQUFLdkIsTUFBTCxDQUFZd0IsYUFBWixDQUEwQnpCLE9BQTFCLENBQU47QUFFQSxpQkFBT0EsT0FBUDtBQUNBLFNBOUJELENBOEJFLE9BQU8wQixDQUFQLEVBQVU7QUFDWCxnQkFBTSxJQUFJOUMsS0FBSixDQUFXLDBCQUF5QjhDLENBQUMsQ0FBQ0MsT0FBUSxFQUE5QyxDQUFOO0FBQ0E7QUFDRCxPQTNEVTs7QUE2RFg7Ozs7Ozs7O0FBUUFDLE1BQUFBLEtBQUssRUFBRSxNQUFNckMsSUFBTixJQUFjO0FBQ3BCLGNBQU1TLE9BQU8sR0FBRyxNQUFNLEtBQUtDLE1BQUwsQ0FBWTJCLEtBQVosQ0FBa0JyQyxJQUFsQixDQUF0QjtBQUNBLGVBQU8sTUFBTSxLQUFLTSxJQUFMLENBQVVLLFdBQVYsQ0FBc0JGLE9BQXRCLENBQWI7QUFDQSxPQXhFVTs7QUEwRVg7Ozs7Ozs7Ozs7QUFVQTZCLE1BQUFBLE1BQU0sRUFBRXRDLElBQUksSUFBSSxLQUFLVSxNQUFMLENBQVk0QixNQUFaLENBQW1CdEMsSUFBbkIsQ0FwRkw7O0FBc0ZYOzs7Ozs7O0FBT0F1QyxNQUFBQSxVQUFVLEVBQUV2QyxJQUFJLElBQUksS0FBS1UsTUFBTCxDQUFZNkIsVUFBWixDQUF1QnZDLElBQXZCLENBN0ZUOztBQStGWDs7Ozs7OztBQU9Bd0MsTUFBQUEsU0FBUyxFQUFFLE9BQU8vQixPQUFQLEVBQWdCZ0MsS0FBaEIsS0FBMEI7QUFDcEMsWUFBSSxDQUFDQSxLQUFELElBQVUsT0FBT0EsS0FBUCxLQUFpQixRQUEvQixFQUF5QztBQUN4QyxnQkFBTSxJQUFJQyxTQUFKLENBQWMsaUJBQWQsQ0FBTjtBQUNBOztBQUVELGNBQU07QUFBRXpCLFVBQUFBLElBQUY7QUFBUUUsVUFBQUEsTUFBUjtBQUFnQndCLFVBQUFBLFFBQVEsRUFBRXZCO0FBQTFCLFlBQW1DLE1BQU0sS0FBS0osT0FBTCxDQUFhLGdDQUFiLEVBQStDUCxPQUEvQyxFQUF3RDtBQUN0R21DLFVBQUFBLElBQUksRUFBRTtBQUFFekIsWUFBQUEsTUFBTSxFQUFFc0I7QUFBVjtBQURnRyxTQUF4RCxDQUEvQztBQUdBaEMsUUFBQUEsT0FBTyxDQUFDSSxHQUFSLEdBQWM7QUFBRUksVUFBQUEsSUFBRjtBQUFRRyxVQUFBQSxJQUFSO0FBQWNELFVBQUFBO0FBQWQsU0FBZDtBQUNBLGNBQU0sS0FBS1QsTUFBTCxDQUFZd0IsYUFBWixDQUEwQnpCLE9BQTFCLENBQU47QUFFQSxlQUFPQSxPQUFQO0FBQ0E7QUFsSFUsS0FBWjs7QUFxSEEsVUFBTW9DLGFBQWEsR0FBRyxPQUFPcEMsT0FBUCxFQUFnQnFDLE9BQWhCLEVBQXlCN0MsR0FBekIsRUFBOEI4QyxRQUE5QixLQUEyQztBQUNoRSxVQUFJLENBQUNELE9BQUQsSUFBWSxPQUFPQSxPQUFQLEtBQW1CLFFBQW5DLEVBQTZDO0FBQzVDLGNBQU0sSUFBSUosU0FBSixDQUFjLDRDQUFkLENBQU47QUFDQTs7QUFDRCxVQUFJLENBQUN6QyxHQUFELElBQVEsT0FBT0EsR0FBUCxLQUFlLFFBQTNCLEVBQXFDO0FBQ3BDLGNBQU0sSUFBSXlDLFNBQUosQ0FBYyx1Q0FBZCxDQUFOO0FBQ0E7O0FBRUQsVUFBSTFDLElBQUksR0FBRytDLFFBQVEsSUFBSTtBQUFFSCxRQUFBQSxJQUFJLEVBQUVHO0FBQVIsT0FBdkI7QUFDQSxZQUFNO0FBQUVDLFFBQUFBO0FBQUYsVUFBZSxNQUFNLEtBQUtoQyxPQUFMLENBQWMsZUFBYzhCLE9BQVEsSUFBRzdDLEdBQUksWUFBM0MsRUFBd0RRLE9BQXhELEVBQWlFVCxJQUFqRSxDQUEzQjtBQUNBLGFBQU9nRCxRQUFRLENBQUNDLEtBQWhCO0FBQ0EsS0FYRDs7QUFhQSxTQUFLQyxHQUFMLEdBQVc7QUFDVjs7Ozs7OztBQU9BQyxNQUFBQSxVQUFVLEVBQUUsT0FBTzFDLE9BQVAsRUFBZ0IyQyxPQUFoQixFQUF5QkMsT0FBekIsS0FBcUM7QUFDaEQsY0FBTTtBQUFFTCxVQUFBQTtBQUFGLFlBQWUsTUFBTSxLQUFLaEMsT0FBTCxDQUFhLGFBQWIsRUFBNEJQLE9BQTVCLEVBQXFDO0FBQy9EbUMsVUFBQUEsSUFBSSxFQUFFO0FBQ0xVLFlBQUFBLFFBQVEsRUFBRUYsT0FETDtBQUVMRyxZQUFBQSxRQUFRLEVBQUVGO0FBRkw7QUFEeUQsU0FBckMsQ0FBM0I7QUFNQSxlQUFPTCxRQUFRLENBQUNRLElBQWhCO0FBQ0EsT0FoQlM7O0FBa0JWOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQkFDLE1BQUFBLFVBQVUsRUFBRSxPQUFPaEQsT0FBUCxFQUFnQnFDLE9BQWhCLEVBQXlCN0MsR0FBekIsRUFBOEI4QyxRQUE5QixLQUEyQztBQUN0RCxZQUFJLENBQUNBLFFBQUQsSUFBYSxPQUFPQSxRQUFQLEtBQW9CLFFBQXJDLEVBQStDO0FBQzlDLGdCQUFNLElBQUlMLFNBQUosQ0FBYyxvQ0FBZCxDQUFOO0FBQ0E7O0FBQ0QsWUFBSSxDQUFDSyxRQUFRLENBQUNXLFFBQVYsSUFBc0IsT0FBT1gsUUFBUSxDQUFDVyxRQUFoQixLQUE2QixRQUF2RCxFQUFpRTtBQUNoRSxnQkFBTSxJQUFJaEIsU0FBSixDQUFjLGlEQUFkLENBQU47QUFDQTs7QUFDRCxZQUFJLENBQUNLLFFBQVEsQ0FBQ1kscUJBQVYsSUFBbUMsT0FBT1osUUFBUSxDQUFDWSxxQkFBaEIsS0FBMEMsUUFBakYsRUFBMkY7QUFDMUYsZ0JBQU0sSUFBSWpCLFNBQUosQ0FBYyw4REFBZCxDQUFOO0FBQ0E7O0FBQ0QsZUFBTyxDQUFDLE1BQU1HLGFBQWEsQ0FBQ3BDLE9BQUQsRUFBVXFDLE9BQVYsRUFBbUI3QyxHQUFuQixFQUF3QjhDLFFBQXhCLENBQXBCLEVBQXVELENBQXZELENBQVA7QUFDQSxPQWxEUzs7QUFvRFY7Ozs7Ozs7QUFPQWEsTUFBQUEsUUFBUSxFQUFFLE9BQU9uRCxPQUFQLEVBQWdCcUMsT0FBaEIsRUFBeUI3QyxHQUF6QixLQUFpQztBQUMxQyxlQUFPLE1BQU00QyxhQUFhLENBQUNwQyxPQUFELEVBQVVxQyxPQUFWLEVBQW1CN0MsR0FBbkIsQ0FBMUI7QUFDQTtBQTdEUyxLQUFYO0FBZ0VBLFNBQUtZLEdBQUwsR0FBVztBQUNWOzs7OztBQUtBZ0QsTUFBQUEsZUFBZSxFQUFFcEQsT0FBTyxJQUFJLEtBQUtPLE9BQUwsQ0FBYSxpQkFBYixFQUFnQ1AsT0FBaEM7QUFObEIsS0FBWDtBQVNBLFNBQUtxRCxFQUFMLEdBQVU7QUFDVDs7Ozs7Ozs7OztBQVVBQyxNQUFBQSxXQUFXLEVBQUUsT0FBT3RELE9BQVAsRUFBZ0J1RCxJQUFoQixLQUF5QjtBQUNyQyxZQUFJLENBQUNBLElBQUQsSUFBUyxPQUFPQSxJQUFQLEtBQWdCLFFBQTdCLEVBQXVDO0FBQ3RDLGdCQUFNLElBQUl0QixTQUFKLENBQWMsK0JBQWQsQ0FBTjtBQUNBOztBQUNELFlBQUksQ0FBQ3NCLElBQUksQ0FBQ0MsT0FBTixJQUFpQixPQUFPRCxJQUFJLENBQUNDLE9BQVosS0FBd0IsUUFBN0MsRUFBdUQ7QUFDdEQsZ0JBQU0sSUFBSXZCLFNBQUosQ0FBYyxrQ0FBZCxDQUFOO0FBQ0E7O0FBQ0QsWUFBSSxDQUFDc0IsSUFBSSxDQUFDRSxRQUFOLElBQWtCLE9BQU9GLElBQUksQ0FBQ0UsUUFBWixLQUF5QixRQUEvQyxFQUF5RDtBQUN4RCxnQkFBTSxJQUFJeEIsU0FBSixDQUFjLG1DQUFkLENBQU47QUFDQTs7QUFDRCxZQUFJLENBQUNzQixJQUFJLENBQUNHLElBQU4sSUFBYyxPQUFPSCxJQUFJLENBQUNHLElBQVosS0FBcUIsUUFBdkMsRUFBaUQ7QUFDaEQsZ0JBQU0sSUFBSXpCLFNBQUosQ0FBYywrQkFBZCxDQUFOO0FBQ0E7O0FBRUQsY0FBTSxLQUFLMUIsT0FBTCxDQUFhLDJCQUFiLEVBQTBDUCxPQUExQyxFQUFtRDtBQUN4RG1DLFVBQUFBLElBQUksRUFBRTtBQUNMd0IsWUFBQUEsT0FBTyxFQUFHSixJQUFJLENBQUNDLE9BRFY7QUFFTEksWUFBQUEsUUFBUSxFQUFFTCxJQUFJLENBQUNFLFFBRlY7QUFHTEMsWUFBQUEsSUFBSSxFQUFNLEVBQUUsR0FBR0gsSUFBSSxDQUFDRztBQUFWO0FBSEw7QUFEa0QsU0FBbkQsQ0FBTjtBQU9BLE9BaENROztBQWtDVDs7Ozs7Ozs7Ozs7Ozs7QUFjQUcsTUFBQUEsV0FBVyxFQUFFLE9BQU83RCxPQUFQLEVBQWdCdUQsSUFBaEIsS0FBeUI7QUFDckMsWUFBSSxDQUFDQSxJQUFELElBQVMsT0FBT0EsSUFBUCxLQUFnQixRQUE3QixFQUF1QztBQUN0QyxnQkFBTSxJQUFJdEIsU0FBSixDQUFjLCtCQUFkLENBQU47QUFDQTs7QUFDRCxhQUFLLE1BQU02QixHQUFYLElBQWtCLENBQUUsU0FBRixFQUFhLE9BQWIsRUFBc0IsWUFBdEIsRUFBb0MsYUFBcEMsRUFBbUQsV0FBbkQsRUFBZ0UsT0FBaEUsQ0FBbEIsRUFBNkY7QUFDNUYsY0FBSSxDQUFDUCxJQUFJLENBQUNPLEdBQUQsQ0FBTCxJQUFjLE9BQU9QLElBQUksQ0FBQ08sR0FBRCxDQUFYLEtBQXFCLFFBQXZDLEVBQWlEO0FBQ2hELGtCQUFNLElBQUk3QixTQUFKLENBQWUsWUFBVzZCLEdBQUcsQ0FBQ2xFLE9BQUosQ0FBWSxRQUFaLEVBQXNCbUUsQ0FBQyxJQUFLLElBQUdBLENBQUMsQ0FBQ0MsV0FBRixFQUFnQixFQUEvQyxDQUFrRCwyQkFBNUUsQ0FBTjtBQUNBO0FBQ0Q7O0FBQ0QsWUFBSVQsSUFBSSxDQUFDVSxPQUFULEVBQWtCO0FBQ2pCLGNBQUksQ0FBQ0MsS0FBSyxDQUFDQyxPQUFOLENBQWNaLElBQUksQ0FBQ1UsT0FBbkIsQ0FBRCxJQUFnQ1YsSUFBSSxDQUFDVSxPQUFMLENBQWFHLElBQWIsQ0FBa0JDLENBQUMsSUFBSSxDQUFDQSxDQUFELElBQU0sT0FBT0EsQ0FBUCxLQUFhLFFBQTFDLENBQXBDLEVBQXlGO0FBQ3hGLGtCQUFNLElBQUlwQyxTQUFKLENBQWMsNENBQWQsQ0FBTjtBQUNBOztBQUNEc0IsVUFBQUEsSUFBSSxDQUFDVSxPQUFMLEdBQWVWLElBQUksQ0FBQ1UsT0FBTCxDQUFhckQsR0FBYixDQUFpQnlELENBQUMsSUFBSTtBQUNwQyxrQkFBTUMsR0FBRyxHQUFHLEVBQUUsR0FBR0Q7QUFBTCxhQUFaO0FBQ0EsbUJBQU9DLEdBQUcsQ0FBQ0MsUUFBWDtBQUNBLG1CQUFPRCxHQUFQO0FBQ0EsV0FKYyxDQUFmO0FBS0E7O0FBRUQsZUFBTyxNQUFNLEtBQUsvRCxPQUFMLENBQWEsMkJBQWIsRUFBMENQLE9BQTFDLEVBQW1EO0FBQy9EbUMsVUFBQUEsSUFBSSxFQUFFO0FBQ0xxQyxZQUFBQSxLQUFLLEVBQVFqQixJQUFJLENBQUNrQixLQURiO0FBRUxDLFlBQUFBLFVBQVUsRUFBR25CLElBQUksQ0FBQ29CLFVBRmI7QUFHTEMsWUFBQUEsV0FBVyxFQUFFckIsSUFBSSxDQUFDcUIsV0FIYjtBQUlMcEUsWUFBQUEsSUFBSSxFQUFTK0MsSUFBSSxDQUFDWixPQUpiO0FBS0xrQyxZQUFBQSxTQUFTLEVBQUl0QixJQUFJLENBQUN1QixTQUxiO0FBTUxiLFlBQUFBLE9BQU8sRUFBTVYsSUFBSSxDQUFDVSxPQU5iO0FBT0xjLFlBQUFBLFFBQVEsRUFBS3hCLElBQUksQ0FBQ3lCO0FBUGI7QUFEeUQsU0FBbkQsQ0FBYjtBQVdBLE9BL0VROztBQWlGVDs7Ozs7Ozs7O0FBU0FDLE1BQUFBLE1BQU0sRUFBRSxPQUFPakYsT0FBUCxFQUFnQnVELElBQWhCLEtBQXlCO0FBQ2hDLFlBQUksQ0FBQ0EsSUFBRCxJQUFTLE9BQU9BLElBQVAsS0FBZ0IsUUFBN0IsRUFBdUM7QUFDdEMsZ0JBQU0sSUFBSXRCLFNBQUosQ0FBYywrQkFBZCxDQUFOO0FBQ0E7O0FBQ0QsYUFBSyxNQUFNNkIsR0FBWCxJQUFrQixDQUFFLGFBQUYsRUFBaUIsYUFBakIsRUFBZ0MsV0FBaEMsQ0FBbEIsRUFBaUU7QUFDaEUsY0FBSSxDQUFDUCxJQUFJLENBQUNPLEdBQUQsQ0FBTCxJQUFjLE9BQU9QLElBQUksQ0FBQ08sR0FBRCxDQUFYLEtBQXFCLFFBQXZDLEVBQWlEO0FBQ2hELGtCQUFNLElBQUk3QixTQUFKLENBQWUsWUFBVzZCLEdBQUcsQ0FBQ2xFLE9BQUosQ0FBWSxRQUFaLEVBQXNCbUUsQ0FBQyxJQUFLLElBQUdBLENBQUMsQ0FBQ0MsV0FBRixFQUFnQixFQUEvQyxDQUFrRCwyQkFBNUUsQ0FBTjtBQUNBO0FBQ0Q7O0FBQ0QsZUFBTyxNQUFNLEtBQUt6RCxPQUFMLENBQWEseUJBQWIsRUFBd0NQLE9BQXhDLEVBQWlEO0FBQUVtQyxVQUFBQSxJQUFJLEVBQUVvQixJQUFSO0FBQWMyQixVQUFBQSxTQUFTLEVBQUU7QUFBekIsU0FBakQsQ0FBYjtBQUNBLE9BcEdROztBQXNHVDs7Ozs7OztBQU9BQyxNQUFBQSxlQUFlLEVBQUUsT0FBT25GLE9BQVAsRUFBZ0IyQyxPQUFoQixLQUE0QjtBQUM1QyxZQUFJLENBQUNBLE9BQUQsSUFBWSxPQUFPQSxPQUFQLEtBQW1CLFFBQW5DLEVBQTZDO0FBQzVDLGdCQUFNLElBQUlWLFNBQUosQ0FBYyxtQkFBZCxDQUFOO0FBQ0E7O0FBQ0QsZUFBTyxNQUFNLEtBQUsxQixPQUFMLENBQWMsZUFBY29DLE9BQVEsU0FBcEMsRUFBOEMzQyxPQUE5QyxDQUFiO0FBQ0EsT0FsSFE7O0FBb0hUOzs7Ozs7QUFNQW9GLE1BQUFBLE1BQU0sRUFBRSxPQUFPcEYsT0FBUCxFQUFnQjJDLE9BQWhCLEtBQTRCO0FBQ25DLFlBQUksQ0FBQ0EsT0FBRCxJQUFZLE9BQU9BLE9BQVAsS0FBbUIsUUFBbkMsRUFBNkM7QUFDNUMsZ0JBQU0sSUFBSVYsU0FBSixDQUFjLG1CQUFkLENBQU47QUFDQTs7QUFDRCxlQUFPLE1BQU0sS0FBSzFCLE9BQUwsQ0FBYyxlQUFjb0MsT0FBUSxFQUFwQyxFQUF1QzNDLE9BQXZDLENBQWI7QUFDQSxPQS9IUTs7QUFpSVQ7Ozs7QUFJQXFGLE1BQUFBLGVBQWUsRUFBRSxNQUFPLEdBQUUsS0FBSzdGLEdBQUwsQ0FBU0csV0FBWSxvQkFySXRDOztBQXVJVDs7Ozs7QUFLQTJGLE1BQUFBLFlBQVksRUFBRSxNQUFNdEYsT0FBTixJQUFpQixNQUFNLEtBQUtPLE9BQUwsQ0FBYSxtQkFBYixFQUFrQ1AsT0FBbEMsQ0E1STVCOztBQThJVDs7Ozs7OztBQU9BdUYsTUFBQUEsTUFBTSxFQUFFLE9BQU92RixPQUFQLEVBQWdCZ0YsS0FBaEIsS0FBMEI7QUFDakMsWUFBSSxDQUFDQSxLQUFELElBQVUsT0FBT0EsS0FBUCxLQUFpQixRQUEvQixFQUF5QztBQUN4QyxnQkFBTSxJQUFJL0MsU0FBSixDQUFjLHlDQUFkLENBQU47QUFDQTs7QUFDRCxlQUFPLE1BQU0sS0FBSzFCLE9BQUwsQ0FBYSwyQkFBYixFQUEwQ1AsT0FBMUMsRUFBbUQ7QUFBRW1DLFVBQUFBLElBQUksRUFBRTtBQUFFNkMsWUFBQUE7QUFBRjtBQUFSLFNBQW5ELENBQWI7QUFDQTtBQTFKUSxLQUFWO0FBNEpBO0FBRUQ7Ozs7Ozs7QUFLQSxNQUFJL0UsTUFBSixHQUFhO0FBQ1osUUFBSTtBQUNILFVBQUksQ0FBQyxLQUFLdUYsT0FBVixFQUFtQjtBQUNsQixhQUFLQSxPQUFMLEdBQWUsSUFBSUMsdUJBQUosQ0FBUyxLQUFLbEcsSUFBZCxDQUFmO0FBQ0E7O0FBQ0QsYUFBTyxLQUFLaUcsT0FBWjtBQUNBLEtBTEQsQ0FLRSxPQUFPRSxHQUFQLEVBQVk7QUFDYixVQUFJQSxHQUFHLENBQUNDLElBQUosS0FBYSw4QkFBakIsRUFBaUQ7QUFDaEQsY0FBTUMsS0FBSyxHQUFHQyxPQUFPLENBQUNDLFFBQVIsS0FBcUIsT0FBbkM7QUFDQUosUUFBQUEsR0FBRyxDQUFDL0QsT0FBSixHQUFlLDJGQUEwRmlFLEtBQUssR0FBRyxFQUFILEdBQVEsT0FBUSx3QkFBdUJBLEtBQUssR0FBRyxFQUFILEdBQVEsZ0JBQWlCLG9CQUFuTDtBQUNBOztBQUNELFlBQU1GLEdBQU47QUFDQTtBQUNEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0FBWUEsUUFBTW5GLE9BQU4sQ0FBY3dGLElBQWQsRUFBb0IvRixPQUFwQixFQUE2QjtBQUFFa0YsSUFBQUEsU0FBUyxHQUFHLFFBQWQ7QUFBd0IvQyxJQUFBQSxJQUF4QjtBQUE4QjZELElBQUFBO0FBQTlCLE1BQXlDLEVBQXRFLEVBQTBFO0FBQUE7O0FBQ3pFLFFBQUksQ0FBQ2hHLE9BQUQsSUFBWSxPQUFPQSxPQUFQLEtBQW1CLFFBQW5DLEVBQTZDO0FBQzVDLFlBQU0sSUFBSXBCLEtBQUosQ0FBVSxrQkFBVixDQUFOO0FBQ0E7O0FBRUQsVUFBTTtBQUFFcUgsTUFBQUE7QUFBRixRQUFVakcsT0FBaEI7QUFDQSxVQUFNa0csS0FBSyxvQkFBR2xHLE9BQU8sQ0FBQ0gsSUFBWCwwRUFBRyxjQUFjc0csTUFBakIseURBQUcscUJBQXNCQyxZQUFwQzs7QUFDQSxRQUFJLENBQUNILEdBQUQsSUFBUSxDQUFDQyxLQUFiLEVBQW9CO0FBQ25CLFlBQU0sSUFBSXRILEtBQUosQ0FBVSx5QkFBVixDQUFOO0FBQ0E7O0FBRUQsVUFBTXlILEdBQUcsR0FBSSxHQUFFLEtBQUsxRyxXQUFMLElBQW9CLEtBQUtILEdBQUwsQ0FBU0csV0FBWSxHQUFFb0csSUFBSyxFQUEvRDtBQUNBLFVBQU1PLE9BQU8sR0FBRztBQUNmQyxNQUFBQSxNQUFNLEVBQUU7QUFETyxLQUFoQjs7QUFJQSxRQUFJdkcsT0FBTyxDQUFDaUcsR0FBWixFQUFpQjtBQUNoQkssTUFBQUEsT0FBTyxDQUFDRSxNQUFSLEdBQWtCLGVBQWN4RyxPQUFPLENBQUNpRyxHQUFJLEVBQTVDO0FBQ0EsS0FGRCxNQUVPO0FBQ05LLE1BQUFBLE9BQU8sQ0FBQ0csYUFBUixHQUF5QixVQUFTUCxLQUFNLEVBQXhDO0FBQ0E7O0FBRUQsUUFBSSxDQUFDRixNQUFMLEVBQWE7QUFDWkEsTUFBQUEsTUFBTSxHQUFHN0QsSUFBSSxHQUFHLE1BQUgsR0FBWSxLQUF6QjtBQUNBOztBQUVEcEQsSUFBQUEsR0FBRyxDQUFFLGNBQWFFLE9BQU8sQ0FBQytHLE1BQUQsQ0FBUyxJQUFHaEgsU0FBUyxDQUFDcUgsR0FBRCxDQUFNLElBQUduSCxJQUFJLENBQUUsSUFBR2MsT0FBTyxDQUFDaUcsR0FBUixHQUFlLE9BQU1qRyxPQUFPLENBQUNpRyxHQUFJLEVBQWpDLEdBQXNDLFNBQVFDLEtBQU0sRUFBRSxHQUEzRCxDQUErRCxFQUF2SCxDQUFIO0FBQ0EsVUFBTTNELFFBQVEsR0FBRyxNQUFNbUUsYUFBSVYsTUFBSixFQUFZSyxHQUFaLEVBQWlCO0FBQ3ZDQyxNQUFBQSxPQUR1QztBQUV2Q25FLE1BQUFBLElBRnVDO0FBR3ZDd0UsTUFBQUEsWUFBWSxFQUFFLE1BSHlCO0FBSXZDQyxNQUFBQSxLQUFLLEVBQUU7QUFKZ0MsS0FBakIsQ0FBdkI7QUFPQSxVQUFNQyxPQUFPLEdBQUd0RSxRQUFRLENBQUMrRCxPQUFULENBQWlCLFlBQWpCLENBQWhCO0FBQ0EsVUFBTVEsVUFBVSxHQUFHRCxPQUFPLDhCQUFJRSx5QkFBVUMsS0FBVixDQUFnQkgsT0FBaEIsRUFBeUIvRyxJQUF6QixDQUE4Qm1ILENBQUMsSUFBSUEsQ0FBQyxDQUFDdEcsSUFBRixLQUFXLGFBQTlDLENBQUosMERBQUksc0JBQThEdUcsS0FBbEUsQ0FBMUI7O0FBQ0EsUUFBSUosVUFBSixFQUFnQjtBQUNmL0gsTUFBQUEsR0FBRyxDQUFFLGdCQUFlQyxTQUFTLENBQUM4SCxVQUFELENBQWEsRUFBdkMsQ0FBSDtBQUNBOUcsTUFBQUEsT0FBTyxDQUFDaUcsR0FBUixHQUFjYSxVQUFkO0FBQ0EsWUFBTSxLQUFLN0csTUFBTCxDQUFZd0IsYUFBWixDQUEwQnpCLE9BQTFCLENBQU47QUFDQTs7QUFFRCw2QkFBT3VDLFFBQVEsQ0FBQzRFLElBQWhCLG1EQUFPLGVBQWdCakMsU0FBaEIsQ0FBUDtBQUNBOztBQS9jc0I7OztlQWtkVDdGLFUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmICghRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UpIHtcblx0cmVxdWlyZSgnc291cmNlLW1hcC1zdXBwb3J0L3JlZ2lzdGVyJyk7XG59XG5cbmltcG9ydCBBdXRoIGZyb20gJ0BheHdheS9hbXBsaWZ5LWF1dGgtc2RrJztcbmltcG9ydCBzZXRDb29raWUgZnJvbSAnc2V0LWNvb2tpZS1wYXJzZXInO1xuaW1wb3J0IGdvdCBmcm9tICdnb3QnO1xuaW1wb3J0IHNub29wbG9nZyBmcm9tICdzbm9vcGxvZ2cnO1xuXG5pbXBvcnQgKiBhcyBlbnZpcm9ubWVudHMgZnJvbSAnLi9lbnZpcm9ubWVudHMnO1xuXG5jb25zdCB7IGxvZyB9ID0gc25vb3Bsb2dnKCdhbXBsaWZ5LXNkaycpO1xuY29uc3QgeyBoaWdobGlnaHQsIG1hZ2VudGEsIG5vdGUgfSA9IHNub29wbG9nZy5zdHlsZXM7XG5cbi8qKlxuICogQW4gU0RLIGZvciBhY2Nlc3NpbmcgQU1QTElGWSBBUEkncy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlTREsge1xuXHQvKipcblx0ICogSW5pdGlhbGl6ZXMgdGhlIGVudmlyb25tZW50IGFuZCBTREsncyBBUEkuXG5cdCAqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gQXV0aGVudGljYXRpb24gb3B0aW9ucy5cblx0ICogQHBhcmFtIHtPYmplY3R9IFtvcHRzLmVudj1wcm9kXSAtIFRoZSBlbnZpcm9ubWVudCBuYW1lLlxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0Y29uc3RydWN0b3Iob3B0cykge1xuXHRcdC8qKlxuXHRcdCAqIEF1dGhlbnRpY2F0aW9uIG9wdGlvbnMgaW5jbHVkaW5nIGJhc2VVUkwsIGNsaWVudElELCBlbnYsIHJlYWxtLCBhbmQgdG9rZW4gc3RvcmUgc2V0dGluZ3MuXG5cdFx0ICogQHR5cGUge09iamVjdH1cblx0XHQgKi9cblx0XHR0aGlzLm9wdHMgPSBvcHRzO1xuXG5cdFx0LyoqXG5cdFx0ICogUmVzb2x2ZWQgZW52aXJvbm1lbnQtc3BlY2lmaWMgc2V0dGluZ3MuXG5cdFx0ICogQHR5cGUge09iamVjdH1cblx0XHQgKi9cblx0XHR0aGlzLmVudiA9IGVudmlyb25tZW50cy5yZXNvbHZlKG9wdHMuZW52KTtcblxuXHRcdC8qKlxuXHRcdCAqIFRoZSBwbGF0Zm9ybSBVUkwuXG5cdFx0ICogQHR5cGUge1N0cmluZ31cblx0XHQgKi9cblx0XHR0aGlzLnBsYXRmb3JtVXJsID0gb3B0cy5wbGF0Zm9ybVVybCA/IG9wdHMucGxhdGZvcm1VcmwucmVwbGFjZSgvXFwvJC8sICcnKSA6IG51bGw7XG5cblx0XHR0aGlzLmF1dGggPSB7XG5cdFx0XHQvKipcblx0XHRcdCAqIEZpbmRzIGFuIGF1dGhlbnRpY2F0ZWQgYWNjb3VudCBvciBgbnVsbGAgaWYgbm90IGZvdW5kLiBJZiB0aGUgYWNjb3VudCBpcyBmb3VuZCBhbmRcblx0XHRcdCAqIHRoZSBhY2Nlc3MgdG9rZW4gaXMgZXhwaXJlZCB5ZXQgdGhlIHJlZnJlc2ggdG9rZW4gaXMgc3RpbGwgdmFsaWQsIGl0IHdpbGxcblx0XHRcdCAqIGF1dG9tYXRpY2FsbHkgZ2V0IGEgdmFsaWQgYWNjZXNzIHRva2VuLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IGFjY291bnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGFjY291bnQgaW5jbHVkaW5nIHRoZSBjbGllbnQgaWQgcHJlZml4LlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gUmVzb2x2ZXMgdGhlIGFjY291bnQgaW5mbyBvYmplY3QuXG5cdFx0XHQgKi9cblx0XHRcdGZpbmQ6IGFzeW5jIGFjY291bnROYW1lID0+IHtcblx0XHRcdFx0Y29uc3QgYWNjb3VudCA9IGF3YWl0IHRoaXMuY2xpZW50LmZpbmQoYWNjb3VudE5hbWUpO1xuXHRcdFx0XHRyZXR1cm4gYWNjb3VudCA/IGF3YWl0IHRoaXMuYXV0aC5sb2FkU2Vzc2lvbihhY2NvdW50KSA6IG51bGw7XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBhdXRoZW50aWNhdGVkIGFjY291bnRzLlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8QXJyYXk+fVxuXHRcdFx0ICovXG5cdFx0XHRsaXN0OiAoKSA9PiB0aGlzLmNsaWVudC5saXN0KCksXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogUG9wdWxhdGVzIHRoZSBzcGVjaWZpZWQgYWNjb3VudCBpbmZvIG9iamVjdCB3aXRoIGEgZGFzaGJvYXJkIHNlc3Npb24gaWQgYW5kIG9yZ1xuXHRcdFx0ICogaW5mb3JtYXRpb24uXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gYWNjb3VudCAtIFRoZSBhY2NvdW50IG9iamVjdC5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc29sdmVzIHRoZSBvcmlnaW5hbCBhY2NvdW50IGluZm8gb2JqZWN0LlxuXHRcdFx0ICovXG5cdFx0XHRsb2FkU2Vzc2lvbjogYXN5bmMgYWNjb3VudCA9PiB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Y29uc3QgeyBvcmcsIG9yZ3MsIHVzZXIgfSA9IGF3YWl0IHRoaXMucmVxdWVzdCgnL2FwaS92MS9hdXRoL2ZpbmRTZXNzaW9uJywgYWNjb3VudCk7XG5cblx0XHRcdFx0XHRhY2NvdW50Lm9yZyA9IHtcblx0XHRcdFx0XHRcdGd1aWQ6IG9yZy5ndWlkLFxuXHRcdFx0XHRcdFx0aWQ6ICAgb3JnLm9yZ19pZCxcblx0XHRcdFx0XHRcdG5hbWU6IG9yZy5uYW1lXG5cdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdGxvZyhgQ3VycmVudCBvcmc6ICR7aGlnaGxpZ2h0KG9yZy5uYW1lKX0gJHtub3RlKGAoJHtvcmcub3JnX2lkfSlgKX1gKTtcblx0XHRcdFx0XHRhY2NvdW50Lm9yZ3MgPSBvcmdzLm1hcCgoeyBndWlkLCBuYW1lLCBvcmdfaWQgfSkgPT4gKHsgZ3VpZCwgaWQ6IG9yZ19pZCwgbmFtZSB9KSk7XG5cblx0XHRcdFx0XHRsb2coJ0F2YWlsYWJsZSBvcmdzOicpO1xuXHRcdFx0XHRcdGZvciAoY29uc3Qgb3JnIG9mIGFjY291bnQub3Jncykge1xuXHRcdFx0XHRcdFx0bG9nKGAgICR7aGlnaGxpZ2h0KG9yZy5uYW1lKX0gJHtub3RlKGAoJHtvcmcuaWR9KWApfWApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdE9iamVjdC5hc3NpZ24oYWNjb3VudC51c2VyLCB7XG5cdFx0XHRcdFx0XHRheHdheUlkOiAgICAgIHVzZXIuYXh3YXlfaWQsXG5cdFx0XHRcdFx0XHRlbWFpbDogICAgICAgIHVzZXIuZW1haWwsXG5cdFx0XHRcdFx0XHRmaXJzdE5hbWU6ICAgIHVzZXIuZmlyc3RuYW1lLFxuXHRcdFx0XHRcdFx0Z3VpZDogICAgICAgICB1c2VyLmd1aWQsXG5cdFx0XHRcdFx0XHRpczJGQUVuYWJsZWQ6ICF1c2VyLmRpc2FibGVfMmZhLFxuXHRcdFx0XHRcdFx0bGFzdE5hbWU6ICAgICB1c2VyLmxhc3RuYW1lLFxuXHRcdFx0XHRcdFx0b3JnYW5pemF0aW9uOiB1c2VyLm9yZ2FuaXphdGlvblxuXHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5jbGllbnQudXBkYXRlQWNjb3VudChhY2NvdW50KTtcblxuXHRcdFx0XHRcdHJldHVybiBhY2NvdW50O1xuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZ2V0IHNlc3Npb246ICR7ZS5tZXNzYWdlfWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIEF1dGhlbnRpY2F0ZXMgYSB1c2VyLCByZXRyaWV2ZXMgdGhlIGFjY2VzcyB0b2tlbnMsIHBvcHVsYXRlcyB0aGUgc2Vzc2lvbiBpZCBhbmRcblx0XHRcdCAqIG9yZyBpbmZvLCBhbmQgcmV0dXJucyBpdC5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gVmFyaW91cyBhdXRoZW50aWNhdGlvbiBvcHRpb25zIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0cyBzZXRcblx0XHRcdCAqIHZpYSB0aGUgY29uc3RydWN0b3IuIFNlZSB0aGUgQU1QTElGWSBBdXRoIFNESyAoQGF4d2F5L2FtcGxpZnktYXV0aC1zZGspIGZvciBtb3JlXG5cdFx0XHQgKiBkZXRhaWxzLlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gUmVzb2x2ZXMgdGhlIGFjY291bnQgaW5mbyBvYmplY3QuXG5cdFx0XHQgKi9cblx0XHRcdGxvZ2luOiBhc3luYyBvcHRzID0+IHtcblx0XHRcdFx0Y29uc3QgYWNjb3VudCA9IGF3YWl0IHRoaXMuY2xpZW50LmxvZ2luKG9wdHMpO1xuXHRcdFx0XHRyZXR1cm4gYXdhaXQgdGhpcy5hdXRoLmxvYWRTZXNzaW9uKGFjY291bnQpO1xuXHRcdFx0fSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBEaXNjYXJkcyBhbiBhY2Nlc3MgdG9rZW4gYW5kIG5vdGlmaWVzIEF4d2F5SUQgdG8gcmV2b2tlIHRoZSBhY2Nlc3MgdG9rZW4uXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIFZhcmlvdXMgYXV0aGVudGljYXRpb24gb3B0aW9ucyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdHMgc2V0XG5cdFx0XHQgKiB2aWEgdGhlIGNvbnN0cnVjdG9yLiBTZWUgdGhlIEFNUExJRlkgQXV0aCBTREsgKEBheHdheS9hbXBsaWZ5LWF1dGgtc2RrKSBmb3IgbW9yZVxuXHRcdFx0ICogZGV0YWlscy5cblx0XHRcdCAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz58U3RyaW5nfSBvcHRzLmFjY291bnRzIC0gQSBsaXN0IG9mIGFjY291bnRzIG5hbWVzLlxuXHRcdFx0ICogQHBhcmFtIHtCb29sZWFufSBvcHRzLmFsbCAtIFdoZW4gYHRydWVgLCByZXZva2VzIGFsbCBhY2NvdW50cy5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0cy5iYXNlVXJsXSAtIFRoZSBiYXNlIFVSTCB1c2VkIHRvIGZpbHRlciBhY2NvdW50cy5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc29sdmVzIGEgbGlzdCBvZiByZXZva2VkIGNyZWRlbnRpYWxzLlxuXHRcdFx0ICovXG5cdFx0XHRsb2dvdXQ6IG9wdHMgPT4gdGhpcy5jbGllbnQubG9nb3V0KG9wdHMpLFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIFJldHVybnMgQXh3YXlJRCBzZXJ2ZXIgaW5mb3JtYXRpb24uXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIFZhcmlvdXMgYXV0aGVudGljYXRpb24gb3B0aW9ucyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdHMgc2V0XG5cdFx0XHQgKiB2aWEgdGhlIGNvbnN0cnVjdG9yLiBTZWUgdGhlIEFNUExJRlkgQXV0aCBTREsgKEBheHdheS9hbXBsaWZ5LWF1dGgtc2RrKSBmb3IgbW9yZVxuXHRcdFx0ICogZGV0YWlscy5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPG9iamVjdD59XG5cdFx0XHQgKi9cblx0XHRcdHNlcnZlckluZm86IG9wdHMgPT4gdGhpcy5jbGllbnQuc2VydmVySW5mbyhvcHRzKSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBTd2l0Y2hlcyB5b3VyIGN1cnJlbnQgb3JnYW5pemF0aW9uLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGFjY291bnQgLSBUaGUgYWNjb3VudCBvYmplY3QuIE5vdGUgdGhhdCB0aGlzIG9iamVjdCByZWZlcmVuY2Ugd2lsbFxuXHRcdFx0ICogYmUgdXBkYXRlcyB3aXRoIG5ldyBvcmcgaW5mby5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBvcmdJZCAtIFRoZSBvcmcgaWQgdG8gc3dpdGNoIHRvLiBOb3RlIHRoaXMgaXMgTk9UIHRoZSBvcmcgZ3VpZC5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc29sdmVzIHRoZSB1cGRhdGVkIGFjY291bnQgb2JqZWN0LlxuXHRcdFx0ICovXG5cdFx0XHRzd2l0Y2hPcmc6IGFzeW5jIChhY2NvdW50LCBvcmdJZCkgPT4ge1xuXHRcdFx0XHRpZiAoIW9yZ0lkIHx8IHR5cGVvZiBvcmdJZCAhPT0gJ251bWJlcicpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBvcmcgaWQnKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNvbnN0IHsgZ3VpZCwgb3JnX2lkLCBvcmdfbmFtZTogbmFtZSB9ID0gYXdhaXQgdGhpcy5yZXF1ZXN0KCcvYXBpL3YxL2F1dGgvc3dpdGNoTG9nZ2VkSW5PcmcnLCBhY2NvdW50LCB7XG5cdFx0XHRcdFx0anNvbjogeyBvcmdfaWQ6IG9yZ0lkIH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdGFjY291bnQub3JnID0geyBndWlkLCBuYW1lLCBvcmdfaWQgfTtcblx0XHRcdFx0YXdhaXQgdGhpcy5jbGllbnQudXBkYXRlQWNjb3VudChhY2NvdW50KTtcblxuXHRcdFx0XHRyZXR1cm4gYWNjb3VudDtcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0Y29uc3QgbWJzVXNlckhlbHBlciA9IGFzeW5jIChhY2NvdW50LCBncm91cElkLCBlbnYsIHVzZXJJbmZvKSA9PiB7XG5cdFx0XHRpZiAoIWdyb3VwSWQgfHwgdHlwZW9mIGdyb3VwSWQgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGdyb3VwIGlkIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCFlbnYgfHwgdHlwZW9mIGVudiAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgZW52IHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuXHRcdFx0fVxuXG5cdFx0XHRsZXQgb3B0cyA9IHVzZXJJbmZvICYmIHsganNvbjogdXNlckluZm8gfTtcblx0XHRcdGNvbnN0IHsgcmVzcG9uc2UgfSA9IGF3YWl0IHRoaXMucmVxdWVzdChgL2FwaS92MS9hY3MvJHtncm91cElkfS8ke2Vudn0vZGF0YS91c2VyYCwgYWNjb3VudCwgb3B0cyk7XG5cdFx0XHRyZXR1cm4gcmVzcG9uc2UudXNlcnM7XG5cdFx0fTtcblxuXHRcdHRoaXMubWJzID0ge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBDcmVhdGVzIGEgbmV3IE1CUyBhcHAgZm9yIGVhY2ggTUJTIGVudmlyb25tZW50LlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGFjY291bnQgLSBUaGUgYWNjb3VudCBvYmplY3QuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gYXBwR3VpZCAtIFRoZSBNQlMgYXBwIGd1aWQuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gYXBwTmFtZSAtIFRoZSBNQlMgbmFtZS5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5Pn0gUmVzb2x2ZXMgdGhlIGxpc3Qgb2YgY3JlYXRlZCBhcHBzLlxuXHRcdFx0ICovXG5cdFx0XHRjcmVhdGVBcHBzOiBhc3luYyAoYWNjb3VudCwgYXBwR3VpZCwgYXBwTmFtZSkgPT4ge1xuXHRcdFx0XHRjb25zdCB7IHJlc3BvbnNlIH0gPSBhd2FpdCB0aGlzLnJlcXVlc3QoJy9hcGkvdjEvYWNzJywgYWNjb3VudCwge1xuXHRcdFx0XHRcdGpzb246IHtcblx0XHRcdFx0XHRcdGFwcF9ndWlkOiBhcHBHdWlkLFxuXHRcdFx0XHRcdFx0YXBwX25hbWU6IGFwcE5hbWVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2UuYXBwcztcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogQ3JlYXRlcyBhbiBNQlMgdXNlci5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBhY2NvdW50IC0gVGhlIGFjY291bnQgb2JqZWN0LlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IGdyb3VwSWQgLSBUaGUgTUJTIGFwcCBndWlkIChpLmUuIGdyb3VwIGlkKS5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBlbnYgLSBUaGUgTUJTIGVudmlyb25tZW50IChwcm9kdWN0aW9uLCBkZXZlbG9wbWVudCwgVlBDIG5hbWUpLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IHVzZXJJbmZvIC0gRGV0YWlsZWQgdXNlciBpbmZvcm1hdGlvbi5cblx0XHRcdCAqIEBwYXJhbSB7P30gW3VzZXJJbmZvLmFkbWluXSAtIEEgYWRtaW4gZmxhZyBvZiBzb21lIHNvcnQuXG5cdFx0XHQgKiBAcGFyYW0gez99IFt1c2VySW5mby5jdXN0b21fZmllbGRzXSAtIEN1c3RvbSBmaWVsZHMgb2Ygc29tZSBzb3J0LlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IFt1c2VySW5mby5lbWFpbF0gLSBUaGUgdXNlcidzIGVtYWlsIGFkZHJlc3MuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gW3VzZXJJbmZvLmZpcnN0X25hbWVdIC0gVGhlIHVzZXIncyBmaXJzdCBuYW1lLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IFt1c2VySW5mby5sYXN0X25hbWVdIC0gVGhlIHVzZXIncyBsYXN0IG5hbWUuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gdXNlckluZm8ucGFzc3dvcmQgLSBUaGUgdXNlcidzIHBhc3N3b3JkLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IHVzZXJJbmZvLnBhc3N3b3JkX2NvbmZpcm1hdGlvbiAtIFRoZSBwYXNzd29yZCBjb25maXJtYXRpb24uXG5cdFx0XHQgKiBAcGFyYW0gez99IFt1c2VySW5mby5waG90b19pZF0gLSBBIHBob3RvIGlkIG9mIHNvbWUgc29ydC5cblx0XHRcdCAqIEBwYXJhbSB7P30gW3VzZXJJbmZvLnJvbGVdIC0gVGhlIHVzZXIncyByb2xlLlxuXHRcdFx0ICogQHBhcmFtIHs/fSBbdXNlckluZm8udGFnc10gLSBNZXRhZGF0YSBvZiBzb21lIHNvcnQuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gW3VzZXJJbmZvLnVzZXJuYW1lXSAtIFRoZSB1c2VyJ3MgdXNlcm5hbWUuXG5cdFx0XHQgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheT59IFJlc29sdmVzIHRoZSBuZXdseSBjcmVhdGVkIHVzZXIgcmVjb3JkIGluY2x1ZGluZyB0aGUgYGlkYCxcblx0XHRcdCAqIGBmaXJzdF9uYW1lYCwgYGxhc3RfbmFtZWAsIGBjcmVhdGVkX2F0YCwgYHVwZGF0ZWRfYXRgLCBgZXh0ZXJuYWxfYWNjb3VudHNgLFxuXHRcdFx0ICogYGNvbmZpcm1lZF9hdGAsIGB1c2VybmFtZWAsIGBlbWFpbGAsIGBhZG1pbmAsIGBzdGF0c2AsIGFuZCBgZnJpZW5kX2NvdW50c2AuXG5cdFx0XHQgKi9cblx0XHRcdGNyZWF0ZVVzZXI6IGFzeW5jIChhY2NvdW50LCBncm91cElkLCBlbnYsIHVzZXJJbmZvKSA9PiB7XG5cdFx0XHRcdGlmICghdXNlckluZm8gfHwgdHlwZW9mIHVzZXJJbmZvICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIHVzZXIgaW5mbyB0byBiZSBhbiBvYmplY3QnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIXVzZXJJbmZvLnBhc3N3b3JkIHx8IHR5cGVvZiB1c2VySW5mby5wYXNzd29yZCAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCB1c2VyIHBhc3N3b3JkIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZycpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghdXNlckluZm8ucGFzc3dvcmRfY29uZmlybWF0aW9uIHx8IHR5cGVvZiB1c2VySW5mby5wYXNzd29yZF9jb25maXJtYXRpb24gIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgdXNlciBwYXNzd29yZCBjb25maXJtYXRpb24gdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIChhd2FpdCBtYnNVc2VySGVscGVyKGFjY291bnQsIGdyb3VwSWQsIGVudiwgdXNlckluZm8pKVswXTtcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGVudmlyb25tZW50cyBhc3NvY2lhdGVkIHRvIHRoZSB1c2VyJ3Mgb3JnLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGFjY291bnQgLSBUaGUgYWNjb3VudCBvYmplY3QuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZ3JvdXBJZCAtIFRoZSBNQlMgYXBwIGd1aWQgKGkuZS4gZ3JvdXAgaWQpLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IGVudiAtIFRoZSBNQlMgZW52aXJvbm1lbnQgKHByb2R1Y3Rpb24sIGRldmVsb3BtZW50LCBWUEMgbmFtZSkuXG5cdFx0XHQgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheT59XG5cdFx0XHQgKi9cblx0XHRcdGdldFVzZXJzOiBhc3luYyAoYWNjb3VudCwgZ3JvdXBJZCwgZW52KSA9PiB7XG5cdFx0XHRcdHJldHVybiBhd2FpdCBtYnNVc2VySGVscGVyKGFjY291bnQsIGdyb3VwSWQsIGVudik7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdHRoaXMub3JnID0ge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgZW52aXJvbm1lbnRzIGFzc29jaWF0ZWQgdG8gdGhlIHVzZXIncyBvcmcuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gYWNjb3VudCAtIFRoZSBhY2NvdW50IG9iamVjdC5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5Pn1cblx0XHRcdCAqL1xuXHRcdFx0Z2V0RW52aXJvbm1lbnRzOiBhY2NvdW50ID0+IHRoaXMucmVxdWVzdCgnL2FwaS92MS9vcmcvZW52JywgYWNjb3VudClcblx0XHR9O1xuXG5cdFx0dGhpcy50aSA9IHtcblx0XHRcdC8qKlxuXHRcdFx0ICogVXBkYXRlcyB0aGUgYXBwJ3MgYnVpbGQgaW5mbyBpbiB0aGUgcGxhdGZvcm0uXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gYWNjb3VudCAtIFRoZSBhY2NvdW50IG9iamVjdC5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gUG9zdCBkYXRhLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IGRhdGEuYnVpbGRJZCAtIFRoZSBidWlsZCBpZC5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhLmJ1aWxkU0hBIC0gQSBTSEEgb2YgYWxsIFNIQXMgb2YgZW5jcnlwdGVkIC5qcyBmaWxlcy5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhLmtleXMgLSBBIG1hcCBvZiBmaWxlbmFtZXMgb2YgdGhlIGVuY3J5cHRlZCAuanMgZmlsZXMgYW5kIHRoZWlyXG5cdFx0XHQgKiByZXNwZWN0aXZlIGtleXMuXG5cdFx0XHQgKiBAcmV0dXJucyB7UHJvbWlzZX1cblx0XHRcdCAqL1xuXHRcdFx0YnVpbGRVcGRhdGU6IGFzeW5jIChhY2NvdW50LCBkYXRhKSA9PiB7XG5cdFx0XHRcdGlmICghZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBkYXRhIHRvIGJlIGFuIG9iamVjdCcpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghZGF0YS5idWlsZElkIHx8IHR5cGVvZiBkYXRhLmJ1aWxkSWQgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYnVpbGQgaWQgdG8gYmUgYSBzdHJpbmcnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIWRhdGEuYnVpbGRTSEEgfHwgdHlwZW9mIGRhdGEuYnVpbGRTSEEgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYnVpbGQgU0hBIHRvIGJlIGEgc3RyaW5nJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCFkYXRhLmtleXMgfHwgdHlwZW9mIGRhdGEua2V5cyAhPT0gJ29iamVjdCcpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBrZXlzIHRvIGJlIGFuIG9iamVjdCcpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YXdhaXQgdGhpcy5yZXF1ZXN0KCcvYXBpL3YxL2F1dGgvYnVpbGQtdXBkYXRlJywgYWNjb3VudCwge1xuXHRcdFx0XHRcdGpzb246IHtcblx0XHRcdFx0XHRcdGJ1aWxkaWQ6ICBkYXRhLmJ1aWxkSWQsXG5cdFx0XHRcdFx0XHRidWlsZHNoYTogZGF0YS5idWlsZFNIQSxcblx0XHRcdFx0XHRcdGtleXM6ICAgICB7IC4uLmRhdGEua2V5cyB9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogVmVyaWZpZXMgdGhlIGFwcCBpcyByZWdpc3RlcmVkIGFuZCB0aGUgdXNlciBoYXMgcmlnaHRzIHRvIGJ1aWxkIHRoZSBhcHAgYW5kIHVzZSB0aGVcblx0XHRcdCAqIG1vZHVsZXMuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gYWNjb3VudCAtIFRoZSBhY2NvdW50IG9iamVjdC5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gUG9zdCBkYXRhLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IGRhdGEuYXBwR3VpZCAtIFRoZSBhcHBsaWNhdGlvbiBndWlkLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IGRhdGEuYXBwSWQgLSBUaGUgYXBwbGljYXRpb24gaWQuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZGF0YS5kZXBsb3lUeXBlIC0gVGhlIGRlcGxveSB0eXBlIChwcm9kdWN0aW9uLCB0ZXN0LCBkZXZlbG9wbWVudCkuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZGF0YS5maW5nZXJwcmludCAtIFRoZSBtYWNoaW5lJ3MgZmluZ2VycHJpbnQuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZGF0YS5pcEFkZHJlc3MgLSBUaGUgbWFjaGluZSdzIElQIGFkZHJlc3MuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gW2RhdGEubW9kdWxlc10gLSBBbiBhcnJheSBvZiBtb2R1bGVzIGZyb20gdGhlIGB0aWFwcC54bWxgLlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IGRhdGEudGlhcHAgLSBUaGUgY29udGVudHMgb2YgdGhlIGB0aWFwcC54bWxgLlxuXHRcdFx0ICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gUmVzb2x2ZXMgdGhlIHZlcmlmaWNhdGlvbiBpbmZvLlxuXHRcdFx0ICovXG5cdFx0XHRidWlsZFZlcmlmeTogYXN5bmMgKGFjY291bnQsIGRhdGEpID0+IHtcblx0XHRcdFx0aWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGRhdGEgdG8gYmUgYW4gb2JqZWN0Jyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Zm9yIChjb25zdCBrZXkgb2YgWyAnYXBwR3VpZCcsICdhcHBJZCcsICdkZXBsb3lUeXBlJywgJ2ZpbmdlcnByaW50JywgJ2lwQWRkcmVzcycsICd0aWFwcCcgXSkge1xuXHRcdFx0XHRcdGlmICghZGF0YVtrZXldIHx8IHR5cGVvZiBkYXRhW2tleV0gIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCAke2tleS5yZXBsYWNlKC9bQS1aXS9nLCBzID0+IGAgJHtzLnRvTG93ZXJDYXNlKCl9YCl9IHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZ2ApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoZGF0YS5tb2R1bGVzKSB7XG5cdFx0XHRcdFx0aWYgKCFBcnJheS5pc0FycmF5KGRhdGEubW9kdWxlcykgfHwgZGF0YS5tb2R1bGVzLnNvbWUobSA9PiAhbSB8fCB0eXBlb2YgbSAhPT0gJ29iamVjdCcpKSB7XG5cdFx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBtb2R1bGVzIHRvIGJlIGFuIGFycmF5IG9mIG9iamVjdHMnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZGF0YS5tb2R1bGVzID0gZGF0YS5tb2R1bGVzLm1hcChtID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IG9iaiA9IHsgLi4ubSB9O1xuXHRcdFx0XHRcdFx0ZGVsZXRlIG9iai5iaW5kaW5ncztcblx0XHRcdFx0XHRcdHJldHVybiBvYmo7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gYXdhaXQgdGhpcy5yZXF1ZXN0KCcvYXBpL3YxL2F1dGgvYnVpbGQtdmVyaWZ5JywgYWNjb3VudCwge1xuXHRcdFx0XHRcdGpzb246IHtcblx0XHRcdFx0XHRcdGFwcGlkOiAgICAgICBkYXRhLmFwcElkLFxuXHRcdFx0XHRcdFx0ZGVwbG95dHlwZTogIGRhdGEuZGVwbG95VHlwZSxcblx0XHRcdFx0XHRcdGZpbmdlcnByaW50OiBkYXRhLmZpbmdlcnByaW50LFxuXHRcdFx0XHRcdFx0Z3VpZDogICAgICAgIGRhdGEuYXBwR3VpZCxcblx0XHRcdFx0XHRcdGlwYWRkcmVzczogICBkYXRhLmlwQWRkcmVzcyxcblx0XHRcdFx0XHRcdG1vZHVsZXM6ICAgICBkYXRhLm1vZHVsZXMsXG5cdFx0XHRcdFx0XHR0aWFwcHhtbDogICAgZGF0YS50aWFwcFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIEdlbmVyYXRlcyBhIGRldmVsb3BlciBjZXJ0aWZpY2F0ZS5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBhY2NvdW50IC0gVGhlIGFjY291bnQgb2JqZWN0LlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBWYXJpb3VzIHBvc3QgZGF0YS5cblx0XHRcdCAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhLmRlc2NyaXB0aW9uIC0gVGhlIGRlc2NyaXB0aW9uIHRvIHVzZSBmb3IgdGhlIGNlcnQuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZGF0YS5maW5nZXJwcmludCAtIFRoZSBtYWNoaW5lJ3MgZmluZ2VycHJpbnQuXG5cdFx0XHQgKiBAcGFyYW0ge1N0cmluZ30gZGF0YS5wdWJsaWNLZXkgLSBQdWJsaWMga2V5IHRvIHVzZSBmb3IgdGhlIGNlcnQuXG5cdFx0XHQgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBSZXNvbHZlcyB0aGUgc2VydmVyIGdlbmVyYXRlZCBkZXZlbG9wZXIgY2VydGlmaWNhdGUuXG5cdFx0XHQgKi9cblx0XHRcdGVucm9sbDogYXN5bmMgKGFjY291bnQsIGRhdGEpID0+IHtcblx0XHRcdFx0aWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGRhdGEgdG8gYmUgYW4gb2JqZWN0Jyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Zm9yIChjb25zdCBrZXkgb2YgWyAnZGVzY3JpcHRpb24nLCAnZmluZ2VycHJpbnQnLCAncHVibGljS2V5JyBdKSB7XG5cdFx0XHRcdFx0aWYgKCFkYXRhW2tleV0gfHwgdHlwZW9mIGRhdGFba2V5XSAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkICR7a2V5LnJlcGxhY2UoL1tBLVpdL2csIHMgPT4gYCAke3MudG9Mb3dlckNhc2UoKX1gKX0gdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nYCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhd2FpdCB0aGlzLnJlcXVlc3QoJy9hcGkvdjEvYXV0aC9kZXYtZW5yb2xsJywgYWNjb3VudCwgeyBqc29uOiBkYXRhLCByZXN1bHRLZXk6ICdjZXJ0aWZpY2F0ZScgfSk7XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIFJldHJpZXZlcyB0aGUgVVJMIHRvIHVwbG9hZCBzeW1ib2xzIGZvciBjcmFzaCBhbmFseXRpY3MuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gYWNjb3VudCAtIFRoZSBhY2NvdW50IG9iamVjdC5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBhcHBHdWlkIC0gVGhlIFRpdGFuaXVtIGFwcGxpY2F0aW9uIGd1aWQuXG5cdFx0XHQgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSBSZXNvbHZlcyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgYHVybGAsIGBhcGlfdG9rZW5gLFxuXHRcdFx0ICogYGxpbWl0YCwgYW5kIGBtb2R1bGVgLlxuXHRcdFx0ICovXG5cdFx0XHRnZXRBQ0FVcGxvYWRVUkw6IGFzeW5jIChhY2NvdW50LCBhcHBHdWlkKSA9PiB7XG5cdFx0XHRcdGlmICghYXBwR3VpZCB8fCB0eXBlb2YgYXBwR3VpZCAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBhcHAgZ3VpZCcpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhd2FpdCB0aGlzLnJlcXVlc3QoYC9hcGkvdjEvYXBwLyR7YXBwR3VpZH0vdXBsb2FkYCwgYWNjb3VudCk7XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIEdldHMgaW5mbyBhYm91dCBhIFRpdGFuaXVtIGFwcC5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBhY2NvdW50IC0gVGhlIGFjY291bnQgb2JqZWN0LlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IGFwcEd1aWQgLSBUaGUgYXBwbGljYXRpb24gZ3VpZC5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc29sdmVzIHRoZSBhcHAgaW5mby5cblx0XHRcdCAqL1xuXHRcdFx0Z2V0QXBwOiBhc3luYyAoYWNjb3VudCwgYXBwR3VpZCkgPT4ge1xuXHRcdFx0XHRpZiAoIWFwcEd1aWQgfHwgdHlwZW9mIGFwcEd1aWQgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYXBwIGd1aWQnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gYXdhaXQgdGhpcy5yZXF1ZXN0KGAvYXBpL3YxL2FwcC8ke2FwcEd1aWR9YCwgYWNjb3VudCk7XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIENvbnN0cnVjdHMgdGhlIGFwcCB2ZXJpZnkgVVJMIHRoYXQgZ2V0cyBlbWJlZGRlZCBpbiBhIFRpdGFuaXVtIGFwcC5cblx0XHRcdCAqIEByZXR1cm5zIHtTdHJpbmd9XG5cdFx0XHQgKi9cblx0XHRcdGdldEFwcFZlcmlmeVVSTDogKCkgPT4gYCR7dGhpcy5lbnYucGxhdGZvcm1Vcmx9L2FwaS92MS9hcHAvdmVyaWZ5YCxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIFRpdGFuaXVtIG1vZHVsZXMuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gYWNjb3VudCAtIFRoZSBhY2NvdW50IG9iamVjdC5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5Pn0gUmVzb2x2ZXMgdGhlIGxpc3Qgb2YgbW9kdWxlcy5cblx0XHRcdCAqL1xuXHRcdFx0Z2V0RG93bmxvYWRzOiBhc3luYyBhY2NvdW50ID0+IGF3YWl0IHRoaXMucmVxdWVzdCgnL2FwaS92MS9kb3dubG9hZHMnLCBhY2NvdW50KSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBVcGRhdGVzIG9yIHJlZ2lzdGVycyBhIFRpdGFuaXVtIGFwcCB3aXRoIHRoZSBwbGF0Zm9ybSBieSB1cGxvYWRpbmcgYSBgdGlhcHAueG1sYC5cblx0XHRcdCAqIFRoZSB0aWFwcCBtdXN0IGNvbnRhaW4gYSBgPG5hbWU+YCwgYDxpZD5gLCBhbmQgYSBgPGd1aWQ+YC5cblx0XHRcdCAqIEBwYXJhbSB7T2JqZWN0fSBhY2NvdW50IC0gVGhlIGFjY291bnQgb2JqZWN0LlxuXHRcdFx0ICogQHBhcmFtIHtTdHJpbmd9IHRpYXBwIC0gVGhlIGNvbnRlbnRzIG9mIHRoZSBgdGlhcHAueG1sYC5cblx0XHRcdCAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc29sdmVzIHRoZSBhcHAgaW5mby5cblx0XHRcdCAqL1xuXHRcdFx0c2V0QXBwOiBhc3luYyAoYWNjb3VudCwgdGlhcHApID0+IHtcblx0XHRcdFx0aWYgKCF0aWFwcCB8fCB0eXBlb2YgdGlhcHAgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgdGlhcHAgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGF3YWl0IHRoaXMucmVxdWVzdCgnL2FwaS92MS9hcHAvc2F2ZUZyb21UaUFwcCcsIGFjY291bnQsIHsganNvbjogeyB0aWFwcCB9IH0pO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyBhbiBBTVBMSUZZIEF1dGggU0RLIGNsaWVudCBvciBjcmVhdGVzIG9uZSBpZiBpdCBkb2Vzbid0IGV4aXN0LlxuXHQgKiBAdHlwZSB7QXV0aH1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGdldCBjbGllbnQoKSB7XG5cdFx0dHJ5IHtcblx0XHRcdGlmICghdGhpcy5fY2xpZW50KSB7XG5cdFx0XHRcdHRoaXMuX2NsaWVudCA9IG5ldyBBdXRoKHRoaXMub3B0cyk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGhpcy5fY2xpZW50O1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0aWYgKGVyci5jb2RlID09PSAnRVJSX1NFQ1VSRV9TVE9SRV9VTkFWQUlMQUJMRScpIHtcblx0XHRcdFx0Y29uc3QgaXNXaW4gPSBwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInO1xuXHRcdFx0XHRlcnIubWVzc2FnZSA9IGBTZWN1cmUgdG9rZW4gc3RvcmUgaXMgbm90IGF2YWlsYWJsZS5cXG5QbGVhc2UgcmVpbnN0YWxsIHRoZSBBTVBMSUZZIENMSSBieSBydW5uaW5nOlxcbiAgICAke2lzV2luID8gJycgOiAnc3VkbyAnfW5wbSBpbnN0YWxsIC0tZ2xvYmFsICR7aXNXaW4gPyAnJyA6ICctLXVuc2FmZS1wZXJtICd9QGF4d2F5L2FtcGxpZnktY2xpYDtcblx0XHRcdH1cblx0XHRcdHRocm93IGVycjtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogTWFrZXMgYW4gSFRUUCByZXF1ZXN0LlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gcGF0aCAtIFRoZSBwYXRoIHRvIGFwcGVuZCB0byB0aGUgVVJMLlxuXHQgKiBAcGFyYW0ge09iamVjdH0gYWNjb3VudCAtIFRoZSBhY2NvdW50IG9iamVjdC5cblx0ICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIFZhcmlvdXMgb3B0aW9ucy5cblx0ICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLnJlc3VsdEtleT0ncmVzdWx0J10gLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgcmV0dXJuIGZyb20gdGhlIHJlc3BvbnNlLlxuXHQgKiBAcGFyYW0ge09iamVjdH0gW29wdHMuanNvbl0gLSBBIEpTT04gcGF5bG9hZCB0byBzZW5kLlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gW29wdHMubWV0aG9kXSAtIFRoZSBIVFRQIG1ldGhvZCB0byB1c2UuIElmIG5vdCBzZXQsIHRoZW4gdXNlcyBgcG9zdGAgaWZcblx0ICogYG9wdHMuanNvbmAgaXMgc2V0LCBvdGhlcndpc2UgYGdldGAuXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBSZXNvbHZlcyB0aGUgSlNPTi1wYXJzZWQgcmVzdWx0LlxuXHQgKiBAYWNjZXNzIHByaXZhdGVcblx0ICovXG5cdGFzeW5jIHJlcXVlc3QocGF0aCwgYWNjb3VudCwgeyByZXN1bHRLZXkgPSAncmVzdWx0JywganNvbiwgbWV0aG9kIH0gPSB7fSkge1xuXHRcdGlmICghYWNjb3VudCB8fCB0eXBlb2YgYWNjb3VudCAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignQWNjb3VudCByZXF1aXJlZCcpO1xuXHRcdH1cblxuXHRcdGNvbnN0IHsgc2lkIH0gPSBhY2NvdW50O1xuXHRcdGNvbnN0IHRva2VuID0gYWNjb3VudC5hdXRoPy50b2tlbnM/LmFjY2Vzc190b2tlbjtcblx0XHRpZiAoIXNpZCAmJiAhdG9rZW4pIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZC9leHBpcmVkIGFjY291bnQnKTtcblx0XHR9XG5cblx0XHRjb25zdCB1cmwgPSBgJHt0aGlzLnBsYXRmb3JtVXJsIHx8IHRoaXMuZW52LnBsYXRmb3JtVXJsfSR7cGF0aH1gO1xuXHRcdGNvbnN0IGhlYWRlcnMgPSB7XG5cdFx0XHRBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJ1xuXHRcdH07XG5cblx0XHRpZiAoYWNjb3VudC5zaWQpIHtcblx0XHRcdGhlYWRlcnMuQ29va2llID0gYGNvbm5lY3Quc2lkPSR7YWNjb3VudC5zaWR9YDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aGVhZGVycy5BdXRob3JpemF0aW9uID0gYEJlYXJlciAke3Rva2VufWA7XG5cdFx0fVxuXG5cdFx0aWYgKCFtZXRob2QpIHtcblx0XHRcdG1ldGhvZCA9IGpzb24gPyAncG9zdCcgOiAnZ2V0Jztcblx0XHR9XG5cblx0XHRsb2coYFJlcXVlc3RpbmcgJHttYWdlbnRhKG1ldGhvZCl9ICR7aGlnaGxpZ2h0KHVybCl9ICR7bm90ZShgKCR7YWNjb3VudC5zaWQgPyBgc2lkICR7YWNjb3VudC5zaWR9YCA6IGB0b2tlbiAke3Rva2VufWB9KWApfWApO1xuXHRcdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ290W21ldGhvZF0odXJsLCB7XG5cdFx0XHRoZWFkZXJzLFxuXHRcdFx0anNvbixcblx0XHRcdHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuXHRcdFx0cmV0cnk6IDBcblx0XHR9KTtcblxuXHRcdGNvbnN0IGNvb2tpZXMgPSByZXNwb25zZS5oZWFkZXJzWydzZXQtY29va2llJ107XG5cdFx0Y29uc3QgY29ubmVjdFNpZCA9IGNvb2tpZXMgJiYgc2V0Q29va2llLnBhcnNlKGNvb2tpZXMpLmZpbmQoYyA9PiBjLm5hbWUgPT09ICdjb25uZWN0LnNpZCcpPy52YWx1ZTtcblx0XHRpZiAoY29ubmVjdFNpZCkge1xuXHRcdFx0bG9nKGBTZXR0aW5nIHNpZDogJHtoaWdobGlnaHQoY29ubmVjdFNpZCl9YCk7XG5cdFx0XHRhY2NvdW50LnNpZCA9IGNvbm5lY3RTaWQ7XG5cdFx0XHRhd2FpdCB0aGlzLmNsaWVudC51cGRhdGVBY2NvdW50KGFjY291bnQpO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXNwb25zZS5ib2R5Py5bcmVzdWx0S2V5XTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBBbXBsaWZ5U0RLO1xuIl0sImZpbGUiOiJpbmRleC5qcyJ9
{
"name": "@axway/amplify-sdk",
"version": "1.0.0",
"version": "1.0.1",
"description": "Axway AMPLIFY SDK for Node.js",

@@ -21,4 +21,4 @@ "author": "Axway, Inc. <npmjs@appcelerator.com>",

"dependencies": {
"@axway/amplify-auth-sdk": "^2.0.0",
"got": "^11.0.3",
"@axway/amplify-auth-sdk": "^2.0.2",
"got": "^11.1.2",
"set-cookie-parser": "^2.4.5",

@@ -25,0 +25,0 @@ "snooplogg": "^3.0.0"