Comparing version 2.8.0 to 2.8.1
@@ -260,4 +260,4 @@ 'use strict'; | ||
scheduleNext(); | ||
} else if (!res.body || !res.body.length) { | ||
console.error('No successful build found!'); | ||
} else if (!res.body) { | ||
console.error('No response body found!'); | ||
console.warn('CCI task finished with failure.'); | ||
@@ -276,2 +276,8 @@ scheduleNext(); | ||
} | ||
if (!builds.length) { | ||
console.error('No successful build found!'); | ||
console.warn('CCI task finished with failure.'); | ||
scheduleNext(); | ||
return; | ||
} | ||
if (!options.install) { | ||
@@ -333,4 +339,4 @@ console.log('Response from CCI server:\n' + JSON.stringify(builds, null, 4)); | ||
cciBuildInfoHandler(null, { | ||
ok: true, | ||
body: [{ build_num: options.install }] | ||
statusCode: 200, | ||
body: JSON.stringify([{ build_num: options.install }]) | ||
}); | ||
@@ -350,2 +356,2 @@ return; | ||
exports.default = _module; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi90YXNrLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsIm9wdGlvbnMiLCJjb25maWciLCJkb3dubG9hZEVycm9yIiwiRVhJVF9DT0RFIiwidXBkYXRlUmVzcG9uc2UiLCJyZXMiLCJkZWZhdWx0Qm9keSIsInRleHQiLCJib2R5IiwiSlNPTiIsInBhcnNlIiwiZSIsInNjaGVkdWxlTmV4dCIsIl9zYXZlIiwibGFzdCIsIl9sYXN0IiwiY2ZnRmlsZSIsIndyaXRlIiwiY29uc29sZSIsImluZm8iLCJwcm9jZXNzIiwiZXhpdCIsInNldFRpbWVvdXQiLCJydW4iLCJpbnRlcnZhbCIsImxvZ1ByZWZpeGVkIiwicHJlZml4IiwibG9nRm4iLCJkYXRhIiwidG9TdHJpbmciLCJzcGxpdCIsInNsaWNlIiwibWFwIiwicyIsImpvaW4iLCJzdGFydFNjcmlwdCIsInNjcmlwdEZpbGUiLCJwYXRoIiwicmVzb2x2ZSIsInNjcmlwdCIsIl90YXJnZXQiLCJjd2QiLCJkaXJuYW1lIiwic3Rkb3V0Iiwib24iLCJzdGRlcnIiLCJ3YXJuIiwiZXJyIiwiZXJyb3IiLCJzdHJpbmdpZnkiLCJjb2RlIiwibWVzc2FnZSIsImNjaURvd25sb2FkT25lIiwiX3VybHMiLCJsZW5ndGgiLCJ1cmwiLCJwb3AiLCJmaWxlbmFtZSIsInN0cmVhbU5hbWUiLCJkZWNvZGVVUklDb21wb25lbnQiLCJzdHJlYW0iLCJmcyIsImNyZWF0ZVdyaXRlU3RyZWFtIiwic3RhcnQiLCJEYXRlIiwiZ2V0VGltZSIsIm1ldGhvZCIsInRva2VuIiwidGltZW91dCIsImR1ciIsInNwbGljZSIsIm5leHRUaWNrIiwicGlwZSIsImNjaURvd25sb2FkIiwic3RhdFN5bmMiLCJkaXJlY3RvcnkiLCJiYXNlbmFtZSIsImkiLCJsb2ciLCJta2RpclN5bmMiLCJjY2lBcnRpZmFjdHNJbmZvSGFuZGxlciIsInN0YXR1c0NvZGUiLCJzdGF0dXNNZXNzYWdlIiwicHJlZml4ZXMiLCJhcnRpZmFjdHMiLCJuYW1lIiwiaXRlbSIsImZvdW5kIiwidXJscyIsImZvckVhY2giLCJpbmRleE9mIiwicHVzaCIsImFsbEZvdW5kIiwiY2NpQnVpbGRJbmZvSGFuZGxlciIsImJ1aWxkcyIsImluc3RhbGwiLCJvcmRlcl9ieSIsIndvcmtmbG93c19qb2JfbmFtZSIsImJ1aWxkIiwid29ya2Zsb3dzIiwiam9iX25hbWUiLCJidWlsZF9udW0iLCJfbmFtZSIsImFwaVBhdGgiLCJob3N0aW5nIiwib3JnYW5pc2F0aW9uIiwicHJvamVjdCIsImNjaV91cmwiLCJoZWFkZXJzIiwiQWNjZXB0IiwiX29wdGlvbnMiLCJyZWFkIiwiaWdub3JlX2JyYW5jaCIsImJyYW5jaCIsIm9rIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFNQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7OztBQUNBOzs7Ozs7QUFYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQVNBLElBQU1BLFVBQVMsRUFBZjtBQUNBLElBQUlDLGdCQUFKLEMsQ0FBYTtBQUNiLElBQUlDLGVBQUosQyxDQUFhO0FBQ2IsSUFBSUMsc0JBQUosQyxDQUFtQjs7QUFFbkIsSUFBSUMsa0JBQUosQyxDQUFlOztBQUVmLElBQU1DLGlCQUFpQixTQUFqQkEsY0FBaUIsQ0FBQ0MsR0FBRCxFQUE2QjtBQUFBLE1BQXZCQyxXQUF1Qix1RUFBVCxJQUFTOztBQUNsRCxNQUFJRCxJQUFJRSxJQUFSLEVBQWM7QUFDWixRQUFJO0FBQ0ZGLFVBQUlHLElBQUosR0FBV0MsS0FBS0MsS0FBTCxDQUFXTCxJQUFJRSxJQUFmLENBQVg7QUFDRCxLQUZELENBRUUsT0FBT0ksQ0FBUCxFQUFVO0FBQ1ZOLFVBQUlHLElBQUosR0FBV0YsV0FBWDtBQUNEO0FBQ0Y7QUFDRixDQVJEOztBQVVBLElBQU1NLGVBQWUsU0FBZkEsWUFBZSxHQUFNO0FBQ3pCLE1BQUlYLE9BQU9ZLEtBQVgsRUFBa0I7QUFDaEJaLFdBQU9hLElBQVAsR0FBY2IsT0FBT2MsS0FBckI7QUFDQSxRQUFJZixRQUFRZ0IsT0FBUixDQUFnQkMsS0FB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eEJxQixVQUFJLElBRG9CO0FBRXhCMUcsWUFBTSxDQUFFLEVBQUU2RixXQUFXckcsUUFBUStGLE9BQXJCLEVBQUY7QUFGa0IsS0FBMUI7QUFJQTtBQUNEO0FBQ0QsTUFBTVEsVUFDSnRHLE9BQU8rRyxhQUFQLEdBQ0ksQ0FBQyxtQkFBRCxFQUFzQi9HLE9BQU91RyxPQUE3QixFQUFzQ3ZHLE9BQU93RyxZQUE3QyxFQUEyRHhHLE9BQU95RyxPQUFsRSxFQUEyRXhFLElBQTNFLENBQWdGLEdBQWhGLENBREosR0FFSSxDQUFDLG1CQUFELEVBQXNCakMsT0FBT3VHLE9BQTdCLEVBQXNDdkcsT0FBT3dHLFlBQTdDLEVBQTJEeEcsT0FBT3lHLE9BQWxFLEVBQTJFLE1BQTNFLEVBQW1GekcsT0FBT2dILE1BQTFGLEVBQWtHL0UsSUFBbEcsQ0FBdUcsR0FBdkcsQ0FITjtBQUlBaEIsVUFBUTRELEdBQVIsQ0FBWSxpREFBaUQ3RSxPQUFPcUcsS0FBeEQsR0FBZ0UsR0FBNUU7QUFDQSx5QkFBUTtBQUNOcEMsWUFBUSxLQURGO0FBRU5YLFNBQVF0RCxPQUFPMEcsT0FBUCxHQUFpQkosT0FBekIsc0JBQWlEdEcsT0FBT2tFLEtBQXhELGlDQUZNO0FBR055QyxhQUFTLEVBQUVDLFFBQVEsa0JBQVYsRUFISDtBQUlOekMsYUFBU25FLE9BQU9tRSxPQUFQLEdBQWlCO0FBSnBCLEdBQVIsRUFLR3lCLG1CQUxIO0FBTUQsQ0EzQkQ7O2tCQTZCZTlGLE8iLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE1vZHVsZSBmb3IgdGFsa2luZyB0byBDQ0ksIGdldHRpbmcgdGhlIGFydGlmYWN0cywgZG93bmxvYWRpbmcgdGhlbSxcbi8vIHN0YXJ0aW5nIHRoZSBhY3Rpb24gc2NyaXB0LCBzYXZpbmcgdGhlIHVwZGF0ZWQgY29uZmlnIGZpbGUsIC4uLlxuLy9cbi8vIFRoZSB0YXNrLnJ1bigpIHNjaGVkdWxlcyBuZXh0IHJ1biBhcyBuZWVkZWQuXG4vLyBBbGwgZGlzayBvcGVyYXRpb25zIGFyZSBzeW5jaHJvbm91cy5cblxuaW1wb3J0IHJlcXVlc3QgZnJvbSAncmVxdWVzdCc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBzcGF3biB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IG9yZGVyQnkgZnJvbSAnbG9kYXNoLm9yZGVyYnknO1xuaW1wb3J0IGZpbHRlciBmcm9tICdsb2Rhc2guZmlsdGVyJztcblxuY29uc3QgbW9kdWxlID0ge307XG5sZXQgb3B0aW9uczsgLy8gc2V0IG9uY2UgYXQgZmlyc3QgcnVuKClcbmxldCBjb25maWc7ICAvLyByZS1yZWFkIGluIGVhY2ggaXRlcmF0aW9uXG5sZXQgZG93bmxvYWRFcnJvcjsgLy8gc3RvcCB0aGUgcHJvY2VzcyBpbiBjYXNlIGRvd25sb2FkIGZhaWxlZFxuXG5sZXQgRVhJVF9DT0RFOyAvLyByZXR1cm4gY29kZSBmb3IgJy0tcnVuLW9uY2UnIG1vZGVcblxuY29uc3QgdXBkYXRlUmVzcG9uc2UgPSAocmVzLCBkZWZhdWx0Qm9keSA9IG51bGwpID0+IHtcbiAgaWYgKHJlcy50ZXh0KSB7XG4gICAgdHJ5IHtcbiAgICAgIHJlcy5ib2R5ID0gSlNPTi5wYXJzZShyZXMudGV4dCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmVzLmJvZHkgPSBkZWZhdWx0Qm9keTtcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IHNjaGVkdWxlTmV4dCA9ICgpID0+IHtcbiAgaWYgKGNvbmZpZy5fc2F2ZSkge1xuICAgIGNvbmZpZy5sYXN0ID0gY29uZmlnLl9sYXN0O1xuICAgIGlmIChvcHRpb25zLmNmZ0ZpbGUud3JpdGUoY29uZmlnKSkge1xuICAgICAgY29uc29sZS5pbmZvKCdOZXcgY29uZmlndXJhdGlvbiBmaWxlIHJldmlzaW9uIHN1Y2Nlc3NmdWxseSBzYXZlZC4nKTtcbiAgICB9XG4gIH1cbiAgaWYgKG9wdGlvbnNbJ3J1bi1vbmNlJ10pIHtcbiAgICBjb25zb2xlLmluZm8oJ0NDSS1QSU5HVSBhYm91dCB0byBleGl0LiBUaGFua3MgZm9yIGZseWluZyB3aXRoIHVzIScpO1xuICAgIHByb2Nlc3MuZXhpdChFWElUX0NPREUpO1xuICB9IGVsc2Uge1xuICAgIHNldFRpbWVvdXQobW9kdWxlLnJ1biwgY29uZmlnLmludGVydmFsICogMTAwMCk7XG4gICAgY29uc29sZS5pbmZvKCdOZXh0IENDSSB0YXNrIHNjaGVkdWxlZCBpbiAnICsgY29uZmlnLmludGVydmFsICsgJyBzZWNvbmRzLicpO1xuICB9XG59O1xuXG5jb25zdCBsb2dQcmVmaXhlZCA9IChwcmVmaXgsIGxvZ0ZuKSA9PiAoZGF0YSkgPT4ge1xuICBsb2dGbihkYXRhLnRvU3RyaW5nKCkuc3BsaXQoJ1xcbicpLnNsaWNlKDAsIC0xKS5tYXAoKHMpID0+IGAke3ByZWZpeH0gJHtzfWApLmpvaW4oJ1xcbicpKTtcbn07XG5cbmNvbnN0IHN0YXJ0U2NyaXB0ID0gKCkgPT4ge1xuICBjb25zdCBzY3JpcHRGaWxlID0gcGF0aC5yZXNvbHZlKGNvbmZpZy5zY3JpcHQpO1xuICBjb25zb2xlLmluZm8oJ0V4ZWN1dGluZyBcIicgKyBzY3JpcHRGaWxlICsgJ1wiLicpO1xuICB0cnkge1xuICAgIGNvbnN0IHNjcmlwdCA9IHNwYXduKHNjcmlwdEZpbGUsIFsgY29uZmlnLl90YXJnZXQsIGNvbmZpZy5fbGFzdCBdLCB7IGN3ZDogcGF0aC5kaXJuYW1lKHNjcmlwdEZpbGUpIH0pO1xuICAgIHNjcmlwdC5zdGRvdXQub24oJ2RhdGEnLCBsb2dQcmVmaXhlZCgnKicsIGNvbnNvbGUuaW5mbykpO1xuICAgIHNjcmlwdC5zdGRlcnIub24oJ2RhdGEnLCBsb2dQcmVmaXhlZCgnIScsIGNvbnNvbGUud2FybikpO1xuICAgIHNjcmlwdC5vbignZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgc2NyaXB0IFwiJyArIHNjcmlwdEZpbGUgKyAnXCIuJyk7XG4gICAgICBjb25zb2xlLmVycm9yKEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgICBzY2hlZHVsZU5leHQoKTtcbiAgICB9KTtcbiAgICBzY3JpcHQub24oJ2Nsb3NlJywgKGNvZGUpID0+IHtcbiAgICAgIGlmICghY29kZSkgeyAvLyBzdWNjZXNzXG4gICAgICAgIGNvbnNvbGUuaW5mbygnQ0NJIHRhc2sgc3VjY2Vzc2Z1bGx5IGZpbmlzaGVkLicpO1xuICAgICAgICBjb25maWcuX3NhdmUgPSB0cnVlO1xuICAgICAgfSBlbHNlIHsgLy8gZmFpbFxuICAgICAgICBjb25zb2xlLmVycm9yKCdJbnN0YWxsYXRpb24gc2NyaXB0IGZhaWxlZCB3aXRoIGV4aXQgY29kZSAoJyArIGNvZGUgKyAnKS4nKTtcbiAgICAgIH1cbiAgICAgIEVYSVRfQ09ERSA9IGNvZGU7XG4gICAgICBzY2hlZHVsZU5leHQoKTtcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkgeyAvLyBzcGF3biBjYW4gdGhyb3cgZXhjZXB0aW9ucyBvbiBpdHMgb3duXG4gICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IHNjcmlwdCBcIicgKyBzY3JpcHRGaWxlICsgJ1wiLicpO1xuICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTtcbiAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICBzY2hlZHVsZU5leHQoKTtcbiAgfVxufTtcblxuY29uc3QgY2NpRG93bmxvYWRPbmUgPSAoKSA9PiB7XG4gIGlmICghY29uZmlnLl91cmxzLmxlbmd0aCkge1xuICAgIHN0YXJ0U2NyaXB0KCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdXJsID0gY29uZmlnLl91cmxzLnBvcCgpO1xuICAgIGxldCBmaWxlbmFtZSA9IHVybC5zcGxpdCgnLycpO1xuICAgIGZpbGVuYW1lID0gZmlsZW5hbWVbZmlsZW5hbWUubGVuZ3RoIC0gMV07XG4gICAgY29uc3Qgc3RyZWFtTmFtZSA9IHBhdGguam9pbihjb25maWcuX3RhcmdldCwgZGVjb2RlVVJJQ29tcG9uZW50KGZpbGVuYW1lKSk7XG4gICAgY29uc3Qgc3RyZWFtID0gZnMuY3JlYXRlV3JpdGVTdHJlYW0oc3RyZWFtTmFtZSk7XG4gICAgY29uc29sZS5pbmZvKCdEb3dubG9hZGluZyBcIicgKyBkZWNvZGVVUklDb21wb25lbnQodXJsKSArICdcIi4nKTtcbiAgICBjb25zdCBzdGFydCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gICAgZG93bmxvYWRFcnJvciA9IGZhbHNlO1xuICAgIHJlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHVybDogYCR7dXJsfT9jaXJjbGUtdG9rZW49JHtjb25maWcudG9rZW59YCxcbiAgICAgIHRpbWVvdXQ6IGNvbmZpZy50aW1lb3V0ICogMTAwMFxuICAgIH0pXG4gICAgICAub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdEb3dubG9hZCBmYWlsZWQ6ICcgKyBKU09OLnN0cmluZ2lmeShlcnIpICsgJy4nKTtcbiAgICAgICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgICAgIGRvd25sb2FkRXJyb3IgPSB0cnVlO1xuICAgICAgICBzY2hlZHVsZU5leHQoKTtcbiAgICAgIH0pXG4gICAgICAub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgaWYgKGRvd25sb2FkRXJyb3IpIHsgcmV0dXJuOyB9XG4gICAgICAgIGxldCBkdXIgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpIC0gc3RhcnQ7XG4gICAgICAgIGlmIChkdXIgPiA5OTkpIHtcbiAgICAgICAgICBkdXIgPSAoJycgKyBkdXIpLnNwbGl0KCcnKTtcbiAgICAgICAgICBkdXIuc3BsaWNlKGR1ci5sZW5ndGggLSAzLCAwLCAnLicpO1xuICAgICAgICAgIGR1ciA9IGR1ci5qb2luKCcnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmluZm8oJ1NhdmVkIGFzIFwiJyArIHN0cmVhbU5hbWUgKyAnXCIgaW4gJyArIGR1ciArICcgbXMuJyk7XG4gICAgICAgIHByb2Nlc3MubmV4dFRpY2soY2NpRG93bmxvYWRPbmUpO1xuICAgICAgfSlcbiAgICAgIC5waXBlKHN0cmVhbSk7XG4gIH1cbn07XG5jb25zdCBjY2lEb3dubG9hZCA9ICgpID0+IHtcbiAgLy8gY3JlYXRlIHRhcmdldCBkaXJlY3RvcnlcbiAgdHJ5IHtcbiAgICBmcy5zdGF0U3luYyhjb25maWcuZGlyZWN0b3J5KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0RpcmVjdG9yeSBcIicgKyBjb25maWcuZGlyZWN0b3J5ICsgJ1wiIGRvZXMgbm90IGV4aXN0LCBjYW5ub3Qgd3JpdGUgdGhlcmUuJyk7XG4gICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGJhc2VuYW1lID0gJ2J1aWxkLScgKyBjb25maWcuX2xhc3Q7XG4gIGxldCBkaXJuYW1lO1xuICB0cnkge1xuICAgIGxldCBpID0gMTtcbiAgICB3aGlsZSAodHJ1ZSkgeyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zdGFudC1jb25kaXRpb25cbiAgICAgIGRpcm5hbWUgPSBiYXNlbmFtZSArIChpID4gMSA/ICcuJyArIGkgOiAnJyk7XG4gICAgICBmcy5zdGF0U3luYyhwYXRoLmpvaW4oY29uZmlnLmRpcmVjdG9yeSwgZGlybmFtZSkpO1xuICAgICAgaSsrO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIGV4Y2VwdGlvbiBpcyBmaW5lXG4gIH1cbiAgLy8gY3JlYXRlIG5ldyBkaXJcbiAgY29uZmlnLl90YXJnZXQgPSBwYXRoLnJlc29sdmUocGF0aC5qb2luKGNvbmZpZy5kaXJlY3RvcnksIGRpcm5hbWUpKTtcbiAgY29uc29sZS5sb2coJ0NyZWF0aW5nIGFydGlmYWN0IGRpcmVjdG9yeSBcIicgKyBjb25maWcuX3RhcmdldCArICdcIi4nKTtcbiAgdHJ5IHtcbiAgICBmcy5ta2RpclN5bmMoY29uZmlnLl90YXJnZXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignVGFyZ2V0IGRpcmVjdG9yeSBcIicgKyBjb25maWcuX3RhcmdldCArICdcIiBjYW5ub3QgYmUgY3JlYXRlZC4nKTtcbiAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICBzY2hlZHVsZU5leHQoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBzdGFydCB0aGUgZG93bmxvYWRzXG4gIGNjaURvd25sb2FkT25lKCk7XG59O1xuXG5jb25zdCBjY2lBcnRpZmFjdHNJbmZvSGFuZGxlciA9IChlcnIsIHJlcykgPT4ge1xuICBpZiAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICBzY2hlZHVsZU5leHQoKTtcbiAgICByZXR1cm47XG4gIH1cbiAgdXBkYXRlUmVzcG9uc2UocmVzLCBbXSk7XG4gIGlmIChyZXMuc3RhdHVzQ29kZSAhPT0gMjAwKSB7XG4gICAgY29uc29sZS5lcnJvcignU3RhdHVzOiAnICsgcmVzLnN0YXR1c0NvZGUgKyAnLCAnICsgcmVzLnN0YXR1c01lc3NhZ2UpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICB9IGVsc2UgeyAvLyByZXMub2tcbiAgICBsZXQgYm9keTtcbiAgICB0cnkge1xuICAgICAgYm9keSA9IEpTT04ucGFyc2UocmVzLmJvZHkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Nhbm5vdCBwYXJzZSByZXNwb25zZSBmb3JtIHRoZSBzZXJ2ZXIhJyk7XG4gICAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZygnUmVzcG9uc2UgZnJvbSBDQ0kgc2VydmVyOlxcbicgKyBKU09OLnN0cmluZ2lmeShib2R5LCBudWxsLCA0KSk7XG4gICAgY29uc3QgcHJlZml4ZXMgPSBjb25maWcuYXJ0aWZhY3RzLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB7IG5hbWU6IGl0ZW0sIGZvdW5kOiBmYWxzZSB9O1xuICAgIH0pO1xuICAgIGNvbnN0IHVybHMgPSBbXTtcbiAgICBib2R5LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBwcmVmaXhlcy5mb3JFYWNoKHByZWZpeCA9PiB7XG4gICAgICAgIGlmIChpdGVtLnBhdGguaW5kZXhPZihwcmVmaXgubmFtZSkgIT09IC0xKSB7XG4gICAgICAgICAgdXJscy5wdXNoKGl0ZW0udXJsKTtcbiAgICAgICAgICBwcmVmaXguZm91bmQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZygnQ29sbGVjdGVkIGFydGlmYWN0IFVSTHMgKHRvIGRvd25sb2FkKTpcXG4nICsgSlNPTi5zdHJpbmdpZnkodXJscywgbnVsbCwgNCkpO1xuICAgIGxldCBhbGxGb3VuZCA9IHRydWU7XG4gICAgcHJlZml4ZXMuZm9yRWFjaChwcmVmaXggPT4geyBpZiAoIXByZWZpeC5mb3VuZCkgeyBhbGxGb3VuZCA9IGZhbHNlOyB9IH0pO1xuICAgIGlmICghYWxsRm91bmQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ05vdCBhbGwgYXJ0aWZhY3RzIGZvdW5kISBNaXNzaW5nOicpO1xuICAgICAgcHJlZml4ZXMuZm9yRWFjaChwcmVmaXggPT4geyBpZiAoIXByZWZpeC5mb3VuZCkgeyBjb25zb2xlLmVycm9yKCcrICcgKyBwcmVmaXgubmFtZSk7IH0gfSk7XG4gICAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25maWcuX3VybHMgPSB1cmxzO1xuICAgICAgY2NpRG93bmxvYWQoKTtcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGNjaUJ1aWxkSW5mb0hhbmRsZXIgPSAoZXJyLCByZXMpID0+IHtcbiAgaWYgKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoSlNPTi5zdHJpbmdpZnkoZXJyKSk7XG4gICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHVwZGF0ZVJlc3BvbnNlKHJlcyk7XG4gIGlmIChyZXMuc3RhdHVzQ29kZSAhPT0gMjAwKSB7XG4gICAgY29uc29sZS5lcnJvcignU3RhdHVzOiAnICsgcmVzLnN0YXR1c0NvZGUgKyAnLCAnICsgcmVzLnN0YXR1c01lc3NhZ2UpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICB9IGVsc2UgaWYgKCFyZXMuYm9keSB8fCAhcmVzLmJvZHkubGVuZ3RoKSB7XG4gICAgY29uc29sZS5lcnJvcignTm8gc3VjY2Vzc2Z1bCBidWlsZCBmb3VuZCEnKTtcbiAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICBzY2hlZHVsZU5leHQoKTtcbiAgfSBlbHNlIHsgLy8gcmVzLm9rXG4gICAgbGV0IGJ1aWxkcztcbiAgICB0cnkge1xuICAgICAgYnVpbGRzID0gSlNPTi5wYXJzZShyZXMuYm9keSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2Fubm90IHBhcnNlIHJlc3BvbnNlIGZvcm0gdGhlIHNlcnZlciEnKTtcbiAgICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghb3B0aW9ucy5pbnN0YWxsKSB7XG4gICAgICBjb25zb2xlLmxvZygnUmVzcG9uc2UgZnJvbSBDQ0kgc2VydmVyOlxcbicgKyBKU09OLnN0cmluZ2lmeShidWlsZHMsIG51bGwsIDQpKTtcbiAgICAgIGJ1aWxkcyA9IG9yZGVyQnkoYnVpbGRzLCBbIGNvbmZpZy5vcmRlcl9ieSBdLCBbICdkZXNjJyBdKTtcbiAgICAgIGlmIChjb25maWcud29ya2Zsb3dzX2pvYl9uYW1lKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdGaWx0ZXJpbmcgdGhlIGF2YWlsYWJsZSBzdWNjZXNzZnVsIGJ1aWxkcyBvbiB3b3JrZmxvd3Mgam9iIG5hbWUgPSAnICsgY29uZmlnLndvcmtmbG93c19qb2JfbmFtZSArICcuJyk7XG4gICAgICAgIGJ1aWxkcyA9IGZpbHRlcihidWlsZHMsIChidWlsZCkgPT4gKGJ1aWxkLndvcmtmbG93cyAmJiAoYnVpbGQud29ya2Zsb3dzLmpvYl9uYW1lID09PSBjb25maWcud29ya2Zsb3dzX2pvYl9uYW1lKSkpO1xuICAgICAgICBpZiAoIWJ1aWxkcy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdObyBzdWNjZXNzZnVsIGJ1aWxkIHdpdGggc3BlY2lmaWVkIHdvcmtmbG93cyBqb2IgbmFtZSBmb3VuZCEnKTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICAgICAgICBzY2hlZHVsZU5leHQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY29uZmlnLl9sYXN0ID0gYnVpbGRzWzBdLmJ1aWxkX251bTtcbiAgICAhb3B0aW9ucy5pbnN0YWxsICYmIGNvbnNvbGUuaW5mbygnTGFzdCBzdWNjZXNzZnVsICcgKyBjb25maWcuX25hbWUgKyAnIGJ1aWxkIG51bWJlcjogJyArIGNvbmZpZy5fbGFzdCArICcuJyk7XG4gICAgaWYgKCFvcHRpb25zLmluc3RhbGwgJiYgKGNvbmZpZy5sYXN0ID09PSBjb25maWcuX2xhc3QpKSB7XG4gICAgICBjb25zb2xlLmluZm8oJ0J1aWxkICcgKyBjb25maWcuX2xhc3QgKyAnIGFscmVhZHkgaW5zdGFsbGVkLicpO1xuICAgICAgY29uc29sZS5pbmZvKCdDQ0kgdGFzayBzdWNjZXNzZnVsbHkgZmluaXNoZWQuJyk7XG4gICAgICBFWElUX0NPREUgPSAwO1xuICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChvcHRpb25zLmluc3RhbGwgJiYgKGNvbmZpZy5sYXN0ID09PSBjb25maWcuX2xhc3QpKSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbygnQnVpbGQgJyArIGNvbmZpZy5fbGFzdCArICcgYWxyZWFkeSBpbnN0YWxsZWQsIGFib3V0IHRvIGluc3RhbGwgaXQgYWdhaW4uLi4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuaW5mbygnQnVpbGQgJyArIGNvbmZpZy5fbGFzdCArICcgaXMgbm90IGluc3RhbGxlZCB5ZXQuJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBhcGlQYXRoID0gWycvYXBpL3YxLjEvcHJvamVjdCcsIGNvbmZpZy5ob3N0aW5nLCBjb25maWcub3JnYW5pc2F0aW9uLFxuICAgICAgICBjb25maWcucHJvamVjdCwgY29uZmlnLl9sYXN0LCAnYXJ0aWZhY3RzJ10uam9pbignLycpO1xuICAgICAgY29uc29sZS5sb2coJ0dldHRpbmcgaW5mbyBhYm91dCBidWlsZCAnICsgY29uZmlnLl9sYXN0ICsgJyBhcnRpZmFjdHMuJyk7XG4gICAgICByZXF1ZXN0KHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgdXJsOiBgJHtjb25maWcuY2NpX3VybCArIGFwaVBhdGh9P2NpcmNsZS10b2tlbj0ke2NvbmZpZy50b2tlbn1gLFxuICAgICAgICBoZWFkZXJzOiB7IEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIHRpbWVvdXQ6IGNvbmZpZy50aW1lb3V0ICogMTAwMFxuICAgICAgfSwgY2NpQXJ0aWZhY3RzSW5mb0hhbmRsZXIpO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLnJ1biA9IChfb3B0aW9ucyA9IG51bGwpID0+IHtcbiAgRVhJVF9DT0RFID0gMTsgICAvLyB1cGRhdGUgdG8gMCBvbiBmaW5hbCBzdWNjZXNzXG4gIGlmIChfb3B0aW9ucykgeyBvcHRpb25zID0gX29wdGlvbnM7IH1cbiAgY29uZmlnID0gb3B0aW9ucy5jZmdGaWxlLnJlYWQoKTtcbiAgaWYgKGNvbmZpZy5pZ25vcmVfYnJhbmNoKSB7XG4gICAgY29uZmlnLmJyYW5jaCA9ICc8QU5ZPic7XG4gIH1cbiAgY29uZmlnLl9uYW1lID0gW2NvbmZpZy5ob3N0aW5nLCBjb25maWcub3JnYW5pc2F0aW9uLCBjb25maWcucHJvamVjdCwgY29uZmlnLmJyYW5jaF0uam9pbignLycpO1xuICBjb25zb2xlLmluZm8oJ0NDSSB0YXNrIHN0YXJ0ZWQuJyk7XG4gIGlmIChvcHRpb25zLmluc3RhbGwpIHtcbiAgICBjY2lCdWlsZEluZm9IYW5kbGVyKG51bGwsIHtcbiAgICAgIG9rOiB0cnVlLFxuICAgICAgYm9keTogWyB7IGJ1aWxkX251bTogb3B0aW9ucy5pbnN0YWxsIH0gXVxuICAgIH0pO1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBhcGlQYXRoID1cbiAgICBjb25maWcuaWdub3JlX2JyYW5jaFxuICAgICAgPyBbJy9hcGkvdjEuMS9wcm9qZWN0JywgY29uZmlnLmhvc3RpbmcsIGNvbmZpZy5vcmdhbmlzYXRpb24sIGNvbmZpZy5wcm9qZWN0XS5qb2luKCcvJylcbiAgICAgIDogWycvYXBpL3YxLjEvcHJvamVjdCcsIGNvbmZpZy5ob3N0aW5nLCBjb25maWcub3JnYW5pc2F0aW9uLCBjb25maWcucHJvamVjdCwgJ3RyZWUnLCBjb25maWcuYnJhbmNoXS5qb2luKCcvJyk7XG4gIGNvbnNvbGUubG9nKCdHZXR0aW5nIGluZm8gYWJvdXQgbGFzdCBzdWNjZXNzZnVsIGJ1aWxkIG9mICcgKyBjb25maWcuX25hbWUgKyAnLicpO1xuICByZXF1ZXN0KHtcbiAgICBtZXRob2Q6ICdHRVQnLFxuICAgIHVybDogYCR7Y29uZmlnLmNjaV91cmwgKyBhcGlQYXRofT9jaXJjbGUtdG9rZW49JHtjb25maWcudG9rZW59JmZpbHRlcj1zdWNjZXNzZnVsJmxpbWl0PTEwMGAsXG4gICAgaGVhZGVyczogeyBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgIHRpbWVvdXQ6IGNvbmZpZy50aW1lb3V0ICogMTAwMFxuICB9LCBjY2lCdWlsZEluZm9IYW5kbGVyKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IG1vZHVsZTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi90YXNrLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsIm9wdGlvbnMiLCJjb25maWciLCJkb3dubG9hZEVycm9yIiwiRVhJVF9DT0RFIiwidXBkYXRlUmVzcG9uc2UiLCJyZXMiLCJkZWZhdWx0Qm9keSIsInRleHQiLCJib2R5IiwiSlNPTiIsInBhcnNlIiwiZSIsInNjaGVkdWxlTmV4dCIsIl9zYXZlIiwibGFzdCIsIl9sYXN0IiwiY2ZnRmlsZSIsIndyaXRlIiwiY29uc29sZSIsImluZm8iLCJwcm9jZXNzIiwiZXhpdCIsInNldFRpbWVvdXQiLCJydW4iLCJpbnRlcnZhbCIsImxvZ1ByZWZpeGVkIiwicHJlZml4IiwibG9nRm4iLCJkYXRhIiwidG9TdHJpbmciLCJzcGxpdCIsInNsaWNlIiwibWFwIiwicyIsImpvaW4iLCJzdGFydFNjcmlwdCIsInNjcmlwdEZpbGUiLCJwYXRoIiwicmVzb2x2ZSIsInNjcmlwdCIsIl90YXJnZXQiLCJjd2QiLCJkaXJuYW1lIiwic3Rkb3V0Iiwib24iLCJzdGRlcnIiLCJ3YXJuIiwiZXJyIiwiZXJyb3IiLCJzdHJpbmdpZnkiLCJjb2RlIiwibWVzc2FnZSIsImNjaURvd25sb2FkT25lIiwiX3VybHMiLCJsZW5ndGgiLCJ1cmwiLCJwb3AiLCJmaWxlbmFtZSIsInN0cmVhbU5hbWUiLCJkZWNvZGVVUklDb21wb25lbnQiLCJzdHJlYW0iLCJmcyIsImNyZWF0ZVdyaXRlU3RyZWFtIiwic3RhcnQiLCJEYXRlIiwiZ2V0VGltZSIsIm1ldGhvZCIsInRva2VuIiwidGltZW91dCIsImR1ciIsInNwbGljZSIsIm5leHRUaWNrIiwicGlwZSIsImNjaURvd25sb2FkIiwic3RhdFN5bmMiLCJkaXJlY3RvcnkiLCJiYXNlbmFtZSIsImkiLCJsb2ciLCJta2RpclN5bmMiLCJjY2lBcnRpZmFjdHNJbmZvSGFuZGxlciIsInN0YXR1c0NvZGUiLCJzdGF0dXNNZXNzYWdlIiwicHJlZml4ZXMiLCJhcnRpZmFjdHMiLCJuYW1lIiwiaXRlbSIsImZvdW5kIiwidXJscyIsImZvckVhY2giLCJpbmRleE9mIiwicHVzaCIsImFsbEZvdW5kIiwiY2NpQnVpbGRJbmZvSGFuZGxlciIsImJ1aWxkcyIsImluc3RhbGwiLCJvcmRlcl9ieSIsIndvcmtmbG93c19qb2JfbmFtZSIsImJ1aWxkIiwid29ya2Zsb3dzIiwiam9iX25hbWUiLCJidWlsZF9udW0iLCJfbmFtZSIsImFwaVBhdGgiLCJob3N0aW5nIiwib3JnYW5pc2F0aW9uIiwicHJvamVjdCIsImNjaV91cmwiLCJoZWFkZXJzIiwiQWNjZXB0IiwiX29wdGlvbnMiLCJyZWFkIiwiaWdub3JlX2JyYW5jaCIsImJyYW5jaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBTUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFTQSxJQUFNQSxVQUFTLEVBQWY7QUFDQSxJQUFJQyxnQkFBSixDLENBQWE7QUFDYixJQUFJQyxlQUFKLEMsQ0FBYTtBQUNiLElBQUlDLHNCQUFKLEMsQ0FBbUI7O0FBRW5CLElBQUlDLGtCQUFKLEMsQ0FBZTs7QUFFZixJQUFNQyxpQkFBaUIsU0FBakJBLGNBQWlCLENBQUNDLEdBQUQsRUFBNkI7QUFBQSxNQUF2QkMsV0FBdUIsdUVBQVQsSUFBUzs7QUFDbEQsTUFBSUQsSUFBSUUsSUFBUixFQUFjO0FBQ1osUUFBSTtBQUNGRixVQUFJRyxJQUFKLEdBQVdDLEtBQUtDLEtBQUwsQ0FBV0wsSUFBSUUsSUFBZixDQUFYO0FBQ0QsS0FGRCxDQUVFLE9BQU9JLENBQVAsRUFBVTtBQUNWTixVQUFJRyxJQUFKLEdBQVdGLFdBQVg7QUFDRDtBQUNGO0FBQ0YsQ0FSRDs7QUFVQSxJQUFNTSxlQUFlLFNBQWZBLFlBQWUsR0FBTTtBQUN6QixNQUFJWCxPQUFPWSxLQUFYLEVBQWtCO0FBQ2hCWixXQUFPYSxJQUFQLEdBQWNiLE9BQU9jLEtBQXJCO0FBQ0EsUUFBSWYsUUFBUWdCLE9BQVIsQ0FBZ0JDLEtBQWhCLENB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LENBQWEsbUJBQWI7QUFDQSxNQUFJbkIsUUFBUStGLE9BQVosRUFBcUI7QUFDbkJGLHdCQUFvQixJQUFwQixFQUEwQjtBQUN4Qlosa0JBQVksR0FEWTtBQUV4QnpFLFlBQU1DLEtBQUt3QyxTQUFMLENBQWUsQ0FBQyxFQUFFb0QsV0FBV3JHLFFBQVErRixPQUFyQixFQUFELENBQWY7QUFGa0IsS0FBMUI7QUFJQTtBQUNEO0FBQ0QsTUFBTVEsVUFDSnRHLE9BQU8rRyxhQUFQLEdBQ0ksQ0FBQyxtQkFBRCxFQUFzQi9HLE9BQU91RyxPQUE3QixFQUFzQ3ZHLE9BQU93RyxZQUE3QyxFQUEyRHhHLE9BQU95RyxPQUFsRSxFQUEyRXhFLElBQTNFLENBQWdGLEdBQWhGLENBREosR0FFSSxDQUFDLG1CQUFELEVBQXNCakMsT0FBT3VHLE9BQTdCLEVBQXNDdkcsT0FBT3dHLFlBQTdDLEVBQTJEeEcsT0FBT3lHLE9BQWxFLEVBQTJFLE1BQTNFLEVBQW1GekcsT0FBT2dILE1BQTFGLEVBQWtHL0UsSUFBbEcsQ0FBdUcsR0FBdkcsQ0FITjtBQUlBaEIsVUFBUTRELEdBQVIsQ0FBWSxpREFBaUQ3RSxPQUFPcUcsS0FBeEQsR0FBZ0UsR0FBNUU7QUFDQSx5QkFBUTtBQUNOcEMsWUFBUSxLQURGO0FBRU5YLFNBQVF0RCxPQUFPMEcsT0FBUCxHQUFpQkosT0FBekIsc0JBQWlEdEcsT0FBT2tFLEtBQXhELGlDQUZNO0FBR055QyxhQUFTLEVBQUVDLFFBQVEsa0JBQVYsRUFISDtBQUlOekMsYUFBU25FLE9BQU9tRSxPQUFQLEdBQWlCO0FBSnBCLEdBQVIsRUFLR3lCLG1CQUxIO0FBTUQsQ0EzQkQ7O2tCQTZCZTlGLE8iLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE1vZHVsZSBmb3IgdGFsa2luZyB0byBDQ0ksIGdldHRpbmcgdGhlIGFydGlmYWN0cywgZG93bmxvYWRpbmcgdGhlbSxcbi8vIHN0YXJ0aW5nIHRoZSBhY3Rpb24gc2NyaXB0LCBzYXZpbmcgdGhlIHVwZGF0ZWQgY29uZmlnIGZpbGUsIC4uLlxuLy9cbi8vIFRoZSB0YXNrLnJ1bigpIHNjaGVkdWxlcyBuZXh0IHJ1biBhcyBuZWVkZWQuXG4vLyBBbGwgZGlzayBvcGVyYXRpb25zIGFyZSBzeW5jaHJvbm91cy5cblxuaW1wb3J0IHJlcXVlc3QgZnJvbSAncmVxdWVzdCc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBzcGF3biB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IG9yZGVyQnkgZnJvbSAnbG9kYXNoLm9yZGVyYnknO1xuaW1wb3J0IGZpbHRlciBmcm9tICdsb2Rhc2guZmlsdGVyJztcblxuY29uc3QgbW9kdWxlID0ge307XG5sZXQgb3B0aW9uczsgLy8gc2V0IG9uY2UgYXQgZmlyc3QgcnVuKClcbmxldCBjb25maWc7ICAvLyByZS1yZWFkIGluIGVhY2ggaXRlcmF0aW9uXG5sZXQgZG93bmxvYWRFcnJvcjsgLy8gc3RvcCB0aGUgcHJvY2VzcyBpbiBjYXNlIGRvd25sb2FkIGZhaWxlZFxuXG5sZXQgRVhJVF9DT0RFOyAvLyByZXR1cm4gY29kZSBmb3IgJy0tcnVuLW9uY2UnIG1vZGVcblxuY29uc3QgdXBkYXRlUmVzcG9uc2UgPSAocmVzLCBkZWZhdWx0Qm9keSA9IG51bGwpID0+IHtcbiAgaWYgKHJlcy50ZXh0KSB7XG4gICAgdHJ5IHtcbiAgICAgIHJlcy5ib2R5ID0gSlNPTi5wYXJzZShyZXMudGV4dCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmVzLmJvZHkgPSBkZWZhdWx0Qm9keTtcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IHNjaGVkdWxlTmV4dCA9ICgpID0+IHtcbiAgaWYgKGNvbmZpZy5fc2F2ZSkge1xuICAgIGNvbmZpZy5sYXN0ID0gY29uZmlnLl9sYXN0O1xuICAgIGlmIChvcHRpb25zLmNmZ0ZpbGUud3JpdGUoY29uZmlnKSkge1xuICAgICAgY29uc29sZS5pbmZvKCdOZXcgY29uZmlndXJhdGlvbiBmaWxlIHJldmlzaW9uIHN1Y2Nlc3NmdWxseSBzYXZlZC4nKTtcbiAgICB9XG4gIH1cbiAgaWYgKG9wdGlvbnNbJ3J1bi1vbmNlJ10pIHtcbiAgICBjb25zb2xlLmluZm8oJ0NDSS1QSU5HVSBhYm91dCB0byBleGl0LiBUaGFua3MgZm9yIGZseWluZyB3aXRoIHVzIScpO1xuICAgIHByb2Nlc3MuZXhpdChFWElUX0NPREUpO1xuICB9IGVsc2Uge1xuICAgIHNldFRpbWVvdXQobW9kdWxlLnJ1biwgY29uZmlnLmludGVydmFsICogMTAwMCk7XG4gICAgY29uc29sZS5pbmZvKCdOZXh0IENDSSB0YXNrIHNjaGVkdWxlZCBpbiAnICsgY29uZmlnLmludGVydmFsICsgJyBzZWNvbmRzLicpO1xuICB9XG59O1xuXG5jb25zdCBsb2dQcmVmaXhlZCA9IChwcmVmaXgsIGxvZ0ZuKSA9PiAoZGF0YSkgPT4ge1xuICBsb2dGbihkYXRhLnRvU3RyaW5nKCkuc3BsaXQoJ1xcbicpLnNsaWNlKDAsIC0xKS5tYXAoKHMpID0+IGAke3ByZWZpeH0gJHtzfWApLmpvaW4oJ1xcbicpKTtcbn07XG5cbmNvbnN0IHN0YXJ0U2NyaXB0ID0gKCkgPT4ge1xuICBjb25zdCBzY3JpcHRGaWxlID0gcGF0aC5yZXNvbHZlKGNvbmZpZy5zY3JpcHQpO1xuICBjb25zb2xlLmluZm8oJ0V4ZWN1dGluZyBcIicgKyBzY3JpcHRGaWxlICsgJ1wiLicpO1xuICB0cnkge1xuICAgIGNvbnN0IHNjcmlwdCA9IHNwYXduKHNjcmlwdEZpbGUsIFtjb25maWcuX3RhcmdldCwgY29uZmlnLl9sYXN0XSwgeyBjd2Q6IHBhdGguZGlybmFtZShzY3JpcHRGaWxlKSB9KTtcbiAgICBzY3JpcHQuc3Rkb3V0Lm9uKCdkYXRhJywgbG9nUHJlZml4ZWQoJyonLCBjb25zb2xlLmluZm8pKTtcbiAgICBzY3JpcHQuc3RkZXJyLm9uKCdkYXRhJywgbG9nUHJlZml4ZWQoJyEnLCBjb25zb2xlLndhcm4pKTtcbiAgICBzY3JpcHQub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IHNjcmlwdCBcIicgKyBzY3JpcHRGaWxlICsgJ1wiLicpO1xuICAgICAgY29uc29sZS5lcnJvcihKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgfSk7XG4gICAgc2NyaXB0Lm9uKCdjbG9zZScsIChjb2RlKSA9PiB7XG4gICAgICBpZiAoIWNvZGUpIHsgLy8gc3VjY2Vzc1xuICAgICAgICBjb25zb2xlLmluZm8oJ0NDSSB0YXNrIHN1Y2Nlc3NmdWxseSBmaW5pc2hlZC4nKTtcbiAgICAgICAgY29uZmlnLl9zYXZlID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7IC8vIGZhaWxcbiAgICAgICAgY29uc29sZS5lcnJvcignSW5zdGFsbGF0aW9uIHNjcmlwdCBmYWlsZWQgd2l0aCBleGl0IGNvZGUgKCcgKyBjb2RlICsgJykuJyk7XG4gICAgICB9XG4gICAgICBFWElUX0NPREUgPSBjb2RlO1xuICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHsgLy8gc3Bhd24gY2FuIHRocm93IGV4Y2VwdGlvbnMgb24gaXRzIG93blxuICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBzY3JpcHQgXCInICsgc2NyaXB0RmlsZSArICdcIi4nKTtcbiAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7XG4gICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgc2NoZWR1bGVOZXh0KCk7XG4gIH1cbn07XG5cbmNvbnN0IGNjaURvd25sb2FkT25lID0gKCkgPT4ge1xuICBpZiAoIWNvbmZpZy5fdXJscy5sZW5ndGgpIHtcbiAgICBzdGFydFNjcmlwdCgpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHVybCA9IGNvbmZpZy5fdXJscy5wb3AoKTtcbiAgICBsZXQgZmlsZW5hbWUgPSB1cmwuc3BsaXQoJy8nKTtcbiAgICBmaWxlbmFtZSA9IGZpbGVuYW1lW2ZpbGVuYW1lLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IHN0cmVhbU5hbWUgPSBwYXRoLmpvaW4oY29uZmlnLl90YXJnZXQsIGRlY29kZVVSSUNvbXBvbmVudChmaWxlbmFtZSkpO1xuICAgIGNvbnN0IHN0cmVhbSA9IGZzLmNyZWF0ZVdyaXRlU3RyZWFtKHN0cmVhbU5hbWUpO1xuICAgIGNvbnNvbGUuaW5mbygnRG93bmxvYWRpbmcgXCInICsgZGVjb2RlVVJJQ29tcG9uZW50KHVybCkgKyAnXCIuJyk7XG4gICAgY29uc3Qgc3RhcnQgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xuICAgIGRvd25sb2FkRXJyb3IgPSBmYWxzZTtcbiAgICByZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IGAke3VybH0/Y2lyY2xlLXRva2VuPSR7Y29uZmlnLnRva2VufWAsXG4gICAgICB0aW1lb3V0OiBjb25maWcudGltZW91dCAqIDEwMDBcbiAgICB9KVxuICAgICAgLm9uKCdlcnJvcicsIChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRG93bmxvYWQgZmFpbGVkOiAnICsgSlNPTi5zdHJpbmdpZnkoZXJyKSArICcuJyk7XG4gICAgICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgICAgICBkb3dubG9hZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgICB9KVxuICAgICAgLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmIChkb3dubG9hZEVycm9yKSB7IHJldHVybjsgfVxuICAgICAgICBsZXQgZHVyID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAtIHN0YXJ0O1xuICAgICAgICBpZiAoZHVyID4gOTk5KSB7XG4gICAgICAgICAgZHVyID0gKCcnICsgZHVyKS5zcGxpdCgnJyk7XG4gICAgICAgICAgZHVyLnNwbGljZShkdXIubGVuZ3RoIC0gMywgMCwgJy4nKTtcbiAgICAgICAgICBkdXIgPSBkdXIuam9pbignJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5pbmZvKCdTYXZlZCBhcyBcIicgKyBzdHJlYW1OYW1lICsgJ1wiIGluICcgKyBkdXIgKyAnIG1zLicpO1xuICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGNjaURvd25sb2FkT25lKTtcbiAgICAgIH0pXG4gICAgICAucGlwZShzdHJlYW0pO1xuICB9XG59O1xuY29uc3QgY2NpRG93bmxvYWQgPSAoKSA9PiB7XG4gIC8vIGNyZWF0ZSB0YXJnZXQgZGlyZWN0b3J5XG4gIHRyeSB7XG4gICAgZnMuc3RhdFN5bmMoY29uZmlnLmRpcmVjdG9yeSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKCdEaXJlY3RvcnkgXCInICsgY29uZmlnLmRpcmVjdG9yeSArICdcIiBkb2VzIG5vdCBleGlzdCwgY2Fubm90IHdyaXRlIHRoZXJlLicpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBiYXNlbmFtZSA9ICdidWlsZC0nICsgY29uZmlnLl9sYXN0O1xuICBsZXQgZGlybmFtZTtcbiAgdHJ5IHtcbiAgICBsZXQgaSA9IDE7XG4gICAgd2hpbGUgKHRydWUpIHsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc3RhbnQtY29uZGl0aW9uXG4gICAgICBkaXJuYW1lID0gYmFzZW5hbWUgKyAoaSA+IDEgPyAnLicgKyBpIDogJycpO1xuICAgICAgZnMuc3RhdFN5bmMocGF0aC5qb2luKGNvbmZpZy5kaXJlY3RvcnksIGRpcm5hbWUpKTtcbiAgICAgIGkrKztcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBleGNlcHRpb24gaXMgZmluZVxuICB9XG4gIC8vIGNyZWF0ZSBuZXcgZGlyXG4gIGNvbmZpZy5fdGFyZ2V0ID0gcGF0aC5yZXNvbHZlKHBhdGguam9pbihjb25maWcuZGlyZWN0b3J5LCBkaXJuYW1lKSk7XG4gIGNvbnNvbGUubG9nKCdDcmVhdGluZyBhcnRpZmFjdCBkaXJlY3RvcnkgXCInICsgY29uZmlnLl90YXJnZXQgKyAnXCIuJyk7XG4gIHRyeSB7XG4gICAgZnMubWtkaXJTeW5jKGNvbmZpZy5fdGFyZ2V0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RhcmdldCBkaXJlY3RvcnkgXCInICsgY29uZmlnLl90YXJnZXQgKyAnXCIgY2Fubm90IGJlIGNyZWF0ZWQuJyk7XG4gICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gc3RhcnQgdGhlIGRvd25sb2Fkc1xuICBjY2lEb3dubG9hZE9uZSgpO1xufTtcblxuY29uc3QgY2NpQXJ0aWZhY3RzSW5mb0hhbmRsZXIgPSAoZXJyLCByZXMpID0+IHtcbiAgaWYgKGVycikge1xuICAgIGNvbnNvbGUuZXJyb3IoSlNPTi5zdHJpbmdpZnkoZXJyKSk7XG4gICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHVwZGF0ZVJlc3BvbnNlKHJlcywgW10pO1xuICBpZiAocmVzLnN0YXR1c0NvZGUgIT09IDIwMCkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1N0YXR1czogJyArIHJlcy5zdGF0dXNDb2RlICsgJywgJyArIHJlcy5zdGF0dXNNZXNzYWdlKTtcbiAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICBzY2hlZHVsZU5leHQoKTtcbiAgfSBlbHNlIHsgLy8gcmVzLm9rXG4gICAgbGV0IGJvZHk7XG4gICAgdHJ5IHtcbiAgICAgIGJvZHkgPSBKU09OLnBhcnNlKHJlcy5ib2R5KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYW5ub3QgcGFyc2UgcmVzcG9uc2UgZm9ybSB0aGUgc2VydmVyIScpO1xuICAgICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgICBzY2hlZHVsZU5leHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc29sZS5sb2coJ1Jlc3BvbnNlIGZyb20gQ0NJIHNlcnZlcjpcXG4nICsgSlNPTi5zdHJpbmdpZnkoYm9keSwgbnVsbCwgNCkpO1xuICAgIGNvbnN0IHByZWZpeGVzID0gY29uZmlnLmFydGlmYWN0cy5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4geyBuYW1lOiBpdGVtLCBmb3VuZDogZmFsc2UgfTtcbiAgICB9KTtcbiAgICBjb25zdCB1cmxzID0gW107XG4gICAgYm9keS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgcHJlZml4ZXMuZm9yRWFjaChwcmVmaXggPT4ge1xuICAgICAgICBpZiAoaXRlbS5wYXRoLmluZGV4T2YocHJlZml4Lm5hbWUpICE9PSAtMSkge1xuICAgICAgICAgIHVybHMucHVzaChpdGVtLnVybCk7XG4gICAgICAgICAgcHJlZml4LmZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc29sZS5sb2coJ0NvbGxlY3RlZCBhcnRpZmFjdCBVUkxzICh0byBkb3dubG9hZCk6XFxuJyArIEpTT04uc3RyaW5naWZ5KHVybHMsIG51bGwsIDQpKTtcbiAgICBsZXQgYWxsRm91bmQgPSB0cnVlO1xuICAgIHByZWZpeGVzLmZvckVhY2gocHJlZml4ID0+IHsgaWYgKCFwcmVmaXguZm91bmQpIHsgYWxsRm91bmQgPSBmYWxzZTsgfSB9KTtcbiAgICBpZiAoIWFsbEZvdW5kKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdOb3QgYWxsIGFydGlmYWN0cyBmb3VuZCEgTWlzc2luZzonKTtcbiAgICAgIHByZWZpeGVzLmZvckVhY2gocHJlZml4ID0+IHsgaWYgKCFwcmVmaXguZm91bmQpIHsgY29uc29sZS5lcnJvcignKyAnICsgcHJlZml4Lm5hbWUpOyB9IH0pO1xuICAgICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgICBzY2hlZHVsZU5leHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnLl91cmxzID0gdXJscztcbiAgICAgIGNjaURvd25sb2FkKCk7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCBjY2lCdWlsZEluZm9IYW5kbGVyID0gKGVyciwgcmVzKSA9PiB7XG4gIGlmIChlcnIpIHtcbiAgICBjb25zb2xlLmVycm9yKEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgIHJldHVybjtcbiAgfVxuICB1cGRhdGVSZXNwb25zZShyZXMpO1xuICBpZiAocmVzLnN0YXR1c0NvZGUgIT09IDIwMCkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1N0YXR1czogJyArIHJlcy5zdGF0dXNDb2RlICsgJywgJyArIHJlcy5zdGF0dXNNZXNzYWdlKTtcbiAgICBjb25zb2xlLndhcm4oJ0NDSSB0YXNrIGZpbmlzaGVkIHdpdGggZmFpbHVyZS4nKTtcbiAgICBzY2hlZHVsZU5leHQoKTtcbiAgfSBlbHNlIGlmICghcmVzLmJvZHkpIHtcbiAgICBjb25zb2xlLmVycm9yKCdObyByZXNwb25zZSBib2R5IGZvdW5kIScpO1xuICAgIGNvbnNvbGUud2FybignQ0NJIHRhc2sgZmluaXNoZWQgd2l0aCBmYWlsdXJlLicpO1xuICAgIHNjaGVkdWxlTmV4dCgpO1xuICB9IGVsc2UgeyAvLyByZXMub2tcbiAgICBsZXQgYnVpbGRzO1xuICAgIHRyeSB7XG4gICAgICBidWlsZHMgPSBKU09OLnBhcnNlKHJlcy5ib2R5KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYW5ub3QgcGFyc2UgcmVzcG9uc2UgZm9ybSB0aGUgc2VydmVyIScpO1xuICAgICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgICBzY2hlZHVsZU5leHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFidWlsZHMubGVuZ3RoKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdObyBzdWNjZXNzZnVsIGJ1aWxkIGZvdW5kIScpO1xuICAgICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgICBzY2hlZHVsZU5leHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLmluc3RhbGwpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdSZXNwb25zZSBmcm9tIENDSSBzZXJ2ZXI6XFxuJyArIEpTT04uc3RyaW5naWZ5KGJ1aWxkcywgbnVsbCwgNCkpO1xuICAgICAgYnVpbGRzID0gb3JkZXJCeShidWlsZHMsIFtjb25maWcub3JkZXJfYnldLCBbJ2Rlc2MnXSk7XG4gICAgICBpZiAoY29uZmlnLndvcmtmbG93c19qb2JfbmFtZSkge1xuICAgICAgICBjb25zb2xlLmxvZygnRmlsdGVyaW5nIHRoZSBhdmFpbGFibGUgc3VjY2Vzc2Z1bCBidWlsZHMgb24gd29ya2Zsb3dzIGpvYiBuYW1lID0gJyArIGNvbmZpZy53b3JrZmxvd3Nfam9iX25hbWUgKyAnLicpO1xuICAgICAgICBidWlsZHMgPSBmaWx0ZXIoYnVpbGRzLCAoYnVpbGQpID0+IChidWlsZC53b3JrZmxvd3MgJiYgKGJ1aWxkLndvcmtmbG93cy5qb2JfbmFtZSA9PT0gY29uZmlnLndvcmtmbG93c19qb2JfbmFtZSkpKTtcbiAgICAgICAgaWYgKCFidWlsZHMubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignTm8gc3VjY2Vzc2Z1bCBidWlsZCB3aXRoIHNwZWNpZmllZCB3b3JrZmxvd3Mgam9iIG5hbWUgZm91bmQhJyk7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdDQ0kgdGFzayBmaW5pc2hlZCB3aXRoIGZhaWx1cmUuJyk7XG4gICAgICAgICAgc2NoZWR1bGVOZXh0KCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbmZpZy5fbGFzdCA9IGJ1aWxkc1swXS5idWlsZF9udW07XG4gICAgIW9wdGlvbnMuaW5zdGFsbCAmJiBjb25zb2xlLmluZm8oJ0xhc3Qgc3VjY2Vzc2Z1bCAnICsgY29uZmlnLl9uYW1lICsgJyBidWlsZCBudW1iZXI6ICcgKyBjb25maWcuX2xhc3QgKyAnLicpO1xuICAgIGlmICghb3B0aW9ucy5pbnN0YWxsICYmIChjb25maWcubGFzdCA9PT0gY29uZmlnLl9sYXN0KSkge1xuICAgICAgY29uc29sZS5pbmZvKCdCdWlsZCAnICsgY29uZmlnLl9sYXN0ICsgJyBhbHJlYWR5IGluc3RhbGxlZC4nKTtcbiAgICAgIGNvbnNvbGUuaW5mbygnQ0NJIHRhc2sgc3VjY2Vzc2Z1bGx5IGZpbmlzaGVkLicpO1xuICAgICAgRVhJVF9DT0RFID0gMDtcbiAgICAgIHNjaGVkdWxlTmV4dCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5pbnN0YWxsICYmIChjb25maWcubGFzdCA9PT0gY29uZmlnLl9sYXN0KSkge1xuICAgICAgICBjb25zb2xlLmluZm8oJ0J1aWxkICcgKyBjb25maWcuX2xhc3QgKyAnIGFscmVhZHkgaW5zdGFsbGVkLCBhYm91dCB0byBpbnN0YWxsIGl0IGFnYWluLi4uJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmluZm8oJ0J1aWxkICcgKyBjb25maWcuX2xhc3QgKyAnIGlzIG5vdCBpbnN0YWxsZWQgeWV0LicpO1xuICAgICAgfVxuICAgICAgY29uc3QgYXBpUGF0aCA9IFsnL2FwaS92MS4xL3Byb2plY3QnLCBjb25maWcuaG9zdGluZywgY29uZmlnLm9yZ2FuaXNhdGlvbixcbiAgICAgICAgY29uZmlnLnByb2plY3QsIGNvbmZpZy5fbGFzdCwgJ2FydGlmYWN0cyddLmpvaW4oJy8nKTtcbiAgICAgIGNvbnNvbGUubG9nKCdHZXR0aW5nIGluZm8gYWJvdXQgYnVpbGQgJyArIGNvbmZpZy5fbGFzdCArICcgYXJ0aWZhY3RzLicpO1xuICAgICAgcmVxdWVzdCh7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHVybDogYCR7Y29uZmlnLmNjaV91cmwgKyBhcGlQYXRofT9jaXJjbGUtdG9rZW49JHtjb25maWcudG9rZW59YCxcbiAgICAgICAgaGVhZGVyczogeyBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgICB0aW1lb3V0OiBjb25maWcudGltZW91dCAqIDEwMDBcbiAgICAgIH0sIGNjaUFydGlmYWN0c0luZm9IYW5kbGVyKTtcbiAgICB9XG4gIH1cbn07XG5cbm1vZHVsZS5ydW4gPSAoX29wdGlvbnMgPSBudWxsKSA9PiB7XG4gIEVYSVRfQ09ERSA9IDE7ICAgLy8gdXBkYXRlIHRvIDAgb24gZmluYWwgc3VjY2Vzc1xuICBpZiAoX29wdGlvbnMpIHsgb3B0aW9ucyA9IF9vcHRpb25zOyB9XG4gIGNvbmZpZyA9IG9wdGlvbnMuY2ZnRmlsZS5yZWFkKCk7XG4gIGlmIChjb25maWcuaWdub3JlX2JyYW5jaCkge1xuICAgIGNvbmZpZy5icmFuY2ggPSAnPEFOWT4nO1xuICB9XG4gIGNvbmZpZy5fbmFtZSA9IFtjb25maWcuaG9zdGluZywgY29uZmlnLm9yZ2FuaXNhdGlvbiwgY29uZmlnLnByb2plY3QsIGNvbmZpZy5icmFuY2hdLmpvaW4oJy8nKTtcbiAgY29uc29sZS5pbmZvKCdDQ0kgdGFzayBzdGFydGVkLicpO1xuICBpZiAob3B0aW9ucy5pbnN0YWxsKSB7XG4gICAgY2NpQnVpbGRJbmZvSGFuZGxlcihudWxsLCB7XG4gICAgICBzdGF0dXNDb2RlOiAyMDAsXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShbeyBidWlsZF9udW06IG9wdGlvbnMuaW5zdGFsbCB9XSlcbiAgICB9KTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgYXBpUGF0aCA9XG4gICAgY29uZmlnLmlnbm9yZV9icmFuY2hcbiAgICAgID8gWycvYXBpL3YxLjEvcHJvamVjdCcsIGNvbmZpZy5ob3N0aW5nLCBjb25maWcub3JnYW5pc2F0aW9uLCBjb25maWcucHJvamVjdF0uam9pbignLycpXG4gICAgICA6IFsnL2FwaS92MS4xL3Byb2plY3QnLCBjb25maWcuaG9zdGluZywgY29uZmlnLm9yZ2FuaXNhdGlvbiwgY29uZmlnLnByb2plY3QsICd0cmVlJywgY29uZmlnLmJyYW5jaF0uam9pbignLycpO1xuICBjb25zb2xlLmxvZygnR2V0dGluZyBpbmZvIGFib3V0IGxhc3Qgc3VjY2Vzc2Z1bCBidWlsZCBvZiAnICsgY29uZmlnLl9uYW1lICsgJy4nKTtcbiAgcmVxdWVzdCh7XG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICB1cmw6IGAke2NvbmZpZy5jY2lfdXJsICsgYXBpUGF0aH0/Y2lyY2xlLXRva2VuPSR7Y29uZmlnLnRva2VufSZmaWx0ZXI9c3VjY2Vzc2Z1bCZsaW1pdD0xMDBgLFxuICAgIGhlYWRlcnM6IHsgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICB0aW1lb3V0OiBjb25maWcudGltZW91dCAqIDEwMDBcbiAgfSwgY2NpQnVpbGRJbmZvSGFuZGxlcik7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGU7XG4iXX0= |
@@ -7,3 +7,3 @@ 'use strict'; | ||
// generated code, please see package.json | ||
exports.default = '2.8.0'; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi92ZXJzaW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7a0JBQ2UsTyIsImZpbGUiOiJ2ZXJzaW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGNvZGUsIHBsZWFzZSBzZWUgcGFja2FnZS5qc29uXG5leHBvcnQgZGVmYXVsdCAnMi44LjAnO1xuIl19 | ||
exports.default = '2.8.1'; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi92ZXJzaW9uLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7a0JBQ2UsTyIsImZpbGUiOiJ2ZXJzaW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGNvZGUsIHBsZWFzZSBzZWUgcGFja2FnZS5qc29uXG5leHBvcnQgZGVmYXVsdCAnMi44LjEnO1xuIl19 |
{ | ||
"name": "cci-pingu", | ||
"version": "2.8.0", | ||
"version": "2.8.1", | ||
"description": "Periodically check for new builds (artifacts) on CircleCI and install them in turn", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
93050
701