@appium/support 2.58.0 → 2.59.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/lib/console.d.ts +110 -0
- package/build/lib/console.d.ts.map +1 -0
- package/build/lib/console.js +113 -0
- package/build/lib/env.d.ts.map +1 -1
- package/build/lib/env.js +1 -1
- package/build/lib/fs.d.ts.map +1 -1
- package/build/lib/fs.js +1 -1
- package/build/lib/image-util.d.ts.map +1 -1
- package/build/lib/image-util.js +1 -1
- package/build/lib/index.d.ts +3 -1
- package/build/lib/index.js +8 -3
- package/build/lib/log-internal.d.ts.map +1 -1
- package/build/lib/log-internal.js +1 -1
- package/build/lib/logger.d.ts +1 -1
- package/build/lib/logger.d.ts.map +1 -1
- package/build/lib/logger.js +1 -1
- package/build/lib/logging.d.ts +11 -4
- package/build/lib/logging.d.ts.map +1 -1
- package/build/lib/logging.js +7 -6
- package/build/lib/mjpeg.d.ts.map +1 -1
- package/build/lib/mjpeg.js +1 -1
- package/build/lib/mkdirp.js +1 -1
- package/build/lib/net.d.ts +5 -2
- package/build/lib/net.d.ts.map +1 -1
- package/build/lib/net.js +1 -1
- package/build/lib/node.d.ts.map +1 -1
- package/build/lib/node.js +1 -1
- package/build/lib/npm.d.ts.map +1 -1
- package/build/lib/npm.js +1 -1
- package/build/lib/plist.d.ts +1 -1
- package/build/lib/plist.d.ts.map +1 -1
- package/build/lib/plist.js +1 -1
- package/build/lib/process.d.ts.map +1 -1
- package/build/lib/process.js +1 -1
- package/build/lib/system.js +1 -1
- package/build/lib/tempdir.d.ts.map +1 -1
- package/build/lib/tempdir.js +1 -1
- package/build/lib/timing.d.ts.map +1 -1
- package/build/lib/timing.js +1 -1
- package/build/lib/util.d.ts +19 -2
- package/build/lib/util.d.ts.map +1 -1
- package/build/lib/util.js +3 -7
- package/build/lib/zip.d.ts +5 -5
- package/build/lib/zip.d.ts.map +1 -1
- package/build/lib/zip.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/console.js +173 -0
- package/lib/env.js +12 -14
- package/lib/fs.js +87 -62
- package/lib/image-util.js +50 -32
- package/lib/index.js +39 -8
- package/lib/log-internal.js +16 -11
- package/lib/logger.js +1 -1
- package/lib/logging.js +32 -30
- package/lib/mjpeg.js +32 -27
- package/lib/mkdirp.js +3 -3
- package/lib/net.js +60 -52
- package/lib/node.js +22 -17
- package/lib/npm.js +50 -47
- package/lib/plist.js +34 -18
- package/lib/process.js +8 -6
- package/lib/system.js +8 -8
- package/lib/tempdir.js +14 -9
- package/lib/timing.js +12 -15
- package/lib/util.js +121 -72
- package/lib/zip.js +88 -92
- package/package.json +9 -8
package/build/lib/npm.js
CHANGED
|
@@ -214,4 +214,4 @@ class NPM {
|
|
|
214
214
|
exports.NPM = NPM;
|
|
215
215
|
const npm = new NPM();
|
|
216
216
|
exports.npm = npm;
|
|
217
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDQUNIRV9ESVJfUkVMQVRJVkVfUEFUSCIsInBhdGgiLCJqb2luIiwiSU5TVEFMTF9MT0NLRklMRV9SRUxBVElWRV9QQVRIIiwiTlBNIiwiX2dldEluc3RhbGxMb2NrZmlsZVBhdGgiLCJjd2QiLCJleGVjIiwiY21kIiwiYXJncyIsIm9wdHMiLCJleGVjT3B0cyIsImpzb24iLCJsb2NrRmlsZSIsInVuc2hpZnQiLCJwdXNoIiwibnBtQ21kIiwic3lzdGVtIiwiaXNXaW5kb3dzIiwicnVubmVyIiwiYWNxdWlyZUxvY2siLCJ1dGlsIiwiZ2V0TG9ja0ZpbGVHdWFyZCIsIl9ydW5uZXIiLCJyZXQiLCJzdGRvdXQiLCJzdGRlcnIiLCJjb2RlIiwiSlNPTiIsInBhcnNlIiwiaWduIiwiZSIsImVyciIsIkVycm9yIiwidHJpbSIsImdldExhdGVzdFZlcnNpb24iLCJwa2ciLCJsYXRlc3QiLCJnZXRMYXRlc3RTYWZlVXBncmFkZVZlcnNpb24iLCJjdXJWZXJzaW9uIiwiYWxsVmVyc2lvbnMiLCJnZXRMYXRlc3RTYWZlVXBncmFkZUZyb21WZXJzaW9ucyIsImxpc3QiLCJzYWZlVXBncmFkZVZlciIsImN1clNlbXZlciIsInNlbXZlciIsInRlc3RWZXIiLCJ0ZXN0U2VtdmVyIiwicHJlcmVsZWFzZSIsImxlbmd0aCIsImNvbXBhcmUiLCJtYWpvciIsImZvcm1hdCIsImluc3RhbGxQYWNrYWdlIiwicGtnTmFtZSIsInBrZ1ZlciIsImR1bW15UGtnSnNvbiIsImR1bW15UGtnUGF0aCIsImZzIiwicmVhZEZpbGUiLCJ3cml0ZUZpbGUiLCJzdHJpbmdpZnkiLCJpbnN0YWxsT3B0cyIsInJlcyIsImVycm9yIiwicGtnSnNvblBhdGgiLCJyZXF1aXJlIiwidW5pbnN0YWxsUGFja2FnZSIsIm5wbSJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9ucG0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgaGFzQXBwaXVtRGVwZW5kZW5jeSB9IGZyb20gJy4vZW52JztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgZnMgfSBmcm9tICcuL2ZzJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsJztcbmltcG9ydCAqIGFzIHN5c3RlbSBmcm9tICcuL3N5c3RlbSc7XG5pbXBvcnQgcmVzb2x2ZUZyb20gZnJvbSAncmVzb2x2ZS1mcm9tJztcblxuXG4vKipcbiAqIFJlbGF0aXZlIHBhdGggdG8gZGlyZWN0b3J5IGNvbnRhaW5pbmcgYW55IEFwcGl1bSBpbnRlcm5hbCBmaWxlc1xuICogWFhYOiB0aGlzIGlzIGR1cGxpY2F0ZWQgaW4gYGFwcGl1bS9saWIvY29uc3RhbnRzLmpzYC5cbiAqL1xuZXhwb3J0IGNvbnN0IENBQ0hFX0RJUl9SRUxBVElWRV9QQVRIID0gcGF0aC5qb2luKFxuICAnbm9kZV9tb2R1bGVzJyxcbiAgJy5jYWNoZScsXG4gICdhcHBpdW0nLFxuKTtcblxuLyoqXG4gKiBSZWxhdGl2ZSBwYXRoIHRvIGxvY2tmaWxlIHVzZWQgd2hlbiBpbnN0YWxsaW5nIGFuIGV4dGVuc2lvbiB2aWEgYGFwcGl1bWBcbiAqL1xuZXhwb3J0IGNvbnN0IElOU1RBTExfTE9DS0ZJTEVfUkVMQVRJVkVfUEFUSCA9IHBhdGguam9pbihcbiAgQ0FDSEVfRElSX1JFTEFUSVZFX1BBVEgsXG4gICcuaW5zdGFsbC5sb2NrJyxcbik7XG5cbi8qKlxuICogWFhYOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBhIHNpbmdsZXRvbiwgYnV0IGl0IGlzbid0LiAgTWF5YmUgdGhpcyBtb2R1bGUgc2hvdWxkIGp1c3QgZXhwb3J0IGZ1bmN0aW9ucz9cbiAqL1xuZXhwb3J0IGNsYXNzIE5QTSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHBhdGggdG8gXCJpbnN0YWxsXCIgbG9ja2ZpbGVcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGN3ZFxuICAgKi9cbiAgX2dldEluc3RhbGxMb2NrZmlsZVBhdGggKGN3ZCkge1xuICAgIHJldHVybiBwYXRoLmpvaW4oY3dkLCBJTlNUQUxMX0xPQ0tGSUxFX1JFTEFUSVZFX1BBVEgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgYG5wbWAgd2l0aCBnaXZlbiBhcmdzLlxuICAgKlxuICAgKiBJZiB0aGUgcHJvY2VzcyBleGl0cyB3aXRoIGEgbm9uemVybyBjb2RlLCB0aGUgY29udGVudHMgb2YgYFNURE9VVGAgYW5kIGBTVERFUlJgIHdpbGwgYmUgaW4gdGhlXG4gICAqIGBtZXNzYWdlYCBvZiB0aGUge0BsaW5rIFRlZW5Qcm9jZXNzRXhlY0Vycm9yfSByZWplY3RlZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNtZFxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzXG4gICAqIEBwYXJhbSB7RXhlY09wdHN9IG9wdHNcbiAgICogQHBhcmFtIHtFeGVjT3B0c30gW2V4ZWNPcHRzXVxuICAgKi9cbiAgYXN5bmMgZXhlYyAoY21kLCBhcmdzLCBvcHRzLCBleGVjT3B0cyA9IC8qKiBAdHlwZSB7RXhlY09wdHN9ICovKHt9KSkge1xuICAgIGxldCB7IGN3ZCwganNvbiwgbG9ja0ZpbGUgfSA9IG9wdHM7XG5cbiAgICAvLyBtYWtlIHN1cmUgd2UgcGVyZm9ybSB0aGUgY3VycmVudCBvcGVyYXRpb24gaW4gY3dkXG4gICAgZXhlY09wdHMgPSB7Li4uZXhlY09wdHMsIGN3ZH07XG5cbiAgICBhcmdzLnVuc2hpZnQoY21kKTtcbiAgICBpZiAoanNvbikge1xuICAgICAgYXJncy5wdXNoKCctLWpzb24nKTtcbiAgICB9XG4gICAgY29uc3QgbnBtQ21kID0gc3lzdGVtLmlzV2luZG93cygpID8gJ25wbS5jbWQnIDogJ25wbSc7XG4gICAgbGV0IHJ1bm5lciA9IGFzeW5jICgpID0+IGF3YWl0IGV4ZWMobnBtQ21kLCBhcmdzLCBleGVjT3B0cyk7XG4gICAgaWYgKGxvY2tGaWxlKSB7XG4gICAgICBjb25zdCBhY3F1aXJlTG9jayA9IHV0aWwuZ2V0TG9ja0ZpbGVHdWFyZChsb2NrRmlsZSk7XG4gICAgICBjb25zdCBfcnVubmVyID0gcnVubmVyO1xuICAgICAgcnVubmVyID0gYXN5bmMgKCkgPT4gYXdhaXQgYWNxdWlyZUxvY2soX3J1bm5lcik7XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHtpbXBvcnQoJ3RlZW5fcHJvY2VzcycpLkV4ZWNSZXN1bHQ8c3RyaW5nPiAmIHtqc29uPzogYW55fX0gKi9cbiAgICBsZXQgcmV0O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7c3Rkb3V0LCBzdGRlcnIsIGNvZGV9ID0gYXdhaXQgcnVubmVyKCk7XG4gICAgICByZXQgPSB7c3Rkb3V0LCBzdGRlcnIsIGNvZGV9O1xuICAgICAgLy8gaWYgcG9zc2libGUsIHBhcnNlIE5QTSdzIGpzb24gb3V0cHV0LiBEdXJpbmcgTlBNIGluc3RhbGwgM3JkLXBhcnR5XG4gICAgICAvLyBwYWNrYWdlcyBjYW4gd3JpdGUgdG8gc3Rkb3V0LCBzbyBzb21ldGltZXMgdGhlIGpzb24gb3V0cHV0IGNhbid0IGJlXG4gICAgICAvLyBndWFyYW50ZWVkIHRvIGJlIHBhcnNlYWJsZVxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0Lmpzb24gPSBKU09OLnBhcnNlKHN0ZG91dCk7XG4gICAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3Qge3N0ZG91dCA9ICcnLCBzdGRlcnIgPSAnJywgY29kZSA9IG51bGx9ID0gLyoqIEB0eXBlIHtUZWVuUHJvY2Vzc0V4ZWNFcnJvcn0gKi8oZSk7XG4gICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYG5wbSBjb21tYW5kICcke2FyZ3Muam9pbignICcpfScgZmFpbGVkIHdpdGggY29kZSAke2NvZGV9LlxcblxcblNURE9VVDpcXG4ke3N0ZG91dC50cmltKCl9XFxuXFxuU1RERVJSOlxcbiR7c3RkZXJyLnRyaW0oKX1gKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwa2dcbiAgICovXG4gIGFzeW5jIGdldExhdGVzdFZlcnNpb24gKGN3ZCwgcGtnKSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmV4ZWMoJ3ZpZXcnLCBbcGtnLCAnZGlzdC10YWdzJ10sIHtcbiAgICAgIGpzb246IHRydWUsXG4gICAgICBjd2RcbiAgICB9KSkuanNvbj8ubGF0ZXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjd2RcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBrZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gY3VyVmVyc2lvblxuICAgKi9cbiAgYXN5bmMgZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVWZXJzaW9uIChjd2QsIHBrZywgY3VyVmVyc2lvbikge1xuICAgIGNvbnN0IGFsbFZlcnNpb25zID0gKGF3YWl0IHRoaXMuZXhlYygndmlldycsIFtwa2csICd2ZXJzaW9ucyddLCB7XG4gICAgICBqc29uOiB0cnVlLFxuICAgICAgY3dkXG4gICAgfSkpLmpzb247XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVGcm9tVmVyc2lvbnMoY3VyVmVyc2lvbiwgYWxsVmVyc2lvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYG5wbSBsc2AsIG9wdGlvbmFsbHkgZm9yIGEgcGFydGljdWxhciBwYWNrYWdlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGtnXVxuICAgKi9cbiAgYXN5bmMgbGlzdCAoY3dkLCBwa2cpIHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZXhlYygnbGlzdCcsIHBrZyA/IFtwa2ddIDogW10sIHtjd2QsIGpzb246IHRydWV9KSkuanNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIGN1cnJlbnQgdmVyc2lvbiBhbmQgYSBsaXN0IG9mIGFsbCB2ZXJzaW9ucyBmb3IgYSBwYWNrYWdlLCByZXR1cm4gdGhlIHZlcnNpb24gd2hpY2ggaXNcbiAgICogdGhlIGhpZ2hlc3Qgc2FmZWx5LXVwZ3JhZGFibGUgdmVyc2lvbiAobWVhbmluZyBub3QgY3Jvc3NpbmcgYW55IG1ham9yIHJldmlzaW9uIGJvdW5kYXJpZXMsIGFuZFxuICAgKiBub3QgaW5jbHVkaW5nIGFueSBhbHBoYS9iZXRhL3JjIHZlcnNpb25zKVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3VyVmVyc2lvbiAtIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgYSBwYWNrYWdlXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gYWxsVmVyc2lvbnMgLSBhIGxpc3Qgb2YgdmVyc2lvbiBzdHJpbmdzXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ3xudWxsfSAtIHRoZSBoaWdoZXN0IHNhZmVseS11cGdyYWRhYmxlIHZlcnNpb24sIG9yIG51bGwgaWYgdGhlcmUgaXNuJ3Qgb25lXG4gICAqL1xuICBnZXRMYXRlc3RTYWZlVXBncmFkZUZyb21WZXJzaW9ucyAoY3VyVmVyc2lvbiwgYWxsVmVyc2lvbnMpIHtcbiAgICBsZXQgc2FmZVVwZ3JhZGVWZXIgPSBudWxsO1xuICAgIGNvbnN0IGN1clNlbXZlciA9IHNlbXZlci5wYXJzZShjdXJWZXJzaW9uKTtcbiAgICBpZiAoY3VyU2VtdmVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBwYXJzZSBjdXJyZW50IHZlcnNpb24gJyR7Y3VyVmVyc2lvbn0nYCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgdGVzdFZlciBvZiBhbGxWZXJzaW9ucykge1xuICAgICAgY29uc3QgdGVzdFNlbXZlciA9IHNlbXZlci5wYXJzZSh0ZXN0VmVyKTtcbiAgICAgIGlmICh0ZXN0U2VtdmVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHBhcnNlIHZlcnNpb24gdG8gdGVzdCBhZ2FpbnN0OiAnJHt0ZXN0VmVyfSdgKTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHRoZSB0ZXN0IHZlcnNpb24gaXMgYSBwcmVyZWxlYXNlLCBpZ25vcmUgaXRcbiAgICAgIGlmICh0ZXN0U2VtdmVyLnByZXJlbGVhc2UubGVuZ3RoID4gMCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHRoZSBjdXJyZW50IHZlcnNpb24gaXMgbGF0ZXIgdGhhbiB0aGUgdGVzdCB2ZXJzaW9uLCBza2lwIHRoaXMgdGVzdCB2ZXJzaW9uXG4gICAgICBpZiAoY3VyU2VtdmVyLmNvbXBhcmUodGVzdFNlbXZlcikgPT09IDEpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyBpZiB0aGUgdGVzdCB2ZXJzaW9uIGlzIG5ld2VyLCBidXQgY3Jvc3NlcyBhIG1ham9yIHJldmlzaW9uIGJvdW5kYXJ5LCBhbHNvIHNraXAgaXRcbiAgICAgIGlmICh0ZXN0U2VtdmVyLm1ham9yID4gY3VyU2VtdmVyLm1ham9yKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLy8gb3RoZXJ3aXNlIHRoaXMgdmVyc2lvbiBpcyBzYWZlIHRvIHVwZ3JhZGUgdG8uIEJ1dCB0aGVyZSBtaWdodCBiZSBtdWx0aXBsZSBvbmVzIG9mIHRoaXNcbiAgICAgIC8vIGtpbmQsIHNvIGtlZXAgaXRlcmF0aW5nIGFuZCBrZWVwaW5nIHRoZSBoaWdoZXN0XG4gICAgICBpZiAoc2FmZVVwZ3JhZGVWZXIgPT09IG51bGwgfHwgdGVzdFNlbXZlci5jb21wYXJlKHNhZmVVcGdyYWRlVmVyKSA9PT0gMSkge1xuICAgICAgICBzYWZlVXBncmFkZVZlciA9IHRlc3RTZW12ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzYWZlVXBncmFkZVZlcikge1xuICAgICAgc2FmZVVwZ3JhZGVWZXIgPSBzYWZlVXBncmFkZVZlci5mb3JtYXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHNhZmVVcGdyYWRlVmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGxzIGEgcGFja2FnZSB3LyBgbnBtYFxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwa2dOYW1lXG4gICAqIEBwYXJhbSB7SW5zdGFsbFBhY2thZ2VPcHRzfSBbb3B0c11cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KCd0eXBlLWZlc3QnKS5QYWNrYWdlSnNvbj59XG4gICAqL1xuICBhc3luYyBpbnN0YWxsUGFja2FnZSAoY3dkLCBwa2dOYW1lLCB7cGtnVmVyfSA9IHt9KSB7XG4gICAgLyoqIEB0eXBlIHthbnl9ICovXG4gICAgbGV0IGR1bW15UGtnSnNvbjtcbiAgICBjb25zdCBkdW1teVBrZ1BhdGggPSBwYXRoLmpvaW4oY3dkLCAncGFja2FnZS5qc29uJyk7XG4gICAgdHJ5IHtcbiAgICAgIGR1bW15UGtnSnNvbiA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUoZHVtbXlQa2dQYXRoLCAndXRmOCcpKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgICAgZHVtbXlQa2dKc29uID0ge307XG4gICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShkdW1teVBrZ1BhdGgsIEpTT04uc3RyaW5naWZ5KGR1bW15UGtnSnNvbiwgbnVsbCwgMiksICd1dGY4Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgd2UndmUgZm91bmQgYSBgcGFja2FnZS5qc29uYCBjb250YWluaW5lZCB0aGUgYGFwcGl1bUNyZWF0ZWRgIHByb3BlcnR5LFxuICAgICAqIHRoZW4gd2UgY2FuIGRvIHdoYXRldmVyIHdlIHBsZWFzZSB3aXRoIGl0LCBzaW5jZSB3ZSBjcmVhdGVkIGl0LiAgVGhpcyBpc1xuICAgICAqIGxpa2VseSB3aGVuIGBBUFBJVU1fSE9NRWAgaXMgdGhlIGRlZmF1bHQgKGluIGB+Ly5hcHBpdW1gKS4gIEluIHRoYXQgY2FzZSxcbiAgICAgKiB3ZSB3YW50IGAtLWdsb2JhbC1zdHlsZWAgdG8gYXZvaWQgZGVkdXBpbmcsIGFuZCB3ZSBhbHNvIGRvIG5vdCBuZWVkIGFcbiAgICAgKiBgcGFja2FnZS1sb2NrLmpzb25gLlxuICAgICAqXG4gICAgICogSWYgd2UgX2hhdmVuJ3RfIGZvdW5kIHN1Y2ggYSBrZXksIHRoZW4gdGhpcyBgcGFja2FnZS5qc29uYCBpc24ndCBhXG4gICAgICogXCJkdW1teVwiIGFuZCBpcyBjb250cm9sbGVkIGJ5IHRoZSB1c2VyLiAgU28gd2UnbGwganVzdCBhZGQgaXQgYXMgYSBkZXZcbiAgICAgKiBkZXA7IHdoYXRldmVyIGVsc2UgaXQgZG9lcyBpcyB1cCB0byB0aGUgdXNlcidzIG5wbSBjb25maWcuXG4gICAgICovXG4gICAgY29uc3QgaW5zdGFsbE9wdHMgPSBhd2FpdCBoYXNBcHBpdW1EZXBlbmRlbmN5KGN3ZCkgP1xuICAgICAgWyctLXNhdmUtZGV2J10gOlxuICAgICAgWyctLXNhdmUtZGV2JywgJy0tc2F2ZS1leGFjdCcsICctLWdsb2JhbC1zdHlsZScsICctLW5vLXBhY2thZ2UtbG9jayddO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5leGVjKCdpbnN0YWxsJywgW1xuICAgICAgLi4uaW5zdGFsbE9wdHMsXG4gICAgICBwa2dWZXIgPyBgJHtwa2dOYW1lfUAke3BrZ1Zlcn1gIDogcGtnTmFtZVxuICAgIF0sIHtcbiAgICAgIGN3ZCxcbiAgICAgIGpzb246IHRydWUsXG4gICAgICBsb2NrRmlsZTogdGhpcy5fZ2V0SW5zdGFsbExvY2tmaWxlUGF0aChjd2QpXG4gICAgfSk7XG5cbiAgICBpZiAocmVzLmpzb24pIHtcbiAgICAgIC8vIHdlIHBhcnNlZCBhIHZhbGlkIGpzb24gcmVzcG9uc2UsIHNvIGlmIHdlIGdvdCBhbiBlcnJvciBoZXJlLCByZXR1cm4gdGhhdFxuICAgICAgLy8gbWVzc2FnZSBzdHJhaWdodGF3YXlcbiAgICAgIGlmIChyZXMuanNvbi5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzLmpzb24uZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vdyByZWFkIHBhY2thZ2UgZGF0YSBmcm9tIHRoZSBpbnN0YWxsZWQgcGFja2FnZSB0byByZXR1cm4sIGFuZCBtYWtlIHN1cmVcbiAgICAvLyBldmVyeXRoaW5nIGdvdCBpbnN0YWxsZWQgb2suIFJlbWVtYmVyLCBwa2dOYW1lIG1pZ2h0IGVuZCB1cCB3aXRoIGEgLyBpbiBpdCBkdWUgdG8gYW4gbnBtXG4gICAgLy8gb3JnLCBzbyBpZiBzbywgdGhhdCB3aWxsIGdldCBjb3JyZWN0bHkgZXhwbG9kZWQgaW50byBtdWx0aXBsZSBkaXJlY3RvcmllcywgYnkgcGF0aC5yZXNvbHZlIGhlcmVcbiAgICAvLyAoZXZlbiBvbiBXaW5kb3dzISlcbiAgICBjb25zdCBwa2dKc29uUGF0aCA9IHJlc29sdmVGcm9tKGN3ZCwgYCR7cGtnTmFtZX0vcGFja2FnZS5qc29uYCk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiByZXF1aXJlKHBrZ0pzb25QYXRoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHBhY2thZ2Ugd2FzIG5vdCBkb3dubG9hZGVkIGNvcnJlY3RseTsgaXRzIHBhY2thZ2UuanNvbiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAnZGlkIG5vdCBleGlzdCBvciB3YXMgdW5yZWFkYWJsZS4gV2UgbG9va2VkIGZvciBpdCBhdCAnICtcbiAgICAgICAgICAgICAgICAgICAgICBwa2dKc29uUGF0aCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjd2RcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBrZ1xuICAgKi9cbiAgYXN5bmMgdW5pbnN0YWxsUGFja2FnZSAoY3dkLCBwa2cpIHtcbiAgICBhd2FpdCB0aGlzLmV4ZWMoJ3VuaW5zdGFsbCcsIFtwa2ddLCB7XG4gICAgICBjd2QsXG4gICAgICBsb2NrRmlsZTogdGhpcy5fZ2V0SW5zdGFsbExvY2tmaWxlUGF0aChjd2QpXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG5wbSA9IG5ldyBOUE0oKTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgTlBNLmluc3RhbGxQYWNrYWdlfVxuICogQHR5cGVkZWYgSW5zdGFsbFBhY2thZ2VPcHRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3BrZ1Zlcl0gLSB0aGUgdmVyc2lvbiBvZiB0aGUgcGFja2FnZSB0byBpbnN0YWxsXG4gKi9cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgTlBNLmV4ZWN9XG4gKiBAdHlwZWRlZiBFeGVjT3B0c1xuICogQHByb3BlcnR5IHtzdHJpbmd9IGN3ZCAtIEN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnlcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2pzb25dIC0gSWYgYHRydWVgLCBzdXBwbHkgYC0tanNvbmAgZmxhZyB0byBucG0gYW5kIHJlc29sdmUgdy8gcGFyc2VkIEpTT05cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbbG9ja0ZpbGVdIC0gUGF0aCB0byBsb2NrZmlsZSB0byB1c2VcbiAqL1xuXG4vLyBUSEVTRSBUWVBFUyBTSE9VTEQgQkUgSU4gVEVFTiBQUk9DRVNTLCBOT1QgSEVSRVxuXG4vKipcbiAqIEV4dHJhIHByb3BzIGB0ZWVuX3Byb2Nlc3MuZXhlY2AgYWRkcyB0byBpdHMgZXJyb3Igb2JqZWN0c1xuICogQHR5cGVkZWYgVGVlblByb2Nlc3NFeGVjRXJyb3JQcm9wc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IHN0ZG91dCAtIFNURE9VVFxuICogQHByb3BlcnR5IHtzdHJpbmd9IHN0ZGVyciAtIFNUREVSUlxuICogQHByb3BlcnR5IHtudW1iZXI/fSBjb2RlIC0gRXhpdCBjb2RlXG4gKi9cblxuLyoqXG4gKiBFcnJvciB0aHJvd24gYnkgYHRlZW5fcHJvY2Vzcy5leGVjYFxuICogQHR5cGVkZWYge0Vycm9yICYgVGVlblByb2Nlc3NFeGVjRXJyb3JQcm9wc30gVGVlblByb2Nlc3NFeGVjRXJyb3JcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFPTyxNQUFNQSx1QkFBdUIsR0FBR0MsY0FBS0MsSUFBTCxDQUNyQyxjQURxQyxFQUVyQyxRQUZxQyxFQUdyQyxRQUhxQyxDQUFoQzs7OztBQVNBLE1BQU1DLDhCQUE4QixHQUFHRixjQUFLQyxJQUFMLENBQzVDRix1QkFENEMsRUFFNUMsZUFGNEMsQ0FBdkM7Ozs7QUFRQSxNQUFNSSxHQUFOLENBQVU7RUFNZkMsdUJBQXVCLENBQUVDLEdBQUYsRUFBTztJQUM1QixPQUFPTCxjQUFLQyxJQUFMLENBQVVJLEdBQVYsRUFBZUgsOEJBQWYsQ0FBUDtFQUNEOztFQVlTLE1BQUpJLElBQUksQ0FBRUMsR0FBRixFQUFPQyxJQUFQLEVBQWFDLElBQWIsRUFBbUJDLFFBQVEsR0FBMkIsRUFBdEQsRUFBMkQ7SUFDbkUsSUFBSTtNQUFFTCxHQUFGO01BQU9NLElBQVA7TUFBYUM7SUFBYixJQUEwQkgsSUFBOUI7SUFHQUMsUUFBUSxHQUFHLEVBQUMsR0FBR0EsUUFBSjtNQUFjTDtJQUFkLENBQVg7SUFFQUcsSUFBSSxDQUFDSyxPQUFMLENBQWFOLEdBQWI7O0lBQ0EsSUFBSUksSUFBSixFQUFVO01BQ1JILElBQUksQ0FBQ00sSUFBTCxDQUFVLFFBQVY7SUFDRDs7SUFDRCxNQUFNQyxNQUFNLEdBQUdDLE1BQU0sQ0FBQ0MsU0FBUCxLQUFxQixTQUFyQixHQUFpQyxLQUFoRDs7SUFDQSxJQUFJQyxNQUFNLEdBQUcsWUFBWSxNQUFNLHdCQUFLSCxNQUFMLEVBQWFQLElBQWIsRUFBbUJFLFFBQW5CLENBQS9COztJQUNBLElBQUlFLFFBQUosRUFBYztNQUNaLE1BQU1PLFdBQVcsR0FBR0MsSUFBSSxDQUFDQyxnQkFBTCxDQUFzQlQsUUFBdEIsQ0FB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
|
|
217
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDQUNIRV9ESVJfUkVMQVRJVkVfUEFUSCIsInBhdGgiLCJqb2luIiwiSU5TVEFMTF9MT0NLRklMRV9SRUxBVElWRV9QQVRIIiwiTlBNIiwiX2dldEluc3RhbGxMb2NrZmlsZVBhdGgiLCJjd2QiLCJleGVjIiwiY21kIiwiYXJncyIsIm9wdHMiLCJleGVjT3B0cyIsImpzb24iLCJsb2NrRmlsZSIsInVuc2hpZnQiLCJwdXNoIiwibnBtQ21kIiwic3lzdGVtIiwiaXNXaW5kb3dzIiwicnVubmVyIiwiYWNxdWlyZUxvY2siLCJ1dGlsIiwiZ2V0TG9ja0ZpbGVHdWFyZCIsIl9ydW5uZXIiLCJyZXQiLCJzdGRvdXQiLCJzdGRlcnIiLCJjb2RlIiwiSlNPTiIsInBhcnNlIiwiaWduIiwiZSIsImVyciIsIkVycm9yIiwidHJpbSIsImdldExhdGVzdFZlcnNpb24iLCJwa2ciLCJsYXRlc3QiLCJnZXRMYXRlc3RTYWZlVXBncmFkZVZlcnNpb24iLCJjdXJWZXJzaW9uIiwiYWxsVmVyc2lvbnMiLCJnZXRMYXRlc3RTYWZlVXBncmFkZUZyb21WZXJzaW9ucyIsImxpc3QiLCJzYWZlVXBncmFkZVZlciIsImN1clNlbXZlciIsInNlbXZlciIsInRlc3RWZXIiLCJ0ZXN0U2VtdmVyIiwicHJlcmVsZWFzZSIsImxlbmd0aCIsImNvbXBhcmUiLCJtYWpvciIsImZvcm1hdCIsImluc3RhbGxQYWNrYWdlIiwicGtnTmFtZSIsInBrZ1ZlciIsImR1bW15UGtnSnNvbiIsImR1bW15UGtnUGF0aCIsImZzIiwicmVhZEZpbGUiLCJ3cml0ZUZpbGUiLCJzdHJpbmdpZnkiLCJpbnN0YWxsT3B0cyIsImhhc0FwcGl1bURlcGVuZGVuY3kiLCJyZXMiLCJlcnJvciIsInBrZ0pzb25QYXRoIiwicmVzb2x2ZUZyb20iLCJyZXF1aXJlIiwidW5pbnN0YWxsUGFja2FnZSIsIm5wbSJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9ucG0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHtoYXNBcHBpdW1EZXBlbmRlbmN5fSBmcm9tICcuL2Vudic7XG5pbXBvcnQge2V4ZWN9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQge2ZzfSBmcm9tICcuL2ZzJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi91dGlsJztcbmltcG9ydCAqIGFzIHN5c3RlbSBmcm9tICcuL3N5c3RlbSc7XG5pbXBvcnQgcmVzb2x2ZUZyb20gZnJvbSAncmVzb2x2ZS1mcm9tJztcblxuLyoqXG4gKiBSZWxhdGl2ZSBwYXRoIHRvIGRpcmVjdG9yeSBjb250YWluaW5nIGFueSBBcHBpdW0gaW50ZXJuYWwgZmlsZXNcbiAqIFhYWDogdGhpcyBpcyBkdXBsaWNhdGVkIGluIGBhcHBpdW0vbGliL2NvbnN0YW50cy5qc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBDQUNIRV9ESVJfUkVMQVRJVkVfUEFUSCA9IHBhdGguam9pbignbm9kZV9tb2R1bGVzJywgJy5jYWNoZScsICdhcHBpdW0nKTtcblxuLyoqXG4gKiBSZWxhdGl2ZSBwYXRoIHRvIGxvY2tmaWxlIHVzZWQgd2hlbiBpbnN0YWxsaW5nIGFuIGV4dGVuc2lvbiB2aWEgYGFwcGl1bWBcbiAqL1xuZXhwb3J0IGNvbnN0IElOU1RBTExfTE9DS0ZJTEVfUkVMQVRJVkVfUEFUSCA9IHBhdGguam9pbihDQUNIRV9ESVJfUkVMQVRJVkVfUEFUSCwgJy5pbnN0YWxsLmxvY2snKTtcblxuLyoqXG4gKiBYWFg6IFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIGEgc2luZ2xldG9uLCBidXQgaXQgaXNuJ3QuICBNYXliZSB0aGlzIG1vZHVsZSBzaG91bGQganVzdCBleHBvcnQgZnVuY3Rpb25zP1xuICovXG5leHBvcnQgY2xhc3MgTlBNIHtcbiAgLyoqXG4gICAqIFJldHVybnMgcGF0aCB0byBcImluc3RhbGxcIiBsb2NrZmlsZVxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkXG4gICAqL1xuICBfZ2V0SW5zdGFsbExvY2tmaWxlUGF0aChjd2QpIHtcbiAgICByZXR1cm4gcGF0aC5qb2luKGN3ZCwgSU5TVEFMTF9MT0NLRklMRV9SRUxBVElWRV9QQVRIKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGBucG1gIHdpdGggZ2l2ZW4gYXJncy5cbiAgICpcbiAgICogSWYgdGhlIHByb2Nlc3MgZXhpdHMgd2l0aCBhIG5vbnplcm8gY29kZSwgdGhlIGNvbnRlbnRzIG9mIGBTVERPVVRgIGFuZCBgU1RERVJSYCB3aWxsIGJlIGluIHRoZVxuICAgKiBgbWVzc2FnZWAgb2YgdGhlIHtAbGluayBUZWVuUHJvY2Vzc0V4ZWNFcnJvcn0gcmVqZWN0ZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjbWRcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYXJnc1xuICAgKiBAcGFyYW0ge0V4ZWNPcHRzfSBvcHRzXG4gICAqIEBwYXJhbSB7RXhlY09wdHN9IFtleGVjT3B0c11cbiAgICovXG4gIGFzeW5jIGV4ZWMoY21kLCBhcmdzLCBvcHRzLCBleGVjT3B0cyA9IC8qKiBAdHlwZSB7RXhlY09wdHN9ICovICh7fSkpIHtcbiAgICBsZXQge2N3ZCwganNvbiwgbG9ja0ZpbGV9ID0gb3B0cztcblxuICAgIC8vIG1ha2Ugc3VyZSB3ZSBwZXJmb3JtIHRoZSBjdXJyZW50IG9wZXJhdGlvbiBpbiBjd2RcbiAgICBleGVjT3B0cyA9IHsuLi5leGVjT3B0cywgY3dkfTtcblxuICAgIGFyZ3MudW5zaGlmdChjbWQpO1xuICAgIGlmIChqc29uKSB7XG4gICAgICBhcmdzLnB1c2goJy0tanNvbicpO1xuICAgIH1cbiAgICBjb25zdCBucG1DbWQgPSBzeXN0ZW0uaXNXaW5kb3dzKCkgPyAnbnBtLmNtZCcgOiAnbnBtJztcbiAgICBsZXQgcnVubmVyID0gYXN5bmMgKCkgPT4gYXdhaXQgZXhlYyhucG1DbWQsIGFyZ3MsIGV4ZWNPcHRzKTtcbiAgICBpZiAobG9ja0ZpbGUpIHtcbiAgICAgIGNvbnN0IGFjcXVpcmVMb2NrID0gdXRpbC5nZXRMb2NrRmlsZUd1YXJkKGxvY2tGaWxlKTtcbiAgICAgIGNvbnN0IF9ydW5uZXIgPSBydW5uZXI7XG4gICAgICBydW5uZXIgPSBhc3luYyAoKSA9PiBhd2FpdCBhY3F1aXJlTG9jayhfcnVubmVyKTtcbiAgICB9XG5cbiAgICAvKiogQHR5cGUge2ltcG9ydCgndGVlbl9wcm9jZXNzJykuRXhlY1Jlc3VsdDxzdHJpbmc+ICYge2pzb24/OiBhbnl9fSAqL1xuICAgIGxldCByZXQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHtzdGRvdXQsIHN0ZGVyciwgY29kZX0gPSBhd2FpdCBydW5uZXIoKTtcbiAgICAgIHJldCA9IHtzdGRvdXQsIHN0ZGVyciwgY29kZX07XG4gICAgICAvLyBpZiBwb3NzaWJsZSwgcGFyc2UgTlBNJ3MganNvbiBvdXRwdXQuIER1cmluZyBOUE0gaW5zdGFsbCAzcmQtcGFydHlcbiAgICAgIC8vIHBhY2thZ2VzIGNhbiB3cml0ZSB0byBzdGRvdXQsIHNvIHNvbWV0aW1lcyB0aGUganNvbiBvdXRwdXQgY2FuJ3QgYmVcbiAgICAgIC8vIGd1YXJhbnRlZWQgdG8gYmUgcGFyc2VhYmxlXG4gICAgICB0cnkge1xuICAgICAgICByZXQuanNvbiA9IEpTT04ucGFyc2Uoc3Rkb3V0KTtcbiAgICAgIH0gY2F0Y2ggKGlnbikge31cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zdCB7c3Rkb3V0ID0gJycsIHN0ZGVyciA9ICcnLCBjb2RlID0gbnVsbH0gPSAvKiogQHR5cGUge1RlZW5Qcm9jZXNzRXhlY0Vycm9yfSAqLyAoZSk7XG4gICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoXG4gICAgICAgIGBucG0gY29tbWFuZCAnJHthcmdzLmpvaW4oXG4gICAgICAgICAgJyAnXG4gICAgICAgICl9JyBmYWlsZWQgd2l0aCBjb2RlICR7Y29kZX0uXFxuXFxuU1RET1VUOlxcbiR7c3Rkb3V0LnRyaW0oKX1cXG5cXG5TVERFUlI6XFxuJHtzdGRlcnIudHJpbSgpfWBcbiAgICAgICk7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGN3ZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGtnXG4gICAqL1xuICBhc3luYyBnZXRMYXRlc3RWZXJzaW9uKGN3ZCwgcGtnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IHRoaXMuZXhlYygndmlldycsIFtwa2csICdkaXN0LXRhZ3MnXSwge1xuICAgICAgICBqc29uOiB0cnVlLFxuICAgICAgICBjd2QsXG4gICAgICB9KVxuICAgICkuanNvbj8ubGF0ZXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjd2RcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBrZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gY3VyVmVyc2lvblxuICAgKi9cbiAgYXN5bmMgZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVWZXJzaW9uKGN3ZCwgcGtnLCBjdXJWZXJzaW9uKSB7XG4gICAgY29uc3QgYWxsVmVyc2lvbnMgPSAoXG4gICAgICBhd2FpdCB0aGlzLmV4ZWMoJ3ZpZXcnLCBbcGtnLCAndmVyc2lvbnMnXSwge1xuICAgICAgICBqc29uOiB0cnVlLFxuICAgICAgICBjd2QsXG4gICAgICB9KVxuICAgICkuanNvbjtcbiAgICByZXR1cm4gdGhpcy5nZXRMYXRlc3RTYWZlVXBncmFkZUZyb21WZXJzaW9ucyhjdXJWZXJzaW9uLCBhbGxWZXJzaW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUnVucyBgbnBtIGxzYCwgb3B0aW9uYWxseSBmb3IgYSBwYXJ0aWN1bGFyIHBhY2thZ2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjd2RcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtwa2ddXG4gICAqL1xuICBhc3luYyBsaXN0KGN3ZCwgcGtnKSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmV4ZWMoJ2xpc3QnLCBwa2cgPyBbcGtnXSA6IFtdLCB7Y3dkLCBqc29uOiB0cnVlfSkpLmpzb247XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBjdXJyZW50IHZlcnNpb24gYW5kIGEgbGlzdCBvZiBhbGwgdmVyc2lvbnMgZm9yIGEgcGFja2FnZSwgcmV0dXJuIHRoZSB2ZXJzaW9uIHdoaWNoIGlzXG4gICAqIHRoZSBoaWdoZXN0IHNhZmVseS11cGdyYWRhYmxlIHZlcnNpb24gKG1lYW5pbmcgbm90IGNyb3NzaW5nIGFueSBtYWpvciByZXZpc2lvbiBib3VuZGFyaWVzLCBhbmRcbiAgICogbm90IGluY2x1ZGluZyBhbnkgYWxwaGEvYmV0YS9yYyB2ZXJzaW9ucylcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGN1clZlcnNpb24gLSB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIGEgcGFja2FnZVxuICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IGFsbFZlcnNpb25zIC0gYSBsaXN0IG9mIHZlcnNpb24gc3RyaW5nc1xuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmd8bnVsbH0gLSB0aGUgaGlnaGVzdCBzYWZlbHktdXBncmFkYWJsZSB2ZXJzaW9uLCBvciBudWxsIGlmIHRoZXJlIGlzbid0IG9uZVxuICAgKi9cbiAgZ2V0TGF0ZXN0U2FmZVVwZ3JhZGVGcm9tVmVyc2lvbnMoY3VyVmVyc2lvbiwgYWxsVmVyc2lvbnMpIHtcbiAgICBsZXQgc2FmZVVwZ3JhZGVWZXIgPSBudWxsO1xuICAgIGNvbnN0IGN1clNlbXZlciA9IHNlbXZlci5wYXJzZShjdXJWZXJzaW9uKTtcbiAgICBpZiAoY3VyU2VtdmVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBwYXJzZSBjdXJyZW50IHZlcnNpb24gJyR7Y3VyVmVyc2lvbn0nYCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgdGVzdFZlciBvZiBhbGxWZXJzaW9ucykge1xuICAgICAgY29uc3QgdGVzdFNlbXZlciA9IHNlbXZlci5wYXJzZSh0ZXN0VmVyKTtcbiAgICAgIGlmICh0ZXN0U2VtdmVyID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHBhcnNlIHZlcnNpb24gdG8gdGVzdCBhZ2FpbnN0OiAnJHt0ZXN0VmVyfSdgKTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHRoZSB0ZXN0IHZlcnNpb24gaXMgYSBwcmVyZWxlYXNlLCBpZ25vcmUgaXRcbiAgICAgIGlmICh0ZXN0U2VtdmVyLnByZXJlbGVhc2UubGVuZ3RoID4gMCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHRoZSBjdXJyZW50IHZlcnNpb24gaXMgbGF0ZXIgdGhhbiB0aGUgdGVzdCB2ZXJzaW9uLCBza2lwIHRoaXMgdGVzdCB2ZXJzaW9uXG4gICAgICBpZiAoY3VyU2VtdmVyLmNvbXBhcmUodGVzdFNlbXZlcikgPT09IDEpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyBpZiB0aGUgdGVzdCB2ZXJzaW9uIGlzIG5ld2VyLCBidXQgY3Jvc3NlcyBhIG1ham9yIHJldmlzaW9uIGJvdW5kYXJ5LCBhbHNvIHNraXAgaXRcbiAgICAgIGlmICh0ZXN0U2VtdmVyLm1ham9yID4gY3VyU2VtdmVyLm1ham9yKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLy8gb3RoZXJ3aXNlIHRoaXMgdmVyc2lvbiBpcyBzYWZlIHRvIHVwZ3JhZGUgdG8uIEJ1dCB0aGVyZSBtaWdodCBiZSBtdWx0aXBsZSBvbmVzIG9mIHRoaXNcbiAgICAgIC8vIGtpbmQsIHNvIGtlZXAgaXRlcmF0aW5nIGFuZCBrZWVwaW5nIHRoZSBoaWdoZXN0XG4gICAgICBpZiAoc2FmZVVwZ3JhZGVWZXIgPT09IG51bGwgfHwgdGVzdFNlbXZlci5jb21wYXJlKHNhZmVVcGdyYWRlVmVyKSA9PT0gMSkge1xuICAgICAgICBzYWZlVXBncmFkZVZlciA9IHRlc3RTZW12ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzYWZlVXBncmFkZVZlcikge1xuICAgICAgc2FmZVVwZ3JhZGVWZXIgPSBzYWZlVXBncmFkZVZlci5mb3JtYXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHNhZmVVcGdyYWRlVmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGxzIGEgcGFja2FnZSB3LyBgbnBtYFxuICAgKiBAcGFyYW0ge3N0cmluZ30gY3dkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwa2dOYW1lXG4gICAqIEBwYXJhbSB7SW5zdGFsbFBhY2thZ2VPcHRzfSBbb3B0c11cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KCd0eXBlLWZlc3QnKS5QYWNrYWdlSnNvbj59XG4gICAqL1xuICBhc3luYyBpbnN0YWxsUGFja2FnZShjd2QsIHBrZ05hbWUsIHtwa2dWZXJ9ID0ge30pIHtcbiAgICAvKiogQHR5cGUge2FueX0gKi9cbiAgICBsZXQgZHVtbXlQa2dKc29uO1xuICAgIGNvbnN0IGR1bW15UGtnUGF0aCA9IHBhdGguam9pbihjd2QsICdwYWNrYWdlLmpzb24nKTtcbiAgICB0cnkge1xuICAgICAgZHVtbXlQa2dKc29uID0gSlNPTi5wYXJzZShhd2FpdCBmcy5yZWFkRmlsZShkdW1teVBrZ1BhdGgsICd1dGY4JykpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyci5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgICBkdW1teVBrZ0pzb24gPSB7fTtcbiAgICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKGR1bW15UGtnUGF0aCwgSlNPTi5zdHJpbmdpZnkoZHVtbXlQa2dKc29uLCBudWxsLCAyKSwgJ3V0ZjgnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB3ZSd2ZSBmb3VuZCBhIGBwYWNrYWdlLmpzb25gIGNvbnRhaW5pbmVkIHRoZSBgYXBwaXVtQ3JlYXRlZGAgcHJvcGVydHksXG4gICAgICogdGhlbiB3ZSBjYW4gZG8gd2hhdGV2ZXIgd2UgcGxlYXNlIHdpdGggaXQsIHNpbmNlIHdlIGNyZWF0ZWQgaXQuICBUaGlzIGlzXG4gICAgICogbGlrZWx5IHdoZW4gYEFQUElVTV9IT01FYCBpcyB0aGUgZGVmYXVsdCAoaW4gYH4vLmFwcGl1bWApLiAgSW4gdGhhdCBjYXNlLFxuICAgICAqIHdlIHdhbnQgYC0tZ2xvYmFsLXN0eWxlYCB0byBhdm9pZCBkZWR1cGluZywgYW5kIHdlIGFsc28gZG8gbm90IG5lZWQgYVxuICAgICAqIGBwYWNrYWdlLWxvY2suanNvbmAuXG4gICAgICpcbiAgICAgKiBJZiB3ZSBfaGF2ZW4ndF8gZm91bmQgc3VjaCBhIGtleSwgdGhlbiB0aGlzIGBwYWNrYWdlLmpzb25gIGlzbid0IGFcbiAgICAgKiBcImR1bW15XCIgYW5kIGlzIGNvbnRyb2xsZWQgYnkgdGhlIHVzZXIuICBTbyB3ZSdsbCBqdXN0IGFkZCBpdCBhcyBhIGRldlxuICAgICAqIGRlcDsgd2hhdGV2ZXIgZWxzZSBpdCBkb2VzIGlzIHVwIHRvIHRoZSB1c2VyJ3MgbnBtIGNvbmZpZy5cbiAgICAgKi9cbiAgICBjb25zdCBpbnN0YWxsT3B0cyA9IChhd2FpdCBoYXNBcHBpdW1EZXBlbmRlbmN5KGN3ZCkpXG4gICAgICA/IFsnLS1zYXZlLWRldiddXG4gICAgICA6IFsnLS1zYXZlLWRldicsICctLXNhdmUtZXhhY3QnLCAnLS1nbG9iYWwtc3R5bGUnLCAnLS1uby1wYWNrYWdlLWxvY2snXTtcblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZXhlYyhcbiAgICAgICdpbnN0YWxsJyxcbiAgICAgIFsuLi5pbnN0YWxsT3B0cywgcGtnVmVyID8gYCR7cGtnTmFtZX1AJHtwa2dWZXJ9YCA6IHBrZ05hbWVdLFxuICAgICAge1xuICAgICAgICBjd2QsXG4gICAgICAgIGpzb246IHRydWUsXG4gICAgICAgIGxvY2tGaWxlOiB0aGlzLl9nZXRJbnN0YWxsTG9ja2ZpbGVQYXRoKGN3ZCksXG4gICAgICB9XG4gICAgKTtcblxuICAgIGlmIChyZXMuanNvbikge1xuICAgICAgLy8gd2UgcGFyc2VkIGEgdmFsaWQganNvbiByZXNwb25zZSwgc28gaWYgd2UgZ290IGFuIGVycm9yIGhlcmUsIHJldHVybiB0aGF0XG4gICAgICAvLyBtZXNzYWdlIHN0cmFpZ2h0YXdheVxuICAgICAgaWYgKHJlcy5qc29uLmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZXMuanNvbi5lcnJvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTm93IHJlYWQgcGFja2FnZSBkYXRhIGZyb20gdGhlIGluc3RhbGxlZCBwYWNrYWdlIHRvIHJldHVybiwgYW5kIG1ha2Ugc3VyZVxuICAgIC8vIGV2ZXJ5dGhpbmcgZ290IGluc3RhbGxlZCBvay4gUmVtZW1iZXIsIHBrZ05hbWUgbWlnaHQgZW5kIHVwIHdpdGggYSAvIGluIGl0IGR1ZSB0byBhbiBucG1cbiAgICAvLyBvcmcsIHNvIGlmIHNvLCB0aGF0IHdpbGwgZ2V0IGNvcnJlY3RseSBleHBsb2RlZCBpbnRvIG11bHRpcGxlIGRpcmVjdG9yaWVzLCBieSBwYXRoLnJlc29sdmUgaGVyZVxuICAgIC8vIChldmVuIG9uIFdpbmRvd3MhKVxuICAgIGNvbnN0IHBrZ0pzb25QYXRoID0gcmVzb2x2ZUZyb20oY3dkLCBgJHtwa2dOYW1lfS9wYWNrYWdlLmpzb25gKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJlcXVpcmUocGtnSnNvblBhdGgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVGhlIHBhY2thZ2Ugd2FzIG5vdCBkb3dubG9hZGVkIGNvcnJlY3RseTsgaXRzIHBhY2thZ2UuanNvbiAnICtcbiAgICAgICAgICAnZGlkIG5vdCBleGlzdCBvciB3YXMgdW5yZWFkYWJsZS4gV2UgbG9va2VkIGZvciBpdCBhdCAnICtcbiAgICAgICAgICBwa2dKc29uUGF0aFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGN3ZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGtnXG4gICAqL1xuICBhc3luYyB1bmluc3RhbGxQYWNrYWdlKGN3ZCwgcGtnKSB7XG4gICAgYXdhaXQgdGhpcy5leGVjKCd1bmluc3RhbGwnLCBbcGtnXSwge1xuICAgICAgY3dkLFxuICAgICAgbG9ja0ZpbGU6IHRoaXMuX2dldEluc3RhbGxMb2NrZmlsZVBhdGgoY3dkKSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbnBtID0gbmV3IE5QTSgpO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBOUE0uaW5zdGFsbFBhY2thZ2V9XG4gKiBAdHlwZWRlZiBJbnN0YWxsUGFja2FnZU9wdHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcGtnVmVyXSAtIHRoZSB2ZXJzaW9uIG9mIHRoZSBwYWNrYWdlIHRvIGluc3RhbGxcbiAqL1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBOUE0uZXhlY31cbiAqIEB0eXBlZGVmIEV4ZWNPcHRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY3dkIC0gQ3VycmVudCB3b3JraW5nIGRpcmVjdG9yeVxuICogQHByb3BlcnR5IHtib29sZWFufSBbanNvbl0gLSBJZiBgdHJ1ZWAsIHN1cHBseSBgLS1qc29uYCBmbGFnIHRvIG5wbSBhbmQgcmVzb2x2ZSB3LyBwYXJzZWQgSlNPTlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtsb2NrRmlsZV0gLSBQYXRoIHRvIGxvY2tmaWxlIHRvIHVzZVxuICovXG5cbi8vIFRIRVNFIFRZUEVTIFNIT1VMRCBCRSBJTiBURUVOIFBST0NFU1MsIE5PVCBIRVJFXG5cbi8qKlxuICogRXh0cmEgcHJvcHMgYHRlZW5fcHJvY2Vzcy5leGVjYCBhZGRzIHRvIGl0cyBlcnJvciBvYmplY3RzXG4gKiBAdHlwZWRlZiBUZWVuUHJvY2Vzc0V4ZWNFcnJvclByb3BzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc3Rkb3V0IC0gU1RET1VUXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc3RkZXJyIC0gU1RERVJSXG4gKiBAcHJvcGVydHkge251bWJlcj99IGNvZGUgLSBFeGl0IGNvZGVcbiAqL1xuXG4vKipcbiAqIEVycm9yIHRocm93biBieSBgdGVlbl9wcm9jZXNzLmV4ZWNgXG4gKiBAdHlwZWRlZiB7RXJyb3IgJiBUZWVuUHJvY2Vzc0V4ZWNFcnJvclByb3BzfSBUZWVuUHJvY2Vzc0V4ZWNFcnJvclxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQU1PLE1BQU1BLHVCQUF1QixHQUFHQyxhQUFBLENBQUtDLElBQUwsQ0FBVSxjQUFWLEVBQTBCLFFBQTFCLEVBQW9DLFFBQXBDLENBQWhDOzs7O0FBS0EsTUFBTUMsOEJBQThCLEdBQUdGLGFBQUEsQ0FBS0MsSUFBTCxDQUFVRix1QkFBVixFQUFtQyxlQUFuQyxDQUF2Qzs7OztBQUtBLE1BQU1JLEdBQU4sQ0FBVTtFQU1mQyx1QkFBdUIsQ0FBQ0MsR0FBRCxFQUFNO0lBQzNCLE9BQU9MLGFBQUEsQ0FBS0MsSUFBTCxDQUFVSSxHQUFWLEVBQWVILDhCQUFmLENBQVA7RUFDRDs7RUFZUyxNQUFKSSxJQUFJLENBQUNDLEdBQUQsRUFBTUMsSUFBTixFQUFZQyxJQUFaLEVBQWtCQyxRQUFRLEdBQTRCLEVBQXRELEVBQTJEO0lBQ25FLElBQUk7TUFBQ0wsR0FBRDtNQUFNTSxJQUFOO01BQVlDO0lBQVosSUFBd0JILElBQTVCO0lBR0FDLFFBQVEsR0FBRyxFQUFDLEdBQUdBLFFBQUo7TUFBY0w7SUFBZCxDQUFYO0lBRUFHLElBQUksQ0FBQ0ssT0FBTCxDQUFhTixHQUFiOztJQUNBLElBQUlJLElBQUosRUFBVTtNQUNSSCxJQUFJLENBQUNNLElBQUwsQ0FBVSxRQUFWO0lBQ0Q7O0lBQ0QsTUFBTUMsTUFBTSxHQUFHQyxNQUFNLENBQUNDLFNBQVAsS0FBcUIsU0FBckIsR0FBaUMsS0FBaEQ7O0lBQ0EsSUFBSUMsTUFBTSxHQUFHLFlBQVksTUFBTSxJQUFBWixrQkFBQSxFQUFL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
|
package/build/lib/plist.d.ts
CHANGED
|
@@ -39,5 +39,5 @@ export function createBinaryPlist(data: any): Buffer;
|
|
|
39
39
|
* Parses a Buffer into an Object
|
|
40
40
|
* @param {Buffer} data The beffer of a binary plist
|
|
41
41
|
*/
|
|
42
|
-
export function parseBinaryPlist(data: Buffer): any;
|
|
42
|
+
export function parseBinaryPlist(data: Buffer): [any];
|
|
43
43
|
//# sourceMappingURL=plist.d.ts.map
|
package/build/lib/plist.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plist.d.ts","sourceRoot":"","sources":["../../lib/plist.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plist.d.ts","sourceRoot":"","sources":["../../lib/plist.js"],"names":[],"mappings":"AAsBA;;;;;;GAMG;AACH,sCALW,MAAM,cACN,OAAO,UACP,OAAO,GACL,QAAQ,GAAG,CAAC,CAmCxB;AA4FD;;;;;GAKG;AACH,iCAJW,MAAM,GAAC,MAAM,OAgBvB;AAhCD;;;;;GAKG;AACH,kDAHW,OAAO,GACL,MAAM,GAAC,MAAM,CAQzB;AAxFD;;;;;;;GAOG;AACH,uCANW,MAAM,+BAEN,OAAO,cACP,OAAO,UACP,OAAO,iBAyBjB;AACD;;;;GAIG;AACH,8CAFa,MAAM,CAIlB;AAED;;;GAGG;AACH,uCAFW,MAAM,SAIhB"}
|
package/build/lib/plist.js
CHANGED
|
@@ -157,4 +157,4 @@ function parsePlist(data) {
|
|
|
157
157
|
|
|
158
158
|
throw new Error(`Unknown type of plist, data: ${data.toString()}`);
|
|
159
159
|
}
|
|
160
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCUExJU1RfSURFTlRJRklFUiIsIkJVRkZFUiIsIkJ1ZmZlciIsImZyb20iLCJURVhUIiwiUExJU1RfSURFTlRJRklFUiIsInBhcnNlWG1sUGxpc3RGaWxlIiwicGxpc3RGaWxlbmFtZSIsInhtbENvbnRlbnQiLCJmcyIsInJlYWRGaWxlIiwieG1scGxpc3QiLCJwYXJzZSIsInBhcnNlUGxpc3RGaWxlIiwicGxpc3QiLCJtdXN0RXhpc3QiLCJxdWlldCIsImV4aXN0cyIsImxvZyIsImVycm9yQW5kVGhyb3ciLCJkZWJ1ZyIsIm9iaiIsInR5cGUiLCJicGxpc3RQYXJzZSIsInBhcnNlRmlsZSIsImxlbmd0aCIsIkVycm9yIiwiaWduIiwiZXJyIiwibWVzc2FnZSIsInVwZGF0ZVBsaXN0RmlsZSIsInVwZGF0ZWRGaWVsZHMiLCJiaW5hcnkiLCJfIiwiZXh0ZW5kIiwibmV3UGxpc3QiLCJidWlsZCIsIndyaXRlRmlsZSIsImNyZWF0ZUJpbmFyeVBsaXN0IiwiZGF0YSIsInBhcnNlQmluYXJ5UGxpc3QiLCJwYXJzZUJ1ZmZlciIsImdldFhtbFBsaXN0IiwiaXNTdHJpbmciLCJzdGFydHNXaXRoIiwiaXNCdWZmZXIiLCJjb21wYXJlIiwidG9TdHJpbmciLCJnZXRCaW5hcnlQbGlzdCIsImNyZWF0ZVBsaXN0Iiwib2JqZWN0IiwicGFyc2VQbGlzdCIsInRleHRQbGlzdCIsImJpbmFyeVBsaXN0Il0sInNvdXJjZXMiOlsiLi4vLi4vbGliL3BsaXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB4bWxwbGlzdCBmcm9tICdwbGlzdCc7XG5pbXBvcnQgYnBsaXN0Q3JlYXRlIGZyb20gJ2JwbGlzdC1jcmVhdG9yJztcbmltcG9ydCBicGxpc3RQYXJzZSBmcm9tICdicGxpc3QtcGFyc2VyJztcbmltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuXG5jb25zdCBCUExJU1RfSURFTlRJRklFUiA9IHtcbiAgQlVGRkVSOiBCdWZmZXIuZnJvbSgnYnBsaXN0MDAnKSxcbiAgVEVYVDogJ2JwbGlzdDAwJ1xufTtcbmNvbnN0IFBMSVNUX0lERU5USUZJRVIgPSB7XG4gIEJVRkZFUjogQnVmZmVyLmZyb20oJzwnKSxcbiAgVEVYVDogJzwnXG59O1xuXG4vLyBYTUwgUGxpc3QgbGlicmFyeSBoZWxwZXJcbmFzeW5jIGZ1bmN0aW9uIHBhcnNlWG1sUGxpc3RGaWxlIChwbGlzdEZpbGVuYW1lKSB7XG4gIGxldCB4bWxDb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUocGxpc3RGaWxlbmFtZSwgJ3V0ZjgnKTtcbiAgcmV0dXJuIHhtbHBsaXN0LnBhcnNlKHhtbENvbnRlbnQpO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhIGZpbGUgaW4geG1sIG9yIGJpbmFyeSBmb3JtYXQgb2YgcGxpc3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBwbGlzdCBUaGUgcGxpc3QgZmlsZSBwYXRoXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG11c3RFeGlzdCBJZiBzZXQgdG8gZmFsc2UsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIGFuIGVtcHR5IG9iamVjdCB3aGVuIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gcXVpZXQgSWYgc2V0IHRvIGZhbHNlLCB0aGUgcGxpc3QgcGF0aCB3aWxsIGJlIGxvZ2dlZCBpbiBkZWJ1ZyBsZXZlbFxuICogQHJldHVybnMge1Byb21pc2U8YW55Pn0gcGFyc2VkIHBsaXN0IEpTIE9iamVjdFxuICovXG5hc3luYyBmdW5jdGlvbiBwYXJzZVBsaXN0RmlsZSAocGxpc3QsIG11c3RFeGlzdCA9IHRydWUsIHF1aWV0ID0gdHJ1ZSkge1xuICAvLyBoYW5kbGUgbm9uZXhpc3RhbnQgZmlsZVxuICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhwbGlzdCkpIHtcbiAgICBpZiAobXVzdEV4aXN0KSB7XG4gICAgICBsb2cuZXJyb3JBbmRUaHJvdyhgUGxpc3QgZmlsZSBkb2Vzbid0IGV4aXN0OiAnJHtwbGlzdH0nYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5kZWJ1ZyhgUGxpc3QgZmlsZSAnJHtwbGlzdH0nIGRvZXMgbm90IGV4aXN0LiBSZXR1cm5pbmcgYW4gZW1wdHkgcGxpc3QuYCk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9XG5cbiAgbGV0IG9iaiA9IHt9O1xuICBsZXQgdHlwZSA9ICdiaW5hcnknO1xuICB0cnkge1xuICAgIG9iaiA9IGF3YWl0IGJwbGlzdFBhcnNlLnBhcnNlRmlsZShwbGlzdCk7XG4gICAgaWYgKG9iai5sZW5ndGgpIHtcbiAgICAgIG9iaiA9IG9ialswXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBCaW5hcnkgZmlsZSAnJHtwbGlzdH0nJyBhcHBlYXJzIHRvIGJlIGVtcHR5YCk7XG4gICAgfVxuICB9IGNhdGNoIChpZ24pIHtcbiAgICB0cnkge1xuICAgICAgb2JqID0gYXdhaXQgcGFyc2VYbWxQbGlzdEZpbGUocGxpc3QpO1xuICAgICAgdHlwZSA9ICd4bWwnO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coYENvdWxkIG5vdCBwYXJzZSBwbGlzdCBmaWxlICcke3BsaXN0fScgYXMgWE1MOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIGlmICghcXVpZXQpIHtcbiAgICBsb2cuZGVidWcoYFBhcnNlZCBwbGlzdCBmaWxlICcke3BsaXN0fScgYXMgJHt0eXBlfWApO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogVXBkYXRlcyBhIHBsaXN0IGZpbGUgd2l0aCB0aGUgZ2l2ZW4gZmllbGRzXG4gKiBAcGFyYW0ge3N0cmluZ30gcGxpc3QgVGhlIHBsaXN0IGZpbGUgcGF0aFxuICogQHBhcmFtIHtPYmplY3R9IHVwZGF0ZWRGaWVsZHMgVGhlIHVwZGF0ZWQgZmllbGRzLXZhbHVlIHBhaXJzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJpbmFyeSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBmaWxlIHdpbGwgYmUgY3JlYXRlZCBhcyBhIHhtbCBwbGlzdFxuICogQHBhcmFtIHtib29sZWFufSBtdXN0RXhpc3QgSWYgc2V0IHRvIGZhbHNlLCB0aGlzIG1ldGhvZCB3aWxsIHVwZGF0ZSBhbiBlbXB0eSBwbGlzdFxuICogQHBhcmFtIHtib29sZWFufSBxdWlldCBJZiBzZXQgdG8gZmFsc2UsIHRoZSBwbGlzdCBwYXRoIHdpbGwgYmUgbG9nZ2VkIGluIGRlYnVnIGxldmVsXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVBsaXN0RmlsZSAocGxpc3QsIHVwZGF0ZWRGaWVsZHMsIGJpbmFyeSA9IHRydWUsIG11c3RFeGlzdCA9IHRydWUsIHF1aWV0ID0gdHJ1ZSkge1xuICBsZXQgb2JqO1xuICB0cnkge1xuICAgIG9iaiA9IGF3YWl0IHBhcnNlUGxpc3RGaWxlKHBsaXN0LCBtdXN0RXhpc3QpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdyhgQ291bGQgbm90IHVwZGF0ZSBwbGlzdDogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxuICBfLmV4dGVuZChvYmosIHVwZGF0ZWRGaWVsZHMpO1xuICBsZXQgbmV3UGxpc3QgPSBiaW5hcnkgPyBicGxpc3RDcmVhdGUob2JqKSA6IHhtbHBsaXN0LmJ1aWxkKG9iaik7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHBsaXN0LCBuZXdQbGlzdCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBDb3VsZCBub3Qgc2F2ZSBwbGlzdDogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxuICBpZiAoIXF1aWV0KSB7XG4gICAgbG9nLmRlYnVnKGBXcm90ZSBwbGlzdCBmaWxlICcke3BsaXN0fSdgKTtcbiAgfVxufVxuLyoqXG4gKiBDcmVhdGVzIGEgYmluYXJ5IHBsaXN0IEJ1ZmZlciBmcm9tIGFuIG9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IGRhdGEgVGhlIG9iamVjdCB0byBiZSB0dXJuZWQgaW50byBhIGJpbmFyeSBwbGlzdFxuICogQHJldHVybnMge0J1ZmZlcn0gcGxpc3QgaW4gdGhlIGZvcm0gb2YgYSBiaW5hcnkgYnVmZmVyXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUJpbmFyeVBsaXN0IChkYXRhKSB7XG4gIHJldHVybiBicGxpc3RDcmVhdGUoZGF0YSk7XG59XG5cbi8qKlxuICogUGFyc2VzIGEgQnVmZmVyIGludG8gYW4gT2JqZWN0XG4gKiBAcGFyYW0ge0J1ZmZlcn0gZGF0YSBUaGUgYmVmZmVyIG9mIGEgYmluYXJ5IHBsaXN0XG4gKi9cbmZ1bmN0aW9uIHBhcnNlQmluYXJ5UGxpc3QgKGRhdGEpIHtcbiAgLy8gdGhpcyBmdW5jdGlvbiBleGlzdHMsIGJ1dCBpcyBub3QgaW4gdGhlIHR5cGUgZGVjbGFyYXRpb25zLlxuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIHJldHVybiBicGxpc3RQYXJzZS5wYXJzZUJ1ZmZlcihkYXRhKTtcbn1cblxuZnVuY3Rpb24gZ2V0WG1sUGxpc3QgKGRhdGEpIHtcbiAgaWYgKF8uaXNTdHJpbmcoZGF0YSkgJiYgZGF0YS5zdGFydHNXaXRoKFBMSVNUX0lERU5USUZJRVIuVEVYVCkpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBpZiAoXy5pc0J1ZmZlcihkYXRhKSAmJiBQTElTVF9JREVOVElGSUVSLkJVRkZFUi5jb21wYXJlKGRhdGEsIDAsIFBMSVNUX0lERU5USUZJRVIuQlVGRkVSLmxlbmd0aCkgPT09IDApIHtcbiAgICByZXR1cm4gZGF0YS50b1N0cmluZygpO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBnZXRCaW5hcnlQbGlzdCAoZGF0YSkge1xuICBpZiAoXy5pc1N0cmluZyhkYXRhKSAmJiBkYXRhLnN0YXJ0c1dpdGgoQlBMSVNUX0lERU5USUZJRVIuVEVYVCkpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oZGF0YSk7XG4gIH1cblxuICBpZiAoXy5pc0J1ZmZlcihkYXRhKSAmJiBCUExJU1RfSURFTlRJRklFUi5CVUZGRVIuY29tcGFyZShkYXRhLCAwLCBCUExJU1RfSURFTlRJRklFUi5CVUZGRVIubGVuZ3RoKSA9PT0gMCkge1xuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBwbGlzdCBmcm9tIGFuIG9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgSlMgb2JqZWN0IHRvIGJlIHR1cm5lZCBpbnRvIGEgcGxpc3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYmluYXJ5IFNldCBpdCB0byB0cnVlIGZvciBhIGJpbmFyeSBwbGlzdFxuICogQHJldHVybnMge3N0cmluZ3xCdWZmZXJ9IHJldHVybnMgYSBidWZmZXIgb3IgYSBzdHJpbmcgaW4gcmVzcGVjdCB0byB0aGUgYmluYXJ5IHBhcmFtZXRlclxuICovXG5mdW5jdGlvbiBjcmVhdGVQbGlzdCAob2JqZWN0LCBiaW5hcnkgPSBmYWxzZSkge1xuICBpZiAoYmluYXJ5KSB7XG4gICAgcmV0dXJuIGNyZWF0ZUJpbmFyeVBsaXN0KG9iamVjdCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHhtbHBsaXN0LmJ1aWxkKG9iamVjdCk7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZXMgYW4gYnVmZmVyIG9yIGEgc3RyaW5nIHRvIGEgSlMgb2JqZWN0IGEgcGxpc3QgZnJvbSBhbiBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfEJ1ZmZlcn0gZGF0YSBUaGUgcGxpc3QgaW4gdGhlIGZvcm0gb2Ygc3RyaW5nIG9yIEJ1ZmZlclxuICogQHJldHVybnMge09iamVjdH0gcGFyc2VkIHBsaXN0IEpTIE9iamVjdFxuICogQHRocm93cyBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBwbGlzdCB0eXBlIGlzIHVua25vd25cbiAqL1xuZnVuY3Rpb24gcGFyc2VQbGlzdCAoZGF0YSkge1xuICBsZXQgdGV4dFBsaXN0ID0gZ2V0WG1sUGxpc3QoZGF0YSk7XG4gIGlmICh0ZXh0UGxpc3QpIHtcbiAgICByZXR1cm4geG1scGxpc3QucGFyc2UodGV4dFBsaXN0KTtcbiAgfVxuXG4gIGxldCBiaW5hcnlQbGlzdCA9IGdldEJpbmFyeVBsaXN0KGRhdGEpO1xuICBpZiAoYmluYXJ5UGxpc3QpIHtcbiAgICByZXR1cm4gcGFyc2VCaW5hcnlQbGlzdChiaW5hcnlQbGlzdClbMF07XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHlwZSBvZiBwbGlzdCwgZGF0YTogJHtkYXRhLnRvU3RyaW5nKCl9YCk7XG59XG5cbmV4cG9ydCB7IHBhcnNlUGxpc3RGaWxlLCBwYXJzZVBsaXN0LCBjcmVhdGVQbGlzdCwgdXBkYXRlUGxpc3RGaWxlLCBjcmVhdGVCaW5hcnlQbGlzdCwgcGFyc2VCaW5hcnlQbGlzdCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsaUJBQWlCLEdBQUc7RUFDeEJDLE1BQU0sRUFBRUMsTUFBTSxDQUFDQyxJQUFQLENBQVksVUFBWixDQURnQjtFQUV4QkMsSUFBSSxFQUFFO0FBRmtCLENBQTFCO0FBSUEsTUFBTUMsZ0JBQWdCLEdBQUc7RUFDdkJKLE1BQU0sRUFBRUMsTUFBTSxDQUFDQyxJQUFQLENBQVksR0FBWixDQURlO0VBRXZCQyxJQUFJLEVBQUU7QUFGaUIsQ0FBekI7O0FBTUEsZUFBZUUsaUJBQWYsQ0FBa0NDLGFBQWxDLEVBQWlEO0VBQy9DLElBQUlDLFVBQVUsR0FBRyxNQUFNQyxZQUFHQyxRQUFILENBQVlILGFBQVosRUFBMkIsTUFBM0IsQ0FBdkI7RUFDQSxPQUFPSSxlQUFTQyxLQUFULENBQWVKLFVBQWYsQ0FBUDtBQUNEOztBQVNELGVBQWVLLGNBQWYsQ0FBK0JDLEtBQS9CLEVBQXNDQyxTQUFTLEdBQUcsSUFBbEQsRUFBd0RDLEtBQUssR0FBRyxJQUFoRSxFQUFzRTtFQUVwRSxJQUFJLEVBQUMsTUFBTVAsWUFBR1EsTUFBSCxDQUFVSCxLQUFW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
|
|
160
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCUExJU1RfSURFTlRJRklFUiIsIkJVRkZFUiIsIkJ1ZmZlciIsImZyb20iLCJURVhUIiwiUExJU1RfSURFTlRJRklFUiIsInBhcnNlWG1sUGxpc3RGaWxlIiwicGxpc3RGaWxlbmFtZSIsInhtbENvbnRlbnQiLCJmcyIsInJlYWRGaWxlIiwieG1scGxpc3QiLCJwYXJzZSIsInBhcnNlUGxpc3RGaWxlIiwicGxpc3QiLCJtdXN0RXhpc3QiLCJxdWlldCIsImV4aXN0cyIsImxvZyIsImVycm9yQW5kVGhyb3ciLCJkZWJ1ZyIsIm9iaiIsInR5cGUiLCJicGxpc3RQYXJzZSIsInBhcnNlRmlsZSIsImxlbmd0aCIsIkVycm9yIiwiaWduIiwiZXJyIiwibWVzc2FnZSIsInVwZGF0ZVBsaXN0RmlsZSIsInVwZGF0ZWRGaWVsZHMiLCJiaW5hcnkiLCJfIiwiZXh0ZW5kIiwibmV3UGxpc3QiLCJicGxpc3RDcmVhdGUiLCJidWlsZCIsIndyaXRlRmlsZSIsImNyZWF0ZUJpbmFyeVBsaXN0IiwiZGF0YSIsInBhcnNlQmluYXJ5UGxpc3QiLCJwYXJzZUJ1ZmZlciIsImdldFhtbFBsaXN0IiwiaXNTdHJpbmciLCJzdGFydHNXaXRoIiwiaXNCdWZmZXIiLCJjb21wYXJlIiwidG9TdHJpbmciLCJnZXRCaW5hcnlQbGlzdCIsImNyZWF0ZVBsaXN0Iiwib2JqZWN0IiwicGFyc2VQbGlzdCIsInRleHRQbGlzdCIsImJpbmFyeVBsaXN0Il0sInNvdXJjZXMiOlsiLi4vLi4vbGliL3BsaXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB4bWxwbGlzdCBmcm9tICdwbGlzdCc7XG5pbXBvcnQgYnBsaXN0Q3JlYXRlIGZyb20gJ2JwbGlzdC1jcmVhdG9yJztcbmltcG9ydCBicGxpc3RQYXJzZSBmcm9tICdicGxpc3QtcGFyc2VyJztcbmltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuY29uc3QgQlBMSVNUX0lERU5USUZJRVIgPSB7XG4gIEJVRkZFUjogQnVmZmVyLmZyb20oJ2JwbGlzdDAwJyksXG4gIFRFWFQ6ICdicGxpc3QwMCcsXG59O1xuY29uc3QgUExJU1RfSURFTlRJRklFUiA9IHtcbiAgQlVGRkVSOiBCdWZmZXIuZnJvbSgnPCcpLFxuICBURVhUOiAnPCcsXG59O1xuXG4vLyBYTUwgUGxpc3QgbGlicmFyeSBoZWxwZXJcbmFzeW5jIGZ1bmN0aW9uIHBhcnNlWG1sUGxpc3RGaWxlKHBsaXN0RmlsZW5hbWUpIHtcbiAgbGV0IHhtbENvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShwbGlzdEZpbGVuYW1lLCAndXRmOCcpO1xuICByZXR1cm4geG1scGxpc3QucGFyc2UoeG1sQ29udGVudCk7XG59XG5cbi8qKlxuICogUGFyc2VzIGEgZmlsZSBpbiB4bWwgb3IgYmluYXJ5IGZvcm1hdCBvZiBwbGlzdFxuICogQHBhcmFtIHtzdHJpbmd9IHBsaXN0IFRoZSBwbGlzdCBmaWxlIHBhdGhcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gbXVzdEV4aXN0IElmIHNldCB0byBmYWxzZSwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gYW4gZW1wdHkgb2JqZWN0IHdoZW4gdGhlIGZpbGUgZG9lc24ndCBleGlzdFxuICogQHBhcmFtIHtib29sZWFufSBxdWlldCBJZiBzZXQgdG8gZmFsc2UsIHRoZSBwbGlzdCBwYXRoIHdpbGwgYmUgbG9nZ2VkIGluIGRlYnVnIGxldmVsXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fSBwYXJzZWQgcGxpc3QgSlMgT2JqZWN0XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlUGxpc3RGaWxlKHBsaXN0LCBtdXN0RXhpc3QgPSB0cnVlLCBxdWlldCA9IHRydWUpIHtcbiAgLy8gaGFuZGxlIG5vbmV4aXN0YW50IGZpbGVcbiAgaWYgKCEoYXdhaXQgZnMuZXhpc3RzKHBsaXN0KSkpIHtcbiAgICBpZiAobXVzdEV4aXN0KSB7XG4gICAgICBsb2cuZXJyb3JBbmRUaHJvdyhgUGxpc3QgZmlsZSBkb2Vzbid0IGV4aXN0OiAnJHtwbGlzdH0nYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZy5kZWJ1ZyhgUGxpc3QgZmlsZSAnJHtwbGlzdH0nIGRvZXMgbm90IGV4aXN0LiBSZXR1cm5pbmcgYW4gZW1wdHkgcGxpc3QuYCk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICB9XG5cbiAgbGV0IG9iaiA9IHt9O1xuICBsZXQgdHlwZSA9ICdiaW5hcnknO1xuICB0cnkge1xuICAgIG9iaiA9IGF3YWl0IGJwbGlzdFBhcnNlLnBhcnNlRmlsZShwbGlzdCk7XG4gICAgaWYgKG9iai5sZW5ndGgpIHtcbiAgICAgIG9iaiA9IG9ialswXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBCaW5hcnkgZmlsZSAnJHtwbGlzdH0nJyBhcHBlYXJzIHRvIGJlIGVtcHR5YCk7XG4gICAgfVxuICB9IGNhdGNoIChpZ24pIHtcbiAgICB0cnkge1xuICAgICAgb2JqID0gYXdhaXQgcGFyc2VYbWxQbGlzdEZpbGUocGxpc3QpO1xuICAgICAgdHlwZSA9ICd4bWwnO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coYENvdWxkIG5vdCBwYXJzZSBwbGlzdCBmaWxlICcke3BsaXN0fScgYXMgWE1MOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIGlmICghcXVpZXQpIHtcbiAgICBsb2cuZGVidWcoYFBhcnNlZCBwbGlzdCBmaWxlICcke3BsaXN0fScgYXMgJHt0eXBlfWApO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogVXBkYXRlcyBhIHBsaXN0IGZpbGUgd2l0aCB0aGUgZ2l2ZW4gZmllbGRzXG4gKiBAcGFyYW0ge3N0cmluZ30gcGxpc3QgVGhlIHBsaXN0IGZpbGUgcGF0aFxuICogQHBhcmFtIHtPYmplY3R9IHVwZGF0ZWRGaWVsZHMgVGhlIHVwZGF0ZWQgZmllbGRzLXZhbHVlIHBhaXJzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGJpbmFyeSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBmaWxlIHdpbGwgYmUgY3JlYXRlZCBhcyBhIHhtbCBwbGlzdFxuICogQHBhcmFtIHtib29sZWFufSBtdXN0RXhpc3QgSWYgc2V0IHRvIGZhbHNlLCB0aGlzIG1ldGhvZCB3aWxsIHVwZGF0ZSBhbiBlbXB0eSBwbGlzdFxuICogQHBhcmFtIHtib29sZWFufSBxdWlldCBJZiBzZXQgdG8gZmFsc2UsIHRoZSBwbGlzdCBwYXRoIHdpbGwgYmUgbG9nZ2VkIGluIGRlYnVnIGxldmVsXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVBsaXN0RmlsZShcbiAgcGxpc3QsXG4gIHVwZGF0ZWRGaWVsZHMsXG4gIGJpbmFyeSA9IHRydWUsXG4gIG11c3RFeGlzdCA9IHRydWUsXG4gIHF1aWV0ID0gdHJ1ZVxuKSB7XG4gIGxldCBvYmo7XG4gIHRyeSB7XG4gICAgb2JqID0gYXdhaXQgcGFyc2VQbGlzdEZpbGUocGxpc3QsIG11c3RFeGlzdCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBDb3VsZCBub3QgdXBkYXRlIHBsaXN0OiAke2Vyci5tZXNzYWdlfWApO1xuICB9XG4gIF8uZXh0ZW5kKG9iaiwgdXBkYXRlZEZpZWxkcyk7XG4gIGxldCBuZXdQbGlzdCA9IGJpbmFyeSA/IGJwbGlzdENyZWF0ZShvYmopIDogeG1scGxpc3QuYnVpbGQob2JqKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUocGxpc3QsIG5ld1BsaXN0KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYENvdWxkIG5vdCBzYXZlIHBsaXN0OiAke2Vyci5tZXNzYWdlfWApO1xuICB9XG4gIGlmICghcXVpZXQpIHtcbiAgICBsb2cuZGVidWcoYFdyb3RlIHBsaXN0IGZpbGUgJyR7cGxpc3R9J2ApO1xuICB9XG59XG4vKipcbiAqIENyZWF0ZXMgYSBiaW5hcnkgcGxpc3QgQnVmZmVyIGZyb20gYW4gb2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gZGF0YSBUaGUgb2JqZWN0IHRvIGJlIHR1cm5lZCBpbnRvIGEgYmluYXJ5IHBsaXN0XG4gKiBAcmV0dXJucyB7QnVmZmVyfSBwbGlzdCBpbiB0aGUgZm9ybSBvZiBhIGJpbmFyeSBidWZmZXJcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmluYXJ5UGxpc3QoZGF0YSkge1xuICByZXR1cm4gYnBsaXN0Q3JlYXRlKGRhdGEpO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhIEJ1ZmZlciBpbnRvIGFuIE9iamVjdFxuICogQHBhcmFtIHtCdWZmZXJ9IGRhdGEgVGhlIGJlZmZlciBvZiBhIGJpbmFyeSBwbGlzdFxuICovXG5mdW5jdGlvbiBwYXJzZUJpbmFyeVBsaXN0KGRhdGEpIHtcbiAgcmV0dXJuIGJwbGlzdFBhcnNlLnBhcnNlQnVmZmVyKGRhdGEpO1xufVxuXG5mdW5jdGlvbiBnZXRYbWxQbGlzdChkYXRhKSB7XG4gIGlmIChfLmlzU3RyaW5nKGRhdGEpICYmIGRhdGEuc3RhcnRzV2l0aChQTElTVF9JREVOVElGSUVSLlRFWFQpKSB7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgaWYgKFxuICAgIF8uaXNCdWZmZXIoZGF0YSkgJiZcbiAgICBQTElTVF9JREVOVElGSUVSLkJVRkZFUi5jb21wYXJlKGRhdGEsIDAsIFBMSVNUX0lERU5USUZJRVIuQlVGRkVSLmxlbmd0aCkgPT09IDBcbiAgKSB7XG4gICAgcmV0dXJuIGRhdGEudG9TdHJpbmcoKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0QmluYXJ5UGxpc3QoZGF0YSkge1xuICBpZiAoXy5pc1N0cmluZyhkYXRhKSAmJiBkYXRhLnN0YXJ0c1dpdGgoQlBMSVNUX0lERU5USUZJRVIuVEVYVCkpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oZGF0YSk7XG4gIH1cblxuICBpZiAoXG4gICAgXy5pc0J1ZmZlcihkYXRhKSAmJlxuICAgIEJQTElTVF9JREVOVElGSUVSLkJVRkZFUi5jb21wYXJlKGRhdGEsIDAsIEJQTElTVF9JREVOVElGSUVSLkJVRkZFUi5sZW5ndGgpID09PSAwXG4gICkge1xuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBwbGlzdCBmcm9tIGFuIG9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgSlMgb2JqZWN0IHRvIGJlIHR1cm5lZCBpbnRvIGEgcGxpc3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYmluYXJ5IFNldCBpdCB0byB0cnVlIGZvciBhIGJpbmFyeSBwbGlzdFxuICogQHJldHVybnMge3N0cmluZ3xCdWZmZXJ9IHJldHVybnMgYSBidWZmZXIgb3IgYSBzdHJpbmcgaW4gcmVzcGVjdCB0byB0aGUgYmluYXJ5IHBhcmFtZXRlclxuICovXG5mdW5jdGlvbiBjcmVhdGVQbGlzdChvYmplY3QsIGJpbmFyeSA9IGZhbHNlKSB7XG4gIGlmIChiaW5hcnkpIHtcbiAgICByZXR1cm4gY3JlYXRlQmluYXJ5UGxpc3Qob2JqZWN0KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geG1scGxpc3QuYnVpbGQob2JqZWN0KTtcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlcyBhbiBidWZmZXIgb3IgYSBzdHJpbmcgdG8gYSBKUyBvYmplY3QgYSBwbGlzdCBmcm9tIGFuIG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd8QnVmZmVyfSBkYXRhIFRoZSBwbGlzdCBpbiB0aGUgZm9ybSBvZiBzdHJpbmcgb3IgQnVmZmVyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBwYXJzZWQgcGxpc3QgSlMgT2JqZWN0XG4gKiBAdGhyb3dzIFdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHBsaXN0IHR5cGUgaXMgdW5rbm93blxuICovXG5mdW5jdGlvbiBwYXJzZVBsaXN0KGRhdGEpIHtcbiAgbGV0IHRleHRQbGlzdCA9IGdldFhtbFBsaXN0KGRhdGEpO1xuICBpZiAodGV4dFBsaXN0KSB7XG4gICAgcmV0dXJuIHhtbHBsaXN0LnBhcnNlKHRleHRQbGlzdCk7XG4gIH1cblxuICBsZXQgYmluYXJ5UGxpc3QgPSBnZXRCaW5hcnlQbGlzdChkYXRhKTtcbiAgaWYgKGJpbmFyeVBsaXN0KSB7XG4gICAgcmV0dXJuIHBhcnNlQmluYXJ5UGxpc3QoYmluYXJ5UGxpc3QpWzBdO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHR5cGUgb2YgcGxpc3QsIGRhdGE6ICR7ZGF0YS50b1N0cmluZygpfWApO1xufVxuXG5leHBvcnQge1xuICBwYXJzZVBsaXN0RmlsZSxcbiAgcGFyc2VQbGlzdCxcbiAgY3JlYXRlUGxpc3QsXG4gIHVwZGF0ZVBsaXN0RmlsZSxcbiAgY3JlYXRlQmluYXJ5UGxpc3QsXG4gIHBhcnNlQmluYXJ5UGxpc3QsXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsaUJBQWlCLEdBQUc7RUFDeEJDLE1BQU0sRUFBRUMsTUFBTSxDQUFDQyxJQUFQLENBQVksVUFBWixDQURnQjtFQUV4QkMsSUFBSSxFQUFFO0FBRmtCLENBQTFCO0FBSUEsTUFBTUMsZ0JBQWdCLEdBQUc7RUFDdkJKLE1BQU0sRUFBRUMsTUFBTSxDQUFDQyxJQUFQLENBQVksR0FBWixDQURlO0VBRXZCQyxJQUFJLEVBQUU7QUFGaUIsQ0FBekI7O0FBTUEsZUFBZUUsaUJBQWYsQ0FBaUNDLGFBQWpDLEVBQWdEO0VBQzlDLElBQUlDLFVBQVUsR0FBRyxNQUFNQyxXQUFBLENBQUdDLFFBQUgsQ0FBWUgsYUFBWixFQUEyQixNQUEzQixDQUF2QjtFQUNBLE9BQU9JLGNBQUEsQ0FBU0MsS0FBVCxDQUFlSixVQUFmLENBQVA7QUFDRDs7QUFTRCxlQUFlSyxjQUFmLENBQThCQyxLQUE5QixFQUFxQ0MsU0FBUyxHQUFHLElBQWpELEVBQXVEQyxLQUFLLEdBQUcsSUFBL0QsRUFBcUU7RUFFbkUsSUFBSSxFQUFFLE1BQU1QLFdBQUEsQ0FBR1EsTUFBSCxDQUFVSCxL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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../lib/process.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../lib/process.js"],"names":[],"mappings":"AAUA,4DAeC;AAED,0EAgBC"}
|
package/build/lib/process.js
CHANGED
|
@@ -46,4 +46,4 @@ async function killProcess(appName, force = false) {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRQcm9jZXNzSWRzIiwiYXBwTmFtZSIsInBpZHMiLCJzdGRvdXQiLCJleGVjIiwidHJpbSIsInNwbGl0IiwibWFwIiwicGlkIiwicGFyc2VJbnQiLCJlcnIiLCJjb2RlIiwiRXJyb3IiLCJtZXNzYWdlIiwia2lsbFByb2Nlc3MiLCJmb3JjZSIsImxlbmd0aCIsImFyZ3MiLCJwdXNoIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL3Byb2Nlc3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtleGVjfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuXG4vKlxuICogRXhpdCBTdGF0dXMgZm9yIHBncmVwIGFuZCBwa2lsbCAoYG1hbiBwa2lsbGApXG4gKiAgMC4gT25lIG9yIG1vcmUgcHJvY2Vzc2VzIG1hdGNoZWQgdGhlIGNyaXRlcmlhLlxuICogIDEuIE5vIHByb2Nlc3NlcyBtYXRjaGVkLlxuICogIDIuIFN5bnRheCBlcnJvciBpbiB0aGUgY29tbWFuZCBsaW5lLlxuICogIDMuIEZhdGFsIGVycm9yOiBvdXQgb2YgbWVtb3J5IGV0Yy5cbiAqL1xuXG5hc3luYyBmdW5jdGlvbiBnZXRQcm9jZXNzSWRzKGFwcE5hbWUpIHtcbiAgbGV0IHBpZHM7XG4gIHRyeSB7XG4gICAgbGV0IHtzdGRvdXR9ID0gYXdhaXQgZXhlYygncGdyZXAnLCBbJy14JywgYXBwTmFtZV0pO1xuICAgIHBpZHMgPSBzdGRvdXRcbiAgICAgIC50cmltKClcbiAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgIC5tYXAoKHBpZCkgPT4gcGFyc2VJbnQocGlkLCAxMCkpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAocGFyc2VJbnQoZXJyLmNvZGUsIDEwKSAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBnZXR0aW5nIHByb2Nlc3MgaWRzIGZvciBhcHAgJyR7YXBwTmFtZX0nOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cbiAgICBwaWRzID0gW107XG4gIH1cbiAgcmV0dXJuIHBpZHM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGtpbGxQcm9jZXNzKGFwcE5hbWUsIGZvcmNlID0gZmFsc2UpIHtcbiAgbGV0IHBpZHMgPSBhd2FpdCBnZXRQcm9jZXNzSWRzKGFwcE5hbWUpO1xuICBpZiAocGlkcy5sZW5ndGggPT09IDApIHtcbiAgICAvLyB0aGUgcHJvY2VzcyBpcyBub3QgcnVubmluZ1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgbGV0IGFyZ3MgPSBmb3JjZSA/IFsnLTknXSA6IFtdO1xuICAgIGFyZ3MucHVzaCgnLXgnLCBhcHBOYW1lKTtcbiAgICBhd2FpdCBleGVjKCdwa2lsbCcsIGFyZ3MpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAocGFyc2VJbnQoZXJyLmNvZGUsIDEwKSAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBraWxsaW5nIGFwcCAnJHthcHBOYW1lfScgd2l0aCBwa2lsbDogJHtlcnIubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHtnZXRQcm9jZXNzSWRzLCBraWxsUHJvY2Vzc307XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7QUFVQSxlQUFlQSxhQUFmLENBQTZCQyxPQUE3QixFQUFzQztFQUNwQyxJQUFJQyxJQUFKOztFQUNBLElBQUk7SUFDRixJQUFJO01BQUNDO0lBQUQsSUFBVyxNQUFNLElBQUFDLGtCQUFBLEVBQUssT0FBTCxFQUFjLENBQUMsSUFBRCxFQUFPSCxPQUFQLENBQWQsQ0FBckI7SUFDQUMsSUFBSSxHQUFHQyxNQUFNLENBQ1ZFLElBREksR0FFSkMsS0FGSSxDQUVFLElBRkYsRUFHSkMsR0FISSxDQUdDQyxHQUFELElBQVNDLFFBQVEsQ0FBQ0QsR0FBRCxFQUFNLEVBQU4sQ0FIakIsQ0FBUDtFQUlELENBTkQsQ0FNRSxPQUFPRSxHQUFQLEVBQVk7SUFDWixJQUFJRCxRQUFRLENBQUNDLEdBQUcsQ0FBQ0MsSUFBTCxFQUFXLEVBQVgsQ0FBUixLQUEyQixDQUEvQixFQUFrQztNQUNoQyxNQUFNLElBQUlDLEtBQUosQ0FBVyxzQ0FBcUNYLE9BQVEsTUFBS1MsR0FBRyxDQUFDRyxPQUFRLEVBQXpFLENBQU47SUFDRDs7SUFDRFgsSUFBSSxHQUFHLEVBQVA7RUFDRDs7RUFDRCxPQUFPQSxJQUFQO0FBQ0Q7O0FBRUQsZUFBZVksV0FBZixDQUEyQmIsT0FBM0IsRUFBb0NjLEtBQUssR0FBRyxLQUE1QyxFQUFtRDtFQUNqRCxJQUFJYixJQUFJLEdBQUcsTUFBTUYsYUFBYSxDQUFDQyxPQUFELENBQTlCOztFQUNBLElBQUlDLElBQUksQ0FBQ2MsTUFBTCxLQUFnQixDQUFwQixFQUF1QjtJQUVyQjtFQUNEOztFQUVELElBQUk7SUFDRixJQUFJQyxJQUFJLEdBQUdGLEtBQUssR0FBRyxDQUFDLElBQUQsQ0FBSCxHQUFZLEVBQTVCO0lBQ0FFLElBQUksQ0FBQ0MsSUFBTCxDQUFVLElBQVYsRUFBZ0JqQixPQUFoQjtJQUNBLE1BQU0sSUFBQUcsa0JBQUEsRUFBSyxPQUFMLEVBQWNhLElBQWQsQ0FBTjtFQUNELENBSkQsQ0FJRSxPQUFPUCxHQUFQLEVBQVk7SUFDWixJQUFJRCxRQUFRLENBQUNDLEdBQUcsQ0FBQ0MsSUFBTCxFQUFXLEVBQVgsQ0FBUixLQUEyQixDQUEvQixFQUFrQztNQUNoQyxNQUFNLElBQUlDLEtBQUosQ0FBVyxzQkFBcUJYLE9BQVEsaUJBQWdCUyxHQUFHLENBQUNHLE9BQVEsRUFBcEUsQ0FBTjtJQUNEO0VBQ0Y7QUFDRiJ9
|
package/build/lib/system.js
CHANGED
|
@@ -67,4 +67,4 @@ async function macOsxVersion() {
|
|
|
67
67
|
|
|
68
68
|
return versionMatch[1];
|
|
69
69
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWRVJTSU9OX1BBVFRFUk4iLCJpc1dpbmRvd3MiLCJvcyIsInR5cGUiLCJpc01hYyIsImlzTGludXgiLCJpc09TV2luNjQiLCJwcm9jZXNzIiwiYXJjaCIsIl8iLCJoYXMiLCJlbnYiLCJzdGRvdXQiLCJleGVjIiwidHJpbSIsImlzNjQiLCJtYWNPc3hWZXJzaW9uIiwiZXJyIiwiRXJyb3IiLCJ2ZXJzaW9uTWF0Y2giXSwic291cmNlcyI6WyIuLi8uLi9saWIvc3lzdGVtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZXhlY30gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgb3MgZnJvbSAnb3MnO1xuXG5jb25zdCBWRVJTSU9OX1BBVFRFUk4gPSAvXihcXGQrXFwuXFxkKykvbTtcblxuZnVuY3Rpb24gaXNXaW5kb3dzKCkge1xuICByZXR1cm4gb3MudHlwZSgpID09PSAnV2luZG93c19OVCc7XG59XG5cbmZ1bmN0aW9uIGlzTWFjKCkge1xuICByZXR1cm4gb3MudHlwZSgpID09PSAnRGFyd2luJztcbn1cblxuZnVuY3Rpb24gaXNMaW51eCgpIHtcbiAgcmV0dXJuICFpc1dpbmRvd3MoKSAmJiAhaXNNYWMoKTtcbn1cblxuZnVuY3Rpb24gaXNPU1dpbjY0KCkge1xuICByZXR1cm4gcHJvY2Vzcy5hcmNoID09PSAneDY0JyB8fCBfLmhhcyhwcm9jZXNzLmVudiwgJ1BST0NFU1NPUl9BUkNISVRFVzY0MzInKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXJjaCgpIHtcbiAgaWYgKGlzTGludXgoKSB8fCBpc01hYygpKSB7XG4gICAgbGV0IHtzdGRvdXR9ID0gYXdhaXQgZXhlYygndW5hbWUnLCBbJy1tJ10pO1xuICAgIHJldHVybiBzdGRvdXQudHJpbSgpID09PSAnaTY4NicgPyAnMzInIDogJzY0JztcbiAgfSBlbHNlIGlmIChpc1dpbmRvd3MoKSkge1xuICAgIGxldCBpczY0ID0gdGhpcy5pc09TV2luNjQoKTtcbiAgICByZXR1cm4gaXM2NCA/ICc2NCcgOiAnMzInO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1hY09zeFZlcnNpb24oKSB7XG4gIGxldCBzdGRvdXQ7XG4gIHRyeSB7XG4gICAgc3Rkb3V0ID0gKGF3YWl0IGV4ZWMoJ3N3X3ZlcnMnLCBbJy1wcm9kdWN0VmVyc2lvbiddKSkuc3Rkb3V0LnRyaW0oKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZGV0ZWN0IE1hYyBPUyBYIFZlcnNpb246ICR7ZXJyfWApO1xuICB9XG5cbiAgY29uc3QgdmVyc2lvbk1hdGNoID0gVkVSU0lPTl9QQVRURVJOLmV4ZWMoc3Rkb3V0KTtcbiAgaWYgKCF2ZXJzaW9uTWF0Y2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBkZXRlY3QgTWFjIE9TIFggVmVyc2lvbiBmcm9tIHN3X3ZlcnMgb3V0cHV0OiAnJHtzdGRvdXR9J2ApO1xuICB9XG4gIHJldHVybiB2ZXJzaW9uTWF0Y2hbMV07XG59XG5cbmV4cG9ydCB7aXNXaW5kb3dzLCBpc01hYywgaXNMaW51eCwgaXNPU1dpbjY0LCBhcmNoLCBtYWNPc3hWZXJzaW9ufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLGVBQWUsR0FBRyxjQUF4Qjs7QUFFQSxTQUFTQyxTQUFULEdBQXFCO0VBQ25CLE9BQU9DLFdBQUEsQ0FBR0MsSUFBSCxPQUFjLFlBQXJCO0FBQ0Q7O0FBRUQsU0FBU0MsS0FBVCxHQUFpQjtFQUNmLE9BQU9GLFdBQUEsQ0FBR0MsSUFBSCxPQUFjLFFBQXJCO0FBQ0Q7O0FBRUQsU0FBU0UsT0FBVCxHQUFtQjtFQUNqQixPQUFPLENBQUNKLFNBQVMsRUFBVixJQUFnQixDQUFDRyxLQUFLLEVBQTdCO0FBQ0Q7O0FBRUQsU0FBU0UsU0FBVCxHQUFxQjtFQUNuQixPQUFPQyxPQUFPLENBQUNDLElBQVIsS0FBaUIsS0FBakIsSUFBMEJDLGVBQUEsQ0FBRUMsR0FBRixDQUFNSCxPQUFPLENBQUNJLEdBQWQsRUFBbUIsd0JBQW5CLENBQWpDO0FBQ0Q7O0FBRUQsZUFBZUgsSUFBZixHQUFzQjtFQUNwQixJQUFJSCxPQUFPLE1BQU1ELEtBQUssRUFBdEIsRUFBMEI7SUFDeEIsSUFBSTtNQUFDUTtJQUFELElBQVcsTUFBTSxJQUFBQyxrQkFBQSxFQUFLLE9BQUwsRUFBYyxDQUFDLElBQUQsQ0FBZCxDQUFyQjtJQUNBLE9BQU9ELE1BQU0sQ0FBQ0UsSUFBUCxPQUFrQixNQUFsQixHQUEyQixJQUEzQixHQUFrQyxJQUF6QztFQUNELENBSEQsTUFHTyxJQUFJYixTQUFTLEVBQWIsRUFBaUI7SUFDdEIsSUFBSWMsSUFBSSxHQUFHLEtBQUtULFNBQUwsRUFBWDtJQUNBLE9BQU9TLElBQUksR0FBRyxJQUFILEdBQVUsSUFBckI7RUFDRDtBQUNGOztBQUVELGVBQWVDLGFBQWYsR0FBK0I7RUFDN0IsSUFBSUosTUFBSjs7RUFDQSxJQUFJO0lBQ0ZBLE1BQU0sR0FBRyxDQUFDLE1BQU0sSUFBQUMsa0JBQUEsRUFBSyxTQUFMLEVBQWdCLENBQUMsaUJBQUQsQ0FBaEIsQ0FBUCxFQUE2Q0QsTUFBN0MsQ0FBb0RFLElBQXBELEVBQVQ7RUFDRCxDQUZELENBRUUsT0FBT0csR0FBUCxFQUFZO0lBQ1osTUFBTSxJQUFJQyxLQUFKLENBQVcsc0NBQXFDRCxHQUFJLEVBQXBELENBQU47RUFDRDs7RUFFRCxNQUFNRSxZQUFZLEdBQUduQixlQUFlLENBQUNhLElBQWhCLENBQXFCRCxNQUFyQixDQUFyQjs7RUFDQSxJQUFJLENBQUNPLFlBQUwsRUFBbUI7SUFDakIsTUFBTSxJQUFJRCxLQUFKLENBQVcsMkRBQTBETixNQUFPLEdBQTVFLENBQU47RUFDRDs7RUFDRCxPQUFPTyxZQUFZLENBQUMsQ0FBRCxDQUFuQjtBQUNEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tempdir.d.ts","sourceRoot":"","sources":["../../lib/tempdir.js"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tempdir.d.ts","sourceRoot":"","sources":["../../lib/tempdir.js"],"names":[],"mappings":";;;;;;;;;;;;;;UA6Dc,MAAM;;;;QACN,MAAM;;AAHpB;;;;GAIG;AAEH;;;;;;GAMG;AACH,8BAHW,OAAO,GACL,QAAQ,aAAa,CAAC,CAWlC;AA3CD;;;;GAIG;AAEH;;;;;;;GAOG;AACH,iCAJW,MAAM,GAAC,OAAO,uCAEZ,QAAQ,MAAM,CAAC,CAO3B;AAhDD;;;;;;;GAOG;AACH,2BAFa,QAAQ,MAAM,CAAC,CAqB3B;AAoFD;;;;GAIG;AAEH,6BAHa,QAAQ,MAAM,CAAC,CAK3B"}
|
package/build/lib/tempdir.js
CHANGED
|
@@ -85,4 +85,4 @@ exports.openDir = openDir;
|
|
|
85
85
|
async function staticDir() {
|
|
86
86
|
return _static;
|
|
87
87
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSRFdSX0VYQ0wiLCJjbnN0IiwiT19DUkVBVCIsIk9fVFJVTkMiLCJPX1JEV1IiLCJPX0VYQ0wiLCJ0ZW1wRGlyIiwibm93IiwiRGF0ZSIsImZpbGVQYXRoIiwibm9kZVBhdGgiLCJqb2luIiwicHJvY2VzcyIsImVudiIsIkFQUElVTV9UTVBfRElSIiwib3MiLCJ0bXBkaXIiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsInBpZCIsIk1hdGgiLCJyYW5kb20iLCJ0b1N0cmluZyIsImZzIiwibWtkaXIiLCJwYXRoIiwicmF3QWZmaXhlcyIsImRlZmF1bHRQcmVmaXgiLCJhZmZpeGVzIiwicGFyc2VBZmZpeGVzIiwibmFtZSIsInByZWZpeCIsInN1ZmZpeCIsInRlbXBEaXJlY3RvcnkiLCJvcGVuIiwiZmQiLCJlcnIiLCJsb2ciLCJlcnJvckFuZFRocm93IiwiRXJyb3IiLCJfc3RhdGljIiwib3BlbkRpciIsInN0YXRpY0RpciJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi90ZW1wZGlyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIFRoaXMgbGlicmFyeSBpcyBvcmlnaW5hdGVkIGZyb20gdGVtcC5qcyBhdCBodHRwOi8vZ2l0aHViLmNvbS9icnVjZS9ub2RlLXRlbXAgKi9cbmltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgbm9kZVBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgY25zdCBmcm9tICdjb25zdGFudHMnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5cbmNvbnN0IFJEV1JfRVhDTCA9IGNuc3QuT19DUkVBVCB8IGNuc3QuT19UUlVOQyB8IGNuc3QuT19SRFdSIHwgY25zdC5PX0VYQ0w7XG5cbi8qKlxuICogR2VuZXJhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIG9zLnRlbXBkaXIoKSBvciBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUi5cbiAqIGUuZy5cbiAqIC0gTm8gYHByb2Nlc3MuZW52LkFQUElVTV9UTVBfRElSYDogYC92YXIvZm9sZGVycy8zNC8yMjIyc2g4bjI3ZDZyY3A3anFsa3c4a20wMDAwZ24vVC94eHh4eHh4eC55eXl5YFxuICogLSBXaXRoIGBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUiA9ICcvcGF0aC90by9yb290J2A6IGAvcGF0aC90by9yb290L3h4eHh4eHh4Lnl5eXlgXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwYXRoIHRvIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHRlbXBEaXIoKSB7XG4gIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGZpbGVQYXRoID0gbm9kZVBhdGguam9pbihcbiAgICBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUiB8fCBvcy50bXBkaXIoKSxcbiAgICBbXG4gICAgICBub3cuZ2V0RnVsbFllYXIoKSxcbiAgICAgIG5vdy5nZXRNb250aCgpLFxuICAgICAgbm93LmdldERhdGUoKSxcbiAgICAgICctJyxcbiAgICAgIHByb2Nlc3MucGlkLFxuICAgICAgJy0nLFxuICAgICAgKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAwMCArIDEpLnRvU3RyaW5nKDM2KSxcbiAgICBdLmpvaW4oJycpXG4gICk7XG4gIC8vIGNyZWF0ZXMgYSB0ZW1wIGRpcmVjdG9yeSB1c2luZyB0aGUgZGF0ZSBhbmQgYSByYW5kb20gc3RyaW5nXG5cbiAgYXdhaXQgZnMubWtkaXIoZmlsZVBhdGgpO1xuXG4gIHJldHVybiBmaWxlUGF0aDtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiBBZmZpeGVzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3ByZWZpeF0gLSBwcmVmaXggb2YgdGhlIHRlbXAgZGlyZWN0b3J5IG5hbWVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbc3VmZml4XSAtIHN1ZmZpeCBvZiB0aGUgdGVtcCBkaXJlY3RvcnkgbmFtZVxuICovXG5cbi8qKlxuICogR2VuZXJhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIG9zLnRlbXBkaXIoKSBvciBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUlxuICogd2l0aCBhcmJpdHJhcnkgcHJlZml4L3N1ZmZpeCBmb3IgdGhlIGRpcmVjdG9yeSBuYW1lLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfEFmZml4ZXN9IHJhd0FmZml4ZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBbZGVmYXVsdFByZWZpeF1cbiAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59ICBBIHBhdGggdG8gdGhlIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2l0aCByYXdBZmZpeGVzIGFuZCBkZWZhdWx0UHJlZml4XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHBhdGgocmF3QWZmaXhlcywgZGVmYXVsdFByZWZpeCkge1xuICBjb25zdCBhZmZpeGVzID0gcGFyc2VBZmZpeGVzKHJhd0FmZml4ZXMsIGRlZmF1bHRQcmVmaXgpO1xuICBjb25zdCBuYW1lID0gYCR7YWZmaXhlcy5wcmVmaXggfHwgJyd9JHthZmZpeGVzLnN1ZmZpeCB8fCAnJ31gO1xuICBjb25zdCB0ZW1wRGlyZWN0b3J5ID0gYXdhaXQgdGVtcERpcigpO1xuICByZXR1cm4gbm9kZVBhdGguam9pbih0ZW1wRGlyZWN0b3J5LCBuYW1lKTtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiBPcGVuZWRBZmZpeGVzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcGF0aCAtIFRoZSBwYXRoIHRvIGZpbGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBmZCAtIFRoZSBmaWxlIGRlc2NyaXB0b3Igb3BlbmVkXG4gKi9cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gb3MudGVtcGRpcigpIG9yIHByb2Nlc3MuZW52LkFQUElVTV9UTVBfRElSXG4gKiB3aXRoIGFyYml0cmFyeSBwcmVmaXgvc3VmZml4IGZvciB0aGUgZGlyZWN0b3J5IG5hbWUgYW5kIHJldHVybiBpdCBhcyBvcGVuLlxuICpcbiAqIEBwYXJhbSB7QWZmaXhlc30gYWZmaXhlc1xuICogQHJldHVybnMge1Byb21pc2U8T3BlbmVkQWZmaXhlcz59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG9wZW4oYWZmaXhlcykge1xuICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IHBhdGgoYWZmaXhlcywgJ2YtJyk7XG4gIHRyeSB7XG4gICAgbGV0IGZkID0gYXdhaXQgZnMub3BlbihmaWxlUGF0aCwgUkRXUl9FWENMLCAwbzYwMCk7XG4gICAgLy8gb3BlbnMgdGhlIGZpbGUgaW4gbW9kZSAzODRcbiAgICByZXR1cm4ge3BhdGg6IGZpbGVQYXRoLCBmZH07XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBsb2cuZXJyb3JBbmRUaHJvdyhlcnIpO1xuICB9XG59XG5cbi8qKlxuICpcbiAqIFJldHVybnMgcHJlZml4L3N1ZmZpeCBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xBZmZpeGVzfSByYXdBZmZpeGVzXG4gKiBAcGFyYW0ge3N0cmluZ30gW2RlZmF1bHRQcmVmaXhdXG4gKiBAcmV0dXJucyB7QWZmaXhlc31cbiAqL1xuZnVuY3Rpb24gcGFyc2VBZmZpeGVzKHJhd0FmZml4ZXMsIGRlZmF1bHRQcmVmaXgpIHtcbiAgLyoqIEB0eXBlIHtBZmZpeGVzfSAqL1xuICBsZXQgYWZmaXhlcyA9IHt9O1xuICBpZiAocmF3QWZmaXhlcykge1xuICAgIHN3aXRjaCAodHlwZW9mIHJhd0FmZml4ZXMpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIGFmZml4ZXMucHJlZml4ID0gcmF3QWZmaXhlcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICBhZmZpeGVzID0gcmF3QWZmaXhlcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYWZmaXggZGVjbGFyYXRpb246ICR7YWZmaXhlc31gKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYWZmaXhlcy5wcmVmaXggPSBkZWZhdWx0UHJlZml4O1xuICB9XG4gIHJldHVybiBhZmZpeGVzO1xufVxuXG5jb25zdCBfc3RhdGljID0gdGVtcERpcigpO1xuXG4vKipcbiAqIFJldHVybnMgYSBuZXcgcGF0aCB0byBhIHRlbXBvcmFyeSBkaXJlY3RvcnlcbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIG5ldyB0ZW1wRGlyKCkgaWYgdGVtcFJvb3REaXJlY3RvcnkgaXMgbm90IHByb3ZpZGVkXG4gKi9cbmNvbnN0IG9wZW5EaXIgPSB0ZW1wRGlyO1xuXG4vKipcbiAqIFJldHVybnMgYSBwYXRoIHRvIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB3aGNpaCBpcyBkZWZpbmVkIGFzIHN0YXRpYyBpbiB0aGUgc2FtZSBwcm9jZXNzXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSB0ZW1wIGRpcmVjdG9yeSBwYXRoIHdoY2loIGlzIGRlZmluZWQgYXMgc3RhdGljIGluIHRoZSBzYW1lIHByb2Nlc3NcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbmFzeW5jIGZ1bmN0aW9uIHN0YXRpY0RpcigpIHtcbiAgcmV0dXJuIF9zdGF0aWM7XG59XG5cbmV4cG9ydCB7b3BlbiwgcGF0aCwgb3BlbkRpciwgc3RhdGljRGlyfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxTQUFTLEdBQUdDLGtCQUFBLENBQUtDLE9BQUwsR0FBZUQsa0JBQUEsQ0FBS0UsT0FBcEIsR0FBOEJGLGtCQUFBLENBQUtHLE1BQW5DLEdBQTRDSCxrQkFBQSxDQUFLSSxNQUFuRTs7QUFVQSxlQUFlQyxPQUFmLEdBQXlCO0VBQ3ZCLE1BQU1DLEdBQUcsR0FBRyxJQUFJQyxJQUFKLEVBQVo7O0VBQ0EsTUFBTUMsUUFBUSxHQUFHQyxhQUFBLENBQVNDLElBQVQsQ0FDZkMsT0FBTyxDQUFDQyxHQUFSLENBQVlDLGNBQVosSUFBOEJDLFdBQUEsQ0FBR0MsTUFBSCxFQURmLEVBRWYsQ0FDRVQsR0FBRyxDQUFDVSxXQUFKLEVBREYsRUFFRVYsR0FBRyxDQUFDVyxRQUFKLEVBRkYsRUFHRVgsR0FBRyxDQUFDWSxPQUFKLEVBSEYsRUFJRSxHQUpGLEVBS0VQLE9BQU8sQ0FBQ1EsR0FMVixFQU1FLEdBTkYsRUFPRSxDQUFDQyxJQUFJLENBQUNDLE1BQUwsS0FBZ0IsV0FBaEIsR0FBOEIsQ0FBL0IsRUFBa0NDLFFBQWxDLENBQTJDLEVBQTNDLENBUEYsRUFRRVosSUFSRixDQVFPLEVBUlAsQ0FGZSxDQUFqQjs7RUFjQSxNQUFNYSxXQUFBLENBQUdDLEtBQUgsQ0FBU2hCLFFBQVQsQ0FBTjtFQUVBLE9BQU9BLFFBQVA7QUFDRDs7QUFnQkQsZUFBZWlCLElBQWYsQ0FBb0JDLFVBQXBCLEVBQWdDQyxhQUFoQyxFQUErQztFQUM3QyxNQUFNQyxPQUFPLEdBQUdDLFlBQVksQ0FBQ0gsVUFBRCxFQUFhQyxhQUFiLENBQTVCO0VBQ0EsTUFBTUcsSUFBSSxHQUFJLEdBQUVGLE9BQU8sQ0FBQ0csTUFBUixJQUFrQixFQUFHLEdBQUVILE9BQU8sQ0FBQ0ksTUFBUixJQUFrQixFQUFHLEVBQTVEO0VBQ0EsTUFBTUMsYUFBYSxHQUFHLE1BQU01QixPQUFPLEVBQW5DO0VBQ0EsT0FBT0ksYUFBQSxDQUFTQyxJQUFULENBQWN1QixhQUFkLEVBQTZCSCxJQUE3QixDQUFQO0FBQ0Q7O0FBZUQsZUFBZUksSUFBZixDQUFvQk4sT0FBcEIsRUFBNkI7RUFDM0IsTUFBTXBCLFFBQVEsR0FBRyxNQUFNaUIsSUFBSSxDQUFDRyxPQUFELEVBQVUsSUFBVixDQUEzQjs7RUFDQSxJQUFJO0lBQ0YsSUFBSU8sRUFBRSxHQUFHLE1BQU1aLFdBQUEsQ0FBR1csSUFBSCxDQUFRMUIsUUFBUixFQUFrQlQsU0FBbEIsRUFBNkIsS0FBN0IsQ0FBZjtJQUVBLE9BQU87TUFBQzBCLElBQUksRUFBRWpCLFFBQVA7TUFBaUIyQjtJQUFqQixDQUFQO0VBQ0QsQ0FKRCxDQUlFLE9BQU9DLEdBQVAsRUFBWTtJQUNaLE9BQU9DLGVBQUEsQ0FBSUMsYUFBSixDQUFrQkYsR0FBbEIsQ0FBUDtFQUNEO0FBQ0Y7O0FBVUQsU0FBU1AsWUFBVCxDQUFzQkgsVUFBdEIsRUFBa0NDLGFBQWxDLEVBQWlEO0VBRS9DLElBQUlDLE9BQU8sR0FBRyxFQUFkOztFQUNBLElBQUlGLFVBQUosRUFBZ0I7SUFDZCxRQUFRLE9BQU9BLFVBQWY7TUFDRSxLQUFLLFFBQUw7UUFDRUUsT0FBTyxDQUFDRyxNQUFSLEdBQWlCTCxVQUFqQjtRQUNBOztNQUNGLEtBQUssUUFBTDtRQUNFRSxPQUFPLEdBQUdGLFVBQVY7UUFDQTs7TUFDRjtRQUNFLE1BQU0sSUFBSWEsS0FBSixDQUFXLDhCQUE2QlgsT0FBUSxFQUFoRCxDQUFOO0lBUko7RUFVRCxDQVhELE1BV087SUFDTEEsT0FBTyxDQUFDRyxNQUFSLEdBQWlCSixhQUFqQjtFQUNEOztFQUNELE9BQU9DLE9BQVA7QUFDRDs7QUFFRCxNQUFNWSxPQUFPLEdBQUduQyxPQUFPLEVBQXZCOztBQU9BLE1BQU1vQyxPQUFPLEdBQUdwQyxPQUFoQjs7O0FBUUEsZUFBZXFDLFNBQWYsR0FBMkI7RUFDekIsT0FBT0YsT0FBUDtBQUNEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../lib/timing.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../lib/timing.js"],"names":[],"mappings":";AAkDA;IAKI,6CAAsB;IAGxB,kDAEC;IAED;;;;OAIG;IACH,SAFY,KAAK,CAWhB;IAED;;;;OAIG;IACH,eAFY,QAAQ,CAsBnB;IAED,mBAMC;CACF;AA3GD;;GAEG;AACH;IACE,wBAEC;IADC,YAAmB;IAGrB,iBAEC;IAED;;;;OAIG;IACH,4BAEC;IAED;;;;OAIG;IACH,6BAEC;IAED;;;;OAIG;IACH,wBAEC;IAED,mBAGC;CACF"}
|
package/build/lib/timing.js
CHANGED
|
@@ -94,4 +94,4 @@ class Timer {
|
|
|
94
94
|
exports.Timer = Timer;
|
|
95
95
|
var _default = Timer;
|
|
96
96
|
exports.default = _default;
|
|
97
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOU19QRVJfUyIsIk5TX1BFUl9NUyIsIkR1cmF0aW9uIiwiY29uc3RydWN0b3IiLCJuYW5vcyIsIl9uYW5vcyIsImFzTmFub1NlY29uZHMiLCJhc01pbGxpU2Vjb25kcyIsImFzU2Vjb25kcyIsInRvU3RyaW5nIiwidG9GaXhlZCIsIlRpbWVyIiwiX3N0YXJ0VGltZSIsInN0YXJ0VGltZSIsInN0YXJ0IiwiXyIsImlzTnVsbCIsIkVycm9yIiwiaXNGdW5jdGlvbiIsInByb2Nlc3MiLCJocnRpbWUiLCJiaWdpbnQiLCJnZXREdXJhdGlvbiIsIm5hbm9EdXJhdGlvbiIsImlzQXJyYXkiLCJzZWNvbmRzIiwiZW5kVGltZSIsIk51bWJlciIsImVyciIsIm1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi9saWIvdGltaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IE5TX1BFUl9TID0gMWU5O1xuY29uc3QgTlNfUEVSX01TID0gMWU2O1xuXG4vKipcbiAqIENsYXNzIHJlcHJlc2VudGluZyBhIGR1cmF0aW9uLCBlbmNhcHN1bGF0aW5nIHRoZSBudW1iZXIgYW5kIHVuaXRzLlxuICovXG5jbGFzcyBEdXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbm9zKSB7XG4gICAgdGhpcy5fbmFub3MgPSBuYW5vcztcbiAgfVxuXG4gIGdldCBuYW5vcygpIHtcbiAgICByZXR1cm4gdGhpcy5fbmFub3M7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkdXJhdGlvbiBhcyBuYW5vc2Vjb25kc1xuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgZHVyYXRpb24gYXMgbmFub3NlY29uZHNcbiAgICovXG4gIGdldCBhc05hbm9TZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLm5hbm9zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZHVyYXRpb24gY29udmVydGVkIGludG8gbWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBkdXJhdGlvbiBhcyBtaWxsaXNlY29uZHNcbiAgICovXG4gIGdldCBhc01pbGxpU2Vjb25kcygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW5vcyAvIE5TX1BFUl9NUztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGR1cmF0aW9uIGNvbnZlcnRlZCBpbnRvIHNlY29uZHNcbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIGR1cmF0aW9uIGZhcyBzZWNvbmRzXG4gICAqL1xuICBnZXQgYXNTZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLm5hbm9zIC8gTlNfUEVSX1M7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICAvLyBkZWZhdWx0IHRvIG1pbGxpc2Vjb25kcywgcm91bmRlZFxuICAgIHJldHVybiB0aGlzLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCk7XG4gIH1cbn1cblxuY2xhc3MgVGltZXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIHRpbWVyXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9zdGFydFRpbWUgPSBudWxsO1xuICB9XG5cbiAgZ2V0IHN0YXJ0VGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHRoZSB0aW1lclxuICAgKlxuICAgKiBAcmV0dXJuIHtUaW1lcn0gVGhlIGN1cnJlbnQgaW5zdGFuY2UsIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgc3RhcnQoKSB7XG4gICAgaWYgKCFfLmlzTnVsbCh0aGlzLnN0YXJ0VGltZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGltZXIgaGFzIGFscmVhZHkgYmVlbiBzdGFydGVkLicpO1xuICAgIH1cbiAgICAvLyBvbmNlIE5vZGUgMTAgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCwgdGhpcyBjaGVjayBjYW4gYmUgcmVtb3ZlZFxuICAgIHRoaXMuX3N0YXJ0VGltZSA9IF8uaXNGdW5jdGlvbihwcm9jZXNzLmhydGltZS5iaWdpbnQpXG4gICAgICA/IHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpXG4gICAgICA6IHByb2Nlc3MuaHJ0aW1lKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkdXJhdGlvbiBzaW5jZSB0aGUgdGltZXIgd2FzIHN0YXJ0ZWRcbiAgICpcbiAgICogQHJldHVybiB7RHVyYXRpb259IHRoZSBkdXJhdGlvblxuICAgKi9cbiAgZ2V0RHVyYXRpb24oKSB7XG4gICAgaWYgKF8uaXNOdWxsKHRoaXMuc3RhcnRUaW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZ2V0IGR1cmF0aW9uLiBUaW1lciB3YXMgbm90IHN0YXJ0ZWRgKTtcbiAgICB9XG5cbiAgICBsZXQgbmFub0R1cmF0aW9uO1xuICAgIGlmIChfLmlzQXJyYXkodGhpcy5zdGFydFRpbWUpKSB7XG4gICAgICAvLyBzdGFydFRpbWUgd2FzIGNyZWF0ZWQgdXNpbmcgcHJvY2Vzcy5ocnRpbWUoKVxuICAgICAgY29uc3QgW3NlY29uZHMsIG5hbm9zXSA9IHByb2Nlc3MuaHJ0aW1lKHRoaXMuc3RhcnRUaW1lKTtcbiAgICAgIG5hbm9EdXJhdGlvbiA9IHNlY29uZHMgKiBOU19QRVJfUyArIG5hbm9zO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuc3RhcnRUaW1lID09PSAnYmlnaW50JyAmJiBfLmlzRnVuY3Rpb24ocHJvY2Vzcy5ocnRpbWUuYmlnaW50KSkge1xuICAgICAgLy8gc3RhcnRUaW1lIHdhcyBjcmVhdGVkIHVzaW5nIHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpXG4gICAgICBjb25zdCBlbmRUaW1lID0gcHJvY2Vzcy5ocnRpbWUuYmlnaW50KCk7XG4gICAgICAvLyBnZXQgdGhlIGRpZmZlcmVuY2UsIGFuZCBjb252ZXJ0IHRvIG51bWJlclxuICAgICAgbmFub0R1cmF0aW9uID0gTnVtYmVyKGVuZFRpbWUgLSB0aGlzLnN0YXJ0VGltZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGdldCBkdXJhdGlvbi4gU3RhcnQgdGltZSAnJHt0aGlzLnN0YXJ0VGltZX0nIGNhbm5vdCBiZSBwYXJzZWRgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IER1cmF0aW9uKG5hbm9EdXJhdGlvbik7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RHVyYXRpb24oKS50b1N0cmluZygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIGA8ZXJyOiAke2Vyci5tZXNzYWdlfT5gO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQge1RpbWVyLCBEdXJhdGlvbn07XG5leHBvcnQgZGVmYXVsdCBUaW1lcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxRQUFRLEdBQUcsR0FBakI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsR0FBbEI7O0FBS0EsTUFBTUMsUUFBTixDQUFlO0VBQ2JDLFdBQVcsQ0FBQ0MsS0FBRCxFQUFRO0lBQ2pCLEtBQUtDLE1BQUwsR0FBY0QsS0FBZDtFQUNEOztFQUVRLElBQUxBLEtBQUssR0FBRztJQUNWLE9BQU8sS0FBS0MsTUFBWjtFQUNEOztFQU9nQixJQUFiQyxhQUFhLEdBQUc7SUFDbEIsT0FBTyxLQUFLRixLQUFaO0VBQ0Q7O0VBT2lCLElBQWRHLGNBQWMsR0FBRztJQUNuQixPQUFPLEtBQUtILEtBQUwsR0FBYUgsU0FBcEI7RUFDRDs7RUFPWSxJQUFUTyxTQUFTLEdBQUc7SUFDZCxPQUFPLEtBQUtKLEtBQUwsR0FBYUosUUFBcEI7RUFDRDs7RUFFRFMsUUFBUSxHQUFHO0lBRVQsT0FBTyxLQUFLRixjQUFMLENBQW9CRyxPQUFwQixDQUE0QixDQUE1QixDQUFQO0VBQ0Q7O0FBdkNZOzs7O0FBMENmLE1BQU1DLEtBQU4sQ0FBWTtFQUlWUixXQUFXLEdBQUc7SUFDWixLQUFLUyxVQUFMLEdBQWtCLElBQWxCO0VBQ0Q7O0VBRVksSUFBVEMsU0FBUyxHQUFHO0lBQ2QsT0FBTyxLQUFLRCxVQUFaO0VBQ0Q7O0VBT0RFLEtBQUssR0FBRztJQUNOLElBQUksQ0FBQ0MsZUFBQSxDQUFFQyxNQUFGLENBQVMsS0FBS0gsU0FBZCxDQUFMLEVBQStCO01BQzdCLE1BQU0sSUFBSUksS0FBSixDQUFVLGlDQUFWLENBQU47SUFDRDs7SUFFRCxLQUFLTCxVQUFMLEdBQWtCRyxlQUFBLENBQUVHLFVBQUYsQ0FBYUMsT0FBTyxDQUFDQyxNQUFSLENBQWVDLE1BQTVCLElBQ2RGLE9BQU8sQ0FBQ0MsTUFBUixDQUFlQyxNQUFmLEVBRGMsR0FFZEYsT0FBTyxDQUFDQyxNQUFSLEVBRko7SUFHQSxPQUFPLElBQVA7RUFDRDs7RUFPREUsV0FBVyxHQUFHO0lBQ1osSUFBSVAsZUFBQSxDQUFFQyxNQUFGLENBQVMsS0FBS0gsU0FBZCxDQUFKLEVBQThCO01BQzVCLE1BQU0sSUFBSUksS0FBSixDQUFXLCtDQUFYLENBQU47SUFDRDs7SUFFRCxJQUFJTSxZQUFKOztJQUNBLElBQUlSLGVBQUEsQ0FBRVMsT0FBRixDQUFVLEtBQUtYLFNBQWYsQ0FBSixFQUErQjtNQUU3QixNQUFNLENBQUNZLE9BQUQsRUFBVXJCLEtBQVYsSUFBbUJlLE9BQU8sQ0FBQ0MsTUFBUixDQUFlLEtBQUtQLFNBQXBCLENBQXpCO01BQ0FVLFlBQVksR0FBR0UsT0FBTyxHQUFHekIsUUFBVixHQUFxQkksS0FBcEM7SUFDRCxDQUpELE1BSU8sSUFBSSxPQUFPLEtBQUtTLFNBQVosS0FBMEIsUUFBMUIsSUFBc0NFLGVBQUEsQ0FBRUcsVUFBRixDQUFhQyxPQUFPLENBQUNDLE1BQVIsQ0FBZUMsTUFBNUIsQ0FBMUMsRUFBK0U7TUFFcEYsTUFBTUssT0FBTyxHQUFHUCxPQUFPLENBQUNDLE1BQVIsQ0FBZUMsTUFBZixFQUFoQjtNQUVBRSxZQUFZLEdBQUdJLE1BQU0sQ0FBQ0QsT0FBTyxHQUFHLEtBQUtiLFNBQWhCLENBQXJCO0lBQ0QsQ0FMTSxNQUtBO01BQ0wsTUFBTSxJQUFJSSxLQUFKLENBQVcsdUNBQXNDLEtBQUtKLFNBQVUsb0JBQWhFLENBQU47SUFDRDs7SUFFRCxPQUFPLElBQUlYLFFBQUosQ0FBYXFCLFlBQWIsQ0FBUDtFQUNEOztFQUVEZCxRQUFRLEdBQUc7SUFDVCxJQUFJO01BQ0YsT0FBTyxLQUFLYSxXQUFMLEdBQW1CYixRQUFuQixFQUFQO0lBQ0QsQ0FGRCxDQUVFLE9BQU9tQixHQUFQLEVBQVk7TUFDWixPQUFRLFNBQVFBLEdBQUcsQ0FBQ0MsT0FBUSxHQUE1QjtJQUNEO0VBQ0Y7O0FBN0RTOzs7ZUFpRUdsQixLIn0=
|
package/build/lib/util.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @template {string} T
|
|
3
|
+
* @param {T} val
|
|
4
|
+
* @returns {val is NonEmptyString<T>}
|
|
5
|
+
*/
|
|
6
|
+
export function hasContent<T extends string>(val: T): val is NonEmptyString<T>;
|
|
2
7
|
export type PluralizeOptions = {
|
|
3
8
|
/**
|
|
4
9
|
* - Whether to prefix with the number (e.g., 3 ducks)
|
|
@@ -26,7 +31,19 @@ export type LockFileOptions = {
|
|
|
26
31
|
*/
|
|
27
32
|
tryRecovery?: boolean | undefined;
|
|
28
33
|
};
|
|
29
|
-
|
|
34
|
+
/**
|
|
35
|
+
* A `string` which is never `''`.
|
|
36
|
+
*/
|
|
37
|
+
export type NonEmptyString<T extends string> = T extends '' ? never : T;
|
|
38
|
+
/**
|
|
39
|
+
* return true if the the value is not `undefined`, `null`, or `NaN`.
|
|
40
|
+
*
|
|
41
|
+
* XXX: `NaN` is not expressible in TypeScript.
|
|
42
|
+
* @template T
|
|
43
|
+
* @param {T} val
|
|
44
|
+
* @returns {val is NonNullable<T>}
|
|
45
|
+
*/
|
|
46
|
+
export function hasValue<T>(val: T): val is NonNullable<T>;
|
|
30
47
|
export function escapeSpace(str: any): any;
|
|
31
48
|
export function escapeSpecialChars(str: any, quoteEscape: any): any;
|
|
32
49
|
export function localIp(): any;
|
package/build/lib/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../lib/util.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../lib/util.js"],"names":[],"mappings":"AA4BA;;;;GAIG;AACH,+EAEC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAuhBY,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC;AArhBrC;;;;;;;GAOG;AACH,2DAMC;AAGD,2CAEC;AAED,oEAsBC;AAED,+BAYC;AAMD,kDAoBC;AAED,8DAEC;AAKD,6CAOC;AAoDD;;;EAKC;AAdD,4CAOC;AAiBD,4DAgBC;AAED;;;;;;;;GAQG;AACH,4CANW,MAAM,GAAC,MAAM,GACX,MAAM,CAkBlB;AAED;;;;;;;;;GASG;AACH,wCANW,MAAM,QACN,MAAM,eACL,OAAO,UACN,OAAO,CAanB;AAlPD,+EAAyE;AAoPzE;;;;;;;;GAQG;AACH,yCALW,MAAM,SACN,MAAM,YACH,MAAM,KACP,QAAQ,OAAO,CAAC,CAoB5B;AAuBD;;;;;;;;;;;;GAYG;AACH,sCAVW,MAAM,YAIN,MAAM,QAFN,MAAM,GAIJ,OAAO,CAenB;AA7CD;;;;;;;;;;GAUG;AACH,kEAPW,MAAM,6EAahB;AA8BD;;;;;;GAMG;AACH,4BAHW,MAAM,GAAC,MAAM,EAAE,GACb,MAAM,CAIlB;AAED;;;;;;;GAOG;AACH,sCAFY,MAAM,CAIjB;AAtND,+EAsBC;AAkMD;;;GAGG;AAEH;;;;;;;;GAQG;AACH,gCANW,MAAM,SACN,MAAM,YACN,gBAAgB,GAAC,OAAO,GAEtB,MAAM,CAYlB;AA5WD,yBAAuB;AADvB,yBAAuB;AADvB,uBAAiB;AAgXjB;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,0CANW,MAAM,SACN,eAAe,GACb,QAAQ,MAAM,CAAC,CAmD3B;;;;;;AAED;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,8CALW,MAAM,SACN,eAAe;yBAcH,GAAG,EAAE;;EA0C3B"}
|
package/build/lib/util.js
CHANGED
|
@@ -99,15 +99,11 @@ function hasContent(val) {
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
function hasValue(val) {
|
|
102
|
-
let hasVal = false;
|
|
103
|
-
|
|
104
102
|
if (_lodash.default.isNumber(val)) {
|
|
105
|
-
|
|
106
|
-
} else {
|
|
107
|
-
hasVal = !_lodash.default.isUndefined(val) && !_lodash.default.isNull(val);
|
|
103
|
+
return !_lodash.default.isNaN(val);
|
|
108
104
|
}
|
|
109
105
|
|
|
110
|
-
return
|
|
106
|
+
return !_lodash.default.isUndefined(val) && !_lodash.default.isNull(val);
|
|
111
107
|
}
|
|
112
108
|
|
|
113
109
|
function escapeSpace(str) {
|
|
@@ -418,4 +414,4 @@ function getLockFileGuard(lockFile, opts = {}) {
|
|
|
418
414
|
|
|
419
415
|
return guard;
|
|
420
416
|
}
|
|
421
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXM0NfV0VCX0VMRU1FTlRfSURFTlRJRklFUiIsIktpQiIsIk1pQiIsIkdpQiIsImhhc0NvbnRlbnQiLCJ2YWwiLCJfIiwiaXNTdHJpbmciLCJoYXNWYWx1ZSIsImhhc1ZhbCIsImlzTnVtYmVyIiwiaXNOYU4iLCJpc1VuZGVmaW5lZCIsImlzTnVsbCIsImVzY2FwZVNwYWNlIiwic3RyIiwic3BsaXQiLCJqb2luIiwiZXNjYXBlU3BlY2lhbENoYXJzIiwicXVvdGVFc2NhcGUiLCJyZXBsYWNlIiwicmUiLCJSZWdFeHAiLCJsb2NhbElwIiwiaXAiLCJjaGFpbiIsIm9zIiwibmV0d29ya0ludGVyZmFjZXMiLCJ2YWx1ZXMiLCJmbGF0dGVuIiwiZmlsdGVyIiwiZmFtaWx5IiwiaW50ZXJuYWwiLCJtYXAiLCJmaXJzdCIsInZhbHVlIiwiY2FuY2VsbGFibGVEZWxheSIsIm1zIiwidGltZXIiLCJyZXNvbHZlIiwicmVqZWN0IiwiZGVsYXkiLCJCIiwiUHJvbWlzZSIsIl9yZXNvbHZlIiwiX3JlamVjdCIsInNldFRpbWVvdXQiLCJjYW5jZWwiLCJjbGVhclRpbWVvdXQiLCJDYW5jZWxsYXRpb25FcnJvciIsIm11bHRpUmVzb2x2ZSIsInJvb3RzIiwiYXJncyIsInJvb3QiLCJwYXRoIiwic2FmZUpzb25QYXJzZSIsIm9iaiIsIkpTT04iLCJwYXJzZSIsImlnbiIsImpzb25TdHJpbmdpZnkiLCJyZXBsYWNlciIsInNwYWNlIiwiaXNGdW5jdGlvbiIsImsiLCJ2IiwiYnVmZmVyVG9KU09OIiwiQnVmZmVyIiwicHJvdG90eXBlIiwidG9KU09OIiwic3RyaW5naWZ5Iiwia2V5IiwidXBkYXRlZFZhbHVlIiwiaXNCdWZmZXIiLCJ0b1N0cmluZyIsInVud3JhcEVsZW1lbnQiLCJlbCIsInByb3BOYW1lIiwiaGFzIiwid3JhcEVsZW1lbnQiLCJlbGVtZW50SWQiLCJFTEVNRU5UIiwiZmlsdGVyT2JqZWN0IiwicHJlZGljYXRlIiwibmV3T2JqIiwiY2xvbmUiLCJ2YWx1ZVByZWRpY2F0ZSIsIk9iamVjdCIsImtleXMiLCJ0b1JlYWRhYmxlU2l6ZVN0cmluZyIsImJ5dGVzIiwiaW50Qnl0ZXMiLCJwYXJzZUludCIsIlN0cmluZyIsIkVycm9yIiwidG9GaXhlZCIsImlzU3ViUGF0aCIsIm9yaWdpbmFsUGF0aCIsImZvcmNlUG9zaXgiLCJwYXRoT2JqIiwicG9zaXgiLCJwIiwiaXNBYnNvbHV0ZSIsIm5vcm1hbGl6ZWRSb290Iiwibm9ybWFsaXplIiwibm9ybWFsaXplZFBhdGgiLCJzdGFydHNXaXRoIiwiaXNTYW1lRGVzdGluYXRpb24iLCJwYXRoMSIsInBhdGgyIiwicGF0aE4iLCJhbGxQYXRocyIsInJlZHVjZSIsImEiLCJiIiwiZnMiLCJleGlzdHMiLCJhcmVBbGxJdGVtc0VxdWFsIiwiYXJyIiwiTmFOIiwibWFwQ2IiLCJ4Iiwic3RhdCIsImJpZ2ludCIsImlubyIsImNvZXJjZVZlcnNpb24iLCJ2ZXIiLCJzdHJpY3QiLCJyZXN1bHQiLCJzZW12ZXIiLCJ2YWxpZCIsImNvZXJjZSIsIlNVUFBPUlRFRF9PUEVSQVRPUlMiLCJjb21wYXJlVmVyc2lvbnMiLCJ2ZXIxIiwib3BlcmF0b3IiLCJ2ZXIyIiwiaW5jbHVkZXMiLCJzZW12ZXJPcGVyYXRvciIsInNhdGlzZmllcyIsInF1b3RlIiwiY2FzdEFycmF5IiwidW5sZWFrU3RyaW5nIiwicyIsInN1YnN0ciIsInBsdXJhbGl6ZSIsIndvcmQiLCJjb3VudCIsIm9wdGlvbnMiLCJpbmNsdXNpdmUiLCJpc0Jvb2xlYW4iLCJ0b0luTWVtb3J5QmFzZTY0Iiwic3JjUGF0aCIsIm9wdHMiLCJpc0RpcmVjdG9yeSIsIm1heFNpemUiLCJyZXN1bHRCdWZmZXJzIiwicmVzdWx0QnVmZmVyc1NpemUiLCJyZXN1bHRXcml0ZVN0cmVhbSIsInN0cmVhbSIsIldyaXRhYmxlIiwid3JpdGUiLCJidWZmZXIiLCJlbmNvZGluZyIsIm5leHQiLCJwdXNoIiwibGVuZ3RoIiwiZW1pdCIsInJlYWRlclN0cmVhbSIsImNyZWF0ZVJlYWRTdHJlYW0iLCJiYXNlNjRFbmNvZGVyU3RyZWFtIiwiQmFzZTY0RW5jb2RlIiwicmVzdWx0V3JpdGVTdHJlYW1Qcm9taXNlIiwib25jZSIsImUiLCJ1bnBpcGUiLCJkZXN0cm95IiwicmVhZFN0cmVhbVByb21pc2UiLCJtZXNzYWdlIiwicGlwZSIsImFsbCIsImNvbmNhdCIsImdldExvY2tGaWxlR3VhcmQiLCJsb2NrRmlsZSIsInRpbWVvdXQiLCJ0cnlSZWNvdmVyeSIsImxvY2siLCJwcm9taXNpZnkiLCJfbG9ja2ZpbGUiLCJjaGVjayIsInVubG9jayIsImd1YXJkIiwiYmVoYXZpb3IiLCJ0cmllZFJlY292ZXJ5IiwiY2hlY2tTeW5jIiwid2FpdCIsImxvY2tTeW5jIiwidW5sb2NrU3luYyJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGZzIGZyb20gJy4vZnMnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHtcbiAgLy8gaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc2hlbGwtcXVvdGVcbiAgcXVvdGUgYXMgc2hlbGxRdW90ZSxcbiAgcGFyc2UgYXMgc2hlbGxQYXJzZSxcbn0gZnJvbSAnc2hlbGwtcXVvdGUnO1xuaW1wb3J0IHBsdXJhbGl6ZUxpYiBmcm9tICdwbHVyYWxpemUnO1xuaW1wb3J0IHN0cmVhbSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IHsgQmFzZTY0RW5jb2RlIH0gZnJvbSAnYmFzZTY0LXN0cmVhbSc7XG5pbXBvcnQge1xuICAvLyBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS91dWlkXG4gIHYxIGFzIHV1aWRWMSwgdjMgYXMgdXVpZFYzLFxuICB2NCBhcyB1dWlkVjQsIHY1IGFzIHV1aWRWNVxufSBmcm9tICd1dWlkJztcbmltcG9ydCBfbG9ja2ZpbGUgZnJvbSAnbG9ja2ZpbGUnO1xuXG5cbmNvbnN0IFczQ19XRUJfRUxFTUVOVF9JREVOVElGSUVSID0gJ2VsZW1lbnQtNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmJztcbmNvbnN0IEtpQiA9IDEwMjQ7XG5jb25zdCBNaUIgPSBLaUIgKiAxMDI0O1xuY29uc3QgR2lCID0gTWlCICogMTAyNDtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0NvbnRlbnQgKHZhbCkge1xuICByZXR1cm4gXy5pc1N0cmluZyh2YWwpICYmIHZhbCAhPT0gJyc7XG59XG5cbi8vIHJldHVybiB0cnVlIGlmIHRoZSB0aGUgdmFsdWUgaXMgbm90IHVuZGVmaW5lZCwgbnVsbCwgb3IgTmFOLlxuZnVuY3Rpb24gaGFzVmFsdWUgKHZhbCkge1xuICBsZXQgaGFzVmFsID0gZmFsc2U7XG4gIC8vIGF2b2lkIGluY29ycmVjdGx5IGV2YWx1YXRpbmcgYDBgIGFzIGZhbHNlXG4gIGlmIChfLmlzTnVtYmVyKHZhbCkpIHtcbiAgICBoYXNWYWwgPSAhXy5pc05hTih2YWwpO1xuICB9IGVsc2Uge1xuICAgIGhhc1ZhbCA9ICFfLmlzVW5kZWZpbmVkKHZhbCkgJiYgIV8uaXNOdWxsKHZhbCk7XG4gIH1cblxuICByZXR1cm4gaGFzVmFsO1xufVxuXG4vLyBlc2NhcGUgc3BhY2VzIGluIHN0cmluZywgZm9yIGNvbW1hbmRsaW5lIGNhbGxzXG5mdW5jdGlvbiBlc2NhcGVTcGFjZSAoc3RyKSB7XG4gIHJldHVybiBzdHIuc3BsaXQoLyAvKS5qb2luKCdcXFxcICcpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVTcGVjaWFsQ2hhcnMgKHN0ciwgcXVvdGVFc2NhcGUpIHtcbiAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBpZiAodHlwZW9mIHF1b3RlRXNjYXBlID09PSAndW5kZWZpbmVkJykge1xuICAgIHF1b3RlRXNjYXBlID0gZmFsc2U7XG4gIH1cbiAgc3RyID0gc3RyXG4gICAgLnJlcGxhY2UoL1tcXFxcXS9nLCAnXFxcXFxcXFwnKVxuICAgIC5yZXBsYWNlKC9bXFwvXS9nLCAnXFxcXC8nKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gICAgLnJlcGxhY2UoL1tcXGJdL2csICdcXFxcYicpXG4gICAgLnJlcGxhY2UoL1tcXGZdL2csICdcXFxcZicpXG4gICAgLnJlcGxhY2UoL1tcXG5dL2csICdcXFxcbicpXG4gICAgLnJlcGxhY2UoL1tcXHJdL2csICdcXFxccicpXG4gICAgLnJlcGxhY2UoL1tcXHRdL2csICdcXFxcdCcpXG4gICAgLnJlcGxhY2UoL1tcXFwiXS9nLCAnXFxcXFwiJykgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuICAgIC5yZXBsYWNlKC9cXFxcJy9nLCBcIlxcXFwnXCIpO1xuICBpZiAocXVvdGVFc2NhcGUpIHtcbiAgICBsZXQgcmUgPSBuZXcgUmVnRXhwKHF1b3RlRXNjYXBlLCAnZycpO1xuICAgIHN0ciA9IHN0ci5yZXBsYWNlKHJlLCBgXFxcXCR7cXVvdGVFc2NhcGV9YCk7XG4gIH1cbiAgcmV0dXJuIHN0cjtcbn1cblxuZnVuY3Rpb24gbG9jYWxJcCAoKSB7XG4gIGxldCBpcCA9IF8uY2hhaW4ob3MubmV0d29ya0ludGVyZmFjZXMoKSlcbiAgICAudmFsdWVzKClcbiAgICAuZmxhdHRlbigpXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIC5maWx0ZXIoZnVuY3Rpb24gKHZhbCkge1xuICAgICAgcmV0dXJuICh2YWwuZmFtaWx5ID09PSAnSVB2NCcgJiYgdmFsLmludGVybmFsID09PSBmYWxzZSk7XG4gICAgfSlcbiAgICAubWFwKCdhZGRyZXNzJylcbiAgICAuZmlyc3QoKVxuICAgIC52YWx1ZSgpO1xuICByZXR1cm4gaXA7XG59XG5cbi8qXG4gKiBDcmVhdGVzIGEgcHJvbWlzZSB0aGF0IGlzIGNhbmNlbGxhYmxlLCBhbmQgd2lsbCB0aW1lb3V0XG4gKiBhZnRlciBgbXNgIGRlbGF5XG4gKi9cbmZ1bmN0aW9uIGNhbmNlbGxhYmxlRGVsYXkgKG1zKSB7XG4gIGxldCB0aW1lcjtcbiAgbGV0IHJlc29sdmU7XG4gIGxldCByZWplY3Q7XG5cbiAgY29uc3QgZGVsYXkgPSBuZXcgQi5Qcm9taXNlKChfcmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuICAgIHJlc29sdmUgPSBfcmVzb2x2ZTtcbiAgICByZWplY3QgPSBfcmVqZWN0O1xuICAgIHRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSwgbXMpO1xuICB9KTtcblxuICAvLyBvdmVycmlkZSBCbHVlYmlyZCdzIGBjYW5jZWxgLCB3aGljaCBkb2VzIG5vdCB3b3JrIHdoZW4gdXNpbmcgYGF3YWl0YCBvblxuICAvLyBhIHByb21pc2UsIHNpbmNlIGByZXNvbHZlYC9gcmVqZWN0YCBhcmUgbmV2ZXIgY2FsbGVkXG4gIGRlbGF5LmNhbmNlbCA9IGZ1bmN0aW9uICgpIHtcbiAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgIHJlamVjdChuZXcgQi5DYW5jZWxsYXRpb25FcnJvcigpKTtcbiAgfTtcbiAgcmV0dXJuIGRlbGF5O1xufVxuXG5mdW5jdGlvbiBtdWx0aVJlc29sdmUgKHJvb3RzLCAuLi5hcmdzKSB7XG4gIHJldHVybiByb290cy5tYXAoKHJvb3QpID0+IHBhdGgucmVzb2x2ZShyb290LCAuLi5hcmdzKSk7XG59XG5cbi8qXG4gKiBQYXJzZXMgYW4gb2JqZWN0IGlmIHBvc3NpYmxlLiBPdGhlcndpc2UgcmV0dXJucyB0aGUgb2JqZWN0IHdpdGhvdXQgcGFyc2luZy5cbiAqL1xuZnVuY3Rpb24gc2FmZUpzb25QYXJzZSAob2JqKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uob2JqKTtcbiAgfSBjYXRjaCAoaWduKSB7XG4gICAgLy8gaWdub3JlOiB0aGlzIGlzIG5vdCBqc29uIHBhcnNhYmxlXG4gICAgcmV0dXJuIG9iajtcbiAgfVxufVxuXG4vKlxuICogU3RyaW5naWZpZXMgdGhlIG9iamVjdCBwYXNzZWQgaW4sIGNvbnZlcnRpbmcgQnVmZmVycyBpbnRvIFN0cmluZ3MgZm9yIGJldHRlclxuICogZGlzcGxheS4gVGhpcyBtaW1pY3MgSlNPTi5zdHJpbmdpZnkgKHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9KU09OL3N0cmluZ2lmeSlcbiAqIGV4Y2VwdCB0aGUgYHJlcGxhY2VyYCBhcmd1bWVudCBjYW4gb25seSBiZSBhIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBvYmogLSB0aGUgb2JqZWN0IHRvIGJlIHNlcmlhbGl6ZWRcbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSByZXBsYWNlciAtIGZ1bmN0aW9uIHRvIHRyYW5zZm9ybSB0aGUgcHJvcGVydGllcyBhZGRlZCB0byB0aGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6ZWQgb2JqZWN0XG4gKiBAcGFyYW0gez9udW1iZXJ8c3RyaW5nfSBzcGFjZSAtIHVzZWQgdG8gaW5zZXJ0IHdoaXRlIHNwYWNlIGludG8gdGhlIG91dHB1dCBKU09OXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBmb3IgcmVhZGFiaWxpdHkgcHVycG9zZXMuIERlZmF1bHRzIHRvIDJcbiAqIHJldHVybnMge3N0cmluZ30gLSB0aGUgSlNPTiBvYmplY3Qgc2VyaWFsaXplZCBhcyBhIHN0cmluZ1xuICovXG5mdW5jdGlvbiBqc29uU3RyaW5naWZ5IChvYmosIHJlcGxhY2VyLCBzcGFjZSA9IDIpIHtcbiAgLy8gaWYgbm8gcmVwbGFjZXIgaXMgcGFzc2VkLCBvciBpdCBpcyBub3QgYSBmdW5jdGlvbiwganVzdCB1c2UgYSBwYXNzLXRocm91Z2hcbiAgaWYgKCFfLmlzRnVuY3Rpb24ocmVwbGFjZXIpKSB7XG4gICAgcmVwbGFjZXIgPSAoaywgdikgPT4gdjtcbiAgfVxuXG4gIC8vIEJ1ZmZlcnMgY2Fubm90IGJlIHNlcmlhbGl6ZWQgaW4gYSByZWFkYWJsZSB3YXlcbiAgY29uc3QgYnVmZmVyVG9KU09OID0gQnVmZmVyLnByb3RvdHlwZS50b0pTT047XG4gIGRlbGV0ZSBCdWZmZXIucHJvdG90eXBlLnRvSlNPTjtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gQnVmZmVyLmlzQnVmZmVyKHZhbHVlKVxuICAgICAgICA/IHZhbHVlLnRvU3RyaW5nKCd1dGY4JylcbiAgICAgICAgOiB2YWx1ZTtcbiAgICAgIHJldHVybiByZXBsYWNlcihrZXksIHVwZGF0ZWRWYWx1ZSk7XG4gICAgfSwgc3BhY2UpO1xuICB9IGZpbmFsbHkge1xuICAgIC8vIHJlc3RvcmUgdGhlIGZ1bmN0aW9uLCBzbyBhcyB0byBub3QgYnJlYWsgZnVydGhlciBzZXJpYWxpemF0aW9uXG4gICAgQnVmZmVyLnByb3RvdHlwZS50b0pTT04gPSBidWZmZXJUb0pTT047XG4gIH1cbn1cblxuLypcbiAqIFJlbW92ZXMgdGhlIHdyYXBwZXIgZnJvbSBlbGVtZW50LCBpZiBpdCBleGlzdHMuXG4gKiAgIHsgRUxFTUVOVDogNCB9IGJlY29tZXMgNFxuICogICB7IGVsZW1lbnQtNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmOiA1IH0gYmVjb21lcyA1XG4gKi9cbmZ1bmN0aW9uIHVud3JhcEVsZW1lbnQgKGVsKSB7XG4gIGZvciAoY29uc3QgcHJvcE5hbWUgb2YgW1czQ19XRUJfRUxFTUVOVF9JREVOVElGSUVSLCAnRUxFTUVOVCddKSB7XG4gICAgaWYgKF8uaGFzKGVsLCBwcm9wTmFtZSkpIHtcbiAgICAgIHJldHVybiBlbFtwcm9wTmFtZV07XG4gICAgfVxuICB9XG4gIHJldHVybiBlbDtcbn1cblxuZnVuY3Rpb24gd3JhcEVsZW1lbnQgKGVsZW1lbnRJZCkge1xuICByZXR1cm4ge1xuICAgIEVMRU1FTlQ6IGVsZW1lbnRJZCxcbiAgICBbVzNDX1dFQl9FTEVNRU5UX0lERU5USUZJRVJdOiBlbGVtZW50SWQsXG4gIH07XG59XG5cbi8qXG4gKiBSZXR1cm5zIG9iamVjdCBjb25zaXN0aW5nIG9mIGFsbCBwcm9wZXJ0aWVzIGluIHRoZSBvcmlnaW5hbCBlbGVtZW50XG4gKiB3aGljaCB3ZXJlIHRydXRoeSBnaXZlbiB0aGUgcHJlZGljYXRlLlxuICogSWYgdGhlIHByZWRpY2F0ZSBpc1xuICogICAqIG1pc3NpbmcgLSBpdCB3aWxsIHJlbW92ZSBhbGwgcHJvcGVydGllcyB3aG9zZSB2YWx1ZXMgYXJlIGB1bmRlZmluZWRgXG4gKiAgICogYSBzY2FsYXIgLSBpdCB3aWxsIHRlc3QgYWxsIHByb3BlcnRpZXMnIHZhbHVlcyBhZ2FpbnN0IHRoYXQgdmFsdWVcbiAqICAgKiBhIGZ1bmN0aW9uIC0gaXQgd2lsbCBwYXNzIGVhY2ggdmFsdWUgYW5kIHRoZSBvcmlnaW5hbCBvYmplY3QgaW50byB0aGUgZnVuY3Rpb25cbiAqL1xuZnVuY3Rpb24gZmlsdGVyT2JqZWN0IChvYmosIHByZWRpY2F0ZSkge1xuICBsZXQgbmV3T2JqID0gXy5jbG9uZShvYmopO1xuICBpZiAoXy5pc1VuZGVmaW5lZChwcmVkaWNhdGUpKSB7XG4gICAgLy8gcmVtb3ZlIGFueSBlbGVtZW50IGZyb20gdGhlIG9iamVjdCB3aG9zZSB2YWx1ZSBpcyB1bmRlZmluZWRcbiAgICBwcmVkaWNhdGUgPSAodikgPT4gIV8uaXNVbmRlZmluZWQodik7XG4gIH0gZWxzZSBpZiAoIV8uaXNGdW5jdGlvbihwcmVkaWNhdGUpKSB7XG4gICAgLy8gbWFrZSBwcmVkaWNhdGUgaW50byBhIGZ1bmN0aW9uXG4gICAgY29uc3QgdmFsdWVQcmVkaWNhdGUgPSBwcmVkaWNhdGU7XG4gICAgcHJlZGljYXRlID0gKHYpID0+IHYgPT09IHZhbHVlUHJlZGljYXRlO1xuICB9XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcbiAgICBpZiAoIXByZWRpY2F0ZShvYmpba2V5XSwgb2JqKSkge1xuICAgICAgZGVsZXRlIG5ld09ialtrZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3T2JqO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIG51bWJlciBvZiBieXRlcyB0byBhIHJlYWRhYmxlIHNpemUgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30gYnl0ZXMgLSBUaGUgYWN0dWFsIG51bWJlciBvZiBieXRlcy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBhY3R1YWwgc3RyaW5nIHJlcHJlc2VudGF0aW9uLCBmb3IgZXhhbXBsZVxuICogICAgICAgICAgICAgICAgICAgJzEuMDAgS0InIGZvciAnMTAyNCBCJ1xuICogQHRocm93cyB7RXJyb3J9IElmIGJ5dGVzIGNvdW50IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBvclxuICogICAgICAgICAgICAgICAgIGlmIGl0IGlzIGxlc3MgdGhhbiB6ZXJvLlxuICovXG5mdW5jdGlvbiB0b1JlYWRhYmxlU2l6ZVN0cmluZyAoYnl0ZXMpIHtcbiAgY29uc3QgaW50Qnl0ZXMgPSBwYXJzZUludChTdHJpbmcoYnl0ZXMpLCAxMCk7XG4gIGlmIChpc05hTihpbnRCeXRlcykgfHwgaW50Qnl0ZXMgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY29udmVydCAnJHtieXRlc30nIHRvIGEgcmVhZGFibGUgc2l6ZSBmb3JtYXRgKTtcbiAgfVxuICBpZiAoaW50Qnl0ZXMgPj0gR2lCKSB7XG4gICAgcmV0dXJuIGAkeyhpbnRCeXRlcyAvIChHaUIgKiAxLjApKS50b0ZpeGVkKDIpfSBHQmA7XG4gIH0gZWxzZSBpZiAoaW50Qnl0ZXMgPj0gTWlCKSB7XG4gICAgcmV0dXJuIGAkeyhpbnRCeXRlcyAvIChNaUIgKiAxLjApKS50b0ZpeGVkKDIpfSBNQmA7XG4gIH0gZWxzZSBpZiAoaW50Qnl0ZXMgPj0gS2lCKSB7XG4gICAgcmV0dXJuIGAkeyhpbnRCeXRlcyAvIChLaUIgKiAxLjApKS50b0ZpeGVkKDIpfSBLQmA7XG4gIH1cbiAgcmV0dXJuIGAke2ludEJ5dGVzfSBCYDtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gcGF0aCBpcyBhIHN1YnBhdGggb2YgdGhlXG4gKiBwYXJ0aWN1bGFyIHJvb3QgZm9sZGVyLiBCb3RoIHBhdGhzIGNhbiBpbmNsdWRlIC4uIGFuZCAuIHNwZWNpZmllcnNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxQYXRoIFRoZSBhYnNvbHV0ZSBmaWxlL2ZvbGRlciBwYXRoXG4gKiBAcGFyYW0ge3N0cmluZ30gcm9vdCBUaGUgYWJzb2x1dGUgcm9vdCBmb2xkZXIgcGF0aFxuICogQHBhcmFtIHs/Ym9vbGVhbn0gZm9yY2VQb3NpeCBTZXQgaXQgdG8gdHJ1ZSBpZiBwYXRocyBtdXN0IGJlIGludGVycHJldGVkIGluIFBPU0lYIGZvcm1hdFxuICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIGdpdmVuIG9yaWdpbmFsIHBhdGggaXMgdGhlIHN1YnBhdGggb2YgdGhlIHJvb3QgZm9sZGVyXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgYW55IG9mIHRoZSBnaXZlbiBwYXRocyBpcyBub3QgYWJzb2x1dGVcbiAqL1xuZnVuY3Rpb24gaXNTdWJQYXRoIChvcmlnaW5hbFBhdGgsIHJvb3QsIGZvcmNlUG9zaXggPSBudWxsKSB7XG4gIGNvbnN0IHBhdGhPYmogPSBmb3JjZVBvc2l4ID8gcGF0aC5wb3NpeCA6IHBhdGg7XG4gIGZvciAoY29uc3QgcCBvZiBbb3JpZ2luYWxQYXRoLCByb290XSkge1xuICAgIGlmICghcGF0aE9iai5pc0Fic29sdXRlKHApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3B9JyBpcyBleHBlY3RlZCB0byBiZSBhbiBhYnNvbHV0ZSBwYXRoYCk7XG4gICAgfVxuICB9XG4gIGNvbnN0IG5vcm1hbGl6ZWRSb290ID0gcGF0aE9iai5ub3JtYWxpemUocm9vdCk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gcGF0aE9iai5ub3JtYWxpemUob3JpZ2luYWxQYXRoKTtcbiAgcmV0dXJuIG5vcm1hbGl6ZWRQYXRoLnN0YXJ0c1dpdGgobm9ybWFsaXplZFJvb3QpO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBwYXRocyBhcmUgcG9pbnRpbmcgdG8gdGhlIHNhbWUgZmlsZSBzeXN0ZW1cbiAqIGRlc3RpbmF0aW9uLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoMSAtIEFic29sdXRlIG9yIHJlbGF0aXZlIHBhdGggdG8gYSBmaWxlL2ZvbGRlclxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGgyIC0gQWJzb2x1dGUgb3IgcmVsYXRpdmUgcGF0aCB0byBhIGZpbGUvZm9sZGVyXG4gKiBAcGFyYW0gey4uLnN0cmluZ30gcGF0aE4gLSBaZXJvIG9yIG1vcmUgYWJzb2x1dGUgb3IgcmVsYXRpdmUgcGF0aHMgdG8gZmlsZXMvZm9sZGVyc1xuICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IHRydWUgaWYgYWxsIHBhdGhzIGFyZSBwb2ludGluZyB0byB0aGUgc2FtZSBmaWxlIHN5c3RlbSBpdGVtXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGlzU2FtZURlc3RpbmF0aW9uIChwYXRoMSwgcGF0aDIsIC4uLnBhdGhOKSB7XG4gIGNvbnN0IGFsbFBhdGhzID0gW3BhdGgxLCBwYXRoMiwgLi4ucGF0aE5dO1xuICBpZiAoIWF3YWl0IEIucmVkdWNlKGFsbFBhdGhzLCBhc3luYyAoYSwgYikgPT4gYSAmJiBhd2FpdCBmcy5leGlzdHMoYiksIHRydWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgYXJlQWxsSXRlbXNFcXVhbCA9IChhcnIpID0+ICEhYXJyLnJlZHVjZSgoYSwgYikgPT4gYSA9PT0gYiA/IGEgOiBOYU4pO1xuICBpZiAoYXJlQWxsSXRlbXNFcXVhbChhbGxQYXRocykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGxldCBtYXBDYiA9IGFzeW5jICh4KSA9PiAoYXdhaXQgZnMuc3RhdCh4LCB7XG4gICAgYmlnaW50OiB0cnVlLFxuICB9KSkuaW5vO1xuICByZXR1cm4gYXJlQWxsSXRlbXNFcXVhbChhd2FpdCBCLm1hcChhbGxQYXRocywgbWFwQ2IpKTtcbn1cblxuLyoqXG4gKiBDb2VyY2VzIHRoZSBnaXZlbiBudW1iZXIvc3RyaW5nIHRvIGEgdmFsaWQgdmVyc2lvbiBzdHJpbmdcbiAqXG4gKiBAdGVtcGxhdGUge2Jvb2xlYW59IFtTdHJpY3Q9dHJ1ZV1cbiAqIEBwYXJhbSB7c3RyaW5nfSB2ZXIgLSBWZXJzaW9uIHN0cmluZyB0byBjb2VyY2VcbiAqIEBwYXJhbSB7U3RyaWN0fSBbc3RyaWN0XSAtIElmIGB0cnVlYCB0aGVuIGFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93blxuICogaWYgYHZlcmAgY2Fubm90IGJlIGNvZXJjZWRcbiAqIEByZXR1cm5zIHtTdHJpY3QgZXh0ZW5kcyB0cnVlID8gc3RyaW5nIDogc3RyaW5nfG51bGx9IENvZXJjZWQgdmVyc2lvbiBudW1iZXIgb3IgbnVsbCBpZiB0aGUgc3RyaW5nIGNhbm5vdCBiZVxuICogY29lcmNlZCBhbmQgc3RyaWN0IG1vZGUgaXMgZGlzYWJsZWRcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiBzdHJpY3QgbW9kZSBpcyBlbmFibGVkIGFuZCBgdmVyYCBjYW5ub3QgYmUgY29lcmNlZFxuICovXG5mdW5jdGlvbiBjb2VyY2VWZXJzaW9uICh2ZXIsIHN0cmljdCA9IC8qKiBAdHlwZSB7U3RyaWN0fSAqLyh0cnVlKSkge1xuICBjb25zdCByZXN1bHQgPSBzZW12ZXIudmFsaWQoc2VtdmVyLmNvZXJjZShgJHt2ZXJ9YCkpO1xuICBpZiAoc3RyaWN0ICYmICFyZXN1bHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3Zlcn0nIGNhbm5vdCBiZSBjb2VyY2VkIHRvIGEgdmFsaWQgdmVyc2lvbiBudW1iZXJgKTtcbiAgfVxuICByZXR1cm4gLyoqIEB0eXBlIHtTdHJpY3QgZXh0ZW5kcyB0cnVlID8gc3RyaW5nIDogc3RyaW5nP30gKi8ocmVzdWx0KTtcbn1cblxuY29uc3QgU1VQUE9SVEVEX09QRVJBVE9SUyA9IFsnPT0nLCAnIT0nLCAnPicsICc8JywgJz49JywgJzw9JywgJz0nXTtcblxuLyoqXG4gKiBDb21wYXJlcyB0d28gdmVyc2lvbiBzdHJpbmdzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZlcjEgLSBUaGUgZmlyc3QgdmVyc2lvbiBudW1iZXIgdG8gY29tcGFyZS4gU2hvdWxkIGJlIGEgdmFsaWRcbiAqIHZlcnNpb24gbnVtYmVyIHN1cHBvcnRlZCBieSBzZW12ZXIgcGFyc2VyLlxuICogQHBhcmFtIHtzdHJpbmd9IHZlcjIgLSBUaGUgc2Vjb25kIHZlcnNpb24gbnVtYmVyIHRvIGNvbXBhcmUuIFNob3VsZCBiZSBhIHZhbGlkXG4gKiB2ZXJzaW9uIG51bWJlciBzdXBwb3J0ZWQgYnkgc2VtdmVyIHBhcnNlci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcGVyYXRvciAtIE9uZSBvZiBzdXBwb3J0ZWQgdmVyc2lvbiBudW1iZXIgb3BlcmF0b3JzOlxuICogPT0sICE9LCA+LCA8LCA8PSwgPj0sID1cbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIG9yIGZhbHNlIGRlcGVuZGluZyBvbiB0aGUgYWN0dWFsIGNvbXBhcmlzb24gcmVzdWx0XG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgYW4gdW5zdXBwb3J0ZWQgb3BlcmF0b3IgaXMgc3VwcGxpZWQgb3IgYW55IG9mIHRoZSBzdXBwbGllZFxuICogdmVyc2lvbiBzdHJpbmdzIGNhbm5vdCBiZSBjb2VyY2VkXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVWZXJzaW9ucyAodmVyMSwgb3BlcmF0b3IsIHZlcjIpIHtcbiAgaWYgKCFTVVBQT1JURURfT1BFUkFUT1JTLmluY2x1ZGVzKG9wZXJhdG9yKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVGhlICcke29wZXJhdG9yfScgY29tcGFyaXNvbiBvcGVyYXRvciBpcyBub3Qgc3VwcG9ydGVkLiBgICtcbiAgICAgIGBPbmx5ICcke0pTT04uc3RyaW5naWZ5KFNVUFBPUlRFRF9PUEVSQVRPUlMpfScgb3BlcmF0b3JzIGFyZSBzdXBwb3J0ZWRgKTtcbiAgfVxuXG4gIGNvbnN0IHNlbXZlck9wZXJhdG9yID0gWyc9PScsICchPSddLmluY2x1ZGVzKG9wZXJhdG9yKSA/ICc9JyA6IG9wZXJhdG9yO1xuICBjb25zdCByZXN1bHQgPSBzZW12ZXIuc2F0aXNmaWVzKGNvZXJjZVZlcnNpb24odmVyMSksIGAke3NlbXZlck9wZXJhdG9yfSR7Y29lcmNlVmVyc2lvbih2ZXIyKX1gKTtcbiAgcmV0dXJuIG9wZXJhdG9yID09PSAnIT0nID8gIXJlc3VsdCA6IHJlc3VsdDtcbn1cblxuLyoqXG4gKiBBZGQgYXBwcm9wcmlhdGUgcXVvdGVzIHRvIGNvbW1hbmQgYXJndW1lbnRzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3N1YnN0YWNrL25vZGUtc2hlbGwtcXVvdGVcbiAqIGZvciBtb3JlIGRldGFpbHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gYXJncyAtIFRoZSBhcmd1bWVudHMgdGhhdCB3aWxsIGJlIHBhcnNlZFxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgYXJndW1lbnRzLCBxdW90ZWRcbiAqL1xuZnVuY3Rpb24gcXVvdGUgKGFyZ3MpIHtcbiAgcmV0dXJuIHNoZWxsUXVvdGUoXy5jYXN0QXJyYXkoYXJncykpO1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbmVjZXNzYXJ5IHRvIHdvcmthcm91bmQgdW5leHBlY3RlZCBtZW1vcnkgbGVha3NcbiAqIGNhdXNlZCBieSBOb2RlSlMgc3RyaW5nIGludGVybmluZ1xuICogYmVoYXZpb3IgZGVzY3JpYmVkIGluIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTI4NjlcbiAqXG4gKiBAcGFyYW0geyp9IHMgLSBUaGUgc3RyaW5nIHRvIHVubGVha1xuICogQHJldHVybiB7c3RyaW5nfSBFaXRoZXIgdGhlIHVubGVha2VkIHN0cmluZyBvciB0aGUgb3JpZ2luYWwgb2JqZWN0IGNvbnZlcnRlZCB0byBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gdW5sZWFrU3RyaW5nIChzKSB7XG4gIHJldHVybiBgICR7c31gLnN1YnN0cigxKTtcbn1cblxuXG4vKipcbiAqIEB0eXBlZGVmIFBsdXJhbGl6ZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2luY2x1c2l2ZT1mYWxzZV0gLSBXaGV0aGVyIHRvIHByZWZpeCB3aXRoIHRoZSBudW1iZXIgKGUuZy4sIDMgZHVja3MpXG4gKi9cblxuLyoqXG4gKiBHZXQgdGhlIGZvcm0gb2YgYSB3b3JkIGFwcHJvcHJpYXRlIHRvIHRoZSBjb3VudFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB3b3JkIC0gVGhlIHdvcmQgdG8gcGx1cmFsaXplXG4gKiBAcGFyYW0ge251bWJlcn0gY291bnQgLSBIb3cgbWFueSBvZiB0aGUgd29yZCBleGlzdFxuICogQHBhcmFtIHtQbHVyYWxpemVPcHRpb25zfGJvb2xlYW59IG9wdGlvbnMgLSBvcHRpb25zIGZvciB3b3JkIHBsdXJhbGl6YXRpb24sXG4gKiAgIG9yIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBvcHRpb25zLmluY2x1c2l2ZSBwcm9wZXJ0eVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIHdvcmQgcGx1cmFsaXplZCBhY2NvcmRpbmcgdG8gdGhlIG51bWJlclxuICovXG5mdW5jdGlvbiBwbHVyYWxpemUgKHdvcmQsIGNvdW50LCBvcHRpb25zID0ge30pIHtcbiAgbGV0IGluY2x1c2l2ZSA9IGZhbHNlO1xuICBpZiAoXy5pc0Jvb2xlYW4ob3B0aW9ucykpIHtcbiAgICAvLyBpZiBwYXNzZWQgaW4gYXMgYSBib29sZWFuXG4gICAgaW5jbHVzaXZlID0gb3B0aW9ucztcbiAgfSBlbHNlIGlmIChfLmlzQm9vbGVhbihvcHRpb25zPy5pbmNsdXNpdmUpKSB7XG4gICAgLy8gaWYgcGFzc2VkIGluIGFzIGFuIG9wdGlvbnMgaGFzaFxuICAgIGluY2x1c2l2ZSA9IG9wdGlvbnMuaW5jbHVzaXZlO1xuICB9XG4gIHJldHVybiBwbHVyYWxpemVMaWIod29yZCwgY291bnQsIGluY2x1c2l2ZSk7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgRW5jb2RpbmdPcHRpb25zXG4gKiBAcHJvcGVydHkge251bWJlcn0gW21heFNpemU9MTA3Mzc0MTgyNF0gVGhlIG1heGltdW0gc2l6ZSBvZlxuICogdGhlIHJlc3VsdGluZyBidWZmZXIgaW4gYnl0ZXMuIFRoaXMgaXMgc2V0IHRvIDFHQiBieSBkZWZhdWx0LCBiZWNhdXNlXG4gKiBBcHBpdW0gbGltaXRzIHRoZSBtYXhpbXVtIEhUVFAgYm9keSBzaXplIHRvIDFHQi4gQWxzbywgdGhlIE5vZGVKUyBoZWFwXG4gKiBzaXplIG11c3QgYmUgZW5vdWdoIHRvIGtlZXAgdGhlIHJlc3VsdGluZyBvYmplY3QgKHVzdWFsbHkgdGhpcyBzaXplIGlzXG4gKiBsaW1pdGVkIHRvIDEuNCBHQilcbiAqL1xuXG4vKipcbiAqIENvbnZlcnRzIGNvbnRlbnRzIG9mIGEgbG9jYWwgZmlsZSB0byBhbiBpbi1tZW1vcnkgYmFzZS02NCBlbmNvZGVkIGJ1ZmZlci5cbiAqIFRoZSBvcGVyYXRpb24gaXMgbWVtb3J5LXVzYWdlIGZyaWVuZGx5IGFuZCBzaG91bGQgYmUgdXNlZCB3aGlsZSBlbmNvZGluZ1xuICogbGFyZ2UgZmlsZXMgdG8gYmFzZTY0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHNyY1BhdGggVGhlIGZ1bGwgcGF0aCB0byB0aGUgZmlsZSBiZWluZyBlbmNvZGVkXG4gKiBAcGFyYW0ge0VuY29kaW5nT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMge1Byb21pc2U8QnVmZmVyPn0gYmFzZTY0LWVuY29kZWQgY29udGVudCBvZiB0aGUgc291cmNlIGZpbGUgYXMgbWVtb3J5IGJ1ZmZlclxuICogQHRocm93cyB7RXJyb3J9IGlmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSByZWFkaW5nIHRoZSBzb3VyY2UgZmlsZVxuICogb3IgdGhlIHNvdXJjZSBmaWxlIGlzIHRvb1xuICovXG5hc3luYyBmdW5jdGlvbiB0b0luTWVtb3J5QmFzZTY0IChzcmNQYXRoLCBvcHRzID0ge30pIHtcbiAgaWYgKCEoYXdhaXQgZnMuZXhpc3RzKHNyY1BhdGgpKSB8fCAoYXdhaXQgZnMuc3RhdChzcmNQYXRoKSkuaXNEaXJlY3RvcnkoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBmaWxlOiAke3NyY1BhdGh9YCk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgbWF4U2l6ZSA9IDEgKiBHaUIsXG4gIH0gPSBvcHRzO1xuICBjb25zdCByZXN1bHRCdWZmZXJzID0gW107XG4gIGxldCByZXN1bHRCdWZmZXJzU2l6ZSA9IDA7XG4gIGNvbnN0IHJlc3VsdFdyaXRlU3RyZWFtID0gbmV3IHN0cmVhbS5Xcml0YWJsZSh7XG4gICAgd3JpdGU6IChidWZmZXIsIGVuY29kaW5nLCBuZXh0KSA9PiB7XG4gICAgICByZXN1bHRCdWZmZXJzLnB1c2goYnVmZmVyKTtcbiAgICAgIHJlc3VsdEJ1ZmZlcnNTaXplICs9IGJ1ZmZlci5sZW5ndGg7XG4gICAgICBpZiAobWF4U2l6ZSA+IDAgJiYgcmVzdWx0QnVmZmVyc1NpemUgPiBtYXhTaXplKSB7XG4gICAgICAgIHJlc3VsdFdyaXRlU3RyZWFtLmVtaXQoJ2Vycm9yJywgbmV3IEVycm9yKGBUaGUgc2l6ZSBvZiB0aGUgcmVzdWx0aW5nIGAgK1xuICAgICAgICAgIGBidWZmZXIgbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuICR7dG9SZWFkYWJsZVNpemVTdHJpbmcobWF4U2l6ZSl9YCkpO1xuICAgICAgfVxuICAgICAgbmV4dCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IHJlYWRlclN0cmVhbSA9IGZzLmNyZWF0ZVJlYWRTdHJlYW0oc3JjUGF0aCk7XG4gIGNvbnN0IGJhc2U2NEVuY29kZXJTdHJlYW0gPSBuZXcgQmFzZTY0RW5jb2RlKCk7XG4gIGNvbnN0IHJlc3VsdFdyaXRlU3RyZWFtUHJvbWlzZSA9IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICByZXN1bHRXcml0ZVN0cmVhbS5vbmNlKCdlcnJvcicsIChlKSA9PiB7XG4gICAgICByZWFkZXJTdHJlYW0udW5waXBlKGJhc2U2NEVuY29kZXJTdHJlYW0pO1xuICAgICAgYmFzZTY0RW5jb2RlclN0cmVhbS51bnBpcGUocmVzdWx0V3JpdGVTdHJlYW0pO1xuICAgICAgcmVhZGVyU3RyZWFtLmRlc3Ryb3koKTtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9KTtcbiAgICByZXN1bHRXcml0ZVN0cmVhbS5vbmNlKCdmaW5pc2gnLCByZXNvbHZlKTtcbiAgfSk7XG4gIGNvbnN0IHJlYWRTdHJlYW1Qcm9taXNlID0gbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHJlYWRlclN0cmVhbS5vbmNlKCdjbG9zZScsIHJlc29sdmUpO1xuICAgIHJlYWRlclN0cmVhbS5vbmNlKCdlcnJvcicsIChlKSA9PiByZWplY3QoXG4gICAgICBuZXcgRXJyb3IoYEZhaWxlZCB0byByZWFkICcke3NyY1BhdGh9JzogJHtlLm1lc3NhZ2V9YCkpKTtcbiAgfSk7XG4gIHJlYWRlclN0cmVhbS5waXBlKGJhc2U2NEVuY29kZXJTdHJlYW0pO1xuICBiYXNlNjRFbmNvZGVyU3RyZWFtLnBpcGUocmVzdWx0V3JpdGVTdHJlYW0pO1xuXG4gIGF3YWl0IEIuYWxsKFtyZWFkU3RyZWFtUHJvbWlzZSwgcmVzdWx0V3JpdGVTdHJlYW1Qcm9taXNlXSk7XG4gIHJldHVybiBCdWZmZXIuY29uY2F0KHJlc3VsdEJ1ZmZlcnMpO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIExvY2tGaWxlT3B0aW9uc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IFt0aW1lb3V0PTEyMF0gVGhlIG1heCB0aW1lIGluIHNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIGxvY2tcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3RyeVJlY292ZXJ5PWZhbHNlXSBXaGV0aGVyIHRvIHRyeSBsb2NrIHJlY292ZXJ5IGlmXG4gKiB0aGUgZmlyc3QgYXR0ZW1wdCB0byBhY3F1aXJlIGl0IHRpbWVkIG91dC5cbiAqL1xuXG4vKipcbiAqIENyZWF0ZSBhbiBhc3luYyBmdW5jdGlvbiB3aGljaCwgd2hlbiBjYWxsZWQsIHdpbGwgbm90IHByb2NlZWQgdW50aWwgYSBjZXJ0YWluIGZpbGUgaXMgbm9cbiAqIGxvbmdlciBwcmVzZW50IG9uIHRoZSBzeXN0ZW0uIFRoaXMgYWxsb3dzIGZvciBwcmV2ZW50aW5nIGNvbmN1cnJlbnQgYmVoYXZpb3IgYWNyb3NzIHByb2Nlc3Nlc1xuICogdXNpbmcgYSBrbm93biBsb2NrZmlsZSBwYXRoLlxuICpcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9ja0ZpbGUgVGhlIGZ1bGwgcGF0aCB0byB0aGUgZmlsZSB1c2VkIGZvciB0aGUgbG9ja1xuICogQHBhcmFtIHtMb2NrRmlsZU9wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIGFzeW5jIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYW5vdGhlciBhc3luYyBmdW5jdGlvbiBkZWZpbmluZyB0aGUgbG9ja2VkXG4gKiBiZWhhdmlvclxuICovXG5mdW5jdGlvbiBnZXRMb2NrRmlsZUd1YXJkIChsb2NrRmlsZSwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICB0aW1lb3V0ID0gMTIwLFxuICAgIHRyeVJlY292ZXJ5ID0gZmFsc2UsXG4gIH0gPSBvcHRzO1xuXG4gIGNvbnN0IGxvY2sgPSAvKiogQHR5cGUgeyhsb2NrZmlsZTogc3RyaW5nLCBvcHRzOiBpbXBvcnQoJ2xvY2tmaWxlJykuT3B0aW9ucyk9PkI8dm9pZD59ICovKEIucHJvbWlzaWZ5KF9sb2NrZmlsZS5sb2NrKSk7XG4gIGNvbnN0IGNoZWNrID0gQi5wcm9taXNpZnkoX2xvY2tmaWxlLmNoZWNrKTtcbiAgY29uc3QgdW5sb2NrID0gQi5wcm9taXNpZnkoX2xvY2tmaWxlLnVubG9jayk7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7KC4uLmFyZ3M6IGFueVtdKSA9PiBUfSBiZWhhdmlvclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUPn1cbiAgICovXG4gIGNvbnN0IGd1YXJkID0gYXN5bmMgKGJlaGF2aW9yKSA9PiB7XG4gICAgbGV0IHRyaWVkUmVjb3ZlcnkgPSBmYWxzZTtcbiAgICBkbyB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBpZiB0aGUgbG9ja2ZpbGUgZG9lc24ndCBleGlzdCwgbG9jayBpdCBzeW5jaHJvbm91c2x5IHRvIG1ha2Ugc3VyZSBubyBvdGhlciBjYWxsXG4gICAgICAgIC8vIG9uIHRoZSBzYW1lIHNwaW4gb2YgdGhlIGV2ZW50IGxvb3AgY2FuIGFsc28gaW5pdGlhdGUgYSBsb2NrLiBJZiB0aGUgbG9ja2ZpbGUgZG9lcyBleGlzdFxuICAgICAgICAvLyB0aGVuIGp1c3QgdXNlIHRoZSByZWd1bGFyIGFzeW5jICdsb2NrJyBtZXRob2Qgd2hpY2ggd2lsbCB3YWl0IG9uIHRoZSBsb2NrLlxuICAgICAgICBpZiAoX2xvY2tmaWxlLmNoZWNrU3luYyhsb2NrRmlsZSkpIHtcbiAgICAgICAgICBhd2FpdCBsb2NrKGxvY2tGaWxlLCB7d2FpdDogdGltZW91dCAqIDEwMDB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfbG9ja2ZpbGUubG9ja1N5bmMobG9ja0ZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoXy5pbmNsdWRlcyhlLm1lc3NhZ2UsICdFRVhJU1QnKSAmJiB0cnlSZWNvdmVyeSAmJiAhdHJpZWRSZWNvdmVyeSkge1xuICAgICAgICAgIC8vIFRoZXJlIGNvdWxkIGJlIGNhc2VzIHdoZXJlIGEgcHJvY2VzcyBoYXMgYmVlbiBmb3JjZWZ1bGx5IHRlcm1pbmF0ZWRcbiAgICAgICAgICAvLyB3aXRob3V0IGEgY2hhbmNlIHRvIGNsZWFuIHVwIHBlbmRpbmcgbG9ja3M6IGh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbG9ja2ZpbGUvaXNzdWVzLzI2XG4gICAgICAgICAgX2xvY2tmaWxlLnVubG9ja1N5bmMobG9ja0ZpbGUpO1xuICAgICAgICAgIHRyaWVkUmVjb3ZlcnkgPSB0cnVlO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGFjcXVpcmUgbG9jayBvbiAnJHtsb2NrRmlsZX0nIGFmdGVyICR7dGltZW91dH1zLiBgICtcbiAgICAgICAgICBgT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICB9IHdoaWxlICh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGJlaGF2aW9yKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIHdoZXRoZXIgdGhlIGJlaGF2aW9yIHN1Y2NlZWRlZCBvciBub3QsIGdldCByaWQgb2YgdGhlIGxvY2tcbiAgICAgIGF3YWl0IHVubG9jayhsb2NrRmlsZSk7XG4gICAgfVxuICB9O1xuXG4gIGd1YXJkLmNoZWNrID0gYXN5bmMgKCkgPT4gYXdhaXQgY2hlY2sobG9ja0ZpbGUpO1xuXG4gIHJldHVybiBndWFyZDtcbn1cblxuZXhwb3J0IHtcbiAgaGFzVmFsdWUsIGVzY2FwZVNwYWNlLCBlc2NhcGVTcGVjaWFsQ2hhcnMsIGxvY2FsSXAsIGNhbmNlbGxhYmxlRGVsYXksXG4gIG11bHRpUmVzb2x2ZSwgc2FmZUpzb25QYXJzZSwgd3JhcEVsZW1lbnQsIHVud3JhcEVsZW1lbnQsIGZpbHRlck9iamVjdCxcbiAgdG9SZWFkYWJsZVNpemVTdHJpbmcsIGlzU3ViUGF0aCwgVzNDX1dFQl9FTEVNRU5UX0lERU5USUZJRVIsXG4gIGlzU2FtZURlc3RpbmF0aW9uLCBjb21wYXJlVmVyc2lvbnMsIGNvZXJjZVZlcnNpb24sIHF1b3RlLCB1bmxlYWtTdHJpbmcsXG4gIGpzb25TdHJpbmdpZnksIHBsdXJhbGl6ZSwgR2lCLCBNaUIsIEtpQiwgdG9Jbk1lbW9yeUJhc2U2NCxcbiAgdXVpZFYxLCB1dWlkVjMsIHV1aWRWNCwgdXVpZFY1LCBzaGVsbFBhcnNlLCBnZXRMb2NrRmlsZUd1YXJkXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFHQSxNQUFNQSwwQkFBMEIsR0FBRyxxQ0FBbkM7O0FBQ0EsTUFBTUMsR0FBRyxHQUFHLElBQVo7O0FBQ0EsTUFBTUMsR0FBRyxHQUFHRCxHQUFHLEdBQUcsSUFBbEI7O0FBQ0EsTUFBTUUsR0FBRyxHQUFHRCxHQUFHLEdBQUcsSUFBbEI7OztBQUVPLFNBQVNFLFVBQVQsQ0FBcUJDLEdBQXJCLEVBQTBCO0VBQy9CLE9BQU9DLGdCQUFFQyxRQUFGLENBQVdGLEdBQVgsS0FBbUJBLEdBQUcsS0FBSyxFQUFsQztBQUNEOztBQUdELFNBQVNHLFFBQVQsQ0FBbUJILEdBQW5CLEVBQXdCO0VBQ3RCLElBQUlJLE1BQU0sR0FBRyxLQUFiOztFQUVBLElBQUlILGdCQUFFSSxRQUFGLENBQVdMLEdBQVgsQ0FBSixFQUFxQjtJQUNuQkksTUFBTSxHQUFHLENBQUNILGdCQUFFSyxLQUFGLENBQVFOLEdBQVIsQ0FBVjtFQUNELENBRkQsTUFFTztJQUNMSSxNQUFNLEdBQUcsQ0FBQ0gsZ0JBQUVNLFdBQUYsQ0FBY1AsR0FBZCxDQUFELElBQXVCLENBQUNDLGdCQUFFTyxNQUFGLENBQVNSLEdBQVQsQ0FBakM7RUFDRDs7RUFFRCxPQUFPSSxNQUFQO0FBQ0Q7O0FBR0QsU0FBU0ssV0FBVCxDQUFzQkMsR0FBdEIsRUFBMkI7RUFDekIsT0FBT0EsR0FBRyxDQUFDQyxLQUFKLENBQVUsR0FBVixFQUFlQyxJQUFmLENBQW9C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
|
|
417
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXM0NfV0VCX0VMRU1FTlRfSURFTlRJRklFUiIsIktpQiIsIk1pQiIsIkdpQiIsImhhc0NvbnRlbnQiLCJ2YWwiLCJfIiwiaXNTdHJpbmciLCJoYXNWYWx1ZSIsImlzTnVtYmVyIiwiaXNOYU4iLCJpc1VuZGVmaW5lZCIsImlzTnVsbCIsImVzY2FwZVNwYWNlIiwic3RyIiwic3BsaXQiLCJqb2luIiwiZXNjYXBlU3BlY2lhbENoYXJzIiwicXVvdGVFc2NhcGUiLCJyZXBsYWNlIiwicmUiLCJSZWdFeHAiLCJsb2NhbElwIiwiaXAiLCJjaGFpbiIsIm9zIiwibmV0d29ya0ludGVyZmFjZXMiLCJ2YWx1ZXMiLCJmbGF0dGVuIiwiZmlsdGVyIiwiZmFtaWx5IiwiaW50ZXJuYWwiLCJtYXAiLCJmaXJzdCIsInZhbHVlIiwiY2FuY2VsbGFibGVEZWxheSIsIm1zIiwidGltZXIiLCJyZXNvbHZlIiwicmVqZWN0IiwiZGVsYXkiLCJCIiwiUHJvbWlzZSIsIl9yZXNvbHZlIiwiX3JlamVjdCIsInNldFRpbWVvdXQiLCJjYW5jZWwiLCJjbGVhclRpbWVvdXQiLCJDYW5jZWxsYXRpb25FcnJvciIsIm11bHRpUmVzb2x2ZSIsInJvb3RzIiwiYXJncyIsInJvb3QiLCJwYXRoIiwic2FmZUpzb25QYXJzZSIsIm9iaiIsIkpTT04iLCJwYXJzZSIsImlnbiIsImpzb25TdHJpbmdpZnkiLCJyZXBsYWNlciIsInNwYWNlIiwiaXNGdW5jdGlvbiIsImsiLCJ2IiwiYnVmZmVyVG9KU09OIiwiQnVmZmVyIiwicHJvdG90eXBlIiwidG9KU09OIiwic3RyaW5naWZ5Iiwia2V5IiwidXBkYXRlZFZhbHVlIiwiaXNCdWZmZXIiLCJ0b1N0cmluZyIsInVud3JhcEVsZW1lbnQiLCJlbCIsInByb3BOYW1lIiwiaGFzIiwid3JhcEVsZW1lbnQiLCJlbGVtZW50SWQiLCJFTEVNRU5UIiwiZmlsdGVyT2JqZWN0IiwicHJlZGljYXRlIiwibmV3T2JqIiwiY2xvbmUiLCJ2YWx1ZVByZWRpY2F0ZSIsIk9iamVjdCIsImtleXMiLCJ0b1JlYWRhYmxlU2l6ZVN0cmluZyIsImJ5dGVzIiwiaW50Qnl0ZXMiLCJwYXJzZUludCIsIlN0cmluZyIsIkVycm9yIiwidG9GaXhlZCIsImlzU3ViUGF0aCIsIm9yaWdpbmFsUGF0aCIsImZvcmNlUG9zaXgiLCJwYXRoT2JqIiwicG9zaXgiLCJwIiwiaXNBYnNvbHV0ZSIsIm5vcm1hbGl6ZWRSb290Iiwibm9ybWFsaXplIiwibm9ybWFsaXplZFBhdGgiLCJzdGFydHNXaXRoIiwiaXNTYW1lRGVzdGluYXRpb24iLCJwYXRoMSIsInBhdGgyIiwicGF0aE4iLCJhbGxQYXRocyIsInJlZHVjZSIsImEiLCJiIiwiZnMiLCJleGlzdHMiLCJhcmVBbGxJdGVtc0VxdWFsIiwiYXJyIiwiTmFOIiwibWFwQ2IiLCJ4Iiwic3RhdCIsImJpZ2ludCIsImlubyIsImNvZXJjZVZlcnNpb24iLCJ2ZXIiLCJzdHJpY3QiLCJyZXN1bHQiLCJzZW12ZXIiLCJ2YWxpZCIsImNvZXJjZSIsIlNVUFBPUlRFRF9PUEVSQVRPUlMiLCJjb21wYXJlVmVyc2lvbnMiLCJ2ZXIxIiwib3BlcmF0b3IiLCJ2ZXIyIiwiaW5jbHVkZXMiLCJzZW12ZXJPcGVyYXRvciIsInNhdGlzZmllcyIsInF1b3RlIiwic2hlbGxRdW90ZSIsImNhc3RBcnJheSIsInVubGVha1N0cmluZyIsInMiLCJzdWJzdHIiLCJwbHVyYWxpemUiLCJ3b3JkIiwiY291bnQiLCJvcHRpb25zIiwiaW5jbHVzaXZlIiwiaXNCb29sZWFuIiwicGx1cmFsaXplTGliIiwidG9Jbk1lbW9yeUJhc2U2NCIsInNyY1BhdGgiLCJvcHRzIiwiaXNEaXJlY3RvcnkiLCJtYXhTaXplIiwicmVzdWx0QnVmZmVycyIsInJlc3VsdEJ1ZmZlcnNTaXplIiwicmVzdWx0V3JpdGVTdHJlYW0iLCJzdHJlYW0iLCJXcml0YWJsZSIsIndyaXRlIiwiYnVmZmVyIiwiZW5jb2RpbmciLCJuZXh0IiwicHVzaCIsImxlbmd0aCIsImVtaXQiLCJyZWFkZXJTdHJlYW0iLCJjcmVhdGVSZWFkU3RyZWFtIiwiYmFzZTY0RW5jb2RlclN0cmVhbSIsIkJhc2U2NEVuY29kZSIsInJlc3VsdFdyaXRlU3RyZWFtUHJvbWlzZSIsIm9uY2UiLCJlIiwidW5waXBlIiwiZGVzdHJveSIsInJlYWRTdHJlYW1Qcm9taXNlIiwibWVzc2FnZSIsInBpcGUiLCJhbGwiLCJjb25jYXQiLCJnZXRMb2NrRmlsZUd1YXJkIiwibG9ja0ZpbGUiLCJ0aW1lb3V0IiwidHJ5UmVjb3ZlcnkiLCJsb2NrIiwicHJvbWlzaWZ5IiwiX2xvY2tmaWxlIiwiY2hlY2siLCJ1bmxvY2siLCJndWFyZCIsImJlaGF2aW9yIiwidHJpZWRSZWNvdmVyeSIsImNoZWNrU3luYyIsIndhaXQiLCJsb2NrU3luYyIsInVubG9ja1N5bmMiXSwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGZzIGZyb20gJy4vZnMnO1xuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHtcbiAgLy8gaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvc2hlbGwtcXVvdGVcbiAgcXVvdGUgYXMgc2hlbGxRdW90ZSxcbiAgcGFyc2UgYXMgc2hlbGxQYXJzZSxcbn0gZnJvbSAnc2hlbGwtcXVvdGUnO1xuaW1wb3J0IHBsdXJhbGl6ZUxpYiBmcm9tICdwbHVyYWxpemUnO1xuaW1wb3J0IHN0cmVhbSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IHtCYXNlNjRFbmNvZGV9IGZyb20gJ2Jhc2U2NC1zdHJlYW0nO1xuaW1wb3J0IHtcbiAgLy8gaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2UvdXVpZFxuICB2MSBhcyB1dWlkVjEsXG4gIHYzIGFzIHV1aWRWMyxcbiAgdjQgYXMgdXVpZFY0LFxuICB2NSBhcyB1dWlkVjUsXG59IGZyb20gJ3V1aWQnO1xuaW1wb3J0IF9sb2NrZmlsZSBmcm9tICdsb2NrZmlsZSc7XG5cbmNvbnN0IFczQ19XRUJfRUxFTUVOVF9JREVOVElGSUVSID0gJ2VsZW1lbnQtNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmJztcbmNvbnN0IEtpQiA9IDEwMjQ7XG5jb25zdCBNaUIgPSBLaUIgKiAxMDI0O1xuY29uc3QgR2lCID0gTWlCICogMTAyNDtcblxuLyoqXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gVFxuICogQHBhcmFtIHtUfSB2YWxcbiAqIEByZXR1cm5zIHt2YWwgaXMgTm9uRW1wdHlTdHJpbmc8VD59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNDb250ZW50KHZhbCkge1xuICByZXR1cm4gXy5pc1N0cmluZyh2YWwpICYmIHZhbCAhPT0gJyc7XG59XG5cbi8qKlxuICogcmV0dXJuIHRydWUgaWYgdGhlIHRoZSB2YWx1ZSBpcyBub3QgYHVuZGVmaW5lZGAsIGBudWxsYCwgb3IgYE5hTmAuXG4gKlxuICogWFhYOiBgTmFOYCBpcyBub3QgZXhwcmVzc2libGUgaW4gVHlwZVNjcmlwdC5cbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAcGFyYW0ge1R9IHZhbFxuICogQHJldHVybnMge3ZhbCBpcyBOb25OdWxsYWJsZTxUPn1cbiAqL1xuZnVuY3Rpb24gaGFzVmFsdWUodmFsKSB7XG4gIC8vIGF2b2lkIGluY29ycmVjdGx5IGV2YWx1YXRpbmcgYDBgIGFzIGZhbHNlXG4gIGlmIChfLmlzTnVtYmVyKHZhbCkpIHtcbiAgICByZXR1cm4gIV8uaXNOYU4odmFsKTtcbiAgfVxuICByZXR1cm4gIV8uaXNVbmRlZmluZWQodmFsKSAmJiAhXy5pc051bGwodmFsKTtcbn1cblxuLy8gZXNjYXBlIHNwYWNlcyBpbiBzdHJpbmcsIGZvciBjb21tYW5kbGluZSBjYWxsc1xuZnVuY3Rpb24gZXNjYXBlU3BhY2Uoc3RyKSB7XG4gIHJldHVybiBzdHIuc3BsaXQoLyAvKS5qb2luKCdcXFxcICcpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVTcGVjaWFsQ2hhcnMoc3RyLCBxdW90ZUVzY2FwZSkge1xuICBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGlmICh0eXBlb2YgcXVvdGVFc2NhcGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcXVvdGVFc2NhcGUgPSBmYWxzZTtcbiAgfVxuICBzdHIgPSBzdHJcbiAgICAucmVwbGFjZSgvW1xcXFxdL2csICdcXFxcXFxcXCcpXG4gICAgLnJlcGxhY2UoL1tcXC9dL2csICdcXFxcLycpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbiAgICAucmVwbGFjZSgvW1xcYl0vZywgJ1xcXFxiJylcbiAgICAucmVwbGFjZSgvW1xcZl0vZywgJ1xcXFxmJylcbiAgICAucmVwbGFjZSgvW1xcbl0vZywgJ1xcXFxuJylcbiAgICAucmVwbGFjZSgvW1xccl0vZywgJ1xcXFxyJylcbiAgICAucmVwbGFjZSgvW1xcdF0vZywgJ1xcXFx0JylcbiAgICAucmVwbGFjZSgvW1xcXCJdL2csICdcXFxcXCInKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVzZWxlc3MtZXNjYXBlXG4gICAgLnJlcGxhY2UoL1xcXFwnL2csIFwiXFxcXCdcIik7XG4gIGlmIChxdW90ZUVzY2FwZSkge1xuICAgIGxldCByZSA9IG5ldyBSZWdFeHAocXVvdGVFc2NhcGUsICdnJyk7XG4gICAgc3RyID0gc3RyLnJlcGxhY2UocmUsIGBcXFxcJHtxdW90ZUVzY2FwZX1gKTtcbiAgfVxuICByZXR1cm4gc3RyO1xufVxuXG5mdW5jdGlvbiBsb2NhbElwKCkge1xuICBsZXQgaXAgPSBfLmNoYWluKG9zLm5ldHdvcmtJbnRlcmZhY2VzKCkpXG4gICAgLnZhbHVlcygpXG4gICAgLmZsYXR0ZW4oKVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICAuZmlsdGVyKGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgIHJldHVybiB2YWwuZmFtaWx5ID09PSAnSVB2NCcgJiYgdmFsLmludGVybmFsID09PSBmYWxzZTtcbiAgICB9KVxuICAgIC5tYXAoJ2FkZHJlc3MnKVxuICAgIC5maXJzdCgpXG4gICAgLnZhbHVlKCk7XG4gIHJldHVybiBpcDtcbn1cblxuLypcbiAqIENyZWF0ZXMgYSBwcm9taXNlIHRoYXQgaXMgY2FuY2VsbGFibGUsIGFuZCB3aWxsIHRpbWVvdXRcbiAqIGFmdGVyIGBtc2AgZGVsYXlcbiAqL1xuZnVuY3Rpb24gY2FuY2VsbGFibGVEZWxheShtcykge1xuICBsZXQgdGltZXI7XG4gIGxldCByZXNvbHZlO1xuICBsZXQgcmVqZWN0O1xuXG4gIGNvbnN0IGRlbGF5ID0gbmV3IEIuUHJvbWlzZSgoX3Jlc29sdmUsIF9yZWplY3QpID0+IHtcbiAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgcmVqZWN0ID0gX3JlamVjdDtcbiAgICB0aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0sIG1zKTtcbiAgfSk7XG5cbiAgLy8gb3ZlcnJpZGUgQmx1ZWJpcmQncyBgY2FuY2VsYCwgd2hpY2ggZG9lcyBub3Qgd29yayB3aGVuIHVzaW5nIGBhd2FpdGAgb25cbiAgLy8gYSBwcm9taXNlLCBzaW5jZSBgcmVzb2x2ZWAvYHJlamVjdGAgYXJlIG5ldmVyIGNhbGxlZFxuICBkZWxheS5jYW5jZWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICByZWplY3QobmV3IEIuQ2FuY2VsbGF0aW9uRXJyb3IoKSk7XG4gIH07XG4gIHJldHVybiBkZWxheTtcbn1cblxuZnVuY3Rpb24gbXVsdGlSZXNvbHZlKHJvb3RzLCAuLi5hcmdzKSB7XG4gIHJldHVybiByb290cy5tYXAoKHJvb3QpID0+IHBhdGgucmVzb2x2ZShyb290LCAuLi5hcmdzKSk7XG59XG5cbi8qXG4gKiBQYXJzZXMgYW4gb2JqZWN0IGlmIHBvc3NpYmxlLiBPdGhlcndpc2UgcmV0dXJucyB0aGUgb2JqZWN0IHdpdGhvdXQgcGFyc2luZy5cbiAqL1xuZnVuY3Rpb24gc2FmZUpzb25QYXJzZShvYmopIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShvYmopO1xuICB9IGNhdGNoIChpZ24pIHtcbiAgICAvLyBpZ25vcmU6IHRoaXMgaXMgbm90IGpzb24gcGFyc2FibGVcbiAgICByZXR1cm4gb2JqO1xuICB9XG59XG5cbi8qXG4gKiBTdHJpbmdpZmllcyB0aGUgb2JqZWN0IHBhc3NlZCBpbiwgY29udmVydGluZyBCdWZmZXJzIGludG8gU3RyaW5ncyBmb3IgYmV0dGVyXG4gKiBkaXNwbGF5LiBUaGlzIG1pbWljcyBKU09OLnN0cmluZ2lmeSAoc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0pTT04vc3RyaW5naWZ5KVxuICogZXhjZXB0IHRoZSBgcmVwbGFjZXJgIGFyZ3VtZW50IGNhbiBvbmx5IGJlIGEgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG9iaiAtIHRoZSBvYmplY3QgdG8gYmUgc2VyaWFsaXplZFxuICogQHBhcmFtIHs/ZnVuY3Rpb259IHJlcGxhY2VyIC0gZnVuY3Rpb24gdG8gdHJhbnNmb3JtIHRoZSBwcm9wZXJ0aWVzIGFkZGVkIHRvIHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXplZCBvYmplY3RcbiAqIEBwYXJhbSB7P251bWJlcnxzdHJpbmd9IHNwYWNlIC0gdXNlZCB0byBpbnNlcnQgd2hpdGUgc3BhY2UgaW50byB0aGUgb3V0cHV0IEpTT05cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGZvciByZWFkYWJpbGl0eSBwdXJwb3Nlcy4gRGVmYXVsdHMgdG8gMlxuICogcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBKU09OIG9iamVjdCBzZXJpYWxpemVkIGFzIGEgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGpzb25TdHJpbmdpZnkob2JqLCByZXBsYWNlciwgc3BhY2UgPSAyKSB7XG4gIC8vIGlmIG5vIHJlcGxhY2VyIGlzIHBhc3NlZCwgb3IgaXQgaXMgbm90IGEgZnVuY3Rpb24sIGp1c3QgdXNlIGEgcGFzcy10aHJvdWdoXG4gIGlmICghXy5pc0Z1bmN0aW9uKHJlcGxhY2VyKSkge1xuICAgIHJlcGxhY2VyID0gKGssIHYpID0+IHY7XG4gIH1cblxuICAvLyBCdWZmZXJzIGNhbm5vdCBiZSBzZXJpYWxpemVkIGluIGEgcmVhZGFibGUgd2F5XG4gIGNvbnN0IGJ1ZmZlclRvSlNPTiA9IEJ1ZmZlci5wcm90b3R5cGUudG9KU09OO1xuICBkZWxldGUgQnVmZmVyLnByb3RvdHlwZS50b0pTT047XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFxuICAgICAgb2JqLFxuICAgICAgKGtleSwgdmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gQnVmZmVyLmlzQnVmZmVyKHZhbHVlKSA/IHZhbHVlLnRvU3RyaW5nKCd1dGY4JykgOiB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIHJlcGxhY2VyKGtleSwgdXBkYXRlZFZhbHVlKTtcbiAgICAgIH0sXG4gICAgICBzcGFjZVxuICAgICk7XG4gIH0gZmluYWxseSB7XG4gICAgLy8gcmVzdG9yZSB0aGUgZnVuY3Rpb24sIHNvIGFzIHRvIG5vdCBicmVhayBmdXJ0aGVyIHNlcmlhbGl6YXRpb25cbiAgICBCdWZmZXIucHJvdG90eXBlLnRvSlNPTiA9IGJ1ZmZlclRvSlNPTjtcbiAgfVxufVxuXG4vKlxuICogUmVtb3ZlcyB0aGUgd3JhcHBlciBmcm9tIGVsZW1lbnQsIGlmIGl0IGV4aXN0cy5cbiAqICAgeyBFTEVNRU5UOiA0IH0gYmVjb21lcyA0XG4gKiAgIHsgZWxlbWVudC02MDY2LTExZTQtYTUyZS00ZjczNTQ2NmNlY2Y6IDUgfSBiZWNvbWVzIDVcbiAqL1xuZnVuY3Rpb24gdW53cmFwRWxlbWVudChlbCkge1xuICBmb3IgKGNvbnN0IHByb3BOYW1lIG9mIFtXM0NfV0VCX0VMRU1FTlRfSURFTlRJRklFUiwgJ0VMRU1FTlQnXSkge1xuICAgIGlmIChfLmhhcyhlbCwgcHJvcE5hbWUpKSB7XG4gICAgICByZXR1cm4gZWxbcHJvcE5hbWVdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZWw7XG59XG5cbmZ1bmN0aW9uIHdyYXBFbGVtZW50KGVsZW1lbnRJZCkge1xuICByZXR1cm4ge1xuICAgIEVMRU1FTlQ6IGVsZW1lbnRJZCxcbiAgICBbVzNDX1dFQl9FTEVNRU5UX0lERU5USUZJRVJdOiBlbGVtZW50SWQsXG4gIH07XG59XG5cbi8qXG4gKiBSZXR1cm5zIG9iamVjdCBjb25zaXN0aW5nIG9mIGFsbCBwcm9wZXJ0aWVzIGluIHRoZSBvcmlnaW5hbCBlbGVtZW50XG4gKiB3aGljaCB3ZXJlIHRydXRoeSBnaXZlbiB0aGUgcHJlZGljYXRlLlxuICogSWYgdGhlIHByZWRpY2F0ZSBpc1xuICogICAqIG1pc3NpbmcgLSBpdCB3aWxsIHJlbW92ZSBhbGwgcHJvcGVydGllcyB3aG9zZSB2YWx1ZXMgYXJlIGB1bmRlZmluZWRgXG4gKiAgICogYSBzY2FsYXIgLSBpdCB3aWxsIHRlc3QgYWxsIHByb3BlcnRpZXMnIHZhbHVlcyBhZ2FpbnN0IHRoYXQgdmFsdWVcbiAqICAgKiBhIGZ1bmN0aW9uIC0gaXQgd2lsbCBwYXNzIGVhY2ggdmFsdWUgYW5kIHRoZSBvcmlnaW5hbCBvYmplY3QgaW50byB0aGUgZnVuY3Rpb25cbiAqL1xuZnVuY3Rpb24gZmlsdGVyT2JqZWN0KG9iaiwgcHJlZGljYXRlKSB7XG4gIGxldCBuZXdPYmogPSBfLmNsb25lKG9iaik7XG4gIGlmIChfLmlzVW5kZWZpbmVkKHByZWRpY2F0ZSkpIHtcbiAgICAvLyByZW1vdmUgYW55IGVsZW1lbnQgZnJvbSB0aGUgb2JqZWN0IHdob3NlIHZhbHVlIGlzIHVuZGVmaW5lZFxuICAgIHByZWRpY2F0ZSA9ICh2KSA9PiAhXy5pc1VuZGVmaW5lZCh2KTtcbiAgfSBlbHNlIGlmICghXy5pc0Z1bmN0aW9uKHByZWRpY2F0ZSkpIHtcbiAgICAvLyBtYWtlIHByZWRpY2F0ZSBpbnRvIGEgZnVuY3Rpb25cbiAgICBjb25zdCB2YWx1ZVByZWRpY2F0ZSA9IHByZWRpY2F0ZTtcbiAgICBwcmVkaWNhdGUgPSAodikgPT4gdiA9PT0gdmFsdWVQcmVkaWNhdGU7XG4gIH1cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqKSkge1xuICAgIGlmICghcHJlZGljYXRlKG9ialtrZXldLCBvYmopKSB7XG4gICAgICBkZWxldGUgbmV3T2JqW2tleV07XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdPYmo7XG59XG5cbi8qKlxuICogQ29udmVydHMgbnVtYmVyIG9mIGJ5dGVzIHRvIGEgcmVhZGFibGUgc2l6ZSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBieXRlcyAtIFRoZSBhY3R1YWwgbnVtYmVyIG9mIGJ5dGVzLlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGFjdHVhbCBzdHJpbmcgcmVwcmVzZW50YXRpb24sIGZvciBleGFtcGxlXG4gKiAgICAgICAgICAgICAgICAgICAnMS4wMCBLQicgZm9yICcxMDI0IEInXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgYnl0ZXMgY291bnQgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhbiBpbnRlZ2VyIG9yXG4gKiAgICAgICAgICAgICAgICAgaWYgaXQgaXMgbGVzcyB0aGFuIHplcm8uXG4gKi9cbmZ1bmN0aW9uIHRvUmVhZGFibGVTaXplU3RyaW5nKGJ5dGVzKSB7XG4gIGNvbnN0IGludEJ5dGVzID0gcGFyc2VJbnQoU3RyaW5nKGJ5dGVzKSwgMTApO1xuICBpZiAoaXNOYU4oaW50Qnl0ZXMpIHx8IGludEJ5dGVzIDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGNvbnZlcnQgJyR7Ynl0ZXN9JyB0byBhIHJlYWRhYmxlIHNpemUgZm9ybWF0YCk7XG4gIH1cbiAgaWYgKGludEJ5dGVzID49IEdpQikge1xuICAgIHJldHVybiBgJHsoaW50Qnl0ZXMgLyAoR2lCICogMS4wKSkudG9GaXhlZCgyKX0gR0JgO1xuICB9IGVsc2UgaWYgKGludEJ5dGVzID49IE1pQikge1xuICAgIHJldHVybiBgJHsoaW50Qnl0ZXMgLyAoTWlCICogMS4wKSkudG9GaXhlZCgyKX0gTUJgO1xuICB9IGVsc2UgaWYgKGludEJ5dGVzID49IEtpQikge1xuICAgIHJldHVybiBgJHsoaW50Qnl0ZXMgLyAoS2lCICogMS4wKSkudG9GaXhlZCgyKX0gS0JgO1xuICB9XG4gIHJldHVybiBgJHtpbnRCeXRlc30gQmA7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHBhdGggaXMgYSBzdWJwYXRoIG9mIHRoZVxuICogcGFydGljdWxhciByb290IGZvbGRlci4gQm90aCBwYXRocyBjYW4gaW5jbHVkZSAuLiBhbmQgLiBzcGVjaWZpZXJzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsUGF0aCBUaGUgYWJzb2x1dGUgZmlsZS9mb2xkZXIgcGF0aFxuICogQHBhcmFtIHtzdHJpbmd9IHJvb3QgVGhlIGFic29sdXRlIHJvb3QgZm9sZGVyIHBhdGhcbiAqIEBwYXJhbSB7P2Jvb2xlYW59IGZvcmNlUG9zaXggU2V0IGl0IHRvIHRydWUgaWYgcGF0aHMgbXVzdCBiZSBpbnRlcnByZXRlZCBpbiBQT1NJWCBmb3JtYXRcbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSBnaXZlbiBvcmlnaW5hbCBwYXRoIGlzIHRoZSBzdWJwYXRoIG9mIHRoZSByb290IGZvbGRlclxuICogQHRocm93cyB7RXJyb3J9IGlmIGFueSBvZiB0aGUgZ2l2ZW4gcGF0aHMgaXMgbm90IGFic29sdXRlXG4gKi9cbmZ1bmN0aW9uIGlzU3ViUGF0aChvcmlnaW5hbFBhdGgsIHJvb3QsIGZvcmNlUG9zaXggPSBudWxsKSB7XG4gIGNvbnN0IHBhdGhPYmogPSBmb3JjZVBvc2l4ID8gcGF0aC5wb3NpeCA6IHBhdGg7XG4gIGZvciAoY29uc3QgcCBvZiBbb3JpZ2luYWxQYXRoLCByb290XSkge1xuICAgIGlmICghcGF0aE9iai5pc0Fic29sdXRlKHApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3B9JyBpcyBleHBlY3RlZCB0byBiZSBhbiBhYnNvbHV0ZSBwYXRoYCk7XG4gICAgfVxuICB9XG4gIGNvbnN0IG5vcm1hbGl6ZWRSb290ID0gcGF0aE9iai5ub3JtYWxpemUocm9vdCk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gcGF0aE9iai5ub3JtYWxpemUob3JpZ2luYWxQYXRoKTtcbiAgcmV0dXJuIG5vcm1hbGl6ZWRQYXRoLnN0YXJ0c1dpdGgobm9ybWFsaXplZFJvb3QpO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBwYXRocyBhcmUgcG9pbnRpbmcgdG8gdGhlIHNhbWUgZmlsZSBzeXN0ZW1cbiAqIGRlc3RpbmF0aW9uLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoMSAtIEFic29sdXRlIG9yIHJlbGF0aXZlIHBhdGggdG8gYSBmaWxlL2ZvbGRlclxuICogQHBhcmFtIHtzdHJpbmd9IHBhdGgyIC0gQWJzb2x1dGUgb3IgcmVsYXRpdmUgcGF0aCB0byBhIGZpbGUvZm9sZGVyXG4gKiBAcGFyYW0gey4uLnN0cmluZ30gcGF0aE4gLSBaZXJvIG9yIG1vcmUgYWJzb2x1dGUgb3IgcmVsYXRpdmUgcGF0aHMgdG8gZmlsZXMvZm9sZGVyc1xuICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IHRydWUgaWYgYWxsIHBhdGhzIGFyZSBwb2ludGluZyB0byB0aGUgc2FtZSBmaWxlIHN5c3RlbSBpdGVtXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGlzU2FtZURlc3RpbmF0aW9uKHBhdGgxLCBwYXRoMiwgLi4ucGF0aE4pIHtcbiAgY29uc3QgYWxsUGF0aHMgPSBbcGF0aDEsIHBhdGgyLCAuLi5wYXRoTl07XG4gIGlmICghKGF3YWl0IEIucmVkdWNlKGFsbFBhdGhzLCBhc3luYyAoYSwgYikgPT4gYSAmJiAoYXdhaXQgZnMuZXhpc3RzKGIpKSwgdHJ1ZSkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgYXJlQWxsSXRlbXNFcXVhbCA9IChhcnIpID0+ICEhYXJyLnJlZHVjZSgoYSwgYikgPT4gKGEgPT09IGIgPyBhIDogTmFOKSk7XG4gIGlmIChhcmVBbGxJdGVtc0VxdWFsKGFsbFBhdGhzKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgbGV0IG1hcENiID0gYXN5bmMgKHgpID0+XG4gICAgKFxuICAgICAgYXdhaXQgZnMuc3RhdCh4LCB7XG4gICAgICAgIGJpZ2ludDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKS5pbm87XG4gIHJldHVybiBhcmVBbGxJdGVtc0VxdWFsKGF3YWl0IEIubWFwKGFsbFBhdGhzLCBtYXBDYikpO1xufVxuXG4vKipcbiAqIENvZXJjZXMgdGhlIGdpdmVuIG51bWJlci9zdHJpbmcgdG8gYSB2YWxpZCB2ZXJzaW9uIHN0cmluZ1xuICpcbiAqIEB0ZW1wbGF0ZSB7Ym9vbGVhbn0gW1N0cmljdD10cnVlXVxuICogQHBhcmFtIHtzdHJpbmd9IHZlciAtIFZlcnNpb24gc3RyaW5nIHRvIGNvZXJjZVxuICogQHBhcmFtIHtTdHJpY3R9IFtzdHJpY3RdIC0gSWYgYHRydWVgIHRoZW4gYW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duXG4gKiBpZiBgdmVyYCBjYW5ub3QgYmUgY29lcmNlZFxuICogQHJldHVybnMge1N0cmljdCBleHRlbmRzIHRydWUgPyBzdHJpbmcgOiBzdHJpbmd8bnVsbH0gQ29lcmNlZCB2ZXJzaW9uIG51bWJlciBvciBudWxsIGlmIHRoZSBzdHJpbmcgY2Fubm90IGJlXG4gKiBjb2VyY2VkIGFuZCBzdHJpY3QgbW9kZSBpcyBkaXNhYmxlZFxuICogQHRocm93cyB7RXJyb3J9IGlmIHN0cmljdCBtb2RlIGlzIGVuYWJsZWQgYW5kIGB2ZXJgIGNhbm5vdCBiZSBjb2VyY2VkXG4gKi9cbmZ1bmN0aW9uIGNvZXJjZVZlcnNpb24odmVyLCBzdHJpY3QgPSAvKiogQHR5cGUge1N0cmljdH0gKi8gKHRydWUpKSB7XG4gIGNvbnN0IHJlc3VsdCA9IHNlbXZlci52YWxpZChzZW12ZXIuY29lcmNlKGAke3Zlcn1gKSk7XG4gIGlmIChzdHJpY3QgJiYgIXJlc3VsdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJyR7dmVyfScgY2Fubm90IGJlIGNvZXJjZWQgdG8gYSB2YWxpZCB2ZXJzaW9uIG51bWJlcmApO1xuICB9XG4gIHJldHVybiAvKiogQHR5cGUge1N0cmljdCBleHRlbmRzIHRydWUgPyBzdHJpbmcgOiBzdHJpbmc/fSAqLyAocmVzdWx0KTtcbn1cblxuY29uc3QgU1VQUE9SVEVEX09QRVJBVE9SUyA9IFsnPT0nLCAnIT0nLCAnPicsICc8JywgJz49JywgJzw9JywgJz0nXTtcblxuLyoqXG4gKiBDb21wYXJlcyB0d28gdmVyc2lvbiBzdHJpbmdzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZlcjEgLSBUaGUgZmlyc3QgdmVyc2lvbiBudW1iZXIgdG8gY29tcGFyZS4gU2hvdWxkIGJlIGEgdmFsaWRcbiAqIHZlcnNpb24gbnVtYmVyIHN1cHBvcnRlZCBieSBzZW12ZXIgcGFyc2VyLlxuICogQHBhcmFtIHtzdHJpbmd9IHZlcjIgLSBUaGUgc2Vjb25kIHZlcnNpb24gbnVtYmVyIHRvIGNvbXBhcmUuIFNob3VsZCBiZSBhIHZhbGlkXG4gKiB2ZXJzaW9uIG51bWJlciBzdXBwb3J0ZWQgYnkgc2VtdmVyIHBhcnNlci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcGVyYXRvciAtIE9uZSBvZiBzdXBwb3J0ZWQgdmVyc2lvbiBudW1iZXIgb3BlcmF0b3JzOlxuICogPT0sICE9LCA+LCA8LCA8PSwgPj0sID1cbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIG9yIGZhbHNlIGRlcGVuZGluZyBvbiB0aGUgYWN0dWFsIGNvbXBhcmlzb24gcmVzdWx0XG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgYW4gdW5zdXBwb3J0ZWQgb3BlcmF0b3IgaXMgc3VwcGxpZWQgb3IgYW55IG9mIHRoZSBzdXBwbGllZFxuICogdmVyc2lvbiBzdHJpbmdzIGNhbm5vdCBiZSBjb2VyY2VkXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVWZXJzaW9ucyh2ZXIxLCBvcGVyYXRvciwgdmVyMikge1xuICBpZiAoIVNVUFBPUlRFRF9PUEVSQVRPUlMuaW5jbHVkZXMob3BlcmF0b3IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRoZSAnJHtvcGVyYXRvcn0nIGNvbXBhcmlzb24gb3BlcmF0b3IgaXMgbm90IHN1cHBvcnRlZC4gYCArXG4gICAgICAgIGBPbmx5ICcke0pTT04uc3RyaW5naWZ5KFNVUFBPUlRFRF9PUEVSQVRPUlMpfScgb3BlcmF0b3JzIGFyZSBzdXBwb3J0ZWRgXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHNlbXZlck9wZXJhdG9yID0gWyc9PScsICchPSddLmluY2x1ZGVzKG9wZXJhdG9yKSA/ICc9JyA6IG9wZXJhdG9yO1xuICBjb25zdCByZXN1bHQgPSBzZW12ZXIuc2F0aXNmaWVzKGNvZXJjZVZlcnNpb24odmVyMSksIGAke3NlbXZlck9wZXJhdG9yfSR7Y29lcmNlVmVyc2lvbih2ZXIyKX1gKTtcbiAgcmV0dXJuIG9wZXJhdG9yID09PSAnIT0nID8gIXJlc3VsdCA6IHJlc3VsdDtcbn1cblxuLyoqXG4gKiBBZGQgYXBwcm9wcmlhdGUgcXVvdGVzIHRvIGNvbW1hbmQgYXJndW1lbnRzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3N1YnN0YWNrL25vZGUtc2hlbGwtcXVvdGVcbiAqIGZvciBtb3JlIGRldGFpbHNcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gYXJncyAtIFRoZSBhcmd1bWVudHMgdGhhdCB3aWxsIGJlIHBhcnNlZFxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgYXJndW1lbnRzLCBxdW90ZWRcbiAqL1xuZnVuY3Rpb24gcXVvdGUoYXJncykge1xuICByZXR1cm4gc2hlbGxRdW90ZShfLmNhc3RBcnJheShhcmdzKSk7XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBuZWNlc3NhcnkgdG8gd29ya2Fyb3VuZCB1bmV4cGVjdGVkIG1lbW9yeSBsZWFrc1xuICogY2F1c2VkIGJ5IE5vZGVKUyBzdHJpbmcgaW50ZXJuaW5nXG4gKiBiZWhhdmlvciBkZXNjcmliZWQgaW4gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9Mjg2OVxuICpcbiAqIEBwYXJhbSB7Kn0gcyAtIFRoZSBzdHJpbmcgdG8gdW5sZWFrXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEVpdGhlciB0aGUgdW5sZWFrZWQgc3RyaW5nIG9yIHRoZSBvcmlnaW5hbCBvYmplY3QgY29udmVydGVkIHRvIHN0cmluZ1xuICovXG5mdW5jdGlvbiB1bmxlYWtTdHJpbmcocykge1xuICByZXR1cm4gYCAke3N9YC5zdWJzdHIoMSk7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgUGx1cmFsaXplT3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBbaW5jbHVzaXZlPWZhbHNlXSAtIFdoZXRoZXIgdG8gcHJlZml4IHdpdGggdGhlIG51bWJlciAoZS5nLiwgMyBkdWNrcylcbiAqL1xuXG4vKipcbiAqIEdldCB0aGUgZm9ybSBvZiBhIHdvcmQgYXBwcm9wcmlhdGUgdG8gdGhlIGNvdW50XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHdvcmQgLSBUaGUgd29yZCB0byBwbHVyYWxpemVcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb3VudCAtIEhvdyBtYW55IG9mIHRoZSB3b3JkIGV4aXN0XG4gKiBAcGFyYW0ge1BsdXJhbGl6ZU9wdGlvbnN8Ym9vbGVhbn0gb3B0aW9ucyAtIG9wdGlvbnMgZm9yIHdvcmQgcGx1cmFsaXphdGlvbixcbiAqICAgb3IgYSBib29sZWFuIGluZGljYXRpbmcgdGhlIG9wdGlvbnMuaW5jbHVzaXZlIHByb3BlcnR5XG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgd29yZCBwbHVyYWxpemVkIGFjY29yZGluZyB0byB0aGUgbnVtYmVyXG4gKi9cbmZ1bmN0aW9uIHBsdXJhbGl6ZSh3b3JkLCBjb3VudCwgb3B0aW9ucyA9IHt9KSB7XG4gIGxldCBpbmNsdXNpdmUgPSBmYWxzZTtcbiAgaWYgKF8uaXNCb29sZWFuKG9wdGlvbnMpKSB7XG4gICAgLy8gaWYgcGFzc2VkIGluIGFzIGEgYm9vbGVhblxuICAgIGluY2x1c2l2ZSA9IG9wdGlvbnM7XG4gIH0gZWxzZSBpZiAoXy5pc0Jvb2xlYW4ob3B0aW9ucz8uaW5jbHVzaXZlKSkge1xuICAgIC8vIGlmIHBhc3NlZCBpbiBhcyBhbiBvcHRpb25zIGhhc2hcbiAgICBpbmNsdXNpdmUgPSBvcHRpb25zLmluY2x1c2l2ZTtcbiAgfVxuICByZXR1cm4gcGx1cmFsaXplTGliKHdvcmQsIGNvdW50LCBpbmNsdXNpdmUpO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIEVuY29kaW5nT3B0aW9uc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IFttYXhTaXplPTEwNzM3NDE4MjRdIFRoZSBtYXhpbXVtIHNpemUgb2ZcbiAqIHRoZSByZXN1bHRpbmcgYnVmZmVyIGluIGJ5dGVzLiBUaGlzIGlzIHNldCB0byAxR0IgYnkgZGVmYXVsdCwgYmVjYXVzZVxuICogQXBwaXVtIGxpbWl0cyB0aGUgbWF4aW11bSBIVFRQIGJvZHkgc2l6ZSB0byAxR0IuIEFsc28sIHRoZSBOb2RlSlMgaGVhcFxuICogc2l6ZSBtdXN0IGJlIGVub3VnaCB0byBrZWVwIHRoZSByZXN1bHRpbmcgb2JqZWN0ICh1c3VhbGx5IHRoaXMgc2l6ZSBpc1xuICogbGltaXRlZCB0byAxLjQgR0IpXG4gKi9cblxuLyoqXG4gKiBDb252ZXJ0cyBjb250ZW50cyBvZiBhIGxvY2FsIGZpbGUgdG8gYW4gaW4tbWVtb3J5IGJhc2UtNjQgZW5jb2RlZCBidWZmZXIuXG4gKiBUaGUgb3BlcmF0aW9uIGlzIG1lbW9yeS11c2FnZSBmcmllbmRseSBhbmQgc2hvdWxkIGJlIHVzZWQgd2hpbGUgZW5jb2RpbmdcbiAqIGxhcmdlIGZpbGVzIHRvIGJhc2U2NFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzcmNQYXRoIFRoZSBmdWxsIHBhdGggdG8gdGhlIGZpbGUgYmVpbmcgZW5jb2RlZFxuICogQHBhcmFtIHtFbmNvZGluZ09wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtQcm9taXNlPEJ1ZmZlcj59IGJhc2U2NC1lbmNvZGVkIGNvbnRlbnQgb2YgdGhlIHNvdXJjZSBmaWxlIGFzIG1lbW9yeSBidWZmZXJcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgcmVhZGluZyB0aGUgc291cmNlIGZpbGVcbiAqIG9yIHRoZSBzb3VyY2UgZmlsZSBpcyB0b29cbiAqL1xuYXN5bmMgZnVuY3Rpb24gdG9Jbk1lbW9yeUJhc2U2NChzcmNQYXRoLCBvcHRzID0ge30pIHtcbiAgaWYgKCEoYXdhaXQgZnMuZXhpc3RzKHNyY1BhdGgpKSB8fCAoYXdhaXQgZnMuc3RhdChzcmNQYXRoKSkuaXNEaXJlY3RvcnkoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VjaCBmaWxlOiAke3NyY1BhdGh9YCk7XG4gIH1cblxuICBjb25zdCB7bWF4U2l6ZSA9IDEgKiBHaUJ9ID0gb3B0cztcbiAgY29uc3QgcmVzdWx0QnVmZmVycyA9IFtdO1xuICBsZXQgcmVzdWx0QnVmZmVyc1NpemUgPSAwO1xuICBjb25zdCByZXN1bHRXcml0ZVN0cmVhbSA9IG5ldyBzdHJlYW0uV3JpdGFibGUoe1xuICAgIHdyaXRlOiAoYnVmZmVyLCBlbmNvZGluZywgbmV4dCkgPT4ge1xuICAgICAgcmVzdWx0QnVmZmVycy5wdXNoKGJ1ZmZlcik7XG4gICAgICByZXN1bHRCdWZmZXJzU2l6ZSArPSBidWZmZXIubGVuZ3RoO1xuICAgICAgaWYgKG1heFNpemUgPiAwICYmIHJlc3VsdEJ1ZmZlcnNTaXplID4gbWF4U2l6ZSkge1xuICAgICAgICByZXN1bHRXcml0ZVN0cmVhbS5lbWl0KFxuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFRoZSBzaXplIG9mIHRoZSByZXN1bHRpbmcgYCArXG4gICAgICAgICAgICAgIGBidWZmZXIgbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuICR7dG9SZWFkYWJsZVNpemVTdHJpbmcobWF4U2l6ZSl9YFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIG5leHQoKTtcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCByZWFkZXJTdHJlYW0gPSBmcy5jcmVhdGVSZWFkU3RyZWFtKHNyY1BhdGgpO1xuICBjb25zdCBiYXNlNjRFbmNvZGVyU3RyZWFtID0gbmV3IEJhc2U2NEVuY29kZSgpO1xuICBjb25zdCByZXN1bHRXcml0ZVN0cmVhbVByb21pc2UgPSBuZXcgQigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgcmVzdWx0V3JpdGVTdHJlYW0ub25jZSgnZXJyb3InLCAoZSkgPT4ge1xuICAgICAgcmVhZGVyU3RyZWFtLnVucGlwZShiYXNlNjRFbmNvZGVyU3RyZWFtKTtcbiAgICAgIGJhc2U2NEVuY29kZXJTdHJlYW0udW5waXBlKHJlc3VsdFdyaXRlU3RyZWFtKTtcbiAgICAgIHJlYWRlclN0cmVhbS5kZXN0cm95KCk7XG4gICAgICByZWplY3QoZSk7XG4gICAgfSk7XG4gICAgcmVzdWx0V3JpdGVTdHJlYW0ub25jZSgnZmluaXNoJywgcmVzb2x2ZSk7XG4gIH0pO1xuICBjb25zdCByZWFkU3RyZWFtUHJvbWlzZSA9IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICByZWFkZXJTdHJlYW0ub25jZSgnY2xvc2UnLCByZXNvbHZlKTtcbiAgICByZWFkZXJTdHJlYW0ub25jZSgnZXJyb3InLCAoZSkgPT5cbiAgICAgIHJlamVjdChuZXcgRXJyb3IoYEZhaWxlZCB0byByZWFkICcke3NyY1BhdGh9JzogJHtlLm1lc3NhZ2V9YCkpXG4gICAgKTtcbiAgfSk7XG4gIHJlYWRlclN0cmVhbS5waXBlKGJhc2U2NEVuY29kZXJTdHJlYW0pO1xuICBiYXNlNjRFbmNvZGVyU3RyZWFtLnBpcGUocmVzdWx0V3JpdGVTdHJlYW0pO1xuXG4gIGF3YWl0IEIuYWxsKFtyZWFkU3RyZWFtUHJvbWlzZSwgcmVzdWx0V3JpdGVTdHJlYW1Qcm9taXNlXSk7XG4gIHJldHVybiBCdWZmZXIuY29uY2F0KHJlc3VsdEJ1ZmZlcnMpO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIExvY2tGaWxlT3B0aW9uc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IFt0aW1lb3V0PTEyMF0gVGhlIG1heCB0aW1lIGluIHNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIGxvY2tcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3RyeVJlY292ZXJ5PWZhbHNlXSBXaGV0aGVyIHRvIHRyeSBsb2NrIHJlY292ZXJ5IGlmXG4gKiB0aGUgZmlyc3QgYXR0ZW1wdCB0byBhY3F1aXJlIGl0IHRpbWVkIG91dC5cbiAqL1xuXG4vKipcbiAqIENyZWF0ZSBhbiBhc3luYyBmdW5jdGlvbiB3aGljaCwgd2hlbiBjYWxsZWQsIHdpbGwgbm90IHByb2NlZWQgdW50aWwgYSBjZXJ0YWluIGZpbGUgaXMgbm9cbiAqIGxvbmdlciBwcmVzZW50IG9uIHRoZSBzeXN0ZW0uIFRoaXMgYWxsb3dzIGZvciBwcmV2ZW50aW5nIGNvbmN1cnJlbnQgYmVoYXZpb3IgYWNyb3NzIHByb2Nlc3Nlc1xuICogdXNpbmcgYSBrbm93biBsb2NrZmlsZSBwYXRoLlxuICpcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9ja0ZpbGUgVGhlIGZ1bGwgcGF0aCB0byB0aGUgZmlsZSB1c2VkIGZvciB0aGUgbG9ja1xuICogQHBhcmFtIHtMb2NrRmlsZU9wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIGFzeW5jIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYW5vdGhlciBhc3luYyBmdW5jdGlvbiBkZWZpbmluZyB0aGUgbG9ja2VkXG4gKiBiZWhhdmlvclxuICovXG5mdW5jdGlvbiBnZXRMb2NrRmlsZUd1YXJkKGxvY2tGaWxlLCBvcHRzID0ge30pIHtcbiAgY29uc3Qge3RpbWVvdXQgPSAxMjAsIHRyeVJlY292ZXJ5ID0gZmFsc2V9ID0gb3B0cztcblxuICBjb25zdCBsb2NrID0gLyoqIEB0eXBlIHsobG9ja2ZpbGU6IHN0cmluZywgb3B0czogaW1wb3J0KCdsb2NrZmlsZScpLk9wdGlvbnMpPT5CPHZvaWQ+fSAqLyAoXG4gICAgQi5wcm9taXNpZnkoX2xvY2tmaWxlLmxvY2spXG4gICk7XG4gIGNvbnN0IGNoZWNrID0gQi5wcm9taXNpZnkoX2xvY2tmaWxlLmNoZWNrKTtcbiAgY29uc3QgdW5sb2NrID0gQi5wcm9taXNpZnkoX2xvY2tmaWxlLnVubG9jayk7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7KC4uLmFyZ3M6IGFueVtdKSA9PiBUfSBiZWhhdmlvclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUPn1cbiAgICovXG4gIGNvbnN0IGd1YXJkID0gYXN5bmMgKGJlaGF2aW9yKSA9PiB7XG4gICAgbGV0IHRyaWVkUmVjb3ZlcnkgPSBmYWxzZTtcbiAgICBkbyB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBpZiB0aGUgbG9ja2ZpbGUgZG9lc24ndCBleGlzdCwgbG9jayBpdCBzeW5jaHJvbm91c2x5IHRvIG1ha2Ugc3VyZSBubyBvdGhlciBjYWxsXG4gICAgICAgIC8vIG9uIHRoZSBzYW1lIHNwaW4gb2YgdGhlIGV2ZW50IGxvb3AgY2FuIGFsc28gaW5pdGlhdGUgYSBsb2NrLiBJZiB0aGUgbG9ja2ZpbGUgZG9lcyBleGlzdFxuICAgICAgICAvLyB0aGVuIGp1c3QgdXNlIHRoZSByZWd1bGFyIGFzeW5jICdsb2NrJyBtZXRob2Qgd2hpY2ggd2lsbCB3YWl0IG9uIHRoZSBsb2NrLlxuICAgICAgICBpZiAoX2xvY2tmaWxlLmNoZWNrU3luYyhsb2NrRmlsZSkpIHtcbiAgICAgICAgICBhd2FpdCBsb2NrKGxvY2tGaWxlLCB7d2FpdDogdGltZW91dCAqIDEwMDB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBfbG9ja2ZpbGUubG9ja1N5bmMobG9ja0ZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoXy5pbmNsdWRlcyhlLm1lc3NhZ2UsICdFRVhJU1QnKSAmJiB0cnlSZWNvdmVyeSAmJiAhdHJpZWRSZWNvdmVyeSkge1xuICAgICAgICAgIC8vIFRoZXJlIGNvdWxkIGJlIGNhc2VzIHdoZXJlIGEgcHJvY2VzcyBoYXMgYmVlbiBmb3JjZWZ1bGx5IHRlcm1pbmF0ZWRcbiAgICAgICAgICAvLyB3aXRob3V0IGEgY2hhbmNlIHRvIGNsZWFuIHVwIHBlbmRpbmcgbG9ja3M6IGh0dHBzOi8vZ2l0aHViLmNvbS9ucG0vbG9ja2ZpbGUvaXNzdWVzLzI2XG4gICAgICAgICAgX2xvY2tmaWxlLnVubG9ja1N5bmMobG9ja0ZpbGUpO1xuICAgICAgICAgIHRyaWVkUmVjb3ZlcnkgPSB0cnVlO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ291bGQgbm90IGFjcXVpcmUgbG9jayBvbiAnJHtsb2NrRmlsZX0nIGFmdGVyICR7dGltZW91dH1zLiBgICtcbiAgICAgICAgICAgIGBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnN0YW50LWNvbmRpdGlvblxuICAgIH0gd2hpbGUgKHRydWUpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgYmVoYXZpb3IoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgLy8gd2hldGhlciB0aGUgYmVoYXZpb3Igc3VjY2VlZGVkIG9yIG5vdCwgZ2V0IHJpZCBvZiB0aGUgbG9ja1xuICAgICAgYXdhaXQgdW5sb2NrKGxvY2tGaWxlKTtcbiAgICB9XG4gIH07XG5cbiAgZ3VhcmQuY2hlY2sgPSBhc3luYyAoKSA9PiBhd2FpdCBjaGVjayhsb2NrRmlsZSk7XG5cbiAgcmV0dXJuIGd1YXJkO1xufVxuXG5leHBvcnQge1xuICBoYXNWYWx1ZSxcbiAgZXNjYXBlU3BhY2UsXG4gIGVzY2FwZVNwZWNpYWxDaGFycyxcbiAgbG9jYWxJcCxcbiAgY2FuY2VsbGFibGVEZWxheSxcbiAgbXVsdGlSZXNvbHZlLFxuICBzYWZlSnNvblBhcnNlLFxuICB3cmFwRWxlbWVudCxcbiAgdW53cmFwRWxlbWVudCxcbiAgZmlsdGVyT2JqZWN0LFxuICB0b1JlYWRhYmxlU2l6ZVN0cmluZyxcbiAgaXNTdWJQYXRoLFxuICBXM0NfV0VCX0VMRU1FTlRfSURFTlRJRklFUixcbiAgaXNTYW1lRGVzdGluYXRpb24sXG4gIGNvbXBhcmVWZXJzaW9ucyxcbiAgY29lcmNlVmVyc2lvbixcbiAgcXVvdGUsXG4gIHVubGVha1N0cmluZyxcbiAganNvblN0cmluZ2lmeSxcbiAgcGx1cmFsaXplLFxuICBHaUIsXG4gIE1pQixcbiAgS2lCLFxuICB0b0luTWVtb3J5QmFzZTY0LFxuICB1dWlkVjEsXG4gIHV1aWRWMyxcbiAgdXVpZFY0LFxuICB1dWlkVjUsXG4gIHNoZWxsUGFyc2UsXG4gIGdldExvY2tGaWxlR3VhcmQsXG59O1xuXG4vKipcbiAqIEEgYHN0cmluZ2Agd2hpY2ggaXMgbmV2ZXIgYCcnYC5cbiAqXG4gKiBAdGVtcGxhdGUge3N0cmluZ30gVFxuICogQHR5cGVkZWYge1QgZXh0ZW5kcyAnJyA/IG5ldmVyIDogVH0gTm9uRW1wdHlTdHJpbmdcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFFQSxNQUFNQSwwQkFBMEIsR0FBRyxxQ0FBbkM7O0FBQ0EsTUFBTUMsR0FBRyxHQUFHLElBQVo7O0FBQ0EsTUFBTUMsR0FBRyxHQUFHRCxHQUFHLEdBQUcsSUFBbEI7O0FBQ0EsTUFBTUUsR0FBRyxH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
|
package/build/lib/zip.d.ts
CHANGED
|
@@ -14,12 +14,12 @@ export type ExtractAllOptions = {
|
|
|
14
14
|
* if the particular archive does not comply to the standards, which leads to corrupted file names
|
|
15
15
|
* after extraction. Only applicable if system unzip binary is NOT being used.
|
|
16
16
|
*/
|
|
17
|
-
fileNamesEncoding
|
|
17
|
+
fileNamesEncoding?: string | undefined;
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* If true, attempt to use system unzip; if this fails,
|
|
20
20
|
* fallback to the JS unzip implementation.
|
|
21
21
|
*/
|
|
22
|
-
useSystemUnzip
|
|
22
|
+
useSystemUnzip?: boolean | undefined;
|
|
23
23
|
};
|
|
24
24
|
export type ZipEntry = {
|
|
25
25
|
/**
|
|
@@ -82,12 +82,12 @@ export type ZipSourceOptions = {
|
|
|
82
82
|
};
|
|
83
83
|
/**
|
|
84
84
|
* @typedef ExtractAllOptions
|
|
85
|
-
* @property {
|
|
85
|
+
* @property {string} [fileNamesEncoding] The encoding to use for extracted file names.
|
|
86
86
|
* For ZIP archives created on MacOS it is usually expected to be `utf8`.
|
|
87
87
|
* By default it is autodetected based on the entry metadata and is only needed to be set explicitly
|
|
88
88
|
* if the particular archive does not comply to the standards, which leads to corrupted file names
|
|
89
89
|
* after extraction. Only applicable if system unzip binary is NOT being used.
|
|
90
|
-
* @property {
|
|
90
|
+
* @property {boolean} [useSystemUnzip] If true, attempt to use system unzip; if this fails,
|
|
91
91
|
* fallback to the JS unzip implementation.
|
|
92
92
|
*/
|
|
93
93
|
/**
|