Socket
Socket
Sign inDemoInstall

@wdio/cli

Package Overview
Dependencies
Maintainers
3
Versions
641
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@wdio/cli - npm Package Compare versions

Comparing version 5.0.2 to 5.0.3

6

build/interface.js

@@ -258,5 +258,9 @@ "use strict";

reset() {
this.interface.reset();
}
}
exports.default = WDIOCLInterface;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmZhY2UuanMiXSwibmFtZXMiOlsibG9nIiwiY2xvY2tTcGlubmVyIiwiY2xpU3Bpbm5lcnMiLCJNQVhfUlVOTklOR19KT0JTX0RJU1BMQVlfQ09VTlQiLCJXRElPQ0xJbnRlcmZhY2UiLCJFdmVudEVtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsInNwZWNzIiwidG90YWxXb3JrZXJDbnQiLCJoYXNBbnNpU3VwcG9ydCIsImNoYWxrIiwic3VwcG9ydHNDb2xvciIsImhhc0Jhc2ljIiwic2lnaW50VHJpZ2dlcmVkIiwiaW50ZXJmYWNlIiwiQ0xJbnRlcmZhY2UiLCJvbiIsImFkZEpvYiIsImNsZWFySm9iIiwic2V0dXAiLCJjbG9ja1RpbWVyIiwiam9icyIsIk1hcCIsInN0YXJ0IiwiRGF0ZSIsIm5vdyIsInJlc3VsdCIsImZpbmlzaGVkIiwicGFzc2VkIiwiZmFpbGVkIiwibWVzc2FnZXMiLCJyZXBvcnRlciIsIndvcmtlciIsImNsZWFyQnVmZmVyIiwiY2lkIiwiY2FwcyIsInNldCIsInVwZGF0ZVZpZXciLCJkZWxldGUiLCJvbk1lc3NhZ2UiLCJldmVudCIsIm9yaWdpbiIsIm5hbWUiLCJjbGVhclRpbWVvdXQiLCJpbnRlcnZhbCIsImNsZWFyQWxsIiwiaW5EZWJ1Z01vZGUiLCJ5ZWxsb3ciLCJwYXJhbXMiLCJpbnRyb01lc3NhZ2UiLCJ3YXJuIiwiSlNPTiIsInN0cmluZ2lmeSIsInB1c2giLCJjb250ZW50Iiwic2lnaW50VHJpZ2dlciIsIndhc0pvYkNsZWFyZWQiLCJ0b3RhbEpvYnMiLCJwZW5kaW5nSm9icyIsInNpemUiLCJydW5uaW5nSm9icyIsImlzRmluaXNoZWQiLCJjbG9ja1NwaW5uZXJTeW1ib2wiLCJnZXRDbG9ja1N5bWJvbCIsIk1hdGgiLCJyb3VuZCIsInJlcG9ydGVyTmFtZSIsIk9iamVjdCIsImVudHJpZXMiLCJiZ1llbGxvdyIsImJsYWNrIiwiam9pbiIsImpvYiIsIkFycmF5IiwiZnJvbSIsInNsaWNlIiwiZmlsZW5hbWUiLCJyZXBsYWNlIiwicHJvY2VzcyIsImN3ZCIsImJyb3dzZXJOYW1lIiwibG9nU3RyaW5nIiwiZmlsdGVyIiwibCIsIkJvb2xlYW4iLCJzdGRvdXRCdWZmZXIiLCJsZW5ndGgiLCJzdGRlcnJCdWZmZXIiLCJiZ1JlZCIsImVycm9yIiwibWFwIiwiZSIsInN0YWNrIiwiZ3JlZW4iLCJyZWQiLCJ1cGRhdGVDbG9jayIsImNsZWFyTGluZSIsIndyaXRlIiwidG9GaXhlZCIsInNldFRpbWVvdXQiLCJmcmFtZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsR0FBRyxHQUFHLHFCQUFPLFVBQVAsQ0FBWjtBQUVBLE1BQU1DLFlBQVksR0FBR0MscUJBQVksT0FBWixDQUFyQjtBQUNBLE1BQU1DLDhCQUE4QixHQUFHLEVBQXZDOztBQUVlLE1BQU1DLGVBQU4sU0FBOEJDLGVBQTlCLENBQTJDO0FBQ3REQyxFQUFBQSxXQUFXLENBQUVDLE1BQUYsRUFBVUMsS0FBVixFQUFpQkMsY0FBakIsRUFBaUM7QUFDeEM7QUFDQSxTQUFLQyxjQUFMLEdBQXNCLENBQUMsQ0FBQ0MsZUFBTUMsYUFBTixDQUFvQkMsUUFBNUM7QUFDQSxTQUFLTCxLQUFMLEdBQWFBLEtBQWI7QUFDQSxTQUFLRCxNQUFMLEdBQWNBLE1BQWQ7QUFDQSxTQUFLRSxjQUFMLEdBQXNCQSxjQUF0QjtBQUNBLFNBQUtLLGVBQUwsR0FBdUIsS0FBdkI7QUFFQSxTQUFLQyxTQUFMLEdBQWlCLElBQUlDLGtCQUFKLEVBQWpCO0FBQ0EsU0FBS0MsRUFBTCxDQUFRLFdBQVIsRUFBdUIsS0FBS0MsTUFBNUIsTUFBdUIsSUFBdkI7QUFDQSxTQUFLRCxFQUFMLENBQVEsU0FBUixFQUFxQixLQUFLRSxRQUExQixNQUFxQixJQUFyQjtBQUVBLFNBQUtDLEtBQUw7QUFDSDs7QUFFREEsRUFBQUEsS0FBSyxHQUFJO0FBQ0wsU0FBS0MsVUFBTCxHQUFrQixDQUFsQjtBQUNBLFNB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TCxFQUEzQjtBQUVBcEIsSUFBQUEsWUFBWSxDQUFDLEtBQUtDLFFBQU4sQ0FBWjtBQUNBLFNBQUs5QixTQUFMLENBQWVrRixTQUFmO0FBQ0EsU0FBS2xGLFNBQUwsQ0FBZW1GLEtBQWYsQ0FBcUIsZUFBZW5DLGtCQUFmLEdBQW9DLEdBQXBDLEdBQTBDLENBQUMsQ0FBQ3RDLElBQUksQ0FBQ0MsR0FBTCxLQUFhLEtBQUtGLEtBQW5CLElBQTRCLElBQTdCLEVBQW1DMkUsT0FBbkMsQ0FBMkMsQ0FBM0MsQ0FBMUMsR0FBMEYsR0FBL0c7QUFDQSxTQUFLdEQsUUFBTCxHQUFnQnVELFVBQVUsQ0FBQyxNQUFNLEtBQUtKLFdBQUwsQ0FBaUJuRCxRQUFqQixDQUFQLEVBQW1DQSxRQUFuQyxDQUExQjtBQUNIOztBQUVEbUIsRUFBQUEsY0FBYyxHQUFJO0FBQ2QsV0FBTy9ELFlBQVksQ0FBQ29HLE1BQWIsQ0FBb0IsS0FBS2hGLFVBQUwsR0FBa0IsRUFBRSxLQUFLQSxVQUFQLEdBQW9CcEIsWUFBWSxDQUFDb0csTUFBYixDQUFvQmQsTUFBOUUsQ0FBUDtBQUNIOztBQW5PcUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnXG5pbXBvcnQgY2xpU3Bpbm5lcnMgZnJvbSAnY2xpLXNwaW5uZXJzJ1xuaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tICdldmVudHMnXG5pbXBvcnQgQ0xJbnRlcmZhY2UgZnJvbSAnQHdkaW8vaW50ZXJmYWNlJ1xuaW1wb3J0IGxvZ2dlciBmcm9tICdAd2Rpby9sb2dnZXInXG5cbmNvbnN0IGxvZyA9IGxvZ2dlcignd2Rpby1jbGknKVxuXG5jb25zdCBjbG9ja1NwaW5uZXIgPSBjbGlTcGlubmVyc1snY2xvY2snXVxuY29uc3QgTUFYX1JVTk5JTkdfSk9CU19ESVNQTEFZX0NPVU5UID0gMTBcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV0RJT0NMSW50ZXJmYWNlIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgICBjb25zdHJ1Y3RvciAoY29uZmlnLCBzcGVjcywgdG90YWxXb3JrZXJDbnQpIHtcbiAgICAgICAgc3VwZXIoKVxuICAgICAgICB0aGlzLmhhc0Fuc2lTdXBwb3J0ID0gISFjaGFsay5zdXBwb3J0c0NvbG9yLmhhc0Jhc2ljXG4gICAgICAgIHRoaXMuc3BlY3MgPSBzcGVjc1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZ1xuICAgICAgICB0aGlzLnRvdGFsV29ya2VyQ250ID0gdG90YWxXb3JrZXJDbnRcbiAgICAgICAgdGhpcy5zaWdpbnRUcmlnZ2VyZWQgPSBmYWxzZVxuXG4gICAgICAgIHRoaXMuaW50ZXJmYWNlID0gbmV3IENMSW50ZXJmYWNlKClcbiAgICAgICAgdGhpcy5vbignam9iOnN0YXJ0JywgOjp0aGlzLmFkZEpvYilcbiAgICAgICAgdGhpcy5vbignam9iOmVuZCcsIDo6dGhpcy5jbGVhckpvYilcblxuICAgICAgICB0aGlzLnNldHVwKClcbiAgICB9XG5cbiAgICBzZXR1cCAoKSB7XG4gICAgICAgIHRoaXMuY2xvY2tUaW1lciA9IDBcbiAgICAgICAgdGhpcy5qb2JzID0gbmV3IE1hcCgpXG4gICAgICAgIHRoaXMuc3RhcnQgPSBEYXRlLm5vdygpXG4gICAgICAgIHRoaXMucmVzdWx0ID0ge1xuICAgICAgICAgICAgZmluaXNoZWQ6IDAsXG4gICAgICAgICAgICBwYXNzZWQ6IDAsXG4gICAgICAgICAgICBmYWlsZWQ6IDBcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1lc3NhZ2VzID0ge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBtZXNzYWdlcyBmcm9tIHdvcmtlciByZXBvcnRlcnNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgcmVwb3J0ZXI6IHt9LFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBtZXNzYWdlcyBmcm9tIHdvcmtlciBpdHNlbGZcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgd29ya2VyOiB7fVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW50ZXJmYWNlLmNsZWFyQnVmZmVyKClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhZGQgam9iIHRvIGludGVyZmFjZVxuICAgICAqL1xuICAgIGFkZEpvYih7IGNpZCwgY2Fwcywgc3BlY3MgfSkge1xuICAgICAgICB0aGlzLmpvYnMuc2V0KGNpZCwgeyBjYXBzLCBzcGVjcyB9KVxuICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNsZWFyIGpvYiBmcm9tIGludGVyZmFjZVxuICAgICAqL1xuICAgIGNsZWFySm9iICh7IGNpZCwgcGFzc2VkIH0pIHtcbiAgICAgICAgdGhpcy5qb2JzLmRlbGV0ZShjaWQpXG4gICAgICAgIHRoaXMucmVzdWx0LmZpbmlzaGVkKytcblxuICAgICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdC5wYXNzZWQrK1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXN1bHQuZmFpbGVkKytcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlVmlldyh0cnVlKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGV2ZW50IGhhbmRsZXIgdGhhdCBpcyB0cmlnZ2VyZWQgd2hlbiBydW5uZXIgc2VuZHMgdXAgZXZlbnRzXG4gICAgICovXG4gICAgb25NZXNzYWdlIChldmVudCkge1xuICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAnZGVidWdnZXInICYmIGV2ZW50Lm5hbWUgPT09ICdzdGFydCcpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmludGVydmFsKVxuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UuY2xlYXJBbGwoKVxuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UuaW5EZWJ1Z01vZGUgPSB0cnVlXG4gICAgICAgICAgICB0aGlzLmludGVyZmFjZS5sb2coY2hhbGsueWVsbG93KGV2ZW50LnBhcmFtcy5pbnRyb01lc3NhZ2UpKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gJ2RlYnVnZ2VyJyAmJiBldmVudC5uYW1lID09PSAnc3RvcCcpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJmYWNlLmluRGVidWdNb2RlID0gZmFsc2VcbiAgICAgICAgICAgIHRoaXMuc2lnaW50VHJpZ2dlcmVkID0gZmFsc2VcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVZpZXcoKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFldmVudC5vcmlnaW4gfHwgIXRoaXMubWVzc2FnZXNbZXZlbnQub3JpZ2luXSkge1xuICAgICAgICAgICAgcmV0dXJuIGxvZy53YXJuKGBDYW4ndCBpZGVudGlmeSBtZXNzYWdlIGZyb20gd29ya2VyOiAke0pTT04uc3RyaW5naWZ5KGV2ZW50KX0sIGlnbm9yaW5nIWApXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZXNbZXZlbnQub3JpZ2luXVtldmVudC5uYW1lXSkge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlc1tldmVudC5vcmlnaW5dW2V2ZW50Lm5hbWVdID0gW11cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1lc3NhZ2VzW2V2ZW50Lm9yaWdpbl1bZXZlbnQubmFtZV0ucHVzaChldmVudC5jb250ZW50KVxuICAgIH1cblxuICAgIHNpZ2ludFRyaWdnZXIgKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogYWxsb3cgdG8gZXhpdCByZXBsIG1vZGUgdmlhIEN0cmwrQ1xuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuaW50ZXJmYWNlLmluRGVidWdNb2RlKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2lnaW50VHJpZ2dlcmVkID0gdHJ1ZVxuICAgICAgICB0aGlzLnVwZGF0ZVZpZXcoKVxuICAgIH1cblxuICAgIHVwZGF0ZVZpZXcgKHdhc0pvYkNsZWFyZWQpIHtcbiAgICAgICAgY29uc3QgdG90YWxKb2JzID0gdGhpcy50b3RhbFdvcmtlckNudFxuICAgICAgICBjb25zdCBwZW5kaW5nSm9icyA9IHRoaXMudG90YWxXb3JrZXJDbnQgLSB0aGlzLmpvYnMuc2l6ZSAtIHRoaXMucmVzdWx0LmZpbmlzaGVkXG4gICAgICAgIGNvbnN0IHJ1bm5pbmdKb2JzID0gdGhpcy5qb2JzLnNpemVcbiAgICAgICAgY29uc3QgaXNGaW5pc2hlZCA9IHJ1bm5pbmdKb2JzID09PSAwXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGNoZWNrIGlmIGVudmlyb25tZW50IHN1cHBvcnRzIGFuc2kgYW5kIHByaW50IGEgbGltaXRlZCB1cGRhdGUgaWYgbm90XG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIXRoaXMuaGFzQW5zaVN1cHBvcnQgJiYgIWlzRmluaXNoZWQpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogb25seSB1cGRhdGUgaWYgYSBqb2IgZmluaXNoZXNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKCF3YXNKb2JDbGVhcmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNsb2NrU3Bpbm5lclN5bWJvbCA9IHRoaXMuZ2V0Q2xvY2tTeW1ib2woKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJmYWNlLmxvZyhcbiAgICAgICAgICAgICAgICBgJHtjbG9ja1NwaW5uZXJTeW1ib2x9IGAgK1xuICAgICAgICAgICAgICAgIGAke3RoaXMuam9icy5zaXplfSBydW5uaW5nLCBgICtcbiAgICAgICAgICAgICAgICBgJHt0aGlzLnJlc3VsdC5wYXNzZWR9IHBhc3NlZCwgYCArXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5yZXN1bHQuZmFpbGVkfSBmYWlsZWQsIGAgK1xuICAgICAgICAgICAgICAgIGAke3RvdGFsSm9ic30gdG90YWwgYCArXG4gICAgICAgICAgICAgICAgYCgke01hdGgucm91bmQoKHRoaXMucmVzdWx0LmZpbmlzaGVkIC8gdG90YWxKb2JzKSAqIDEwMCl9JSBjb21wbGV0ZWQpYClcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW50ZXJmYWNlLmNsZWFyQWxsKClcbiAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKClcblxuICAgICAgICAvKipcbiAgICAgICAgICogcHJpbnQgcmVwb3J0ZXIgb3V0cHV0XG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGNvbnN0IFtyZXBvcnRlck5hbWUsIG1lc3NhZ2VzXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm1lc3NhZ2VzLnJlcG9ydGVyKSkge1xuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKGNoYWxrLmJnWWVsbG93LmJsYWNrKGBcIiR7cmVwb3J0ZXJOYW1lfVwiIFJlcG9ydGVyOmApKVxuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKG1lc3NhZ2VzLmpvaW4oJycpKVxuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKClcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBwcmludCBydW5uaW5nIGpvYnNcbiAgICAgICAgICovXG4gICAgICAgIGZvciAoY29uc3QgW2NpZCwgam9iXSBvZiBBcnJheS5mcm9tKHRoaXMuam9icy5lbnRyaWVzKCkpLnNsaWNlKDAsIE1BWF9SVU5OSU5HX0pPQlNfRElTUExBWV9DT1VOVCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gam9iLnNwZWNzLmpvaW4oJywgJykucmVwbGFjZShwcm9jZXNzLmN3ZCgpLCAnJylcbiAgICAgICAgICAgIHRoaXMuaW50ZXJmYWNlLmxvZyhjaGFsay5iZ1llbGxvdy5ibGFjaygnIFJVTk5JTkcgJyksIGNpZCwgJ2luJywgam9iLmNhcHMuYnJvd3Nlck5hbWUsICctJywgZmlsZW5hbWUpXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogc2hvdyBudW1iZXIgb2YgcGVuZGluZyBhbmQgcnVubmluZyBqb2JzXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocGVuZGluZ0pvYnMgfHwgcnVubmluZ0pvYnMgPiBNQVhfUlVOTklOR19KT0JTX0RJU1BMQVlfQ09VTlQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ1N0cmluZyA9IFtdXG4gICAgICAgICAgICBpZiAocnVubmluZ0pvYnMgPiBNQVhfUlVOTklOR19KT0JTX0RJU1BMQVlfQ09VTlQpIHtcbiAgICAgICAgICAgICAgICBsb2dTdHJpbmcucHVzaChcbiAgICAgICAgICAgICAgICAgICAgcnVubmluZ0pvYnMgLSBNQVhfUlVOTklOR19KT0JTX0RJU1BMQVlfQ09VTlQsXG4gICAgICAgICAgICAgICAgICAgICdydW5uaW5nIHRlc3RzJyArIChwZW5kaW5nSm9icyA/ICcgLScgOiAnJykpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGVuZGluZ0pvYnMpIHtcbiAgICAgICAgICAgICAgICBsb2dTdHJpbmcucHVzaChwZW5kaW5nSm9icywgJ3BlbmRpbmcgdGVzdHMnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKGNoYWxrLnllbGxvdygnLi4uJywgLi4ubG9nU3RyaW5nLmZpbHRlcihsID0+IEJvb2xlYW4obCkpKSlcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBwcmludCBzdGRvdXQgYW5kIHN0ZGVyciBmcm9tIHJ1bm5lcnNcbiAgICAgICAgICovXG4gICAgICAgIGlmIChpc0ZpbmlzaGVkKSB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuaW50ZXJmYWNlLnN0ZG91dEJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyZmFjZS5sb2coY2hhbGsuYmdZZWxsb3cuYmxhY2soJ1N0ZG91dDpcXG4nKSArIHRoaXMuaW50ZXJmYWNlLnN0ZG91dEJ1ZmZlci5qb2luKCcnKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5pbnRlcmZhY2Uuc3RkZXJyQnVmZmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJmYWNlLmxvZyhjaGFsay5iZ1JlZC5ibGFjaygnU3RkZXJyOlxcbicpICsgdGhpcy5pbnRlcmZhY2Uuc3RkZXJyQnVmZmVyLmpvaW4oJycpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VzLndvcmtlci5lcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJmYWNlLmxvZyhjaGFsay5iZ1JlZC5ibGFjaygnV29ya2VyIEVycm9yOlxcbicpICsgdGhpcy5tZXNzYWdlcy53b3JrZXIuZXJyb3IubWFwKFxuICAgICAgICAgICAgICAgICAgICAoZSkgPT4gZS5zdGFja1xuICAgICAgICAgICAgICAgICkuam9pbignXFxuJykgKyAnXFxuJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhZGQgZW1wdHkgbGluZSBiZXR3ZWVuIFwicGVuZGluZyB0ZXN0c1wiIGFuZCByZXN1bHRzXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5qb2JzLnNpemUpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJmYWNlLmxvZygpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmludGVyZmFjZS5sb2coXG4gICAgICAgICAgICAnVGVzdCBTdWl0ZXM6XFx0JywgY2hhbGsuZ3JlZW4odGhpcy5yZXN1bHQucGFzc2VkLCAncGFzc2VkJykgKyAnLCAnICtcbiAgICAgICAgICAgICh0aGlzLnJlc3VsdC5mYWlsZWQgPyBjaGFsay5yZWQodGhpcy5yZXN1bHQuZmFpbGVkLCAnZmFpbGVkJykgKyAnLCAnIDogJycpICtcbiAgICAgICAgICAgIHRvdGFsSm9icywgJ3RvdGFsJyxcbiAgICAgICAgICAgIGAoJHt0b3RhbEpvYnMgPyBNYXRoLnJvdW5kKCh0aGlzLnJlc3VsdC5maW5pc2hlZCAvIHRvdGFsSm9icykgKiAxMDApIDogMH0lIGNvbXBsZXRlZClgXG4gICAgICAgIClcblxuICAgICAgICB0aGlzLnVwZGF0ZUNsb2NrKClcblxuICAgICAgICBpZiAodGhpcy5zaWdpbnRUcmlnZ2VyZWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmludGVydmFsKVxuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKCdcXG4nKVxuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKCFpc0ZpbmlzaGVkXG4gICAgICAgICAgICAgICAgPyAnRW5kaW5nIFdlYkRyaXZlciBzZXNzaW9ucyBncmFjZWZ1bGx5IC4uLlxcbicgK1xuICAgICAgICAgICAgICAgICAgJyhwcmVzcyBjdHJsK2MgYWdhaW4gdG8gaGFyZCBraWxsIHRoZSBydW5uZXIpJ1xuICAgICAgICAgICAgICAgIDogJ0VuZGVkIFdlYkRyaXZlciBzZXNzaW9ucyBncmFjZWZ1bGx5IGFmdGVyIGEgU0lHSU5UIHNpZ25hbCB3YXMgcmVjZWl2ZWQhJ1xuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRmluaXNoZWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmludGVydmFsKVxuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKCdcXG4nKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xvY2sgKGludGVydmFsID0gMTAwKSB7XG4gICAgICAgIGNvbnN0IGNsb2NrU3Bpbm5lclN5bWJvbCA9IHRoaXMuZ2V0Q2xvY2tTeW1ib2woKVxuXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmludGVydmFsKVxuICAgICAgICB0aGlzLmludGVyZmFjZS5jbGVhckxpbmUoKVxuICAgICAgICB0aGlzLmludGVyZmFjZS53cml0ZSgnVGltZTpcXHRcXHQgJyArIGNsb2NrU3Bpbm5lclN5bWJvbCArICcgJyArICgoRGF0ZS5ub3coKSAtIHRoaXMuc3RhcnQpIC8gMTAwMCkudG9GaXhlZCgyKSArICdzJylcbiAgICAgICAgdGhpcy5pbnRlcnZhbCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVDbG9jayhpbnRlcnZhbCksIGludGVydmFsKVxuICAgIH1cblxuICAgIGdldENsb2NrU3ltYm9sICgpIHtcbiAgICAgICAgcmV0dXJuIGNsb2NrU3Bpbm5lci5mcmFtZXNbdGhpcy5jbG9ja1RpbWVyID0gKyt0aGlzLmNsb2NrVGltZXIgJSBjbG9ja1NwaW5uZXIuZnJhbWVzLmxlbmd0aF1cbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcmZhY2UuanMiXSwibmFtZXMiOlsibG9nIiwiY2xvY2tTcGlubmVyIiwiY2xpU3Bpbm5lcnMiLCJNQVhfUlVOTklOR19KT0JTX0RJU1BMQVlfQ09VTlQiLCJXRElPQ0xJbnRlcmZhY2UiLCJFdmVudEVtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsImNvbmZpZyIsInNwZWNzIiwidG90YWxXb3JrZXJDbnQiLCJoYXNBbnNpU3VwcG9ydCIsImNoYWxrIiwic3VwcG9ydHNDb2xvciIsImhhc0Jhc2ljIiwic2lnaW50VHJpZ2dlcmVkIiwiaW50ZXJmYWNlIiwiQ0xJbnRlcmZhY2UiLCJvbiIsImFkZEpvYiIsImNsZWFySm9iIiwic2V0dXAiLCJjbG9ja1RpbWVyIiwiam9icyIsIk1hcCIsInN0YXJ0IiwiRGF0ZSIsIm5vdyIsInJlc3VsdCIsImZpbmlzaGVkIiwicGFzc2VkIiwiZmFpbGVkIiwibWVzc2FnZXMiLCJyZXBvcnRlciIsIndvcmtlciIsImNsZWFyQnVmZmVyIiwiY2lkIiwiY2FwcyIsInNldCIsInVwZGF0ZVZpZXciLCJkZWxldGUiLCJvbk1lc3NhZ2UiLCJldmVudCIsIm9yaWdpbiIsIm5hbWUiLCJjbGVhclRpbWVvdXQiLCJpbnRlcnZhbCIsImNsZWFyQWxsIiwiaW5EZWJ1Z01vZGUiLCJ5ZWxsb3ciLCJwYXJhbXMiLCJpbnRyb01lc3NhZ2UiLCJ3YXJuIiwiSlNPTiIsInN0cmluZ2lmeSIsInB1c2giLCJjb250ZW50Iiwic2lnaW50VHJpZ2dlciIsIndhc0pvYkNsZWFyZWQiLCJ0b3RhbEpvYnMiLCJwZW5kaW5nSm9icyIsInNpemUiLCJydW5uaW5nSm9icyIsImlzRmluaXNoZWQiLCJjbG9ja1NwaW5uZXJTeW1ib2wiLCJnZXRDbG9ja1N5bWJvbCIsIk1hdGgiLCJyb3VuZCIsInJlcG9ydGVyTmFtZSIsIk9iamVjdCIsImVudHJpZXMiLCJiZ1llbGxvdyIsImJsYWNrIiwiam9pbiIsImpvYiIsIkFycmF5IiwiZnJvbSIsInNsaWNlIiwiZmlsZW5hbWUiLCJyZXBsYWNlIiwicHJvY2VzcyIsImN3ZCIsImJyb3dzZXJOYW1lIiwibG9nU3RyaW5nIiwiZmlsdGVyIiwibCIsIkJvb2xlYW4iLCJzdGRvdXRCdWZmZXIiLCJsZW5ndGgiLCJzdGRlcnJCdWZmZXIiLCJiZ1JlZCIsImVycm9yIiwibWFwIiwiZSIsInN0YWNrIiwiZ3JlZW4iLCJyZWQiLCJ1cGRhdGVDbG9jayIsImNsZWFyTGluZSIsIndyaXRlIiwidG9GaXhlZCIsInNldFRpbWVvdXQiLCJmcmFtZXMiLCJyZXNldCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxHQUFHLEdBQUcscUJBQU8sVUFBUCxDQUFaO0FBRUEsTUFBTUMsWUFBWSxHQUFHQyxxQkFBWSxPQUFaLENBQXJCO0FBQ0EsTUFBTUMsOEJBQThCLEdBQUcsRUFBdkM7O0FBRWUsTUFBTUMsZUFBTixTQUE4QkMsZUFBOUIsQ0FBMkM7QUFDdERDLEVBQUFBLFdBQVcsQ0FBRUMsTUFBRixFQUFVQyxLQUFWLEVBQWlCQyxjQUFqQixFQUFpQztBQUN4QztBQUNBLFNBQUtDLGNBQUwsR0FBc0IsQ0FBQyxDQUFDQyxlQUFNQyxhQUFOLENBQW9CQyxRQUE1QztBQUNBLFNBQUtMLEtBQUwsR0FBYUEsS0FBYjtBQUNBLFNBQUtELE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtFLGNBQUwsR0FBc0JBLGNBQXRCO0FBQ0EsU0FBS0ssZUFBTCxHQUF1QixLQUF2QjtBQUVBLFNBQUtDLFNBQUwsR0FBaUIsSUFBSUMsa0JBQUosRUFBakI7QUFDQSxTQUFLQyxFQUFMLENBQVEsV0FBUixFQUF1QixLQUFLQyxNQUE1QixNQUF1QixJQUF2QjtBQUNBLFNBQUtELEVBQUwsQ0FBUSxTQUFSLEVBQXFCLEtBQUtFLFFBQTFCLE1BQXFCLElBQXJCO0FBRUEsU0FBS0MsS0FBTDtBQUNIOztBQUVEQSxFQUFBQSxLQUFLLEdBQUk7QUFDTCxTQUFLQyxVQUFMLEdBQWtCLENBQWxC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QUFLQyxjQUFMLEVBQTNCO0FBRUFwQixJQUFBQSxZQUFZLENBQUMsS0FBS0MsUUFBTixDQUFaO0FBQ0EsU0FBSzlCLFNBQUwsQ0FBZWtGLFNBQWY7QUFDQSxTQUFLbEYsU0FBTCxDQUFlbUYsS0FBZixDQUFxQixlQUFlbkMsa0JBQWYsR0FBb0MsR0FBcEMsR0FBMEMsQ0FBQyxDQUFDdEMsSUFBSSxDQUFDQyxHQUFMLEtBQWEsS0FBS0YsS0FBbkIsSUFBNEIsSUFBN0IsRUFBbUMyRSxPQUFuQyxDQUEyQyxDQUEzQyxDQUExQyxHQUEwRixHQUEvRztBQUNBLFNBQUt0RCxRQUFMLEdBQWdCdUQsVUFBVSxDQUFDLE1BQU0sS0FBS0osV0FBTCxDQUFpQm5ELFFBQWpCLENBQVAsRUFBbUNBLFFBQW5DLENBQTFCO0FBQ0g7O0FBRURtQixFQUFBQSxjQUFjLEdBQUk7QUFDZCxXQUFPL0QsWUFBWSxDQUFDb0csTUFBYixDQUFvQixLQUFLaEYsVUFBTCxHQUFrQixFQUFFLEtBQUtBLFVBQVAsR0FBb0JwQixZQUFZLENBQUNvRyxNQUFiLENBQW9CZCxNQUE5RSxDQUFQO0FBQ0g7O0FBRURlLEVBQUFBLEtBQUssR0FBSTtBQUNMLFNBQUt2RixTQUFMLENBQWV1RixLQUFmO0FBQ0g7O0FBdk9xRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tICdjaGFsaydcbmltcG9ydCBjbGlTcGlubmVycyBmcm9tICdjbGktc3Bpbm5lcnMnXG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gJ2V2ZW50cydcbmltcG9ydCBDTEludGVyZmFjZSBmcm9tICdAd2Rpby9pbnRlcmZhY2UnXG5pbXBvcnQgbG9nZ2VyIGZyb20gJ0B3ZGlvL2xvZ2dlcidcblxuY29uc3QgbG9nID0gbG9nZ2VyKCd3ZGlvLWNsaScpXG5cbmNvbnN0IGNsb2NrU3Bpbm5lciA9IGNsaVNwaW5uZXJzWydjbG9jayddXG5jb25zdCBNQVhfUlVOTklOR19KT0JTX0RJU1BMQVlfQ09VTlQgPSAxMFxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXRElPQ0xJbnRlcmZhY2UgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yIChjb25maWcsIHNwZWNzLCB0b3RhbFdvcmtlckNudCkge1xuICAgICAgICBzdXBlcigpXG4gICAgICAgIHRoaXMuaGFzQW5zaVN1cHBvcnQgPSAhIWNoYWxrLnN1cHBvcnRzQ29sb3IuaGFzQmFzaWNcbiAgICAgICAgdGhpcy5zcGVjcyA9IHNwZWNzXG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnXG4gICAgICAgIHRoaXMudG90YWxXb3JrZXJDbnQgPSB0b3RhbFdvcmtlckNudFxuICAgICAgICB0aGlzLnNpZ2ludFRyaWdnZXJlZCA9IGZhbHNlXG5cbiAgICAgICAgdGhpcy5pbnRlcmZhY2UgPSBuZXcgQ0xJbnRlcmZhY2UoKVxuICAgICAgICB0aGlzLm9uKCdqb2I6c3RhcnQnLCA6OnRoaXMuYWRkSm9iKVxuICAgICAgICB0aGlzLm9uKCdqb2I6ZW5kJywgOjp0aGlzLmNsZWFySm9iKVxuXG4gICAgICAgIHRoaXMuc2V0dXAoKVxuICAgIH1cblxuICAgIHNldHVwICgpIHtcbiAgICAgICAgdGhpcy5jbG9ja1RpbWVyID0gMFxuICAgICAgICB0aGlzLmpvYnMgPSBuZXcgTWFwKClcbiAgICAgICAgdGhpcy5zdGFydCA9IERhdGUubm93KClcbiAgICAgICAgdGhpcy5yZXN1bHQgPSB7XG4gICAgICAgICAgICBmaW5pc2hlZDogMCxcbiAgICAgICAgICAgIHBhc3NlZDogMCxcbiAgICAgICAgICAgIGZhaWxlZDogMFxuICAgICAgICB9XG4gICAgICAgIHRoaXMubWVzc2FnZXMgPSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIG1lc3NhZ2VzIGZyb20gd29ya2VyIHJlcG9ydGVyc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICByZXBvcnRlcjoge30sXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIG1lc3NhZ2VzIGZyb20gd29ya2VyIGl0c2VsZlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB3b3JrZXI6IHt9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnRlcmZhY2UuY2xlYXJCdWZmZXIoKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGFkZCBqb2IgdG8gaW50ZXJmYWNlXG4gICAgICovXG4gICAgYWRkSm9iKHsgY2lkLCBjYXBzLCBzcGVjcyB9KSB7XG4gICAgICAgIHRoaXMuam9icy5zZXQoY2lkLCB7IGNhcHMsIHNwZWNzIH0pXG4gICAgICAgIHRoaXMudXBkYXRlVmlldygpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2xlYXIgam9iIGZyb20gaW50ZXJmYWNlXG4gICAgICovXG4gICAgY2xlYXJKb2IgKHsgY2lkLCBwYXNzZWQgfSkge1xuICAgICAgICB0aGlzLmpvYnMuZGVsZXRlKGNpZClcbiAgICAgICAgdGhpcy5yZXN1bHQuZmluaXNoZWQrK1xuXG4gICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdWx0LnBhc3NlZCsrXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdC5mYWlsZWQrK1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVWaWV3KHRydWUpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZXZlbnQgaGFuZGxlciB0aGF0IGlzIHRyaWdnZXJlZCB3aGVuIHJ1bm5lciBzZW5kcyB1cCBldmVudHNcbiAgICAgKi9cbiAgICBvbk1lc3NhZ2UgKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICdkZWJ1Z2dlcicgJiYgZXZlbnQubmFtZSA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW50ZXJ2YWwpXG4gICAgICAgICAgICB0aGlzLmludGVyZmFjZS5jbGVhckFsbCgpXG4gICAgICAgICAgICB0aGlzLmludGVyZmFjZS5pbkRlYnVnTW9kZSA9IHRydWVcbiAgICAgICAgICAgIHRoaXMuaW50ZXJmYWNlLmxvZyhjaGFsay55ZWxsb3coZXZlbnQucGFyYW1zLmludHJvTWVzc2FnZSkpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAnZGVidWdnZXInICYmIGV2ZW50Lm5hbWUgPT09ICdzdG9wJykge1xuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UuaW5EZWJ1Z01vZGUgPSBmYWxzZVxuICAgICAgICAgICAgdGhpcy5zaWdpbnRUcmlnZ2VyZWQgPSBmYWxzZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlVmlldygpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWV2ZW50Lm9yaWdpbiB8fCAhdGhpcy5tZXNzYWdlc1tldmVudC5vcmlnaW5dKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9nLndhcm4oYENhbid0IGlkZW50aWZ5IG1lc3NhZ2UgZnJvbSB3b3JrZXI6ICR7SlNPTi5zdHJpbmdpZnkoZXZlbnQpfSwgaWdub3JpbmchYClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlc1tldmVudC5vcmlnaW5dW2V2ZW50Lm5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzW2V2ZW50Lm9yaWdpbl1bZXZlbnQubmFtZV0gPSBbXVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubWVzc2FnZXNbZXZlbnQub3JpZ2luXVtldmVudC5uYW1lXS5wdXNoKGV2ZW50LmNvbnRlbnQpXG4gICAgfVxuXG4gICAgc2lnaW50VHJpZ2dlciAoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhbGxvdyB0byBleGl0IHJlcGwgbW9kZSB2aWEgQ3RybCtDXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5pbnRlcmZhY2UuaW5EZWJ1Z01vZGUpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zaWdpbnRUcmlnZ2VyZWQgPSB0cnVlXG4gICAgICAgIHRoaXMudXBkYXRlVmlldygpXG4gICAgfVxuXG4gICAgdXBkYXRlVmlldyAod2FzSm9iQ2xlYXJlZCkge1xuICAgICAgICBjb25zdCB0b3RhbEpvYnMgPSB0aGlzLnRvdGFsV29ya2VyQ250XG4gICAgICAgIGNvbnN0IHBlbmRpbmdKb2JzID0gdGhpcy50b3RhbFdvcmtlckNudCAtIHRoaXMuam9icy5zaXplIC0gdGhpcy5yZXN1bHQuZmluaXNoZWRcbiAgICAgICAgY29uc3QgcnVubmluZ0pvYnMgPSB0aGlzLmpvYnMuc2l6ZVxuICAgICAgICBjb25zdCBpc0ZpbmlzaGVkID0gcnVubmluZ0pvYnMgPT09IDBcblxuICAgICAgICAvKipcbiAgICAgICAgICogY2hlY2sgaWYgZW52aXJvbm1lbnQgc3VwcG9ydHMgYW5zaSBhbmQgcHJpbnQgYSBsaW1pdGVkIHVwZGF0ZSBpZiBub3RcbiAgICAgICAgICovXG4gICAgICAgIGlmICghdGhpcy5oYXNBbnNpU3VwcG9ydCAmJiAhaXNGaW5pc2hlZCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBvbmx5IHVwZGF0ZSBpZiBhIGpvYiBmaW5pc2hlc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoIXdhc0pvYkNsZWFyZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY2xvY2tTcGlubmVyU3ltYm9sID0gdGhpcy5nZXRDbG9ja1N5bWJvbCgpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcmZhY2UubG9nKFxuICAgICAgICAgICAgICAgIGAke2Nsb2NrU3Bpbm5lclN5bWJvbH0gYCArXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5qb2JzLnNpemV9IHJ1bm5pbmcsIGAgK1xuICAgICAgICAgICAgICAgIGAke3RoaXMucmVzdWx0LnBhc3NlZH0gcGFzc2VkLCBgICtcbiAgICAgICAgICAgICAgICBgJHt0aGlzLnJlc3VsdC5mYWlsZWR9IGZhaWxlZCwgYCArXG4gICAgICAgICAgICAgICAgYCR7dG90YWxKb2JzfSB0b3RhbCBgICtcbiAgICAgICAgICAgICAgICBgKCR7TWF0aC5yb3VuZCgodGhpcy5yZXN1bHQuZmluaXNoZWQgLyB0b3RhbEpvYnMpICogMTAwKX0lIGNvbXBsZXRlZClgKVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnRlcmZhY2UuY2xlYXJBbGwoKVxuICAgICAgICB0aGlzLmludGVyZmFjZS5sb2coKVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBwcmludCByZXBvcnRlciBvdXRwdXRcbiAgICAgICAgICovXG4gICAgICAgIGZvciAoY29uc3QgW3JlcG9ydGVyTmFtZSwgbWVzc2FnZXNdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMubWVzc2FnZXMucmVwb3J0ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLmludGVyZmFjZS5sb2coY2hhbGsuYmdZZWxsb3cuYmxhY2soYFwiJHtyZXBvcnRlck5hbWV9XCIgUmVwb3J0ZXI6YCkpXG4gICAgICAgICAgICB0aGlzLmludGVyZmFjZS5sb2cobWVzc2FnZXMuam9pbignJykpXG4gICAgICAgICAgICB0aGlzLmludGVyZmFjZS5sb2coKVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHByaW50IHJ1bm5pbmcgam9ic1xuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChjb25zdCBbY2lkLCBqb2JdIG9mIEFycmF5LmZyb20odGhpcy5qb2JzLmVudHJpZXMoKSkuc2xpY2UoMCwgTUFYX1JVTk5JTkdfSk9CU19ESVNQTEFZX0NPVU5UKSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBqb2Iuc3BlY3Muam9pbignLCAnKS5yZXBsYWNlKHByb2Nlc3MuY3dkKCksICcnKVxuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKGNoYWxrLmJnWWVsbG93LmJsYWNrKCcgUlVOTklORyAnKSwgY2lkLCAnaW4nLCBqb2IuY2Fwcy5icm93c2VyTmFtZSwgJy0nLCBmaWxlbmFtZSlcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBzaG93IG51bWJlciBvZiBwZW5kaW5nIGFuZCBydW5uaW5nIGpvYnNcbiAgICAgICAgICovXG4gICAgICAgIGlmIChwZW5kaW5nSm9icyB8fCBydW5uaW5nSm9icyA+IE1BWF9SVU5OSU5HX0pPQlNfRElTUExBWV9DT1VOVCkge1xuICAgICAgICAgICAgY29uc3QgbG9nU3RyaW5nID0gW11cbiAgICAgICAgICAgIGlmIChydW5uaW5nSm9icyA+IE1BWF9SVU5OSU5HX0pPQlNfRElTUExBWV9DT1VOVCkge1xuICAgICAgICAgICAgICAgIGxvZ1N0cmluZy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBydW5uaW5nSm9icyAtIE1BWF9SVU5OSU5HX0pPQlNfRElTUExBWV9DT1VOVCxcbiAgICAgICAgICAgICAgICAgICAgJ3J1bm5pbmcgdGVzdHMnICsgKHBlbmRpbmdKb2JzID8gJyAtJyA6ICcnKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwZW5kaW5nSm9icykge1xuICAgICAgICAgICAgICAgIGxvZ1N0cmluZy5wdXNoKHBlbmRpbmdKb2JzLCAncGVuZGluZyB0ZXN0cycpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmludGVyZmFjZS5sb2coY2hhbGsueWVsbG93KCcuLi4nLCAuLi5sb2dTdHJpbmcuZmlsdGVyKGwgPT4gQm9vbGVhbihsKSkpKVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHByaW50IHN0ZG91dCBhbmQgc3RkZXJyIGZyb20gcnVubmVyc1xuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGlzRmluaXNoZWQpIHtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5pbnRlcmZhY2Uuc3Rkb3V0QnVmZmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJmYWNlLmxvZyhjaGFsay5iZ1llbGxvdy5ibGFjaygnU3Rkb3V0OlxcbicpICsgdGhpcy5pbnRlcmZhY2Uuc3Rkb3V0QnVmZmVyLmpvaW4oJycpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLmludGVyZmFjZS5zdGRlcnJCdWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKGNoYWxrLmJnUmVkLmJsYWNrKCdTdGRlcnI6XFxuJykgKyB0aGlzLmludGVyZmFjZS5zdGRlcnJCdWZmZXIuam9pbignJykpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKHRoaXMubWVzc2FnZXMud29ya2VyLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKGNoYWxrLmJnUmVkLmJsYWNrKCdXb3JrZXIgRXJyb3I6XFxuJykgKyB0aGlzLm1lc3NhZ2VzLndvcmtlci5lcnJvci5tYXAoXG4gICAgICAgICAgICAgICAgICAgIChlKSA9PiBlLnN0YWNrXG4gICAgICAgICAgICAgICAgKS5qb2luKCdcXG4nKSArICdcXG4nKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGFkZCBlbXB0eSBsaW5lIGJldHdlZW4gXCJwZW5kaW5nIHRlc3RzXCIgYW5kIHJlc3VsdHNcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLmpvYnMuc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UubG9nKClcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW50ZXJmYWNlLmxvZyhcbiAgICAgICAgICAgICdUZXN0IFN1aXRlczpcXHQnLCBjaGFsay5ncmVlbih0aGlzLnJlc3VsdC5wYXNzZWQsICdwYXNzZWQnKSArICcsICcgK1xuICAgICAgICAgICAgKHRoaXMucmVzdWx0LmZhaWxlZCA/IGNoYWxrLnJlZCh0aGlzLnJlc3VsdC5mYWlsZWQsICdmYWlsZWQnKSArICcsICcgOiAnJykgK1xuICAgICAgICAgICAgdG90YWxKb2JzLCAndG90YWwnLFxuICAgICAgICAgICAgYCgke3RvdGFsSm9icyA/IE1hdGgucm91bmQoKHRoaXMucmVzdWx0LmZpbmlzaGVkIC8gdG90YWxKb2JzKSAqIDEwMCkgOiAwfSUgY29tcGxldGVkKWBcbiAgICAgICAgKVxuXG4gICAgICAgIHRoaXMudXBkYXRlQ2xvY2soKVxuXG4gICAgICAgIGlmICh0aGlzLnNpZ2ludFRyaWdnZXJlZCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW50ZXJ2YWwpXG4gICAgICAgICAgICB0aGlzLmludGVyZmFjZS5sb2coJ1xcbicpXG4gICAgICAgICAgICB0aGlzLmludGVyZmFjZS5sb2coIWlzRmluaXNoZWRcbiAgICAgICAgICAgICAgICA/ICdFbmRpbmcgV2ViRHJpdmVyIHNlc3Npb25zIGdyYWNlZnVsbHkgLi4uXFxuJyArXG4gICAgICAgICAgICAgICAgICAnKHByZXNzIGN0cmwrYyBhZ2FpbiB0byBoYXJkIGtpbGwgdGhlIHJ1bm5lciknXG4gICAgICAgICAgICAgICAgOiAnRW5kZWQgV2ViRHJpdmVyIHNlc3Npb25zIGdyYWNlZnVsbHkgYWZ0ZXIgYSBTSUdJTlQgc2lnbmFsIHdhcyByZWNlaXZlZCEnXG4gICAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNGaW5pc2hlZCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW50ZXJ2YWwpXG4gICAgICAgICAgICB0aGlzLmludGVyZmFjZS5sb2coJ1xcbicpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVDbG9jayAoaW50ZXJ2YWwgPSAxMDApIHtcbiAgICAgICAgY29uc3QgY2xvY2tTcGlubmVyU3ltYm9sID0gdGhpcy5nZXRDbG9ja1N5bWJvbCgpXG5cbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW50ZXJ2YWwpXG4gICAgICAgIHRoaXMuaW50ZXJmYWNlLmNsZWFyTGluZSgpXG4gICAgICAgIHRoaXMuaW50ZXJmYWNlLndyaXRlKCdUaW1lOlxcdFxcdCAnICsgY2xvY2tTcGlubmVyU3ltYm9sICsgJyAnICsgKChEYXRlLm5vdygpIC0gdGhpcy5zdGFydCkgLyAxMDAwKS50b0ZpeGVkKDIpICsgJ3MnKVxuICAgICAgICB0aGlzLmludGVydmFsID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZUNsb2NrKGludGVydmFsKSwgaW50ZXJ2YWwpXG4gICAgfVxuXG4gICAgZ2V0Q2xvY2tTeW1ib2wgKCkge1xuICAgICAgICByZXR1cm4gY2xvY2tTcGlubmVyLmZyYW1lc1t0aGlzLmNsb2NrVGltZXIgPSArK3RoaXMuY2xvY2tUaW1lciAlIGNsb2NrU3Bpbm5lci5mcmFtZXMubGVuZ3RoXVxuICAgIH1cblxuICAgIHJlc2V0ICgpIHtcbiAgICAgICAgdGhpcy5pbnRlcmZhY2UucmVzZXQoKVxuICAgIH1cbn1cbiJdfQ==

