appium-uiautomator2-driver 2.0.9 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/build/index.js +1 -1
- package/build/lib/commands/actions.js +1 -1
- package/build/lib/commands/alert.js +1 -1
- package/build/lib/commands/battery.js +1 -1
- package/build/lib/commands/element.js +1 -1
- package/build/lib/commands/find.js +1 -1
- package/build/lib/commands/general.js +1 -1
- package/build/lib/commands/gestures.js +1 -1
- package/build/lib/commands/index.js +1 -1
- package/build/lib/commands/screenshot.js +1 -1
- package/build/lib/commands/touch.js +1 -1
- package/build/lib/commands/viewport.js +1 -1
- package/build/lib/css-converter.js +1 -1
- package/build/lib/desired-caps.js +1 -1
- package/build/lib/driver.js +1 -1
- package/build/lib/extensions.js +1 -1
- package/build/lib/helpers.js +1 -1
- package/build/lib/logger.js +1 -1
- package/build/lib/server.js +1 -1
- package/build/lib/uiautomator2.js +1 -1
- package/npm-shrinkwrap.json +76 -185
- package/package.json +11 -10
|
@@ -378,4 +378,4 @@ var _default = UiAutomator2Server;
|
|
|
378
378
|
exports.default = _default;require('source-map-support').install();
|
|
379
379
|
|
|
380
380
|
|
|
381
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91aWF1dG9tYXRvcjIuanMiXSwibmFtZXMiOlsiUkVRRF9QQVJBTVMiLCJTRVJWRVJfTEFVTkNIX1RJTUVPVVQiLCJTRVJWRVJfSU5TVEFMTF9SRVRSSUVTIiwiU0VSVklDRVNfTEFVTkNIX1RJTUVPVVQiLCJTRVJWRVJfUEFDS0FHRV9JRCIsIlNFUlZFUl9URVNUX1BBQ0tBR0VfSUQiLCJJTlNUUlVNRU5UQVRJT05fVEFSR0VUIiwiaW5zdHJ1bWVudGF0aW9uTG9nZ2VyIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIiwiVUlBMlByb3h5IiwiSldQcm94eSIsInByb3h5Q29tbWFuZCIsInVybCIsIm1ldGhvZCIsImJvZHkiLCJkaWRJbnN0cnVtZW50YXRpb25FeGl0IiwiZXJyb3JzIiwiSW52YWxpZENvbnRleHRFcnJvciIsIlVpQXV0b21hdG9yMlNlcnZlciIsImNvbnN0cnVjdG9yIiwibG9nIiwib3B0cyIsInJlcSIsInV0aWwiLCJoYXNWYWx1ZSIsIkVycm9yIiwiZGlzYWJsZVN1cHByZXNzQWNjZXNzaWJpbGl0eVNlcnZpY2UiLCJwcm94eU9wdHMiLCJzZXJ2ZXIiLCJob3N0IiwicG9ydCIsInN5c3RlbVBvcnQiLCJrZWVwQWxpdmUiLCJyZWFkVGltZW91dCIsInRpbWVvdXQiLCJqd3Byb3h5IiwicHJveHlSZXFSZXMiLCJiaW5kIiwiY29tbWFuZCIsImluc3RhbGxTZXJ2ZXJBcGsiLCJpbnN0YWxsVGltZW91dCIsInRtcFJvb3QiLCJ0ZW1wRGlyIiwib3BlbkRpciIsInBhY2thZ2VJbmZvc01hcHBlciIsImFwcFBhdGgiLCJhcHBJZCIsImhlbHBlcnMiLCJpc1dyaXRlYWJsZSIsImluZm8iLCJkc3RQYXRoIiwicGF0aCIsInJlc29sdmUiLCJiYXNlbmFtZSIsImZzIiwiY29weUZpbGUiLCJwYWNrYWdlc0luZm8iLCJCIiwiYWxsIiwibWFwIiwiYXBrUGF0aCIsInRlc3RBcGtQYXRoIiwic2hvdWxkVW5pbnN0YWxsU2VydmVyUGFja2FnZXMiLCJzaG91bGRJbnN0YWxsU2VydmVyUGFja2FnZXMiLCJpc0FwcEluc3RhbGxlZCIsImFkYiIsImNoZWNrQXBrQ2VydCIsInNpZ25BcHAiLCJhcHBTdGF0ZSIsImdldEFwcGxpY2F0aW9uSW5zdGFsbFN0YXRlIiwiZGVidWciLCJBUFBfSU5TVEFMTF9TVEFURSIsIk9MREVSX1ZFUlNJT05fSU5TVEFMTEVEIiwiTkVXRVJfVkVSU0lPTl9JTlNUQUxMRUQiLCJpbmNsdWRlcyIsIk5PVF9JTlNUQUxMRUQiLCJ1bmluc3RhbGxBcGsiLCJlcnIiLCJ3YXJuIiwibWVzc2FnZSIsImluc3RhbGwiLCJub0luY3JlbWVudGFsIiwicmVwbGFjZSIsInRpbWVvdXRDYXBOYW1lIiwicmltcmFmIiwidmVyaWZ5U2VydmljZXNBdmFpbGFiaWxpdHkiLCJpc1BtU2VydmljZUF2YWlsYWJsZSIsInBtT3V0cHV0IiwicG1FcnJvciIsInNoZWxsIiwiZSIsIndhaXRNcyIsImludGVydmFsTXMiLCJlcnJvciIsImxpbmUiLCJzcGxpdCIsInN0YXJ0U2Vzc2lvbiIsImNhcHMiLCJjbGVhbnVwQXV0b21hdGlvbkxlZnRvdmVycyIsInNraXBTZXJ2ZXJJbnN0YWxsYXRpb24iLCJzZXJ2ZXJWZXJzaW9uIiwidWlhdXRvbWF0b3IyU2VydmVyTGF1bmNoVGltZW91dCIsInRpbWVyIiwidGltaW5nIiwiVGltZXIiLCJzdGFydCIsInJldHJpZXMiLCJtYXhSZXRyaWVzIiwiZGVsYXlCZXR3ZWVuUmV0cmllcyIsInN0YXJ0SW5zdHJ1bWVudGF0aW9uUHJvY2VzcyIsImVycm9yQW5kVGhyb3ciLCJkZWxheSIsImdldER1cmF0aW9uIiwiYXNNaWxsaVNlY29uZHMiLCJ0b0ZpeGVkIiwiY2FwYWJpbGl0aWVzIiwiZmlyc3RNYXRjaCIsImFsd2F5c01hdGNoIiwiY21kIiwiZGlzYWJsZVdpbmRvd0FuaW1hdGlvbiIsInB1c2giLCJfIiwiaXNCb29sZWFuIiwiaW5zdHJ1bWVudGF0aW9uUHJvY2VzcyIsImNyZWF0ZVN1YlByb2Nlc3MiLCJvbiIsInN0ZG91dCIsInN0ZGVyciIsIm91dHB1dCIsInRyaW0iLCJjb2RlIiwiZGVsZXRlU2Vzc2lvbiIsInN0cmljdENsZWFudXAiLCJ2YWx1ZSIsImRhdGEiLCJhY3RpdmVTZXNzaW9uSWRzIiwiaWQiLCJmaWx0ZXIiLCJCb29sZWFuIiwibGVuZ3RoIiwiSlNPTiIsInN0cmluZ2lmeSIsInBsdXJhbGl6ZSIsImF4aW9zIiwiZGVsZXRlIiwiZm9yY2VTdG9wIiwiaWdub3JlIiwia2lsbFByb2Nlc3Nlc0J5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxXQUFXLEdBQUcsQ0FBQyxLQUFELEVBQVEsUUFBUixFQUFrQixNQUFsQixFQUEwQixZQUExQixFQUF3QyxZQUF4QyxFQUFzRCx3QkFBdEQsQ0FBcEI7QUFDQSxNQUFNQyxxQkFBcUIsR0FBRyxLQUE5QjtBQUNBLE1BQU1DLHNCQUFzQixHQUFHLEVBQS9CO0FBQ0EsTUFBTUMsdUJBQXVCLEdBQUcsS0FBaEM7QUFDQSxNQUFNQyxpQkFBaUIsR0FBRywrQkFBMUI7O0FBQ0EsTUFBTUMsc0JBQXNCLEdBQUksR0FBRUQsaUJBQWtCLE9BQXBEOztBQUNBLE1BQU1FLHNCQUFzQixHQUFJLEdBQUVELHNCQUF1QiwwQ0FBekQ7OztBQUNBLE1BQU1FLHFCQUFxQixHQUFHQyxnQkFBT0MsU0FBUCxDQUFpQixpQkFBakIsQ0FBOUI7O0FBRUEsTUFBTUMsU0FBTixTQUF3QkMsbUJBQXhCLENBQWdDO0FBQ1osUUFBWkMsWUFBWSxDQUFFQyxHQUFGLEVBQU9DLE1BQVAsRUFBZUMsSUFBSSxHQUFHLElBQXRCLEVBQTRCO0FBQzVDLFFBQUksS0FBS0Msc0JBQVQsRUFBaUM7QUFDL0IsWUFBTSxJQUFJQyxtQkFBT0MsbUJBQVgsQ0FDSCxJQUFHSixNQUFPLElBQUdELEdBQUkscURBQWxCLEdBQ0EsaUVBREEsR0FFQSxnRUFISSxDQUFOO0FBSUQ7O0FBQ0QsV0FBTyxN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Q0Q7QUFDRixLQWpCRCxDQWlCRSxPQUFPb0IsQ0FBUCxFQUFVO0FBQ1YsV0FBS3RFLEdBQUwsQ0FBU2tELEtBQVQsQ0FBZ0IsNENBQTJDb0IsQ0FBQyxDQUFDWCxPQUFRLEdBQXJFO0FBQ0Q7O0FBRUQsUUFBSTtBQUNGLFlBQU0sS0FBS2QsR0FBTCxDQUFTZ0YsU0FBVCxDQUFtQjdJLHNCQUFuQixDQUFOO0FBQ0QsS0FGRCxDQUVFLE9BQU84SSxNQUFQLEVBQWUsQ0FBRTs7QUFDbkIsUUFBSSxDQUFDZCxhQUFMLEVBQW9CO0FBQ2xCO0FBQ0Q7O0FBRUQsUUFBSTtBQUNGLFlBQU0sS0FBS25FLEdBQUwsQ0FBU2tGLG1CQUFULENBQTZCLGFBQTdCLENBQU47QUFDRCxLQUZELENBRUUsT0FBT0QsTUFBUCxFQUFlLENBQUU7QUFDcEI7O0FBN1NzQjs7O2VBaVRWaEksa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSldQcm94eSwgZXJyb3JzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQgeyB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IHtcbiAgU0VSVkVSX0FQS19QQVRIIGFzIGFwa1BhdGgsXG4gIFRFU1RfQVBLX1BBVEggYXMgdGVzdEFwa1BhdGgsXG4gIHZlcnNpb24gYXMgc2VydmVyVmVyc2lvblxufSBmcm9tICdhcHBpdW0tdWlhdXRvbWF0b3IyLXNlcnZlcic7XG5pbXBvcnQge1xuICB1dGlsLCBsb2dnZXIsIHRlbXBEaXIsIGZzLCB0aW1pbmdcbn0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBoZWxwZXJzIGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmNvbnN0IFJFUURfUEFSQU1TID0gWydhZGInLCAndG1wRGlyJywgJ2hvc3QnLCAnc3lzdGVtUG9ydCcsICdkZXZpY2VQb3J0JywgJ2Rpc2FibGVXaW5kb3dBbmltYXRpb24nXTtcbmNvbnN0IFNFUlZFUl9MQVVOQ0hfVElNRU9VVCA9IDMwMDAwO1xuY29uc3QgU0VSVkVSX0lOU1RBTExfUkVUUklFUyA9IDIwO1xuY29uc3QgU0VSVklDRVNfTEFVTkNIX1RJTUVPVVQgPSAzMDAwMDtcbmNvbnN0IFNFUlZFUl9QQUNLQUdFX0lEID0gJ2lvLmFwcGl1bS51aWF1dG9tYXRvcjIuc2VydmVyJztcbmNvbnN0IFNFUlZFUl9URVNUX1BBQ0tBR0VfSUQgPSBgJHtTRVJWRVJfUEFDS0FHRV9JRH0udGVzdGA7XG5jb25zdCBJTlNUUlVNRU5UQVRJT05fVEFSR0VUID0gYCR7U0VSVkVSX1RFU1RfUEFDS0FHRV9JRH0vYW5kcm9pZHgudGVzdC5ydW5uZXIuQW5kcm9pZEpVbml0UnVubmVyYDtcbmNvbnN0IGluc3RydW1lbnRhdGlvbkxvZ2dlciA9IGxvZ2dlci5nZXRMb2dnZXIoJ0luc3RydW1lbnRhdGlvbicpO1xuXG5jbGFzcyBVSUEyUHJveHkgZXh0ZW5kcyBKV1Byb3h5IHtcbiAgYXN5bmMgcHJveHlDb21tYW5kICh1cmwsIG1ldGhvZCwgYm9keSA9IG51bGwpIHtcbiAgICBpZiAodGhpcy5kaWRJbnN0cnVtZW50YXRpb25FeGl0KSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRDb250ZXh0RXJyb3IoXG4gICAgICAgIGAnJHttZXRob2R9ICR7dXJsfScgY2Fubm90IGJlIHByb3hpZWQgdG8gVWlBdXRvbWF0b3IyIHNlcnZlciBiZWNhdXNlIGAgK1xuICAgICAgICAndGhlIGluc3RydW1lbnRhdGlvbiBwcm9jZXNzIGlzIG5vdCBydW5uaW5nIChwcm9iYWJseSBjcmFzaGVkKS4gJyArXG4gICAgICAgICdDaGVjayB0aGUgc2VydmVyIGxvZyBhbmQvb3IgdGhlIGxvZ2NhdCBvdXRwdXQgZm9yIG1vcmUgZGV0YWlscycpO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIucHJveHlDb21tYW5kKHVybCwgbWV0aG9kLCBib2R5KTtcbiAgfVxufVxuXG5jbGFzcyBVaUF1dG9tYXRvcjJTZXJ2ZXIge1xuICBjb25zdHJ1Y3RvciAobG9nLCBvcHRzID0ge30pIHtcbiAgICBmb3IgKGxldCByZXEgb2YgUkVRRF9QQVJBTVMpIHtcbiAgICAgIGlmICghb3B0cyB8fCAhdXRpbC5oYXNWYWx1ZShvcHRzW3JlcV0pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgT3B0aW9uICcke3JlcX0nIGlzIHJlcXVpcmVkIWApO1xuICAgICAgfVxuICAgICAgdGhpc1tyZXFdID0gb3B0c1tyZXFdO1xuICAgIH1cbiAgICB0aGlzLmxvZyA9IGxvZztcbiAgICB0aGlzLmRpc2FibGVTdXBwcmVzc0FjY2Vzc2liaWxpdHlTZXJ2aWNlID0gb3B0cy5kaXNhYmxlU3VwcHJlc3NBY2Nlc3NpYmlsaXR5U2VydmljZTtcbiAgICBjb25zdCBwcm94eU9wdHMgPSB7XG4gICAgICBsb2csXG4gICAgICBzZXJ2ZXI6IHRoaXMuaG9zdCxcbiAgICAgIHBvcnQ6IHRoaXMuc3lzdGVtUG9ydCxcbiAgICAgIGtlZXBBbGl2ZTogdHJ1ZSxcbiAgICB9O1xuICAgIGlmIChvcHRzLnJlYWRUaW1lb3V0ICYmIG9wdHMucmVhZFRpbWVvdXQgPiAwKSB7XG4gICAgICBwcm94eU9wdHMudGltZW91dCA9IG9wdHMucmVhZFRpbWVvdXQ7XG4gICAgfVxuICAgIHRoaXMuandwcm94eSA9IG5ldyBVSUEyUHJveHkocHJveHlPcHRzKTtcbiAgICB0aGlzLnByb3h5UmVxUmVzID0gdGhpcy5qd3Byb3h5LnByb3h5UmVxUmVzLmJpbmQodGhpcy5qd3Byb3h5KTtcbiAgICB0aGlzLnByb3h5Q29tbWFuZCA9IHRoaXMuandwcm94eS5jb21tYW5kLmJpbmQodGhpcy5qd3Byb3h5KTtcbiAgICB0aGlzLmp3cHJveHkuZGlkSW5zdHJ1bWVudGF0aW9uRXhpdCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGxzIHRoZSBhcGtzIG9uIHRvIHRoZSBkZXZpY2Ugb3IgZW11bGF0b3IuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbnN0YWxsVGltZW91dCAtIEluc3RhbGxhdGlvbiB0aW1lb3V0XG4gICAqL1xuICBhc3luYyBpbnN0YWxsU2VydmVyQXBrIChpbnN0YWxsVGltZW91dCA9IFNFUlZFUl9JTlNUQUxMX1JFVFJJRVMgKiAxMDAwKSB7XG4gICAgY29uc3QgdG1wUm9vdCA9IGF3YWl0IHRlbXBEaXIub3BlbkRpcigpO1xuICAgIGNvbnN0IHBhY2thZ2VJbmZvc01hcHBlciA9IGFzeW5jICh7YXBwUGF0aCwgYXBwSWR9KSA9PiB7XG4gICAgICBpZiAoYXdhaXQgaGVscGVycy5pc1dyaXRlYWJsZShhcHBQYXRoKSkge1xuICAgICAgICByZXR1cm4geyBhcHBQYXRoLCBhcHBJZCB9O1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxvZy5pbmZvKGBTZXJ2ZXIgcGFja2FnZSBhdCAnJHthcHBQYXRofScgaXMgbm90IHdyaXRlYWJsZS4gYCArXG4gICAgICAgIGBXaWxsIGNvcHkgaXQgaW50byB0aGUgdGVtcG9yYXJ5IGxvY2F0aW9uIGF0ICcke3RtcFJvb3R9JyBhcyBhIHdvcmthcm91bmQuIGAgK1xuICAgICAgICBgQ29uc2lkZXIgbWFraW5nIHRoaXMgZmlsZSB3cml0ZWFibGUgbWFudWFsbHkgaW4gb3JkZXIgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugb2Ygc2Vzc2lvbiBzdGFydHVwLmApO1xuICAgICAgY29uc3QgZHN0UGF0aCA9IHBhdGgucmVzb2x2ZSh0bXBSb290LCBwYXRoLmJhc2VuYW1lKGFwcFBhdGgpKTtcbiAgICAgIGF3YWl0IGZzLmNvcHlGaWxlKGFwcFBhdGgsIGRzdFBhdGgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXBwUGF0aDogZHN0UGF0aCxcbiAgICAgICAgYXBwSWQsXG4gICAgICB9O1xuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFja2FnZXNJbmZvID0gYXdhaXQgQi5hbGwoQi5tYXAoW1xuICAgICAgICB7XG4gICAgICAgICAgYXBwUGF0aDogYXBrUGF0aCxcbiAgICAgICAgICBhcHBJZDogU0VSVkVSX1BBQ0tBR0VfSUQsXG4gICAgICAgIH0sIHtcbiAgICAgICAgICBhcHBQYXRoOiB0ZXN0QXBrUGF0aCxcbiAgICAgICAgICBhcHBJZDogU0VSVkVSX1RFU1RfUEFDS0FHRV9JRCxcbiAgICAgICAgfSxcbiAgICAgIF0sIHBhY2thZ2VJbmZvc01hcHBlcikpO1xuXG4gICAgICBsZXQgc2hvdWxkVW5pbnN0YWxsU2VydmVyUGFja2FnZXMgPSBmYWxzZTtcbiAgICAgIGxldCBzaG91bGRJbnN0YWxsU2VydmVyUGFja2FnZXMgPSBmYWxzZTtcbiAgICAgIGZvciAoY29uc3Qge2FwcElkLCBhcHBQYXRofSBvZiBwYWNrYWdlc0luZm8pIHtcbiAgICAgICAgaWYgKGFwcElkID09PSBTRVJWRVJfVEVTVF9QQUNLQUdFX0lEKSB7XG4gICAgICAgICAgY29uc3QgaXNBcHBJbnN0YWxsZWQgPSBhd2FpdCB0aGlzLmFkYi5pc0FwcEluc3RhbGxlZChhcHBJZCk7XG5cbiAgICAgICAgICAvLyBUaGVyZSBpcyBubyBwb2ludCBpbiBnZXR0aW5nIHRoZSBzdGF0ZSBmb3IgdGVzdCBzZXJ2ZXIsXG4gICAgICAgICAgLy8gc2luY2UgaXQgZG9lcyBub3QgY29udGFpbiB2ZXJzaW9uIGluZm9cbiAgICAgICAgICBpZiAoIWF3YWl0IHRoaXMuYWRiLmNoZWNrQXBrQ2VydChhcHBQYXRoLCBhcHBJZCkpIHtcbiAgICAgICAgICAgIGF3YWl0IGhlbHBlcnMuc2lnbkFwcCh0aGlzLmFkYiwgYXBwUGF0aCk7XG4gICAgICAgICAgICBzaG91bGRVbmluc3RhbGxTZXJ2ZXJQYWNrYWdlcyA9IHNob3VsZFVuaW5zdGFsbFNlcnZlclBhY2thZ2VzIHx8IGlzQXBwSW5zdGFsbGVkO1xuICAgICAgICAgICAgc2hvdWxkSW5zdGFsbFNlcnZlclBhY2thZ2VzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIWlzQXBwSW5zdGFsbGVkKSB7XG4gICAgICAgICAgICBzaG91bGRJbnN0YWxsU2VydmVyUGFja2FnZXMgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFwcFN0YXRlID0gYXdhaXQgdGhpcy5hZGIuZ2V0QXBwbGljYXRpb25JbnN0YWxsU3RhdGUoYXBwUGF0aCwgYXBwSWQpO1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgJHthcHBJZH0gaW5zdGFsbGF0aW9uIHN0YXRlOiAke2FwcFN0YXRlfWApO1xuICAgICAgICBpZiAoYXdhaXQgdGhpcy5hZGIuY2hlY2tBcGtDZXJ0KGFwcFBhdGgsIGFwcElkKSkge1xuICAgICAgICAgIHNob3VsZFVuaW5zdGFsbFNlcnZlclBhY2thZ2VzID0gc2hvdWxkVW5pbnN0YWxsU2VydmVyUGFja2FnZXMgfHwgW1xuICAgICAgICAgICAgdGhpcy5hZGIuQVBQX0lOU1RBTExfU1RBVEUuT0xERVJfVkVSU0lPTl9JTlNUQUxMRUQsXG4gICAgICAgICAgICB0aGlzLmFkYi5BUFBfSU5TVEFMTF9TVEFURS5ORVdFUl9WRVJTSU9OX0lOU1RBTExFRCxcbiAgICAgICAgICBdLmluY2x1ZGVzKGFwcFN0YXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhd2FpdCBoZWxwZXJzLnNpZ25BcHAodGhpcy5hZGIsIGFwcFBhdGgpO1xuICAgICAgICAgIHNob3VsZFVuaW5zdGFsbFNlcnZlclBhY2thZ2VzID0gc2hvdWxkVW5pbnN0YWxsU2VydmVyUGFja2FnZXMgfHwgIVtcbiAgICAgICAgICAgIHRoaXMuYWRiLkFQUF9JTlNUQUxMX1NUQVRFLk5PVF9JTlNUQUxMRUQsXG4gICAgICAgICAgXS5pbmNsdWRlcyhhcHBTdGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgc2hvdWxkSW5zdGFsbFNlcnZlclBhY2thZ2VzID0gc2hvdWxkSW5zdGFsbFNlcnZlclBhY2thZ2VzIHx8IHNob3VsZFVuaW5zdGFsbFNlcnZlclBhY2thZ2VzIHx8IFtcbiAgICAgICAgICB0aGlzLmFkYi5BUFBfSU5TVEFMTF9TVEFURS5OT1RfSU5TVEFMTEVELFxuICAgICAgICBdLmluY2x1ZGVzKGFwcFN0YXRlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9nLmluZm8oYFNlcnZlciBwYWNrYWdlcyBhcmUgJHtzaG91bGRJbnN0YWxsU2VydmVyUGFja2FnZXMgPyAnJyA6ICdub3QgJ31nb2luZyB0byBiZSAocmUpaW5zdGFsbGVkYCk7XG4gICAgICBpZiAoc2hvdWxkSW5zdGFsbFNlcnZlclBhY2thZ2VzICYmIHNob3VsZFVuaW5zdGFsbFNlcnZlclBhY2thZ2VzKSB7XG4gICAgICAgIHRoaXMubG9nLmluZm8oJ0Z1bGwgcGFja2FnZXMgcmVpbnN0YWxsIGlzIGdvaW5nIHRvIGJlIHBlcmZvcm1lZCcpO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCB7YXBwSWQsIGFwcFBhdGh9IG9mIHBhY2thZ2VzSW5mbykge1xuICAgICAgICBpZiAoc2hvdWxkVW5pbnN0YWxsU2VydmVyUGFja2FnZXMpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5hZGIudW5pbnN0YWxsQXBrKGFwcElkKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nLndhcm4oYEVycm9yIHVuaW5zdGFsbGluZyAnJHthcHBJZH0nOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc2hvdWxkSW5zdGFsbFNlcnZlclBhY2thZ2VzKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5hZGIuaW5zdGFsbChhcHBQYXRoLCB7XG4gICAgICAgICAgICBub0luY3JlbWVudGFsOiB0cnVlLFxuICAgICAgICAgICAgcmVwbGFjZTogdHJ1ZSxcbiAgICAgICAgICAgIHRpbWVvdXQ6IGluc3RhbGxUaW1lb3V0LFxuICAgICAgICAgICAgdGltZW91dENhcE5hbWU6ICd1aWF1dG9tYXRvcjJTZXJ2ZXJJbnN0YWxsVGltZW91dCdcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBmcy5yaW1yYWYodG1wUm9vdCk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy52ZXJpZnlTZXJ2aWNlc0F2YWlsYWJpbGl0eSgpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5U2VydmljZXNBdmFpbGFiaWxpdHkgKCkge1xuICAgIHRoaXMubG9nLmRlYnVnKGBXYWl0aW5nIHVwIHRvICR7U0VSVklDRVNfTEFVTkNIX1RJTUVPVVR9bXMgZm9yIHNlcnZpY2VzIHRvIGJlIGF2YWlsYWJsZWApO1xuICAgIGxldCBpc1BtU2VydmljZUF2YWlsYWJsZSA9IGZhbHNlO1xuICAgIGxldCBwbU91dHB1dCA9ICcnO1xuICAgIGxldCBwbUVycm9yID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmICghaXNQbVNlcnZpY2VBdmFpbGFibGUpIHtcbiAgICAgICAgICBwbUVycm9yID0gbnVsbDtcbiAgICAgICAgICBwbU91dHB1dCA9ICcnO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwbU91dHB1dCA9IGF3YWl0IHRoaXMuYWRiLnNoZWxsKFsncG0nLCAnbGlzdCcsICdpbnN0cnVtZW50YXRpb24nXSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcG1FcnJvciA9IGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwbU91dHB1dC5pbmNsdWRlcygnQ291bGQgbm90IGFjY2VzcyB0aGUgUGFja2FnZSBNYW5hZ2VyJykpIHtcbiAgICAgICAgICAgIHBtRXJyb3IgPSBuZXcgRXJyb3IoYFByb2JsZW0gcnVubmluZyBQYWNrYWdlIE1hbmFnZXI6ICR7cG1PdXRwdXR9YCk7XG4gICAgICAgICAgICBwbU91dHB1dCA9ICcnOyAvLyByZW1vdmUgb3V0cHV0LCBzbyBpdCBpcyBub3QgcHJpbnRlZCBiZWxvd1xuICAgICAgICAgIH0gZWxzZSBpZiAocG1PdXRwdXQuaW5jbHVkZXMoSU5TVFJVTUVOVEFUSU9OX1RBUkdFVCkpIHtcbiAgICAgICAgICAgIHBtT3V0cHV0ID0gJyc7IC8vIHJlbW92ZSBvdXRwdXQsIHNvIGl0IGlzIG5vdCBwcmludGVkIGJlbG93XG4gICAgICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgSW5zdHJ1bWVudGF0aW9uIHRhcmdldCAnJHtJTlNUUlVNRU5UQVRJT05fVEFSR0VUfScgaXMgYXZhaWxhYmxlYCk7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hdG9taWMtdXBkYXRlc1xuICAgICAgICAgICAgaXNQbVNlcnZpY2VBdmFpbGFibGUgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIXBtRXJyb3IpIHtcbiAgICAgICAgICAgIHBtRXJyb3IgPSBuZXcgRXJyb3IoJ1RoZSBpbnN0cnVtZW50YXRpb24gdGFyZ2V0IGlzIG5vdCBsaXN0ZWQgYnkgUGFja2FnZSBNYW5hZ2VyJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc1BtU2VydmljZUF2YWlsYWJsZTtcbiAgICAgIH0sIHtcbiAgICAgICAgd2FpdE1zOiBTRVJWSUNFU19MQVVOQ0hfVElNRU9VVCxcbiAgICAgICAgaW50ZXJ2YWxNczogMTAwMCxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5sb2cuZXJyb3IoYFVuYWJsZSB0byBmaW5kIGluc3RydW1lbnRhdGlvbiB0YXJnZXQgJyR7SU5TVFJVTUVOVEFUSU9OX1RBUkdFVH0nOiAkeyhwbUVycm9yIHx8IHt9KS5tZXNzYWdlfWApO1xuICAgICAgaWYgKHBtT3V0cHV0KSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKCdBdmFpbGFibGUgdGFyZ2V0czonKTtcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIHBtT3V0cHV0LnNwbGl0KCdcXG4nKSkge1xuICAgICAgICAgIHRoaXMubG9nLmRlYnVnKGAgICAgJHtsaW5lLnJlcGxhY2UoJ2luc3RydW1lbnRhdGlvbjonLCAnJyl9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBzdGFydFNlc3Npb24gKGNhcHMpIHtcbiAgICBhd2FpdCB0aGlzLmNsZWFudXBBdXRvbWF0aW9uTGVmdG92ZXJzKCk7XG4gICAgaWYgKGNhcHMuc2tpcFNlcnZlckluc3RhbGxhdGlvbikge1xuICAgICAgdGhpcy5sb2cuaW5mbyhgJ3NraXBTZXJ2ZXJJbnN0YWxsYXRpb24nIGlzIHNldC4gQXR0ZW1wdGluZyB0byB1c2UgVUlBdXRvbWF0b3IyIHNlcnZlciBmcm9tIHRoZSBkZXZpY2VgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2cuaW5mbyhgU3RhcnRpbmcgVUlBdXRvbWF0b3IyIHNlcnZlciAke3NlcnZlclZlcnNpb259YCk7XG4gICAgICB0aGlzLmxvZy5pbmZvKGBVc2luZyBVSUF1dG9tYXRvcjIgc2VydmVyIGZyb20gJyR7YXBrUGF0aH0nIGFuZCB0ZXN0IGZyb20gJyR7dGVzdEFwa1BhdGh9J2ApO1xuICAgIH1cblxuICAgIGNvbnN0IHRpbWVvdXQgPSBjYXBzLnVpYXV0b21hdG9yMlNlcnZlckxhdW5jaFRpbWVvdXQgfHwgU0VSVkVSX0xBVU5DSF9USU1FT1VUO1xuICAgIGNvbnN0IHRpbWVyID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG4gICAgbGV0IHJldHJpZXMgPSAwO1xuICAgIGNvbnN0IG1heFJldHJpZXMgPSAyO1xuICAgIGNvbnN0IGRlbGF5QmV0d2VlblJldHJpZXMgPSAzMDAwO1xuICAgIHdoaWxlIChyZXRyaWVzIDwgbWF4UmV0cmllcykge1xuICAgICAgdGhpcy5sb2cuaW5mbyhgV2FpdGluZyB1cCB0byAke3RpbWVvdXR9bXMgZm9yIFVpQXV0b21hdG9yMiB0byBiZSBvbmxpbmUuLi5gKTtcbiAgICAgIHRoaXMuandwcm94eS5kaWRJbnN0cnVtZW50YXRpb25FeGl0ID0gZmFsc2U7XG4gICAgICBhd2FpdCB0aGlzLnN0YXJ0SW5zdHJ1bWVudGF0aW9uUHJvY2VzcygpO1xuICAgICAgaWYgKCF0aGlzLmp3cHJveHkuZGlkSW5zdHJ1bWVudGF0aW9uRXhpdCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5qd3Byb3h5LmNvbW1hbmQoJy9zdGF0dXMnLCAnR0VUJyk7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgIC8vIHNob3J0IGNpcmN1aXQgdG8gcmV0cnkgb3IgZmFpbCBmYXN0XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmp3cHJveHkuZGlkSW5zdHJ1bWVudGF0aW9uRXhpdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCB7XG4gICAgICAgICAgICB3YWl0TXM6IHRpbWVvdXQsXG4gICAgICAgICAgICBpbnRlcnZhbE1zOiAxMDAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBUaGUgaW5zdHJ1bWVudGF0aW9uIHByb2Nlc3MgY2Fubm90IGJlIGluaXRpYWxpemVkIHdpdGhpbiAke3RpbWVvdXR9bXMgdGltZW91dC4gYFxuICAgICAgICAgICAgKyAnTWFrZSBzdXJlIHRoZSBhcHBsaWNhdGlvbiB1bmRlciB0ZXN0IGRvZXMgbm90IGNyYXNoIGFuZCBpbnZlc3RpZ2F0ZSB0aGUgbG9nY2F0IG91dHB1dC4gJ1xuICAgICAgICAgICAgKyBgWW91IGNvdWxkIGFsc28gdHJ5IHRvIGluY3JlYXNlIHRoZSB2YWx1ZSBvZiAndWlhdXRvbWF0b3IyU2VydmVyTGF1bmNoVGltZW91dCcgY2FwYWJpbGl0eWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuandwcm94eS5kaWRJbnN0cnVtZW50YXRpb25FeGl0KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZXRyaWVzKys7XG4gICAgICBpZiAocmV0cmllcyA+PSBtYXhSZXRyaWVzKSB7XG4gICAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coJ1RoZSBpbnN0cnVtZW50YXRpb24gcHJvY2VzcyBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQuICdcbiAgICAgICAgICArICdNYWtlIHN1cmUgdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QgZG9lcyBub3QgY3Jhc2ggYW5kIGludmVzdGlnYXRlIHRoZSBsb2djYXQgb3V0cHV0LicpO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2cud2FybihgVGhlIGluc3RydW1lbnRhdGlvbiBwcm9jZXNzIGhhcyBiZWVuIHVuZXhwZWN0ZWRseSB0ZXJtaW5hdGVkLiBgXG4gICAgICAgICsgYFJldHJ5aW5nIFVpQXV0b21hdG9yMiBzdGFydHVwICgjJHtyZXRyaWVzfSBvZiAke21heFJldHJpZXMgLSAxfSlgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2xlYW51cEF1dG9tYXRpb25MZWZ0b3ZlcnModHJ1ZSk7XG4gICAgICBhd2FpdCBCLmRlbGF5KGRlbGF5QmV0d2VlblJldHJpZXMpO1xuICAgIH1cblxuICAgIHRoaXMubG9nLmRlYnVnKGBUaGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGluc3RydW1lbnRhdGlvbiBwcm9jZXNzIHRvb2sgYFxuICAgICAgKyBgJHt0aW1lci5nZXREdXJhdGlvbigpLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCl9bXNgKTtcbiAgICBhd2FpdCB0aGlzLmp3cHJveHkuY29tbWFuZCgnL3Nlc3Npb24nLCAnUE9TVCcsIHtcbiAgICAgIGNhcGFiaWxpdGllczoge1xuICAgICAgICBmaXJzdE1hdGNoOiBbY2Fwc10sXG4gICAgICAgIGFsd2F5c01hdGNoOiB7fSxcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0SW5zdHJ1bWVudGF0aW9uUHJvY2VzcyAoKSB7XG4gICAgY29uc3QgY21kID0gWydhbScsICdpbnN0cnVtZW50JywgJy13J107XG4gICAgaWYgKHRoaXMuZGlzYWJsZVdpbmRvd0FuaW1hdGlvbikge1xuICAgICAgY21kLnB1c2goJy0tbm8td2luZG93LWFuaW1hdGlvbicpO1xuICAgIH1cbiAgICBpZiAoXy5pc0Jvb2xlYW4odGhpcy5kaXNhYmxlU3VwcHJlc3NBY2Nlc3NpYmlsaXR5U2VydmljZSkpIHtcbiAgICAgIGNtZC5wdXNoKCctZScsICdESVNBQkxFX1NVUFBSRVNTX0FDQ0VTU0lCSUxJVFlfU0VSVklDRVMnLCB0aGlzLmRpc2FibGVTdXBwcmVzc0FjY2Vzc2liaWxpdHlTZXJ2aWNlKTtcbiAgICB9XG4gICAgLy8gRGlzYWJsZSBHb29nbGUgYW5hbHl0aWNzIHRvIHByZXZlbnQgcG9zc2libGUgZmF0YWwgZXhjZXB0aW9uXG4gICAgY21kLnB1c2goJy1lJywgJ2Rpc2FibGVBbmFseXRpY3MnLCB0cnVlKTtcbiAgICBjbWQucHVzaChJTlNUUlVNRU5UQVRJT05fVEFSR0VUKTtcbiAgICBjb25zdCBpbnN0cnVtZW50YXRpb25Qcm9jZXNzID0gdGhpcy5hZGIuY3JlYXRlU3ViUHJvY2VzcyhbJ3NoZWxsJywgLi4uY21kXSk7XG4gICAgaW5zdHJ1bWVudGF0aW9uUHJvY2Vzcy5vbignb3V0cHV0JywgKHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgICBjb25zdCBvdXRwdXQgPSBfLnRyaW0oc3Rkb3V0IHx8IHN0ZGVycik7XG4gICAgICBpZiAob3V0cHV0KSB7XG4gICAgICAgIGluc3RydW1lbnRhdGlvbkxvZ2dlci5kZWJ1ZyhvdXRwdXQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGluc3RydW1lbnRhdGlvblByb2Nlc3Mub24oJ2V4aXQnLCAoY29kZSkgPT4ge1xuICAgICAgaW5zdHJ1bWVudGF0aW9uTG9nZ2VyLmRlYnVnKGBUaGUgcHJvY2VzcyBoYXMgZXhpdGVkIHdpdGggY29kZSAke2NvZGV9YCk7XG4gICAgICB0aGlzLmp3cHJveHkuZGlkSW5zdHJ1bWVudGF0aW9uRXhpdCA9IHRydWU7XG4gICAgfSk7XG4gICAgYXdhaXQgaW5zdHJ1bWVudGF0aW9uUHJvY2Vzcy5zdGFydCgwKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZVNlc3Npb24gKCkge1xuICAgIHRoaXMubG9nLmRlYnVnKCdEZWxldGluZyBVaUF1dG9tYXRvcjIgc2VydmVyIHNlc3Npb24nKTtcbiAgICAvLyByZWx5IG9uIGp3cHJveHkncyBpbnRlbGxpZ2VuY2UgdG8ga25vdyB3aGF0IHdlJ3JlIHRhbGtpbmcgYWJvdXQgYW5kXG4gICAgLy8gZGVsZXRlIHRoZSBjdXJyZW50IHNlc3Npb25cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5qd3Byb3h5LmNvbW1hbmQoJy8nLCAnREVMRVRFJyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmxvZy53YXJuKGBEaWQgbm90IGdldCBjb25maXJtYXRpb24gVWlBdXRvbWF0b3IyIGRlbGV0ZVNlc3Npb24gd29ya2VkOyBgICtcbiAgICAgICAgICBgRXJyb3Igd2FzOiAke2Vycn1gKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjbGVhbnVwQXV0b21hdGlvbkxlZnRvdmVycyAoc3RyaWN0Q2xlYW51cCA9IGZhbHNlKSB7XG4gICAgdGhpcy5sb2cuZGVidWcoYFBlcmZvcm1pbmcgJHtzdHJpY3RDbGVhbnVwID8gJ3N0cmljdCcgOiAnc2hhbGxvdyd9IGNsZWFudXAgb2YgYXV0b21hdGlvbiBsZWZ0b3ZlcnNgKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7dmFsdWV9ID0gKGF3YWl0IGF4aW9zKHtcbiAgICAgICAgdXJsOiBgaHR0cDovLyR7dGhpcy5ob3N0fToke3RoaXMuc3lzdGVtUG9ydH0vc2Vzc2lvbnNgLFxuICAgICAgICB0aW1lb3V0OiA1MDAsXG4gICAgICB9KSkuZGF0YTtcbiAgICAgIGNvbnN0IGFjdGl2ZVNlc3Npb25JZHMgPSB2YWx1ZS5tYXAoKHtpZH0pID0+IGlkKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICBpZiAoYWN0aXZlU2Vzc2lvbklkcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoYFRoZSBmb2xsb3dpbmcgb2Jzb2xldGUgc2Vzc2lvbnMgYXJlIHN0aWxsIHJ1bm5pbmc6ICR7SlNPTi5zdHJpbmdpZnkoYWN0aXZlU2Vzc2lvbklkcyl9YCk7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBDbGVhbmluZyB1cCAke3V0aWwucGx1cmFsaXplKCdvYnNvbGV0ZSBzZXNzaW9uJywgYWN0aXZlU2Vzc2lvbklkcy5sZW5ndGgsIHRydWUpfWApO1xuICAgICAgICBhd2FpdCBCLmFsbChhY3RpdmVTZXNzaW9uSWRzXG4gICAgICAgICAgLm1hcCgoaWQpID0+IGF4aW9zLmRlbGV0ZShgaHR0cDovLyR7dGhpcy5ob3N0fToke3RoaXMuc3lzdGVtUG9ydH0vc2Vzc2lvbi8ke2lkfWApKVxuICAgICAgICApO1xuICAgICAgICAvLyBMZXQgYWxsIHNlc3Npb25zIHRvIGJlIHByb3Blcmx5IHRlcm1pbmF0ZWQgYmVmb3JlIGNvbnRpbnVpbmdcbiAgICAgICAgYXdhaXQgQi5kZWxheSgxMDAwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKCdObyBvYnNvbGV0ZSBzZXNzaW9ucyBoYXZlIGJlZW4gZGV0ZWN0ZWQnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgTm8gb2Jzb2xldGUgc2Vzc2lvbnMgaGF2ZSBiZWVuIGRldGVjdGVkICgke2UubWVzc2FnZX0pYCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYWRiLmZvcmNlU3RvcChTRVJWRVJfVEVTVF9QQUNLQUdFX0lEKTtcbiAgICB9IGNhdGNoIChpZ25vcmUpIHt9XG4gICAgaWYgKCFzdHJpY3RDbGVhbnVwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hcHBpdW0vYXBwaXVtL2lzc3Vlcy8xMDc0OVxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmFkYi5raWxsUHJvY2Vzc2VzQnlOYW1lKCd1aWF1dG9tYXRvcicpO1xuICAgIH0gY2F0Y2ggKGlnbm9yZSkge31cbiAgfVxufVxuXG5leHBvcnQgeyBVaUF1dG9tYXRvcjJTZXJ2ZXIsIElOU1RSVU1FTlRBVElPTl9UQVJHRVQsIFNFUlZFUl9QQUNLQUdFX0lELCBTRVJWRVJfVEVTVF9QQUNLQUdFX0lEIH07XG5leHBvcnQgZGVmYXVsdCBVaUF1dG9tYXRvcjJTZXJ2ZXI7XG4iXSwiZmlsZSI6ImxpYi91aWF1dG9tYXRvcjIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
381
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL3VpYXV0b21hdG9yMi5qcyIsIm5hbWVzIjpbIlJFUURfUEFSQU1TIiwiU0VSVkVSX0xBVU5DSF9USU1FT1VUIiwiU0VSVkVSX0lOU1RBTExfUkVUUklFUyIsIlNFUlZJQ0VTX0xBVU5DSF9USU1FT1VUIiwiU0VSVkVSX1BBQ0tBR0VfSUQiLCJTRVJWRVJfVEVTVF9QQUNLQUdFX0lEIiwiSU5TVFJVTUVOVEFUSU9OX1RBUkdFVCIsImluc3RydW1lbnRhdGlvbkxvZ2dlciIsImxvZ2dlciIsImdldExvZ2dlciIsIlVJQTJQcm94eSIsIkpXUHJveHkiLCJwcm94eUNvbW1hbmQiLCJ1cmwiLCJtZXRob2QiLCJib2R5IiwiZGlkSW5zdHJ1bWVudGF0aW9uRXhpdCIsImVycm9ycyIsIkludmFsaWRDb250ZXh0RXJyb3IiLCJVaUF1dG9tYXRvcjJTZXJ2ZXIiLCJjb25zdHJ1Y3RvciIsImxvZyIsIm9wdHMiLCJyZXEiLCJ1dGlsIiwiaGFzVmFsdWUiLCJFcnJvciIsImRpc2FibGVTdXBwcmVzc0FjY2Vzc2liaWxpdHlTZXJ2aWNlIiwicHJveHlPcHRzIiwic2VydmVyIiwiaG9zdCIsInBvcnQiLCJzeXN0ZW1Qb3J0Iiwia2VlcEFsaXZlIiwicmVhZFRpbWVvdXQiLCJ0aW1lb3V0Iiwiandwcm94eSIsInByb3h5UmVxUmVzIiwiYmluZCIsImNvbW1hbmQiLCJpbnN0YWxsU2VydmVyQXBrIiwiaW5zdGFsbFRpbWVvdXQiLCJ0bXBSb290IiwidGVtcERpciIsIm9wZW5EaXIiLCJwYWNrYWdlSW5mb3NNYXBwZXIiLCJhcHBQYXRoIiwiYXBwSWQiLCJoZWxwZXJzIiwiaXNXcml0ZWFibGUiLCJpbmZvIiwiZHN0UGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiYmFzZW5hbWUiLCJmcyIsImNvcHlGaWxlIiwicGFja2FnZXNJbmZvIiwiQiIsImFsbCIsIm1hcCIsImFwa1BhdGgiLCJ0ZXN0QXBrUGF0aCIsInNob3VsZFVuaW5zdGFsbFNlcnZlclBhY2thZ2VzIiwic2hvdWxkSW5zdGFsbFNlcnZlclBhY2thZ2VzIiwiaXNBcHBJbnN0YWxsZWQiLCJhZGIiLCJjaGVja0Fwa0NlcnQiLCJzaWduQXBwIiwiYXBwU3RhdGUiLCJnZXRBcHBsaWNhdGlvbkluc3RhbGxTdGF0ZSIsImRlYnVnIiwiQVBQX0lOU1RBTExfU1RBVEUiLCJPTERFUl9WRVJTSU9OX0lOU1RBTExFRCIsIk5FV0VSX1ZFUlNJT05fSU5TVEFMTEVEIiwiaW5jbHVkZXMiLCJOT1RfSU5TVEFMTEVEIiwidW5pbnN0YWxsQXBrIiwiZXJyIiwid2FybiIsIm1lc3NhZ2UiLCJpbnN0YWxsIiwibm9JbmNyZW1lbnRhbCIsInJlcGxhY2UiLCJ0aW1lb3V0Q2FwTmFtZSIsInJpbXJhZiIsInZlcmlmeVNlcnZpY2VzQXZhaWxhYmlsaXR5IiwiaXNQbVNlcnZpY2VBdmFpbGFibGUiLCJwbU91dHB1dCIsInBtRXJyb3IiLCJzaGVsbCIsImUiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwiZXJyb3IiLCJsaW5lIiwic3BsaXQiLCJzdGFydFNlc3Npb24iLCJjYXBzIiwiY2xlYW51cEF1dG9tYXRpb25MZWZ0b3ZlcnMiLCJza2lwU2VydmVySW5zdGFsbGF0aW9uIiwic2VydmVyVmVyc2lvbiIsInVpYXV0b21hdG9yMlNlcnZlckxhdW5jaFRpbWVvdXQiLCJ0aW1lciIsInRpbWluZyIsIlRpbWVyIiwic3RhcnQiLCJyZXRyaWVzIiwibWF4UmV0cmllcyIsImRlbGF5QmV0d2VlblJldHJpZXMiLCJzdGFydEluc3RydW1lbnRhdGlvblByb2Nlc3MiLCJlcnJvckFuZFRocm93IiwiZGVsYXkiLCJnZXREdXJhdGlvbiIsImFzTWlsbGlTZWNvbmRzIiwidG9GaXhlZCIsImNhcGFiaWxpdGllcyIsImZpcnN0TWF0Y2giLCJhbHdheXNNYXRjaCIsImNtZCIsImRpc2FibGVXaW5kb3dBbmltYXRpb24iLCJwdXNoIiwiXyIsImlzQm9vbGVhbiIsImluc3RydW1lbnRhdGlvblByb2Nlc3MiLCJjcmVhdGVTdWJQcm9jZXNzIiwib24iLCJzdGRvdXQiLCJzdGRlcnIiLCJvdXRwdXQiLCJ0cmltIiwiY29kZSIsImRlbGV0ZVNlc3Npb24iLCJzdHJpY3RDbGVhbnVwIiwidmFsdWUiLCJkYXRhIiwiYWN0aXZlU2Vzc2lvbklkcyIsImlkIiwiZmlsdGVyIiwiQm9vbGVhbiIsImxlbmd0aCIsIkpTT04iLCJzdHJpbmdpZnkiLCJwbHVyYWxpemUiLCJheGlvcyIsImRlbGV0ZSIsImZvcmNlU3RvcCIsImlnbm9yZSIsImtpbGxQcm9jZXNzZXNCeU5hbWUiXSwic291cmNlUm9vdCI6Ii4uLy4uIiwic291cmNlcyI6WyJsaWIvdWlhdXRvbWF0b3IyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBKV1Byb3h5LCBlcnJvcnMgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQge1xuICBTRVJWRVJfQVBLX1BBVEggYXMgYXBrUGF0aCxcbiAgVEVTVF9BUEtfUEFUSCBhcyB0ZXN0QXBrUGF0aCxcbiAgdmVyc2lvbiBhcyBzZXJ2ZXJWZXJzaW9uXG59IGZyb20gJ2FwcGl1bS11aWF1dG9tYXRvcjItc2VydmVyJztcbmltcG9ydCB7XG4gIHV0aWwsIGxvZ2dlciwgdGVtcERpciwgZnMsIHRpbWluZ1xufSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IGhlbHBlcnMgZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuY29uc3QgUkVRRF9QQVJBTVMgPSBbJ2FkYicsICd0bXBEaXInLCAnaG9zdCcsICdzeXN0ZW1Qb3J0JywgJ2RldmljZVBvcnQnLCAnZGlzYWJsZVdpbmRvd0FuaW1hdGlvbiddO1xuY29uc3QgU0VSVkVSX0xBVU5DSF9USU1FT1VUID0gMzAwMDA7XG5jb25zdCBTRVJWRVJfSU5TVEFMTF9SRVRSSUVTID0gMjA7XG5jb25zdCBTRVJWSUNFU19MQVVOQ0hfVElNRU9VVCA9IDMwMDAwO1xuY29uc3QgU0VSVkVSX1BBQ0tBR0VfSUQgPSAnaW8uYXBwaXVtLnVpYXV0b21hdG9yMi5zZXJ2ZXInO1xuY29uc3QgU0VSVkVSX1RFU1RfUEFDS0FHRV9JRCA9IGAke1NFUlZFUl9QQUNLQUdFX0lEfS50ZXN0YDtcbmNvbnN0IElOU1RSVU1FTlRBVElPTl9UQVJHRVQgPSBgJHtTRVJWRVJfVEVTVF9QQUNLQUdFX0lEfS9hbmRyb2lkeC50ZXN0LnJ1bm5lci5BbmRyb2lkSlVuaXRSdW5uZXJgO1xuY29uc3QgaW5zdHJ1bWVudGF0aW9uTG9nZ2VyID0gbG9nZ2VyLmdldExvZ2dlcignSW5zdHJ1bWVudGF0aW9uJyk7XG5cbmNsYXNzIFVJQTJQcm94eSBleHRlbmRzIEpXUHJveHkge1xuICBhc3luYyBwcm94eUNvbW1hbmQgKHVybCwgbWV0aG9kLCBib2R5ID0gbnVsbCkge1xuICAgIGlmICh0aGlzLmRpZEluc3RydW1lbnRhdGlvbkV4aXQpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZENvbnRleHRFcnJvcihcbiAgICAgICAgYCcke21ldGhvZH0gJHt1cmx9JyBjYW5ub3QgYmUgcHJveGllZCB0byBVaUF1dG9tYXRvcjIgc2VydmVyIGJlY2F1c2UgYCArXG4gICAgICAgICd0aGUgaW5zdHJ1bWVudGF0aW9uIHByb2Nlc3MgaXMgbm90IHJ1bm5pbmcgKHByb2JhYmx5IGNyYXNoZWQpLiAnICtcbiAgICAgICAgJ0NoZWNrIHRoZSBzZXJ2ZXIgbG9nIGFuZC9vciB0aGUgbG9nY2F0IG91dHB1dCBmb3IgbW9yZSBkZXRhaWxzJyk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCBzdXBlci5wcm94eUNvbW1hbmQodXJsLCBtZXRob2QsIGJvZHkpO1xuICB9XG59XG5cbmNsYXNzIFVpQXV0b21hdG9yMlNlcnZlciB7XG4gIGNvbnN0cnVjdG9yIChsb2csIG9wdHMgPSB7fSkge1xuICAgIGZvciAobGV0IHJlcSBvZiBSRVFEX1BBUkFNUykge1xuICAgICAgaWYgKCFvcHRzIHx8ICF1dGlsLmhhc1ZhbHVlKG9wdHNbcmVxXSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPcHRpb24gJyR7cmVxfScgaXMgcmVxdWlyZWQhYCk7XG4gICAgICB9XG4gICAgICB0aGlzW3JlcV0gPSBvcHRzW3JlcV07XG4gICAgfVxuICAgIHRoaXMubG9nID0gbG9nO1xuICAgIHRoaXMuZGlzYWJsZVN1cHByZXNzQWNjZXNzaWJpbGl0eVNlcnZpY2UgPSBvcHRzLmRpc2FibGVTdXBwcmVzc0FjY2Vzc2liaWxpdHlTZXJ2aWNlO1xuICAgIGNvbnN0IHByb3h5T3B0cyA9IHtcbiAgICAgIGxvZyxcbiAgICAgIHNlcnZlcjogdGhpcy5ob3N0LFxuICAgICAgcG9ydDogdGhpcy5zeXN0ZW1Qb3J0LFxuICAgICAga2VlcEFsaXZlOiB0cnVlLFxuICAgIH07XG4gICAgaWYgKG9wdHMucmVhZFRpbWVvdXQgJiYgb3B0cy5yZWFkVGltZW91dCA+IDApIHtcbiAgICAgIHByb3h5T3B0cy50aW1lb3V0ID0gb3B0cy5yZWFkVGltZW91dDtcbiAgICB9XG4gICAgdGhpcy5qd3Byb3h5ID0gbmV3IFVJQTJQcm94eShwcm94eU9wdHMpO1xuICAgIHRoaXMucHJveHlSZXFSZXMgPSB0aGlzLmp3cHJveHkucHJveHlSZXFSZXMuYmluZCh0aGlzLmp3cHJveHkpO1xuICAgIHRoaXMucHJveHlDb21tYW5kID0gdGhpcy5qd3Byb3h5LmNvbW1hbmQuYmluZCh0aGlzLmp3cHJveHkpO1xuICAgIHRoaXMuandwcm94eS5kaWRJbnN0cnVtZW50YXRpb25FeGl0ID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogSW5zdGFsbHMgdGhlIGFwa3Mgb24gdG8gdGhlIGRldmljZSBvciBlbXVsYXRvci5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluc3RhbGxUaW1lb3V0IC0gSW5zdGFsbGF0aW9uIHRpbWVvdXRcbiAgICovXG4gIGFzeW5jIGluc3RhbGxTZXJ2ZXJBcGsgKGluc3RhbGxUaW1lb3V0ID0gU0VSVkVSX0lOU1RBTExfUkVUUklFUyAqIDEwMDApIHtcbiAgICBjb25zdCB0bXBSb290ID0gYXdhaXQgdGVtcERpci5vcGVuRGlyKCk7XG4gICAgY29uc3QgcGFja2FnZUluZm9zTWFwcGVyID0gYXN5bmMgKHthcHBQYXRoLCBhcHBJZH0pID0+IHtcbiAgICAgIGlmIChhd2FpdCBoZWxwZXJzLmlzV3JpdGVhYmxlKGFwcFBhdGgpKSB7XG4gICAgICAgIHJldHVybiB7IGFwcFBhdGgsIGFwcElkIH07XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9nLmluZm8oYFNlcnZlciBwYWNrYWdlIGF0ICcke2FwcFBhdGh9JyBpcyBub3Qgd3JpdGVhYmxlLiBgICtcbiAgICAgICAgYFdpbGwgY29weSBpdCBpbnRvIHRoZSB0ZW1wb3JhcnkgbG9jYXRpb24gYXQgJyR7dG1wUm9vdH0nIGFzIGEgd29ya2Fyb3VuZC4gYCArXG4gICAgICAgIGBDb25zaWRlciBtYWtpbmcgdGhpcyBmaWxlIHdyaXRlYWJsZSBtYW51YWxseSBpbiBvcmRlciB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiBzZXNzaW9uIHN0YXJ0dXAuYCk7XG4gICAgICBjb25zdCBkc3RQYXRoID0gcGF0aC5yZXNvbHZlKHRtcFJvb3QsIHBhdGguYmFzZW5hbWUoYXBwUGF0aCkpO1xuICAgICAgYXdhaXQgZnMuY29weUZpbGUoYXBwUGF0aCwgZHN0UGF0aCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhcHBQYXRoOiBkc3RQYXRoLFxuICAgICAgICBhcHBJZCxcbiAgICAgIH07XG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYWNrYWdlc0luZm8gPSBhd2FpdCBCLmFsbChCLm1hcChbXG4gICAgICAgIHtcbiAgICAgICAgICBhcHBQYXRoOiBhcGtQYXRoLFxuICAgICAgICAgIGFwcElkOiBTRVJWRVJfUEFDS0FHRV9JRCxcbiAgICAgICAgfSwge1xuICAgICAgICAgIGFwcFBhdGg6IHRlc3RBcGtQYXRoLFxuICAgICAgICAgIGFwcElkOiBTRVJWRVJfVEVTVF9QQUNLQUdFX0lELFxuICAgICAgICB9LFxuICAgICAgXSwgcGFja2FnZUluZm9zTWFwcGVyKSk7XG5cbiAgICAgIGxldCBzaG91bGRVbmluc3RhbGxTZXJ2ZXJQYWNrYWdlcyA9IGZhbHNlO1xuICAgICAgbGV0IHNob3VsZEluc3RhbGxTZXJ2ZXJQYWNrYWdlcyA9IGZhbHNlO1xuICAgICAgZm9yIChjb25zdCB7YXBwSWQsIGFwcFBhdGh9IG9mIHBhY2thZ2VzSW5mbykge1xuICAgICAgICBpZiAoYXBwSWQgPT09IFNFUlZFUl9URVNUX1BBQ0tBR0VfSUQpIHtcbiAgICAgICAgICBjb25zdCBpc0FwcEluc3RhbGxlZCA9IGF3YWl0IHRoaXMuYWRiLmlzQXBwSW5zdGFsbGVkKGFwcElkKTtcblxuICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIHBvaW50IGluIGdldHRpbmcgdGhlIHN0YXRlIGZvciB0ZXN0IHNlcnZlcixcbiAgICAgICAgICAvLyBzaW5jZSBpdCBkb2VzIG5vdCBjb250YWluIHZlcnNpb24gaW5mb1xuICAgICAgICAgIGlmICghYXdhaXQgdGhpcy5hZGIuY2hlY2tBcGtDZXJ0KGFwcFBhdGgsIGFwcElkKSkge1xuICAgICAgICAgICAgYXdhaXQgaGVscGVycy5zaWduQXBwKHRoaXMuYWRiLCBhcHBQYXRoKTtcbiAgICAgICAgICAgIHNob3VsZFVuaW5zdGFsbFNlcnZlclBhY2thZ2VzID0gc2hvdWxkVW5pbnN0YWxsU2VydmVyUGFja2FnZXMgfHwgaXNBcHBJbnN0YWxsZWQ7XG4gICAgICAgICAgICBzaG91bGRJbnN0YWxsU2VydmVyUGFja2FnZXMgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghaXNBcHBJbnN0YWxsZWQpIHtcbiAgICAgICAgICAgIHNob3VsZEluc3RhbGxTZXJ2ZXJQYWNrYWdlcyA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXBwU3RhdGUgPSBhd2FpdCB0aGlzLmFkYi5nZXRBcHBsaWNhdGlvbkluc3RhbGxTdGF0ZShhcHBQYXRoLCBhcHBJZCk7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGAke2FwcElkfSBpbnN0YWxsYXRpb24gc3RhdGU6ICR7YXBwU3RhdGV9YCk7XG4gICAgICAgIGlmIChhd2FpdCB0aGlzLmFkYi5jaGVja0Fwa0NlcnQoYXBwUGF0aCwgYXBwSWQpKSB7XG4gICAgICAgICAgc2hvdWxkVW5pbnN0YWxsU2VydmVyUGFja2FnZXMgPSBzaG91bGRVbmluc3RhbGxTZXJ2ZXJQYWNrYWdlcyB8fCBbXG4gICAgICAgICAgICB0aGlzLmFkYi5BUFBfSU5TVEFMTF9TVEFURS5PTERFUl9WRVJTSU9OX0lOU1RBTExFRCxcbiAgICAgICAgICAgIHRoaXMuYWRiLkFQUF9JTlNUQUxMX1NUQVRFLk5FV0VSX1ZFUlNJT05fSU5TVEFMTEVELFxuICAgICAgICAgIF0uaW5jbHVkZXMoYXBwU3RhdGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IGhlbHBlcnMuc2lnbkFwcCh0aGlzLmFkYiwgYXBwUGF0aCk7XG4gICAgICAgICAgc2hvdWxkVW5pbnN0YWxsU2VydmVyUGFja2FnZXMgPSBzaG91bGRVbmluc3RhbGxTZXJ2ZXJQYWNrYWdlcyB8fCAhW1xuICAgICAgICAgICAgdGhpcy5hZGIuQVBQX0lOU1RBTExfU1RBVEUuTk9UX0lOU1RBTExFRCxcbiAgICAgICAgICBdLmluY2x1ZGVzKGFwcFN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICBzaG91bGRJbnN0YWxsU2VydmVyUGFja2FnZXMgPSBzaG91bGRJbnN0YWxsU2VydmVyUGFja2FnZXMgfHwgc2hvdWxkVW5pbnN0YWxsU2VydmVyUGFja2FnZXMgfHwgW1xuICAgICAgICAgIHRoaXMuYWRiLkFQUF9JTlNUQUxMX1NUQVRFLk5PVF9JTlNUQUxMRUQsXG4gICAgICAgIF0uaW5jbHVkZXMoYXBwU3RhdGUpO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2cuaW5mbyhgU2VydmVyIHBhY2thZ2VzIGFyZSAke3Nob3VsZEluc3RhbGxTZXJ2ZXJQYWNrYWdlcyA/ICcnIDogJ25vdCAnfWdvaW5nIHRvIGJlIChyZSlpbnN0YWxsZWRgKTtcbiAgICAgIGlmIChzaG91bGRJbnN0YWxsU2VydmVyUGFja2FnZXMgJiYgc2hvdWxkVW5pbnN0YWxsU2VydmVyUGFja2FnZXMpIHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbygnRnVsbCBwYWNrYWdlcyByZWluc3RhbGwgaXMgZ29pbmcgdG8gYmUgcGVyZm9ybWVkJyk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IHthcHBJZCwgYXBwUGF0aH0gb2YgcGFja2FnZXNJbmZvKSB7XG4gICAgICAgIGlmIChzaG91bGRVbmluc3RhbGxTZXJ2ZXJQYWNrYWdlcykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmFkYi51bmluc3RhbGxBcGsoYXBwSWQpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhpcy5sb2cud2FybihgRXJyb3IgdW5pbnN0YWxsaW5nICcke2FwcElkfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzaG91bGRJbnN0YWxsU2VydmVyUGFja2FnZXMpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmFkYi5pbnN0YWxsKGFwcFBhdGgsIHtcbiAgICAgICAgICAgIG5vSW5jcmVtZW50YWw6IHRydWUsXG4gICAgICAgICAgICByZXBsYWNlOiB0cnVlLFxuICAgICAgICAgICAgdGltZW91dDogaW5zdGFsbFRpbWVvdXQsXG4gICAgICAgICAgICB0aW1lb3V0Q2FwTmFtZTogJ3VpYXV0b21hdG9yMlNlcnZlckluc3RhbGxUaW1lb3V0J1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGZzLnJpbXJhZih0bXBSb290KTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnZlcmlmeVNlcnZpY2VzQXZhaWxhYmlsaXR5KCk7XG4gIH1cblxuICBhc3luYyB2ZXJpZnlTZXJ2aWNlc0F2YWlsYWJpbGl0eSAoKSB7XG4gICAgdGhpcy5sb2cuZGVidWcoYFdhaXRpbmcgdXAgdG8gJHtTRVJWSUNFU19MQVVOQ0hfVElNRU9VVH1tcyBmb3Igc2VydmljZXMgdG8gYmUgYXZhaWxhYmxlYCk7XG4gICAgbGV0IGlzUG1TZXJ2aWNlQXZhaWxhYmxlID0gZmFsc2U7XG4gICAgbGV0IHBtT3V0cHV0ID0gJyc7XG4gICAgbGV0IHBtRXJyb3IgPSBudWxsO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKCFpc1BtU2VydmljZUF2YWlsYWJsZSkge1xuICAgICAgICAgIHBtRXJyb3IgPSBudWxsO1xuICAgICAgICAgIHBtT3V0cHV0ID0gJyc7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBtT3V0cHV0ID0gYXdhaXQgdGhpcy5hZGIuc2hlbGwoWydwbScsICdsaXN0JywgJ2luc3RydW1lbnRhdGlvbiddKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBwbUVycm9yID0gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHBtT3V0cHV0LmluY2x1ZGVzKCdDb3VsZCBub3QgYWNjZXNzIHRoZSBQYWNrYWdlIE1hbmFnZXInKSkge1xuICAgICAgICAgICAgcG1FcnJvciA9IG5ldyBFcnJvcihgUHJvYmxlbSBydW5uaW5nIFBhY2thZ2UgTWFuYWdlcjogJHtwbU91dHB1dH1gKTtcbiAgICAgICAgICAgIHBtT3V0cHV0ID0gJyc7IC8vIHJlbW92ZSBvdXRwdXQsIHNvIGl0IGlzIG5vdCBwcmludGVkIGJlbG93XG4gICAgICAgICAgfSBlbHNlIGlmIChwbU91dHB1dC5pbmNsdWRlcyhJTlNUUlVNRU5UQVRJT05fVEFSR0VUKSkge1xuICAgICAgICAgICAgcG1PdXRwdXQgPSAnJzsgLy8gcmVtb3ZlIG91dHB1dCwgc28gaXQgaXMgbm90IHByaW50ZWQgYmVsb3dcbiAgICAgICAgICAgIHRoaXMubG9nLmRlYnVnKGBJbnN0cnVtZW50YXRpb24gdGFyZ2V0ICcke0lOU1RSVU1FTlRBVElPTl9UQVJHRVR9JyBpcyBhdmFpbGFibGVgKTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF0b21pYy11cGRhdGVzXG4gICAgICAgICAgICBpc1BtU2VydmljZUF2YWlsYWJsZSA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmICghcG1FcnJvcikge1xuICAgICAgICAgICAgcG1FcnJvciA9IG5ldyBFcnJvcignVGhlIGluc3RydW1lbnRhdGlvbiB0YXJnZXQgaXMgbm90IGxpc3RlZCBieSBQYWNrYWdlIE1hbmFnZXInKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzUG1TZXJ2aWNlQXZhaWxhYmxlO1xuICAgICAgfSwge1xuICAgICAgICB3YWl0TXM6IFNFUlZJQ0VTX0xBVU5DSF9USU1FT1VULFxuICAgICAgICBpbnRlcnZhbE1zOiAxMDAwLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmxvZy5lcnJvcihgVW5hYmxlIHRvIGZpbmQgaW5zdHJ1bWVudGF0aW9uIHRhcmdldCAnJHtJTlNUUlVNRU5UQVRJT05fVEFSR0VUfSc6ICR7KHBtRXJyb3IgfHwge30pLm1lc3NhZ2V9YCk7XG4gICAgICBpZiAocG1PdXRwdXQpIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoJ0F2YWlsYWJsZSB0YXJnZXRzOicpO1xuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgcG1PdXRwdXQuc3BsaXQoJ1xcbicpKSB7XG4gICAgICAgICAgdGhpcy5sb2cuZGVidWcoYCAgICAke2xpbmUucmVwbGFjZSgnaW5zdHJ1bWVudGF0aW9uOicsICcnKX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHN0YXJ0U2Vzc2lvbiAoY2Fwcykge1xuICAgIGF3YWl0IHRoaXMuY2xlYW51cEF1dG9tYXRpb25MZWZ0b3ZlcnMoKTtcbiAgICBpZiAoY2Fwcy5za2lwU2VydmVySW5zdGFsbGF0aW9uKSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKGAnc2tpcFNlcnZlckluc3RhbGxhdGlvbicgaXMgc2V0LiBBdHRlbXB0aW5nIHRvIHVzZSBVSUF1dG9tYXRvcjIgc2VydmVyIGZyb20gdGhlIGRldmljZWApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKGBTdGFydGluZyBVSUF1dG9tYXRvcjIgc2VydmVyICR7c2VydmVyVmVyc2lvbn1gKTtcbiAgICAgIHRoaXMubG9nLmluZm8oYFVzaW5nIFVJQXV0b21hdG9yMiBzZXJ2ZXIgZnJvbSAnJHthcGtQYXRofScgYW5kIHRlc3QgZnJvbSAnJHt0ZXN0QXBrUGF0aH0nYCk7XG4gICAgfVxuXG4gICAgY29uc3QgdGltZW91dCA9IGNhcHMudWlhdXRvbWF0b3IyU2VydmVyTGF1bmNoVGltZW91dCB8fCBTRVJWRVJfTEFVTkNIX1RJTUVPVVQ7XG4gICAgY29uc3QgdGltZXIgPSBuZXcgdGltaW5nLlRpbWVyKCkuc3RhcnQoKTtcbiAgICBsZXQgcmV0cmllcyA9IDA7XG4gICAgY29uc3QgbWF4UmV0cmllcyA9IDI7XG4gICAgY29uc3QgZGVsYXlCZXR3ZWVuUmV0cmllcyA9IDMwMDA7XG4gICAgd2hpbGUgKHJldHJpZXMgPCBtYXhSZXRyaWVzKSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKGBXYWl0aW5nIHVwIHRvICR7dGltZW91dH1tcyBmb3IgVWlBdXRvbWF0b3IyIHRvIGJlIG9ubGluZS4uLmApO1xuICAgICAgdGhpcy5qd3Byb3h5LmRpZEluc3RydW1lbnRhdGlvbkV4aXQgPSBmYWxzZTtcbiAgICAgIGF3YWl0IHRoaXMuc3RhcnRJbnN0cnVtZW50YXRpb25Qcm9jZXNzKCk7XG4gICAgICBpZiAoIXRoaXMuandwcm94eS5kaWRJbnN0cnVtZW50YXRpb25FeGl0KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBhd2FpdCB0aGlzLmp3cHJveHkuY29tbWFuZCgnL3N0YXR1cycsICdHRVQnKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgLy8gc2hvcnQgY2lyY3VpdCB0byByZXRyeSBvciBmYWlsIGZhc3RcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuandwcm94eS5kaWRJbnN0cnVtZW50YXRpb25FeGl0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgIHdhaXRNczogdGltZW91dCxcbiAgICAgICAgICAgIGludGVydmFsTXM6IDEwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYFRoZSBpbnN0cnVtZW50YXRpb24gcHJvY2VzcyBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQgd2l0aGluICR7dGltZW91dH1tcyB0aW1lb3V0LiBgXG4gICAgICAgICAgICArICdNYWtlIHN1cmUgdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QgZG9lcyBub3QgY3Jhc2ggYW5kIGludmVzdGlnYXRlIHRoZSBsb2djYXQgb3V0cHV0LiAnXG4gICAgICAgICAgICArIGBZb3UgY291bGQgYWxzbyB0cnkgdG8gaW5jcmVhc2UgdGhlIHZhbHVlIG9mICd1aWF1dG9tYXRvcjJTZXJ2ZXJMYXVuY2hUaW1lb3V0JyBjYXBhYmlsaXR5YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5qd3Byb3h5LmRpZEluc3RydW1lbnRhdGlvbkV4aXQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJldHJpZXMrKztcbiAgICAgIGlmIChyZXRyaWVzID49IG1heFJldHJpZXMpIHtcbiAgICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnVGhlIGluc3RydW1lbnRhdGlvbiBwcm9jZXNzIGNhbm5vdCBiZSBpbml0aWFsaXplZC4gJ1xuICAgICAgICAgICsgJ01ha2Ugc3VyZSB0aGUgYXBwbGljYXRpb24gdW5kZXIgdGVzdCBkb2VzIG5vdCBjcmFzaCBhbmQgaW52ZXN0aWdhdGUgdGhlIGxvZ2NhdCBvdXRwdXQuJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZy53YXJuKGBUaGUgaW5zdHJ1bWVudGF0aW9uIHByb2Nlc3MgaGFzIGJlZW4gdW5leHBlY3RlZGx5IHRlcm1pbmF0ZWQuIGBcbiAgICAgICAgKyBgUmV0cnlpbmcgVWlBdXRvbWF0b3IyIHN0YXJ0dXAgKCMke3JldHJpZXN9IG9mICR7bWF4UmV0cmllcyAtIDF9KWApO1xuICAgICAgYXdhaXQgdGhpcy5jbGVhbnVwQXV0b21hdGlvbkxlZnRvdmVycyh0cnVlKTtcbiAgICAgIGF3YWl0IEIuZGVsYXkoZGVsYXlCZXR3ZWVuUmV0cmllcyk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2cuZGVidWcoYFRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgaW5zdHJ1bWVudGF0aW9uIHByb2Nlc3MgdG9vayBgXG4gICAgICArIGAke3RpbWVyLmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHMudG9GaXhlZCgwKX1tc2ApO1xuICAgIGF3YWl0IHRoaXMuandwcm94eS5jb21tYW5kKCcvc2Vzc2lvbicsICdQT1NUJywge1xuICAgICAgY2FwYWJpbGl0aWVzOiB7XG4gICAgICAgIGZpcnN0TWF0Y2g6IFtjYXBzXSxcbiAgICAgICAgYWx3YXlzTWF0Y2g6IHt9LFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgc3RhcnRJbnN0cnVtZW50YXRpb25Qcm9jZXNzICgpIHtcbiAgICBjb25zdCBjbWQgPSBbJ2FtJywgJ2luc3RydW1lbnQnLCAnLXcnXTtcbiAgICBpZiAodGhpcy5kaXNhYmxlV2luZG93QW5pbWF0aW9uKSB7XG4gICAgICBjbWQucHVzaCgnLS1uby13aW5kb3ctYW5pbWF0aW9uJyk7XG4gICAgfVxuICAgIGlmIChfLmlzQm9vbGVhbih0aGlzLmRpc2FibGVTdXBwcmVzc0FjY2Vzc2liaWxpdHlTZXJ2aWNlKSkge1xuICAgICAgY21kLnB1c2goJy1lJywgJ0RJU0FCTEVfU1VQUFJFU1NfQUNDRVNTSUJJTElUWV9TRVJWSUNFUycsIHRoaXMuZGlzYWJsZVN1cHByZXNzQWNjZXNzaWJpbGl0eVNlcnZpY2UpO1xuICAgIH1cbiAgICAvLyBEaXNhYmxlIEdvb2dsZSBhbmFseXRpY3MgdG8gcHJldmVudCBwb3NzaWJsZSBmYXRhbCBleGNlcHRpb25cbiAgICBjbWQucHVzaCgnLWUnLCAnZGlzYWJsZUFuYWx5dGljcycsIHRydWUpO1xuICAgIGNtZC5wdXNoKElOU1RSVU1FTlRBVElPTl9UQVJHRVQpO1xuICAgIGNvbnN0IGluc3RydW1lbnRhdGlvblByb2Nlc3MgPSB0aGlzLmFkYi5jcmVhdGVTdWJQcm9jZXNzKFsnc2hlbGwnLCAuLi5jbWRdKTtcbiAgICBpbnN0cnVtZW50YXRpb25Qcm9jZXNzLm9uKCdvdXRwdXQnLCAoc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgIGNvbnN0IG91dHB1dCA9IF8udHJpbShzdGRvdXQgfHwgc3RkZXJyKTtcbiAgICAgIGlmIChvdXRwdXQpIHtcbiAgICAgICAgaW5zdHJ1bWVudGF0aW9uTG9nZ2VyLmRlYnVnKG91dHB1dCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaW5zdHJ1bWVudGF0aW9uUHJvY2Vzcy5vbignZXhpdCcsIChjb2RlKSA9PiB7XG4gICAgICBpbnN0cnVtZW50YXRpb25Mb2dnZXIuZGVidWcoYFRoZSBwcm9jZXNzIGhhcyBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX1gKTtcbiAgICAgIHRoaXMuandwcm94eS5kaWRJbnN0cnVtZW50YXRpb25FeGl0ID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhd2FpdCBpbnN0cnVtZW50YXRpb25Qcm9jZXNzLnN0YXJ0KDApO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlU2Vzc2lvbiAoKSB7XG4gICAgdGhpcy5sb2cuZGVidWcoJ0RlbGV0aW5nIFVpQXV0b21hdG9yMiBzZXJ2ZXIgc2Vzc2lvbicpO1xuICAgIC8vIHJlbHkgb24gandwcm94eSdzIGludGVsbGlnZW5jZSB0byBrbm93IHdoYXQgd2UncmUgdGFsa2luZyBhYm91dCBhbmRcbiAgICAvLyBkZWxldGUgdGhlIGN1cnJlbnQgc2Vzc2lvblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmp3cHJveHkuY29tbWFuZCgnLycsICdERUxFVEUnKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMubG9nLndhcm4oYERpZCBub3QgZ2V0IGNvbmZpcm1hdGlvbiBVaUF1dG9tYXRvcjIgZGVsZXRlU2Vzc2lvbiB3b3JrZWQ7IGAgK1xuICAgICAgICAgIGBFcnJvciB3YXM6ICR7ZXJyfWApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNsZWFudXBBdXRvbWF0aW9uTGVmdG92ZXJzIChzdHJpY3RDbGVhbnVwID0gZmFsc2UpIHtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhgUGVyZm9ybWluZyAke3N0cmljdENsZWFudXAgPyAnc3RyaWN0JyA6ICdzaGFsbG93J30gY2xlYW51cCBvZiBhdXRvbWF0aW9uIGxlZnRvdmVyc2ApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHt2YWx1ZX0gPSAoYXdhaXQgYXhpb3Moe1xuICAgICAgICB1cmw6IGBodHRwOi8vJHt0aGlzLmhvc3R9OiR7dGhpcy5zeXN0ZW1Qb3J0fS9zZXNzaW9uc2AsXG4gICAgICAgIHRpbWVvdXQ6IDUwMCxcbiAgICAgIH0pKS5kYXRhO1xuICAgICAgY29uc3QgYWN0aXZlU2Vzc2lvbklkcyA9IHZhbHVlLm1hcCgoe2lkfSkgPT4gaWQpLmZpbHRlcihCb29sZWFuKTtcbiAgICAgIGlmIChhY3RpdmVTZXNzaW9uSWRzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgVGhlIGZvbGxvd2luZyBvYnNvbGV0ZSBzZXNzaW9ucyBhcmUgc3RpbGwgcnVubmluZzogJHtKU09OLnN0cmluZ2lmeShhY3RpdmVTZXNzaW9uSWRzKX1gKTtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoYENsZWFuaW5nIHVwICR7dXRpbC5wbHVyYWxpemUoJ29ic29sZXRlIHNlc3Npb24nLCBhY3RpdmVTZXNzaW9uSWRzLmxlbmd0aCwgdHJ1ZSl9YCk7XG4gICAgICAgIGF3YWl0IEIuYWxsKGFjdGl2ZVNlc3Npb25JZHNcbiAgICAgICAgICAubWFwKChpZCkgPT4gYXhpb3MuZGVsZXRlKGBodHRwOi8vJHt0aGlzLmhvc3R9OiR7dGhpcy5zeXN0ZW1Qb3J0fS9zZXNzaW9uLyR7aWR9YCkpXG4gICAgICAgICk7XG4gICAgICAgIC8vIExldCBhbGwgc2Vzc2lvbnMgdG8gYmUgcHJvcGVybHkgdGVybWluYXRlZCBiZWZvcmUgY29udGludWluZ1xuICAgICAgICBhd2FpdCBCLmRlbGF5KDEwMDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoJ05vIG9ic29sZXRlIHNlc3Npb25zIGhhdmUgYmVlbiBkZXRlY3RlZCcpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBObyBvYnNvbGV0ZSBzZXNzaW9ucyBoYXZlIGJlZW4gZGV0ZWN0ZWQgKCR7ZS5tZXNzYWdlfSlgKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5hZGIuZm9yY2VTdG9wKFNFUlZFUl9URVNUX1BBQ0tBR0VfSUQpO1xuICAgIH0gY2F0Y2ggKGlnbm9yZSkge31cbiAgICBpZiAoIXN0cmljdENsZWFudXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FwcGl1bS9hcHBpdW0vaXNzdWVzLzEwNzQ5XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYWRiLmtpbGxQcm9jZXNzZXNCeU5hbWUoJ3VpYXV0b21hdG9yJyk7XG4gICAgfSBjYXRjaCAoaWdub3JlKSB7fVxuICB9XG59XG5cbmV4cG9ydCB7IFVpQXV0b21hdG9yMlNlcnZlciwgSU5TVFJVTUVOVEFUSU9OX1RBUkdFVCwgU0VSVkVSX1BBQ0tBR0VfSUQsIFNFUlZFUl9URVNUX1BBQ0tBR0VfSUQgfTtcbmV4cG9ydCBkZWZhdWx0IFVpQXV0b21hdG9yMlNlcnZlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxXQUFXLEdBQUcsQ0FBQyxLQUFELEVBQVEsUUFBUixFQUFrQixNQUFsQixFQUEwQixZQUExQixFQUF3QyxZQUF4QyxFQUFzRCx3QkFBdEQsQ0FBcEI7QUFDQSxNQUFNQyxxQkFBcUIsR0FBRyxLQUE5QjtBQUNBLE1BQU1DLHNCQUFzQixHQUFHLEVBQS9CO0FBQ0EsTUFBTUMsdUJBQXVCLEdBQUcsS0FBaEM7QUFDQSxNQUFNQyxpQkFBaUIsR0FBRywrQkFBMUI7O0FBQ0EsTUFBTUMsc0JBQXNCLEdBQUksR0FBRUQsaUJBQWtCLE9BQXBEOztBQUNBLE1BQU1FLHNCQUFzQixHQUFJLEdBQUVELHNCQUF1QiwwQ0FBekQ7OztBQUNBLE1BQU1FLHFCQUFxQixHQUFHQyxnQkFBT0MsU0FBUCxDQUFpQixpQkFBakIsQ0FBOUI7O0FBRUEsTUFBTUMsU0FBTixTQUF3QkMsbUJBQXhCLENBQWdDO0VBQ1osTUFBWkMsWUFBWSxDQUFFQyxHQUFGLEVBQU9DLE1BQVAsRUFBZUMsSUFBSSxHQUFHLElBQXRCLEVBQTRCO0lBQzVDLElBQUksS0FBS0Msc0JBQVQsRUFBaUM7TUFDL0IsTUFBTSxJQUFJQyxtQkFBT0MsbUJBQVgsQ0FDSCxJQUFHSixNQUFPLElBQUdELEdBQUkscURBQWxCLEdB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
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-uiautomator2-driver",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"lockfileVersion": 1,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@appium/base-driver": {
|
|
8
|
-
"version": "8.5.
|
|
9
|
-
"resolved": "https://registry.npmjs.org/@appium/base-driver/-/base-driver-8.5.
|
|
10
|
-
"integrity": "sha512-
|
|
8
|
+
"version": "8.5.3",
|
|
9
|
+
"resolved": "https://registry.npmjs.org/@appium/base-driver/-/base-driver-8.5.3.tgz",
|
|
10
|
+
"integrity": "sha512-SGKg1p513KvmpRkG0Q93Dy9hobCvYqepKi9aX2/yxNNMgB+tShkry6MqbZ+8hUnZXoIwi9xB5eQ073A8eBYuCA==",
|
|
11
11
|
"requires": {
|
|
12
|
-
"@appium/support": "^2.
|
|
12
|
+
"@appium/support": "^2.58.0",
|
|
13
13
|
"@babel/runtime": "7.17.9",
|
|
14
14
|
"@colors/colors": "1.5.0",
|
|
15
15
|
"async-lock": "1.3.1",
|
|
16
16
|
"asyncbox": "2.9.2",
|
|
17
|
-
"axios": "0.
|
|
17
|
+
"axios": "0.27.2",
|
|
18
18
|
"bluebird": "3.7.2",
|
|
19
19
|
"body-parser": "1.20.0",
|
|
20
20
|
"es6-error": "4.1.1",
|
|
21
|
-
"express": "4.
|
|
21
|
+
"express": "4.18.1",
|
|
22
22
|
"http-status-codes": "2.2.0",
|
|
23
23
|
"lodash": "4.17.21",
|
|
24
24
|
"lru-cache": "7.8.1",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
"@appium/support": {
|
|
33
|
-
"version": "2.
|
|
34
|
-
"resolved": "https://registry.npmjs.org/@appium/support/-/support-2.
|
|
35
|
-
"integrity": "sha512-
|
|
33
|
+
"version": "2.58.0",
|
|
34
|
+
"resolved": "https://registry.npmjs.org/@appium/support/-/support-2.58.0.tgz",
|
|
35
|
+
"integrity": "sha512-h3eCFekYauNDi6/JZdy/j7CekOflugwpTJVm6Ux45W6YGWj47XU1HyX/58k1ghqZK9V3m+Jp8WgyERLi2C0cRQ==",
|
|
36
36
|
"requires": {
|
|
37
37
|
"@babel/runtime": "7.17.9",
|
|
38
38
|
"archiver": "5.3.1",
|
|
39
|
-
"axios": "0.
|
|
39
|
+
"axios": "0.27.2",
|
|
40
40
|
"base64-stream": "1.0.0",
|
|
41
41
|
"bluebird": "3.7.2",
|
|
42
42
|
"bplist-creator": "0.1.0",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"moment": "2.29.3",
|
|
53
53
|
"mv": "2.1.1",
|
|
54
54
|
"ncp": "2.0.0",
|
|
55
|
-
"npmlog": "6.0.
|
|
55
|
+
"npmlog": "6.0.2",
|
|
56
56
|
"opencv-bindings": "4.5.5",
|
|
57
57
|
"pkg-dir": "5.0.0",
|
|
58
58
|
"plist": "3.0.5",
|
|
@@ -498,9 +498,9 @@
|
|
|
498
498
|
"integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg=="
|
|
499
499
|
},
|
|
500
500
|
"appium-adb": {
|
|
501
|
-
"version": "9.2.
|
|
502
|
-
"resolved": "https://registry.npmjs.org/appium-adb/-/appium-adb-9.2.
|
|
503
|
-
"integrity": "sha512-
|
|
501
|
+
"version": "9.2.2",
|
|
502
|
+
"resolved": "https://registry.npmjs.org/appium-adb/-/appium-adb-9.2.2.tgz",
|
|
503
|
+
"integrity": "sha512-3QYgL1/ngt/6NS4FsogwARliBwmXb3/EggFmdJCK39oC742ib4LM7WUx5Tt9BFqiDq3RHoccukEO9vBef95TlA==",
|
|
504
504
|
"requires": {
|
|
505
505
|
"@appium/support": "^2.55.3",
|
|
506
506
|
"@babel/runtime": "^7.0.0",
|
|
@@ -518,12 +518,12 @@
|
|
|
518
518
|
}
|
|
519
519
|
},
|
|
520
520
|
"appium-android-driver": {
|
|
521
|
-
"version": "5.0.
|
|
522
|
-
"resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-5.0.
|
|
523
|
-
"integrity": "sha512-
|
|
521
|
+
"version": "5.0.12",
|
|
522
|
+
"resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-5.0.12.tgz",
|
|
523
|
+
"integrity": "sha512-TffS8ZazTRUPC8KiPde0USwkdmrGtDEvN1EZY4GxSN+RjDS9ofn1U84IxDJqjjRqW/ZoLykmMH7ZpvdxqZgf2g==",
|
|
524
524
|
"requires": {
|
|
525
525
|
"@appium/base-driver": "^8.5.2",
|
|
526
|
-
"@appium/support": "^2.
|
|
526
|
+
"@appium/support": "^2.58.0",
|
|
527
527
|
"@babel/runtime": "^7.0.0",
|
|
528
528
|
"appium-adb": "^9.0.0",
|
|
529
529
|
"appium-chromedriver": "^5.0.1",
|
|
@@ -546,9 +546,9 @@
|
|
|
546
546
|
}
|
|
547
547
|
},
|
|
548
548
|
"appium-chromedriver": {
|
|
549
|
-
"version": "5.0.
|
|
550
|
-
"resolved": "https://registry.npmjs.org/appium-chromedriver/-/appium-chromedriver-5.0.
|
|
551
|
-
"integrity": "sha512-
|
|
549
|
+
"version": "5.0.5",
|
|
550
|
+
"resolved": "https://registry.npmjs.org/appium-chromedriver/-/appium-chromedriver-5.0.5.tgz",
|
|
551
|
+
"integrity": "sha512-aEpeJtxehWTFV+/uMCOyjwihkYUMfLG51t5YFxKkDaaPXo/moP7Wf6gghSP4iHjNKl1DGvxZBr8oTBZZJLmEuw==",
|
|
552
552
|
"requires": {
|
|
553
553
|
"@appium/base-driver": "^8.4.0",
|
|
554
554
|
"@appium/support": "^2.55.3",
|
|
@@ -567,9 +567,9 @@
|
|
|
567
567
|
}
|
|
568
568
|
},
|
|
569
569
|
"appium-uiautomator2-server": {
|
|
570
|
-
"version": "5.
|
|
571
|
-
"resolved": "https://registry.npmjs.org/appium-uiautomator2-server/-/appium-uiautomator2-server-5.
|
|
572
|
-
"integrity": "sha512-
|
|
570
|
+
"version": "5.6.0",
|
|
571
|
+
"resolved": "https://registry.npmjs.org/appium-uiautomator2-server/-/appium-uiautomator2-server-5.6.0.tgz",
|
|
572
|
+
"integrity": "sha512-OlSDBK7EZ9oRZ1uLWsQMz7hAhcFwe+i1psCcw/g1oxFAUlmmqTFDSTsm8rzJz+aFlhl2ylFOloHG1caAdRtnsw=="
|
|
573
573
|
},
|
|
574
574
|
"aproba": {
|
|
575
575
|
"version": "2.0.0",
|
|
@@ -678,11 +678,12 @@
|
|
|
678
678
|
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
|
|
679
679
|
},
|
|
680
680
|
"axios": {
|
|
681
|
-
"version": "0.
|
|
682
|
-
"resolved": "https://registry.npmjs.org/axios/-/axios-0.
|
|
683
|
-
"integrity": "sha512-
|
|
681
|
+
"version": "0.27.2",
|
|
682
|
+
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
|
|
683
|
+
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
|
|
684
684
|
"requires": {
|
|
685
|
-
"follow-redirects": "^1.14.
|
|
685
|
+
"follow-redirects": "^1.14.9",
|
|
686
|
+
"form-data": "^4.0.0"
|
|
686
687
|
}
|
|
687
688
|
},
|
|
688
689
|
"balanced-match": {
|
|
@@ -913,9 +914,9 @@
|
|
|
913
914
|
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
|
|
914
915
|
},
|
|
915
916
|
"cookie": {
|
|
916
|
-
"version": "0.
|
|
917
|
-
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.
|
|
918
|
-
"integrity": "sha512-
|
|
917
|
+
"version": "0.5.0",
|
|
918
|
+
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
|
|
919
|
+
"integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
|
|
919
920
|
},
|
|
920
921
|
"cookie-signature": {
|
|
921
922
|
"version": "1.0.6",
|
|
@@ -1049,59 +1050,43 @@
|
|
|
1049
1050
|
"integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI="
|
|
1050
1051
|
},
|
|
1051
1052
|
"express": {
|
|
1052
|
-
"version": "4.
|
|
1053
|
-
"resolved": "https://registry.npmjs.org/express/-/express-4.
|
|
1054
|
-
"integrity": "sha512-
|
|
1053
|
+
"version": "4.18.1",
|
|
1054
|
+
"resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
|
|
1055
|
+
"integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
|
|
1055
1056
|
"requires": {
|
|
1056
1057
|
"accepts": "~1.3.8",
|
|
1057
1058
|
"array-flatten": "1.1.1",
|
|
1058
|
-
"body-parser": "1.
|
|
1059
|
+
"body-parser": "1.20.0",
|
|
1059
1060
|
"content-disposition": "0.5.4",
|
|
1060
1061
|
"content-type": "~1.0.4",
|
|
1061
|
-
"cookie": "0.
|
|
1062
|
+
"cookie": "0.5.0",
|
|
1062
1063
|
"cookie-signature": "1.0.6",
|
|
1063
1064
|
"debug": "2.6.9",
|
|
1064
|
-
"depd": "
|
|
1065
|
+
"depd": "2.0.0",
|
|
1065
1066
|
"encodeurl": "~1.0.2",
|
|
1066
1067
|
"escape-html": "~1.0.3",
|
|
1067
1068
|
"etag": "~1.8.1",
|
|
1068
|
-
"finalhandler": "
|
|
1069
|
+
"finalhandler": "1.2.0",
|
|
1069
1070
|
"fresh": "0.5.2",
|
|
1071
|
+
"http-errors": "2.0.0",
|
|
1070
1072
|
"merge-descriptors": "1.0.1",
|
|
1071
1073
|
"methods": "~1.1.2",
|
|
1072
|
-
"on-finished": "
|
|
1074
|
+
"on-finished": "2.4.1",
|
|
1073
1075
|
"parseurl": "~1.3.3",
|
|
1074
1076
|
"path-to-regexp": "0.1.7",
|
|
1075
1077
|
"proxy-addr": "~2.0.7",
|
|
1076
|
-
"qs": "6.
|
|
1078
|
+
"qs": "6.10.3",
|
|
1077
1079
|
"range-parser": "~1.2.1",
|
|
1078
1080
|
"safe-buffer": "5.2.1",
|
|
1079
|
-
"send": "0.
|
|
1080
|
-
"serve-static": "1.
|
|
1081
|
+
"send": "0.18.0",
|
|
1082
|
+
"serve-static": "1.15.0",
|
|
1081
1083
|
"setprototypeof": "1.2.0",
|
|
1082
|
-
"statuses": "
|
|
1084
|
+
"statuses": "2.0.1",
|
|
1083
1085
|
"type-is": "~1.6.18",
|
|
1084
1086
|
"utils-merge": "1.0.1",
|
|
1085
1087
|
"vary": "~1.1.2"
|
|
1086
1088
|
},
|
|
1087
1089
|
"dependencies": {
|
|
1088
|
-
"body-parser": {
|
|
1089
|
-
"version": "1.19.2",
|
|
1090
|
-
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
|
|
1091
|
-
"integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
|
|
1092
|
-
"requires": {
|
|
1093
|
-
"bytes": "3.1.2",
|
|
1094
|
-
"content-type": "~1.0.4",
|
|
1095
|
-
"debug": "2.6.9",
|
|
1096
|
-
"depd": "~1.1.2",
|
|
1097
|
-
"http-errors": "1.8.1",
|
|
1098
|
-
"iconv-lite": "0.4.24",
|
|
1099
|
-
"on-finished": "~2.3.0",
|
|
1100
|
-
"qs": "6.9.7",
|
|
1101
|
-
"raw-body": "2.4.3",
|
|
1102
|
-
"type-is": "~1.6.18"
|
|
1103
|
-
}
|
|
1104
|
-
},
|
|
1105
1090
|
"debug": {
|
|
1106
1091
|
"version": "2.6.9",
|
|
1107
1092
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
|
@@ -1110,61 +1095,15 @@
|
|
|
1110
1095
|
"ms": "2.0.0"
|
|
1111
1096
|
}
|
|
1112
1097
|
},
|
|
1113
|
-
"depd": {
|
|
1114
|
-
"version": "1.1.2",
|
|
1115
|
-
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
|
1116
|
-
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
|
|
1117
|
-
},
|
|
1118
|
-
"http-errors": {
|
|
1119
|
-
"version": "1.8.1",
|
|
1120
|
-
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
|
|
1121
|
-
"integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
|
|
1122
|
-
"requires": {
|
|
1123
|
-
"depd": "~1.1.2",
|
|
1124
|
-
"inherits": "2.0.4",
|
|
1125
|
-
"setprototypeof": "1.2.0",
|
|
1126
|
-
"statuses": ">= 1.5.0 < 2",
|
|
1127
|
-
"toidentifier": "1.0.1"
|
|
1128
|
-
}
|
|
1129
|
-
},
|
|
1130
1098
|
"ms": {
|
|
1131
1099
|
"version": "2.0.0",
|
|
1132
1100
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
|
1133
1101
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
|
1134
1102
|
},
|
|
1135
|
-
"on-finished": {
|
|
1136
|
-
"version": "2.3.0",
|
|
1137
|
-
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
|
1138
|
-
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
|
|
1139
|
-
"requires": {
|
|
1140
|
-
"ee-first": "1.1.1"
|
|
1141
|
-
}
|
|
1142
|
-
},
|
|
1143
|
-
"qs": {
|
|
1144
|
-
"version": "6.9.7",
|
|
1145
|
-
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
|
|
1146
|
-
"integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw=="
|
|
1147
|
-
},
|
|
1148
|
-
"raw-body": {
|
|
1149
|
-
"version": "2.4.3",
|
|
1150
|
-
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
|
|
1151
|
-
"integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
|
|
1152
|
-
"requires": {
|
|
1153
|
-
"bytes": "3.1.2",
|
|
1154
|
-
"http-errors": "1.8.1",
|
|
1155
|
-
"iconv-lite": "0.4.24",
|
|
1156
|
-
"unpipe": "1.0.0"
|
|
1157
|
-
}
|
|
1158
|
-
},
|
|
1159
1103
|
"safe-buffer": {
|
|
1160
1104
|
"version": "5.2.1",
|
|
1161
1105
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
|
1162
1106
|
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
|
|
1163
|
-
},
|
|
1164
|
-
"statuses": {
|
|
1165
|
-
"version": "1.5.0",
|
|
1166
|
-
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
|
|
1167
|
-
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
|
|
1168
1107
|
}
|
|
1169
1108
|
}
|
|
1170
1109
|
},
|
|
@@ -1190,16 +1129,16 @@
|
|
|
1190
1129
|
"integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw=="
|
|
1191
1130
|
},
|
|
1192
1131
|
"finalhandler": {
|
|
1193
|
-
"version": "1.
|
|
1194
|
-
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.
|
|
1195
|
-
"integrity": "sha512-
|
|
1132
|
+
"version": "1.2.0",
|
|
1133
|
+
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
|
|
1134
|
+
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
|
|
1196
1135
|
"requires": {
|
|
1197
1136
|
"debug": "2.6.9",
|
|
1198
1137
|
"encodeurl": "~1.0.2",
|
|
1199
1138
|
"escape-html": "~1.0.3",
|
|
1200
|
-
"on-finished": "
|
|
1139
|
+
"on-finished": "2.4.1",
|
|
1201
1140
|
"parseurl": "~1.3.3",
|
|
1202
|
-
"statuses": "
|
|
1141
|
+
"statuses": "2.0.1",
|
|
1203
1142
|
"unpipe": "~1.0.0"
|
|
1204
1143
|
},
|
|
1205
1144
|
"dependencies": {
|
|
@@ -1215,19 +1154,6 @@
|
|
|
1215
1154
|
"version": "2.0.0",
|
|
1216
1155
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
|
1217
1156
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
|
1218
|
-
},
|
|
1219
|
-
"on-finished": {
|
|
1220
|
-
"version": "2.3.0",
|
|
1221
|
-
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
|
1222
|
-
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
|
|
1223
|
-
"requires": {
|
|
1224
|
-
"ee-first": "1.1.1"
|
|
1225
|
-
}
|
|
1226
|
-
},
|
|
1227
|
-
"statuses": {
|
|
1228
|
-
"version": "1.5.0",
|
|
1229
|
-
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
|
|
1230
|
-
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
|
|
1231
1157
|
}
|
|
1232
1158
|
}
|
|
1233
1159
|
},
|
|
@@ -1241,9 +1167,9 @@
|
|
|
1241
1167
|
}
|
|
1242
1168
|
},
|
|
1243
1169
|
"follow-redirects": {
|
|
1244
|
-
"version": "1.
|
|
1245
|
-
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.
|
|
1246
|
-
"integrity": "sha512-
|
|
1170
|
+
"version": "1.15.0",
|
|
1171
|
+
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.0.tgz",
|
|
1172
|
+
"integrity": "sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ=="
|
|
1247
1173
|
},
|
|
1248
1174
|
"form-data": {
|
|
1249
1175
|
"version": "4.0.0",
|
|
@@ -1481,9 +1407,9 @@
|
|
|
1481
1407
|
"integrity": "sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw=="
|
|
1482
1408
|
},
|
|
1483
1409
|
"io.appium.settings": {
|
|
1484
|
-
"version": "4.0.
|
|
1485
|
-
"resolved": "https://registry.npmjs.org/io.appium.settings/-/io.appium.settings-4.0.
|
|
1486
|
-
"integrity": "sha512-
|
|
1410
|
+
"version": "4.0.9",
|
|
1411
|
+
"resolved": "https://registry.npmjs.org/io.appium.settings/-/io.appium.settings-4.0.9.tgz",
|
|
1412
|
+
"integrity": "sha512-i3yAzN7/u1UYUig34HokPwm5p8Xfu9o7WT+KQpiEkrosfZNqVOXSCvzuyKzBRsiu//gxbY0T8Z1NZ7QdkRoIbw=="
|
|
1487
1413
|
},
|
|
1488
1414
|
"ipaddr.js": {
|
|
1489
1415
|
"version": "1.9.1",
|
|
@@ -1886,13 +1812,13 @@
|
|
|
1886
1812
|
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
|
|
1887
1813
|
},
|
|
1888
1814
|
"npmlog": {
|
|
1889
|
-
"version": "6.0.
|
|
1890
|
-
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.
|
|
1891
|
-
"integrity": "sha512
|
|
1815
|
+
"version": "6.0.2",
|
|
1816
|
+
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
|
|
1817
|
+
"integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
|
|
1892
1818
|
"requires": {
|
|
1893
1819
|
"are-we-there-yet": "^3.0.0",
|
|
1894
1820
|
"console-control-strings": "^1.1.0",
|
|
1895
|
-
"gauge": "^4.0.
|
|
1821
|
+
"gauge": "^4.0.3",
|
|
1896
1822
|
"set-blocking": "^2.0.0"
|
|
1897
1823
|
}
|
|
1898
1824
|
},
|
|
@@ -2273,23 +2199,23 @@
|
|
|
2273
2199
|
}
|
|
2274
2200
|
},
|
|
2275
2201
|
"send": {
|
|
2276
|
-
"version": "0.
|
|
2277
|
-
"resolved": "https://registry.npmjs.org/send/-/send-0.
|
|
2278
|
-
"integrity": "sha512-
|
|
2202
|
+
"version": "0.18.0",
|
|
2203
|
+
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
|
|
2204
|
+
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
|
|
2279
2205
|
"requires": {
|
|
2280
2206
|
"debug": "2.6.9",
|
|
2281
|
-
"depd": "
|
|
2282
|
-
"destroy": "
|
|
2207
|
+
"depd": "2.0.0",
|
|
2208
|
+
"destroy": "1.2.0",
|
|
2283
2209
|
"encodeurl": "~1.0.2",
|
|
2284
2210
|
"escape-html": "~1.0.3",
|
|
2285
2211
|
"etag": "~1.8.1",
|
|
2286
2212
|
"fresh": "0.5.2",
|
|
2287
|
-
"http-errors": "
|
|
2213
|
+
"http-errors": "2.0.0",
|
|
2288
2214
|
"mime": "1.6.0",
|
|
2289
2215
|
"ms": "2.1.3",
|
|
2290
|
-
"on-finished": "
|
|
2216
|
+
"on-finished": "2.4.1",
|
|
2291
2217
|
"range-parser": "~1.2.1",
|
|
2292
|
-
"statuses": "
|
|
2218
|
+
"statuses": "2.0.1"
|
|
2293
2219
|
},
|
|
2294
2220
|
"dependencies": {
|
|
2295
2221
|
"debug": {
|
|
@@ -2306,41 +2232,6 @@
|
|
|
2306
2232
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
|
2307
2233
|
}
|
|
2308
2234
|
}
|
|
2309
|
-
},
|
|
2310
|
-
"depd": {
|
|
2311
|
-
"version": "1.1.2",
|
|
2312
|
-
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
|
2313
|
-
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
|
|
2314
|
-
},
|
|
2315
|
-
"destroy": {
|
|
2316
|
-
"version": "1.0.4",
|
|
2317
|
-
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
|
|
2318
|
-
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
|
2319
|
-
},
|
|
2320
|
-
"http-errors": {
|
|
2321
|
-
"version": "1.8.1",
|
|
2322
|
-
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
|
|
2323
|
-
"integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
|
|
2324
|
-
"requires": {
|
|
2325
|
-
"depd": "~1.1.2",
|
|
2326
|
-
"inherits": "2.0.4",
|
|
2327
|
-
"setprototypeof": "1.2.0",
|
|
2328
|
-
"statuses": ">= 1.5.0 < 2",
|
|
2329
|
-
"toidentifier": "1.0.1"
|
|
2330
|
-
}
|
|
2331
|
-
},
|
|
2332
|
-
"on-finished": {
|
|
2333
|
-
"version": "2.3.0",
|
|
2334
|
-
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
|
2335
|
-
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
|
|
2336
|
-
"requires": {
|
|
2337
|
-
"ee-first": "1.1.1"
|
|
2338
|
-
}
|
|
2339
|
-
},
|
|
2340
|
-
"statuses": {
|
|
2341
|
-
"version": "1.5.0",
|
|
2342
|
-
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
|
|
2343
|
-
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
|
|
2344
2235
|
}
|
|
2345
2236
|
}
|
|
2346
2237
|
},
|
|
@@ -2369,14 +2260,14 @@
|
|
|
2369
2260
|
}
|
|
2370
2261
|
},
|
|
2371
2262
|
"serve-static": {
|
|
2372
|
-
"version": "1.
|
|
2373
|
-
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.
|
|
2374
|
-
"integrity": "sha512
|
|
2263
|
+
"version": "1.15.0",
|
|
2264
|
+
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
|
|
2265
|
+
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
|
|
2375
2266
|
"requires": {
|
|
2376
2267
|
"encodeurl": "~1.0.2",
|
|
2377
2268
|
"escape-html": "~1.0.3",
|
|
2378
2269
|
"parseurl": "~1.3.3",
|
|
2379
|
-
"send": "0.
|
|
2270
|
+
"send": "0.18.0"
|
|
2380
2271
|
}
|
|
2381
2272
|
},
|
|
2382
2273
|
"set-blocking": {
|
|
@@ -2686,9 +2577,9 @@
|
|
|
2686
2577
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
|
2687
2578
|
},
|
|
2688
2579
|
"ws": {
|
|
2689
|
-
"version": "8.
|
|
2690
|
-
"resolved": "https://registry.npmjs.org/ws/-/ws-8.
|
|
2691
|
-
"integrity": "sha512-
|
|
2580
|
+
"version": "8.6.0",
|
|
2581
|
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz",
|
|
2582
|
+
"integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw=="
|
|
2692
2583
|
},
|
|
2693
2584
|
"xhr": {
|
|
2694
2585
|
"version": "2.6.0",
|