appium-remote-debugger 8.13.2 → 9.0.0

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/build/index.js CHANGED
@@ -5,17 +5,16 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.createRemoteDebugger = createRemoteDebugger;
9
- Object.defineProperty(exports, "RemoteDebugger", {
8
+ Object.defineProperty(exports, "REMOTE_DEBUGGER_PORT", {
10
9
  enumerable: true,
11
10
  get: function () {
12
- return _remoteDebugger.RemoteDebugger;
11
+ return _remoteDebugger.REMOTE_DEBUGGER_PORT;
13
12
  }
14
13
  });
15
- Object.defineProperty(exports, "REMOTE_DEBUGGER_PORT", {
14
+ Object.defineProperty(exports, "RemoteDebugger", {
16
15
  enumerable: true,
17
16
  get: function () {
18
- return _remoteDebugger.REMOTE_DEBUGGER_PORT;
17
+ return _remoteDebugger.RemoteDebugger;
19
18
  }
20
19
  });
21
20
  Object.defineProperty(exports, "RemoteDebuggerRealDevice", {
@@ -24,6 +23,7 @@ Object.defineProperty(exports, "RemoteDebuggerRealDevice", {
24
23
  return _remoteDebuggerRealDevice.default;
25
24
  }
26
25
  });
26
+ exports.createRemoteDebugger = createRemoteDebugger;
27
27
 
28
28
  require("source-map-support/register");
29
29
 
@@ -5,13 +5,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.default = void 0;
8
9
  exports.getAtom = getAtom;
9
10
  exports.getScriptForAtom = getScriptForAtom;
10
- exports.default = void 0;
11
11
 
12
12
  require("source-map-support/register");
13
13
 
14
- var _appiumSupport = require("appium-support");
14
+ var _support = require("@appium/support");
15
15
 
16
16
  var _path = _interopRequireDefault(require("path"));
17
17
 
@@ -32,7 +32,7 @@ async function getAtom(atomName) {
32
32
  const atomFileName = getAtomFileName(atomName);
33
33
 
34
34
  try {
35
- atomsCache[atomName] = await _appiumSupport.fs.readFile(atomFileName);
35
+ atomsCache[atomName] = await _support.fs.readFile(atomFileName);
36
36
  } catch (e) {
37
37
  throw new Error(`Unable to load Atom '${atomName}' from file '${atomFileName}'`);
38
38
  }
@@ -79,4 +79,4 @@ var _default = getAtom;
79
79
  exports.default = _default;require('source-map-support').install();
80
80
 
81
81
 
82
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9hdG9tcy5qcyJdLCJuYW1lcyI6WyJhdG9tc0NhY2hlIiwiaW5CdWlsZERpciIsIl9fZmlsZW5hbWUiLCJpbmNsdWRlcyIsImdldEF0b21GaWxlTmFtZSIsImF0b21OYW1lIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJnZXRBdG9tIiwiXyIsImhhcyIsImF0b21GaWxlTmFtZSIsImZzIiwicmVhZEZpbGUiLCJlIiwiRXJyb3IiLCJ3cmFwU2NyaXB0Rm9yRnJhbWUiLCJzY3JpcHQiLCJmcmFtZSIsImxvZyIsImRlYnVnIiwiZWxGcm9tQ2FjaGUiLCJ0b1N0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJnZXRTY3JpcHRGb3JBdG9tIiwiYXRvbSIsImFyZ3MiLCJmcmFtZXMiLCJhc3luY0NhbGxCYWNrIiwiYXRvbVNyYyIsImxlbmd0aCIsIm1hcCIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxVQUFVLEdBQUcsRUFBbkI7O0FBRUEsTUFBTUMsVUFBVSxHQUFHQyxVQUFVLENBQUNDLFFBQVgsQ0FBb0IsaUJBQXBCLENBQW5COztBQUVBLFNBQVNDLGVBQVQsQ0FBMEJDLFFBQTFCLEVBQW9DO0FBQ2xDLFNBQU9KLFVBQVUsR0FDYkssY0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLElBQTlCLEVBQW9DLE9BQXBDLEVBQThDLEdBQUVILFFBQVMsS0FBekQsQ0FEYSxHQUViQyxjQUFLQyxPQUFMLENBQWFDLFNBQWIsRUFBd0IsSUFBeEIsRUFBOEIsT0FBOUIsRUFBd0MsR0FBRUgsUUFBUyxLQUFuRCxDQUZKO0FBR0Q7O0FBRUQsZUFBZUksT0FBZixDQUF3QkosUUFBeEIsRUFBa0M7QUFFaEMsTUFBSSxDQUFDSyxnQkFBRUMsR0FBRixDQUFNWCxVQUFOLEVBQWtCSyxRQUFsQixDQUFMLEVBQWtDO0FBQ2hDLFVBQU1PLFlBQVksR0FBR1IsZUFBZSxDQUFDQyxRQUFELENBQXBDOztBQUNBLFFBQUk7QUFDRkwsTUFBQUEsVUFBVSxDQUFDSyxRQUFELENBQVYsR0FBdUIsTUFBTVEsa0JBQUdDLFFBQUgsQ0FBWUYsWUFBWixDQUE3QjtBQUNELEtBRkQsQ0FFRSxPQUFPRyxDQUFQLEVBQVU7QUFDVixZQUFNLElBQUlDLEtBQUosQ0FBVyx3QkFBdUJYLFFBQVMsZ0JBQWVPLFlBQWEsR0FBdkUsQ0FBTjtBQUNEO0FBQ0Y7O0FBRUQsU0FBT1osVUFBVSxDQUFDSyxRQUFELENBQWpCO0FBQ0Q7O0FBRUQsZUFBZVksa0JBQWYsQ0FBbUNDLE1BQW5DLEVBQTJDQyxLQUEzQyxFQUFrRDtBQUNoREMsa0JBQUlDLEtBQUosQ0FBVyw4QkFBNkJGLEtBQU0sR0FBOUM7O0FBQ0EsUUFBTUcsV0FBVyxHQUFHLE1BQU1iLE9BQU8sQ0FBQyx3QkFBRCxDQUFqQztBQUNBLFNBQVEsdURBQUQsR0FDQyxXQUFVUyxNQUFPLFVBQVNJLFdBQVcsQ0FBQ0MsUUFBWixDQUFxQixNQUFyQixDQUE2QixLQUFJQyxJQUFJLENBQUNDLFNBQUwsQ0FBZU4sS0FBZixDQUFzQixJQUR6RjtBQUVEOztBQUVELGVBQWVPLGdCQUFmLENBQWlDQyxJQUFqQyxFQUF1Q0MsSUFBdkMsRUFBNkNDLE1BQU0sR0FBRyxFQUF0RCxFQUEwREMsYUFBYSxHQUFHLElBQTFFLEVBQWdGO0FBQzlFLFFBQU1DLE9BQU8sR0FBRyxNQUFNdEIsT0FBTyxDQUFDa0IsSUFBRCxDQUE3QjtBQUNBLE1BQUlULE1BQUo7O0FBQ0EsTUFBSVcsTUFBTSxDQUFDRyxNQUFQLEdBQWdCLENBQXBCLEVBQXVCO0FBQ3JCZCxJQUFBQSxNQUFNLEdBQUdhLE9BQVQ7O0FBQ0EsU0FBSyxNQUFNWixLQUFYLElBQW9CVSxNQUFwQixFQUE0QjtBQUMxQlgsTUFBQUEsTUFBTSxHQUFHLE1BQU1ELGtCQUFrQixDQUFDQyxNQUFELEVBQVNDLEtBQVQsQ0FBakM7QUFDRDtBQUNGLEdBTEQsTUFLTztBQUNMQyxvQkFBSUMsS0FBSixDQUFXLGNBQWFNLElBQUssMkJBQTdCOztBQUNBVCxJQUFBQSxNQUFNLEdBQUksSUFBR2EsT0FBUSxHQUFyQjtBQUNEOztBQUdESCxFQUFBQSxJQUFJLEdBQUdBLElBQUksQ0FBQ0ssR0FBTCxDQUFTVCxJQUFJLENBQUNDLFNBQWQsQ0FBUDs7QUFDQSxNQUFJSyxhQUFKLEVBQW1CO0FBQ2pCWixJQUFBQSxNQUFNLElBQUssSUFBR1UsSUFBSSxDQUFDTSxJQUFMLENBQVUsR0FBVixDQUFlLEtBQUlKLGFBQWMsU0FBL0M7QUFDRCxHQUZELE1BRU87QUFDTFosSUFBQUEsTUFBTSxJQUFLLElBQUdVLElBQUksQ0FBQ00sSUFBTCxDQUFVLEdBQVYsQ0FBZSxHQUE3QjtBQUNEOztBQUVELFNBQU9oQixNQUFQO0FBQ0Q7O2VBR2NULE8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcyB9IGZyb20gJ2FwcGl1bS1zdXBwb3J0JztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG5cbmNvbnN0IGF0b21zQ2FjaGUgPSB7fTtcblxuY29uc3QgaW5CdWlsZERpciA9IF9fZmlsZW5hbWUuaW5jbHVkZXMoJ2J1aWxkL2xpYi9hdG9tcycpO1xuXG5mdW5jdGlvbiBnZXRBdG9tRmlsZU5hbWUgKGF0b21OYW1lKSB7XG4gIHJldHVybiBpbkJ1aWxkRGlyXG4gICAgPyBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnYXRvbXMnLCBgJHthdG9tTmFtZX0uanNgKVxuICAgIDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ2F0b21zJywgYCR7YXRvbU5hbWV9LmpzYCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEF0b20gKGF0b21OYW1lKSB7XG4gIC8vIGNoZWNrIGlmIHdlIGhhdmUgYWxyZWFkeSBsb2FkZWQgYW4gY2FjaGVkIHRoaXMgYXRvbVxuICBpZiAoIV8uaGFzKGF0b21zQ2FjaGUsIGF0b21OYW1lKSkge1xuICAgIGNvbnN0IGF0b21GaWxlTmFtZSA9IGdldEF0b21GaWxlTmFtZShhdG9tTmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF0b21zQ2FjaGVbYXRvbU5hbWVdID0gYXdhaXQgZnMucmVhZEZpbGUoYXRvbUZpbGVOYW1lKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBsb2FkIEF0b20gJyR7YXRvbU5hbWV9JyBmcm9tIGZpbGUgJyR7YXRvbUZpbGVOYW1lfSdgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXRvbXNDYWNoZVthdG9tTmFtZV07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyYXBTY3JpcHRGb3JGcmFtZSAoc2NyaXB0LCBmcmFtZSkge1xuICBsb2cuZGVidWcoYFdyYXBwaW5nIHNjcmlwdCBmb3IgZnJhbWUgJyR7ZnJhbWV9J2ApO1xuICBjb25zdCBlbEZyb21DYWNoZSA9IGF3YWl0IGdldEF0b20oJ2dldF9lbGVtZW50X2Zyb21fY2FjaGUnKTtcbiAgcmV0dXJuIGAoZnVuY3Rpb24gKHdpbmRvdykgeyB2YXIgZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQ7IGAgK1xuICAgICAgICAgYHJldHVybiAoJHtzY3JpcHR9KTsgfSkoKCR7ZWxGcm9tQ2FjaGUudG9TdHJpbmcoJ3V0ZjgnKX0pKCR7SlNPTi5zdHJpbmdpZnkoZnJhbWUpfSkpYDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0U2NyaXB0Rm9yQXRvbSAoYXRvbSwgYXJncywgZnJhbWVzID0gW10sIGFzeW5jQ2FsbEJhY2sgPSBudWxsKSB7XG4gIGNvbnN0IGF0b21TcmMgPSBhd2FpdCBnZXRBdG9tKGF0b20pO1xuICBsZXQgc2NyaXB0O1xuICBpZiAoZnJhbWVzLmxlbmd0aCA+IDApIHtcbiAgICBzY3JpcHQgPSBhdG9tU3JjO1xuICAgIGZvciAoY29uc3QgZnJhbWUgb2YgZnJhbWVzKSB7XG4gICAgICBzY3JpcHQgPSBhd2FpdCB3cmFwU2NyaXB0Rm9yRnJhbWUoc2NyaXB0LCBmcmFtZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxvZy5kZWJ1ZyhgRXhlY3V0aW5nICcke2F0b219JyBhdG9tIGluIGRlZmF1bHQgY29udGV4dGApO1xuICAgIHNjcmlwdCA9IGAoJHthdG9tU3JjfSlgO1xuICB9XG5cbiAgLy8gYWRkIHRoZSBhcmd1bWVudHMsIGFzIHN0cmluZ3NcbiAgYXJncyA9IGFyZ3MubWFwKEpTT04uc3RyaW5naWZ5KTtcbiAgaWYgKGFzeW5jQ2FsbEJhY2spIHtcbiAgICBzY3JpcHQgKz0gYCgke2FyZ3Muam9pbignLCcpfSwgJHthc3luY0NhbGxCYWNrfSwgdHJ1ZSlgO1xuICB9IGVsc2Uge1xuICAgIHNjcmlwdCArPSBgKCR7YXJncy5qb2luKCcsJyl9KWA7XG4gIH1cblxuICByZXR1cm4gc2NyaXB0O1xufVxuXG5leHBvcnQgeyBnZXRBdG9tLCBnZXRTY3JpcHRGb3JBdG9tIH07XG5leHBvcnQgZGVmYXVsdCBnZXRBdG9tO1xuIl0sImZpbGUiOiJsaWIvYXRvbXMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
82
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9hdG9tcy5qcyJdLCJuYW1lcyI6WyJhdG9tc0NhY2hlIiwiaW5CdWlsZERpciIsIl9fZmlsZW5hbWUiLCJpbmNsdWRlcyIsImdldEF0b21GaWxlTmFtZSIsImF0b21OYW1lIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJnZXRBdG9tIiwiXyIsImhhcyIsImF0b21GaWxlTmFtZSIsImZzIiwicmVhZEZpbGUiLCJlIiwiRXJyb3IiLCJ3cmFwU2NyaXB0Rm9yRnJhbWUiLCJzY3JpcHQiLCJmcmFtZSIsImxvZyIsImRlYnVnIiwiZWxGcm9tQ2FjaGUiLCJ0b1N0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJnZXRTY3JpcHRGb3JBdG9tIiwiYXRvbSIsImFyZ3MiLCJmcmFtZXMiLCJhc3luY0NhbGxCYWNrIiwiYXRvbVNyYyIsImxlbmd0aCIsIm1hcCIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxVQUFVLEdBQUcsRUFBbkI7O0FBRUEsTUFBTUMsVUFBVSxHQUFHQyxVQUFVLENBQUNDLFFBQVgsQ0FBb0IsaUJBQXBCLENBQW5COztBQUVBLFNBQVNDLGVBQVQsQ0FBMEJDLFFBQTFCLEVBQW9DO0FBQ2xDLFNBQU9KLFVBQVUsR0FDYkssY0FBS0MsT0FBTCxDQUFhQyxTQUFiLEVBQXdCLElBQXhCLEVBQThCLElBQTlCLEVBQW9DLE9BQXBDLEVBQThDLEdBQUVILFFBQVMsS0FBekQsQ0FEYSxHQUViQyxjQUFLQyxPQUFMLENBQWFDLFNBQWIsRUFBd0IsSUFBeEIsRUFBOEIsT0FBOUIsRUFBd0MsR0FBRUgsUUFBUyxLQUFuRCxDQUZKO0FBR0Q7O0FBRUQsZUFBZUksT0FBZixDQUF3QkosUUFBeEIsRUFBa0M7QUFFaEMsTUFBSSxDQUFDSyxnQkFBRUMsR0FBRixDQUFNWCxVQUFOLEVBQWtCSyxRQUFsQixDQUFMLEVBQWtDO0FBQ2hDLFVBQU1PLFlBQVksR0FBR1IsZUFBZSxDQUFDQyxRQUFELENBQXBDOztBQUNBLFFBQUk7QUFDRkwsTUFBQUEsVUFBVSxDQUFDSyxRQUFELENBQVYsR0FBdUIsTUFBTVEsWUFBR0MsUUFBSCxDQUFZRixZQUFaLENBQTdCO0FBQ0QsS0FGRCxDQUVFLE9BQU9HLENBQVAsRUFBVTtBQUNWLFlBQU0sSUFBSUMsS0FBSixDQUFXLHdCQUF1QlgsUUFBUyxnQkFBZU8sWUFBYSxHQUF2RSxDQUFOO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPWixVQUFVLENBQUNLLFFBQUQsQ0FBakI7QUFDRDs7QUFFRCxlQUFlWSxrQkFBZixDQUFtQ0MsTUFBbkMsRUFBMkNDLEtBQTNDLEVBQWtEO0FBQ2hEQyxrQkFBSUMsS0FBSixDQUFXLDhCQUE2QkYsS0FBTSxHQUE5Qzs7QUFDQSxRQUFNRyxXQUFXLEdBQUcsTUFBTWIsT0FBTyxDQUFDLHdCQUFELENBQWpDO0FBQ0EsU0FBUSx1REFBRCxHQUNDLFdBQVVTLE1BQU8sVUFBU0ksV0FBVyxDQUFDQyxRQUFaLENBQXFCLE1BQXJCLENBQTZCLEtBQUlDLElBQUksQ0FBQ0MsU0FBTCxDQUFlTixLQUFmLENBQXNCLElBRHpGO0FBRUQ7O0FBRUQsZUFBZU8sZ0JBQWYsQ0FBaUNDLElBQWpDLEVBQXVDQyxJQUF2QyxFQUE2Q0MsTUFBTSxHQUFHLEVBQXRELEVBQTBEQyxhQUFhLEdBQUcsSUFBMUUsRUFBZ0Y7QUFDOUUsUUFBTUMsT0FBTyxHQUFHLE1BQU10QixPQUFPLENBQUNrQixJQUFELENBQTdCO0FBQ0EsTUFBSVQsTUFBSjs7QUFDQSxNQUFJVyxNQUFNLENBQUNHLE1BQVAsR0FBZ0IsQ0FBcEIsRUFBdUI7QUFDckJkLElBQUFBLE1BQU0sR0FBR2EsT0FBVDs7QUFDQSxTQUFLLE1BQU1aLEtBQVgsSUFBb0JVLE1BQXBCLEVBQTRCO0FBQzFCWCxNQUFBQSxNQUFNLEdBQUcsTUFBTUQsa0JBQWtCLENBQUNDLE1BQUQsRUFBU0MsS0FBVCxDQUFqQztBQUNEO0FBQ0YsR0FMRCxNQUtPO0FBQ0xDLG9CQUFJQyxLQUFKLENBQVcsY0FBYU0sSUFBSywyQkFBN0I7O0FBQ0FULElBQUFBLE1BQU0sR0FBSSxJQUFHYSxPQUFRLEdBQXJCO0FBQ0Q7O0FBR0RILEVBQUFBLElBQUksR0FBR0EsSUFBSSxDQUFDSyxHQUFMLENBQVNULElBQUksQ0FBQ0MsU0FBZCxDQUFQOztBQUNBLE1BQUlLLGFBQUosRUFBbUI7QUFDakJaLElBQUFBLE1BQU0sSUFBSyxJQUFHVSxJQUFJLENBQUNNLElBQUwsQ0FBVSxHQUFWLENBQWUsS0FBSUosYUFBYyxTQUEvQztBQUNELEdBRkQsTUFFTztBQUNMWixJQUFBQSxNQUFNLElBQUssSUFBR1UsSUFBSSxDQUFDTSxJQUFMLENBQVUsR0FBVixDQUFlLEdBQTdCO0FBQ0Q7O0FBRUQsU0FBT2hCLE1BQVA7QUFDRDs7ZUFHY1QsTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZzIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuXG5cbmNvbnN0IGF0b21zQ2FjaGUgPSB7fTtcblxuY29uc3QgaW5CdWlsZERpciA9IF9fZmlsZW5hbWUuaW5jbHVkZXMoJ2J1aWxkL2xpYi9hdG9tcycpO1xuXG5mdW5jdGlvbiBnZXRBdG9tRmlsZU5hbWUgKGF0b21OYW1lKSB7XG4gIHJldHVybiBpbkJ1aWxkRGlyXG4gICAgPyBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnYXRvbXMnLCBgJHthdG9tTmFtZX0uanNgKVxuICAgIDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ2F0b21zJywgYCR7YXRvbU5hbWV9LmpzYCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEF0b20gKGF0b21OYW1lKSB7XG4gIC8vIGNoZWNrIGlmIHdlIGhhdmUgYWxyZWFkeSBsb2FkZWQgYW4gY2FjaGVkIHRoaXMgYXRvbVxuICBpZiAoIV8uaGFzKGF0b21zQ2FjaGUsIGF0b21OYW1lKSkge1xuICAgIGNvbnN0IGF0b21GaWxlTmFtZSA9IGdldEF0b21GaWxlTmFtZShhdG9tTmFtZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF0b21zQ2FjaGVbYXRvbU5hbWVdID0gYXdhaXQgZnMucmVhZEZpbGUoYXRvbUZpbGVOYW1lKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBsb2FkIEF0b20gJyR7YXRvbU5hbWV9JyBmcm9tIGZpbGUgJyR7YXRvbUZpbGVOYW1lfSdgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXRvbXNDYWNoZVthdG9tTmFtZV07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyYXBTY3JpcHRGb3JGcmFtZSAoc2NyaXB0LCBmcmFtZSkge1xuICBsb2cuZGVidWcoYFdyYXBwaW5nIHNjcmlwdCBmb3IgZnJhbWUgJyR7ZnJhbWV9J2ApO1xuICBjb25zdCBlbEZyb21DYWNoZSA9IGF3YWl0IGdldEF0b20oJ2dldF9lbGVtZW50X2Zyb21fY2FjaGUnKTtcbiAgcmV0dXJuIGAoZnVuY3Rpb24gKHdpbmRvdykgeyB2YXIgZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQ7IGAgK1xuICAgICAgICAgYHJldHVybiAoJHtzY3JpcHR9KTsgfSkoKCR7ZWxGcm9tQ2FjaGUudG9TdHJpbmcoJ3V0ZjgnKX0pKCR7SlNPTi5zdHJpbmdpZnkoZnJhbWUpfSkpYDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0U2NyaXB0Rm9yQXRvbSAoYXRvbSwgYXJncywgZnJhbWVzID0gW10sIGFzeW5jQ2FsbEJhY2sgPSBudWxsKSB7XG4gIGNvbnN0IGF0b21TcmMgPSBhd2FpdCBnZXRBdG9tKGF0b20pO1xuICBsZXQgc2NyaXB0O1xuICBpZiAoZnJhbWVzLmxlbmd0aCA+IDApIHtcbiAgICBzY3JpcHQgPSBhdG9tU3JjO1xuICAgIGZvciAoY29uc3QgZnJhbWUgb2YgZnJhbWVzKSB7XG4gICAgICBzY3JpcHQgPSBhd2FpdCB3cmFwU2NyaXB0Rm9yRnJhbWUoc2NyaXB0LCBmcmFtZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxvZy5kZWJ1ZyhgRXhlY3V0aW5nICcke2F0b219JyBhdG9tIGluIGRlZmF1bHQgY29udGV4dGApO1xuICAgIHNjcmlwdCA9IGAoJHthdG9tU3JjfSlgO1xuICB9XG5cbiAgLy8gYWRkIHRoZSBhcmd1bWVudHMsIGFzIHN0cmluZ3NcbiAgYXJncyA9IGFyZ3MubWFwKEpTT04uc3RyaW5naWZ5KTtcbiAgaWYgKGFzeW5jQ2FsbEJhY2spIHtcbiAgICBzY3JpcHQgKz0gYCgke2FyZ3Muam9pbignLCcpfSwgJHthc3luY0NhbGxCYWNrfSwgdHJ1ZSlgO1xuICB9IGVsc2Uge1xuICAgIHNjcmlwdCArPSBgKCR7YXJncy5qb2luKCcsJyl9KWA7XG4gIH1cblxuICByZXR1cm4gc2NyaXB0O1xufVxuXG5leHBvcnQgeyBnZXRBdG9tLCBnZXRTY3JpcHRGb3JBdG9tIH07XG5leHBvcnQgZGVmYXVsdCBnZXRBdG9tO1xuIl0sImZpbGUiOiJsaWIvYXRvbXMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
@@ -7,12 +7,12 @@ exports.default = void 0;
7
7
 
8
8
  require("source-map-support/register");
9
9
 
10
- var _appiumSupport = require("appium-support");
10
+ var _support = require("@appium/support");
11
11
 
12
- const log = _appiumSupport.logger.getLogger('RemoteDebugger');
12
+ const log = _support.logger.getLogger('RemoteDebugger');
13
13
 
14
14
  var _default = log;
15
15
  exports.default = _default;require('source-map-support').install();
16
16
 
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFHQSxNQUFNQSxHQUFHLEdBQUdDLHNCQUFPQyxTQUFQLENBQWlCLGdCQUFqQixDQUFaOztlQUVlRixHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnYXBwaXVtLXN1cHBvcnQnO1xuXG5cbmNvbnN0IGxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ1JlbW90ZURlYnVnZ2VyJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdLCJmaWxlIjoibGliL2xvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
18
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsibG9nIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFHQSxNQUFNQSxHQUFHLEdBQUdDLGdCQUFPQyxTQUFQLENBQWlCLGdCQUFqQixDQUFaOztlQUVlRixHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcblxuXG5jb25zdCBsb2cgPSBsb2dnZXIuZ2V0TG9nZ2VyKCdSZW1vdGVEZWJ1Z2dlcicpO1xuXG5leHBvcnQgZGVmYXVsdCBsb2c7XG4iXSwiZmlsZSI6ImxpYi9sb2dnZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
@@ -15,7 +15,7 @@ var _utils = require("../utils");
15
15
 
16
16
  var _events = _interopRequireDefault(require("./events"));
17
17
 
18
- var _appiumSupport = require("appium-support");
18
+ var _support = require("@appium/support");
19
19
 
20
20
  var _asyncbox = require("asyncbox");
21
21
 
@@ -87,7 +87,7 @@ async function selectApp(currentUrl = null, maxTries = SELECT_APP_RETRIES, ignor
87
87
  this.rpcClient.shouldCheckForTarget = false;
88
88
 
89
89
  try {
90
- const timer = new _appiumSupport.timing.Timer().start();
90
+ const timer = new _support.timing.Timer().start();
91
91
 
92
92
  _logger.default.debug('Selecting application');
93
93
 
@@ -223,7 +223,7 @@ async function selectPage(appIdKey, pageIdKey, skipReadyCheck = false) {
223
223
 
224
224
  _logger.default.debug(`Selecting page '${pageIdKey}' on app '${this.appIdKey}' and forwarding socket setup`);
225
225
 
226
- const timer = new _appiumSupport.timing.Timer().start();
226
+ const timer = new _support.timing.Timer().start();
227
227
  await this.rpcClient.selectPage(this.appIdKey, pageIdKey);
228
228
 
229
229
  if (!skipReadyCheck && !(await this.checkPageIsReady())) {
@@ -305,4 +305,4 @@ var _default = {
305
305
  exports.default = _default;require('source-map-support').install();
306
306
 
307
307
 
308
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9taXhpbnMvY29ubmVjdC5qcyJdLCJuYW1lcyI6WyJBUFBfQ09OTkVDVF9USU1FT1VUX01TIiwiQVBQX0NPTk5FQ1RfSU5URVJWQUxfTVMiLCJTRUxFQ1RfQVBQX1JFVFJJRVMiLCJTRUxFQ1RfQVBQX1JFVFJZX1NMRUVQX01TIiwiU0FGQVJJX0JVTkRMRV9JRCIsIkJMQU5LX1BBR0VfVVJMIiwic2V0Q29ubmVjdGlvbktleSIsImxvZyIsImRlYnVnIiwicnBjQ2xpZW50Iiwic2VuZCIsImNvbm5lY3QiLCJ0aW1lb3V0Iiwic2V0dXAiLCJpbml0UnBjQ2xpZW50Iiwib24iLCJfIiwibm9vcCIsIm9uUGFnZUNoYW5nZSIsImJpbmQiLCJvbkNvbm5lY3RlZEFwcGxpY2F0aW9uTGlzdCIsIm9uQXBwQ29ubmVjdCIsIm9uQXBwRGlzY29ubmVjdCIsIm9uQXBwVXBkYXRlIiwib25Db25uZWN0ZWREcml2ZXJMaXN0Iiwib25DdXJyZW50U3RhdGUiLCJmcmFtZURldGFjaGVkIiwiaXNFbXB0eSIsImFwcERpY3QiLCJ3YWl0TXMiLCJpbnRlcnZhbCIsImVyciIsImVycm9yIiwibWVzc2FnZSIsImRpc2Nvbm5lY3QiLCJlbWl0IiwiZXZlbnRzIiwiRVZFTlRfRElTQ09OTkVDVCIsInRlYXJkb3duIiwic2VsZWN0QXBwIiwiY3VycmVudFVybCIsIm1heFRyaWVzIiwiaWdub3JlQWJvdXRCbGFua1VybCIsInNob3VsZENoZWNrRm9yVGFyZ2V0IiwidGltZXIiLCJ0aW1pbmciLCJUaW1lciIsInN0YXJ0IiwiYXBwSWRLZXkiLCJwYWdlRGljdCIsInNlYXJjaEZvckFwcCIsImVycm9yQW5kVGhyb3ciLCJsb2dBcHBsaWNhdGlvbkRpY3Rpb25hcnkiLCJwYWdlQXJyYXkiLCJmdWxsUGFnZUFycmF5IiwiYXBwIiwiaW5mbyIsInRvUGFpcnMiLCJpc0FycmF5IiwiaXNBY3RpdmUiLCJpZCIsInJlcGxhY2UiLCJwYWdlIiwidXJsIiwiY2xvbmUiLCJidW5kbGVJZCIsInB1c2giLCJnZXREdXJhdGlvbiIsImFzTWlsbGlTZWNvbmRzIiwidG9GaXhlZCIsImJ1bmRsZUlkcyIsImluY2x1ZGVTYWZhcmkiLCJpc1NhZmFyaSIsImFkZGl0aW9uYWxCdW5kbGVJZHMiLCJyZXRyeUNvdW50IiwicG9zc2libGVBcHBJZHMiLCJqb2luIiwiYXR0ZW1wdGVkQXBwSWRLZXkiLCJyZXN1bHQiLCJzZWFyY2hGb3JQYWdlIiwiRXJyb3IiLCJpZ24iLCJhcHBzRGljdCIsInZhbHVlcyIsInByb21pc2UiLCJkaWN0Iiwic2VsZWN0UGFnZSIsInBhZ2VJZEtleSIsInNraXBSZWFkeUNoZWNrIiwiY2hlY2tQYWdlSXNSZWFkeSIsInBhZ2VVbmxvYWQiLCJhcHBzIiwiZ2V0VmFsdWVTdHJpbmciLCJrZXkiLCJ2YWx1ZSIsImlzRnVuY3Rpb24iLCJKU09OIiwic3RyaW5naWZ5IiwiQXJyYXkiLCJsZW5ndGgiLCJwcmVmaXgiLCJrIiwidiIsInZhbHVlU3RyaW5nIiwidXBkYXRlQXBwc1dpdGhEaWN0IiwiZW50cnkiLCJpc1VuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxzQkFBc0IsR0FBRyxDQUEvQjtBQUNBLE1BQU1DLHVCQUF1QixHQUFHLEdBQWhDO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsRUFBM0I7QUFDQSxNQUFNQyx5QkFBeUIsR0FBRyxHQUFsQztBQUNBLE1BQU1DLGdCQUFnQixHQUFHLHdCQUF6QjtBQUNBLE1BQU1DLGNBQWMsR0FBRyxhQUF2Qjs7QUFHQSxlQUFlQyxnQkFBZixHQUFtQztBQUNqQ0Msa0JBQUlDLEtBQUosQ0FBVSxnQ0FBVjs7QUFHQSxRQUFNLEtBQUtDLFNBQUwsQ0FBZUMsSUFBZixDQUFvQixrQkFBcEIsRUFBd0MsRUFBeEMsRUFBNEMsS0FBNUMsQ0FBTjtBQUNEOztBQUVELGVBQWVDLE9BQWYsQ0FBd0JDLE9BQU8sR0FBR1osc0JBQWxDLEVBQTBEO0FBQ3hELE9BQUth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VXFGLEdBQUksS0FBSVUsV0FBWSxFQUF6QztBQUNEO0FBQ0Y7QUFDRjtBQUNGOztBQUVELFNBQVNDLGtCQUFULENBQTZCbkIsSUFBN0IsRUFBbUM7QUFHakMsT0FBS3pELE9BQUwsR0FBZSxLQUFLQSxPQUFMLElBQWdCLEVBQS9CO0FBQ0EsTUFBSSxDQUFDZ0MsRUFBRCxFQUFLNkMsS0FBTCxJQUFjLDRCQUFnQnBCLElBQWhCLENBQWxCOztBQUNBLE1BQUksS0FBS3pELE9BQUwsQ0FBYWdDLEVBQWIsQ0FBSixFQUFzQjtBQUVwQjZDLElBQUFBLEtBQUssQ0FBQ3BELFNBQU4sR0FBa0IsS0FBS3pCLE9BQUwsQ0FBYWdDLEVBQWIsRUFBaUJQLFNBQW5DO0FBQ0Q7O0FBQ0QsT0FBS3pCLE9BQUwsQ0FBYWdDLEVBQWIsSUFBbUI2QyxLQUFuQjs7QUFHQSxNQUFJekYsZ0JBQUUwRixXQUFGLENBQWNELEtBQUssQ0FBQ3BELFNBQXBCLENBQUosRUFBb0M7QUFDbENvRCxJQUFBQSxLQUFLLENBQUNwRCxTQUFOLEdBQWtCLDZCQUFsQjtBQUNEOztBQUdELE1BQUksQ0FBQyxLQUFLTCxRQUFWLEVBQW9CO0FBQ2xCLFNBQUtBLFFBQUwsR0FBZ0IsOEJBQWtCLEtBQUtpQixRQUF2QixFQUFpQyxLQUFLckMsT0FBdEMsQ0FBaEI7QUFDRDtBQUNGOztlQUVjO0FBQUV0QixFQUFBQSxnQkFBRjtBQUFvQkssRUFBQUEsT0FBcEI7QUFBNkJ1QixFQUFBQSxVQUE3QjtBQUF5Q0ssRUFBQUEsU0FBekM7QUFBb0RXLEVBQUFBLFlBQXBEO0FBQWtFNkIsRUFBQUEsYUFBbEU7QUFBaUZPLEVBQUFBLFVBQWpGO0FBQTZGa0IsRUFBQUE7QUFBN0YsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGFwcEluZm9Gcm9tRGljdCwgcGFnZUFycmF5RnJvbURpY3QsIGdldERlYnVnZ2VyQXBwS2V5LFxuICAgICAgICAgZ2V0UG9zc2libGVEZWJ1Z2dlckFwcEtleXMsIHNpbXBsZVN0cmluZ2lmeSwgZGVmZXJyZWRQcm9taXNlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IGV2ZW50cyBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyB0aW1pbmcgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgeyByZXRyeUludGVydmFsLCB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuXG5jb25zdCBBUFBfQ09OTkVDVF9USU1FT1VUX01TID0gMDtcbmNvbnN0IEFQUF9DT05ORUNUX0lOVEVSVkFMX01TID0gMTAwO1xuY29uc3QgU0VMRUNUX0FQUF9SRVRSSUVTID0gMjA7XG5jb25zdCBTRUxFQ1RfQVBQX1JFVFJZX1NMRUVQX01TID0gNTAwO1xuY29uc3QgU0FGQVJJX0JVTkRMRV9JRCA9ICdjb20uYXBwbGUubW9iaWxlc2FmYXJpJztcbmNvbnN0IEJMQU5LX1BBR0VfVVJMID0gJ2Fib3V0OmJsYW5rJztcblxuXG5hc3luYyBmdW5jdGlvbiBzZXRDb25uZWN0aW9uS2V5ICgpIHtcbiAgbG9nLmRlYnVnKCdTZW5kaW5nIGNvbm5lY3Rpb24ga2V5IHJlcXVlc3QnKTtcbiAgLy8gc2VuZCBidXQgb25seSB3YWl0IHRvIG1ha2Ugc3VyZSB0aGUgc29ja2V0IHdvcmtlZFxuICAvLyBhcyByZXNwb25zZSBmcm9tIFdlYiBJbnNwZWN0b3IgY2FuIHRha2UgYSBsb25nIHRpbWVcbiAgYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZCgnc2V0Q29ubmVjdGlvbktleScsIHt9LCBmYWxzZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbm5lY3QgKHRpbWVvdXQgPSBBUFBfQ09OTkVDVF9USU1FT1VUX01TKSB7XG4gIHRoaXMuc2V0dXAoKTtcblxuICAvLyBpbml0aWFsaXplIHRoZSBycGMgY2xpZW50XG4gIHRoaXMuaW5pdFJwY0NsaWVudCgpO1xuXG4gIC8vIGxpc3RlbiBmb3IgYmFzaWMgZGVidWdnZXItbGV2ZWwgZXZlbnRzXG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX3JlcG9ydFNldHVwOicsIF8ubm9vcCk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX2ZvcndhcmRHZXRMaXN0aW5nOicsIHRoaXMub25QYWdlQ2hhbmdlLmJpbmQodGhpcykpO1xuICB0aGlzLnJwY0NsaWVudC5vbignX3JwY19yZXBvcnRDb25uZWN0ZWRBcHBsaWNhdGlvbkxpc3Q6JywgdGhpcy5vbkNvbm5lY3RlZEFwcGxpY2F0aW9uTGlzdC5iaW5kKHRoaXMpKTtcbiAgdGhpcy5ycGNDbGllbnQub24oJ19ycGNfYXBwbGljYXRpb25Db25uZWN0ZWQ6JywgdGhpcy5vbkFwcENvbm5lY3QuYmluZCh0aGlzKSk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX2FwcGxpY2F0aW9uRGlzY29ubmVjdGVkOicsIHRoaXMub25BcHBEaXNjb25uZWN0LmJpbmQodGhpcykpO1xuICB0aGlzLnJwY0NsaWVudC5vbignX3JwY19hcHBsaWNhdGlvblVwZGF0ZWQ6JywgdGhpcy5vbkFwcFVwZGF0ZS5iaW5kKHRoaXMpKTtcbiAgdGhpcy5ycGNDbGllbnQub24oJ19ycGNfcmVwb3J0Q29ubmVjdGVkRHJpdmVyTGlzdDonLCB0aGlzLm9uQ29ubmVjdGVkRHJpdmVyTGlzdC5iaW5kKHRoaXMpKTtcbiAgdGhpcy5ycGNDbGllbnQub24oJ19ycGNfcmVwb3J0Q3VycmVudFN0YXRlOicsIHRoaXMub25DdXJyZW50U3RhdGUuYmluZCh0aGlzKSk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdQYWdlLmZyYW1lRGV0YWNoZWQnLCB0aGlzLmZyYW1lRGV0YWNoZWQuYmluZCh0aGlzKSk7XG5cbiAgYXdhaXQgdGhpcy5ycGNDbGllbnQuY29ubmVjdCgpO1xuXG4gIC8vIGdldCB0aGUgY29ubmVjdGlvbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXBwXG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5zZXRDb25uZWN0aW9uS2V5KCk7XG4gICAgaWYgKHRpbWVvdXQpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgV2FpdGluZyB1cCB0byAke3RpbWVvdXR9bXMgZm9yIGFwcGxpY2F0aW9ucyB0byBiZSByZXBvcnRlZGApO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbigoKSA9PiAhXy5pc0VtcHR5KHRoaXMuYXBwRGljdCksIHtcbiAgICAgICAgICB3YWl0TXM6IHRpbWVvdXQsXG4gICAgICAgICAgaW50ZXJ2YWw6IEFQUF9DT05ORUNUX0lOVEVSVkFMX01TLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBsb2cuZGVidWcoYFRpbWVkIG91dCB3YWl0aW5nIGZvciBhcHBsaWNhdGlvbnMgdG8gYmUgcmVwb3J0ZWRgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXBwRGljdCB8fCB7fTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmVycm9yKGBFcnJvciBzZXR0aW5nIGNvbm5lY3Rpb24ga2V5OiAke2Vyci5tZXNzYWdlfWApO1xuICAgIGF3YWl0IHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBkaXNjb25uZWN0ICgpIHtcbiAgaWYgKHRoaXMucnBjQ2xpZW50KSB7XG4gICAgYXdhaXQgdGhpcy5ycGNDbGllbnQuZGlzY29ubmVjdCgpO1xuICB9XG4gIHRoaXMuZW1pdChldmVudHMuRVZFTlRfRElTQ09OTkVDVCwgdHJ1ZSk7XG4gIHRoaXMudGVhcmRvd24oKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VsZWN0QXBwIChjdXJyZW50VXJsID0gbnVsbCwgbWF4VHJpZXMgPSBTRUxFQ1RfQVBQX1JFVFJJRVMsIGlnbm9yZUFib3V0QmxhbmtVcmwgPSBmYWxzZSkge1xuICBjb25zdCBzaG91bGRDaGVja0ZvclRhcmdldCA9IHRoaXMucnBjQ2xpZW50LnNob3VsZENoZWNrRm9yVGFyZ2V0O1xuICB0aGlzLnJwY0NsaWVudC5zaG91bGRDaGVja0ZvclRhcmdldCA9IGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IHRpbWVyID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG4gICAgbG9nLmRlYnVnKCdTZWxlY3RpbmcgYXBwbGljYXRpb24nKTtcbiAgICBpZiAoIXRoaXMuYXBwRGljdCB8fCBfLmlzRW1wdHkodGhpcy5hcHBEaWN0KSkge1xuICAgICAgbG9nLmRlYnVnKCdObyBhcHBsaWNhdGlvbnMgY3VycmVudGx5IGNvbm5lY3RlZC4nKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB7YXBwSWRLZXksIHBhZ2VEaWN0fSA9IGF3YWl0IHRoaXMuc2VhcmNoRm9yQXBwKGN1cnJlbnRVcmwsIG1heFRyaWVzLCBpZ25vcmVBYm91dEJsYW5rVXJsKTtcblxuICAgIC8vIGlmLCBhZnRlciBhbGwgdGhpcywgd2UgaGF2ZSBubyBkaWN0aW9uYXJ5LCB3ZSBoYXZlIGZhaWxlZFxuICAgIGlmICghYXBwSWRLZXkgfHwgIXBhZ2VEaWN0KSB7XG4gICAgICBsb2cuZXJyb3JBbmRUaHJvdyhgQ291bGQgbm90IGNvbm5lY3QgdG8gYSB2YWxpZCBhcHAgYWZ0ZXIgJHttYXhUcmllc30gdHJpZXMuYCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYXBwSWRLZXkgIT09IGFwcElkS2V5KSB7XG4gICAgICBsb2cuZGVidWcoYFJlY2VpdmVkIGFsdGVyZWQgYXBwIGlkLCB1cGRhdGluZyBmcm9tICcke3RoaXMuYXBwSWRLZXl9JyB0byAnJHthcHBJZEtleX0nYCk7XG4gICAgICB0aGlzLmFwcElkS2V5ID0gYXBwSWRLZXk7XG4gICAgfVxuXG4gICAgbG9nQXBwbGljYXRpb25EaWN0aW9uYXJ5KHRoaXMuYXBwRGljdCk7XG5cbiAgICAvLyB0cmFuc2xhdGUgdGhlIGRpY3Rpb25hcnkgaW50byBhIHVzZWZ1bCBmb3JtLCBhbmQgcmV0dXJuIHRvIHNlbmRlclxuICAgIGNvbnN0IHBhZ2VBcnJheSA9IF8uaXNFbXB0eSh0aGlzLmFwcERpY3RbYXBwSWRLZXldLnBhZ2VBcnJheSlcbiAgICAgID8gcGFnZUFycmF5RnJvbURpY3QocGFnZURpY3QpXG4gICAgICA6IHRoaXMuYXBwRGljdFthcHBJZEtleV0ucGFnZUFycmF5O1xuICAgIGxvZy5kZWJ1ZyhgRmluYWxseSBzZWxlY3RpbmcgYXBwICR7dGhpcy5hcHBJZEtleX06ICR7c2ltcGxlU3RyaW5naWZ5KHBhZ2VBcnJheSl9YCk7XG5cbiAgICBsZXQgZnVsbFBhZ2VBcnJheSA9IFtdO1xuICAgIGZvciAoY29uc3QgW2FwcCwgaW5mb10gb2YgXy50b1BhaXJzKHRoaXMuYXBwRGljdCkpIHtcbiAgICAgIGlmICghXy5pc0FycmF5KGluZm8ucGFnZUFycmF5KSB8fCAhaW5mby5pc0FjdGl2ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlkID0gYXBwLnJlcGxhY2UoJ1BJRDonLCAnJyk7XG4gICAgICBmb3IgKGNvbnN0IHBhZ2Ugb2YgaW5mby5wYWdlQXJyYXkpIHtcbiAgICAgICAgaWYgKCEoaWdub3JlQWJvdXRCbGFua1VybCAmJiBwYWdlLnVybCA9PT0gQkxBTktfUEFHRV9VUkwpKSB7XG4gICAgICAgICAgbGV0IHBhZ2VEaWN0ID0gXy5jbG9uZShwYWdlKTtcbiAgICAgICAgICBwYWdlRGljdC5pZCA9IGAke2lkfS4ke3BhZ2VEaWN0LmlkfWA7XG4gICAgICAgICAgcGFnZURpY3QuYnVuZGxlSWQgPSBpbmZvLmJ1bmRsZUlkO1xuICAgICAgICAgIGZ1bGxQYWdlQXJyYXkucHVzaChwYWdlRGljdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsb2cuZGVidWcoYFNlbGVjdGVkIGFwcCBhZnRlciAke3RpbWVyLmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHMudG9GaXhlZCgwKX1tc2ApO1xuICAgIHJldHVybiBmdWxsUGFnZUFycmF5O1xuICB9IGZpbmFsbHkge1xuICAgIHRoaXMucnBjQ2xpZW50LnNob3VsZENoZWNrRm9yVGFyZ2V0ID0gc2hvdWxkQ2hlY2tGb3JUYXJnZXQ7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VhcmNoRm9yQXBwIChjdXJyZW50VXJsLCBtYXhUcmllcywgaWdub3JlQWJvdXRCbGFua1VybCkge1xuICBjb25zdCBidW5kbGVJZHMgPSB0aGlzLmluY2x1ZGVTYWZhcmkgJiYgIXRoaXMuaXNTYWZhcmlcbiAgICA/IFt0aGlzLmJ1bmRsZUlkLCAuLi50aGlzLmFkZGl0aW9uYWxCdW5kbGVJZHMsIFNBRkFSSV9CVU5ETEVfSURdXG4gICAgOiBbdGhpcy5idW5kbGVJZCwgLi4udGhpcy5hZGRpdGlvbmFsQnVuZGxlSWRzXTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgcmV0cnlJbnRlcnZhbChtYXhUcmllcywgU0VMRUNUX0FQUF9SRVRSWV9TTEVFUF9NUywgYXN5bmMgKHJldHJ5Q291bnQpID0+IHtcbiAgICAgIGxvZ0FwcGxpY2F0aW9uRGljdGlvbmFyeSh0aGlzLmFwcERpY3QpO1xuICAgICAgY29uc3QgcG9zc2libGVBcHBJZHMgPSBnZXRQb3NzaWJsZURlYnVnZ2VyQXBwS2V5cyhidW5kbGVJZHMsIHRoaXMuYXBwRGljdCk7XG4gICAgICBsb2cuZGVidWcoYFRyeWluZyBvdXQgdGhlIHBvc3NpYmxlIGFwcCBpZHM6ICR7cG9zc2libGVBcHBJZHMuam9pbignLCAnKX0gKHRyeSAjJHtyZXRyeUNvdW50ICsgMX0gb2YgJHttYXhUcmllc30pYCk7XG4gICAgICBmb3IgKGNvbnN0IGF0dGVtcHRlZEFwcElkS2V5IG9mIHBvc3NpYmxlQXBwSWRzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmFwcERpY3RbYXR0ZW1wdGVkQXBwSWRLZXldLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYFNraXBwaW5nIGFwcCAnJHthdHRlbXB0ZWRBcHBJZEtleX0nIGJlY2F1c2UgaXQgaXMgbm90IGFjdGl2ZWApO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvZy5kZWJ1ZyhgQXR0ZW1wdGluZyBhcHAgJyR7YXR0ZW1wdGVkQXBwSWRLZXl9J2ApO1xuICAgICAgICAgIGNvbnN0IFthcHBJZEtleSwgcGFnZURpY3RdID0gYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VsZWN0QXBwKGF0dGVtcHRlZEFwcElkS2V5LCB0aGlzLm9uQXBwQ29ubmVjdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAvLyBpbiBpT1MgOC4yIHRoZSBjb25uZWN0IGxvZ2ljIGhhcHBlbnMsIGJ1dCB3aXRoIGFuIGVtcHR5IGRpY3Rpb25hcnlcbiAgICAgICAgICAvLyB3aGljaCBsZWFkcyB0byB0aGUgcmVtb3RlIGRlYnVnZ2VyIGdldHRpbmcgZGlzY29ubmVjdGVkLCBhbmQgaW50byBhIGxvb3BcbiAgICAgICAgICBpZiAoXy5pc0VtcHR5KHBhZ2VEaWN0KSkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKCdFbXB0eSBwYWdlIGRpY3Rpb25hcnkgcmVjZWl2ZWQuIFRyeWluZyBhZ2Fpbi4nKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIHNhdmUgdGhlIHBhZ2UgYXJyYXkgZm9yIHRoaXMgYXBwXG4gICAgICAgICAgdGhpcy5hcHBEaWN0W2FwcElkS2V5XS5wYWdlQXJyYXkgPSBwYWdlQXJyYXlGcm9tRGljdChwYWdlRGljdCk7XG5cbiAgICAgICAgICAvLyBpZiB3ZSBhcmUgbG9va2luZyBmb3IgYSBwYXJ0aWN1bGFyIHVybCwgbWFrZSBzdXJlIHdlXG4gICAgICAgICAgLy8gaGF2ZSB0aGUgcmlnaHQgcGFnZS4gSWdub3JlIGVtcHR5IG9yIHVuZGVmaW5lZCB1cmxzLlxuICAgICAgICAgIC8vIElnbm9yZSBhYm91dDpibGFuayBpZiByZXF1ZXN0ZWQuXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5zZWFyY2hGb3JQYWdlKHRoaXMuYXBwRGljdCwgY3VycmVudFVybCwgaWdub3JlQWJvdXRCbGFua1VybCk7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VycmVudFVybCkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKGBSZWNlaXZlZCBhcHAsIGJ1dCBleHBlY3RlZCB1cmwgKCcke2N1cnJlbnRVcmx9Jykgd2FzIG5vdCBmb3VuZC4gVHJ5aW5nIGFnYWluLmApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoJ1JlY2VpdmVkIGFwcCwgYnV0IG5vIG1hdGNoIHdhcyBmb3VuZC4gVHJ5aW5nIGFnYWluLicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgbG9nLmRlYnVnKGBFcnJvciBjaGVja2luZyBhcHBsaWNhdGlvbjogJyR7ZXJyLm1lc3NhZ2V9Jy4gUmV0cnlpbmcgY29ubmVjdGlvbmApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXRyeUNvdW50Kys7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmaW5kIGFuIGFwcCB0byBzZWxlY3QnKTtcbiAgICB9LCAwKTtcbiAgfSBjYXRjaCAoaWduKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYENvdWxkIG5vdCBjb25uZWN0IHRvIGEgdmFsaWQgYXBwIGFmdGVyICR7bWF4VHJpZXN9IHRyaWVzLmApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNlYXJjaEZvclBhZ2UgKGFwcHNEaWN0LCBjdXJyZW50VXJsID0gbnVsbCwgaWdub3JlQWJvdXRCbGFua1VybCA9IGZhbHNlKSB7XG4gIGZvciAoY29uc3QgYXBwRGljdCBvZiBfLnZhbHVlcyhhcHBzRGljdCkpIHtcbiAgICBpZiAoIWFwcERpY3QgfHwgIWFwcERpY3QuaXNBY3RpdmUgfHwgIWFwcERpY3QucGFnZUFycmF5IHx8IGFwcERpY3QucGFnZUFycmF5LnByb21pc2UpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZGljdCBvZiBhcHBEaWN0LnBhZ2VBcnJheSkge1xuICAgICAgaWYgKCghaWdub3JlQWJvdXRCbGFua1VybCB8fCBkaWN0LnVybCAhPT0gQkxBTktfUEFHRV9VUkwpICYmXG4gICAgICAgICAgKCFjdXJyZW50VXJsIHx8IGRpY3QudXJsID09PSBjdXJyZW50VXJsIHx8IGRpY3QudXJsID09PSBgJHtjdXJyZW50VXJsfS9gKSkge1xuICAgICAgICByZXR1cm4geyBhcHBJZEtleTogYXBwRGljdC5pZCwgcGFnZURpY3Q6IGRpY3QgfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbGVjdFBhZ2UgKGFwcElkS2V5LCBwYWdlSWRLZXksIHNraXBSZWFkeUNoZWNrID0gZmFsc2UpIHtcbiAgdGhpcy5hcHBJZEtleSA9IGBQSUQ6JHthcHBJZEtleX1gO1xuICB0aGlzLnBhZ2VJZEtleSA9IHBhZ2VJZEtleTtcblxuICBsb2cuZGVidWcoYFNlbGVjdGluZyBwYWdlICcke3BhZ2VJZEtleX0nIG9uIGFwcCAnJHt0aGlzLmFwcElkS2V5fScgYW5kIGZvcndhcmRpbmcgc29ja2V0IHNldHVwYCk7XG5cbiAgY29uc3QgdGltZXIgPSBuZXcgdGltaW5nLlRpbWVyKCkuc3RhcnQoKTtcblxuICBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZWxlY3RQYWdlKHRoaXMuYXBwSWRLZXksIHBhZ2VJZEtleSk7XG5cbiAgLy8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgcmVhZHkgdG8gZ29cbiAgaWYgKCFza2lwUmVhZHlDaGVjayAmJiAhYXdhaXQgdGhpcy5jaGVja1BhZ2VJc1JlYWR5KCkpIHtcbiAgICBhd2FpdCB0aGlzLnBhZ2VVbmxvYWQoKTtcbiAgfVxuXG4gIGxvZy5kZWJ1ZyhgU2VsZWN0ZWQgcGFnZSBhZnRlciAke3RpbWVyLmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHMudG9GaXhlZCgwKX1tc2ApO1xufVxuXG5mdW5jdGlvbiBsb2dBcHBsaWNhdGlvbkRpY3Rpb25hcnkgKGFwcHMpIHtcbiAgZnVuY3Rpb24gZ2V0VmFsdWVTdHJpbmcgKGtleSwgdmFsdWUpIHtcbiAgICBpZiAoXy5pc0Z1bmN0aW9uKHZhbHVlKSkge1xuICAgICAgcmV0dXJuICdbRnVuY3Rpb25dJztcbiAgICB9XG4gICAgaWYgKGtleSA9PT0gJ3BhZ2VBcnJheScgJiYgIV8uaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBgXCJXYWl0aW5nIGZvciBkYXRhXCJgO1xuICAgIH1cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9XG4gIGxvZy5kZWJ1ZygnQ3VycmVudCBhcHBsaWNhdGlvbnMgYXZhaWxhYmxlOicpO1xuICBmb3IgKGNvbnN0IFthcHAsIGluZm9dIG9mIF8udG9QYWlycyhhcHBzKSkge1xuICAgIGxvZy5kZWJ1ZyhgICAgIEFwcGxpY2F0aW9uOiBcIiR7YXBwfVwiYCk7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgXy50b1BhaXJzKGluZm8pKSB7XG4gICAgICBpZiAoa2V5ID09PSAncGFnZUFycmF5JyAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgbG9nLmRlYnVnKGAgICAgICAgICR7a2V5fTpgKTtcbiAgICAgICAgZm9yIChjb25zdCBwYWdlIG9mIHZhbHVlKSB7XG4gICAgICAgICAgbGV0IHByZWZpeCA9ICctICc7XG4gICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgXy50b1BhaXJzKHBhZ2UpKSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYCAgICAgICAgICAke3ByZWZpeH0ke2t9OiAke0pTT04uc3RyaW5naWZ5KHYpfWApO1xuICAgICAgICAgICAgcHJlZml4ID0gJyAgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gZ2V0VmFsdWVTdHJpbmcoa2V5LCB2YWx1ZSk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgICAgICAgICAke2tleX06ICR7dmFsdWVTdHJpbmd9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUFwcHNXaXRoRGljdCAoZGljdCkge1xuICAvLyBnZXQgdGhlIGRpY3Rpb25hcnkgZW50cnkgaW50byBhIG5pY2UgZm9ybSwgYW5kIGFkZCBpdCB0byB0aGVcbiAgLy8gYXBwbGljYXRpb24gZGljdGlvbmFyeVxuICB0aGlzLmFwcERpY3QgPSB0aGlzLmFwcERpY3QgfHwge307XG4gIGxldCBbaWQsIGVudHJ5XSA9IGFwcEluZm9Gcm9tRGljdChkaWN0KTtcbiAgaWYgKHRoaXMuYXBwRGljdFtpZF0pIHtcbiAgICAvLyBwcmVzZXJ2ZSB0aGUgcGFnZSBkaWN0aW9uYXJ5IGZvciB0aGlzIGVudHJ5XG4gICAgZW50cnkucGFnZUFycmF5ID0gdGhpcy5hcHBEaWN0W2lkXS5wYWdlQXJyYXk7XG4gIH1cbiAgdGhpcy5hcHBEaWN0W2lkXSA9IGVudHJ5O1xuXG4gIC8vIGFkZCBhIHByb21pc2UgdG8gZ2V0IHRoZSBwYWdlIGRpY3Rpb25hcnlcbiAgaWYgKF8uaXNVbmRlZmluZWQoZW50cnkucGFnZUFycmF5KSkge1xuICAgIGVudHJ5LnBhZ2VBcnJheSA9IGRlZmVycmVkUHJvbWlzZSgpO1xuICB9XG5cbiAgLy8gdHJ5IHRvIGdldCB0aGUgYXBwIGlkIGZyb20gb3VyIGNvbm5lY3RlZCBhcHBzXG4gIGlmICghdGhpcy5hcHBJZEtleSkge1xuICAgIHRoaXMuYXBwSWRLZXkgPSBnZXREZWJ1Z2dlckFwcEtleSh0aGlzLmJ1bmRsZUlkLCB0aGlzLmFwcERpY3QpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHsgc2V0Q29ubmVjdGlvbktleSwgY29ubmVjdCwgZGlzY29ubmVjdCwgc2VsZWN0QXBwLCBzZWFyY2hGb3JBcHAsIHNlYXJjaEZvclBhZ2UsIHNlbGVjdFBhZ2UsIHVwZGF0ZUFwcHNXaXRoRGljdCB9O1xuIl0sImZpbGUiOiJsaWIvbWl4aW5zL2Nvbm5lY3QuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
308
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9taXhpbnMvY29ubmVjdC5qcyJdLCJuYW1lcyI6WyJBUFBfQ09OTkVDVF9USU1FT1VUX01TIiwiQVBQX0NPTk5FQ1RfSU5URVJWQUxfTVMiLCJTRUxFQ1RfQVBQX1JFVFJJRVMiLCJTRUxFQ1RfQVBQX1JFVFJZX1NMRUVQX01TIiwiU0FGQVJJX0JVTkRMRV9JRCIsIkJMQU5LX1BBR0VfVVJMIiwic2V0Q29ubmVjdGlvbktleSIsImxvZyIsImRlYnVnIiwicnBjQ2xpZW50Iiwic2VuZCIsImNvbm5lY3QiLCJ0aW1lb3V0Iiwic2V0dXAiLCJpbml0UnBjQ2xpZW50Iiwib24iLCJfIiwibm9vcCIsIm9uUGFnZUNoYW5nZSIsImJpbmQiLCJvbkNvbm5lY3RlZEFwcGxpY2F0aW9uTGlzdCIsIm9uQXBwQ29ubmVjdCIsIm9uQXBwRGlzY29ubmVjdCIsIm9uQXBwVXBkYXRlIiwib25Db25uZWN0ZWREcml2ZXJMaXN0Iiwib25DdXJyZW50U3RhdGUiLCJmcmFtZURldGFjaGVkIiwiaXNFbXB0eSIsImFwcERpY3QiLCJ3YWl0TXMiLCJpbnRlcnZhbCIsImVyciIsImVycm9yIiwibWVzc2FnZSIsImRpc2Nvbm5lY3QiLCJlbWl0IiwiZXZlbnRzIiwiRVZFTlRfRElTQ09OTkVDVCIsInRlYXJkb3duIiwic2VsZWN0QXBwIiwiY3VycmVudFVybCIsIm1heFRyaWVzIiwiaWdub3JlQWJvdXRCbGFua1VybCIsInNob3VsZENoZWNrRm9yVGFyZ2V0IiwidGltZXIiLCJ0aW1pbmciLCJUaW1lciIsInN0YXJ0IiwiYXBwSWRLZXkiLCJwYWdlRGljdCIsInNlYXJjaEZvckFwcCIsImVycm9yQW5kVGhyb3ciLCJsb2dBcHBsaWNhdGlvbkRpY3Rpb25hcnkiLCJwYWdlQXJyYXkiLCJmdWxsUGFnZUFycmF5IiwiYXBwIiwiaW5mbyIsInRvUGFpcnMiLCJpc0FycmF5IiwiaXNBY3RpdmUiLCJpZCIsInJlcGxhY2UiLCJwYWdlIiwidXJsIiwiY2xvbmUiLCJidW5kbGVJZCIsInB1c2giLCJnZXREdXJhdGlvbiIsImFzTWlsbGlTZWNvbmRzIiwidG9GaXhlZCIsImJ1bmRsZUlkcyIsImluY2x1ZGVTYWZhcmkiLCJpc1NhZmFyaSIsImFkZGl0aW9uYWxCdW5kbGVJZHMiLCJyZXRyeUNvdW50IiwicG9zc2libGVBcHBJZHMiLCJqb2luIiwiYXR0ZW1wdGVkQXBwSWRLZXkiLCJyZXN1bHQiLCJzZWFyY2hGb3JQYWdlIiwiRXJyb3IiLCJpZ24iLCJhcHBzRGljdCIsInZhbHVlcyIsInByb21pc2UiLCJkaWN0Iiwic2VsZWN0UGFnZSIsInBhZ2VJZEtleSIsInNraXBSZWFkeUNoZWNrIiwiY2hlY2tQYWdlSXNSZWFkeSIsInBhZ2VVbmxvYWQiLCJhcHBzIiwiZ2V0VmFsdWVTdHJpbmciLCJrZXkiLCJ2YWx1ZSIsImlzRnVuY3Rpb24iLCJKU09OIiwic3RyaW5naWZ5IiwiQXJyYXkiLCJsZW5ndGgiLCJwcmVmaXgiLCJrIiwidiIsInZhbHVlU3RyaW5nIiwidXBkYXRlQXBwc1dpdGhEaWN0IiwiZW50cnkiLCJpc1VuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxzQkFBc0IsR0FBRyxDQUEvQjtBQUNBLE1BQU1DLHVCQUF1QixHQUFHLEdBQWhDO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsRUFBM0I7QUFDQSxNQUFNQyx5QkFBeUIsR0FBRyxHQUFsQztBQUNBLE1BQU1DLGdCQUFnQixHQUFHLHdCQUF6QjtBQUNBLE1BQU1DLGNBQWMsR0FBRyxhQUF2Qjs7QUFHQSxlQUFlQyxnQkFBZixHQUFtQztBQUNqQ0Msa0JBQUlDLEtBQUosQ0FBVSxnQ0FBVjs7QUFHQSxRQUFNLEtBQUtDLFNBQUwsQ0FBZUMsSUFBZixDQUFvQixrQkFBcEIsRUFBd0MsRUFBeEMsRUFBNEMsS0FBNUMsQ0FBTjtBQUNEOztBQUVELGVBQWVDLE9BQWYsQ0FBd0JDLE9BQU8sR0FBR1osc0JBQWxDLEVBQTBEO0FBQ3hELE9BQUth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VXFGLEdBQUksS0FBSVUsV0FBWSxFQUF6QztBQUNEO0FBQ0Y7QUFDRjtBQUNGOztBQUVELFNBQVNDLGtCQUFULENBQTZCbkIsSUFBN0IsRUFBbUM7QUFHakMsT0FBS3pELE9BQUwsR0FBZSxLQUFLQSxPQUFMLElBQWdCLEVBQS9CO0FBQ0EsTUFBSSxDQUFDZ0MsRUFBRCxFQUFLNkMsS0FBTCxJQUFjLDRCQUFnQnBCLElBQWhCLENBQWxCOztBQUNBLE1BQUksS0FBS3pELE9BQUwsQ0FBYWdDLEVBQWIsQ0FBSixFQUFzQjtBQUVwQjZDLElBQUFBLEtBQUssQ0FBQ3BELFNBQU4sR0FBa0IsS0FBS3pCLE9BQUwsQ0FBYWdDLEVBQWIsRUFBaUJQLFNBQW5DO0FBQ0Q7O0FBQ0QsT0FBS3pCLE9BQUwsQ0FBYWdDLEVBQWIsSUFBbUI2QyxLQUFuQjs7QUFHQSxNQUFJekYsZ0JBQUUwRixXQUFGLENBQWNELEtBQUssQ0FBQ3BELFNBQXBCLENBQUosRUFBb0M7QUFDbENvRCxJQUFBQSxLQUFLLENBQUNwRCxTQUFOLEdBQWtCLDZCQUFsQjtBQUNEOztBQUdELE1BQUksQ0FBQyxLQUFLTCxRQUFWLEVBQW9CO0FBQ2xCLFNBQUtBLFFBQUwsR0FBZ0IsOEJBQWtCLEtBQUtpQixRQUF2QixFQUFpQyxLQUFLckMsT0FBdEMsQ0FBaEI7QUFDRDtBQUNGOztlQUVjO0FBQUV0QixFQUFBQSxnQkFBRjtBQUFvQkssRUFBQUEsT0FBcEI7QUFBNkJ1QixFQUFBQSxVQUE3QjtBQUF5Q0ssRUFBQUEsU0FBekM7QUFBb0RXLEVBQUFBLFlBQXBEO0FBQWtFNkIsRUFBQUEsYUFBbEU7QUFBaUZPLEVBQUFBLFVBQWpGO0FBQTZGa0IsRUFBQUE7QUFBN0YsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGFwcEluZm9Gcm9tRGljdCwgcGFnZUFycmF5RnJvbURpY3QsIGdldERlYnVnZ2VyQXBwS2V5LFxuICAgICAgICAgZ2V0UG9zc2libGVEZWJ1Z2dlckFwcEtleXMsIHNpbXBsZVN0cmluZ2lmeSwgZGVmZXJyZWRQcm9taXNlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IGV2ZW50cyBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyB0aW1pbmcgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCwgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cblxuY29uc3QgQVBQX0NPTk5FQ1RfVElNRU9VVF9NUyA9IDA7XG5jb25zdCBBUFBfQ09OTkVDVF9JTlRFUlZBTF9NUyA9IDEwMDtcbmNvbnN0IFNFTEVDVF9BUFBfUkVUUklFUyA9IDIwO1xuY29uc3QgU0VMRUNUX0FQUF9SRVRSWV9TTEVFUF9NUyA9IDUwMDtcbmNvbnN0IFNBRkFSSV9CVU5ETEVfSUQgPSAnY29tLmFwcGxlLm1vYmlsZXNhZmFyaSc7XG5jb25zdCBCTEFOS19QQUdFX1VSTCA9ICdhYm91dDpibGFuayc7XG5cblxuYXN5bmMgZnVuY3Rpb24gc2V0Q29ubmVjdGlvbktleSAoKSB7XG4gIGxvZy5kZWJ1ZygnU2VuZGluZyBjb25uZWN0aW9uIGtleSByZXF1ZXN0Jyk7XG4gIC8vIHNlbmQgYnV0IG9ubHkgd2FpdCB0byBtYWtlIHN1cmUgdGhlIHNvY2tldCB3b3JrZWRcbiAgLy8gYXMgcmVzcG9uc2UgZnJvbSBXZWIgSW5zcGVjdG9yIGNhbiB0YWtlIGEgbG9uZyB0aW1lXG4gIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ3NldENvbm5lY3Rpb25LZXknLCB7fSwgZmFsc2UpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjb25uZWN0ICh0aW1lb3V0ID0gQVBQX0NPTk5FQ1RfVElNRU9VVF9NUykge1xuICB0aGlzLnNldHVwKCk7XG5cbiAgLy8gaW5pdGlhbGl6ZSB0aGUgcnBjIGNsaWVudFxuICB0aGlzLmluaXRScGNDbGllbnQoKTtcblxuICAvLyBsaXN0ZW4gZm9yIGJhc2ljIGRlYnVnZ2VyLWxldmVsIGV2ZW50c1xuICB0aGlzLnJwY0NsaWVudC5vbignX3JwY19yZXBvcnRTZXR1cDonLCBfLm5vb3ApO1xuICB0aGlzLnJwY0NsaWVudC5vbignX3JwY19mb3J3YXJkR2V0TGlzdGluZzonLCB0aGlzLm9uUGFnZUNoYW5nZS5iaW5kKHRoaXMpKTtcbiAgdGhpcy5ycGNDbGllbnQub24oJ19ycGNfcmVwb3J0Q29ubmVjdGVkQXBwbGljYXRpb25MaXN0OicsIHRoaXMub25Db25uZWN0ZWRBcHBsaWNhdGlvbkxpc3QuYmluZCh0aGlzKSk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX2FwcGxpY2F0aW9uQ29ubmVjdGVkOicsIHRoaXMub25BcHBDb25uZWN0LmJpbmQodGhpcykpO1xuICB0aGlzLnJwY0NsaWVudC5vbignX3JwY19hcHBsaWNhdGlvbkRpc2Nvbm5lY3RlZDonLCB0aGlzLm9uQXBwRGlzY29ubmVjdC5iaW5kKHRoaXMpKTtcbiAgdGhpcy5ycGNDbGllbnQub24oJ19ycGNfYXBwbGljYXRpb25VcGRhdGVkOicsIHRoaXMub25BcHBVcGRhdGUuYmluZCh0aGlzKSk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX3JlcG9ydENvbm5lY3RlZERyaXZlckxpc3Q6JywgdGhpcy5vbkNvbm5lY3RlZERyaXZlckxpc3QuYmluZCh0aGlzKSk7XG4gIHRoaXMucnBjQ2xpZW50Lm9uKCdfcnBjX3JlcG9ydEN1cnJlbnRTdGF0ZTonLCB0aGlzLm9uQ3VycmVudFN0YXRlLmJpbmQodGhpcykpO1xuICB0aGlzLnJwY0NsaWVudC5vbignUGFnZS5mcmFtZURldGFjaGVkJywgdGhpcy5mcmFtZURldGFjaGVkLmJpbmQodGhpcykpO1xuXG4gIGF3YWl0IHRoaXMucnBjQ2xpZW50LmNvbm5lY3QoKTtcblxuICAvLyBnZXQgdGhlIGNvbm5lY3Rpb24gaW5mb3JtYXRpb24gYWJvdXQgdGhlIGFwcFxuICB0cnkge1xuICAgIGF3YWl0IHRoaXMuc2V0Q29ubmVjdGlvbktleSgpO1xuICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICBsb2cuZGVidWcoYFdhaXRpbmcgdXAgdG8gJHt0aW1lb3V0fW1zIGZvciBhcHBsaWNhdGlvbnMgdG8gYmUgcmVwb3J0ZWRgKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oKCkgPT4gIV8uaXNFbXB0eSh0aGlzLmFwcERpY3QpLCB7XG4gICAgICAgICAgd2FpdE1zOiB0aW1lb3V0LFxuICAgICAgICAgIGludGVydmFsOiBBUFBfQ09OTkVDVF9JTlRFUlZBTF9NUyxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgbG9nLmRlYnVnKGBUaW1lZCBvdXQgd2FpdGluZyBmb3IgYXBwbGljYXRpb25zIHRvIGJlIHJlcG9ydGVkYCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFwcERpY3QgfHwge307XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvcihgRXJyb3Igc2V0dGluZyBjb25uZWN0aW9uIGtleTogJHtlcnIubWVzc2FnZX1gKTtcbiAgICBhd2FpdCB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICB0aHJvdyBlcnI7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZGlzY29ubmVjdCAoKSB7XG4gIGlmICh0aGlzLnJwY0NsaWVudCkge1xuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LmRpc2Nvbm5lY3QoKTtcbiAgfVxuICB0aGlzLmVtaXQoZXZlbnRzLkVWRU5UX0RJU0NPTk5FQ1QsIHRydWUpO1xuICB0aGlzLnRlYXJkb3duKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbGVjdEFwcCAoY3VycmVudFVybCA9IG51bGwsIG1heFRyaWVzID0gU0VMRUNUX0FQUF9SRVRSSUVTLCBpZ25vcmVBYm91dEJsYW5rVXJsID0gZmFsc2UpIHtcbiAgY29uc3Qgc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSB0aGlzLnJwY0NsaWVudC5zaG91bGRDaGVja0ZvclRhcmdldDtcbiAgdGhpcy5ycGNDbGllbnQuc2hvdWxkQ2hlY2tGb3JUYXJnZXQgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICBjb25zdCB0aW1lciA9IG5ldyB0aW1pbmcuVGltZXIoKS5zdGFydCgpO1xuICAgIGxvZy5kZWJ1ZygnU2VsZWN0aW5nIGFwcGxpY2F0aW9uJyk7XG4gICAgaWYgKCF0aGlzLmFwcERpY3QgfHwgXy5pc0VtcHR5KHRoaXMuYXBwRGljdCkpIHtcbiAgICAgIGxvZy5kZWJ1ZygnTm8gYXBwbGljYXRpb25zIGN1cnJlbnRseSBjb25uZWN0ZWQuJyk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3Qge2FwcElkS2V5LCBwYWdlRGljdH0gPSBhd2FpdCB0aGlzLnNlYXJjaEZvckFwcChjdXJyZW50VXJsLCBtYXhUcmllcywgaWdub3JlQWJvdXRCbGFua1VybCk7XG5cbiAgICAvLyBpZiwgYWZ0ZXIgYWxsIHRoaXMsIHdlIGhhdmUgbm8gZGljdGlvbmFyeSwgd2UgaGF2ZSBmYWlsZWRcbiAgICBpZiAoIWFwcElkS2V5IHx8ICFwYWdlRGljdCkge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coYENvdWxkIG5vdCBjb25uZWN0IHRvIGEgdmFsaWQgYXBwIGFmdGVyICR7bWF4VHJpZXN9IHRyaWVzLmApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFwcElkS2V5ICE9PSBhcHBJZEtleSkge1xuICAgICAgbG9nLmRlYnVnKGBSZWNlaXZlZCBhbHRlcmVkIGFwcCBpZCwgdXBkYXRpbmcgZnJvbSAnJHt0aGlzLmFwcElkS2V5fScgdG8gJyR7YXBwSWRLZXl9J2ApO1xuICAgICAgdGhpcy5hcHBJZEtleSA9IGFwcElkS2V5O1xuICAgIH1cblxuICAgIGxvZ0FwcGxpY2F0aW9uRGljdGlvbmFyeSh0aGlzLmFwcERpY3QpO1xuXG4gICAgLy8gdHJhbnNsYXRlIHRoZSBkaWN0aW9uYXJ5IGludG8gYSB1c2VmdWwgZm9ybSwgYW5kIHJldHVybiB0byBzZW5kZXJcbiAgICBjb25zdCBwYWdlQXJyYXkgPSBfLmlzRW1wdHkodGhpcy5hcHBEaWN0W2FwcElkS2V5XS5wYWdlQXJyYXkpXG4gICAgICA/IHBhZ2VBcnJheUZyb21EaWN0KHBhZ2VEaWN0KVxuICAgICAgOiB0aGlzLmFwcERpY3RbYXBwSWRLZXldLnBhZ2VBcnJheTtcbiAgICBsb2cuZGVidWcoYEZpbmFsbHkgc2VsZWN0aW5nIGFwcCAke3RoaXMuYXBwSWRLZXl9OiAke3NpbXBsZVN0cmluZ2lmeShwYWdlQXJyYXkpfWApO1xuXG4gICAgbGV0IGZ1bGxQYWdlQXJyYXkgPSBbXTtcbiAgICBmb3IgKGNvbnN0IFthcHAsIGluZm9dIG9mIF8udG9QYWlycyh0aGlzLmFwcERpY3QpKSB7XG4gICAgICBpZiAoIV8uaXNBcnJheShpbmZvLnBhZ2VBcnJheSkgfHwgIWluZm8uaXNBY3RpdmUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBpZCA9IGFwcC5yZXBsYWNlKCdQSUQ6JywgJycpO1xuICAgICAgZm9yIChjb25zdCBwYWdlIG9mIGluZm8ucGFnZUFycmF5KSB7XG4gICAgICAgIGlmICghKGlnbm9yZUFib3V0QmxhbmtVcmwgJiYgcGFnZS51cmwgPT09IEJMQU5LX1BBR0VfVVJMKSkge1xuICAgICAgICAgIGxldCBwYWdlRGljdCA9IF8uY2xvbmUocGFnZSk7XG4gICAgICAgICAgcGFnZURpY3QuaWQgPSBgJHtpZH0uJHtwYWdlRGljdC5pZH1gO1xuICAgICAgICAgIHBhZ2VEaWN0LmJ1bmRsZUlkID0gaW5mby5idW5kbGVJZDtcbiAgICAgICAgICBmdWxsUGFnZUFycmF5LnB1c2gocGFnZURpY3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbG9nLmRlYnVnKGBTZWxlY3RlZCBhcHAgYWZ0ZXIgJHt0aW1lci5nZXREdXJhdGlvbigpLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCl9bXNgKTtcbiAgICByZXR1cm4gZnVsbFBhZ2VBcnJheTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0aGlzLnJwY0NsaWVudC5zaG91bGRDaGVja0ZvclRhcmdldCA9IHNob3VsZENoZWNrRm9yVGFyZ2V0O1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlYXJjaEZvckFwcCAoY3VycmVudFVybCwgbWF4VHJpZXMsIGlnbm9yZUFib3V0QmxhbmtVcmwpIHtcbiAgY29uc3QgYnVuZGxlSWRzID0gdGhpcy5pbmNsdWRlU2FmYXJpICYmICF0aGlzLmlzU2FmYXJpXG4gICAgPyBbdGhpcy5idW5kbGVJZCwgLi4udGhpcy5hZGRpdGlvbmFsQnVuZGxlSWRzLCBTQUZBUklfQlVORExFX0lEXVxuICAgIDogW3RoaXMuYnVuZGxlSWQsIC4uLnRoaXMuYWRkaXRpb25hbEJ1bmRsZUlkc107XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHJldHJ5SW50ZXJ2YWwobWF4VHJpZXMsIFNFTEVDVF9BUFBfUkVUUllfU0xFRVBfTVMsIGFzeW5jIChyZXRyeUNvdW50KSA9PiB7XG4gICAgICBsb2dBcHBsaWNhdGlvbkRpY3Rpb25hcnkodGhpcy5hcHBEaWN0KTtcbiAgICAgIGNvbnN0IHBvc3NpYmxlQXBwSWRzID0gZ2V0UG9zc2libGVEZWJ1Z2dlckFwcEtleXMoYnVuZGxlSWRzLCB0aGlzLmFwcERpY3QpO1xuICAgICAgbG9nLmRlYnVnKGBUcnlpbmcgb3V0IHRoZSBwb3NzaWJsZSBhcHAgaWRzOiAke3Bvc3NpYmxlQXBwSWRzLmpvaW4oJywgJyl9ICh0cnkgIyR7cmV0cnlDb3VudCArIDF9IG9mICR7bWF4VHJpZXN9KWApO1xuICAgICAgZm9yIChjb25zdCBhdHRlbXB0ZWRBcHBJZEtleSBvZiBwb3NzaWJsZUFwcElkcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICghdGhpcy5hcHBEaWN0W2F0dGVtcHRlZEFwcElkS2V5XS5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKGBTa2lwcGluZyBhcHAgJyR7YXR0ZW1wdGVkQXBwSWRLZXl9JyBiZWNhdXNlIGl0IGlzIG5vdCBhY3RpdmVgKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsb2cuZGVidWcoYEF0dGVtcHRpbmcgYXBwICcke2F0dGVtcHRlZEFwcElkS2V5fSdgKTtcbiAgICAgICAgICBjb25zdCBbYXBwSWRLZXksIHBhZ2VEaWN0XSA9IGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbGVjdEFwcChhdHRlbXB0ZWRBcHBJZEtleSwgdGhpcy5vbkFwcENvbm5lY3QuYmluZCh0aGlzKSk7XG4gICAgICAgICAgLy8gaW4gaU9TIDguMiB0aGUgY29ubmVjdCBsb2dpYyBoYXBwZW5zLCBidXQgd2l0aCBhbiBlbXB0eSBkaWN0aW9uYXJ5XG4gICAgICAgICAgLy8gd2hpY2ggbGVhZHMgdG8gdGhlIHJlbW90ZSBkZWJ1Z2dlciBnZXR0aW5nIGRpc2Nvbm5lY3RlZCwgYW5kIGludG8gYSBsb29wXG4gICAgICAgICAgaWYgKF8uaXNFbXB0eShwYWdlRGljdCkpIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZygnRW1wdHkgcGFnZSBkaWN0aW9uYXJ5IHJlY2VpdmVkLiBUcnlpbmcgYWdhaW4uJyk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBzYXZlIHRoZSBwYWdlIGFycmF5IGZvciB0aGlzIGFwcFxuICAgICAgICAgIHRoaXMuYXBwRGljdFthcHBJZEtleV0ucGFnZUFycmF5ID0gcGFnZUFycmF5RnJvbURpY3QocGFnZURpY3QpO1xuXG4gICAgICAgICAgLy8gaWYgd2UgYXJlIGxvb2tpbmcgZm9yIGEgcGFydGljdWxhciB1cmwsIG1ha2Ugc3VyZSB3ZVxuICAgICAgICAgIC8vIGhhdmUgdGhlIHJpZ2h0IHBhZ2UuIElnbm9yZSBlbXB0eSBvciB1bmRlZmluZWQgdXJscy5cbiAgICAgICAgICAvLyBJZ25vcmUgYWJvdXQ6YmxhbmsgaWYgcmVxdWVzdGVkLlxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2VhcmNoRm9yUGFnZSh0aGlzLmFwcERpY3QsIGN1cnJlbnRVcmwsIGlnbm9yZUFib3V0QmxhbmtVcmwpO1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGN1cnJlbnRVcmwpIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgYXBwLCBidXQgZXhwZWN0ZWQgdXJsICgnJHtjdXJyZW50VXJsfScpIHdhcyBub3QgZm91bmQuIFRyeWluZyBhZ2Fpbi5gKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9nLmRlYnVnKCdSZWNlaXZlZCBhcHAsIGJ1dCBubyBtYXRjaCB3YXMgZm91bmQuIFRyeWluZyBhZ2Fpbi4nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhgRXJyb3IgY2hlY2tpbmcgYXBwbGljYXRpb246ICcke2Vyci5tZXNzYWdlfScuIFJldHJ5aW5nIGNvbm5lY3Rpb25gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0cnlDb3VudCsrO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmluZCBhbiBhcHAgdG8gc2VsZWN0Jyk7XG4gICAgfSwgMCk7XG4gIH0gY2F0Y2ggKGlnbikge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBDb3VsZCBub3QgY29ubmVjdCB0byBhIHZhbGlkIGFwcCBhZnRlciAke21heFRyaWVzfSB0cmllcy5gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZWFyY2hGb3JQYWdlIChhcHBzRGljdCwgY3VycmVudFVybCA9IG51bGwsIGlnbm9yZUFib3V0QmxhbmtVcmwgPSBmYWxzZSkge1xuICBmb3IgKGNvbnN0IGFwcERpY3Qgb2YgXy52YWx1ZXMoYXBwc0RpY3QpKSB7XG4gICAgaWYgKCFhcHBEaWN0IHx8ICFhcHBEaWN0LmlzQWN0aXZlIHx8ICFhcHBEaWN0LnBhZ2VBcnJheSB8fCBhcHBEaWN0LnBhZ2VBcnJheS5wcm9taXNlKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGRpY3Qgb2YgYXBwRGljdC5wYWdlQXJyYXkpIHtcbiAgICAgIGlmICgoIWlnbm9yZUFib3V0QmxhbmtVcmwgfHwgZGljdC51cmwgIT09IEJMQU5LX1BBR0VfVVJMKSAmJlxuICAgICAgICAgICghY3VycmVudFVybCB8fCBkaWN0LnVybCA9PT0gY3VycmVudFVybCB8fCBkaWN0LnVybCA9PT0gYCR7Y3VycmVudFVybH0vYCkpIHtcbiAgICAgICAgcmV0dXJuIHsgYXBwSWRLZXk6IGFwcERpY3QuaWQsIHBhZ2VEaWN0OiBkaWN0IH07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZWxlY3RQYWdlIChhcHBJZEtleSwgcGFnZUlkS2V5LCBza2lwUmVhZHlDaGVjayA9IGZhbHNlKSB7XG4gIHRoaXMuYXBwSWRLZXkgPSBgUElEOiR7YXBwSWRLZXl9YDtcbiAgdGhpcy5wYWdlSWRLZXkgPSBwYWdlSWRLZXk7XG5cbiAgbG9nLmRlYnVnKGBTZWxlY3RpbmcgcGFnZSAnJHtwYWdlSWRLZXl9JyBvbiBhcHAgJyR7dGhpcy5hcHBJZEtleX0nIGFuZCBmb3J3YXJkaW5nIHNvY2tldCBzZXR1cGApO1xuXG4gIGNvbnN0IHRpbWVyID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG5cbiAgYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VsZWN0UGFnZSh0aGlzLmFwcElkS2V5LCBwYWdlSWRLZXkpO1xuXG4gIC8vIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIHJlYWR5IHRvIGdvXG4gIGlmICghc2tpcFJlYWR5Q2hlY2sgJiYgIWF3YWl0IHRoaXMuY2hlY2tQYWdlSXNSZWFkeSgpKSB7XG4gICAgYXdhaXQgdGhpcy5wYWdlVW5sb2FkKCk7XG4gIH1cblxuICBsb2cuZGVidWcoYFNlbGVjdGVkIHBhZ2UgYWZ0ZXIgJHt0aW1lci5nZXREdXJhdGlvbigpLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCl9bXNgKTtcbn1cblxuZnVuY3Rpb24gbG9nQXBwbGljYXRpb25EaWN0aW9uYXJ5IChhcHBzKSB7XG4gIGZ1bmN0aW9uIGdldFZhbHVlU3RyaW5nIChrZXksIHZhbHVlKSB7XG4gICAgaWYgKF8uaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiAnW0Z1bmN0aW9uXSc7XG4gICAgfVxuICAgIGlmIChrZXkgPT09ICdwYWdlQXJyYXknICYmICFfLmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gYFwiV2FpdGluZyBmb3IgZGF0YVwiYDtcbiAgICB9XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgfVxuICBsb2cuZGVidWcoJ0N1cnJlbnQgYXBwbGljYXRpb25zIGF2YWlsYWJsZTonKTtcbiAgZm9yIChjb25zdCBbYXBwLCBpbmZvXSBvZiBfLnRvUGFpcnMoYXBwcykpIHtcbiAgICBsb2cuZGVidWcoYCAgICBBcHBsaWNhdGlvbjogXCIke2FwcH1cImApO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIF8udG9QYWlycyhpbmZvKSkge1xuICAgICAgaWYgKGtleSA9PT0gJ3BhZ2VBcnJheScgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhgICAgICAgICAke2tleX06YCk7XG4gICAgICAgIGZvciAoY29uc3QgcGFnZSBvZiB2YWx1ZSkge1xuICAgICAgICAgIGxldCBwcmVmaXggPSAnLSAnO1xuICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIF8udG9QYWlycyhwYWdlKSkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKGAgICAgICAgICAgJHtwcmVmaXh9JHtrfTogJHtKU09OLnN0cmluZ2lmeSh2KX1gKTtcbiAgICAgICAgICAgIHByZWZpeCA9ICcgICc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IGdldFZhbHVlU3RyaW5nKGtleSwgdmFsdWUpO1xuICAgICAgICBsb2cuZGVidWcoYCAgICAgICAgJHtrZXl9OiAke3ZhbHVlU3RyaW5nfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVBcHBzV2l0aERpY3QgKGRpY3QpIHtcbiAgLy8gZ2V0IHRoZSBkaWN0aW9uYXJ5IGVudHJ5IGludG8gYSBuaWNlIGZvcm0sIGFuZCBhZGQgaXQgdG8gdGhlXG4gIC8vIGFwcGxpY2F0aW9uIGRpY3Rpb25hcnlcbiAgdGhpcy5hcHBEaWN0ID0gdGhpcy5hcHBEaWN0IHx8IHt9O1xuICBsZXQgW2lkLCBlbnRyeV0gPSBhcHBJbmZvRnJvbURpY3QoZGljdCk7XG4gIGlmICh0aGlzLmFwcERpY3RbaWRdKSB7XG4gICAgLy8gcHJlc2VydmUgdGhlIHBhZ2UgZGljdGlvbmFyeSBmb3IgdGhpcyBlbnRyeVxuICAgIGVudHJ5LnBhZ2VBcnJheSA9IHRoaXMuYXBwRGljdFtpZF0ucGFnZUFycmF5O1xuICB9XG4gIHRoaXMuYXBwRGljdFtpZF0gPSBlbnRyeTtcblxuICAvLyBhZGQgYSBwcm9taXNlIHRvIGdldCB0aGUgcGFnZSBkaWN0aW9uYXJ5XG4gIGlmIChfLmlzVW5kZWZpbmVkKGVudHJ5LnBhZ2VBcnJheSkpIHtcbiAgICBlbnRyeS5wYWdlQXJyYXkgPSBkZWZlcnJlZFByb21pc2UoKTtcbiAgfVxuXG4gIC8vIHRyeSB0byBnZXQgdGhlIGFwcCBpZCBmcm9tIG91ciBjb25uZWN0ZWQgYXBwc1xuICBpZiAoIXRoaXMuYXBwSWRLZXkpIHtcbiAgICB0aGlzLmFwcElkS2V5ID0gZ2V0RGVidWdnZXJBcHBLZXkodGhpcy5idW5kbGVJZCwgdGhpcy5hcHBEaWN0KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7IHNldENvbm5lY3Rpb25LZXksIGNvbm5lY3QsIGRpc2Nvbm5lY3QsIHNlbGVjdEFwcCwgc2VhcmNoRm9yQXBwLCBzZWFyY2hGb3JQYWdlLCBzZWxlY3RQYWdlLCB1cGRhdGVBcHBzV2l0aERpY3QgfTtcbiJdLCJmaWxlIjoibGliL21peGlucy9jb25uZWN0LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -11,13 +11,13 @@ require("source-map-support/register");
11
11
 
12
12
  var _logger = _interopRequireDefault(require("../logger"));
13
13
 
14
- var _appiumBaseDriver = require("appium-base-driver");
14
+ var _baseDriver = require("@appium/base-driver");
15
15
 
16
16
  var _utils = require("../utils");
17
17
 
18
18
  var _atoms = require("../atoms");
19
19
 
20
- var _appiumSupport = require("appium-support");
20
+ var _support = require("@appium/support");
21
21
 
22
22
  var _asyncbox = require("asyncbox");
23
23
 
@@ -49,7 +49,7 @@ async function executeAtomAsync(atom, args, frames) {
49
49
  returnByValue: false
50
50
  }, opts));
51
51
 
52
- const promiseName = `appiumAsyncExecutePromise${_appiumSupport.util.uuidV4().replace(/-/g, '')}`;
52
+ const promiseName = `appiumAsyncExecutePromise${_support.util.uuidV4().replace(/-/g, '')}`;
53
53
  const script = `var res, rej;
54
54
  window.${promiseName} = new Promise(function (resolve, reject) {
55
55
  res = resolve;
@@ -85,7 +85,7 @@ async function executeAtomAsync(atom, args, frames) {
85
85
  const retryWait = 100;
86
86
  const timeout = args.length >= 3 ? args[2] : RPC_RESPONSE_TIMEOUT_MS;
87
87
  const retries = parseInt(timeout / retryWait, 10) || 1;
88
- const timer = new _appiumSupport.timing.Timer().start();
88
+ const timer = new _support.timing.Timer().start();
89
89
 
90
90
  _logger.default.debug(`Waiting up to ${timeout}ms for async execute to finish`);
91
91
 
@@ -102,7 +102,7 @@ async function executeAtomAsync(atom, args, frames) {
102
102
  });
103
103
  }
104
104
 
105
- throw new _appiumBaseDriver.errors.TimeoutError(`Timed out waiting for asynchronous script ` + `result after ${timer.getDuration().asMilliSeconds.toFixed(0)}ms'));`);
105
+ throw new _baseDriver.errors.TimeoutError(`Timed out waiting for asynchronous script ` + `result after ${timer.getDuration().asMilliSeconds.toFixed(0)}ms'));`);
106
106
  });
107
107
  } finally {
108
108
  try {
@@ -174,4 +174,4 @@ var _default = {
174
174
  exports.default = _default;require('source-map-support').install();
175
175
 
176
176
 
177
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9taXhpbnMvZXhlY3V0ZS5qcyJdLCJuYW1lcyI6WyJSUENfUkVTUE9OU0VfVElNRU9VVF9NUyIsImV4ZWN1dGVBdG9tIiwiYXRvbSIsImFyZ3MiLCJmcmFtZXMiLCJycGNDbGllbnQiLCJpc0Nvbm5lY3RlZCIsIkVycm9yIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5Iiwic2NyaXB0IiwidmFsdWUiLCJleGVjdXRlIiwiXyIsInRydW5jYXRlIiwibGVuZ3RoIiwiUkVTUE9OU0VfTE9HX0xFTkdUSCIsImV4ZWN1dGVBdG9tQXN5bmMiLCJldmFsdWF0ZSIsIm1ldGhvZCIsIm9wdHMiLCJzZW5kIiwiT2JqZWN0IiwiYXNzaWduIiwiYXBwSWRLZXkiLCJwYWdlSWRLZXkiLCJyZXR1cm5CeVZhbHVlIiwicHJvbWlzZU5hbWUiLCJ1dGlsIiwidXVpZFY0IiwicmVwbGFjZSIsIm9iaiIsImV4cHJlc3Npb24iLCJwcm9taXNlT2JqZWN0SWQiLCJyZXN1bHQiLCJvYmplY3RJZCIsImFzeW5jQ2FsbEJhY2siLCJyZXMiLCJzdWJjb21tYW5kVGltZW91dCIsImdlbmVyYXRlUHJldmlldyIsInNhdmVSZXN1bHQiLCJlcnIiLCJtZXNzYWdlIiwiaW5jbHVkZXMiLCJyZXRyeVdhaXQiLCJ0aW1lb3V0IiwicmV0cmllcyIsInBhcnNlSW50IiwidGltZXIiLCJ0aW1pbmciLCJUaW1lciIsInN0YXJ0IiwiaGFzVmFsdWUiLCJlcnJvcnMiLCJUaW1lb3V0RXJyb3IiLCJnZXREdXJhdGlvbiIsImFzTWlsbGlTZWNvbmRzIiwidG9GaXhlZCIsImlnbiIsImNvbW1hbmQiLCJvdmVycmlkZSIsInBhZ2VMb2FkaW5nIiwid2FpdEZvckRvbSIsImdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlIiwiZ2FyYmFnZUNvbGxlY3QiLCJjYWxsRnVuY3Rpb24iLCJmbiIsImZ1bmN0aW9uRGVjbGFyYXRpb24iLCJhcmd1bWVudHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7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S0E7QUFBMUMsR0FBWjs7QUFFQSxNQUFJLEtBQUtzQyx1QkFBVCxFQUFrQztBQUNoQyxVQUFNLEtBQUtDLGNBQUwsRUFBTjtBQUNEOztBQUVEMUQsa0JBQUlDLEtBQUosQ0FBVSw2QkFBVjs7QUFDQSxRQUFNOEIsR0FBRyxHQUFHLE1BQU0sS0FBS2xDLFNBQUwsQ0FBZWtCLElBQWYsQ0FBb0Isd0JBQXBCLEVBQThDO0FBQzlEYyxJQUFBQSxRQUQ4RDtBQUU5RGdDLElBQUFBLG1CQUFtQixFQUFFRCxFQUZ5QztBQUc5REUsSUFBQUEsU0FBUyxFQUFFbkUsSUFIbUQ7QUFJOUR5QixJQUFBQSxhQUFhLEVBQUUsSUFKK0M7QUFLOURGLElBQUFBLFFBQVEsRUFBRSxLQUFLQSxRQUwrQztBQU05REMsSUFBQUEsU0FBUyxFQUFFLEtBQUtBO0FBTjhDLEdBQTlDLENBQWxCO0FBU0EsU0FBTywwQkFBY1ksR0FBZCxDQUFQO0FBQ0Q7O2VBR2M7QUFBRXRDLEVBQUFBLFdBQUY7QUFBZWtCLEVBQUFBLGdCQUFmO0FBQWlDTCxFQUFBQSxPQUFqQztBQUEwQ3FELEVBQUFBO0FBQTFDLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdhcHBpdW0tYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgY2hlY2tQYXJhbXMsIHNpbXBsZVN0cmluZ2lmeSwgY29udmVydFJlc3VsdCwgUkVTUE9OU0VfTE9HX0xFTkdUSCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGdldFNjcmlwdEZvckF0b20gfSBmcm9tICcuLi9hdG9tcyc7XG5pbXBvcnQgeyB1dGlsLCB0aW1pbmcgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgeyByZXRyeUludGVydmFsIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuXG4vKiBIb3cgbWFueSBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3Igd2Via2l0IHRvIHJldHVybiBhIHJlc3BvbnNlIGJlZm9yZSB0aW1pbmcgb3V0ICovXG5jb25zdCBSUENfUkVTUE9OU0VfVElNRU9VVF9NUyA9IDUwMDA7XG5cbi8qKlxuICogRXhlY3V0ZSBhIFNlbGVuaXVtIGF0b20gaW4gU2FmYXJpXG4gKiBAcGFyYW0ge3N0cmluZ30gYXRvbSBOYW1lIG9mIFNlbGVuaXVtIGF0b20gKHNlZSBhdG9tcy8gZGlyZWN0b3J5KVxuICogQHBhcmFtIHtBcnJheTwqPn0gYXJncyBBcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBhdG9tXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IGZyYW1lc1xuICogQHJldHVybnMge3N0cmluZ30gVGhlIHJlc3VsdCByZWNlaXZlZCBmcm9tIHRoZSBhdG9tXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVBdG9tIChhdG9tLCBhcmdzLCBmcmFtZXMpIHtcbiAgaWYgKCF0aGlzLnJwY0NsaWVudC5pc0Nvbm5lY3RlZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUmVtb3RlIGRlYnVnZ2VyIGlzIG5vdCBjb25uZWN0ZWQnKTtcbiAgfVxuXG4gIGxvZy5kZWJ1ZyhgRXhlY3V0aW5nIGF0b20gJyR7YXRvbX0nIHdpdGggJ2FyZ3M9JHtKU09OLnN0cmluZ2lmeShhcmdzKX07IGZyYW1lcz0ke2ZyYW1lc30nYCk7XG4gIGNvbnN0IHNjcmlwdCA9IGF3YWl0IGdldFNjcmlwdEZvckF0b20oYXRvbSwgYXJncywgZnJhbWVzKTtcbiAgY29uc3QgdmFsdWUgPSBhd2FpdCB0aGlzLmV4ZWN1dGUoc2NyaXB0LCB0cnVlKTtcbiAgbG9nLmRlYnVnKGBSZWNlaXZlZCByZXN1bHQgZm9yIGF0b20gJyR7YXRvbX0nIGV4ZWN1dGlvbjogJHtfLnRydW5jYXRlKHNpbXBsZVN0cmluZ2lmeSh2YWx1ZSksIHtsZW5ndGg6IFJFU1BPTlNFX0xPR19MRU5HVEh9KX1gKTtcbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBleGVjdXRlQXRvbUFzeW5jIChhdG9tLCBhcmdzLCBmcmFtZXMpIHtcbiAgLy8gaGVscGVyIHRvIHNlbmQgZGlyZWN0bHkgdG8gdGhlIHdlYiBpbnNwZWN0b3JcbiAgY29uc3QgZXZhbHVhdGUgPSBhc3luYyAobWV0aG9kLCBvcHRzKSA9PiBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKG1ldGhvZCwgT2JqZWN0LmFzc2lnbih7XG4gICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICByZXR1cm5CeVZhbHVlOiBmYWxzZSxcbiAgfSwgb3B0cykpO1xuXG4gIC8vIGZpcnN0IGNyZWF0ZSBhIFByb21pc2Ugb24gdGhlIHBhZ2UsIHNhdmluZyB0aGUgcmVzb2x2ZS9yZWplY3QgZnVuY3Rpb25zXG4gIC8vIGFzIHByb3BlcnRpZXNcbiAgY29uc3QgcHJvbWlzZU5hbWUgPSBgYXBwaXVtQXN5bmNFeGVjdXRlUHJvbWlzZSR7dXRpbC51dWlkVjQoKS5yZXBsYWNlKC8tL2csICcnKX1gO1xuICBjb25zdCBzY3JpcHQgPVxuICAgIGB2YXIgcmVzLCByZWo7XG4gICAgd2luZG93LiR7cHJvbWlzZU5hbWV9ID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgcmVzID0gcmVzb2x2ZTtcbiAgICAgIHJlaiA9IHJlamVjdDtcbiAgICB9KTtcbiAgICB3aW5kb3cuJHtwcm9taXNlTmFtZX0ucmVzb2x2ZSA9IHJlcztcbiAgICB3aW5kb3cuJHtwcm9taXNlTmFtZX0ucmVqZWN0ID0gcmVqO1xuICAgIHdpbmRvdy4ke3Byb21pc2VOYW1lfTtgO1xuICBjb25zdCBvYmogPSBhd2FpdCBldmFsdWF0ZSgnUnVudGltZS5ldmFsdWF0ZScsIHtcbiAgICBleHByZXNzaW9uOiBzY3JpcHQsXG4gIH0pO1xuICBjb25zdCBwcm9taXNlT2JqZWN0SWQgPSBvYmoucmVzdWx0Lm9iamVjdElkO1xuXG4gIC8vIGV4ZWN1dGUgdGhlIGF0b20sIGNhbGxpbmcgYmFjayB0byB0aGUgcmVzb2x2ZSBmdW5jdGlvblxuICBjb25zdCBhc3luY0NhbGxCYWNrID1cbiAgICBgZnVuY3Rpb24gKHJlcykge1xuICAgICAgd2luZG93LiR7cHJvbWlzZU5hbWV9LnJlc29sdmUocmVzKTtcbiAgICAgIHdpbmRvdy4ke3Byb21pc2VOYW1lfVZhbHVlID0gcmVzO1xuICAgIH1gO1xuICBhd2FpdCB0aGlzLmV4ZWN1dGUoYXdhaXQgZ2V0U2NyaXB0Rm9yQXRvbShhdG9tLCBhcmdzLCBmcmFtZXMsIGFzeW5jQ2FsbEJhY2spKTtcblxuICAvLyB3YWl0IGZvciB0aGUgcHJvbWlzZSB0byBiZSByZXNvbHZlZFxuICBsZXQgcmVzO1xuICBjb25zdCBzdWJjb21tYW5kVGltZW91dCA9IDEwMDA7IC8vIHRpbWVvdXQgb24gaW5kaXZpZHVhbCBjb21tYW5kc1xuICB0cnkge1xuICAgIHJlcyA9IGF3YWl0IGV2YWx1YXRlKCdSdW50aW1lLmF3YWl0UHJvbWlzZScsIHtcbiAgICAgIHByb21pc2VPYmplY3RJZCxcbiAgICAgIHJldHVybkJ5VmFsdWU6IHRydWUsXG4gICAgICBnZW5lcmF0ZVByZXZpZXc6IHRydWUsXG4gICAgICBzYXZlUmVzdWx0OiB0cnVlLFxuICAgIH0pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoIWVyci5tZXNzYWdlLmluY2x1ZGVzKGAnUnVudGltZS5hd2FpdFByb21pc2UnIHdhcyBub3QgZm91bmRgKSkge1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICAvLyBhd2FpdFByb21pc2UgaXMgbm90IGFsd2F5cyBhdmFpbGFibGUsIHNvIHNpbXVsYXRlIGl0IHdpdGggcG9sbFxuICAgIGNvbnN0IHJldHJ5V2FpdCA9IDEwMDtcbiAgICBjb25zdCB0aW1lb3V0ID0gKGFyZ3MubGVuZ3RoID49IDMpID8gYXJnc1syXSA6IFJQQ19SRVNQT05TRV9USU1FT1VUX01TO1xuICAgIC8vIGlmIHRoZSB0aW1lb3V0IG1hdGggdHVybnMgdXAgMCByZXRyaWVzLCBtYWtlIHN1cmUgaXQgaGFwcGVucyBvbmNlXG4gICAgY29uc3QgcmV0cmllcyA9IHBhcnNlSW50KHRpbWVvdXQgLyByZXRyeVdhaXQsIDEwKSB8fCAxO1xuICAgIGNvbnN0IHRpbWVyID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG4gICAgbG9nLmRlYnVnKGBXYWl0aW5nIHVwIHRvICR7dGltZW91dH1tcyBmb3IgYXN5bmMgZXhlY3V0ZSB0byBmaW5pc2hgKTtcbiAgICByZXMgPSBhd2FpdCByZXRyeUludGVydmFsKHJldHJpZXMsIHJldHJ5V2FpdCwgYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gdGhlIGF0b20gX3dpbGxfIHJldHVybiwgZWl0aGVyIGJlY2F1c2UgaXQgZmluaXNoZWQgb3IgYW4gZXJyb3JcbiAgICAgIC8vIGluY2x1ZGluZyBhIHRpbWVvdXQgZXJyb3JcbiAgICAgIGNvbnN0IGhhc1ZhbHVlID0gYXdhaXQgZXZhbHVhdGUoJ1J1bnRpbWUuZXZhbHVhdGUnLCB7XG4gICAgICAgIGV4cHJlc3Npb246IGB3aW5kb3cuaGFzT3duUHJvcGVydHkoJyR7cHJvbWlzZU5hbWV9VmFsdWUnKTtgLFxuICAgICAgICByZXR1cm5CeVZhbHVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICBpZiAoaGFzVmFsdWUpIHtcbiAgICAgICAgLy8gd2Ugb25seSBwdXQgdGhlIHByb3BlcnR5IG9uIGB3aW5kb3dgIHdoZW4gdGhlIGNhbGxiYWNrIGlzIGNhbGxlZCxcbiAgICAgICAgLy8gc28gaWYgaXQgaXMgdGhlcmUsIGV2ZXJ5dGhpbmcgaXMgZG9uZVxuICAgICAgICByZXR1cm4gYXdhaXQgZXZhbHVhdGUoJ1J1bnRpbWUuZXZhbHVhdGUnLCB7XG4gICAgICAgICAgZXhwcmVzc2lvbjogYHdpbmRvdy4ke3Byb21pc2VOYW1lfVZhbHVlO2AsXG4gICAgICAgICAgcmV0dXJuQnlWYWx1ZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICAvLyB0aHJvdyBhIFRpbWVvdXRFcnJvciwgb3IgZWxzZSBpdCBuZWVkcyB0byBiZSBjYXVnaHQgYW5kIHJlLXRocm93blxuICAgICAgdGhyb3cgbmV3IGVycm9ycy5UaW1lb3V0RXJyb3IoYFRpbWVkIG91dCB3YWl0aW5nIGZvciBhc3luY2hyb25vdXMgc2NyaXB0IGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHJlc3VsdCBhZnRlciAke3RpbWVyLmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHMudG9GaXhlZCgwKX1tcycpKTtgKTtcbiAgICB9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgLy8gdHJ5IHRvIGdldCByaWQgb2YgdGhlIHByb21pc2VcbiAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZUF0b20oJ2V4ZWN1dGVfc2NyaXB0JywgW2BkZWxldGUgd2luZG93LiR7cHJvbWlzZU5hbWV9O2AsIFtudWxsLCBudWxsXSwgc3ViY29tbWFuZFRpbWVvdXRdLCBmcmFtZXMpO1xuICAgIH0gY2F0Y2ggKGlnbikge31cbiAgfVxuICByZXR1cm4gY29udmVydFJlc3VsdChyZXMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBleGVjdXRlIChjb21tYW5kLCBvdmVycmlkZSkge1xuICAvLyBpZiB0aGUgcGFnZSBpcyBub3QgbG9hZGVkIHlldCwgd2FpdCBmb3IgaXRcbiAgaWYgKHRoaXMucGFnZUxvYWRpbmcgJiYgIW92ZXJyaWRlKSB7XG4gICAgbG9nLmRlYnVnKCdUcnlpbmcgdG8gZXhlY3V0ZSBidXQgcGFnZSBpcyBub3QgbG9hZGVkLicpO1xuICAgIGF3YWl0IHRoaXMud2FpdEZvckRvbSgpO1xuICB9XG5cbiAgY2hlY2tQYXJhbXMoe2FwcElkS2V5OiB0aGlzLmFwcElkS2V5LCBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5fSk7XG5cbiAgaWYgKHRoaXMuZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGUpIHtcbiAgICBhd2FpdCB0aGlzLmdhcmJhZ2VDb2xsZWN0KCk7XG4gIH1cblxuICBsb2cuZGVidWcoYFNlbmRpbmcgamF2YXNjcmlwdCBjb21tYW5kOiAnJHtfLnRydW5jYXRlKGNvbW1hbmQsIHtsZW5ndGg6IDUwfSl9J2ApO1xuICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdSdW50aW1lLmV2YWx1YXRlJywge1xuICAgIGV4cHJlc3Npb246IGNvbW1hbmQsXG4gICAgcmV0dXJuQnlWYWx1ZTogdHJ1ZSxcbiAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICB9KTtcblxuICByZXR1cm4gY29udmVydFJlc3VsdChyZXMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjYWxsRnVuY3Rpb24gKG9iamVjdElkLCBmbiwgYXJncykge1xuICBjaGVja1BhcmFtcyh7YXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXl9KTtcblxuICBpZiAodGhpcy5nYXJiYWdlQ29sbGVjdE9uRXhlY3V0ZSkge1xuICAgIGF3YWl0IHRoaXMuZ2FyYmFnZUNvbGxlY3QoKTtcbiAgfVxuXG4gIGxvZy5kZWJ1ZygnQ2FsbGluZyBqYXZhc2NyaXB0IGZ1bmN0aW9uJyk7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1J1bnRpbWUuY2FsbEZ1bmN0aW9uT24nLCB7XG4gICAgb2JqZWN0SWQsXG4gICAgZnVuY3Rpb25EZWNsYXJhdGlvbjogZm4sXG4gICAgYXJndW1lbnRzOiBhcmdzLFxuICAgIHJldHVybkJ5VmFsdWU6IHRydWUsXG4gICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnZlcnRSZXN1bHQocmVzKTtcbn1cblxuXG5leHBvcnQgZGVmYXVsdCB7IGV4ZWN1dGVBdG9tLCBleGVjdXRlQXRvbUFzeW5jLCBleGVjdXRlLCBjYWxsRnVuY3Rpb24gfTtcbiJdLCJmaWxlIjoibGliL21peGlucy9leGVjdXRlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
177
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9taXhpbnMvZXhlY3V0ZS5qcyJdLCJuYW1lcyI6WyJSUENfUkVTUE9OU0VfVElNRU9VVF9NUyIsImV4ZWN1dGVBdG9tIiwiYXRvbSIsImFyZ3MiLCJmcmFtZXMiLCJycGNDbGllbnQiLCJpc0Nvbm5lY3RlZCIsIkVycm9yIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5Iiwic2NyaXB0IiwidmFsdWUiLCJleGVjdXRlIiwiXyIsInRydW5jYXRlIiwibGVuZ3RoIiwiUkVTUE9OU0VfTE9HX0xFTkdUSCIsImV4ZWN1dGVBdG9tQXN5bmMiLCJldmFsdWF0ZSIsIm1ldGhvZCIsIm9wdHMiLCJzZW5kIiwiT2JqZWN0IiwiYXNzaWduIiwiYXBwSWRLZXkiLCJwYWdlSWRLZXkiLCJyZXR1cm5CeVZhbHVlIiwicHJvbWlzZU5hbWUiLCJ1dGlsIiwidXVpZFY0IiwicmVwbGFjZSIsIm9iaiIsImV4cHJlc3Npb24iLCJwcm9taXNlT2JqZWN0SWQiLCJyZXN1bHQiLCJvYmplY3RJZCIsImFzeW5jQ2FsbEJhY2siLCJyZXMiLCJzdWJjb21tYW5kVGltZW91dCIsImdlbmVyYXRlUHJldmlldyIsInNhdmVSZXN1bHQiLCJlcnIiLCJtZXNzYWdlIiwiaW5jbHVkZXMiLCJyZXRyeVdhaXQiLCJ0aW1lb3V0IiwicmV0cmllcyIsInBhcnNlSW50IiwidGltZXIiLCJ0aW1pbmciLCJUaW1lciIsInN0YXJ0IiwiaGFzVmFsdWUiLCJlcnJvcnMiLCJUaW1lb3V0RXJyb3IiLCJnZXREdXJhdGlvbiIsImFzTWlsbGlTZWNvbmRzIiwidG9GaXhlZCIsImlnbiIsImNvbW1hbmQiLCJvdmVycmlkZSIsInBhZ2VMb2FkaW5nIiwid2FpdEZvckRvbSIsImdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlIiwiZ2FyYmFnZUNvbGxlY3QiLCJjYWxsRnVuY3Rpb24iLCJmbiIsImZ1bmN0aW9uRGVjbGFyYXRpb24iLCJhcmd1bWVudHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7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QTtBQUExQyxHQUFaOztBQUVBLE1BQUksS0FBS3NDLHVCQUFULEVBQWtDO0FBQ2hDLFVBQU0sS0FBS0MsY0FBTCxFQUFOO0FBQ0Q7O0FBRUQxRCxrQkFBSUMsS0FBSixDQUFVLDZCQUFWOztBQUNBLFFBQU04QixHQUFHLEdBQUcsTUFBTSxLQUFLbEMsU0FBTCxDQUFla0IsSUFBZixDQUFvQix3QkFBcEIsRUFBOEM7QUFDOURjLElBQUFBLFFBRDhEO0FBRTlEZ0MsSUFBQUEsbUJBQW1CLEVBQUVELEVBRnlDO0FBRzlERSxJQUFBQSxTQUFTLEVBQUVuRSxJQUhtRDtBQUk5RHlCLElBQUFBLGFBQWEsRUFBRSxJQUorQztBQUs5REYsSUFBQUEsUUFBUSxFQUFFLEtBQUtBLFFBTCtDO0FBTTlEQyxJQUFBQSxTQUFTLEVBQUUsS0FBS0E7QUFOOEMsR0FBOUMsQ0FBbEI7QUFTQSxTQUFPLDBCQUFjWSxHQUFkLENBQVA7QUFDRDs7ZUFHYztBQUFFdEMsRUFBQUEsV0FBRjtBQUFla0IsRUFBQUEsZ0JBQWY7QUFBaUNMLEVBQUFBLE9BQWpDO0FBQTBDcUQsRUFBQUE7QUFBMUMsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgY2hlY2tQYXJhbXMsIHNpbXBsZVN0cmluZ2lmeSwgY29udmVydFJlc3VsdCwgUkVTUE9OU0VfTE9HX0xFTkdUSCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGdldFNjcmlwdEZvckF0b20gfSBmcm9tICcuLi9hdG9tcyc7XG5pbXBvcnQgeyB1dGlsLCB0aW1pbmcgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cblxuLyogSG93IG1hbnkgbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHdlYmtpdCB0byByZXR1cm4gYSByZXNwb25zZSBiZWZvcmUgdGltaW5nIG91dCAqL1xuY29uc3QgUlBDX1JFU1BPTlNFX1RJTUVPVVRfTVMgPSA1MDAwO1xuXG4vKipcbiAqIEV4ZWN1dGUgYSBTZWxlbml1bSBhdG9tIGluIFNhZmFyaVxuICogQHBhcmFtIHtzdHJpbmd9IGF0b20gTmFtZSBvZiBTZWxlbml1bSBhdG9tIChzZWUgYXRvbXMvIGRpcmVjdG9yeSlcbiAqIEBwYXJhbSB7QXJyYXk8Kj59IGFyZ3MgQXJndW1lbnRzIHBhc3NlZCB0byB0aGUgYXRvbVxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBmcmFtZXNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSByZXN1bHQgcmVjZWl2ZWQgZnJvbSB0aGUgYXRvbVxuICovXG5hc3luYyBmdW5jdGlvbiBleGVjdXRlQXRvbSAoYXRvbSwgYXJncywgZnJhbWVzKSB7XG4gIGlmICghdGhpcy5ycGNDbGllbnQuaXNDb25uZWN0ZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbW90ZSBkZWJ1Z2dlciBpcyBub3QgY29ubmVjdGVkJyk7XG4gIH1cblxuICBsb2cuZGVidWcoYEV4ZWN1dGluZyBhdG9tICcke2F0b219JyB3aXRoICdhcmdzPSR7SlNPTi5zdHJpbmdpZnkoYXJncyl9OyBmcmFtZXM9JHtmcmFtZXN9J2ApO1xuICBjb25zdCBzY3JpcHQgPSBhd2FpdCBnZXRTY3JpcHRGb3JBdG9tKGF0b20sIGFyZ3MsIGZyYW1lcyk7XG4gIGNvbnN0IHZhbHVlID0gYXdhaXQgdGhpcy5leGVjdXRlKHNjcmlwdCwgdHJ1ZSk7XG4gIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgcmVzdWx0IGZvciBhdG9tICcke2F0b219JyBleGVjdXRpb246ICR7Xy50cnVuY2F0ZShzaW1wbGVTdHJpbmdpZnkodmFsdWUpLCB7bGVuZ3RoOiBSRVNQT05TRV9MT0dfTEVOR1RIfSl9YCk7XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUF0b21Bc3luYyAoYXRvbSwgYXJncywgZnJhbWVzKSB7XG4gIC8vIGhlbHBlciB0byBzZW5kIGRpcmVjdGx5IHRvIHRoZSB3ZWIgaW5zcGVjdG9yXG4gIGNvbnN0IGV2YWx1YXRlID0gYXN5bmMgKG1ldGhvZCwgb3B0cykgPT4gYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZChtZXRob2QsIE9iamVjdC5hc3NpZ24oe1xuICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgcmV0dXJuQnlWYWx1ZTogZmFsc2UsXG4gIH0sIG9wdHMpKTtcblxuICAvLyBmaXJzdCBjcmVhdGUgYSBQcm9taXNlIG9uIHRoZSBwYWdlLCBzYXZpbmcgdGhlIHJlc29sdmUvcmVqZWN0IGZ1bmN0aW9uc1xuICAvLyBhcyBwcm9wZXJ0aWVzXG4gIGNvbnN0IHByb21pc2VOYW1lID0gYGFwcGl1bUFzeW5jRXhlY3V0ZVByb21pc2Uke3V0aWwudXVpZFY0KCkucmVwbGFjZSgvLS9nLCAnJyl9YDtcbiAgY29uc3Qgc2NyaXB0ID1cbiAgICBgdmFyIHJlcywgcmVqO1xuICAgIHdpbmRvdy4ke3Byb21pc2VOYW1lfSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHJlcyA9IHJlc29sdmU7XG4gICAgICByZWogPSByZWplY3Q7XG4gICAgfSk7XG4gICAgd2luZG93LiR7cHJvbWlzZU5hbWV9LnJlc29sdmUgPSByZXM7XG4gICAgd2luZG93LiR7cHJvbWlzZU5hbWV9LnJlamVjdCA9IHJlajtcbiAgICB3aW5kb3cuJHtwcm9taXNlTmFtZX07YDtcbiAgY29uc3Qgb2JqID0gYXdhaXQgZXZhbHVhdGUoJ1J1bnRpbWUuZXZhbHVhdGUnLCB7XG4gICAgZXhwcmVzc2lvbjogc2NyaXB0LFxuICB9KTtcbiAgY29uc3QgcHJvbWlzZU9iamVjdElkID0gb2JqLnJlc3VsdC5vYmplY3RJZDtcblxuICAvLyBleGVjdXRlIHRoZSBhdG9tLCBjYWxsaW5nIGJhY2sgdG8gdGhlIHJlc29sdmUgZnVuY3Rpb25cbiAgY29uc3QgYXN5bmNDYWxsQmFjayA9XG4gICAgYGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgIHdpbmRvdy4ke3Byb21pc2VOYW1lfS5yZXNvbHZlKHJlcyk7XG4gICAgICB3aW5kb3cuJHtwcm9taXNlTmFtZX1WYWx1ZSA9IHJlcztcbiAgICB9YDtcbiAgYXdhaXQgdGhpcy5leGVjdXRlKGF3YWl0IGdldFNjcmlwdEZvckF0b20oYXRvbSwgYXJncywgZnJhbWVzLCBhc3luY0NhbGxCYWNrKSk7XG5cbiAgLy8gd2FpdCBmb3IgdGhlIHByb21pc2UgdG8gYmUgcmVzb2x2ZWRcbiAgbGV0IHJlcztcbiAgY29uc3Qgc3ViY29tbWFuZFRpbWVvdXQgPSAxMDAwOyAvLyB0aW1lb3V0IG9uIGluZGl2aWR1YWwgY29tbWFuZHNcbiAgdHJ5IHtcbiAgICByZXMgPSBhd2FpdCBldmFsdWF0ZSgnUnVudGltZS5hd2FpdFByb21pc2UnLCB7XG4gICAgICBwcm9taXNlT2JqZWN0SWQsXG4gICAgICByZXR1cm5CeVZhbHVlOiB0cnVlLFxuICAgICAgZ2VuZXJhdGVQcmV2aWV3OiB0cnVlLFxuICAgICAgc2F2ZVJlc3VsdDogdHJ1ZSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKCFlcnIubWVzc2FnZS5pbmNsdWRlcyhgJ1J1bnRpbWUuYXdhaXRQcm9taXNlJyB3YXMgbm90IGZvdW5kYCkpIHtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gICAgLy8gYXdhaXRQcm9taXNlIGlzIG5vdCBhbHdheXMgYXZhaWxhYmxlLCBzbyBzaW11bGF0ZSBpdCB3aXRoIHBvbGxcbiAgICBjb25zdCByZXRyeVdhaXQgPSAxMDA7XG4gICAgY29uc3QgdGltZW91dCA9IChhcmdzLmxlbmd0aCA+PSAzKSA/IGFyZ3NbMl0gOiBSUENfUkVTUE9OU0VfVElNRU9VVF9NUztcbiAgICAvLyBpZiB0aGUgdGltZW91dCBtYXRoIHR1cm5zIHVwIDAgcmV0cmllcywgbWFrZSBzdXJlIGl0IGhhcHBlbnMgb25jZVxuICAgIGNvbnN0IHJldHJpZXMgPSBwYXJzZUludCh0aW1lb3V0IC8gcmV0cnlXYWl0LCAxMCkgfHwgMTtcbiAgICBjb25zdCB0aW1lciA9IG5ldyB0aW1pbmcuVGltZXIoKS5zdGFydCgpO1xuICAgIGxvZy5kZWJ1ZyhgV2FpdGluZyB1cCB0byAke3RpbWVvdXR9bXMgZm9yIGFzeW5jIGV4ZWN1dGUgdG8gZmluaXNoYCk7XG4gICAgcmVzID0gYXdhaXQgcmV0cnlJbnRlcnZhbChyZXRyaWVzLCByZXRyeVdhaXQsIGFzeW5jICgpID0+IHtcbiAgICAgIC8vIHRoZSBhdG9tIF93aWxsXyByZXR1cm4sIGVpdGhlciBiZWNhdXNlIGl0IGZpbmlzaGVkIG9yIGFuIGVycm9yXG4gICAgICAvLyBpbmNsdWRpbmcgYSB0aW1lb3V0IGVycm9yXG4gICAgICBjb25zdCBoYXNWYWx1ZSA9IGF3YWl0IGV2YWx1YXRlKCdSdW50aW1lLmV2YWx1YXRlJywge1xuICAgICAgICBleHByZXNzaW9uOiBgd2luZG93Lmhhc093blByb3BlcnR5KCcke3Byb21pc2VOYW1lfVZhbHVlJyk7YCxcbiAgICAgICAgcmV0dXJuQnlWYWx1ZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgaWYgKGhhc1ZhbHVlKSB7XG4gICAgICAgIC8vIHdlIG9ubHkgcHV0IHRoZSBwcm9wZXJ0eSBvbiBgd2luZG93YCB3aGVuIHRoZSBjYWxsYmFjayBpcyBjYWxsZWQsXG4gICAgICAgIC8vIHNvIGlmIGl0IGlzIHRoZXJlLCBldmVyeXRoaW5nIGlzIGRvbmVcbiAgICAgICAgcmV0dXJuIGF3YWl0IGV2YWx1YXRlKCdSdW50aW1lLmV2YWx1YXRlJywge1xuICAgICAgICAgIGV4cHJlc3Npb246IGB3aW5kb3cuJHtwcm9taXNlTmFtZX1WYWx1ZTtgLFxuICAgICAgICAgIHJldHVybkJ5VmFsdWU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gdGhyb3cgYSBUaW1lb3V0RXJyb3IsIG9yIGVsc2UgaXQgbmVlZHMgdG8gYmUgY2F1Z2h0IGFuZCByZS10aHJvd25cbiAgICAgIHRocm93IG5ldyBlcnJvcnMuVGltZW91dEVycm9yKGBUaW1lZCBvdXQgd2FpdGluZyBmb3IgYXN5bmNocm9ub3VzIHNjcmlwdCBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGByZXN1bHQgYWZ0ZXIgJHt0aW1lci5nZXREdXJhdGlvbigpLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCl9bXMnKSk7YCk7XG4gICAgfSk7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIHRyeSB0byBnZXQgcmlkIG9mIHRoZSBwcm9taXNlXG4gICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVBdG9tKCdleGVjdXRlX3NjcmlwdCcsIFtgZGVsZXRlIHdpbmRvdy4ke3Byb21pc2VOYW1lfTtgLCBbbnVsbCwgbnVsbF0sIHN1YmNvbW1hbmRUaW1lb3V0XSwgZnJhbWVzKTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gIH1cbiAgcmV0dXJuIGNvbnZlcnRSZXN1bHQocmVzKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZSAoY29tbWFuZCwgb3ZlcnJpZGUpIHtcbiAgLy8gaWYgdGhlIHBhZ2UgaXMgbm90IGxvYWRlZCB5ZXQsIHdhaXQgZm9yIGl0XG4gIGlmICh0aGlzLnBhZ2VMb2FkaW5nICYmICFvdmVycmlkZSkge1xuICAgIGxvZy5kZWJ1ZygnVHJ5aW5nIHRvIGV4ZWN1dGUgYnV0IHBhZ2UgaXMgbm90IGxvYWRlZC4nKTtcbiAgICBhd2FpdCB0aGlzLndhaXRGb3JEb20oKTtcbiAgfVxuXG4gIGNoZWNrUGFyYW1zKHthcHBJZEtleTogdGhpcy5hcHBJZEtleSwgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleX0pO1xuXG4gIGlmICh0aGlzLmdhcmJhZ2VDb2xsZWN0T25FeGVjdXRlKSB7XG4gICAgYXdhaXQgdGhpcy5nYXJiYWdlQ29sbGVjdCgpO1xuICB9XG5cbiAgbG9nLmRlYnVnKGBTZW5kaW5nIGphdmFzY3JpcHQgY29tbWFuZDogJyR7Xy50cnVuY2F0ZShjb21tYW5kLCB7bGVuZ3RoOiA1MH0pfSdgKTtcbiAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5ycGNDbGllbnQuc2VuZCgnUnVudGltZS5ldmFsdWF0ZScsIHtcbiAgICBleHByZXNzaW9uOiBjb21tYW5kLFxuICAgIHJldHVybkJ5VmFsdWU6IHRydWUsXG4gICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnZlcnRSZXN1bHQocmVzKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2FsbEZ1bmN0aW9uIChvYmplY3RJZCwgZm4sIGFyZ3MpIHtcbiAgY2hlY2tQYXJhbXMoe2FwcElkS2V5OiB0aGlzLmFwcElkS2V5LCBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5fSk7XG5cbiAgaWYgKHRoaXMuZ2FyYmFnZUNvbGxlY3RPbkV4ZWN1dGUpIHtcbiAgICBhd2FpdCB0aGlzLmdhcmJhZ2VDb2xsZWN0KCk7XG4gIH1cblxuICBsb2cuZGVidWcoJ0NhbGxpbmcgamF2YXNjcmlwdCBmdW5jdGlvbicpO1xuICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdSdW50aW1lLmNhbGxGdW5jdGlvbk9uJywge1xuICAgIG9iamVjdElkLFxuICAgIGZ1bmN0aW9uRGVjbGFyYXRpb246IGZuLFxuICAgIGFyZ3VtZW50czogYXJncyxcbiAgICByZXR1cm5CeVZhbHVlOiB0cnVlLFxuICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gIH0pO1xuXG4gIHJldHVybiBjb252ZXJ0UmVzdWx0KHJlcyk7XG59XG5cblxuZXhwb3J0IGRlZmF1bHQgeyBleGVjdXRlQXRvbSwgZXhlY3V0ZUF0b21Bc3luYywgZXhlY3V0ZSwgY2FsbEZ1bmN0aW9uIH07XG4iXSwiZmlsZSI6ImxpYi9taXhpbnMvZXhlY3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
@@ -5,13 +5,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.default = void 0;
8
9
  Object.defineProperty(exports, "events", {
9
10
  enumerable: true,
10
11
  get: function () {
11
12
  return _events.default;
12
13
  }
13
14
  });
14
- exports.default = exports.mixins = void 0;
15
+ exports.mixins = void 0;
15
16
 
16
17
  require("source-map-support/register");
17
18
 
@@ -31,4 +32,4 @@ var _default = mixins;
31
32
  exports.default = _default;require('source-map-support').install();
32
33
 
33
34
 
34
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9taXhpbnMvaW5kZXguanMiXSwibmFtZXMiOlsibWl4aW5zIiwiT2JqZWN0IiwiYXNzaWduIiwiY29ubmVjdCIsImV2ZW50cyIsImV4ZWN1dGUiLCJuYXZpZ2F0ZSIsIm1lc3NhZ2VIYW5kbGVycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLEVBQWQsRUFDYkMsZ0JBRGEsRUFDSkMsZUFESSxFQUNJQyxnQkFESixFQUNhQyxpQkFEYixFQUN1QkMsd0JBRHZCLENBQWY7O2VBTWVQLE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29ubmVjdCBmcm9tICcuL2Nvbm5lY3QnO1xuaW1wb3J0IGV2ZW50cyBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgZXhlY3V0ZSBmcm9tICcuL2V4ZWN1dGUnO1xuaW1wb3J0IG5hdmlnYXRlIGZyb20gJy4vbmF2aWdhdGUnO1xuaW1wb3J0IG1lc3NhZ2VIYW5kbGVycyBmcm9tICcuL21lc3NhZ2UtaGFuZGxlcnMnO1xuXG5cbmNvbnN0IG1peGlucyA9IE9iamVjdC5hc3NpZ24oe30sXG4gIGNvbm5lY3QsIGV2ZW50cywgZXhlY3V0ZSwgbmF2aWdhdGUsIG1lc3NhZ2VIYW5kbGVyc1xuKTtcblxuXG5leHBvcnQgeyBtaXhpbnMsIGV2ZW50cyB9O1xuZXhwb3J0IGRlZmF1bHQgbWl4aW5zO1xuIl0sImZpbGUiOiJsaWIvbWl4aW5zL2luZGV4LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
35
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9taXhpbnMvaW5kZXguanMiXSwibmFtZXMiOlsibWl4aW5zIiwiT2JqZWN0IiwiYXNzaWduIiwiY29ubmVjdCIsImV2ZW50cyIsImV4ZWN1dGUiLCJuYXZpZ2F0ZSIsIm1lc3NhZ2VIYW5kbGVycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsTUFBTSxHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQ2JDLGdCQURhLEVBQ0pDLGVBREksRUFDSUMsZ0JBREosRUFDYUMsaUJBRGIsRUFDdUJDLHdCQUR2QixDQUFmOztlQU1lUCxNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbm5lY3QgZnJvbSAnLi9jb25uZWN0JztcbmltcG9ydCBldmVudHMgZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IGV4ZWN1dGUgZnJvbSAnLi9leGVjdXRlJztcbmltcG9ydCBuYXZpZ2F0ZSBmcm9tICcuL25hdmlnYXRlJztcbmltcG9ydCBtZXNzYWdlSGFuZGxlcnMgZnJvbSAnLi9tZXNzYWdlLWhhbmRsZXJzJztcblxuXG5jb25zdCBtaXhpbnMgPSBPYmplY3QuYXNzaWduKHt9LFxuICBjb25uZWN0LCBldmVudHMsIGV4ZWN1dGUsIG5hdmlnYXRlLCBtZXNzYWdlSGFuZGxlcnNcbik7XG5cblxuZXhwb3J0IHsgbWl4aW5zLCBldmVudHMgfTtcbmV4cG9ydCBkZWZhdWx0IG1peGlucztcbiJdLCJmaWxlIjoibGliL21peGlucy9pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
@@ -15,7 +15,7 @@ var _utils = require("../utils");
15
15
 
16
16
  var _events = _interopRequireDefault(require("./events"));
17
17
 
18
- var _appiumSupport = require("appium-support");
18
+ var _support = require("@appium/support");
19
19
 
20
20
  var _lodash = _interopRequireDefault(require("lodash"));
21
21
 
@@ -33,7 +33,7 @@ async function pageLoad(startPageLoadTimer, pageLoadVerifyHook = _lodash.default
33
33
  if (!_lodash.default.isFunction((_startPageLoadTimer = startPageLoadTimer) === null || _startPageLoadTimer === void 0 ? void 0 : _startPageLoadTimer.getDuration)) {
34
34
  _logger.default.debug(`Page load timer not a timer. Creating new timer`);
35
35
 
36
- startPageLoadTimer = new _appiumSupport.timing.Timer().start();
36
+ startPageLoadTimer = new _support.timing.Timer().start();
37
37
  }
38
38
 
39
39
  _logger.default.debug('Page loaded, verifying whether ready');
@@ -41,7 +41,7 @@ async function pageLoad(startPageLoadTimer, pageLoadVerifyHook = _lodash.default
41
41
  this.pageLoading = true;
42
42
 
43
43
  const verify = async () => {
44
- this.pageLoadDelay = _appiumSupport.util.cancellableDelay(timeoutMs);
44
+ this.pageLoadDelay = _support.util.cancellableDelay(timeoutMs);
45
45
 
46
46
  try {
47
47
  await this.pageLoadDelay;
@@ -154,7 +154,7 @@ async function navToUrl(url, pageLoadVerifyHook) {
154
154
  }
155
155
 
156
156
  await waitForFramePromise;
157
- await this.waitForDom(new _appiumSupport.timing.Timer().start(), pageLoadVerifyHook);
157
+ await this.waitForDom(new _support.timing.Timer().start(), pageLoadVerifyHook);
158
158
  await this.rpcClient.send('Console.enable', {
159
159
  appIdKey: this.appIdKey,
160
160
  pageIdKey: this.pageIdKey
@@ -169,7 +169,7 @@ async function waitForFrameNavigated() {
169
169
  return await new _bluebird.default(async resolve => {
170
170
  _logger.default.debug('Waiting for frame navigated message...');
171
171
 
172
- const start = new _appiumSupport.timing.Timer().start();
172
+ const start = new _support.timing.Timer().start();
173
173
 
174
174
  navEventListener = (err, value) => {
175
175
  _logger.default.debug(`Frame navigated in ${start.getDuration().asMilliSeconds.toFixed(0)}ms from: ${value}`);
@@ -191,7 +191,7 @@ async function waitForFrameNavigated() {
191
191
 
192
192
  if (!this.useNewSafari || this.pageLoadMs >= 0) {
193
193
  const timeout = this.useNewSafari ? this.pageLoadMs : 500;
194
- this.navigationDelay = _appiumSupport.util.cancellableDelay(timeout);
194
+ this.navigationDelay = _support.util.cancellableDelay(timeout);
195
195
 
196
196
  try {
197
197
  await this.navigationDelay;
@@ -218,4 +218,4 @@ var _default = {
218
218
  exports.default = _default;require('source-map-support').install();
219
219
 
220
220
 
221
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9taXhpbnMvbmF2aWdhdGUuanMiXSwibmFtZXMiOlsiZnJhbWVEZXRhY2hlZCIsImVtaXQiLCJldmVudHMiLCJFVkVOVF9GUkFNRVNfREVUQUNIRUQiLCJwYWdlTG9hZCIsInN0YXJ0UGFnZUxvYWRUaW1lciIsInBhZ2VMb2FkVmVyaWZ5SG9vayIsIl8iLCJub29wIiwidGltZW91dE1zIiwiaXNGdW5jdGlvbiIsImdldER1cmF0aW9uIiwibG9nIiwiZGVidWciLCJ0aW1pbmciLCJUaW1lciIsInN0YXJ0IiwicGFnZUxvYWRpbmciLCJ2ZXJpZnkiLCJwYWdlTG9hZERlbGF5IiwidXRpbCIsImNhbmNlbGxhYmxlRGVsYXkiLCJlcnIiLCJCIiwiQ2FuY2VsbGF0aW9uRXJyb3IiLCJhcHBJZEtleSIsImVsYXBzZWRNcyIsImFzTWlsbGlTZWNvbmRzIiwiY2hlY2tQYWdlSXNSZWFkeSIsInBhZ2VMb2FkTXMiLCJ0b0ZpeGVkIiwiY2FuY2VsUGFnZUxvYWQiLCJjYW5jZWwiLCJwYWdlVW5sb2FkIiwid2FpdEZvckRvbSIsInJlYWR5Q21kIiwicmVhZHlTdGF0ZSIsInJlc29sdmUiLCJleGVjdXRlIiwidGltZW91dCIsInBhZ2VSZWFkeVRpbWVvdXQiLCJUaW1lb3V0RXJyb3IiLCJuYXZUb1VybCIsInVybCIsInBhZ2VJZEtleSIsIl9uYXZpZ2F0aW5nVG9QYWdlIiwid2FpdEZvckZyYW1lUHJvbWlzZSIsIndhaXRGb3JGcmFtZU5hdmlnYXRlZCIsInJwY0NsaWVudCIsInNlbmQiLCJ1c2VOZXdTYWZhcmkiLCJkZWxheSIsIm5hdkV2ZW50TGlzdGVuZXIiLCJ2YWx1ZSIsImFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQiLCJuYXZpZ2F0aW9uRGVsYXkiLCJvbmNlIiwiZmluYWxseSIsIm9mZiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxTQUFTQSxhQUFULEdBQTBCO0FBQ3hCLE9B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QyxLQUFLRixZQUFOLElBQXNCLEtBQUtyQixVQUFMLElBQW1CLENBQTdDLEVBQWdEO0FBRTlDLFlBQU1VLE9BQU8sR0FBRyxLQUFLVyxZQUFMLEdBQW9CLEtBQUtyQixVQUF6QixHQUFzQyxHQUF0RDtBQUNBLFdBQUswQixlQUFMLEdBQXVCbkMsb0JBQUtDLGdCQUFMLENBQXNCa0IsT0FBdEIsQ0FBdkI7O0FBQ0EsVUFBSTtBQUNGLGNBQU0sS0FBS2dCLGVBQVg7QUFDQUgsUUFBQUEsZ0JBQWdCLENBQUMsSUFBRCxFQUFRLEdBQUViLE9BQVEsWUFBbEIsQ0FBaEI7QUFDRCxPQUhELENBR0UsT0FBT2pCLEdBQVAsRUFBWSxDQUliO0FBQ0Y7QUFDRixHQXJDWSxFQXFDVm1DLE9BckNVLENBcUNGLE1BQU07QUFDZixRQUFJTCxnQkFBSixFQUFzQjtBQUNwQixXQUFLSixTQUFMLENBQWVVLEdBQWYsQ0FBbUIscUJBQW5CLEVBQTBDTixnQkFBMUM7QUFDRDtBQUNGLEdBekNZLENBQWI7QUEwQ0Q7O2VBR2M7QUFBRXBELEVBQUFBLGFBQUY7QUFBaUJJLEVBQUFBLFFBQWpCO0FBQTJCMkIsRUFBQUEsY0FBM0I7QUFBMkNFLEVBQUFBLFVBQTNDO0FBQXVEQyxFQUFBQSxVQUF2RDtBQUFtRU4sRUFBQUEsZ0JBQW5FO0FBQXFGYyxFQUFBQSxRQUFyRjtBQUErRkssRUFBQUE7QUFBL0YsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGNoZWNrUGFyYW1zIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IGV2ZW50cyBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyB0aW1pbmcsIHV0aWwgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuXG5cbmZ1bmN0aW9uIGZyYW1lRGV0YWNoZWQgKCkge1xuICB0aGlzLmVtaXQoZXZlbnRzLkVWRU5UX0ZSQU1FU19ERVRBQ0hFRCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhZ2VMb2FkIChzdGFydFBhZ2VMb2FkVGltZXIsIHBhZ2VMb2FkVmVyaWZ5SG9vayA9IF8ubm9vcCkge1xuICBjb25zdCB0aW1lb3V0TXMgPSA1MDA7XG4gIGlmICghXy5pc0Z1bmN0aW9uKHN0YXJ0UGFnZUxvYWRUaW1lcj8uZ2V0RHVyYXRpb24pKSB7XG4gICAgbG9nLmRlYnVnKGBQYWdlIGxvYWQgdGltZXIgbm90IGEgdGltZXIuIENyZWF0aW5nIG5ldyB0aW1lcmApO1xuICAgIHN0YXJ0UGFnZUxvYWRUaW1lciA9IG5ldyB0aW1pbmcuVGltZXIoKS5zdGFydCgpO1xuICB9XG5cbiAgbG9nLmRlYnVnKCdQYWdlIGxvYWRlZCwgdmVyaWZ5aW5nIHdoZXRoZXIgcmVhZHknKTtcbiAgdGhpcy5wYWdlTG9hZGluZyA9IHRydWU7XG5cbiAgY29uc3QgdmVyaWZ5ID0gYXN5bmMgKCkgPT4ge1xuICAgIHRoaXMucGFnZUxvYWREZWxheSA9IHV0aWwuY2FuY2VsbGFibGVEZWxheSh0aW1lb3V0TXMpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnBhZ2VMb2FkRGVsYXk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgQi5DYW5jZWxsYXRpb25FcnJvcikge1xuICAgICAgICAvLyBpZiB0aGUgcHJvbWlzZSBoYXMgYmVlbiBjYW5jZWxsZWRcbiAgICAgICAgLy8gd2Ugd2FudCB0byBza2lwIGNoZWNraW5nIHRoZSByZWFkaW5lc3NcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHdlIGNhbiBnZXQgdGhpcyBjYWxsZWQgaW4gdGhlIG1pZGRsZSBvZiB0cnlpbmcgdG8gZmluZCBhIG5ldyBhcHBcbiAgICBpZiAoIXRoaXMuYXBwSWRLZXkpIHtcbiAgICAgIGxvZy5kZWJ1ZygnTm90IGNvbm5lY3RlZCB0byBhbiBhcHBsaWNhdGlvbi4gSWdub3JpbmcgcGFnZSBsb2FkJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKF8uaXNGdW5jdGlvbihwYWdlTG9hZFZlcmlmeUhvb2spKSB7XG4gICAgICBhd2FpdCBwYWdlTG9hZFZlcmlmeUhvb2soKTtcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBhcmUgcmVhZHksIG9yIHdlJ3ZlIHNwZW5kIHRvbyBtdWNoIHRpbWUgb24gdGhpc1xuICAgIGNvbnN0IGVsYXBzZWRNcyA9IHN0YXJ0UGFnZUxvYWRUaW1lci5nZXREdXJhdGlvbigpLmFzTWlsbGlTZWNvbmRzO1xuICAgIGlmIChhd2FpdCB0aGlzLmNoZWNrUGFnZUlzUmVhZHkoKSB8fCAodGhpcy5wYWdlTG9hZE1zID4gMCAmJiBlbGFwc2VkTXMgPiB0aGlzLnBhZ2VMb2FkTXMpKSB7XG4gICAgICBsb2cuZGVidWcoJ1BhZ2UgaXMgcmVhZHknKTtcbiAgICAgIHRoaXMucGFnZUxvYWRpbmcgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmRlYnVnKCdQYWdlIHdhcyBub3QgcmVhZHksIHJldHJ5aW5nJyk7XG4gICAgICBhd2FpdCB2ZXJpZnkoKTtcbiAgICB9XG4gIH07XG4gIHRyeSB7XG4gICAgYXdhaXQgdmVyaWZ5KCk7XG4gIH0gZmluYWxseSB7XG4gICAgbG9nLmRlYnVnKGBQYWdlIGxvYWQgY29tcGxldGVkIGluICR7c3RhcnRQYWdlTG9hZFRpbWVyLmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHMudG9GaXhlZCgwKX1tc2ApO1xuICAgIHRoaXMucGFnZUxvYWRpbmcgPSBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYW5jZWxQYWdlTG9hZCAoKSB7XG4gIGxvZy5kZWJ1ZygnVW5yZWdpc3RlcmluZyBmcm9tIHBhZ2UgcmVhZGluZXNzIG5vdGlmaWNhdGlvbnMnKTtcbiAgdGhpcy5wYWdlTG9hZGluZyA9IGZhbHNlO1xuICBpZiAodGhpcy5wYWdlTG9hZERlbGF5KSB7XG4gICAgdGhpcy5wYWdlTG9hZERlbGF5LmNhbmNlbCgpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhZ2VVbmxvYWQgKCkge1xuICBsb2cuZGVidWcoJ1BhZ2UgdW5sb2FkaW5nJyk7XG4gIGF3YWl0IHRoaXMud2FpdEZvckRvbSgpO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3YWl0Rm9yRG9tIChzdGFydFBhZ2VMb2FkVGltZXIsIHBhZ2VMb2FkVmVyaWZ5SG9vaykge1xuICBsb2cuZGVidWcoJ1dhaXRpbmcgZm9yIGRvbS4uLicpO1xuICBhd2FpdCB0aGlzLnBhZ2VMb2FkKHN0YXJ0UGFnZUxvYWRUaW1lciwgcGFnZUxvYWRWZXJpZnlIb29rKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2hlY2tQYWdlSXNSZWFkeSAoKSB7XG4gIGNoZWNrUGFyYW1zKHthcHBJZEtleTogdGhpcy5hcHBJZEtleX0pO1xuXG4gIGxvZy5kZWJ1ZygnQ2hlY2tpbmcgZG9jdW1lbnQgcmVhZHlTdGF0ZScpO1xuICBjb25zdCByZWFkeUNtZCA9ICdkb2N1bWVudC5yZWFkeVN0YXRlOyc7XG4gIGxldCByZWFkeVN0YXRlID0gJ2xvYWRpbmcnO1xuICB0cnkge1xuICAgIHJlYWR5U3RhdGUgPSBhd2FpdCBCLnJlc29sdmUodGhpcy5leGVjdXRlKHJlYWR5Q21kLCB0cnVlKSkudGltZW91dCh0aGlzLnBhZ2VSZWFkeVRpbWVvdXQpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoIShlcnIgaW5zdGFuY2VvZiBCLlRpbWVvdXRFcnJvcikpIHtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gICAgbG9nLmRlYnVnKGBQYWdlIHJlYWRpbmVzcyBjaGVjayB0aW1lZCBvdXQgYWZ0ZXIgJHt0aGlzLnBhZ2VSZWFkeVRpbWVvdXR9bXNgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgbG9nLmRlYnVnKGBEb2N1bWVudCByZWFkeVN0YXRlIGlzICcke3JlYWR5U3RhdGV9J2ApO1xuXG4gIHJldHVybiByZWFkeVN0YXRlID09PSAnY29tcGxldGUnO1xufVxuXG5hc3luYyBmdW5jdGlvbiBuYXZUb1VybCAodXJsLCBwYWdlTG9hZFZlcmlmeUhvb2spIHtcbiAgY2hlY2tQYXJhbXMoe2FwcElkS2V5OiB0aGlzLmFwcElkS2V5LCBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5fSk7XG5cbiAgdGhpcy5fbmF2aWdhdGluZ1RvUGFnZSA9IHRydWU7XG5cbiAgdHJ5IHtcbiAgICBsb2cuZGVidWcoYE5hdmlnYXRpbmcgdG8gbmV3IFVSTDogJyR7dXJsfSdgKTtcblxuICAgIC8vIGJlZ2luIGxpc3RlbmluZyBmb3IgZnJhbWUgbmF2aWdhdGlvbiBldmVudCwgd2hpY2ggd2lsbCBiZSB3YWl0ZWQgZm9yIGxhdGVyXG4gICAgY29uc3Qgd2FpdEZvckZyYW1lUHJvbWlzZSA9IHRoaXMud2FpdEZvckZyYW1lTmF2aWdhdGVkKCk7XG5cbiAgICBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdQYWdlLm5hdmlnYXRlJywge1xuICAgICAgdXJsLFxuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLnVzZU5ld1NhZmFyaSkge1xuICAgICAgLy8gYSBzbWFsbCBwYXVzZSBmb3IgdGhlIGJyb3dzZXIgdG8gY2F0Y2ggdXBcbiAgICAgIGF3YWl0IEIuZGVsYXkoMTAwMCk7XG4gICAgfVxuXG4gICAgLy8gd2FpdCB1bnRpbCB0aGUgcGFnZSBoYXMgYmVlbiBuYXZpZ2F0ZWRcbiAgICBhd2FpdCB3YWl0Rm9yRnJhbWVQcm9taXNlO1xuXG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yRG9tKG5ldyB0aW1pbmcuVGltZXIoKS5zdGFydCgpLCBwYWdlTG9hZFZlcmlmeUhvb2spO1xuXG4gICAgLy8gZW5hYmxlIGNvbnNvbGUgbG9nZ2luZywgc28gd2UgZ2V0IHRoZSBldmVudHMgKG90aGVyd2lzZSB3ZSBvbmx5XG4gICAgLy8gZ2V0IG5vdGlmaWVkIHdoZW4gbmF2aWdhdGluZyB0byBhIGxvY2FsIHBhZ2VcbiAgICBhd2FpdCB0aGlzLnJwY0NsaWVudC5zZW5kKCdDb25zb2xlLmVuYWJsZScsIHtcbiAgICAgIGFwcElkS2V5OiB0aGlzLmFwcElkS2V5LFxuICAgICAgcGFnZUlkS2V5OiB0aGlzLnBhZ2VJZEtleSxcbiAgICB9KTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0aGlzLl9uYXZpZ2F0aW5nVG9QYWdlID0gZmFsc2U7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gd2FpdEZvckZyYW1lTmF2aWdhdGVkICgpIHtcbiAgbGV0IG5hdkV2ZW50TGlzdGVuZXI7XG4gIHJldHVybiBhd2FpdCBuZXcgQihhc3luYyAocmVzb2x2ZSkgPT4ge1xuICAgIGxvZy5kZWJ1ZygnV2FpdGluZyBmb3IgZnJhbWUgbmF2aWdhdGVkIG1lc3NhZ2UuLi4nKTtcbiAgICBjb25zdCBzdGFydCA9IG5ldyB0aW1pbmcuVGltZXIoKS5zdGFydCgpO1xuXG4gICAgLy8gYWRkIGEgaGFuZGxlciBmb3IgdGhlIGBQYWdlLmZyYW1lTmF2aWdhdGVkYCBtZXNzYWdlXG4gICAgLy8gZnJvbSB0aGUgcmVtb3RlIGRlYnVnZ2VyXG4gICAgbmF2RXZlbnRMaXN0ZW5lciA9IChlcnIsIHZhbHVlKSA9PiB7XG4gICAgICBsb2cuZGVidWcoYEZyYW1lIG5hdmlnYXRlZCBpbiAke3N0YXJ0LmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHMudG9GaXhlZCgwKX1tcyBmcm9tOiAke3ZhbHVlfWApO1xuICAgICAgaWYgKCF0aGlzLmFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQgJiYgIXRoaXMucGFnZUxvYWRpbmcpIHtcbiAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cuZGVidWcoJ0ZyYW1lIG5hdmlnYXRlZCBidXQgd2Ugd2VyZSB3YXJuZWQgYWJvdXQgaXQsIG5vdCAnICtcbiAgICAgICAgICAgICAgICAgICdjb25zaWRlcmluZyBwYWdlIHN0YXRlIHVubG9hZGVkJyk7XG4gICAgICAgIHRoaXMuYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubmF2aWdhdGlvbkRlbGF5KSB7XG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkRlbGF5LmNhbmNlbCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLnJwY0NsaWVudC5vbmNlKCdQYWdlLmZyYW1lTmF2aWdhdGVkJywgbmF2RXZlbnRMaXN0ZW5lcik7XG5cbiAgICAvLyB0aW1lb3V0LCBpbiBjYXNlIHJlbW90ZSBkZWJ1Z2dlciBkb2Vzbid0IHJlc3BvbmQsXG4gICAgLy8gb3IgdGFrZXMgYSBsb25nIHRpbWVcbiAgICBpZiAoIXRoaXMudXNlTmV3U2FmYXJpIHx8IHRoaXMucGFnZUxvYWRNcyA+PSAwKSB7XG4gICAgICAvLyB1c2UgcGFnZUxvYWRNcywgb3IgYSBzbWFsbCBhbW91bnQgb2YgdGltZVxuICAgICAgY29uc3QgdGltZW91dCA9IHRoaXMudXNlTmV3U2FmYXJpID8gdGhpcy5wYWdlTG9hZE1zIDogNTAwO1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uRGVsYXkgPSB1dGlsLmNhbmNlbGxhYmxlRGVsYXkodGltZW91dCk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLm5hdmlnYXRpb25EZWxheTtcbiAgICAgICAgbmF2RXZlbnRMaXN0ZW5lcihudWxsLCBgJHt0aW1lb3V0fW1zIHRpbWVvdXRgKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBub3RoaW5nIHRvIGRvOiB3ZSBvbmx5IGdldCBoZXJlIGlmIHRoZSByZW1vdGUgZGVidWdnZXJcbiAgICAgICAgLy8gYWxyZWFkeSBub3RpZmllZCBvZiBmcmFtZSBuYXZpZ2F0aW9uLCBhbmQgdGhlIGRlbGF5XG4gICAgICAgIC8vIHdhcyBjYW5jZWxsZWRcbiAgICAgIH1cbiAgICB9XG4gIH0pLmZpbmFsbHkoKCkgPT4ge1xuICAgIGlmIChuYXZFdmVudExpc3RlbmVyKSB7XG4gICAgICB0aGlzLnJwY0NsaWVudC5vZmYoJ1BhZ2UuZnJhbWVOYXZpZ2F0ZWQnLCBuYXZFdmVudExpc3RlbmVyKTtcbiAgICB9XG4gIH0pO1xufVxuXG5cbmV4cG9ydCBkZWZhdWx0IHsgZnJhbWVEZXRhY2hlZCwgcGFnZUxvYWQsIGNhbmNlbFBhZ2VMb2FkLCBwYWdlVW5sb2FkLCB3YWl0Rm9yRG9tLCBjaGVja1BhZ2VJc1JlYWR5LCBuYXZUb1VybCwgd2FpdEZvckZyYW1lTmF2aWdhdGVkIH07XG4iXSwiZmlsZSI6ImxpYi9taXhpbnMvbmF2aWdhdGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
221
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9taXhpbnMvbmF2aWdhdGUuanMiXSwibmFtZXMiOlsiZnJhbWVEZXRhY2hlZCIsImVtaXQiLCJldmVudHMiLCJFVkVOVF9GUkFNRVNfREVUQUNIRUQiLCJwYWdlTG9hZCIsInN0YXJ0UGFnZUxvYWRUaW1lciIsInBhZ2VMb2FkVmVyaWZ5SG9vayIsIl8iLCJub29wIiwidGltZW91dE1zIiwiaXNGdW5jdGlvbiIsImdldER1cmF0aW9uIiwibG9nIiwiZGVidWciLCJ0aW1pbmciLCJUaW1lciIsInN0YXJ0IiwicGFnZUxvYWRpbmciLCJ2ZXJpZnkiLCJwYWdlTG9hZERlbGF5IiwidXRpbCIsImNhbmNlbGxhYmxlRGVsYXkiLCJlcnIiLCJCIiwiQ2FuY2VsbGF0aW9uRXJyb3IiLCJhcHBJZEtleSIsImVsYXBzZWRNcyIsImFzTWlsbGlTZWNvbmRzIiwiY2hlY2tQYWdlSXNSZWFkeSIsInBhZ2VMb2FkTXMiLCJ0b0ZpeGVkIiwiY2FuY2VsUGFnZUxvYWQiLCJjYW5jZWwiLCJwYWdlVW5sb2FkIiwid2FpdEZvckRvbSIsInJlYWR5Q21kIiwicmVhZHlTdGF0ZSIsInJlc29sdmUiLCJleGVjdXRlIiwidGltZW91dCIsInBhZ2VSZWFkeVRpbWVvdXQiLCJUaW1lb3V0RXJyb3IiLCJuYXZUb1VybCIsInVybCIsInBhZ2VJZEtleSIsIl9uYXZpZ2F0aW5nVG9QYWdlIiwid2FpdEZvckZyYW1lUHJvbWlzZSIsIndhaXRGb3JGcmFtZU5hdmlnYXRlZCIsInJwY0NsaWVudCIsInNlbmQiLCJ1c2VOZXdTYWZhcmkiLCJkZWxheSIsIm5hdkV2ZW50TGlzdGVuZXIiLCJ2YWx1ZSIsImFsbG93TmF2aWdhdGlvbldpdGhvdXRSZWxvYWQiLCJuYXZpZ2F0aW9uRGVsYXkiLCJvbmNlIiwiZmluYWxseSIsIm9mZiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxTQUFTQSxhQUFULEdBQTBCO0FBQ3hCLE9B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LEtBQUtGLFlBQU4sSUFBc0IsS0FBS3JCLFVBQUwsSUFBbUIsQ0FBN0MsRUFBZ0Q7QUFFOUMsWUFBTVUsT0FBTyxHQUFHLEtBQUtXLFlBQUwsR0FBb0IsS0FBS3JCLFVBQXpCLEdBQXNDLEdBQXREO0FBQ0EsV0FBSzBCLGVBQUwsR0FBdUJuQyxjQUFLQyxnQkFBTCxDQUFzQmtCLE9BQXRCLENBQXZCOztBQUNBLFVBQUk7QUFDRixjQUFNLEtBQUtnQixlQUFYO0FBQ0FILFFBQUFBLGdCQUFnQixDQUFDLElBQUQsRUFBUSxHQUFFYixPQUFRLFlBQWxCLENBQWhCO0FBQ0QsT0FIRCxDQUdFLE9BQU9qQixHQUFQLEVBQVksQ0FJYjtBQUNGO0FBQ0YsR0FyQ1ksRUFxQ1ZtQyxPQXJDVSxDQXFDRixNQUFNO0FBQ2YsUUFBSUwsZ0JBQUosRUFBc0I7QUFDcEIsV0FBS0osU0FBTCxDQUFlVSxHQUFmLENBQW1CLHFCQUFuQixFQUEwQ04sZ0JBQTFDO0FBQ0Q7QUFDRixHQXpDWSxDQUFiO0FBMENEOztlQUdjO0FBQUVwRCxFQUFBQSxhQUFGO0FBQWlCSSxFQUFBQSxRQUFqQjtBQUEyQjJCLEVBQUFBLGNBQTNCO0FBQTJDRSxFQUFBQSxVQUEzQztBQUF1REMsRUFBQUEsVUFBdkQ7QUFBbUVOLEVBQUFBLGdCQUFuRTtBQUFxRmMsRUFBQUEsUUFBckY7QUFBK0ZLLEVBQUFBO0FBQS9GLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBjaGVja1BhcmFtcyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBldmVudHMgZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IHsgdGltaW5nLCB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5cblxuZnVuY3Rpb24gZnJhbWVEZXRhY2hlZCAoKSB7XG4gIHRoaXMuZW1pdChldmVudHMuRVZFTlRfRlJBTUVTX0RFVEFDSEVEKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFnZUxvYWQgKHN0YXJ0UGFnZUxvYWRUaW1lciwgcGFnZUxvYWRWZXJpZnlIb29rID0gXy5ub29wKSB7XG4gIGNvbnN0IHRpbWVvdXRNcyA9IDUwMDtcbiAgaWYgKCFfLmlzRnVuY3Rpb24oc3RhcnRQYWdlTG9hZFRpbWVyPy5nZXREdXJhdGlvbikpIHtcbiAgICBsb2cuZGVidWcoYFBhZ2UgbG9hZCB0aW1lciBub3QgYSB0aW1lci4gQ3JlYXRpbmcgbmV3IHRpbWVyYCk7XG4gICAgc3RhcnRQYWdlTG9hZFRpbWVyID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG4gIH1cblxuICBsb2cuZGVidWcoJ1BhZ2UgbG9hZGVkLCB2ZXJpZnlpbmcgd2hldGhlciByZWFkeScpO1xuICB0aGlzLnBhZ2VMb2FkaW5nID0gdHJ1ZTtcblxuICBjb25zdCB2ZXJpZnkgPSBhc3luYyAoKSA9PiB7XG4gICAgdGhpcy5wYWdlTG9hZERlbGF5ID0gdXRpbC5jYW5jZWxsYWJsZURlbGF5KHRpbWVvdXRNcyk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucGFnZUxvYWREZWxheTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBCLkNhbmNlbGxhdGlvbkVycm9yKSB7XG4gICAgICAgIC8vIGlmIHRoZSBwcm9taXNlIGhhcyBiZWVuIGNhbmNlbGxlZFxuICAgICAgICAvLyB3ZSB3YW50IHRvIHNraXAgY2hlY2tpbmcgdGhlIHJlYWRpbmVzc1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gd2UgY2FuIGdldCB0aGlzIGNhbGxlZCBpbiB0aGUgbWlkZGxlIG9mIHRyeWluZyB0byBmaW5kIGEgbmV3IGFwcFxuICAgIGlmICghdGhpcy5hcHBJZEtleSkge1xuICAgICAgbG9nLmRlYnVnKCdOb3QgY29ubmVjdGVkIHRvIGFuIGFwcGxpY2F0aW9uLiBJZ25vcmluZyBwYWdlIGxvYWQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXy5pc0Z1bmN0aW9uKHBhZ2VMb2FkVmVyaWZ5SG9vaykpIHtcbiAgICAgIGF3YWl0IHBhZ2VMb2FkVmVyaWZ5SG9vaygpO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGFyZSByZWFkeSwgb3Igd2UndmUgc3BlbmQgdG9vIG11Y2ggdGltZSBvbiB0aGlzXG4gICAgY29uc3QgZWxhcHNlZE1zID0gc3RhcnRQYWdlTG9hZFRpbWVyLmdldER1cmF0aW9uKCkuYXNNaWxsaVNlY29uZHM7XG4gICAgaWYgKGF3YWl0IHRoaXMuY2hlY2tQYWdlSXNSZWFkeSgpIHx8ICh0aGlzLnBhZ2VMb2FkTXMgPiAwICYmIGVsYXBzZWRNcyA+IHRoaXMucGFnZUxvYWRNcykpIHtcbiAgICAgIGxvZy5kZWJ1ZygnUGFnZSBpcyByZWFkeScpO1xuICAgICAgdGhpcy5wYWdlTG9hZGluZyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuZGVidWcoJ1BhZ2Ugd2FzIG5vdCByZWFkeSwgcmV0cnlpbmcnKTtcbiAgICAgIGF3YWl0IHZlcmlmeSgpO1xuICAgIH1cbiAgfTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB2ZXJpZnkoKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBsb2cuZGVidWcoYFBhZ2UgbG9hZCBjb21wbGV0ZWQgaW4gJHtzdGFydFBhZ2VMb2FkVGltZXIuZ2V0RHVyYXRpb24oKS5hc01pbGxpU2Vjb25kcy50b0ZpeGVkKDApfW1zYCk7XG4gICAgdGhpcy5wYWdlTG9hZGluZyA9IGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbmNlbFBhZ2VMb2FkICgpIHtcbiAgbG9nLmRlYnVnKCdVbnJlZ2lzdGVyaW5nIGZyb20gcGFnZSByZWFkaW5lc3Mgbm90aWZpY2F0aW9ucycpO1xuICB0aGlzLnBhZ2VMb2FkaW5nID0gZmFsc2U7XG4gIGlmICh0aGlzLnBhZ2VMb2FkRGVsYXkpIHtcbiAgICB0aGlzLnBhZ2VMb2FkRGVsYXkuY2FuY2VsKCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFnZVVubG9hZCAoKSB7XG4gIGxvZy5kZWJ1ZygnUGFnZSB1bmxvYWRpbmcnKTtcbiAgYXdhaXQgdGhpcy53YWl0Rm9yRG9tKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JEb20gKHN0YXJ0UGFnZUxvYWRUaW1lciwgcGFnZUxvYWRWZXJpZnlIb29rKSB7XG4gIGxvZy5kZWJ1ZygnV2FpdGluZyBmb3IgZG9tLi4uJyk7XG4gIGF3YWl0IHRoaXMucGFnZUxvYWQoc3RhcnRQYWdlTG9hZFRpbWVyLCBwYWdlTG9hZFZlcmlmeUhvb2spO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjaGVja1BhZ2VJc1JlYWR5ICgpIHtcbiAgY2hlY2tQYXJhbXMoe2FwcElkS2V5OiB0aGlzLmFwcElkS2V5fSk7XG5cbiAgbG9nLmRlYnVnKCdDaGVja2luZyBkb2N1bWVudCByZWFkeVN0YXRlJyk7XG4gIGNvbnN0IHJlYWR5Q21kID0gJ2RvY3VtZW50LnJlYWR5U3RhdGU7JztcbiAgbGV0IHJlYWR5U3RhdGUgPSAnbG9hZGluZyc7XG4gIHRyeSB7XG4gICAgcmVhZHlTdGF0ZSA9IGF3YWl0IEIucmVzb2x2ZSh0aGlzLmV4ZWN1dGUocmVhZHlDbWQsIHRydWUpKS50aW1lb3V0KHRoaXMucGFnZVJlYWR5VGltZW91dCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmICghKGVyciBpbnN0YW5jZW9mIEIuVGltZW91dEVycm9yKSkge1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICBsb2cuZGVidWcoYFBhZ2UgcmVhZGluZXNzIGNoZWNrIHRpbWVkIG91dCBhZnRlciAke3RoaXMucGFnZVJlYWR5VGltZW91dH1tc2ApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBsb2cuZGVidWcoYERvY3VtZW50IHJlYWR5U3RhdGUgaXMgJyR7cmVhZHlTdGF0ZX0nYCk7XG5cbiAgcmV0dXJuIHJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZSc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5hdlRvVXJsICh1cmwsIHBhZ2VMb2FkVmVyaWZ5SG9vaykge1xuICBjaGVja1BhcmFtcyh7YXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXl9KTtcblxuICB0aGlzLl9uYXZpZ2F0aW5nVG9QYWdlID0gdHJ1ZTtcblxuICB0cnkge1xuICAgIGxvZy5kZWJ1ZyhgTmF2aWdhdGluZyB0byBuZXcgVVJMOiAnJHt1cmx9J2ApO1xuXG4gICAgLy8gYmVnaW4gbGlzdGVuaW5nIGZvciBmcmFtZSBuYXZpZ2F0aW9uIGV2ZW50LCB3aGljaCB3aWxsIGJlIHdhaXRlZCBmb3IgbGF0ZXJcbiAgICBjb25zdCB3YWl0Rm9yRnJhbWVQcm9taXNlID0gdGhpcy53YWl0Rm9yRnJhbWVOYXZpZ2F0ZWQoKTtcblxuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ1BhZ2UubmF2aWdhdGUnLCB7XG4gICAgICB1cmwsXG4gICAgICBhcHBJZEtleTogdGhpcy5hcHBJZEtleSxcbiAgICAgIHBhZ2VJZEtleTogdGhpcy5wYWdlSWRLZXksXG4gICAgfSk7XG5cbiAgICBpZiAoIXRoaXMudXNlTmV3U2FmYXJpKSB7XG4gICAgICAvLyBhIHNtYWxsIHBhdXNlIGZvciB0aGUgYnJvd3NlciB0byBjYXRjaCB1cFxuICAgICAgYXdhaXQgQi5kZWxheSgxMDAwKTtcbiAgICB9XG5cbiAgICAvLyB3YWl0IHVudGlsIHRoZSBwYWdlIGhhcyBiZWVuIG5hdmlnYXRlZFxuICAgIGF3YWl0IHdhaXRGb3JGcmFtZVByb21pc2U7XG5cbiAgICBhd2FpdCB0aGlzLndhaXRGb3JEb20obmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCksIHBhZ2VMb2FkVmVyaWZ5SG9vayk7XG5cbiAgICAvLyBlbmFibGUgY29uc29sZSBsb2dnaW5nLCBzbyB3ZSBnZXQgdGhlIGV2ZW50cyAob3RoZXJ3aXNlIHdlIG9ubHlcbiAgICAvLyBnZXQgbm90aWZpZWQgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgbG9jYWwgcGFnZVxuICAgIGF3YWl0IHRoaXMucnBjQ2xpZW50LnNlbmQoJ0NvbnNvbGUuZW5hYmxlJywge1xuICAgICAgYXBwSWRLZXk6IHRoaXMuYXBwSWRLZXksXG4gICAgICBwYWdlSWRLZXk6IHRoaXMucGFnZUlkS2V5LFxuICAgIH0pO1xuICB9IGZpbmFsbHkge1xuICAgIHRoaXMuX25hdmlnYXRpbmdUb1BhZ2UgPSBmYWxzZTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB3YWl0Rm9yRnJhbWVOYXZpZ2F0ZWQgKCkge1xuICBsZXQgbmF2RXZlbnRMaXN0ZW5lcjtcbiAgcmV0dXJuIGF3YWl0IG5ldyBCKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgbG9nLmRlYnVnKCdXYWl0aW5nIGZvciBmcmFtZSBuYXZpZ2F0ZWQgbWVzc2FnZS4uLicpO1xuICAgIGNvbnN0IHN0YXJ0ID0gbmV3IHRpbWluZy5UaW1lcigpLnN0YXJ0KCk7XG5cbiAgICAvLyBhZGQgYSBoYW5kbGVyIGZvciB0aGUgYFBhZ2UuZnJhbWVOYXZpZ2F0ZWRgIG1lc3NhZ2VcbiAgICAvLyBmcm9tIHRoZSByZW1vdGUgZGVidWdnZXJcbiAgICBuYXZFdmVudExpc3RlbmVyID0gKGVyciwgdmFsdWUpID0+IHtcbiAgICAgIGxvZy5kZWJ1ZyhgRnJhbWUgbmF2aWdhdGVkIGluICR7c3RhcnQuZ2V0RHVyYXRpb24oKS5hc01pbGxpU2Vjb25kcy50b0ZpeGVkKDApfW1zIGZyb206ICR7dmFsdWV9YCk7XG4gICAgICBpZiAoIXRoaXMuYWxsb3dOYXZpZ2F0aW9uV2l0aG91dFJlbG9hZCAmJiAhdGhpcy5wYWdlTG9hZGluZykge1xuICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZy5kZWJ1ZygnRnJhbWUgbmF2aWdhdGVkIGJ1dCB3ZSB3ZXJlIHdhcm5lZCBhYm91dCBpdCwgbm90ICcgK1xuICAgICAgICAgICAgICAgICAgJ2NvbnNpZGVyaW5nIHBhZ2Ugc3RhdGUgdW5sb2FkZWQnKTtcbiAgICAgICAgdGhpcy5hbGxvd05hdmlnYXRpb25XaXRob3V0UmVsb2FkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uRGVsYXkpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uRGVsYXkuY2FuY2VsKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMucnBjQ2xpZW50Lm9uY2UoJ1BhZ2UuZnJhbWVOYXZpZ2F0ZWQnLCBuYXZFdmVudExpc3RlbmVyKTtcblxuICAgIC8vIHRpbWVvdXQsIGluIGNhc2UgcmVtb3RlIGRlYnVnZ2VyIGRvZXNuJ3QgcmVzcG9uZCxcbiAgICAvLyBvciB0YWtlcyBhIGxvbmcgdGltZVxuICAgIGlmICghdGhpcy51c2VOZXdTYWZhcmkgfHwgdGhpcy5wYWdlTG9hZE1zID49IDApIHtcbiAgICAgIC8vIHVzZSBwYWdlTG9hZE1zLCBvciBhIHNtYWxsIGFtb3VudCBvZiB0aW1lXG4gICAgICBjb25zdCB0aW1lb3V0ID0gdGhpcy51c2VOZXdTYWZhcmkgPyB0aGlzLnBhZ2VMb2FkTXMgOiA1MDA7XG4gICAgICB0aGlzLm5hdmlnYXRpb25EZWxheSA9IHV0aWwuY2FuY2VsbGFibGVEZWxheSh0aW1lb3V0KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMubmF2aWdhdGlvbkRlbGF5O1xuICAgICAgICBuYXZFdmVudExpc3RlbmVyKG51bGwsIGAke3RpbWVvdXR9bXMgdGltZW91dGApO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIG5vdGhpbmcgdG8gZG86IHdlIG9ubHkgZ2V0IGhlcmUgaWYgdGhlIHJlbW90ZSBkZWJ1Z2dlclxuICAgICAgICAvLyBhbHJlYWR5IG5vdGlmaWVkIG9mIGZyYW1lIG5hdmlnYXRpb24sIGFuZCB0aGUgZGVsYXlcbiAgICAgICAgLy8gd2FzIGNhbmNlbGxlZFxuICAgICAgfVxuICAgIH1cbiAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgaWYgKG5hdkV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMucnBjQ2xpZW50Lm9mZignUGFnZS5mcmFtZU5hdmlnYXRlZCcsIG5hdkV2ZW50TGlzdGVuZXIpO1xuICAgIH1cbiAgfSk7XG59XG5cblxuZXhwb3J0IGRlZmF1bHQgeyBmcmFtZURldGFjaGVkLCBwYWdlTG9hZCwgY2FuY2VsUGFnZUxvYWQsIHBhZ2VVbmxvYWQsIHdhaXRGb3JEb20sIGNoZWNrUGFnZUlzUmVhZHksIG5hdlRvVXJsLCB3YWl0Rm9yRnJhbWVOYXZpZ2F0ZWQgfTtcbiJdLCJmaWxlIjoibGliL21peGlucy9uYXZpZ2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getProtocolCommand = getProtocolCommand;
7
6
  exports.default = void 0;
7
+ exports.getProtocolCommand = getProtocolCommand;
8
8
 
9
9
  require("source-map-support/register");
10
10