4

build/launcher.js

@@ -351,2 +351,3 @@ "use strict";

this.interface.updateView();
this.interface.reset();
setTimeout(() => this.resolve(this.exitCode), 100);

@@ -362,2 +363,3 @@ });

this.interface.updateView();
this.interface.reset();
setTimeout(() => this.resolve(1), 100);

@@ -387,2 +389,2 @@ });

exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXVuY2hlci5qcyJdLCJuYW1lcyI6WyJsb2ciLCJMYXVuY2hlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnRmlsZSIsImFyZ3YiLCJjb25maWdQYXJzZXIiLCJDb25maWdQYXJzZXIiLCJhZGRDb25maWdGaWxlIiwibWVyZ2UiLCJjb25maWciLCJnZXRDb25maWciLCJjYXBhYmlsaXRpZXMiLCJnZXRDYXBhYmlsaXRpZXMiLCJzcGVjcyIsImdldFNwZWNzIiwibG9nRGlyIiwicHJvY2VzcyIsImVudiIsIldESU9fTE9HX1BBVEgiLCJwYXRoIiwiam9pbiIsInRvdGFsV29ya2VyQ250IiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiYyIsImV4Y2x1ZGUiLCJsZW5ndGgiLCJyZWR1Y2UiLCJhIiwiYiIsImludGVyZmFjZSIsIkNMSW50ZXJmYWNlIiwicnVubmVyRW52IiwiRk9SQ0VfQ09MT1IiLCJOdW1iZXIiLCJoYXNBbnNpU3VwcG9ydCIsIlJ1bm5lciIsInJ1bm5lciIsImlzTXVsdGlyZW1vdGUiLCJleGl0Q29kZSIsImhhc1RyaWdnZXJlZEV4aXRSb3V0aW5lIiwiaGFzU3RhcnRlZEFueVByb2Nlc3MiLCJzY2hlZHVsZSIsInJpZCIsInJ1bm5lclN0YXJ0ZWQiLCJydW5uZXJGYWlsZWQiLCJydW4iLCJjYXBzIiwibGF1bmNoZXIiLCJpbml0aWFsaXNlIiwib25QcmVwYXJlIiwiaW5mbyIsImV4aXRIYW5kbGVyIiwicnVuTW9kZSIsIm9uQ29tcGxldGUiLCJyZXN1bHQiLCJ1cGRhdGVWaWV3IiwiUHJvbWlzZSIsInJlc29sdmUiLCJzdGFydEluc3RhbmNlIiwiY2lkIiwicHVzaCIsImF2YWlsYWJsZUluc3RhbmNlcyIsIm1heEluc3RhbmNlcyIsIm1heEluc3RhbmNlc1BlckNhcGFiaWxpdHkiLCJydW5uaW5nSW5zdGFuY2VzIiwic2VsZW5pdW1TZXJ2ZXIiLCJob3N0bmFtZSIsInBvcnQiLCJwcm90b2NvbCIsIk9iamVjdCIsInZhbHVlcyIsInNwZWNDbnQiLCJlcnJvciIsInJ1blNwZWNzIiwiZ2V0TnVtYmVyT2ZSdW5uaW5nSW5zdGFuY2VzIiwic2NoZWR1bGFibGVDYXBzIiwiZmlsdGVyIiwiYmFpbCIsImZvckVhY2giLCJ0Iiwic29ydCIsInNoaWZ0IiwiZ2V0TnVtYmVyT2ZTcGVjc0xlZnQiLCJzZXJ2ZXIiLCJnZXRSdW5uZXJJZCIsInByb2Nlc3NOdW1iZXIiLCJkZWJ1Z0FyZ3MiLCJkZWJ1Z1R5cGUiLCJkZWJ1Z0hvc3QiLCJkZWJ1Z1BvcnQiLCJpIiwiZXhlY0FyZ3YiLCJtYXRjaCIsInR5cGUiLCJob3N0IiwiY2FwRXhlY0FyZ3MiLCJkZWZhdWx0QXJncyIsIndvcmtlciIsImNvbW1hbmQiLCJvbiIsIm9uTWVzc2FnZSIsImVuZEhhbmRsZXIiLCJlbWl0IiwicGFzc2VkIiwicGFyc2VJbnQiLCJuZXh0VGljayIsInNldFRpbWVvdXQiLCJjYWxsYmFjayIsInNpZ2ludFRyaWdnZXIiLCJzaHV0ZG93biIsInRoZW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOzs7O0FBRUEsTUFBTUEsR0FBRyxHQUFHLHFCQUFPLG1CQUFQLENBQVo7O0FBRUEsTUFBTUMsUUFBTixDQUFlO0FBQ1hDLEVBQUFBLFdBQVcsQ0FBRUMsVUFBRixFQUFjQyxJQUFkLEVBQW9CO0FBQzNCLFNBQUtBLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtELFVBQUwsR0FBa0JBLFVBQWxCO0FBRUEsU0FBS0UsWUFBTCxHQUFvQixJQUFJQyxvQkFBSixFQUFwQjtBQUNBLFNBQUtELFlBQUwsQ0FBa0JFLGFBQWxCLENBQWdDSixVQUFoQztBQUNBLFNBQUtFLFlBQUwsQ0FBa0JHLEtBQWxCLENBQXdCSixJQUF4QjtBQUVBLFVBQU1LLE1BQU0sR0FBRyxLQUFLSixZQUFMLENBQWtCSyxTQUFsQixFQUFmO0FBQ0EsVUFBTUMsWUFBWSxHQUFHLEtBQUtOLFlBQUwsQ0FBa0JPLGVBQWxCLEVBQXJCO0FBQ0EsVUFBTUMsS0FBSyxHQUFHLEtBQUtSLFlBQUwsQ0FBa0JTLFFBQWxCLEVBQWQ7O0FBRUEsUUFBSUwsTUFBTSxDQUFDTSxNQUFYLEVBQW1CO0FBQ2ZDLE1BQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxhQUFaLEdBQTRCQyxjQUFLQyxJQUFMLENBQVVYLE1BQU0sQ0FBQ00sTUFBakIsRUFBeUIsVUFBekIsQ0FBNUI7QUFDSDs7QUFFRCxVQUFNTSxjQUFjLEdBQUdDLEtBQUssQ0FBQ0MsT0FBTixDQUFjWixZQUFkLElBQ2pCQSxZQUFZLENBQ1RhLEdBREgsQ0FDUUMsQ0FBRCxJQUFPLEtBQUtwQixZQUFMLENBQWtCUyxRQUFsQixDQUEyQlcsQ0FBQyxDQUFDWixLQUE3QixFQUFvQ1ksQ0FBQyxDQUFDQyxPQUF0QyxFQUErQ0MsTUFEN0QsRUFFR0MsTUFGSCxDQUVVLENBQUNDLENBQUQsRUFBSUMsQ0FBSixLQUFVRCxDQUFDLEdBQUdDLENBRnhCLEVBRTJCLENBRjNCLENBRGlCLEdBSWpCLENBSk47QUFNQSxTQUFLQyxTQUFMLEdBQWlCLElBQUlDLGtCQUFKLENBQWdCdkIsTUFBaEIsRUFBd0JJLEtBQXhCLEVBQStCUSxjQUEvQixDQUFqQjtBQUNBWixJQUFBQSxNQUFNLENBQUN3QixTQUFQLENBQWlCQyxXQUFqQixHQUErQkMsTUFBTSxDQUFDLEtBQUtKLFNBQUwsQ0FBZUssY0FBaEIsQ0FBckM7QUFFQSxVQUFNQyxNQUFNLEdBQUcsOEJBQWlCNUIsTUFBTSxDQUFDNkIsTUFBeEIsRUFBZ0MsUUFBaEMsQ0FBZjtBQUNBLFNBQUtBLE1BQUwsR0FBYyxJQUFJRCxNQUFKLENBQVdsQyxVQUFYLEVBQXVCTSxNQUF2QixDQUFkO0FBRUEsU0FBSzhCLGFBQUwsR0FBcUIsQ0FBQ2pCLEtBQUssQ0FBQ0MsT0FBTixDQUFjWixZQUFkLENBQXRCO0FBQ0EsU0FBSzZCLFFBQUwsR0FBZ0IsQ0FBaEI7QUFDQSxTQUFLQyx1QkFBTCxHQUErQixLQUEvQjtBQUNBLFNBQUtDLG9CQUFMLEdBQTRCLEtBQTVCO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixFQUFoQjtBQUNBLFNBQUtDLEdBQUwsR0FBVyxFQUFYO0FBQ0EsU0FBS0MsYUFBTCxHQUFxQixDQUFyQjtBQUNBLFNBQUtDLFlBQUwsR0FBb0IsQ0FBcEI7QUFDSDtBQUVEOzs7Ozs7QUFJQSxRQUFNQyxHQUFOLEdBQWE7QUFDVCxRQUFJdEMsTUFBTSxHQUFHLEtBQUtKLFlBQUwsQ0FBa0JLLFNBQWxCLEVBQWI7QUFDQSxRQUFJc0MsSUFBSSxHQUFHLEtBQUszQyxZQUFMLENBQWtCTyxlQUFsQixFQUFYO0FBQ0EsVUFBTXFDLFFBQVEsR0FBRyx3QkFBWXhDLE1BQVosQ0FBakI7QUFFQTs7Ozs7QUFJQSxVQUFNLEtBQUs2QixNQUFMLENBQVlZLFVBQVosRUFBTjtBQUVBOzs7O0FBR0EsVUFBTXpDLE1BQU0sQ0FBQzBDLFNBQVAsQ0FBaUIxQyxNQUFqQixFQUF5QnVDLElBQXpCLENBQU47QUFDQWhELElBQUFBLEdBQUcsQ0FBQ29ELElBQUosQ0FBUyxvQkFBVDtBQUNBLFVBQU0sMkJBQWVILFFBQWYsRUFBeUIsV0FBekIsRUFBc0N4QyxNQUF0QyxFQUE4Q3VDLElBQTlDLENBQU47QUFFQTs7OztBQUdBLGdDQUFXLEtBQUtLLFdBQWhCLE1BQVcsSUFBWDtBQUVBLFVBQU1iLFFBQVEsR0FBRyxNQUFNLEtBQUtjLE9BQUwsQ0FBYTdDLE1BQWIsRUFBcUJ1QyxJQUFyQixDQUF2QjtBQUVBOzs7O0FBR0FoRCxJQUFBQSxHQUFHLENBQUNvRCxJQUFKLENBQVMscUJBQVQ7QUFDQSxVQUFNLDJCQUFlSCxRQUFmLEVBQXlCLFlBQXpCLEVBQXVDVCxRQUF2QyxFQUFpRC9CLE1BQWpELEVBQXlEdUMsSUFBekQsQ0FBTjtBQUNBLFVBQU12QyxNQUFNLENBQUM4QyxVQUFQLENBQWtCZixRQUFsQixFQUE0Qi9CLE1BQTVCLEVBQW9DdUMsSUFBcEMsRUFBMEMsS0FBS2pCLFNBQUwsQ0FBZXlCLE1BQXpELENBQU47QUFFQSxTQUFLekIsU0FBTCxDQUFlMEIsVUFBZjtBQUNBLFdBQU9qQixRQUFQO0FBQ0g7QUFFRDs7Ozs7QUFHQWMsRUFBQUEsT0FBTyxDQUFFN0MsTUFBRixFQUFVdUMsSUFBVixFQUFnQjtBQUNuQjs7O0FBR0EsUUFBSSxLQUFLVCxhQUFULEVBQXdCO0FBQ3BCLGFBQU8sSUFBSW1CLE9BQUosQ0FBYUMsT0FBRCxJQUFhO0FBQzVCLGFBQUtBLE9BQUwsR0FBZUEsT0FBZjtBQUNBLGFBQUtDLGFBQUwsQ0FBbUIsS0FBS3ZELFlBQUwsQ0FBa0JTLFFBQWxCLEVBQW5CLEVBQWlEa0MsSUFBakQsRUFBdUQsQ0FBdkQ7QUFDSCxPQUhNLENBQVA7QUFJSDtBQUVEOzs7OztBQUdBLFFBQUlhLEdBQUcsR0FBRyxDQUFWOztBQUNBLFNBQUssSUFBSWxELFlBQVQsSUFBeUJxQyxJQUF6QixFQUErQjtBQUMzQixXQUFLTCxRQUFMLENBQWNtQixJQUFkLENBQW1CO0FBQ2ZELFFBQUFBLEdBQUcsRUFBRUEsR0FBRyxFQURPO0FBRWZiLFFBQUFBLElBQUksRUFBRXJDLFlBRlM7QUFHZkUsUUFBQUEsS0FBSyxFQUFFLEtBQUtSLFlBQUwsQ0FBa0JTLFFBQWxCLENBQTJCSCxZQUFZLENBQUNFLEtBQXhDLEVBQStDRixZQUFZLENBQUNlLE9BQTVELENBSFE7QUFJZnFDLFFBQUFBLGtCQUFrQixFQUFFcEQsWUFBWSxDQUFDcUQsWUFBYixJQUE2QnZELE1BQU0sQ0FBQ3dELHlCQUp6QztBQUtmQyxRQUFBQSxnQkFBZ0IsRUFBRSxDQUxIO0FBTWZDLFFBQUFBLGNBQWMsRUFBRTtBQUFFQyxVQUFBQSxRQUFRLEVBQUUzRCxNQUFNLENBQUMyRCxRQUFuQjtBQUE2QkMsVUFBQUEsSUFBSSxFQUFFNUQsTUFBTSxDQUFDNEQsSUFBMUM7QUFBZ0RDLFVBQUFBLFFBQVEsRUFBRTdELE1BQU0sQ0FBQzZEO0FBQWpFO0FBTkQsT0FBbkI7QUFRSDs7QUFFRCxXQUFPLElBQUlaLE9BQUosQ0FBYUMsT0FBRCxJQUFhO0FBQzVCLFdBQUtBLE9BQUwsR0FBZUEsT0FBZjtBQUVBOzs7O0FBR0EsVUFBSVksTUFBTSxDQUFDQyxNQUFQLENBQWMsS0FBSzdCLFFBQW5CLEVBQTZCZixNQUE3QixDQUFvQyxDQUFDNkMsT0FBRCxFQUFVOUIsUUFBVixLQUF1QjhCLE9BQU8sR0FBRzlCLFFBQVEsQ0FBQzlCLEtBQVQsQ0FBZWMsTUFBcEYsRUFBNEYsQ0FBNUYsTUFBbUcsQ0FBdkcsRUFBMEc7QUFDdEczQixRQUFBQSxHQUFHLENBQUMwRSxLQUFKLENBQVUsNkNBQVY7QUFDQSxhQUFLM0MsU0FBTCxDQUFlMEIsVUFBZjtBQUNBLGVBQU9FLE9BQU8sQ0FBQyxDQUFELENBQWQ7QUFDSDtBQUVEOzs7OztBQUdBLFVBQUksS0FBS2dCLFFBQUwsRUFBSixFQUFxQjtBQUNqQmhCLFFBQUFBLE9BQU8sQ0FBQyxDQUFELENBQVA7QUFDSDtBQUNKLEtBbEJNLENBQVA7QUFtQkg7QUFFRDs7Ozs7O0FBSUFnQixFQUFBQSxRQUFRLEdBQUk7QUFDUixRQUFJbEUsTUFBTSxHQUFHLEtBQUtKLFlBQUwsQ0FBa0JLLFNBQWxCLEVBQWI7QUFFQTs7OztBQUdBLFFBQUksS0FBSytCLHVCQUFULEVBQWtDO0FBQzlCLGFBQU8sSUFBUDtBQUNIOztBQUVELFdBQU8sS0FBS21DLDJCQUFMLEtBQXFDbkUsTUFBTSxDQUFDdUQsWUFBbkQsRUFBaUU7QUFDN0QsVUFBSWEsZUFBZSxHQUFHLEtBQUtsQztBQUN2Qjs7O0FBRGtCLE9BSWpCbUMsTUFKaUIsQ0FJVixNQUFNO0FBQ1YsY0FBTUEsTUFBTSxHQUFHLE9BQU9yRSxNQUFNLENBQUNzRSxJQUFkLEtBQXVCLFFBQXZCLElBQW1DdEUsTUFBTSxDQUFDc0UsSUFBUCxHQUFjLENBQWpELElBQ0F0RSxNQUFNLENBQUNzRSxJQUFQLEdBQWMsS0FBS2pDLFlBRGxDO0FBR0E7Ozs7QUFHQSxZQUFJLENBQUNnQyxNQUFMLEVBQWE7QUFDVCxlQUFLbkMsUUFBTCxDQUFjcUMsT0FBZCxDQUF1QkMsQ0FBRCxJQUFPO0FBQUVBLFlBQUFBLENBQUMsQ0FBQ3BFLEtBQUYsR0FBVSxFQUFWO0FBQWMsV0FBN0M7QUFDSDs7QUFFRCxlQUFPaUUsTUFBUDtBQUNILE9BaEJpQjtBQWlCbEI7OztBQWpCa0IsT0FvQmpCQSxNQXBCaUIsQ0FvQlYsTUFBTSxLQUFLRiwyQkFBTCxLQUFxQ25FLE1BQU0sQ0FBQ3VELFlBcEJ4QztBQXFCbEI7OztBQXJCa0IsT0F3QmpCYyxNQXhCaUIsQ0F3QlRqRCxDQUFELElBQU9BLENBQUMsQ0FBQ2tDLGtCQUFGLEdBQXVCLENBeEJwQjtBQXlCbEI7OztBQXpCa0IsT0E0QmpCZSxNQTVCaUIsQ0E0QlRqRCxDQUFELElBQU9BLENBQUMsQ0FBQ2hCLEtBQUYsQ0FBUWMsTUFBUixHQUFpQixDQTVCZDtBQTZCbEI7OztBQTdCa0IsT0FnQ2pCdUQsSUFoQ2lCLENBZ0NaLENBQUNyRCxDQUFELEVBQUlDLENBQUosS0FBVUQsQ0FBQyxDQUFDcUMsZ0JBQUYsR0FBcUJwQyxDQUFDLENBQUNvQyxnQkFoQ3JCLENBQXRCO0FBa0NBOzs7O0FBR0EsVUFBSVcsZUFBZSxDQUFDbEQsTUFBaEIsS0FBMkIsQ0FBL0IsRUFBa0M7QUFDOUI7QUFDSDs7QUFFRCxXQUFLaUMsYUFBTCxDQUNJLENBQUNpQixlQUFlLENBQUMsQ0FBRCxDQUFmLENBQW1CaEUsS0FBbkIsQ0FBeUJzRSxLQUF6QixFQUFELENBREosRUFFSU4sZUFBZSxDQUFDLENBQUQsQ0FBZixDQUFtQjdCLElBRnZCLEVBR0k2QixlQUFlLENBQUMsQ0FBRCxDQUFmLENBQW1CaEIsR0FIdkIsRUFJSWdCLGVBQWUsQ0FBQyxDQUFELENBQWYsQ0FBbUJWLGNBSnZCO0FBTUFVLE1BQUFBLGVBQWUsQ0FBQyxDQUFELENBQWYsQ0FBbUJkLGtCQUFuQjtBQUNBYyxNQUFBQSxlQUFlLENBQUMsQ0FBRCxDQUFmLENBQW1CWCxnQkFBbkI7QUFDSDs7QUFFRCxXQUFPLEtBQUtVLDJCQUFMLE9BQXVDLENBQXZDLElBQTRDLEtBQUtRLG9CQUFMLE9BQWdDLENBQW5GO0FBQ0g7QUFFRDs7Ozs7O0FBSUFSLEVBQUFBLDJCQUEyQixHQUFJO0FBQzNCLFdBQU8sS0FBS2pDLFFBQUwsQ0FBY25CLEdBQWQsQ0FBbUJLLENBQUQsSUFBT0EsQ0FBQyxDQUFDcUMsZ0JBQTNCLEVBQTZDdEMsTUFBN0MsQ0FBb0QsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEtBQVVELENBQUMsR0FBR0MsQ0FBbEUsQ0FBUDtBQUNIO0FBRUQ7Ozs7OztBQUlBc0QsRUFBQUEsb0JBQW9CLEdBQUk7QUFDcEIsV0FBTyxLQUFLekMsUUFBTCxDQUFjbkIsR0FBZCxDQUFtQkssQ0FBRCxJQUFPQSxDQUFDLENBQUNoQixLQUFGLENBQVFjLE1BQWpDLEVBQXlDQyxNQUF6QyxDQUFnRCxDQUFDQyxDQUFELEVBQUlDLENBQUosS0FBVUQsQ0FBQyxHQUFHQyxDQUE5RCxDQUFQO0FBQ0g7QUFFRDs7Ozs7OztBQUtBOEIsRUFBQUEsYUFBYSxDQUFFL0MsS0FBRixFQUFTbUMsSUFBVCxFQUFlYSxHQUFmLEVBQW9Cd0IsTUFBcEIsRUFBNEI7QUFBQTs7QUFDckMsUUFBSTVFLE1BQU0sR0FBRyxLQUFLSixZQUFMLENBQWtCSyxTQUFsQixFQUFiO0FBQ0FtRCxJQUFBQSxHQUFHLEdBQUcsS0FBS3lCLFdBQUwsQ0FBaUJ6QixHQUFqQixDQUFOO0FBQ0EsUUFBSTBCLGFBQWEsR0FBRyxLQUFLMUMsYUFBTCxHQUFxQixDQUF6QyxDQUhxQyxDQUtyQztBQUNBOztBQUNBLFFBQUkyQyxTQUFTLEdBQUcsRUFBaEI7QUFDQSxRQUFJQyxTQUFKO0FBQ0EsUUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsUUFBSUMsU0FBUyxHQUFHM0UsT0FBTyxDQUFDMkUsU0FBeEI7O0FBQ0EsU0FBSyxJQUFJQyxDQUFULElBQWM1RSxPQUFPLENBQUM2RSxRQUF0QixFQUFnQztBQUM1QixZQUFNTCxTQUFTLEdBQUd4RSxPQUFPLENBQUM2RSxRQUFSLENBQWlCRCxDQUFqQixFQUFvQkUsS0FBcEIsQ0FBMEIsdUNBQTFCLENBQWxCOztBQUNBLFVBQUlOLFNBQUosRUFBZTtBQUNYLFlBQUksR0FBR08sSUFBSCxFQUFTQyxJQUFULElBQWlCUixTQUFyQjs7QUFDQSxZQUFJTyxJQUFKLEVBQVU7QUFDTk4sVUFBQUEsU0FBUyxHQUFHTSxJQUFaO0FBQ0g7O0FBQ0QsWUFBSUMsSUFBSixFQUFVO0FBQ05OLFVBQUFBLFNBQVMsR0FBSSxHQUFFTSxJQUFLLEdBQXBCO0FBQ0g7QUFDSjtBQUNKOztBQUVELFFBQUlQLFNBQUosRUFBZTtBQUNYRCxNQUFBQSxTQUFTLENBQUMxQixJQUFWLENBQWdCLEtBQUkyQixTQUFVLElBQUdDLFNBQVUsR0FBR0MsU0FBUyxHQUFHSixhQUFlLEVBQXpFO0FBQ0gsS0ExQm9DLENBNEJyQzs7O0FBQ0EsUUFBSVUsV0FBVyxHQUFHLENBQ2QsSUFBSXhGLE1BQU0sQ0FBQ29GLFFBQVAsSUFBbUIsRUFBdkIsQ0FEYyxFQUVkLElBQUk3QyxJQUFJLENBQUM2QyxRQUFMLElBQWlCLEVBQXJCLENBRmMsQ0FBbEIsQ0E3QnFDLENBa0NyQztBQUNBOztBQUNBLFFBQUlLLFdBQVcsR0FBSUQsV0FBVyxDQUFDdEUsTUFBYixHQUF1QlgsT0FBTyxDQUFDNkUsUUFBL0IsR0FBMEMsRUFBNUQsQ0FwQ3FDLENBc0NyQzs7QUFDQSxRQUFJQSxRQUFRLEdBQUcsQ0FBRSxHQUFHSyxXQUFMLEVBQWtCLEdBQUdWLFNBQXJCLEVBQWdDLEdBQUdTLFdBQW5DLENBQWYsQ0F2Q3FDLENBeUNyQzs7QUFDQSxVQUFNRSxNQUFNLEdBQUcsS0FBSzdELE1BQUwsQ0FBWVMsR0FBWixDQUFnQjtBQUMzQmMsTUFBQUEsR0FEMkI7QUFFM0J1QyxNQUFBQSxPQUFPLEVBQUUsS0FGa0I7QUFHM0JqRyxNQUFBQSxVQUFVLEVBQUUsS0FBS0EsVUFIVTtBQUkzQkMsTUFBQUEsSUFBSSxFQUFFLEtBQUtBLElBSmdCO0FBSzNCNEMsTUFBQUEsSUFMMkI7QUFNM0JuQyxNQUFBQSxLQU4yQjtBQU8zQndFLE1BQUFBLE1BUDJCO0FBUTNCUSxNQUFBQTtBQVIyQixLQUFoQixDQUFmO0FBVUFNLElBQUFBLE1BQU0sQ0FBQ0UsRUFBUCxDQUFVLFNBQVYsRUFBdUIsaUJBQUt0RSxTQUFMLEVBQWV1RSxTQUF0QztBQUNBSCxJQUFBQSxNQUFNLENBQUNFLEVBQVAsQ0FBVSxPQUFWLEVBQXFCLGlCQUFLdEUsU0FBTCxFQUFldUUsU0FBcEM7QUFDQUgsSUFBQUEsTUFBTSxDQUFDRSxFQUFQLENBQVUsTUFBVixFQUFvQixLQUFLRSxVQUF6QixNQUFvQixJQUFwQjtBQUVBLFNBQUt4RSxTQUFMLENBQWV5RSxJQUFmLENBQW9CLFdBQXBCLEVBQWlDO0FBQUUzQyxNQUFBQSxHQUFGO0FBQU9iLE1BQUFBLElBQVA7QUFBYW5DLE1BQUFBO0FBQWIsS0FBakM7QUFDQSxTQUFLZ0MsYUFBTDtBQUNIO0FBRUQ7Ozs7Ozs7QUFLQXlDLEVBQUFBLFdBQVcsQ0FBRXpCLEdBQUYsRUFBTztBQUNkLFFBQUksQ0FBQyxLQUFLakIsR0FBTCxDQUFTaUIsR0FBVCxDQUFMLEVBQW9CO0FBQ2hCLFdBQUtqQixHQUFMLENBQVNpQixHQUFULElBQWdCLENBQWhCO0FBQ0g7O0FBQ0QsV0FBUSxHQUFFQSxHQUFJLElBQUcsS0FBS2pCLEdBQUwsQ0FBU2lCLEdBQVQsR0FBZ0IsRUFBakM7QUFDSDtBQUVEOzs7Ozs7O0FBS0EwQyxFQUFBQSxVQUFVLENBQUU7QUFBRTFDLElBQUFBLEdBQUY7QUFBT3JCLElBQUFBO0FBQVAsR0FBRixFQUFxQjtBQUMzQixVQUFNaUUsTUFBTSxHQUFHakUsUUFBUSxLQUFLLENBQTVCO0FBQ0EsU0FBS0EsUUFBTCxHQUFnQixLQUFLQSxRQUFMLElBQWlCQSxRQUFqQztBQUNBLFNBQUtNLFlBQUwsSUFBcUIsQ0FBQzJELE1BQUQsR0FBVSxDQUFWLEdBQWMsQ0FBbkM7QUFDQSxTQUFLMUUsU0FBTCxDQUFleUUsSUFBZixDQUFvQixTQUFwQixFQUErQjtBQUFFM0MsTUFBQUEsR0FBRjtBQUFPNEMsTUFBQUE7QUFBUCxLQUEvQixFQUoyQixDQU0zQjs7QUFDQSxRQUFJLENBQUMsS0FBS2xFLGFBQVYsRUFBeUI7QUFDckI7QUFDQXNCLE1BQUFBLEdBQUcsR0FBRzZDLFFBQVEsQ0FBQzdDLEdBQUQsRUFBTSxFQUFOLENBQWQ7QUFFQSxXQUFLbEIsUUFBTCxDQUFja0IsR0FBZCxFQUFtQkUsa0JBQW5CO0FBQ0EsV0FBS3BCLFFBQUwsQ0FBY2tCLEdBQWQsRUFBbUJLLGdCQUFuQjtBQUNIOztBQUVELFFBQUksQ0FBQyxLQUFLM0IsYUFBTixJQUF1QixDQUFDLEtBQUtvQyxRQUFMLEVBQTVCLEVBQTZDO0FBQ3pDO0FBQ0g7O0FBRUQsUUFBSThCLE1BQUosRUFBWTtBQUNSLGFBQU96RixPQUFPLENBQUMyRixRQUFSLENBQWlCLE1BQU07QUFDMUIsYUFBSzVFLFNBQUwsQ0FBZTBCLFVBQWY7QUFDQW1ELFFBQUFBLFVBQVUsQ0FBQyxNQUFNLEtBQUtqRCxPQUFMLENBQWEsS0FBS25CLFFBQWxCLENBQVAsRUFBb0MsR0FBcEMsQ0FBVjtBQUNILE9BSE0sQ0FBUDtBQUlIO0FBRUQ7Ozs7O0FBR0EsV0FBT3hCLE9BQU8sQ0FBQzJGLFFBQVIsQ0FBaUIsTUFBTTtBQUMxQixXQUFLNUUsU0FBTCxDQUFlMEIsVUFBZjtBQUNBbUQsTUFBQUEsVUFBVSxDQUFDLE1BQU0sS0FBS2pELE9BQUwsQ0FBYSxDQUFiLENBQVAsRUFBd0IsR0FBeEIsQ0FBVjtBQUNILEtBSE0sQ0FBUDtBQUlIO0FBRUQ7Ozs7Ozs7QUFLQU4sRUFBQUEsV0FBVyxDQUFFd0QsUUFBRixFQUFZO0FBQ25CLFFBQUksQ0FBQ0EsUUFBTCxFQUFlO0FBQ1g7QUFDSDs7QUFFRCxTQUFLcEUsdUJBQUwsR0FBK0IsSUFBL0I7QUFDQSxTQUFLVixTQUFMLENBQWUrRSxhQUFmO0FBQ0EsV0FBTyxLQUFLeEUsTUFBTCxDQUFZeUUsUUFBWixHQUF1QkMsSUFBdkIsQ0FBNEJILFFBQTVCLENBQVA7QUFDSDs7QUF4VlU7O2VBMlZBNUcsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZXhpdEhvb2sgZnJvbSAnYXN5bmMtZXhpdC1ob29rJ1xuXG5pbXBvcnQgbG9nZ2VyIGZyb20gJ0B3ZGlvL2xvZ2dlcidcbmltcG9ydCB7IENvbmZpZ1BhcnNlciwgaW5pdGlhbGlzZVBsdWdpbiB9IGZyb20gJ0B3ZGlvL2NvbmZpZydcblxuaW1wb3J0IENMSW50ZXJmYWNlIGZyb20gJy4vaW50ZXJmYWNlJ1xuaW1wb3J0IHsgZ2V0TGF1bmNoZXIsIHJ1blNlcnZpY2VIb29rIH0gZnJvbSAnLi91dGlscydcblxuY29uc3QgbG9nID0gbG9nZ2VyKCd3ZGlvLWNsaTpMYXVuY2hlcicpXG5cbmNsYXNzIExhdW5jaGVyIHtcbiAgICBjb25zdHJ1Y3RvciAoY29uZmlnRmlsZSwgYXJndikge1xuICAgICAgICB0aGlzLmFyZ3YgPSBhcmd2XG4gICAgICAgIHRoaXMuY29uZmlnRmlsZSA9IGNvbmZpZ0ZpbGVcblxuICAgICAgICB0aGlzLmNvbmZpZ1BhcnNlciA9IG5ldyBDb25maWdQYXJzZXIoKVxuICAgICAgICB0aGlzLmNvbmZpZ1BhcnNlci5hZGRDb25maWdGaWxlKGNvbmZpZ0ZpbGUpXG4gICAgICAgIHRoaXMuY29uZmlnUGFyc2VyLm1lcmdlKGFyZ3YpXG5cbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWdQYXJzZXIuZ2V0Q29uZmlnKClcbiAgICAgICAgY29uc3QgY2FwYWJpbGl0aWVzID0gdGhpcy5jb25maWdQYXJzZXIuZ2V0Q2FwYWJpbGl0aWVzKClcbiAgICAgICAgY29uc3Qgc3BlY3MgPSB0aGlzLmNvbmZpZ1BhcnNlci5nZXRTcGVjcygpXG5cbiAgICAgICAgaWYgKGNvbmZpZy5sb2dEaXIpIHtcbiAgICAgICAgICAgIHByb2Nlc3MuZW52LldESU9fTE9HX1BBVEggPSBwYXRoLmpvaW4oY29uZmlnLmxvZ0RpciwgJ3dkaW8ubG9nJylcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRvdGFsV29ya2VyQ250ID0gQXJyYXkuaXNBcnJheShjYXBhYmlsaXRpZXMpXG4gICAgICAgICAgICA/IGNhcGFiaWxpdGllc1xuICAgICAgICAgICAgICAgIC5tYXAoKGMpID0+IHRoaXMuY29uZmlnUGFyc2VyLmdldFNwZWNzKGMuc3BlY3MsIGMuZXhjbHVkZSkubGVuZ3RoKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKVxuICAgICAgICAgICAgOiAxXG5cbiAgICAgICAgdGhpcy5pbnRlcmZhY2UgPSBuZXcgQ0xJbnRlcmZhY2UoY29uZmlnLCBzcGVjcywgdG90YWxXb3JrZXJDbnQpXG4gICAgICAgIGNvbmZpZy5ydW5uZXJFbnYuRk9SQ0VfQ09MT1IgPSBOdW1iZXIodGhpcy5pbnRlcmZhY2UuaGFzQW5zaVN1cHBvcnQpXG5cbiAgICAgICAgY29uc3QgUnVubmVyID0gaW5pdGlhbGlzZVBsdWdpbihjb25maWcucnVubmVyLCAncnVubmVyJylcbiAgICAgICAgdGhpcy5ydW5uZXIgPSBuZXcgUnVubmVyKGNvbmZpZ0ZpbGUsIGNvbmZpZylcblxuICAgICAgICB0aGlzLmlzTXVsdGlyZW1vdGUgPSAhQXJyYXkuaXNBcnJheShjYXBhYmlsaXRpZXMpXG4gICAgICAgIHRoaXMuZXhpdENvZGUgPSAwXG4gICAgICAgIHRoaXMuaGFzVHJpZ2dlcmVkRXhpdFJvdXRpbmUgPSBmYWxzZVxuICAgICAgICB0aGlzLmhhc1N0YXJ0ZWRBbnlQcm9jZXNzID0gZmFsc2VcbiAgICAgICAgdGhpcy5zY2hlZHVsZSA9IFtdXG4gICAgICAgIHRoaXMucmlkID0gW11cbiAgICAgICAgdGhpcy5ydW5uZXJTdGFydGVkID0gMFxuICAgICAgICB0aGlzLnJ1bm5lckZhaWxlZCA9IDBcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBydW4gc2VxdWVuY2VcbiAgICAgKiBAcmV0dXJuICB7UHJvbWlzZX0gdGhhdCBvbmx5IGdldHMgcmVzb2x2ZXMgd2l0aCBlaXRoZXIgYW4gZXhpdENvZGUgb3IgYW4gZXJyb3JcbiAgICAgKi9cbiAgICBhc3luYyBydW4gKCkge1xuICAgICAgICBsZXQgY29uZmlnID0gdGhpcy5jb25maWdQYXJzZXIuZ2V0Q29uZmlnKClcbiAgICAgICAgbGV0IGNhcHMgPSB0aGlzLmNvbmZpZ1BhcnNlci5nZXRDYXBhYmlsaXRpZXMoKVxuICAgICAgICBjb25zdCBsYXVuY2hlciA9IGdldExhdW5jaGVyKGNvbmZpZylcblxuICAgICAgICAvKipcbiAgICAgICAgICogcnVuIHByZSB0ZXN0IHRhc2tzIGZvciBydW5uZXIgcGx1Z2luc1xuICAgICAgICAgKiAoZS5nLiBkZXBsb3kgTGFtYmRhIGZ1bmN0aW8gdG8gQVdTKVxuICAgICAgICAgKi9cbiAgICAgICAgYXdhaXQgdGhpcy5ydW5uZXIuaW5pdGlhbGlzZSgpXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHJ1biBvblByZXBhcmUgaG9va1xuICAgICAgICAgKi9cbiAgICAgICAgYXdhaXQgY29uZmlnLm9uUHJlcGFyZShjb25maWcsIGNhcHMpXG4gICAgICAgIGxvZy5pbmZvKCdSdW4gb25QcmVwYXJlIGhvb2snKVxuICAgICAgICBhd2FpdCBydW5TZXJ2aWNlSG9vayhsYXVuY2hlciwgJ29uUHJlcGFyZScsIGNvbmZpZywgY2FwcylcblxuICAgICAgICAvKipcbiAgICAgICAgICogY2F0Y2hlcyBjdHJsK2MgZXZlbnRcbiAgICAgICAgICovXG4gICAgICAgIGV4aXRIb29rKDo6dGhpcy5leGl0SGFuZGxlcilcblxuICAgICAgICBjb25zdCBleGl0Q29kZSA9IGF3YWl0IHRoaXMucnVuTW9kZShjb25maWcsIGNhcHMpXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHJ1biBvbkNvbXBsZXRlIGhvb2tcbiAgICAgICAgICovXG4gICAgICAgIGxvZy5pbmZvKCdSdW4gb25Db21wbGV0ZSBob29rJylcbiAgICAgICAgYXdhaXQgcnVuU2VydmljZUhvb2sobGF1bmNoZXIsICdvbkNvbXBsZXRlJywgZXhpdENvZGUsIGNvbmZpZywgY2FwcylcbiAgICAgICAgYXdhaXQgY29uZmlnLm9uQ29tcGxldGUoZXhpdENvZGUsIGNvbmZpZywgY2FwcywgdGhpcy5pbnRlcmZhY2UucmVzdWx0KVxuXG4gICAgICAgIHRoaXMuaW50ZXJmYWNlLnVwZGF0ZVZpZXcoKVxuICAgICAgICByZXR1cm4gZXhpdENvZGVcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBydW4gd2l0aG91dCB0cmlnZ2VyaW5nIG9uUHJlcGFyZS9vbkNvbXBsZXRlIGhvb2tzXG4gICAgICovXG4gICAgcnVuTW9kZSAoY29uZmlnLCBjYXBzKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBpZiBpdCBpcyBhbiBvYmplY3QgcnVuIG11bHRpcmVtb3RlIHRlc3RcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLmlzTXVsdGlyZW1vdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZSA9IHJlc29sdmVcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0SW5zdGFuY2UodGhpcy5jb25maWdQYXJzZXIuZ2V0U3BlY3MoKSwgY2FwcywgMClcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogc2NoZWR1bGUgdGVzdCBydW5zXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgY2lkID0gMFxuICAgICAgICBmb3IgKGxldCBjYXBhYmlsaXRpZXMgb2YgY2Fwcykge1xuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZS5wdXNoKHtcbiAgICAgICAgICAgICAgICBjaWQ6IGNpZCsrLFxuICAgICAgICAgICAgICAgIGNhcHM6IGNhcGFiaWxpdGllcyxcbiAgICAgICAgICAgICAgICBzcGVjczogdGhpcy5jb25maWdQYXJzZXIuZ2V0U3BlY3MoY2FwYWJpbGl0aWVzLnNwZWNzLCBjYXBhYmlsaXRpZXMuZXhjbHVkZSksXG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlSW5zdGFuY2VzOiBjYXBhYmlsaXRpZXMubWF4SW5zdGFuY2VzIHx8IGNvbmZpZy5tYXhJbnN0YW5jZXNQZXJDYXBhYmlsaXR5LFxuICAgICAgICAgICAgICAgIHJ1bm5pbmdJbnN0YW5jZXM6IDAsXG4gICAgICAgICAgICAgICAgc2VsZW5pdW1TZXJ2ZXI6IHsgaG9zdG5hbWU6IGNvbmZpZy5ob3N0bmFtZSwgcG9ydDogY29uZmlnLnBvcnQsIHByb3RvY29sOiBjb25maWcucHJvdG9jb2wgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXNvbHZlID0gcmVzb2x2ZVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGZhaWwgaWYgbm8gc3BlY3Mgd2VyZSBmb3VuZCBvciBzcGVjaWZpZWRcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKE9iamVjdC52YWx1ZXModGhpcy5zY2hlZHVsZSkucmVkdWNlKChzcGVjQ250LCBzY2hlZHVsZSkgPT4gc3BlY0NudCArIHNjaGVkdWxlLnNwZWNzLmxlbmd0aCwgMCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IoJ05vIHNwZWNzIGZvdW5kIHRvIHJ1biwgZXhpdGluZyB3aXRoIGZhaWx1cmUnKVxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJmYWNlLnVwZGF0ZVZpZXcoKVxuICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKDEpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogcmV0dXJuIGltbWVkaWF0ZWx5IGlmIG5vIHNwZWMgd2FzIHJ1blxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy5ydW5TcGVjcygpKSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgwKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJ1biBtdWx0aXBsZSBzaW5nbGUgcmVtb3RlIHRlc3RzXG4gICAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBhbGwgc3BlY3MgaGF2ZSBiZWVuIHJ1biBhbmQgYWxsIGluc3RhbmNlcyBoYXZlIGZpbmlzaGVkXG4gICAgICovXG4gICAgcnVuU3BlY3MgKCkge1xuICAgICAgICBsZXQgY29uZmlnID0gdGhpcy5jb25maWdQYXJzZXIuZ2V0Q29uZmlnKClcblxuICAgICAgICAvKipcbiAgICAgICAgICogc3RvcCBzcGF3bmluZyBuZXcgcHJvY2Vzc2VzIHdoZW4gQ1RSTCtDIHdhcyB0cmlnZ2VyZWRcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLmhhc1RyaWdnZXJlZEV4aXRSb3V0aW5lKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKHRoaXMuZ2V0TnVtYmVyT2ZSdW5uaW5nSW5zdGFuY2VzKCkgPCBjb25maWcubWF4SW5zdGFuY2VzKSB7XG4gICAgICAgICAgICBsZXQgc2NoZWR1bGFibGVDYXBzID0gdGhpcy5zY2hlZHVsZVxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIGJhaWwgaWYgbnVtYmVyIG9mIGVycm9ycyBleGNlZWRzIGFsbG93ZWRcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAuZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gdHlwZW9mIGNvbmZpZy5iYWlsICE9PSAnbnVtYmVyJyB8fCBjb25maWcuYmFpbCA8IDEgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmJhaWwgPiB0aGlzLnJ1bm5lckZhaWxlZFxuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBjbGVhciBudW1iZXIgb2Ygc3BlY3Mgd2hlbiBmaWx0ZXIgaXMgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGlmICghZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlLmZvckVhY2goKHQpID0+IHsgdC5zcGVjcyA9IFtdIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBtYWtlIHN1cmUgY29tcGxldGUgbnVtYmVyIG9mIHJ1bm5pbmcgaW5zdGFuY2VzIGlzIG5vdCBoaWdoZXIgdGhhbiBnZW5lcmFsIG1heEluc3RhbmNlcyBudW1iZXJcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAuZmlsdGVyKCgpID0+IHRoaXMuZ2V0TnVtYmVyT2ZSdW5uaW5nSW5zdGFuY2VzKCkgPCBjb25maWcubWF4SW5zdGFuY2VzKVxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIG1ha2Ugc3VyZSB0aGUgY2FwYWJpbGl0eSBoYXMgYXZhaWxhYmxlIGNhcGFjaXRpZXNcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAuZmlsdGVyKChhKSA9PiBhLmF2YWlsYWJsZUluc3RhbmNlcyA+IDApXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogbWFrZSBzdXJlIGNhcGFiaWxpdHkgaGFzIHN0aWxsIGNhcHMgdG8gcnVuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYSkgPT4gYS5zcGVjcy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIG1ha2Ugc3VyZSB3ZSBhcmUgcnVubmluZyBjYXBzIHdpdGggbGVzcyBydW5uaW5nIGluc3RhbmNlcyBmaXJzdFxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnJ1bm5pbmdJbnN0YW5jZXMgPiBiLnJ1bm5pbmdJbnN0YW5jZXMpXG5cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogY29udGludWUgaWYgbm8gY2FwYWJpbGl0eSB3ZXJlIHNjaGVkdWxhYmxlXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChzY2hlZHVsYWJsZUNhcHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zdGFydEluc3RhbmNlKFxuICAgICAgICAgICAgICAgIFtzY2hlZHVsYWJsZUNhcHNbMF0uc3BlY3Muc2hpZnQoKV0sXG4gICAgICAgICAgICAgICAgc2NoZWR1bGFibGVDYXBzWzBdLmNhcHMsXG4gICAgICAgICAgICAgICAgc2NoZWR1bGFibGVDYXBzWzBdLmNpZCxcbiAgICAgICAgICAgICAgICBzY2hlZHVsYWJsZUNhcHNbMF0uc2VsZW5pdW1TZXJ2ZXJcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIHNjaGVkdWxhYmxlQ2Fwc1swXS5hdmFpbGFibGVJbnN0YW5jZXMtLVxuICAgICAgICAgICAgc2NoZWR1bGFibGVDYXBzWzBdLnJ1bm5pbmdJbnN0YW5jZXMrK1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TnVtYmVyT2ZSdW5uaW5nSW5zdGFuY2VzKCkgPT09IDAgJiYgdGhpcy5nZXROdW1iZXJPZlNwZWNzTGVmdCgpID09PSAwXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0cyBudW1iZXIgb2YgYWxsIHJ1bm5pbmcgaW5zdGFuY2VzXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBudW1iZXIgb2YgcnVubmluZyBpbnN0YW5jZXNcbiAgICAgKi9cbiAgICBnZXROdW1iZXJPZlJ1bm5pbmdJbnN0YW5jZXMgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZS5tYXAoKGEpID0+IGEucnVubmluZ0luc3RhbmNlcykucmVkdWNlKChhLCBiKSA9PiBhICsgYilcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgbnVtYmVyIG9mIHRvdGFsIHNwZWNzIGxlZnQgdG8gY29tcGxldGUgd2hvbGUgc3VpdGVzXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBzcGVjcyBsZWZ0IHRvIGNvbXBsZXRlIHN1aXRlXG4gICAgICovXG4gICAgZ2V0TnVtYmVyT2ZTcGVjc0xlZnQgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZS5tYXAoKGEpID0+IGEuc3BlY3MubGVuZ3RoKS5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0YXJ0IGluc3RhbmNlIGluIGEgY2hpbGQgcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0gIHtBcnJheX0gc3BlY3MgIFNwZWNzIHRvIHJ1blxuICAgICAqIEBwYXJhbSAge051bWJlcn0gY2lkICBDYXBhYmlsaXRpZXMgSURcbiAgICAgKi9cbiAgICBzdGFydEluc3RhbmNlIChzcGVjcywgY2FwcywgY2lkLCBzZXJ2ZXIpIHtcbiAgICAgICAgbGV0IGNvbmZpZyA9IHRoaXMuY29uZmlnUGFyc2VyLmdldENvbmZpZygpXG4gICAgICAgIGNpZCA9IHRoaXMuZ2V0UnVubmVySWQoY2lkKVxuICAgICAgICBsZXQgcHJvY2Vzc051bWJlciA9IHRoaXMucnVubmVyU3RhcnRlZCArIDFcblxuICAgICAgICAvLyBwcm9jZXNzLmRlYnVnUG9ydCBkZWZhdWx0cyB0byA1ODU4IGFuZCBpcyBzZXQgZXZlbiB3aGVuIHByb2Nlc3NcbiAgICAgICAgLy8gaXMgbm90IGJlaW5nIGRlYnVnZ2VkLlxuICAgICAgICBsZXQgZGVidWdBcmdzID0gW11cbiAgICAgICAgbGV0IGRlYnVnVHlwZVxuICAgICAgICBsZXQgZGVidWdIb3N0ID0gJydcbiAgICAgICAgbGV0IGRlYnVnUG9ydCA9IHByb2Nlc3MuZGVidWdQb3J0XG4gICAgICAgIGZvciAobGV0IGkgaW4gcHJvY2Vzcy5leGVjQXJndikge1xuICAgICAgICAgICAgY29uc3QgZGVidWdBcmdzID0gcHJvY2Vzcy5leGVjQXJndltpXS5tYXRjaCgnLS0oZGVidWd8aW5zcGVjdCkoPzotYnJrKT8oPzo9KC4qKTopPycpXG4gICAgICAgICAgICBpZiAoZGVidWdBcmdzKSB7XG4gICAgICAgICAgICAgICAgbGV0IFssIHR5cGUsIGhvc3RdID0gZGVidWdBcmdzXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVidWdUeXBlID0gdHlwZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaG9zdCkge1xuICAgICAgICAgICAgICAgICAgICBkZWJ1Z0hvc3QgPSBgJHtob3N0fTpgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlYnVnVHlwZSkge1xuICAgICAgICAgICAgZGVidWdBcmdzLnB1c2goYC0tJHtkZWJ1Z1R5cGV9PSR7ZGVidWdIb3N0fSR7KGRlYnVnUG9ydCArIHByb2Nlc3NOdW1iZXIpfWApXG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiB5b3Ugd291bGQgbGlrZSB0byBhZGQgLS1kZWJ1Zy1icmssIHVzZSBhIGRpZmZlcmVudCBwb3J0LCBldGMuLi5cbiAgICAgICAgbGV0IGNhcEV4ZWNBcmdzID0gW1xuICAgICAgICAgICAgLi4uKGNvbmZpZy5leGVjQXJndiB8fCBbXSksXG4gICAgICAgICAgICAuLi4oY2Fwcy5leGVjQXJndiB8fCBbXSlcbiAgICAgICAgXVxuXG4gICAgICAgIC8vIFRoZSBkZWZhdWx0IHZhbHVlIGZvciBjaGlsZC5mb3JrIGV4ZWNBcmdzIGlzIHByb2Nlc3MuZXhlY0FyZ3MsXG4gICAgICAgIC8vIHNvIGNvbnRpbnVlIHRvIHVzZSB0aGlzIHVubGVzcyBhbm90aGVyIHZhbHVlIGlzIHNwZWNpZmllZCBpbiBjb25maWcuXG4gICAgICAgIGxldCBkZWZhdWx0QXJncyA9IChjYXBFeGVjQXJncy5sZW5ndGgpID8gcHJvY2Vzcy5leGVjQXJndiA6IFtdXG5cbiAgICAgICAgLy8gSWYgYW4gYXJnIGFwcGVhcnMgbXVsdGlwbGUgdGltZXMgdGhlIGxhc3Qgb2NjdXJyZW5jZSBpcyB1c2VkXG4gICAgICAgIGxldCBleGVjQXJndiA9IFsgLi4uZGVmYXVsdEFyZ3MsIC4uLmRlYnVnQXJncywgLi4uY2FwRXhlY0FyZ3MgXVxuXG4gICAgICAgIC8vIHByZWZlciBsYXVuY2hlciBzZXR0aW5ncyBpbiBjYXBhYmlsaXRpZXMgb3ZlciBnZW5lcmFsIGxhdW5jaGVyXG4gICAgICAgIGNvbnN0IHdvcmtlciA9IHRoaXMucnVubmVyLnJ1bih7XG4gICAgICAgICAgICBjaWQsXG4gICAgICAgICAgICBjb21tYW5kOiAncnVuJyxcbiAgICAgICAgICAgIGNvbmZpZ0ZpbGU6IHRoaXMuY29uZmlnRmlsZSxcbiAgICAgICAgICAgIGFyZ3Y6IHRoaXMuYXJndixcbiAgICAgICAgICAgIGNhcHMsXG4gICAgICAgICAgICBzcGVjcyxcbiAgICAgICAgICAgIHNlcnZlcixcbiAgICAgICAgICAgIGV4ZWNBcmd2XG4gICAgICAgIH0pXG4gICAgICAgIHdvcmtlci5vbignbWVzc2FnZScsIDo6dGhpcy5pbnRlcmZhY2Uub25NZXNzYWdlKVxuICAgICAgICB3b3JrZXIub24oJ2Vycm9yJywgOjp0aGlzLmludGVyZmFjZS5vbk1lc3NhZ2UpXG4gICAgICAgIHdvcmtlci5vbignZXhpdCcsIDo6dGhpcy5lbmRIYW5kbGVyKVxuXG4gICAgICAgIHRoaXMuaW50ZXJmYWNlLmVtaXQoJ2pvYjpzdGFydCcsIHsgY2lkLCBjYXBzLCBzcGVjcyB9KVxuICAgICAgICB0aGlzLnJ1bm5lclN0YXJ0ZWQrK1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdlbmVyYXRlcyBhIHJ1bm5lciBpZFxuICAgICAqIEBwYXJhbSAge051bWJlcn0gY2lkIGNhcGFiaWxpdHkgaWQgKHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIGNhcGFiaWxpdHkpXG4gICAgICogQHJldHVybiB7U3RyaW5nfSAgICAgcnVubmVyIGlkIChjb21iaW5hdGlvbiBvZiBjaWQgYW5kIHRlc3QgaWQgZS5nLiAwYSwgMGIsIDFhLCAxYiAuLi4pXG4gICAgICovXG4gICAgZ2V0UnVubmVySWQgKGNpZCkge1xuICAgICAgICBpZiAoIXRoaXMucmlkW2NpZF0pIHtcbiAgICAgICAgICAgIHRoaXMucmlkW2NpZF0gPSAwXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke2NpZH0tJHt0aGlzLnJpZFtjaWRdKyt9YFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIHRlc3QgcnVubmVyIHByb2Nlc3Mgb25jZSBhbGwgY2hpbGQgcHJvY2Vzc2VzIGhhdmUgZXhpdGVkXG4gICAgICogQHBhcmFtICB7TnVtYmVyfSBjaWQgICAgICAgQ2FwYWJpbGl0aWVzIElEXG4gICAgICogQHBhcmFtICB7TnVtYmVyfSBleGl0Q29kZSAgZXhpdCBjb2RlIG9mIGNoaWxkIHByb2Nlc3NcbiAgICAgKi9cbiAgICBlbmRIYW5kbGVyICh7IGNpZCwgZXhpdENvZGUgfSkge1xuICAgICAgICBjb25zdCBwYXNzZWQgPSBleGl0Q29kZSA9PT0gMFxuICAgICAgICB0aGlzLmV4aXRDb2RlID0gdGhpcy5leGl0Q29kZSB8fCBleGl0Q29kZVxuICAgICAgICB0aGlzLnJ1bm5lckZhaWxlZCArPSAhcGFzc2VkID8gMSA6IDBcbiAgICAgICAgdGhpcy5pbnRlcmZhY2UuZW1pdCgnam9iOmVuZCcsIHsgY2lkLCBwYXNzZWQgfSlcblxuICAgICAgICAvLyBVcGRhdGUgc2NoZWR1bGUgbm93IHRoaXMgcHJvY2VzcyBoYXMgZW5kZWRcbiAgICAgICAgaWYgKCF0aGlzLmlzTXVsdGlyZW1vdGUpIHtcbiAgICAgICAgICAgIC8vIGdldCBjaWQgKGNhcGFiaWxpdHkgaWQpIGZyb20gcmlkIChydW5uZXIgaWQpXG4gICAgICAgICAgICBjaWQgPSBwYXJzZUludChjaWQsIDEwKVxuXG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlW2NpZF0uYXZhaWxhYmxlSW5zdGFuY2VzKytcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVbY2lkXS5ydW5uaW5nSW5zdGFuY2VzLS1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc011bHRpcmVtb3RlICYmICF0aGlzLnJ1blNwZWNzKCkpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3MubmV4dFRpY2soKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJmYWNlLnVwZGF0ZVZpZXcoKVxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNvbHZlKHRoaXMuZXhpdENvZGUpLCAxMDApXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGZpbmlzaCB3aXRoIGV4aXQgY29kZSAxXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljaygoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmludGVyZmFjZS51cGRhdGVWaWV3KClcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZXNvbHZlKDEpLCAxMDApXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFrZSBzdXJlIGFsbCBzdGFydGVkIHNlbGVuaXVtIHNlc3Npb25zIGdldCBjbG9zZWQgcHJvcGVybHkgYW5kIHByZXZlbnRcbiAgICAgKiBoYXZpbmcgZGVhZCBkcml2ZXIgcHJvY2Vzc2VzLiBUbyBkbyBzbyBsZXQgdGhlIHJ1bm5lciBlbmQgaXRzIFNlbGVuaXVtXG4gICAgICogc2Vzc2lvbiBmaXJzdCBiZWZvcmUga2lsbGluZ1xuICAgICAqL1xuICAgIGV4aXRIYW5kbGVyIChjYWxsYmFjaykge1xuICAgICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGFzVHJpZ2dlcmVkRXhpdFJvdXRpbmUgPSB0cnVlXG4gICAgICAgIHRoaXMuaW50ZXJmYWNlLnNpZ2ludFRyaWdnZXIoKVxuICAgICAgICByZXR1cm4gdGhpcy5ydW5uZXIuc2h1dGRvd24oKS50aGVuKGNhbGxiYWNrKVxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF1bmNoZXJcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sYXVuY2hlci5qcyJdLCJuYW1lcyI6WyJsb2ciLCJMYXVuY2hlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnRmlsZSIsImFyZ3YiLCJjb25maWdQYXJzZXIiLCJDb25maWdQYXJzZXIiLCJhZGRDb25maWdGaWxlIiwibWVyZ2UiLCJjb25maWciLCJnZXRDb25maWciLCJjYXBhYmlsaXRpZXMiLCJnZXRDYXBhYmlsaXRpZXMiLCJzcGVjcyIsImdldFNwZWNzIiwibG9nRGlyIiwicHJvY2VzcyIsImVudiIsIldESU9fTE9HX1BBVEgiLCJwYXRoIiwiam9pbiIsInRvdGFsV29ya2VyQ250IiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiYyIsImV4Y2x1ZGUiLCJsZW5ndGgiLCJyZWR1Y2UiLCJhIiwiYiIsImludGVyZmFjZSIsIkNMSW50ZXJmYWNlIiwicnVubmVyRW52IiwiRk9SQ0VfQ09MT1IiLCJOdW1iZXIiLCJoYXNBbnNpU3VwcG9ydCIsIlJ1bm5lciIsInJ1bm5lciIsImlzTXVsdGlyZW1vdGUiLCJleGl0Q29kZSIsImhhc1RyaWdnZXJlZEV4aXRSb3V0aW5lIiwiaGFzU3RhcnRlZEFueVByb2Nlc3MiLCJzY2hlZHVsZSIsInJpZCIsInJ1bm5lclN0YXJ0ZWQiLCJydW5uZXJGYWlsZWQiLCJydW4iLCJjYXBzIiwibGF1bmNoZXIiLCJpbml0aWFsaXNlIiwib25QcmVwYXJlIiwiaW5mbyIsImV4aXRIYW5kbGVyIiwicnVuTW9kZSIsIm9uQ29tcGxldGUiLCJyZXN1bHQiLCJ1cGRhdGVWaWV3IiwiUHJvbWlzZSIsInJlc29sdmUiLCJzdGFydEluc3RhbmNlIiwiY2lkIiwicHVzaCIsImF2YWlsYWJsZUluc3RhbmNlcyIsIm1heEluc3RhbmNlcyIsIm1heEluc3RhbmNlc1BlckNhcGFiaWxpdHkiLCJydW5uaW5nSW5zdGFuY2VzIiwic2VsZW5pdW1TZXJ2ZXIiLCJob3N0bmFtZSIsInBvcnQiLCJwcm90b2NvbCIsIk9iamVjdCIsInZhbHVlcyIsInNwZWNDbnQiLCJlcnJvciIsInJ1blNwZWNzIiwiZ2V0TnVtYmVyT2ZSdW5uaW5nSW5zdGFuY2VzIiwic2NoZWR1bGFibGVDYXBzIiwiZmlsdGVyIiwiYmFpbCIsImZvckVhY2giLCJ0Iiwic29ydCIsInNoaWZ0IiwiZ2V0TnVtYmVyT2ZTcGVjc0xlZnQiLCJzZXJ2ZXIiLCJnZXRSdW5uZXJJZCIsInByb2Nlc3NOdW1iZXIiLCJkZWJ1Z0FyZ3MiLCJkZWJ1Z1R5cGUiLCJkZWJ1Z0hvc3QiLCJkZWJ1Z1BvcnQiLCJpIiwiZXhlY0FyZ3YiLCJtYXRjaCIsInR5cGUiLCJob3N0IiwiY2FwRXhlY0FyZ3MiLCJkZWZhdWx0QXJncyIsIndvcmtlciIsImNvbW1hbmQiLCJvbiIsIm9uTWVzc2FnZSIsImVuZEhhbmRsZXIiLCJlbWl0IiwicGFzc2VkIiwicGFyc2VJbnQiLCJuZXh0VGljayIsInJlc2V0Iiwic2V0VGltZW91dCIsImNhbGxiYWNrIiwic2lnaW50VHJpZ2dlciIsInNodXRkb3duIiwidGhlbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxHQUFHLEdBQUcscUJBQU8sbUJBQVAsQ0FBWjs7QUFFQSxNQUFNQyxRQUFOLENBQWU7QUFDWEMsRUFBQUEsV0FBVyxDQUFFQyxVQUFGLEVBQWNDLElBQWQsRUFBb0I7QUFDM0IsU0FBS0EsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0QsVUFBTCxHQUFrQkEsVUFBbEI7QUFFQSxTQUFLRSxZQUFMLEdBQW9CLElBQUlDLG9CQUFKLEVBQXBCO0FBQ0EsU0FBS0QsWUFBTCxDQUFrQkUsYUFBbEIsQ0FBZ0NKLFVBQWhDO0FBQ0EsU0FBS0UsWUFBTCxDQUFrQkcsS0FBbEIsQ0FBd0JKLElBQXhCO0FBRUEsVUFBTUssTUFBTSxHQUFHLEtBQUtKLFlBQUwsQ0FBa0JLLFNBQWxCLEVBQWY7QUFDQSxVQUFNQyxZQUFZLEdBQUcsS0FBS04sWUFBTCxDQUFrQk8sZUFBbEIsRUFBckI7QUFD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QUtsQixRQUFMLENBQWNrQixHQUFkLEVBQW1CRSxrQkFBbkI7QUFDQSxXQUFLcEIsUUFBTCxDQUFja0IsR0FBZCxFQUFtQkssZ0JBQW5CO0FBQ0g7O0FBRUQsUUFBSSxDQUFDLEtBQUszQixhQUFOLElBQXVCLENBQUMsS0FBS29DLFFBQUwsRUFBNUIsRUFBNkM7QUFDekM7QUFDSDs7QUFFRCxRQUFJOEIsTUFBSixFQUFZO0FBQ1IsYUFBT3pGLE9BQU8sQ0FBQzJGLFFBQVIsQ0FBaUIsTUFBTTtBQUMxQixhQUFLNUUsU0FBTCxDQUFlMEIsVUFBZjtBQUNBLGFBQUsxQixTQUFMLENBQWU2RSxLQUFmO0FBQ0FDLFFBQUFBLFVBQVUsQ0FBQyxNQUFNLEtBQUtsRCxPQUFMLENBQWEsS0FBS25CLFFBQWxCLENBQVAsRUFBb0MsR0FBcEMsQ0FBVjtBQUNILE9BSk0sQ0FBUDtBQUtIO0FBRUQ7Ozs7O0FBR0EsV0FBT3hCLE9BQU8sQ0FBQzJGLFFBQVIsQ0FBaUIsTUFBTTtBQUMxQixXQUFLNUUsU0FBTCxDQUFlMEIsVUFBZjtBQUNBLFdBQUsxQixTQUFMLENBQWU2RSxLQUFmO0FBQ0FDLE1BQUFBLFVBQVUsQ0FBQyxNQUFNLEtBQUtsRCxPQUFMLENBQWEsQ0FBYixDQUFQLEVBQXdCLEdBQXhCLENBQVY7QUFDSCxLQUpNLENBQVA7QUFLSDtBQUVEOzs7Ozs7O0FBS0FOLEVBQUFBLFdBQVcsQ0FBRXlELFFBQUYsRUFBWTtBQUNuQixRQUFJLENBQUNBLFFBQUwsRUFBZTtBQUNYO0FBQ0g7O0FBRUQsU0FBS3JFLHVCQUFMLEdBQStCLElBQS9CO0FBQ0EsU0FBS1YsU0FBTCxDQUFlZ0YsYUFBZjtBQUNBLFdBQU8sS0FBS3pFLE1BQUwsQ0FBWTBFLFFBQVosR0FBdUJDLElBQXZCLENBQTRCSCxRQUE1QixDQUFQO0FBQ0g7O0FBMVZVOztlQTZWQTdHLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IGV4aXRIb29rIGZyb20gJ2FzeW5jLWV4aXQtaG9vaydcblxuaW1wb3J0IGxvZ2dlciBmcm9tICdAd2Rpby9sb2dnZXInXG5pbXBvcnQgeyBDb25maWdQYXJzZXIsIGluaXRpYWxpc2VQbHVnaW4gfSBmcm9tICdAd2Rpby9jb25maWcnXG5cbmltcG9ydCBDTEludGVyZmFjZSBmcm9tICcuL2ludGVyZmFjZSdcbmltcG9ydCB7IGdldExhdW5jaGVyLCBydW5TZXJ2aWNlSG9vayB9IGZyb20gJy4vdXRpbHMnXG5cbmNvbnN0IGxvZyA9IGxvZ2dlcignd2Rpby1jbGk6TGF1bmNoZXInKVxuXG5jbGFzcyBMYXVuY2hlciB7XG4gICAgY29uc3RydWN0b3IgKGNvbmZpZ0ZpbGUsIGFyZ3YpIHtcbiAgICAgICAgdGhpcy5hcmd2ID0gYXJndlxuICAgICAgICB0aGlzLmNvbmZpZ0ZpbGUgPSBjb25maWdGaWxlXG5cbiAgICAgICAgdGhpcy5jb25maWdQYXJzZXIgPSBuZXcgQ29uZmlnUGFyc2VyKClcbiAgICAgICAgdGhpcy5jb25maWdQYXJzZXIuYWRkQ29uZmlnRmlsZShjb25maWdGaWxlKVxuICAgICAgICB0aGlzLmNvbmZpZ1BhcnNlci5tZXJnZShhcmd2KVxuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnUGFyc2VyLmdldENvbmZpZygpXG4gICAgICAgIGNvbnN0IGNhcGFiaWxpdGllcyA9IHRoaXMuY29uZmlnUGFyc2VyLmdldENhcGFiaWxpdGllcygpXG4gICAgICAgIGNvbnN0IHNwZWNzID0gdGhpcy5jb25maWdQYXJzZXIuZ2V0U3BlY3MoKVxuXG4gICAgICAgIGlmIChjb25maWcubG9nRGlyKSB7XG4gICAgICAgICAgICBwcm9jZXNzLmVudi5XRElPX0xPR19QQVRIID0gcGF0aC5qb2luKGNvbmZpZy5sb2dEaXIsICd3ZGlvLmxvZycpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0b3RhbFdvcmtlckNudCA9IEFycmF5LmlzQXJyYXkoY2FwYWJpbGl0aWVzKVxuICAgICAgICAgICAgPyBjYXBhYmlsaXRpZXNcbiAgICAgICAgICAgICAgICAubWFwKChjKSA9PiB0aGlzLmNvbmZpZ1BhcnNlci5nZXRTcGVjcyhjLnNwZWNzLCBjLmV4Y2x1ZGUpLmxlbmd0aClcbiAgICAgICAgICAgICAgICAucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMClcbiAgICAgICAgICAgIDogMVxuXG4gICAgICAgIHRoaXMuaW50ZXJmYWNlID0gbmV3IENMSW50ZXJmYWNlKGNvbmZpZywgc3BlY3MsIHRvdGFsV29ya2VyQ250KVxuICAgICAgICBjb25maWcucnVubmVyRW52LkZPUkNFX0NPTE9SID0gTnVtYmVyKHRoaXMuaW50ZXJmYWNlLmhhc0Fuc2lTdXBwb3J0KVxuXG4gICAgICAgIGNvbnN0IFJ1bm5lciA9IGluaXRpYWxpc2VQbHVnaW4oY29uZmlnLnJ1bm5lciwgJ3J1bm5lcicpXG4gICAgICAgIHRoaXMucnVubmVyID0gbmV3IFJ1bm5lcihjb25maWdGaWxlLCBjb25maWcpXG5cbiAgICAgICAgdGhpcy5pc011bHRpcmVtb3RlID0gIUFycmF5LmlzQXJyYXkoY2FwYWJpbGl0aWVzKVxuICAgICAgICB0aGlzLmV4aXRDb2RlID0gMFxuICAgICAgICB0aGlzLmhhc1RyaWdnZXJlZEV4aXRSb3V0aW5lID0gZmFsc2VcbiAgICAgICAgdGhpcy5oYXNTdGFydGVkQW55UHJvY2VzcyA9IGZhbHNlXG4gICAgICAgIHRoaXMuc2NoZWR1bGUgPSBbXVxuICAgICAgICB0aGlzLnJpZCA9IFtdXG4gICAgICAgIHRoaXMucnVubmVyU3RhcnRlZCA9IDBcbiAgICAgICAgdGhpcy5ydW5uZXJGYWlsZWQgPSAwXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcnVuIHNlcXVlbmNlXG4gICAgICogQHJldHVybiAge1Byb21pc2V9IHRoYXQgb25seSBnZXRzIHJlc29sdmVzIHdpdGggZWl0aGVyIGFuIGV4aXRDb2RlIG9yIGFuIGVycm9yXG4gICAgICovXG4gICAgYXN5bmMgcnVuICgpIHtcbiAgICAgICAgbGV0IGNvbmZpZyA9IHRoaXMuY29uZmlnUGFyc2VyLmdldENvbmZpZygpXG4gICAgICAgIGxldCBjYXBzID0gdGhpcy5jb25maWdQYXJzZXIuZ2V0Q2FwYWJpbGl0aWVzKClcbiAgICAgICAgY29uc3QgbGF1bmNoZXIgPSBnZXRMYXVuY2hlcihjb25maWcpXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHJ1biBwcmUgdGVzdCB0YXNrcyBmb3IgcnVubmVyIHBsdWdpbnNcbiAgICAgICAgICogKGUuZy4gZGVwbG95IExhbWJkYSBmdW5jdGlvIHRvIEFXUylcbiAgICAgICAgICovXG4gICAgICAgIGF3YWl0IHRoaXMucnVubmVyLmluaXRpYWxpc2UoKVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBydW4gb25QcmVwYXJlIGhvb2tcbiAgICAgICAgICovXG4gICAgICAgIGF3YWl0IGNvbmZpZy5vblByZXBhcmUoY29uZmlnLCBjYXBzKVxuICAgICAgICBsb2cuaW5mbygnUnVuIG9uUHJlcGFyZSBob29rJylcbiAgICAgICAgYXdhaXQgcnVuU2VydmljZUhvb2sobGF1bmNoZXIsICdvblByZXBhcmUnLCBjb25maWcsIGNhcHMpXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGNhdGNoZXMgY3RybCtjIGV2ZW50XG4gICAgICAgICAqL1xuICAgICAgICBleGl0SG9vayg6OnRoaXMuZXhpdEhhbmRsZXIpXG5cbiAgICAgICAgY29uc3QgZXhpdENvZGUgPSBhd2FpdCB0aGlzLnJ1bk1vZGUoY29uZmlnLCBjYXBzKVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBydW4gb25Db21wbGV0ZSBob29rXG4gICAgICAgICAqL1xuICAgICAgICBsb2cuaW5mbygnUnVuIG9uQ29tcGxldGUgaG9vaycpXG4gICAgICAgIGF3YWl0IHJ1blNlcnZpY2VIb29rKGxhdW5jaGVyLCAnb25Db21wbGV0ZScsIGV4aXRDb2RlLCBjb25maWcsIGNhcHMpXG4gICAgICAgIGF3YWl0IGNvbmZpZy5vbkNvbXBsZXRlKGV4aXRDb2RlLCBjb25maWcsIGNhcHMsIHRoaXMuaW50ZXJmYWNlLnJlc3VsdClcblxuICAgICAgICB0aGlzLmludGVyZmFjZS51cGRhdGVWaWV3KClcbiAgICAgICAgcmV0dXJuIGV4aXRDb2RlXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcnVuIHdpdGhvdXQgdHJpZ2dlcmluZyBvblByZXBhcmUvb25Db21wbGV0ZSBob29rc1xuICAgICAqL1xuICAgIHJ1bk1vZGUgKGNvbmZpZywgY2Fwcykge1xuICAgICAgICAvKipcbiAgICAgICAgICogaWYgaXQgaXMgYW4gb2JqZWN0IHJ1biBtdWx0aXJlbW90ZSB0ZXN0XG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5pc011bHRpcmVtb3RlKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmUgPSByZXNvbHZlXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydEluc3RhbmNlKHRoaXMuY29uZmlnUGFyc2VyLmdldFNwZWNzKCksIGNhcHMsIDApXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHNjaGVkdWxlIHRlc3QgcnVuc1xuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGNpZCA9IDBcbiAgICAgICAgZm9yIChsZXQgY2FwYWJpbGl0aWVzIG9mIGNhcHMpIHtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUucHVzaCh7XG4gICAgICAgICAgICAgICAgY2lkOiBjaWQrKyxcbiAgICAgICAgICAgICAgICBjYXBzOiBjYXBhYmlsaXRpZXMsXG4gICAgICAgICAgICAgICAgc3BlY3M6IHRoaXMuY29uZmlnUGFyc2VyLmdldFNwZWNzKGNhcGFiaWxpdGllcy5zcGVjcywgY2FwYWJpbGl0aWVzLmV4Y2x1ZGUpLFxuICAgICAgICAgICAgICAgIGF2YWlsYWJsZUluc3RhbmNlczogY2FwYWJpbGl0aWVzLm1heEluc3RhbmNlcyB8fCBjb25maWcubWF4SW5zdGFuY2VzUGVyQ2FwYWJpbGl0eSxcbiAgICAgICAgICAgICAgICBydW5uaW5nSW5zdGFuY2VzOiAwLFxuICAgICAgICAgICAgICAgIHNlbGVuaXVtU2VydmVyOiB7IGhvc3RuYW1lOiBjb25maWcuaG9zdG5hbWUsIHBvcnQ6IGNvbmZpZy5wb3J0LCBwcm90b2NvbDogY29uZmlnLnByb3RvY29sIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZSA9IHJlc29sdmVcblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBmYWlsIGlmIG5vIHNwZWNzIHdlcmUgZm91bmQgb3Igc3BlY2lmaWVkXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChPYmplY3QudmFsdWVzKHRoaXMuc2NoZWR1bGUpLnJlZHVjZSgoc3BlY0NudCwgc2NoZWR1bGUpID0+IHNwZWNDbnQgKyBzY2hlZHVsZS5zcGVjcy5sZW5ndGgsIDApID09PSAwKSB7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKCdObyBzcGVjcyBmb3VuZCB0byBydW4sIGV4aXRpbmcgd2l0aCBmYWlsdXJlJylcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyZmFjZS51cGRhdGVWaWV3KClcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSgxKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIHJldHVybiBpbW1lZGlhdGVseSBpZiBubyBzcGVjIHdhcyBydW5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMucnVuU3BlY3MoKSkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoMClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBydW4gbXVsdGlwbGUgc2luZ2xlIHJlbW90ZSB0ZXN0c1xuICAgICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgaWYgYWxsIHNwZWNzIGhhdmUgYmVlbiBydW4gYW5kIGFsbCBpbnN0YW5jZXMgaGF2ZSBmaW5pc2hlZFxuICAgICAqL1xuICAgIHJ1blNwZWNzICgpIHtcbiAgICAgICAgbGV0IGNvbmZpZyA9IHRoaXMuY29uZmlnUGFyc2VyLmdldENvbmZpZygpXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHN0b3Agc3Bhd25pbmcgbmV3IHByb2Nlc3NlcyB3aGVuIENUUkwrQyB3YXMgdHJpZ2dlcmVkXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5oYXNUcmlnZ2VyZWRFeGl0Um91dGluZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlICh0aGlzLmdldE51bWJlck9mUnVubmluZ0luc3RhbmNlcygpIDwgY29uZmlnLm1heEluc3RhbmNlcykge1xuICAgICAgICAgICAgbGV0IHNjaGVkdWxhYmxlQ2FwcyA9IHRoaXMuc2NoZWR1bGVcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBiYWlsIGlmIG51bWJlciBvZiBlcnJvcnMgZXhjZWVkcyBhbGxvd2VkXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IHR5cGVvZiBjb25maWcuYmFpbCAhPT0gJ251bWJlcicgfHwgY29uZmlnLmJhaWwgPCAxIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5iYWlsID4gdGhpcy5ydW5uZXJGYWlsZWRcblxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogY2xlYXIgbnVtYmVyIG9mIHNwZWNzIHdoZW4gZmlsdGVyIGlzIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZS5mb3JFYWNoKCh0KSA9PiB7IHQuc3BlY3MgPSBbXSB9KVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlclxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogbWFrZSBzdXJlIGNvbXBsZXRlIG51bWJlciBvZiBydW5uaW5nIGluc3RhbmNlcyBpcyBub3QgaGlnaGVyIHRoYW4gZ2VuZXJhbCBtYXhJbnN0YW5jZXMgbnVtYmVyXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoKSA9PiB0aGlzLmdldE51bWJlck9mUnVubmluZ0luc3RhbmNlcygpIDwgY29uZmlnLm1heEluc3RhbmNlcylcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBtYWtlIHN1cmUgdGhlIGNhcGFiaWxpdHkgaGFzIGF2YWlsYWJsZSBjYXBhY2l0aWVzXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYSkgPT4gYS5hdmFpbGFibGVJbnN0YW5jZXMgPiAwKVxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIG1ha2Ugc3VyZSBjYXBhYmlsaXR5IGhhcyBzdGlsbCBjYXBzIHRvIHJ1blxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGEpID0+IGEuc3BlY3MubGVuZ3RoID4gMClcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBtYWtlIHN1cmUgd2UgYXJlIHJ1bm5pbmcgY2FwcyB3aXRoIGxlc3MgcnVubmluZyBpbnN0YW5jZXMgZmlyc3RcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5ydW5uaW5nSW5zdGFuY2VzID4gYi5ydW5uaW5nSW5zdGFuY2VzKVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIGNvbnRpbnVlIGlmIG5vIGNhcGFiaWxpdHkgd2VyZSBzY2hlZHVsYWJsZVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoc2NoZWR1bGFibGVDYXBzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc3RhcnRJbnN0YW5jZShcbiAgICAgICAgICAgICAgICBbc2NoZWR1bGFibGVDYXBzWzBdLnNwZWNzLnNoaWZ0KCldLFxuICAgICAgICAgICAgICAgIHNjaGVkdWxhYmxlQ2Fwc1swXS5jYXBzLFxuICAgICAgICAgICAgICAgIHNjaGVkdWxhYmxlQ2Fwc1swXS5jaWQsXG4gICAgICAgICAgICAgICAgc2NoZWR1bGFibGVDYXBzWzBdLnNlbGVuaXVtU2VydmVyXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBzY2hlZHVsYWJsZUNhcHNbMF0uYXZhaWxhYmxlSW5zdGFuY2VzLS1cbiAgICAgICAgICAgIHNjaGVkdWxhYmxlQ2Fwc1swXS5ydW5uaW5nSW5zdGFuY2VzKytcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmdldE51bWJlck9mUnVubmluZ0luc3RhbmNlcygpID09PSAwICYmIHRoaXMuZ2V0TnVtYmVyT2ZTcGVjc0xlZnQoKSA9PT0gMFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldHMgbnVtYmVyIG9mIGFsbCBydW5uaW5nIGluc3RhbmNlc1xuICAgICAqIEByZXR1cm4ge251bWJlcn0gbnVtYmVyIG9mIHJ1bm5pbmcgaW5zdGFuY2VzXG4gICAgICovXG4gICAgZ2V0TnVtYmVyT2ZSdW5uaW5nSW5zdGFuY2VzICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NoZWR1bGUubWFwKChhKSA9PiBhLnJ1bm5pbmdJbnN0YW5jZXMpLnJlZHVjZSgoYSwgYikgPT4gYSArIGIpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IG51bWJlciBvZiB0b3RhbCBzcGVjcyBsZWZ0IHRvIGNvbXBsZXRlIHdob2xlIHN1aXRlc1xuICAgICAqIEByZXR1cm4ge251bWJlcn0gc3BlY3MgbGVmdCB0byBjb21wbGV0ZSBzdWl0ZVxuICAgICAqL1xuICAgIGdldE51bWJlck9mU3BlY3NMZWZ0ICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NoZWR1bGUubWFwKChhKSA9PiBhLnNwZWNzLmxlbmd0aCkucmVkdWNlKChhLCBiKSA9PiBhICsgYilcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdGFydCBpbnN0YW5jZSBpbiBhIGNoaWxkIHByb2Nlc3MuXG4gICAgICogQHBhcmFtICB7QXJyYXl9IHNwZWNzICBTcGVjcyB0byBydW5cbiAgICAgKiBAcGFyYW0gIHtOdW1iZXJ9IGNpZCAgQ2FwYWJpbGl0aWVzIElEXG4gICAgICovXG4gICAgc3RhcnRJbnN0YW5jZSAoc3BlY3MsIGNhcHMsIGNpZCwgc2VydmVyKSB7XG4gICAgICAgIGxldCBjb25maWcgPSB0aGlzLmNvbmZpZ1BhcnNlci5nZXRDb25maWcoKVxuICAgICAgICBjaWQgPSB0aGlzLmdldFJ1bm5lcklkKGNpZClcbiAgICAgICAgbGV0IHByb2Nlc3NOdW1iZXIgPSB0aGlzLnJ1bm5lclN0YXJ0ZWQgKyAxXG5cbiAgICAgICAgLy8gcHJvY2Vzcy5kZWJ1Z1BvcnQgZGVmYXVsdHMgdG8gNTg1OCBhbmQgaXMgc2V0IGV2ZW4gd2hlbiBwcm9jZXNzXG4gICAgICAgIC8vIGlzIG5vdCBiZWluZyBkZWJ1Z2dlZC5cbiAgICAgICAgbGV0IGRlYnVnQXJncyA9IFtdXG4gICAgICAgIGxldCBkZWJ1Z1R5cGVcbiAgICAgICAgbGV0IGRlYnVnSG9zdCA9ICcnXG4gICAgICAgIGxldCBkZWJ1Z1BvcnQgPSBwcm9jZXNzLmRlYnVnUG9ydFxuICAgICAgICBmb3IgKGxldCBpIGluIHByb2Nlc3MuZXhlY0FyZ3YpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlYnVnQXJncyA9IHByb2Nlc3MuZXhlY0FyZ3ZbaV0ubWF0Y2goJy0tKGRlYnVnfGluc3BlY3QpKD86LWJyayk/KD86PSguKik6KT8nKVxuICAgICAgICAgICAgaWYgKGRlYnVnQXJncykge1xuICAgICAgICAgICAgICAgIGxldCBbLCB0eXBlLCBob3N0XSA9IGRlYnVnQXJnc1xuICAgICAgICAgICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlYnVnVHlwZSA9IHR5cGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGhvc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVidWdIb3N0ID0gYCR7aG9zdH06YFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZWJ1Z1R5cGUpIHtcbiAgICAgICAgICAgIGRlYnVnQXJncy5wdXNoKGAtLSR7ZGVidWdUeXBlfT0ke2RlYnVnSG9zdH0keyhkZWJ1Z1BvcnQgKyBwcm9jZXNzTnVtYmVyKX1gKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWYgeW91IHdvdWxkIGxpa2UgdG8gYWRkIC0tZGVidWctYnJrLCB1c2UgYSBkaWZmZXJlbnQgcG9ydCwgZXRjLi4uXG4gICAgICAgIGxldCBjYXBFeGVjQXJncyA9IFtcbiAgICAgICAgICAgIC4uLihjb25maWcuZXhlY0FyZ3YgfHwgW10pLFxuICAgICAgICAgICAgLi4uKGNhcHMuZXhlY0FyZ3YgfHwgW10pXG4gICAgICAgIF1cblxuICAgICAgICAvLyBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgY2hpbGQuZm9yayBleGVjQXJncyBpcyBwcm9jZXNzLmV4ZWNBcmdzLFxuICAgICAgICAvLyBzbyBjb250aW51ZSB0byB1c2UgdGhpcyB1bmxlc3MgYW5vdGhlciB2YWx1ZSBpcyBzcGVjaWZpZWQgaW4gY29uZmlnLlxuICAgICAgICBsZXQgZGVmYXVsdEFyZ3MgPSAoY2FwRXhlY0FyZ3MubGVuZ3RoKSA/IHByb2Nlc3MuZXhlY0FyZ3YgOiBbXVxuXG4gICAgICAgIC8vIElmIGFuIGFyZyBhcHBlYXJzIG11bHRpcGxlIHRpbWVzIHRoZSBsYXN0IG9jY3VycmVuY2UgaXMgdXNlZFxuICAgICAgICBsZXQgZXhlY0FyZ3YgPSBbIC4uLmRlZmF1bHRBcmdzLCAuLi5kZWJ1Z0FyZ3MsIC4uLmNhcEV4ZWNBcmdzIF1cblxuICAgICAgICAvLyBwcmVmZXIgbGF1bmNoZXIgc2V0dGluZ3MgaW4gY2FwYWJpbGl0aWVzIG92ZXIgZ2VuZXJhbCBsYXVuY2hlclxuICAgICAgICBjb25zdCB3b3JrZXIgPSB0aGlzLnJ1bm5lci5ydW4oe1xuICAgICAgICAgICAgY2lkLFxuICAgICAgICAgICAgY29tbWFuZDogJ3J1bicsXG4gICAgICAgICAgICBjb25maWdGaWxlOiB0aGlzLmNvbmZpZ0ZpbGUsXG4gICAgICAgICAgICBhcmd2OiB0aGlzLmFyZ3YsXG4gICAgICAgICAgICBjYXBzLFxuICAgICAgICAgICAgc3BlY3MsXG4gICAgICAgICAgICBzZXJ2ZXIsXG4gICAgICAgICAgICBleGVjQXJndlxuICAgICAgICB9KVxuICAgICAgICB3b3JrZXIub24oJ21lc3NhZ2UnLCA6OnRoaXMuaW50ZXJmYWNlLm9uTWVzc2FnZSlcbiAgICAgICAgd29ya2VyLm9uKCdlcnJvcicsIDo6dGhpcy5pbnRlcmZhY2Uub25NZXNzYWdlKVxuICAgICAgICB3b3JrZXIub24oJ2V4aXQnLCA6OnRoaXMuZW5kSGFuZGxlcilcblxuICAgICAgICB0aGlzLmludGVyZmFjZS5lbWl0KCdqb2I6c3RhcnQnLCB7IGNpZCwgY2Fwcywgc3BlY3MgfSlcbiAgICAgICAgdGhpcy5ydW5uZXJTdGFydGVkKytcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZW5lcmF0ZXMgYSBydW5uZXIgaWRcbiAgICAgKiBAcGFyYW0gIHtOdW1iZXJ9IGNpZCBjYXBhYmlsaXR5IGlkICh1bmlxdWUgaWRlbnRpZmllciBmb3IgYSBjYXBhYmlsaXR5KVxuICAgICAqIEByZXR1cm4ge1N0cmluZ30gICAgIHJ1bm5lciBpZCAoY29tYmluYXRpb24gb2YgY2lkIGFuZCB0ZXN0IGlkIGUuZy4gMGEsIDBiLCAxYSwgMWIgLi4uKVxuICAgICAqL1xuICAgIGdldFJ1bm5lcklkIChjaWQpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJpZFtjaWRdKSB7XG4gICAgICAgICAgICB0aGlzLnJpZFtjaWRdID0gMFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHtjaWR9LSR7dGhpcy5yaWRbY2lkXSsrfWBcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSB0ZXN0IHJ1bm5lciBwcm9jZXNzIG9uY2UgYWxsIGNoaWxkIHByb2Nlc3NlcyBoYXZlIGV4aXRlZFxuICAgICAqIEBwYXJhbSAge051bWJlcn0gY2lkICAgICAgIENhcGFiaWxpdGllcyBJRFxuICAgICAqIEBwYXJhbSAge051bWJlcn0gZXhpdENvZGUgIGV4aXQgY29kZSBvZiBjaGlsZCBwcm9jZXNzXG4gICAgICovXG4gICAgZW5kSGFuZGxlciAoeyBjaWQsIGV4aXRDb2RlIH0pIHtcbiAgICAgICAgY29uc3QgcGFzc2VkID0gZXhpdENvZGUgPT09IDBcbiAgICAgICAgdGhpcy5leGl0Q29kZSA9IHRoaXMuZXhpdENvZGUgfHwgZXhpdENvZGVcbiAgICAgICAgdGhpcy5ydW5uZXJGYWlsZWQgKz0gIXBhc3NlZCA/IDEgOiAwXG4gICAgICAgIHRoaXMuaW50ZXJmYWNlLmVtaXQoJ2pvYjplbmQnLCB7IGNpZCwgcGFzc2VkIH0pXG5cbiAgICAgICAgLy8gVXBkYXRlIHNjaGVkdWxlIG5vdyB0aGlzIHByb2Nlc3MgaGFzIGVuZGVkXG4gICAgICAgIGlmICghdGhpcy5pc011bHRpcmVtb3RlKSB7XG4gICAgICAgICAgICAvLyBnZXQgY2lkIChjYXBhYmlsaXR5IGlkKSBmcm9tIHJpZCAocnVubmVyIGlkKVxuICAgICAgICAgICAgY2lkID0gcGFyc2VJbnQoY2lkLCAxMClcblxuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVtjaWRdLmF2YWlsYWJsZUluc3RhbmNlcysrXG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlW2NpZF0ucnVubmluZ0luc3RhbmNlcy0tXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNNdWx0aXJlbW90ZSAmJiAhdGhpcy5ydW5TcGVjcygpKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyZmFjZS51cGRhdGVWaWV3KClcbiAgICAgICAgICAgICAgICB0aGlzLmludGVyZmFjZS5yZXNldCgpXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc29sdmUodGhpcy5leGl0Q29kZSksIDEwMClcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogZmluaXNoIHdpdGggZXhpdCBjb2RlIDFcbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJmYWNlLnVwZGF0ZVZpZXcoKVxuICAgICAgICAgICAgdGhpcy5pbnRlcmZhY2UucmVzZXQoKVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc29sdmUoMSksIDEwMClcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlIHN1cmUgYWxsIHN0YXJ0ZWQgc2VsZW5pdW0gc2Vzc2lvbnMgZ2V0IGNsb3NlZCBwcm9wZXJseSBhbmQgcHJldmVudFxuICAgICAqIGhhdmluZyBkZWFkIGRyaXZlciBwcm9jZXNzZXMuIFRvIGRvIHNvIGxldCB0aGUgcnVubmVyIGVuZCBpdHMgU2VsZW5pdW1cbiAgICAgKiBzZXNzaW9uIGZpcnN0IGJlZm9yZSBraWxsaW5nXG4gICAgICovXG4gICAgZXhpdEhhbmRsZXIgKGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICghY2FsbGJhY2spIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oYXNUcmlnZ2VyZWRFeGl0Um91dGluZSA9IHRydWVcbiAgICAgICAgdGhpcy5pbnRlcmZhY2Uuc2lnaW50VHJpZ2dlcigpXG4gICAgICAgIHJldHVybiB0aGlzLnJ1bm5lci5zaHV0ZG93bigpLnRoZW4oY2FsbGJhY2spXG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMYXVuY2hlclxuIl19

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

log.debug('Run suite with config', wdioConf, 'and params', params);
let launcher = new _launcher.default(wdioConf, params);
const launcher = new _launcher.default(wdioConf, params);
launcher.run().then(code => process.exit(code), e => process.nextTick(() => {

@@ -100,2 +100,2 @@ throw e;

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW4uanMiXSwibmFtZXMiOlsibG9nIiwicnVuIiwicGFyYW1zIiwic3RkaW5EYXRhIiwiZmlyc3RBcmd1bWVudCIsIl8iLCJjb21tYW5kcyIsImZzIiwicmVhZGRpclN5bmMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsIm1hcCIsImZpbGUiLCJwYXJzZSIsIm5hbWUiLCJsb2NhbENvbmYiLCJwcm9jZXNzIiwiY3dkIiwid2Rpb0NvbmYiLCJleGlzdHNTeW5jIiwiaW5jbHVkZXMiLCJ3YXRjaCIsIndhdGNoZXIiLCJXYXRjaGVyIiwic3RkaW4iLCJpc1RUWSIsInN0ZG91dCIsImxhdW5jaCIsIm9wZW5TdGRpbiIsInNldEVuY29kaW5nIiwib24iLCJkYXRhIiwibGVuZ3RoIiwic3BlY3MiLCJ0cmltIiwic3BsaXQiLCJkZWJ1ZyIsImxhdW5jaGVyIiwiTGF1bmNoZXIiLCJ0aGVuIiwiY29kZSIsImV4aXQiLCJlIiwibmV4dFRpY2siXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsR0FBRyxHQUFHLHFCQUFPLGNBQVAsQ0FBWjs7QUFFZSxTQUFTQyxHQUFULENBQWNDLE1BQWQsRUFBc0I7QUFDakMsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBRUEsUUFBTUMsYUFBYSxHQUFHRixNQUFNLENBQUNHLENBQVAsQ0FBUyxDQUFULENBQXRCOztBQUNBLFFBQU1DLFFBQVEsR0FBR0MsWUFBR0MsV0FBSCxDQUFlQyxjQUFLQyxJQUFMLENBQVVDLFNBQVYsRUFBcUIsVUFBckIsQ0FBZixFQUFpREMsR0FBakQsQ0FBc0RDLElBQUQsSUFBVUosY0FBS0ssS0FBTCxDQUFXRCxJQUFYLEVBQWlCRSxJQUFoRixDQUFqQjs7QUFDQSxRQUFNQyxTQUFTLEdBQUdQLGNBQUtDLElBQUwsQ0FBVU8sT0FBTyxDQUFDQyxHQUFSLEVBQVYsRUFBeUIsY0FBekIsQ0FBbEI7O0FBQ0EsUUFBTUMsUUFBUSxHQUFHZixhQUFhLEtBQUtHLFlBQUdhLFVBQUgsQ0FBY0osU0FBZCxJQUEyQkEsU0FBM0IsR0FBdUMsSUFBNUMsQ0FBOUI7QUFFQTs7OztBQUdBLE1BQUlWLFFBQVEsQ0FBQ2UsUUFBVCxDQUFrQmpCLGFBQWxCLENBQUosRUFBc0M7QUFDbEM7QUFDSDtBQUVEOzs7Ozs7QUFJQSxNQUFJLENBQUNlLFFBQUQsSUFBYWYsYUFBYSxLQUFLLFFBQW5DLEVBQTZDO0FBQ3pDLFdBQU8scUJBQVA7QUFDSDtBQUVEOzs7OztBQUdBLE1BQUlGLE1BQU0sQ0FBQ29CLEtBQVgsRUFBa0I7QUFDZCxVQUFNQyxPQUFPLEdBQUcsSUFBSUMsZ0JBQUosQ0FBWUwsUUFBWixFQUFzQmpCLE1BQXRCLENBQWhCO0FBQ0EsV0FBT3FCLE9BQU8sQ0FBQ0QsS0FBUixFQUFQO0FBQ0g7QUFFRDs7Ozs7Ozs7O0FBT0EsTUFBSUwsT0FBTyxDQUFDUSxLQUFSLENBQWNDLEtBQWQsSUFBdUIsQ0FBQ1QsT0FBTyxDQUFDVSxNQUFSLENBQWVELEtBQTNDLEVBQWtEO0FBQzlDLFdBQU9FLE1BQU0sQ0FBQ1QsUUFBRCxFQUFXakIsTUFBWCxDQUFiO0FBQ0g7QUFFRDs7Ozs7O0FBSUEsUUFBTXVCLEtBQUssR0FBR1IsT0FBTyxDQUFDWSxTQUFSLEVBQWQ7QUFDQUosRUFBQUEsS0FBSyxDQUFDSyxXQUFOLENBQWtCLE1BQWxCO0FBQ0FMLEVBQUFBLEtBQUssQ0FBQ00sRUFBTixDQUFTLE1BQVQsRUFBa0JDLElBQUQsSUFBVTtBQUN2QjdCLElBQUFBLFNBQVMsSUFBSTZCLElBQWI7QUFDSCxHQUZEO0FBR0FQLEVBQUFBLEtBQUssQ0FBQ00sRUFBTixDQUFTLEtBQVQsRUFBZ0IsTUFBTTtBQUNsQixRQUFJNUIsU0FBUyxDQUFDOEIsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN0Qi9CLE1BQUFBLE1BQU0sQ0FBQ2dDLEtBQVAsR0FBZS9CLFNBQVMsQ0FBQ2dDLElBQVYsR0FBaUJDLEtBQWpCLENBQXVCLE9BQXZCLENBQWY7QUFDSDs7QUFDRFIsSUFBQUEsTUFBTSxDQUFDVCxRQUFELEVBQVdqQixNQUFYLENBQU47QUFDSCxHQUxEO0FBTUg7O0FBRUQsU0FBUzBCLE1BQVQsQ0FBaUJULFFBQWpCLEVBQTJCakIsTUFBM0IsRUFBbUM7QUFDL0JGLEVBQUFBLEdBQUcsQ0FBQ3FDLEtBQUosQ0FBVSx1QkFBVixFQUFtQ2xCLFFBQW5DLEVBQTZDLFlBQTdDLEVBQTJEakIsTUFBM0Q7QUFDQSxNQUFJb0MsUUFBUSxHQUFHLElBQUlDLGlCQUFKLENBQWFwQixRQUFiLEVBQXVCakIsTUFBdkIsQ0FBZjtBQUNBb0MsRUFBQUEsUUFBUSxDQUFDckMsR0FBVCxHQUFldUMsSUFBZixDQUNLQyxJQUFELElBQVV4QixPQUFPLENBQUN5QixJQUFSLENBQWFELElBQWIsQ0FEZCxFQUVLRSxDQUFELElBQU8xQixPQUFPLENBQUMyQixRQUFSLENBQWlCLE1BQU07QUFBRSxVQUFNRCxDQUFOO0FBQVMsR0FBbEMsQ0FGWDtBQUdIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBsb2dnZXIgZnJvbSAnQHdkaW8vbG9nZ2VyJ1xuXG5pbXBvcnQgTGF1bmNoZXIgZnJvbSAnLi9sYXVuY2hlci5qcydcbmltcG9ydCBXYXRjaGVyIGZyb20gJy4vd2F0Y2hlcidcbmltcG9ydCBzZXR1cCBmcm9tICcuL3NldHVwJ1xuXG5jb25zdCBsb2cgPSBsb2dnZXIoJ3dkaW8tY2xpOnJ1bicpXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJ1biAocGFyYW1zKSB7XG4gICAgbGV0IHN0ZGluRGF0YSA9ICcnXG5cbiAgICBjb25zdCBmaXJzdEFyZ3VtZW50ID0gcGFyYW1zLl9bMF1cbiAgICBjb25zdCBjb21tYW5kcyA9IGZzLnJlYWRkaXJTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsICdjb21tYW5kcycpKS5tYXAoKGZpbGUpID0+IHBhdGgucGFyc2UoZmlsZSkubmFtZSlcbiAgICBjb25zdCBsb2NhbENvbmYgPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgJ3dkaW8uY29uZi5qcycpXG4gICAgY29uc3Qgd2Rpb0NvbmYgPSBmaXJzdEFyZ3VtZW50IHx8IChmcy5leGlzdHNTeW5jKGxvY2FsQ29uZikgPyBsb2NhbENvbmYgOiBudWxsKVxuXG4gICAgLyoqXG4gICAgICogZG9uJ3QgZG8gYW55dGhpbmcgaWYgY29tbWFuZCBoYW5kbGVyIGlzIHRyaWdnZXJlZFxuICAgICAqL1xuICAgIGlmIChjb21tYW5kcy5pbmNsdWRlcyhmaXJzdEFyZ3VtZW50KSkge1xuICAgICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpZiBubyBkZWZhdWx0IHdkaW8uY29uZiB3YXMgZm91bmQgYW5kIG5vIHBhdGggdG8gYSB3ZGlvIGNvbmZpZyB3YXMgc3BlY2lmaWVkXG4gICAgICogcnVuIHRoZSBzZXR1cFxuICAgICAqL1xuICAgIGlmICghd2Rpb0NvbmYgfHwgZmlyc3RBcmd1bWVudCA9PT0gJ2NvbmZpZycpIHtcbiAgICAgICAgcmV0dXJuIHNldHVwKClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpZiBgLS13YXRjaGAgcGFyYW0gaXMgc2V0LCBydW4gbGF1bmNoZXIgaW4gd2F0Y2ggbW9kZVxuICAgICAqL1xuICAgIGlmIChwYXJhbXMud2F0Y2gpIHtcbiAgICAgICAgY29uc3Qgd2F0Y2hlciA9IG5ldyBXYXRjaGVyKHdkaW9Db25mLCBwYXJhbXMpXG4gICAgICAgIHJldHVybiB3YXRjaGVyLndhdGNoKClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpZiBzdGRpbi5pc1RUWSwgdGhlbiBubyBwaXBlZCBpbnB1dCBpcyBwcmVzZW50IGFuZCBsYXVuY2hlciBzaG91bGQgYmVcbiAgICAgKiBjYWxsZWQgaW1tZWRpYXRlbHksIG90aGVyd2lzZSBwaXBlZCBpbnB1dCBpcyBwcm9jZXNzZWQsIGV4cGVjdGluZ1xuICAgICAqIGEgbGlzdCBvZiBmaWxlcyB0byBwcm9jZXNzLlxuICAgICAqXG4gICAgICogc3RkaW4uaXNUVFkgaXMgZmFsc2Ugd2hlbiBjb21tYW5kIGlzIGZyb20gbm9kZXMgc3Bhd24gc2luY2UgaXQncyB0cmVhdGVkIGFzIGEgcGlwZVxuICAgICAqL1xuICAgIGlmIChwcm9jZXNzLnN0ZGluLmlzVFRZIHx8ICFwcm9jZXNzLnN0ZG91dC5pc1RUWSkge1xuICAgICAgICByZXR1cm4gbGF1bmNoKHdkaW9Db25mLCBwYXJhbXMpXG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBnZXQgYSBsaXN0IG9mIHNwZWMgZmlsZXMgdG8gcnVuIGZyb20gc3RkaW4sIG92ZXJyaWRpbmcgYW55IG90aGVyXG4gICAgICogY29uZmlndXJhdGlvbiBzdWl0ZSBvciBzcGVjcy5cbiAgICAgKi9cbiAgICBjb25zdCBzdGRpbiA9IHByb2Nlc3Mub3BlblN0ZGluKClcbiAgICBzdGRpbi5zZXRFbmNvZGluZygndXRmOCcpXG4gICAgc3RkaW4ub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgICBzdGRpbkRhdGEgKz0gZGF0YVxuICAgIH0pXG4gICAgc3RkaW4ub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgaWYgKHN0ZGluRGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBwYXJhbXMuc3BlY3MgPSBzdGRpbkRhdGEudHJpbSgpLnNwbGl0KC9cXHI/XFxuLylcbiAgICAgICAgfVxuICAgICAgICBsYXVuY2god2Rpb0NvbmYsIHBhcmFtcylcbiAgICB9KVxufVxuXG5mdW5jdGlvbiBsYXVuY2ggKHdkaW9Db25mLCBwYXJhbXMpIHtcbiAgICBsb2cuZGVidWcoJ1J1biBzdWl0ZSB3aXRoIGNvbmZpZycsIHdkaW9Db25mLCAnYW5kIHBhcmFtcycsIHBhcmFtcylcbiAgICBsZXQgbGF1bmNoZXIgPSBuZXcgTGF1bmNoZXIod2Rpb0NvbmYsIHBhcmFtcylcbiAgICBsYXVuY2hlci5ydW4oKS50aGVuKFxuICAgICAgICAoY29kZSkgPT4gcHJvY2Vzcy5leGl0KGNvZGUpLFxuICAgICAgICAoZSkgPT4gcHJvY2Vzcy5uZXh0VGljaygoKSA9PiB7IHRocm93IGUgfSkpXG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW4uanMiXSwibmFtZXMiOlsibG9nIiwicnVuIiwicGFyYW1zIiwic3RkaW5EYXRhIiwiZmlyc3RBcmd1bWVudCIsIl8iLCJjb21tYW5kcyIsImZzIiwicmVhZGRpclN5bmMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsIm1hcCIsImZpbGUiLCJwYXJzZSIsIm5hbWUiLCJsb2NhbENvbmYiLCJwcm9jZXNzIiwiY3dkIiwid2Rpb0NvbmYiLCJleGlzdHNTeW5jIiwiaW5jbHVkZXMiLCJ3YXRjaCIsIndhdGNoZXIiLCJXYXRjaGVyIiwic3RkaW4iLCJpc1RUWSIsInN0ZG91dCIsImxhdW5jaCIsIm9wZW5TdGRpbiIsInNldEVuY29kaW5nIiwib24iLCJkYXRhIiwibGVuZ3RoIiwic3BlY3MiLCJ0cmltIiwic3BsaXQiLCJkZWJ1ZyIsImxhdW5jaGVyIiwiTGF1bmNoZXIiLCJ0aGVuIiwiY29kZSIsImV4aXQiLCJlIiwibmV4dFRpY2siXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsR0FBRyxHQUFHLHFCQUFPLGNBQVAsQ0FBWjs7QUFFZSxTQUFTQyxHQUFULENBQWNDLE1BQWQsRUFBc0I7QUFDakMsTUFBSUMsU0FBUyxHQUFHLEVBQWhCO0FBRUEsUUFBTUMsYUFBYSxHQUFHRixNQUFNLENBQUNHLENBQVAsQ0FBUyxDQUFULENBQXRCOztBQUNBLFFBQU1DLFFBQVEsR0FBR0MsWUFBR0MsV0FBSCxDQUFlQyxjQUFLQyxJQUFMLENBQVVDLFNBQVYsRUFBcUIsVUFBckIsQ0FBZixFQUFpREMsR0FBakQsQ0FBc0RDLElBQUQsSUFBVUosY0FBS0ssS0FBTCxDQUFXRCxJQUFYLEVBQWlCRSxJQUFoRixDQUFqQjs7QUFDQSxRQUFNQyxTQUFTLEdBQUdQLGNBQUtDLElBQUwsQ0FBVU8sT0FBTyxDQUFDQyxHQUFSLEVBQVYsRUFBeUIsY0FBekIsQ0FBbEI7O0FBQ0EsUUFBTUMsUUFBUSxHQUFHZixhQUFhLEtBQUtHLFlBQUdhLFVBQUgsQ0FBY0osU0FBZCxJQUEyQkEsU0FBM0IsR0FBdUMsSUFBNUMsQ0FBOUI7QUFFQTs7OztBQUdBLE1BQUlWLFFBQVEsQ0FBQ2UsUUFBVCxDQUFrQmpCLGFBQWxCLENBQUosRUFBc0M7QUFDbEM7QUFDSDtBQUVEOzs7Ozs7QUFJQSxNQUFJLENBQUNlLFFBQUQsSUFBYWYsYUFBYSxLQUFLLFFBQW5DLEVBQTZDO0FBQ3pDLFdBQU8scUJBQVA7QUFDSDtBQUVEOzs7OztBQUdBLE1BQUlGLE1BQU0sQ0FBQ29CLEtBQVgsRUFBa0I7QUFDZCxVQUFNQyxPQUFPLEdBQUcsSUFBSUMsZ0JBQUosQ0FBWUwsUUFBWixFQUFzQmpCLE1BQXRCLENBQWhCO0FBQ0EsV0FBT3FCLE9BQU8sQ0FBQ0QsS0FBUixFQUFQO0FBQ0g7QUFFRDs7Ozs7Ozs7O0FBT0EsTUFBSUwsT0FBTyxDQUFDUSxLQUFSLENBQWNDLEtBQWQsSUFBdUIsQ0FBQ1QsT0FBTyxDQUFDVSxNQUFSLENBQWVELEtBQTNDLEVBQWtEO0FBQzlDLFdBQU9FLE1BQU0sQ0FBQ1QsUUFBRCxFQUFXakIsTUFBWCxDQUFiO0FBQ0g7QUFFRDs7Ozs7O0FBSUEsUUFBTXVCLEtBQUssR0FBR1IsT0FBTyxDQUFDWSxTQUFSLEVBQWQ7QUFDQUosRUFBQUEsS0FBSyxDQUFDSyxXQUFOLENBQWtCLE1BQWxCO0FBQ0FMLEVBQUFBLEtBQUssQ0FBQ00sRUFBTixDQUFTLE1BQVQsRUFBa0JDLElBQUQsSUFBVTtBQUN2QjdCLElBQUFBLFNBQVMsSUFBSTZCLElBQWI7QUFDSCxHQUZEO0FBR0FQLEVBQUFBLEtBQUssQ0FBQ00sRUFBTixDQUFTLEtBQVQsRUFBZ0IsTUFBTTtBQUNsQixRQUFJNUIsU0FBUyxDQUFDOEIsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN0Qi9CLE1BQUFBLE1BQU0sQ0FBQ2dDLEtBQVAsR0FBZS9CLFNBQVMsQ0FBQ2dDLElBQVYsR0FBaUJDLEtBQWpCLENBQXVCLE9BQXZCLENBQWY7QUFDSDs7QUFDRFIsSUFBQUEsTUFBTSxDQUFDVCxRQUFELEVBQVdqQixNQUFYLENBQU47QUFDSCxHQUxEO0FBTUg7O0FBRUQsU0FBUzBCLE1BQVQsQ0FBaUJULFFBQWpCLEVBQTJCakIsTUFBM0IsRUFBbUM7QUFDL0JGLEVBQUFBLEdBQUcsQ0FBQ3FDLEtBQUosQ0FBVSx1QkFBVixFQUFtQ2xCLFFBQW5DLEVBQTZDLFlBQTdDLEVBQTJEakIsTUFBM0Q7QUFDQSxRQUFNb0MsUUFBUSxHQUFHLElBQUlDLGlCQUFKLENBQWFwQixRQUFiLEVBQXVCakIsTUFBdkIsQ0FBakI7QUFDQW9DLEVBQUFBLFFBQVEsQ0FBQ3JDLEdBQVQsR0FBZXVDLElBQWYsQ0FDS0MsSUFBRCxJQUFVeEIsT0FBTyxDQUFDeUIsSUFBUixDQUFhRCxJQUFiLENBRGQsRUFFS0UsQ0FBRCxJQUFPMUIsT0FBTyxDQUFDMkIsUUFBUixDQUFpQixNQUFNO0FBQUUsVUFBTUQsQ0FBTjtBQUFTLEdBQWxDLENBRlg7QUFHSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgbG9nZ2VyIGZyb20gJ0B3ZGlvL2xvZ2dlcidcblxuaW1wb3J0IExhdW5jaGVyIGZyb20gJy4vbGF1bmNoZXIuanMnXG5pbXBvcnQgV2F0Y2hlciBmcm9tICcuL3dhdGNoZXInXG5pbXBvcnQgc2V0dXAgZnJvbSAnLi9zZXR1cCdcblxuY29uc3QgbG9nID0gbG9nZ2VyKCd3ZGlvLWNsaTpydW4nKVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBydW4gKHBhcmFtcykge1xuICAgIGxldCBzdGRpbkRhdGEgPSAnJ1xuXG4gICAgY29uc3QgZmlyc3RBcmd1bWVudCA9IHBhcmFtcy5fWzBdXG4gICAgY29uc3QgY29tbWFuZHMgPSBmcy5yZWFkZGlyU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnY29tbWFuZHMnKSkubWFwKChmaWxlKSA9PiBwYXRoLnBhcnNlKGZpbGUpLm5hbWUpXG4gICAgY29uc3QgbG9jYWxDb25mID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICd3ZGlvLmNvbmYuanMnKVxuICAgIGNvbnN0IHdkaW9Db25mID0gZmlyc3RBcmd1bWVudCB8fCAoZnMuZXhpc3RzU3luYyhsb2NhbENvbmYpID8gbG9jYWxDb25mIDogbnVsbClcblxuICAgIC8qKlxuICAgICAqIGRvbid0IGRvIGFueXRoaW5nIGlmIGNvbW1hbmQgaGFuZGxlciBpcyB0cmlnZ2VyZWRcbiAgICAgKi9cbiAgICBpZiAoY29tbWFuZHMuaW5jbHVkZXMoZmlyc3RBcmd1bWVudCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaWYgbm8gZGVmYXVsdCB3ZGlvLmNvbmYgd2FzIGZvdW5kIGFuZCBubyBwYXRoIHRvIGEgd2RpbyBjb25maWcgd2FzIHNwZWNpZmllZFxuICAgICAqIHJ1biB0aGUgc2V0dXBcbiAgICAgKi9cbiAgICBpZiAoIXdkaW9Db25mIHx8IGZpcnN0QXJndW1lbnQgPT09ICdjb25maWcnKSB7XG4gICAgICAgIHJldHVybiBzZXR1cCgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaWYgYC0td2F0Y2hgIHBhcmFtIGlzIHNldCwgcnVuIGxhdW5jaGVyIGluIHdhdGNoIG1vZGVcbiAgICAgKi9cbiAgICBpZiAocGFyYW1zLndhdGNoKSB7XG4gICAgICAgIGNvbnN0IHdhdGNoZXIgPSBuZXcgV2F0Y2hlcih3ZGlvQ29uZiwgcGFyYW1zKVxuICAgICAgICByZXR1cm4gd2F0Y2hlci53YXRjaCgpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaWYgc3RkaW4uaXNUVFksIHRoZW4gbm8gcGlwZWQgaW5wdXQgaXMgcHJlc2VudCBhbmQgbGF1bmNoZXIgc2hvdWxkIGJlXG4gICAgICogY2FsbGVkIGltbWVkaWF0ZWx5LCBvdGhlcndpc2UgcGlwZWQgaW5wdXQgaXMgcHJvY2Vzc2VkLCBleHBlY3RpbmdcbiAgICAgKiBhIGxpc3Qgb2YgZmlsZXMgdG8gcHJvY2Vzcy5cbiAgICAgKlxuICAgICAqIHN0ZGluLmlzVFRZIGlzIGZhbHNlIHdoZW4gY29tbWFuZCBpcyBmcm9tIG5vZGVzIHNwYXduIHNpbmNlIGl0J3MgdHJlYXRlZCBhcyBhIHBpcGVcbiAgICAgKi9cbiAgICBpZiAocHJvY2Vzcy5zdGRpbi5pc1RUWSB8fCAhcHJvY2Vzcy5zdGRvdXQuaXNUVFkpIHtcbiAgICAgICAgcmV0dXJuIGxhdW5jaCh3ZGlvQ29uZiwgcGFyYW1zKVxuICAgIH1cblxuICAgIC8qXG4gICAgICogZ2V0IGEgbGlzdCBvZiBzcGVjIGZpbGVzIHRvIHJ1biBmcm9tIHN0ZGluLCBvdmVycmlkaW5nIGFueSBvdGhlclxuICAgICAqIGNvbmZpZ3VyYXRpb24gc3VpdGUgb3Igc3BlY3MuXG4gICAgICovXG4gICAgY29uc3Qgc3RkaW4gPSBwcm9jZXNzLm9wZW5TdGRpbigpXG4gICAgc3RkaW4uc2V0RW5jb2RpbmcoJ3V0ZjgnKVxuICAgIHN0ZGluLm9uKCdkYXRhJywgKGRhdGEpID0+IHtcbiAgICAgICAgc3RkaW5EYXRhICs9IGRhdGFcbiAgICB9KVxuICAgIHN0ZGluLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmIChzdGRpbkRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcGFyYW1zLnNwZWNzID0gc3RkaW5EYXRhLnRyaW0oKS5zcGxpdCgvXFxyP1xcbi8pXG4gICAgICAgIH1cbiAgICAgICAgbGF1bmNoKHdkaW9Db25mLCBwYXJhbXMpXG4gICAgfSlcbn1cblxuZnVuY3Rpb24gbGF1bmNoICh3ZGlvQ29uZiwgcGFyYW1zKSB7XG4gICAgbG9nLmRlYnVnKCdSdW4gc3VpdGUgd2l0aCBjb25maWcnLCB3ZGlvQ29uZiwgJ2FuZCBwYXJhbXMnLCBwYXJhbXMpXG4gICAgY29uc3QgbGF1bmNoZXIgPSBuZXcgTGF1bmNoZXIod2Rpb0NvbmYsIHBhcmFtcylcbiAgICBsYXVuY2hlci5ydW4oKS50aGVuKFxuICAgICAgICAoY29kZSkgPT4gcHJvY2Vzcy5leGl0KGNvZGUpLFxuICAgICAgICAoZSkgPT4gcHJvY2Vzcy5uZXh0VGljaygoKSA9PiB7IHRocm93IGUgfSkpXG59XG4iXX0=
{
"name": "@wdio/cli",
"version": "5.0.2",
"version": "5.0.3",
"description": "WebdriverIO testrunner command line interface",

@@ -38,5 +38,5 @@ "author": "Christian Bromann <christian@saucelabs.com>",

"dependencies": {
"@wdio/config": "^5.0.0",
"@wdio/interface": "^5.0.0",
"@wdio/logger": "^5.0.0",
"@wdio/config": "^5.0.3",
"@wdio/interface": "^5.0.3",
"@wdio/logger": "^5.0.3",
"async-exit-hook": "^2.0.1",

@@ -54,3 +54,3 @@ "chalk": "^2.3.2",

"source-map-support": "^0.5.6",
"webdriverio": "^5.0.0",
"webdriverio": "^5.0.3",
"yargs": "^11.1.0"

@@ -60,4 +60,3 @@ },

"access": "public"
},
"gitHead": "070bc464cf4bcd8beb4e788e5748c8ab340fade1"
}
}
SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc