israeli-bank-scrapers 2.2.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -129,11 +129,12 @@ function convertTransactions(txns, processedDate) {
129
129
  const isOutbound = txn.dealSumOutbound;
130
130
  const txnDateStr = isOutbound ? txn.fullPurchaseDateOutbound : txn.fullPurchaseDate;
131
131
  const txnMoment = (0, _moment.default)(txnDateStr, DATE_FORMAT);
132
+ const currentProcessedDate = txn.fullPaymentDate ? (0, _moment.default)(txn.fullPaymentDate, DATE_FORMAT).toISOString() : processedDate;
132
133
  const result = {
133
134
  type: getTransactionType(txn),
134
135
  identifier: parseInt(isOutbound ? txn.voucherNumberRatzOutbound : txn.voucherNumberRatz, 10),
135
136
  date: txnMoment.toISOString(),
136
- processedDate,
137
+ processedDate: currentProcessedDate,
137
138
  originalAmount: isOutbound ? -txn.dealSumOutbound : -txn.dealSum,
138
139
  originalCurrency: convertCurrency(txn.currencyId),
139
140
  chargedAmount: isOutbound ? -txn.paymentSumOutbound : -txn.paymentSum,
@@ -337,4 +338,4 @@ class IsracardAmexBaseScraper extends _baseScraperWithBrowser.BaseScraperWithBro
337
338
 
338
339
  var _default = IsracardAmexBaseScraper;
339
340
  exports.default = _default;
340
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLWlzcmFjYXJkLWFtZXgudHMiXSwibmFtZXMiOlsiQ09VTlRSWV9DT0RFIiwiSURfVFlQRSIsIklOU1RBTExNRU5UU19LRVlXT1JEIiwiREFURV9GT1JNQVQiLCJkZWJ1ZyIsImdldEFjY291bnRzVXJsIiwic2VydmljZXNVcmwiLCJtb250aE1vbWVudCIsImJpbGxpbmdEYXRlIiwiZm9ybWF0IiwicXVlcnlQYXJhbXMiLCJyZXFOYW1lIiwiYWN0aW9uQ29kZSIsImZldGNoQWNjb3VudHMiLCJwYWdlIiwiZGF0YVVybCIsImRhdGFSZXN1bHQiLCJfIiwiZ2V0IiwiRGFzaGJvYXJkTW9udGhCZWFuIiwiY2FyZHNDaGFyZ2VzIiwibWFwIiwiY2FyZENoYXJnZSIsImluZGV4IiwicGFyc2VJbnQiLCJjYXJkSW5kZXgiLCJhY2NvdW50TnVtYmVyIiwiY2FyZE51bWJlciIsInByb2Nlc3NlZERhdGUiLCJ0b0lTT1N0cmluZyIsImdldFRyYW5zYWN0aW9uc1VybCIsIm1vbnRoIiwieWVhciIsIm1vbnRoU3RyIiwidG9TdHJpbmciLCJyZXF1aXJlZERhdGUiLCJjb252ZXJ0Q3VycmVuY3kiLCJjdXJyZW5jeVN0ciIsIlNIRUtFTF9DVVJSRU5DWV9LRVlXT1JEIiwiQUxUX1NIRUtFTF9DVVJSRU5DWSIsIlNIRUtFTF9DVVJSRU5DWSIsImdldEluc3RhbGxtZW50c0luZm8iLCJ0eG4iLCJtb3JlSW5mbyIsImluY2x1ZGVzIiwidW5kZWZpbmVkIiwibWF0Y2hlcyIsIm1hdGNoIiwibGVuZ3RoIiwibnVtYmVyIiwidG90YWwiLCJnZXRUcmFuc2FjdGlvblR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiSW5zdGFsbG1lbnRzIiwiTm9ybWFsIiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJmaWx0ZXJlZFR4bnMiLCJmaWx0ZXIiLCJkZWFsU3VtVHlwZSIsInZvdWNoZXJOdW1iZXJSYXR6Iiwidm91Y2hlck51bWJlclJhdHpPdXRib3VuZCIsImlzT3V0Ym91bmQiLCJkZWFsU3VtT3V0Ym91bmQiLCJ0eG5EYXRlU3RyIiwiZnVsbFB1cmNoYXNlRGF0ZU91dGJvdW5kIiwiZnVsbFB1cmNoYXNlRGF0ZSIsInR4bk1vbWVudCIsInJlc3VsdCIsInR5cGUiLCJpZGVudGlmaWVyIiwiZGF0ZSIsIm9yaWdpbmFsQW1vdW50IiwiZGVhbFN1bSIsIm9yaWdpbmFsQ3VycmVuY3kiLCJjdXJyZW5jeUlkIiwiY2hhcmdlZEFtb3VudCIsInBheW1lbnRTdW1PdXRib3VuZCIsInBheW1lbnRTdW0iLCJkZXNjcmlwdGlvbiIsImZ1bGxTdXBwbGllck5hbWVPdXRib3VuZCIsImZ1bGxTdXBwbGllck5hbWVIZWIiLCJtZW1vIiwiaW5zdGFsbG1lbnRzIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImZldGNoVHJhbnNhY3Rpb25zIiwib3B0aW9ucyIsInN0YXJ0TW9tZW50IiwiYWNjb3VudHMiLCJDYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuIiwiYWNjb3VudFR4bnMiLCJmb3JFYWNoIiwiYWNjb3VudCIsInR4bkdyb3VwcyIsImFsbFR4bnMiLCJ0eG5Hcm91cCIsInR4bklzcmFlbCIsInB1c2giLCJ0eG5BYnJvYWQiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiZmV0Y2hBbGxUcmFuc2FjdGlvbnMiLCJmdXR1cmVNb250aHNUb1NjcmFwZSIsImFsbE1vbnRocyIsInJlc3VsdHMiLCJQcm9taXNlIiwiYWxsIiwiY29tYmluZWRUeG5zIiwiT2JqZWN0Iiwia2V5cyIsInR4bnNGb3JBY2NvdW50IiwidG9CZUFkZGVkVHhucyIsInN1Y2Nlc3MiLCJJc3JhY2FyZEFtZXhCYXNlU2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJjb25zdHJ1Y3RvciIsImJhc2VVcmwiLCJjb21wYW55Q29kZSIsImxvZ2luIiwiY3JlZGVudGlhbHMiLCJzZXRSZXF1ZXN0SW50ZXJjZXB0aW9uIiwib24iLCJyZXF1ZXN0IiwidXJsIiwiYWJvcnQiLCJjb250aW51ZSIsIm5hdmlnYXRlVG8iLCJlbWl0UHJvZ3Jlc3MiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiTG9nZ2luZ0luIiwidmFsaWRhdGVVcmwiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJpZCIsImNhcmRTdWZmaXgiLCJjYXJkNkRpZ2l0cyIsImNvdW50cnlDb2RlIiwiaWRUeXBlIiwiY2hlY2tMZXZlbCIsInZhbGlkYXRlUmVzdWx0IiwiSGVhZGVyIiwiU3RhdHVzIiwiVmFsaWRhdGVJZERhdGFCZWFuIiwiRXJyb3IiLCJ2YWxpZGF0ZVJldHVybkNvZGUiLCJyZXR1cm5Db2RlIiwidXNlck5hbWUiLCJsb2dpblVybCIsIktvZE1pc2h0YW1lc2giLCJNaXNwYXJaaWh1eSIsIlNpc21hIiwicGFzc3dvcmQiLCJsb2dpblJlc3VsdCIsIkxvZ2luU3VjY2VzcyIsIkNoYW5nZVBhc3N3b3JkIiwiZXJyb3JUeXBlIiwiU2NyYXBlckVycm9yVHlwZXMiLCJMb2dpbkZhaWxlZCIsIkludmFsaWRQYXNzd29yZCIsImZldGNoRGF0YSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwibW9tZW50IiwibWF4Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUtBOztBQUNBOztBQUNBOztBQUlBOztBQUtBOzs7Ozs7Ozs7O0FBRUEsTUFBTUEsWUFBWSxHQUFHLEtBQXJCO0FBQ0EsTUFBTUMsT0FBTyxHQUFHLEdBQWhCO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUcsT0FBN0I7QUFFQSxNQUFNQyxXQUFXLEdBQUcsWUFBcEI7QUFFQSxNQUFNQyxLQUFLLEdBQUcscUJBQVMsb0JBQVQsQ0FBZDs7QUFxRUEsU0FBU0MsY0FBVCxDQUF3QkMsV0FBeEIsRUFBNkNDLFdBQTdDLEVBQWtFO0FBQ2hFLFFBQU1DLFdBQVcsR0FBR0QsV0FBVyxDQUFDRSxNQUFaLENBQW1CLFlBQW5CLENBQXBCO0FBQ0Es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QixjQUF0QztBQUNBLGFBQU87QUFDTHpDLFFBQUFBLE9BQU8sRUFBRSxLQURKO0FBRUwwQyxRQUFBQSxTQUFTLEVBQUVDLCtCQUFrQkY7QUFGeEIsT0FBUDtBQUlEOztBQUVELFNBQUsxQixZQUFMLENBQWtCQyxpQ0FBb0I0QixXQUF0QztBQUNBLFdBQU87QUFDTDVDLE1BQUFBLE9BQU8sRUFBRSxLQURKO0FBRUwwQyxNQUFBQSxTQUFTLEVBQUVDLCtCQUFrQkU7QUFGeEIsS0FBUDtBQUlEOztBQUVELFFBQU1DLFNBQU4sR0FBa0I7QUFDaEIsVUFBTUMsa0JBQWtCLEdBQUcsdUJBQVNDLFFBQVQsQ0FBa0IsQ0FBbEIsRUFBcUIsT0FBckIsQ0FBM0I7QUFDQSxVQUFNQyxTQUFTLEdBQUcsS0FBSzFFLE9BQUwsQ0FBYTBFLFNBQWIsSUFBMEJGLGtCQUFrQixDQUFDRyxNQUFuQixFQUE1Qzs7QUFDQSxVQUFNMUUsV0FBVyxHQUFHMkUsZ0JBQU9DLEdBQVAsQ0FBV0wsa0JBQVgsRUFBK0IscUJBQU9FLFNBQVAsQ0FBL0IsQ0FBcEI7O0FBRUEsV0FBTzVELG9CQUFvQixDQUFDLEtBQUt4RixJQUFOLG9CQUN0QixLQUFLMEUsT0FEaUI7QUFFekJsRixNQUFBQSxXQUFXLEVBQUUsS0FBS0EsV0FGTztBQUd6QmdILE1BQUFBLFdBQVcsRUFBRSxLQUFLQTtBQUhPLFFBSXhCN0IsV0FKd0IsQ0FBM0I7QUFLRDs7QUEzRzBEOztlQThHOUN5Qix1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgYnVpbGRVcmwgZnJvbSAnYnVpbGQtdXJsJztcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcblxuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSwgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHtcbiAgU0hFS0VMX0NVUlJFTkNZX0tFWVdPUkQsXG4gIFNIRUtFTF9DVVJSRU5DWSxcbiAgQUxUX1NIRUtFTF9DVVJSRU5DWSxcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBnZXRBbGxNb250aE1vbWVudHMgZnJvbSAnLi4vaGVscGVycy9kYXRlcyc7XG5pbXBvcnQgeyBmaXhJbnN0YWxsbWVudHMsIGZpbHRlck9sZFRyYW5zYWN0aW9ucyB9IGZyb20gJy4uL2hlbHBlcnMvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uc0FjY291bnQsIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyxcbiAgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7XG4gIFNjcmFwZXJFcnJvclR5cGVzLFxuICBTY3JhcGVyT3B0aW9ucywgU2NhcGVyU2NyYXBpbmdSZXN1bHQsIFNjYXBlclByb2dyZXNzVHlwZXMsXG4gIFNjcmFwZXJDcmVkZW50aWFscyxcbn0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcblxuY29uc3QgQ09VTlRSWV9DT0RFID0gJzIxMic7XG5jb25zdCBJRF9UWVBFID0gJzEnO1xuY29uc3QgSU5TVEFMTE1FTlRTX0tFWVdPUkQgPSAn16rXqdec15XXnSc7XG5cbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCdiYXNlLWlzcmFjYXJkLWFtZXgnKTtcblxuaW50ZXJmYWNlIEV4dGVuZGVkU2NyYXBlck9wdGlvbnMgZXh0ZW5kcyBTY3JhcGVyT3B0aW9ucyB7XG4gIHNlcnZpY2VzVXJsOiBzdHJpbmc7XG4gIGNvbXBhbnlDb2RlOiBzdHJpbmc7XG59XG5cbnR5cGUgU2NyYXBlZEFjY291bnRzV2l0aEluZGV4ID0gUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25zQWNjb3VudCAmIHsgaW5kZXg6IG51bWJlciB9PjtcblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIGRlYWxTdW1UeXBlOiBzdHJpbmc7XG4gIHZvdWNoZXJOdW1iZXJSYXR6T3V0Ym91bmQ6IHN0cmluZztcbiAgdm91Y2hlck51bWJlclJhdHo6IHN0cmluZztcbiAgbW9yZUluZm8/OiBzdHJpbmc7XG4gIGRlYWxTdW1PdXRib3VuZDogYm9vbGVhbjtcbiAgY3VycmVuY3lJZDogc3RyaW5nO1xuICBkZWFsU3VtOiBudW1iZXI7XG4gIGZ1bGxQdXJjaGFzZURhdGU/OiBzdHJpbmc7XG4gIGZ1bGxQdXJjaGFzZURhdGVPdXRib3VuZD86IHN0cmluZztcbiAgZnVsbFN1cHBsaWVyTmFtZUhlYjogc3RyaW5nO1xuICBmdWxsU3VwcGxpZXJOYW1lT3V0Ym91bmQ6IHN0cmluZztcbiAgcGF5bWVudFN1bTogbnVtYmVyO1xuICBwYXltZW50U3VtT3V0Ym91bmQ6IG51bWJlcjtcbn1cblxuXG5pbnRlcmZhY2UgU2NyYXBlZEFjY291bnQge1xuICBpbmRleDogbnVtYmVyO1xuICBhY2NvdW50TnVtYmVyOiBzdHJpbmc7XG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRMb2dpblZhbGlkYXRpb24ge1xuICBIZWFkZXI6IHtcbiAgICBTdGF0dXM6IHN0cmluZztcbiAgfTtcbiAgVmFsaWRhdGVJZERhdGFCZWFuPzoge1xuICAgIHVzZXJOYW1lPzogc3RyaW5nO1xuICAgIHJldHVybkNvZGU6IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRBY2NvdW50c1dpdGhpblBhZ2VSZXNwb25zZSB7XG4gIEhlYWRlcjoge1xuICAgIFN0YXR1czogc3RyaW5nO1xuICB9O1xuICBEYXNoYm9hcmRNb250aEJlYW4/OiB7XG4gICAgY2FyZHNDaGFyZ2VzOiB7XG4gICAgICBjYXJkSW5kZXg6IHN0cmluZztcbiAgICAgIGNhcmROdW1iZXI6IHN0cmluZztcbiAgICAgIGJpbGxpbmdEYXRlOiBzdHJpbmc7XG4gICAgfVtdO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZEN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zIHtcbiAgdHhuSXNyYWVsPzogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gIHR4bkFicm9hZD86IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uRGF0YSB7XG4gIEhlYWRlcj86IHtcbiAgICBTdGF0dXM6IHN0cmluZztcbiAgfTtcbiAgQ2FyZHNUcmFuc2FjdGlvbnNMaXN0QmVhbj86IFJlY29yZDxzdHJpbmcsIHtcbiAgICBDdXJyZW50Q2FyZFRyYW5zYWN0aW9uczogU2NyYXBlZEN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zW107XG4gIH0+O1xufVxuXG5mdW5jdGlvbiBnZXRBY2NvdW50c1VybChzZXJ2aWNlc1VybDogc3RyaW5nLCBtb250aE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IGJpbGxpbmdEYXRlID0gbW9udGhNb21lbnQuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gIHJldHVybiBidWlsZFVybChzZXJ2aWNlc1VybCwge1xuICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICByZXFOYW1lOiAnRGFzaGJvYXJkTW9udGgnLFxuICAgICAgYWN0aW9uQ29kZTogJzAnLFxuICAgICAgYmlsbGluZ0RhdGUsXG4gICAgICBmb3JtYXQ6ICdKc29uJyxcbiAgICB9LFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBY2NvdW50cyhwYWdlOiBQYWdlLCBzZXJ2aWNlc1VybDogc3RyaW5nLCBtb250aE1vbWVudDogTW9tZW50KTogUHJvbWlzZTxTY3JhcGVkQWNjb3VudFtdPiB7XG4gIGNvbnN0IGRhdGFVcmwgPSBnZXRBY2NvdW50c1VybChzZXJ2aWNlc1VybCwgbW9udGhNb21lbnQpO1xuICBjb25zdCBkYXRhUmVzdWx0ID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRBY2NvdW50c1dpdGhpblBhZ2VSZXNwb25zZT4ocGFnZSwgZGF0YVVybCk7XG4gIGlmIChkYXRhUmVzdWx0ICYmIF8uZ2V0KGRhdGFSZXN1bHQsICdIZWFkZXIuU3RhdHVzJykgPT09ICcxJyAmJiBkYXRhUmVzdWx0LkRhc2hib2FyZE1vbnRoQmVhbikge1xuICAgIGNvbnN0IHsgY2FyZHNDaGFyZ2VzIH0gPSBkYXRhUmVzdWx0LkRhc2hib2FyZE1vbnRoQmVhbjtcbiAgICBpZiAoY2FyZHNDaGFyZ2VzKSB7XG4gICAgICByZXR1cm4gY2FyZHNDaGFyZ2VzLm1hcCgoY2FyZENoYXJnZSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGluZGV4OiBwYXJzZUludChjYXJkQ2hhcmdlLmNhcmRJbmRleCwgMTApLFxuICAgICAgICAgIGFjY291bnROdW1iZXI6IGNhcmRDaGFyZ2UuY2FyZE51bWJlcixcbiAgICAgICAgICBwcm9jZXNzZWREYXRlOiBtb21lbnQoY2FyZENoYXJnZS5iaWxsaW5nRGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFtdO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbnNVcmwoc2VydmljZXNVcmw6IHN0cmluZywgbW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCBtb250aCA9IG1vbnRoTW9tZW50Lm1vbnRoKCkgKyAxO1xuICBjb25zdCB5ZWFyID0gbW9udGhNb21lbnQueWVhcigpO1xuICBjb25zdCBtb250aFN0ciA9IG1vbnRoIDwgMTAgPyBgMCR7bW9udGh9YCA6IG1vbnRoLnRvU3RyaW5nKCk7XG4gIHJldHVybiBidWlsZFVybChzZXJ2aWNlc1VybCwge1xuICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICByZXFOYW1lOiAnQ2FyZHNUcmFuc2FjdGlvbnNMaXN0JyxcbiAgICAgIG1vbnRoOiBtb250aFN0cixcbiAgICAgIHllYXI6IGAke3llYXJ9YCxcbiAgICAgIHJlcXVpcmVkRGF0ZTogJ04nLFxuICAgIH0sXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0Q3VycmVuY3koY3VycmVuY3lTdHI6IHN0cmluZykge1xuICBpZiAoY3VycmVuY3lTdHIgPT09IFNIRUtFTF9DVVJSRU5DWV9LRVlXT1JEIHx8IGN1cnJlbmN5U3RyID09PSBBTFRfU0hFS0VMX0NVUlJFTkNZKSB7XG4gICAgcmV0dXJuIFNIRUtFTF9DVVJSRU5DWTtcbiAgfVxuICByZXR1cm4gY3VycmVuY3lTdHI7XG59XG5cbmZ1bmN0aW9uIGdldEluc3RhbGxtZW50c0luZm8odHhuOiBTY3JhcGVkVHJhbnNhY3Rpb24pOiBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyB8IHVuZGVmaW5lZCB7XG4gIGlmICghdHhuLm1vcmVJbmZvIHx8ICF0eG4ubW9yZUluZm8uaW5jbHVkZXMoSU5TVEFMTE1FTlRTX0tFWVdPUkQpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gdHhuLm1vcmVJbmZvLm1hdGNoKC9cXGQrL2cpO1xuICBpZiAoIW1hdGNoZXMgfHwgbWF0Y2hlcy5sZW5ndGggPCAyKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbnVtYmVyOiBwYXJzZUludChtYXRjaGVzWzBdLCAxMCksXG4gICAgdG90YWw6IHBhcnNlSW50KG1hdGNoZXNbMV0sIDEwKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25UeXBlKHR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKSB7XG4gIHJldHVybiBnZXRJbnN0YWxsbWVudHNJbmZvKHR4bikgPyBUcmFuc2FjdGlvblR5cGVzLkluc3RhbGxtZW50cyA6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdLCBwcm9jZXNzZWREYXRlOiBzdHJpbmcpOiBUcmFuc2FjdGlvbltdIHtcbiAgY29uc3QgZmlsdGVyZWRUeG5zID0gdHhucy5maWx0ZXIoKHR4bikgPT4gdHhuLmRlYWxTdW1UeXBlICE9PSAnMScgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHhuLnZvdWNoZXJOdW1iZXJSYXR6ICE9PSAnMDAwMDAwMDAwJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eG4udm91Y2hlck51bWJlclJhdHpPdXRib3VuZCAhPT0gJzAwMDAwMDAwMCcpO1xuXG4gIHJldHVybiBmaWx0ZXJlZFR4bnMubWFwKCh0eG4pID0+IHtcbiAgICBjb25zdCBpc091dGJvdW5kID0gdHhuLmRlYWxTdW1PdXRib3VuZDtcbiAgICBjb25zdCB0eG5EYXRlU3RyID0gaXNPdXRib3VuZCA/IHR4bi5mdWxsUHVyY2hhc2VEYXRlT3V0Ym91bmQgOiB0eG4uZnVsbFB1cmNoYXNlRGF0ZTtcbiAgICBjb25zdCB0eG5Nb21lbnQgPSBtb21lbnQodHhuRGF0ZVN0ciwgREFURV9GT1JNQVQpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIHR5cGU6IGdldFRyYW5zYWN0aW9uVHlwZSh0eG4pLFxuICAgICAgaWRlbnRpZmllcjogcGFyc2VJbnQoaXNPdXRib3VuZCA/IHR4bi52b3VjaGVyTnVtYmVyUmF0ek91dGJvdW5kIDogdHhuLnZvdWNoZXJOdW1iZXJSYXR6LCAxMCksXG4gICAgICBkYXRlOiB0eG5Nb21lbnQudG9JU09TdHJpbmcoKSxcbiAgICAgIHByb2Nlc3NlZERhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogaXNPdXRib3VuZCA/IC10eG4uZGVhbFN1bU91dGJvdW5kIDogLXR4bi5kZWFsU3VtLFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogY29udmVydEN1cnJlbmN5KHR4bi5jdXJyZW5jeUlkKSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGlzT3V0Ym91bmQgPyAtdHhuLnBheW1lbnRTdW1PdXRib3VuZCA6IC10eG4ucGF5bWVudFN1bSxcbiAgICAgIGRlc2NyaXB0aW9uOiBpc091dGJvdW5kID8gdHhuLmZ1bGxTdXBwbGllck5hbWVPdXRib3VuZCA6IHR4bi5mdWxsU3VwcGxpZXJOYW1lSGViLFxuICAgICAgbWVtbzogdHhuLm1vcmVJbmZvIHx8ICcnLFxuICAgICAgaW5zdGFsbG1lbnRzOiBnZXRJbnN0YWxsbWVudHNJbmZvKHR4bikgfHwgdW5kZWZpbmVkLFxuICAgICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIHN0YXJ0TW9tZW50OiBNb21lbnQsIG1vbnRoTW9tZW50OiBNb21lbnQpOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleD4ge1xuICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IGZldGNoQWNjb3VudHMocGFnZSwgb3B0aW9ucy5zZXJ2aWNlc1VybCwgbW9udGhNb21lbnQpO1xuICBjb25zdCBkYXRhVXJsID0gZ2V0VHJhbnNhY3Rpb25zVXJsKG9wdGlvbnMuc2VydmljZXNVcmwsIG1vbnRoTW9tZW50KTtcbiAgY29uc3QgZGF0YVJlc3VsdCA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkVHJhbnNhY3Rpb25EYXRhPihwYWdlLCBkYXRhVXJsKTtcbiAgaWYgKGRhdGFSZXN1bHQgJiYgXy5nZXQoZGF0YVJlc3VsdCwgJ0hlYWRlci5TdGF0dXMnKSA9PT0gJzEnICYmIGRhdGFSZXN1bHQuQ2FyZHNUcmFuc2FjdGlvbnNMaXN0QmVhbikge1xuICAgIGNvbnN0IGFjY291bnRUeG5zOiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXggPSB7fTtcbiAgICBhY2NvdW50cy5mb3JFYWNoKChhY2NvdW50KSA9PiB7XG4gICAgICBjb25zdCB0eG5Hcm91cHM6IFNjcmFwZWRDdXJyZW50Q2FyZFRyYW5zYWN0aW9uc1tdID0gXy5nZXQoZGF0YVJlc3VsdCwgYENhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4uSW5kZXgke2FjY291bnQuaW5kZXh9LkN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zYCk7XG4gICAgICBpZiAodHhuR3JvdXBzKSB7XG4gICAgICAgIGxldCBhbGxUeG5zOiBUcmFuc2FjdGlvbltdID0gW107XG4gICAgICAgIHR4bkdyb3Vwcy5mb3JFYWNoKCh0eG5Hcm91cCkgPT4ge1xuICAgICAgICAgIGlmICh0eG5Hcm91cC50eG5Jc3JhZWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHR4bnMgPSBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bkdyb3VwLnR4bklzcmFlbCwgYWNjb3VudC5wcm9jZXNzZWREYXRlKTtcbiAgICAgICAgICAgIGFsbFR4bnMucHVzaCguLi50eG5zKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR4bkdyb3VwLnR4bkFicm9hZCkge1xuICAgICAgICAgICAgY29uc3QgdHhucyA9IGNvbnZlcnRUcmFuc2FjdGlvbnModHhuR3JvdXAudHhuQWJyb2FkLCBhY2NvdW50LnByb2Nlc3NlZERhdGUpO1xuICAgICAgICAgICAgYWxsVHhucy5wdXNoKC4uLnR4bnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMpIHtcbiAgICAgICAgICBhbGxUeG5zID0gZml4SW5zdGFsbG1lbnRzKGFsbFR4bnMpO1xuICAgICAgICB9XG4gICAgICAgIGFsbFR4bnMgPSBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMoYWxsVHhucywgc3RhcnRNb21lbnQsIG9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSk7XG5cbiAgICAgICAgYWNjb3VudFR4bnNbYWNjb3VudC5hY2NvdW50TnVtYmVyXSA9IHtcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiBhY2NvdW50LmFjY291bnROdW1iZXIsXG4gICAgICAgICAgaW5kZXg6IGFjY291bnQuaW5kZXgsXG4gICAgICAgICAgdHhuczogYWxsVHhucyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYWNjb3VudFR4bnM7XG4gIH1cblxuICByZXR1cm4ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWxsVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIHN0YXJ0TW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSBvcHRpb25zLmZ1dHVyZU1vbnRoc1RvU2NyYXBlID8/IDE7XG4gIGNvbnN0IGFsbE1vbnRocyA9IGdldEFsbE1vbnRoTW9tZW50cyhzdGFydE1vbWVudCwgZnV0dXJlTW9udGhzVG9TY3JhcGUpO1xuICBjb25zdCByZXN1bHRzOiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXhbXSA9IGF3YWl0IFByb21pc2UuYWxsKGFsbE1vbnRocy5tYXAoYXN5bmMgKG1vbnRoTW9tZW50KSA9PiB7XG4gICAgcmV0dXJuIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2UsIG9wdGlvbnMsIHN0YXJ0TW9tZW50LCBtb250aE1vbWVudCk7XG4gIH0pKTtcblxuICBjb25zdCBjb21iaW5lZFR4bnM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG5cbiAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQpID0+IHtcbiAgICBPYmplY3Qua2V5cyhyZXN1bHQpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICAgIGxldCB0eG5zRm9yQWNjb3VudCA9IGNvbWJpbmVkVHhuc1thY2NvdW50TnVtYmVyXTtcbiAgICAgIGlmICghdHhuc0ZvckFjY291bnQpIHtcbiAgICAgICAgdHhuc0ZvckFjY291bnQgPSBbXTtcbiAgICAgICAgY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdID0gdHhuc0ZvckFjY291bnQ7XG4gICAgICB9XG4gICAgICBjb25zdCB0b0JlQWRkZWRUeG5zID0gcmVzdWx0W2FjY291bnROdW1iZXJdLnR4bnM7XG4gICAgICBjb21iaW5lZFR4bnNbYWNjb3VudE51bWJlcl0ucHVzaCguLi50b0JlQWRkZWRUeG5zKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgYWNjb3VudHMgPSBPYmplY3Qua2V5cyhjb21iaW5lZFR4bnMpLm1hcCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgdHhuczogY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdLFxuICAgIH07XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogdHJ1ZSxcbiAgICBhY2NvdW50cyxcbiAgfTtcbn1cblxuXG5jbGFzcyBJc3JhY2FyZEFtZXhCYXNlU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZztcblxuICBwcml2YXRlIGNvbXBhbnlDb2RlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzZXJ2aWNlc1VybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zLCBiYXNlVXJsOiBzdHJpbmcsIGNvbXBhbnlDb2RlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuYmFzZVVybCA9IGJhc2VVcmw7XG4gICAgdGhpcy5jb21wYW55Q29kZSA9IGNvbXBhbnlDb2RlO1xuICAgIHRoaXMuc2VydmljZXNVcmwgPSBgJHtiYXNlVXJsfS9zZXJ2aWNlcy9Qcm94eVJlcXVlc3RIYW5kbGVyLmFzaHhgO1xuICB9XG5cbiAgYXN5bmMgbG9naW4oY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscyk6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhZ2Uuc2V0UmVxdWVzdEludGVyY2VwdGlvbih0cnVlKTtcbiAgICB0aGlzLnBhZ2Uub24oJ3JlcXVlc3QnLCAocmVxdWVzdCkgPT4ge1xuICAgICAgaWYgKHJlcXVlc3QudXJsKCkuaW5jbHVkZXMoJ2RldGVjdG9yLWRvbS5taW4uanMnKSkge1xuICAgICAgICBkZWJ1ZygnZm9yY2UgYWJvcnQgZm9yIHJlcXVlc3QgZG8gZG93bmxvYWQgZGV0ZWN0b3ItZG9tLm1pbi5qcyByZXNvdXJjZScpO1xuICAgICAgICByZXF1ZXN0LmFib3J0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXF1ZXN0LmNvbnRpbnVlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gcGFnZScpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhgJHt0aGlzLmJhc2VVcmx9L3BlcnNvbmFsYXJlYS9Mb2dpbmApO1xuXG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dnaW5nSW4pO1xuXG4gICAgY29uc3QgdmFsaWRhdGVVcmwgPSBgJHt0aGlzLnNlcnZpY2VzVXJsfT9yZXFOYW1lPVZhbGlkYXRlSWREYXRhYDtcbiAgICBjb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSB7XG4gICAgICBpZDogY3JlZGVudGlhbHMuaWQsXG4gICAgICBjYXJkU3VmZml4OiBjcmVkZW50aWFscy5jYXJkNkRpZ2l0cyxcbiAgICAgIGNvdW50cnlDb2RlOiBDT1VOVFJZX0NPREUsXG4gICAgICBpZFR5cGU6IElEX1RZUEUsXG4gICAgICBjaGVja0xldmVsOiAnMScsXG4gICAgICBjb21wYW55Q29kZTogdGhpcy5jb21wYW55Q29kZSxcbiAgICB9O1xuICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0V2l0aGluUGFnZTxTY3JhcGVkTG9naW5WYWxpZGF0aW9uPih0aGlzLnBhZ2UsIHZhbGlkYXRlVXJsLCB2YWxpZGF0ZVJlcXVlc3QpO1xuICAgIGlmICghdmFsaWRhdGVSZXN1bHQgfHwgIXZhbGlkYXRlUmVzdWx0LkhlYWRlciB8fCB2YWxpZGF0ZVJlc3VsdC5IZWFkZXIuU3RhdHVzICE9PSAnMScgfHwgIXZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIGVycm9yIGR1cmluZyBsb2dpbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRlUmV0dXJuQ29kZSA9IHZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbi5yZXR1cm5Db2RlO1xuICAgIGRlYnVnKGB1c2VyIHZhbGlkYXRlIHdpdGggcmV0dXJuIGNvZGUgJyR7dmFsaWRhdGVSZXR1cm5Db2RlfSdgKTtcbiAgICBpZiAodmFsaWRhdGVSZXR1cm5Db2RlID09PSAnMScpIHtcbiAgICAgIGNvbnN0IHsgdXNlck5hbWUgfSA9IHZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbjtcblxuICAgICAgY29uc3QgbG9naW5VcmwgPSBgJHt0aGlzLnNlcnZpY2VzVXJsfT9yZXFOYW1lPXBlcmZvcm1Mb2dvbklgO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgS29kTWlzaHRhbWVzaDogdXNlck5hbWUsXG4gICAgICAgIE1pc3BhclppaHV5OiBjcmVkZW50aWFscy5pZCxcbiAgICAgICAgU2lzbWE6IGNyZWRlbnRpYWxzLnBhc3N3b3JkLFxuICAgICAgICBjYXJkU3VmZml4OiBjcmVkZW50aWFscy5jYXJkNkRpZ2l0cyxcbiAgICAgICAgY291bnRyeUNvZGU6IENPVU5UUllfQ09ERSxcbiAgICAgICAgaWRUeXBlOiBJRF9UWVBFLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGxvZ2luUmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0V2l0aGluUGFnZTx7c3RhdHVzOiBzdHJpbmd9Pih0aGlzLnBhZ2UsIGxvZ2luVXJsLCByZXF1ZXN0KTtcbiAgICAgIGRlYnVnKGB1c2VyIGxvZ2luIHdpdGggc3RhdHVzICcke2xvZ2luUmVzdWx0Py5zdGF0dXN9J2ApO1xuXG4gICAgICBpZiAobG9naW5SZXN1bHQgJiYgbG9naW5SZXN1bHQuc3RhdHVzID09PSAnMScpIHtcbiAgICAgICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpblN1Y2Nlc3MpO1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChsb2dpblJlc3VsdCAmJiBsb2dpblJlc3VsdC5zdGF0dXMgPT09ICczJykge1xuICAgICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlUmV0dXJuQ29kZSA9PT0gJzQnKSB7XG4gICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCkge1xuICAgIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICAgIHJldHVybiBmZXRjaEFsbFRyYW5zYWN0aW9ucyh0aGlzLnBhZ2UsIHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHNlcnZpY2VzVXJsOiB0aGlzLnNlcnZpY2VzVXJsLFxuICAgICAgY29tcGFueUNvZGU6IHRoaXMuY29tcGFueUNvZGUsXG4gICAgfSwgc3RhcnRNb21lbnQpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IElzcmFjYXJkQW1leEJhc2VTY3JhcGVyO1xuIl19
341
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLWlzcmFjYXJkLWFtZXgudHMiXSwibmFtZXMiOlsiQ09VTlRSWV9DT0RFIiwiSURfVFlQRSIsIklOU1RBTExNRU5UU19LRVlXT1JEIiwiREFURV9GT1JNQVQiLCJkZWJ1ZyIsImdldEFjY291bnRzVXJsIiwic2VydmljZXNVcmwiLCJtb250aE1vbWVudCIsImJpbGxpbmdEYXRlIiwiZm9ybWF0IiwicXVlcnlQYXJhbXMiLCJyZXFOYW1lIiwiYWN0aW9uQ29kZSIsImZldGNoQWNjb3VudHMiLCJwYWdlIiwiZGF0YVVybCIsImRhdGFSZXN1bHQiLCJfIiwiZ2V0IiwiRGFzaGJvYXJkTW9udGhCZWFuIiwiY2FyZHNDaGFyZ2VzIiwibWFwIiwiY2FyZENoYXJnZSIsImluZGV4IiwicGFyc2VJbnQiLCJjYXJkSW5kZXgiLCJhY2NvdW50TnVtYmVyIiwiY2FyZE51bWJlciIsInByb2Nlc3NlZERhdGUiLCJ0b0lTT1N0cmluZyIsImdldFRyYW5zYWN0aW9uc1VybCIsIm1vbnRoIiwieWVhciIsIm1vbnRoU3RyIiwidG9TdHJpbmciLCJyZXF1aXJlZERhdGUiLCJjb252ZXJ0Q3VycmVuY3kiLCJjdXJyZW5jeVN0ciIsIlNIRUtFTF9DVVJSRU5DWV9LRVlXT1JEIiwiQUxUX1NIRUtFTF9DVVJSRU5DWSIsIlNIRUtFTF9DVVJSRU5DWSIsImdldEluc3RhbGxtZW50c0luZm8iLCJ0eG4iLCJtb3JlSW5mbyIsImluY2x1ZGVzIiwidW5kZWZpbmVkIiwibWF0Y2hlcyIsIm1hdGNoIiwibGVuZ3RoIiwibnVtYmVyIiwidG90YWwiLCJnZXRUcmFuc2FjdGlvblR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiSW5zdGFsbG1lbnRzIiwiTm9ybWFsIiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJmaWx0ZXJlZFR4bnMiLCJmaWx0ZXIiLCJkZWFsU3VtVHlwZSIsInZvdWNoZXJOdW1iZXJSYXR6Iiwidm91Y2hlck51bWJlclJhdHpPdXRib3VuZCIsImlzT3V0Ym91bmQiLCJkZWFsU3VtT3V0Ym91bmQiLCJ0eG5EYXRlU3RyIiwiZnVsbFB1cmNoYXNlRGF0ZU91dGJvdW5kIiwiZnVsbFB1cmNoYXNlRGF0ZSIsInR4bk1vbWVudCIsImN1cnJlbnRQcm9jZXNzZWREYXRlIiwiZnVsbFBheW1lbnREYXRlIiwicmVzdWx0IiwidHlwZSIsImlkZW50aWZpZXIiLCJkYXRlIiwib3JpZ2luYWxBbW91bnQiLCJkZWFsU3VtIiwib3JpZ2luYWxDdXJyZW5jeSIsImN1cnJlbmN5SWQiLCJjaGFyZ2VkQW1vdW50IiwicGF5bWVudFN1bU91dGJvdW5kIiwicGF5bWVudFN1bSIsImRlc2NyaXB0aW9uIiwiZnVsbFN1cHBsaWVyTmFtZU91dGJvdW5kIiwiZnVsbFN1cHBsaWVyTmFtZUhlYiIsIm1lbW8iLCJpbnN0YWxsbWVudHMiLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiQ29tcGxldGVkIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJvcHRpb25zIiwic3RhcnRNb21lbnQiLCJhY2NvdW50cyIsIkNhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4iLCJhY2NvdW50VHhucyIsImZvckVhY2giLCJhY2NvdW50IiwidHhuR3JvdXBzIiwiYWxsVHhucyIsInR4bkdyb3VwIiwidHhuSXNyYWVsIiwicHVzaCIsInR4bkFicm9hZCIsImNvbWJpbmVJbnN0YWxsbWVudHMiLCJmZXRjaEFsbFRyYW5zYWN0aW9ucyIsImZ1dHVyZU1vbnRoc1RvU2NyYXBlIiwiYWxsTW9udGhzIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJjb21iaW5lZFR4bnMiLCJPYmplY3QiLCJrZXlzIiwidHhuc0ZvckFjY291bnQiLCJ0b0JlQWRkZWRUeG5zIiwic3VjY2VzcyIsIklzcmFjYXJkQW1leEJhc2VTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImNvbnN0cnVjdG9yIiwiYmFzZVVybCIsImNvbXBhbnlDb2RlIiwibG9naW4iLCJjcmVkZW50aWFscyIsInNldFJlcXVlc3RJbnRlcmNlcHRpb24iLCJvbiIsInJlcXVlc3QiLCJ1cmwiLCJhYm9ydCIsImNvbnRpbnVlIiwibmF2aWdhdGVUbyIsImVtaXRQcm9ncmVzcyIsIlNjYXBlclByb2dyZXNzVHlwZXMiLCJMb2dnaW5nSW4iLCJ2YWxpZGF0ZVVybCIsInZhbGlkYXRlUmVxdWVzdCIsImlkIiwiY2FyZFN1ZmZpeCIsImNhcmQ2RGlnaXRzIiwiY291bnRyeUNvZGUiLCJpZFR5cGUiLCJjaGVja0xldmVsIiwidmFsaWRhdGVSZXN1bHQiLCJIZWFkZXIiLCJTdGF0dXMiLCJWYWxpZGF0ZUlkRGF0YUJlYW4iLCJFcnJvciIsInZhbGlkYXRlUmV0dXJuQ29kZSIsInJldHVybkNvZGUiLCJ1c2VyTmFtZSIsImxvZ2luVXJsIiwiS29kTWlzaHRhbWVzaCIsIk1pc3BhclppaHV5IiwiU2lzbWEiLCJwYXNzd29yZCIsImxvZ2luUmVzdWx0IiwiTG9naW5TdWNjZXNzIiwiQ2hhbmdlUGFzc3dvcmQiLCJlcnJvclR5cGUiLCJTY3JhcGVyRXJyb3JUeXBlcyIsIkxvZ2luRmFpbGVkIiwiSW52YWxpZFBhc3N3b3JkIiwiZmV0Y2hEYXRhIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJtb21lbnQiLCJtYXgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBSUE7O0FBS0E7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSxZQUFZLEdBQUcsS0FBckI7QUFDQSxNQUFNQyxPQUFPLEdBQUcsR0FBaEI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyxPQUE3QjtBQUVBLE1BQU1DLFdBQVcsR0FBRyxZQUFwQjtBQUVBLE1BQU1DLEtBQUssR0FBRyxxQkFBUyxvQkFBVCxDQUFkOztBQXNFQSxTQUFTQyxjQUFULENBQXdCQyxXQUF4QixFQUE2Q0MsV0FBN0MsRUFBa0U7QUFDaEUsUUFBTUMsV0FBVyxHQUFHRCxXQUFXLENBQUNFLE1BQVosQ0FBbUIsWUFBbkIsQ0FBcEI7QUFDQSxTQUFPLHVCQUFTSCxXQUFULEVBQXNCO0FBQzNCSSxJQUFBQSxXQUFXLEVBQUU7QUFDWEMsTUFBQUEsT0FBTyxFQUFFLGdCQURFO0FBRVhDLE1BQUFBLFVBQVUsRUFBRSxHQUZEO0FBR1hKLE1BQUFBLFdBSFc7QUFJWEMsTUFBQUEsTUFBTSxFQUFFO0FBSkc7QUFEYyxHQUF0QixDQUFQO0FBUUQ7O0FBRUQsZUFBZUksYUFBZixDQUE2QkMsSUFBN0IsRUFBeUNSLFdBQXpDLEVBQThEQyxXQUE5RCxFQUE4RztBQUM1RyxRQUFNUSxPQUFPLEdBQUdWLGNBQWMsQ0FBQ0MsV0FBRCxFQUFjQyxXQUFkLENBQTlCO0FBQ0EsUUFBTVMsVUFBVSxHQUFHLE1BQU0sK0JBQXNERixJQUF0RCxFQUE0REMsT0FBNUQsQ0FBekI7O0FBQ0EsTUFBSUMsVUFBVSxJQUFJQyxnQkFBRUMsR0FBRixDQUFNRixVQUFOLEVBQWtCLGVBQWxCLE1BQXVDLEdBQXJELElBQTREQSxVQUFVLENBQUNHLGtCQUEzRSxFQUErRjtBQUM3RixVQUFNO0FBQUVDLE1BQUFBO0FBQUYsUUFBbUJKLFVBQVUsQ0FBQ0csa0JBQXBDOztBQUNBLFFBQUlDLFlBQUosRUFBa0I7QUFDaEIsYUFBT0EsWUFBWSxDQUFDQyxHQUFiLENBQWtCQyxVQUFELElBQWdCO0FBQ3RDLGVBQU87QUFDTEMsVUFBQUEsS0FBSyxFQUFFQyxRQUFRLENBQUNGLFVBQVUsQ0FBQ0csU0FBWixFQUF1QixFQUF2QixDQURWO0FBRUxDLFVBQUFBLGFBQWEsRUFBRUosVUFBVSxDQUFDSyxVQUZyQjtBQUdMQyxVQUFBQSxhQUFhLEVBQUUscUJBQU9OLFVBQVUsQ0FBQ2QsV0FBbEIsRUFBK0JMLFdBQS9CLEVBQTRDMEIsV0FBNUM7QUFIVixTQUFQO0FBS0QsT0FOTSxDQUFQO0FBT0Q7QUFDRjs7QUFDRCxTQUFPLEVBQVA7QUFDRDs7QUFFRCxTQUFTQyxrQkFBVCxDQUE0QnhCLFdBQTVCLEVBQWlEQyxXQUFqRCxFQUFzRTtBQUNwRSxRQUFNd0IsS0FBSyxHQUFHeEIsV0FBVyxDQUFDd0IsS0FBWixLQUFzQixDQUFwQztBQUNBLFFBQU1DLElBQUksR0FBR3pCLFdBQVcsQ0FBQ3lCLElBQVosRUFBYjtBQUNBLFFBQU1DLFFBQVEsR0FBR0YsS0FBSyxHQUFHLEVBQVIsR0FBYyxJQUFHQSxLQUFNLEVBQXZCLEdBQTJCQSxLQUFLLENBQUNHLFFBQU4sRUFBNUM7QUFDQSxTQUFPLHVCQUFTNUIsV0FBVCxFQUFzQjtBQUMzQkksSUFBQUEsV0FBVyxFQUFFO0FBQ1hDLE1BQUFBLE9BQU8sRUFBRSx1QkFERTtBQUVYb0IsTUFBQUEsS0FBSyxFQUFFRSxRQUZJO0FBR1hELE1BQUFBLElBQUksRUFBRyxHQUFFQSxJQUFLLEVBSEg7QUFJWEcsTUFBQUEsWUFBWSxFQUFFO0FBSkg7QUFEYyxHQUF0QixDQUFQO0FBUUQ7O0FBRUQsU0FBU0MsZUFBVCxDQUF5QkMsV0FBekIsRUFBOEM7QUFDNUMsTUFBSUEsV0FBVyxLQUFLQyxrQ0FBaEIsSUFBMkNELFdBQVcsS0FBS0UsOEJBQS9ELEVBQW9GO0FBQ2xGLFdBQU9DLDBCQUFQO0FBQ0Q7O0FBQ0QsU0FBT0gsV0FBUDtBQUNEOztBQUVELFNBQVNJLG1CQUFULENBQTZCQyxHQUE3QixFQUEyRjtBQUN6RixNQUFJLENBQUNBLEdBQUcsQ0FBQ0MsUUFBTCxJQUFpQixDQUFDRCxHQUFHLENBQUNDLFFBQUosQ0FBYUMsUUFBYixDQUFzQjFDLG9CQUF0QixDQUF0QixFQUFtRTtBQUNqRSxXQUFPMkMsU0FBUDtBQUNEOztBQUNELFFBQU1DLE9BQU8sR0FBR0osR0FBRyxDQUFDQyxRQUFKLENBQWFJLEtBQWIsQ0FBbUIsTUFBbkIsQ0FBaEI7O0FBQ0EsTUFBSSxDQUFDRCxPQUFELElBQVlBLE9BQU8sQ0FBQ0UsTUFBUixHQUFpQixDQUFqQyxFQUFvQztBQUNsQyxXQUFPSCxTQUFQO0FBQ0Q7O0FBRUQsU0FBTztBQUNMSSxJQUFBQSxNQUFNLEVBQUV6QixRQUFRLENBQUNzQixPQUFPLENBQUMsQ0FBRCxDQUFSLEVBQWEsRUFBYixDQURYO0FBRUxJLElBQUFBLEtBQUssRUFBRTFCLFFBQVEsQ0FBQ3NCLE9BQU8sQ0FBQyxDQUFELENBQVIsRUFBYSxFQUFiO0FBRlYsR0FBUDtBQUlEOztBQUVELFNBQVNLLGtCQUFULENBQTRCVCxHQUE1QixFQUFxRDtBQUNuRCxTQUFPRCxtQkFBbUIsQ0FBQ0MsR0FBRCxDQUFuQixHQUEyQlUsZ0NBQWlCQyxZQUE1QyxHQUEyREQsZ0NBQWlCRSxNQUFuRjtBQUNEOztBQUVELFNBQVNDLG1CQUFULENBQTZCQyxJQUE3QixFQUF5RDVCLGFBQXpELEVBQStGO0FBQzdGLFFBQU02QixZQUFZLEdBQUdELElBQUksQ0FBQ0UsTUFBTCxDQUFhaEIsR0FBRCxJQUFTQSxHQUFHLENBQUNpQixXQUFKLEtBQW9CLEdBQXBCLElBQ0FqQixHQUFHLENBQUNrQixpQkFBSixLQUEwQixXQUQxQixJQUVBbEIsR0FBRyxDQUFDbUIseUJBQUosS0FBa0MsV0FGdkQsQ0FBckI7QUFJQSxTQUFPSixZQUFZLENBQUNwQyxHQUFiLENBQWtCcUIsR0FBRCxJQUFTO0FBQy9CLFVBQU1vQixVQUFVLEdBQUdwQixHQUFHLENBQUNxQixlQUF2QjtBQUNBLFVBQU1DLFVBQVUsR0FBR0YsVUFBVSxHQUFHcEIsR0FBRyxDQUFDdUIsd0JBQVAsR0FBa0N2QixHQUFHLENBQUN3QixnQkFBbkU7QUFDQSxVQUFNQyxTQUFTLEdBQUcscUJBQU9ILFVBQVAsRUFBbUI3RCxXQUFuQixDQUFsQjtBQUVBLFVBQU1pRSxvQkFBb0IsR0FBRzFCLEdBQUcsQ0FBQzJCLGVBQUosR0FDM0IscUJBQU8zQixHQUFHLENBQUMyQixlQUFYLEVBQTRCbEUsV0FBNUIsRUFBeUMwQixXQUF6QyxFQUQyQixHQUUzQkQsYUFGRjtBQUdBLFVBQU0wQyxNQUFtQixHQUFHO0FBQzFCQyxNQUFBQSxJQUFJLEVBQUVwQixrQkFBa0IsQ0FBQ1QsR0FBRCxDQURFO0FBRTFCOEIsTUFBQUEsVUFBVSxFQUFFaEQsUUFBUSxDQUFDc0MsVUFBVSxHQUFHcEIsR0FBRyxDQUFDbUIseUJBQVAsR0FBbUNuQixHQUFHLENBQUNrQixpQkFBbEQsRUFBcUUsRUFBckUsQ0FGTTtBQUcxQmEsTUFBQUEsSUFBSSxFQUFFTixTQUFTLENBQUN0QyxXQUFWLEVBSG9CO0FBSTFCRCxNQUFBQSxhQUFhLEVBQUV3QyxvQkFKVztBQUsxQk0sTUFBQUEsY0FBYyxFQUFFWixVQUFVLEdBQUcsQ0FBQ3BCLEdBQUcsQ0FBQ3FCLGVBQVIsR0FBMEIsQ0FBQ3JCLEdBQUcsQ0FBQ2lDLE9BTC9CO0FBTTFCQyxNQUFBQSxnQkFBZ0IsRUFBRXhDLGVBQWUsQ0FBQ00sR0FBRyxDQUFDbUMsVUFBTCxDQU5QO0FBTzFCQyxNQUFBQSxhQUFhLEVBQUVoQixVQUFVLEdBQUcsQ0FBQ3BCLEdBQUcsQ0FBQ3FDLGtCQUFSLEdBQTZCLENBQUNyQyxHQUFHLENBQUNzQyxVQVBqQztBQVExQkMsTUFBQUEsV0FBVyxFQUFFbkIsVUFBVSxHQUFHcEIsR0FBRyxDQUFDd0Msd0JBQVAsR0FBa0N4QyxHQUFHLENBQUN5QyxtQkFSbkM7QUFTMUJDLE1BQUFBLElBQUksRUFBRTFDLEdBQUcsQ0FBQ0MsUUFBSixJQUFnQixFQVRJO0FBVTFCMEMsTUFBQUEsWUFBWSxFQUFFNUMsbUJBQW1CLENBQUNDLEdBQUQsQ0FBbkIsSUFBNEJHLFNBVmhCO0FBVzFCeUMsTUFBQUEsTUFBTSxFQUFFQyxtQ0FBb0JDO0FBWEYsS0FBNUI7QUFjQSxXQUFPbEIsTUFBUDtBQUNELEdBdkJNLENBQVA7QUF3QkQ7O0FBRUQsZUFBZW1CLGlCQUFmLENBQWlDM0UsSUFBakMsRUFBNkM0RSxPQUE3QyxFQUE4RUMsV0FBOUUsRUFBbUdwRixXQUFuRyxFQUEySjtBQUN6SixRQUFNcUYsUUFBUSxHQUFHLE1BQU0vRSxhQUFhLENBQUNDLElBQUQsRUFBTzRFLE9BQU8sQ0FBQ3BGLFdBQWYsRUFBNEJDLFdBQTVCLENBQXBDO0FBQ0EsUUFBTVEsT0FBTyxHQUFHZSxrQkFBa0IsQ0FBQzRELE9BQU8sQ0FBQ3BGLFdBQVQsRUFBc0JDLFdBQXRCLENBQWxDO0FBQ0EsUUFBTVMsVUFBVSxHQUFHLE1BQU0sK0JBQTJDRixJQUEzQyxFQUFpREMsT0FBakQsQ0FBekI7O0FBQ0EsTUFBSUMsVUFBVSxJQUFJQyxnQkFBRUMsR0FBRixDQUFNRixVQUFOLEVBQWtCLGVBQWxCLE1BQXVDLEdBQXJELElBQTREQSxVQUFVLENBQUM2RSx5QkFBM0UsRUFBc0c7QUFDcEcsVUFBTUMsV0FBcUMsR0FBRyxFQUE5QztBQUNBRixJQUFBQSxRQUFRLENBQUNHLE9BQVQsQ0FBa0JDLE9BQUQsSUFBYTtBQUM1QixZQUFNQyxTQUEyQyxHQUFHaEYsZ0JBQUVDLEdBQUYsQ0FBTUYsVUFBTixFQUFtQixrQ0FBaUNnRixPQUFPLENBQUN6RSxLQUFNLDBCQUFsRSxDQUFwRDs7QUFDQSxVQUFJMEUsU0FBSixFQUFlO0FBQ2IsWUFBSUMsT0FBc0IsR0FBRyxFQUE3QjtBQUNBRCxRQUFBQSxTQUFTLENBQUNGLE9BQVYsQ0FBbUJJLFFBQUQsSUFBYztBQUM5QixjQUFJQSxRQUFRLENBQUNDLFNBQWIsRUFBd0I7QUFDdEIsa0JBQU01QyxJQUFJLEdBQUdELG1CQUFtQixDQUFDNEMsUUFBUSxDQUFDQyxTQUFWLEVBQXFCSixPQUFPLENBQUNwRSxhQUE3QixDQUFoQztBQUNBc0UsWUFBQUEsT0FBTyxDQUFDRyxJQUFSLENBQWEsR0FBRzdDLElBQWhCO0FBQ0Q7O0FBQ0QsY0FBSTJDLFFBQVEsQ0FBQ0csU0FBYixFQUF3QjtBQUN0QixrQkFBTTlDLElBQUksR0FBR0QsbUJBQW1CLENBQUM0QyxRQUFRLENBQUNHLFNBQVYsRUFBcUJOLE9BQU8sQ0FBQ3BFLGFBQTdCLENBQWhDO0FBQ0FzRSxZQUFBQSxPQUFPLENBQUNHLElBQVIsQ0FBYSxHQUFHN0MsSUFBaEI7QUFDRDtBQUNGLFNBVEQ7O0FBV0EsWUFBSSxDQUFDa0MsT0FBTyxDQUFDYSxtQkFBYixFQUFrQztBQUNoQ0wsVUFBQUEsT0FBTyxHQUFHLG1DQUFnQkEsT0FBaEIsQ0FBVjtBQUNEOztBQUNEQSxRQUFBQSxPQUFPLEdBQUcseUNBQXNCQSxPQUF0QixFQUErQlAsV0FBL0IsRUFBNENELE9BQU8sQ0FBQ2EsbUJBQVIsSUFBK0IsS0FBM0UsQ0FBVjtBQUVBVCxRQUFBQSxXQUFXLENBQUNFLE9BQU8sQ0FBQ3RFLGFBQVQsQ0FBWCxHQUFxQztBQUNuQ0EsVUFBQUEsYUFBYSxFQUFFc0UsT0FBTyxDQUFDdEUsYUFEWTtBQUVuQ0gsVUFBQUEsS0FBSyxFQUFFeUUsT0FBTyxDQUFDekUsS0FGb0I7QUFHbkNpQyxVQUFBQSxJQUFJLEVBQUUwQztBQUg2QixTQUFyQztBQUtEO0FBQ0YsS0ExQkQ7QUEyQkEsV0FBT0osV0FBUDtBQUNEOztBQUVELFNBQU8sRUFBUDtBQUNEOztBQUVELGVBQWVVLG9CQUFmLENBQW9DMUYsSUFBcEMsRUFBZ0Q0RSxPQUFoRCxFQUFpRkMsV0FBakYsRUFBc0c7QUFBQTs7QUFDcEcsUUFBTWMsb0JBQW9CLDRCQUFHZixPQUFPLENBQUNlLG9CQUFYLHlFQUFtQyxDQUE3RDtBQUNBLFFBQU1DLFNBQVMsR0FBRyxvQkFBbUJmLFdBQW5CLEVBQWdDYyxvQkFBaEMsQ0FBbEI7QUFDQSxRQUFNRSxPQUFtQyxHQUFHLE1BQU1DLE9BQU8sQ0FBQ0MsR0FBUixDQUFZSCxTQUFTLENBQUNyRixHQUFWLENBQWMsTUFBT2QsV0FBUCxJQUF1QjtBQUNqRyxXQUFPa0YsaUJBQWlCLENBQUMzRSxJQUFELEVBQU80RSxPQUFQLEVBQWdCQyxXQUFoQixFQUE2QnBGLFdBQTdCLENBQXhCO0FBQ0QsR0FGNkQsQ0FBWixDQUFsRDtBQUlBLFFBQU11RyxZQUEyQyxHQUFHLEVBQXBEO0FBRUFILEVBQUFBLE9BQU8sQ0FBQ1osT0FBUixDQUFpQnpCLE1BQUQsSUFBWTtBQUMxQnlDLElBQUFBLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZMUMsTUFBWixFQUFvQnlCLE9BQXBCLENBQTZCckUsYUFBRCxJQUFtQjtBQUM3QyxVQUFJdUYsY0FBYyxHQUFHSCxZQUFZLENBQUNwRixhQUFELENBQWpDOztBQUNBLFVBQUksQ0FBQ3VGLGNBQUwsRUFBcUI7QUFDbkJBLFFBQUFBLGNBQWMsR0FBRyxFQUFqQjtBQUNBSCxRQUFBQSxZQUFZLENBQUNwRixhQUFELENBQVosR0FBOEJ1RixjQUE5QjtBQUNEOztBQUNELFlBQU1DLGFBQWEsR0FBRzVDLE1BQU0sQ0FBQzVDLGFBQUQsQ0FBTixDQUFzQjhCLElBQTVDO0FBQ0FzRCxNQUFBQSxZQUFZLENBQUNwRixhQUFELENBQVosQ0FBNEIyRSxJQUE1QixDQUFpQyxHQUFHYSxhQUFwQztBQUNELEtBUkQ7QUFTRCxHQVZEO0FBWUEsUUFBTXRCLFFBQVEsR0FBR21CLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZRixZQUFaLEVBQTBCekYsR0FBMUIsQ0FBK0JLLGFBQUQsSUFBbUI7QUFDaEUsV0FBTztBQUNMQSxNQUFBQSxhQURLO0FBRUw4QixNQUFBQSxJQUFJLEVBQUVzRCxZQUFZLENBQUNwRixhQUFEO0FBRmIsS0FBUDtBQUlELEdBTGdCLENBQWpCO0FBT0EsU0FBTztBQUNMeUYsSUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTHZCLElBQUFBO0FBRkssR0FBUDtBQUlEOztBQUdELE1BQU13Qix1QkFBTixTQUFzQ0MsOENBQXRDLENBQTZEO0FBTzNEQyxFQUFBQSxXQUFXLENBQUM1QixPQUFELEVBQTBCNkIsT0FBMUIsRUFBMkNDLFdBQTNDLEVBQWdFO0FBQ3pFLFVBQU05QixPQUFOOztBQUR5RTs7QUFBQTs7QUFBQTs7QUFHekUsU0FBSzZCLE9BQUwsR0FBZUEsT0FBZjtBQUNBLFNBQUtDLFdBQUwsR0FBbUJBLFdBQW5CO0FBQ0EsU0FBS2xILFdBQUwsR0FBb0IsR0FBRWlILE9BQVEsb0NBQTlCO0FBQ0Q7O0FBRUQsUUFBTUUsS0FBTixDQUFZQyxXQUFaLEVBQTRFO0FBQzFFLFVBQU0sS0FBSzVHLElBQUwsQ0FBVTZHLHNCQUFWLENBQWlDLElBQWpDLENBQU47QUFDQSxTQUFLN0csSUFBTCxDQUFVOEcsRUFBVixDQUFhLFNBQWIsRUFBeUJDLE9BQUQsSUFBYTtBQUNuQyxVQUFJQSxPQUFPLENBQUNDLEdBQVIsR0FBY2xGLFFBQWQsQ0FBdUIscUJBQXZCLENBQUosRUFBbUQ7QUFDakR4QyxRQUFBQSxLQUFLLENBQUMsa0VBQUQsQ0FBTDtBQUNBeUgsUUFBQUEsT0FBTyxDQUFDRSxLQUFSO0FBQ0QsT0FIRCxNQUdPO0FBQ0xGLFFBQUFBLE9BQU8sQ0FBQ0csUUFBUjtBQUNEO0FBQ0YsS0FQRDtBQVNBNUgsSUFBQUEsS0FBSyxDQUFDLHdCQUFELENBQUw7QUFDQSxVQUFNLEtBQUs2SCxVQUFMLENBQWlCLEdBQUUsS0FBS1YsT0FBUSxxQkFBaEMsQ0FBTjtBQUVBLFNBQUtXLFlBQUwsQ0FBa0JDLGlDQUFvQkMsU0FBdEM7QUFFQSxVQUFNQyxXQUFXLEdBQUksR0FBRSxLQUFLL0gsV0FBWSx5QkFBeEM7QUFDQSxVQUFNZ0ksZUFBZSxHQUFHO0FBQ3RCQyxNQUFBQSxFQUFFLEVBQUViLFdBQVcsQ0FBQ2EsRUFETTtBQUV0QkMsTUFBQUEsVUFBVSxFQUFFZCxXQUFXLENBQUNlLFdBRkY7QUFHdEJDLE1BQUFBLFdBQVcsRUFBRTFJLFlBSFM7QUFJdEIySSxNQUFBQSxNQUFNLEVBQUUxSSxPQUpjO0FBS3RCMkksTUFBQUEsVUFBVSxFQUFFLEdBTFU7QUFNdEJwQixNQUFBQSxXQUFXLEVBQUUsS0FBS0E7QUFOSSxLQUF4QjtBQVFBLFVBQU1xQixjQUFjLEdBQUcsTUFBTSxnQ0FBNEMsS0FBSy9ILElBQWpELEVBQXVEdUgsV0FBdkQsRUFBb0VDLGVBQXBFLENBQTdCOztBQUNBLFFBQUksQ0FBQ08sY0FBRCxJQUFtQixDQUFDQSxjQUFjLENBQUNDLE1BQW5DLElBQTZDRCxjQUFjLENBQUNDLE1BQWYsQ0FBc0JDLE1BQXRCLEtBQWlDLEdBQTlFLElBQXFGLENBQUNGLGNBQWMsQ0FBQ0csa0JBQXpHLEVBQTZIO0FBQzNILFlBQU0sSUFBSUMsS0FBSixDQUFVLDRCQUFWLENBQU47QUFDRDs7QUFFRCxVQUFNQyxrQkFBa0IsR0FBR0wsY0FBYyxDQUFDRyxrQkFBZixDQUFrQ0csVUFBN0Q7QUFDQS9JLElBQUFBLEtBQUssQ0FBRSxtQ0FBa0M4SSxrQkFBbUIsR0FBdkQsQ0FBTDs7QUFDQSxRQUFJQSxrQkFBa0IsS0FBSyxHQUEzQixFQUFnQztBQUM5QixZQUFNO0FBQUVFLFFBQUFBO0FBQUYsVUFBZVAsY0FBYyxDQUFDRyxrQkFBcEM7QUFFQSxZQUFNSyxRQUFRLEdBQUksR0FBRSxLQUFLL0ksV0FBWSx3QkFBckM7QUFDQSxZQUFNdUgsT0FBTyxHQUFHO0FBQ2R5QixRQUFBQSxhQUFhLEVBQUVGLFFBREQ7QUFFZEcsUUFBQUEsV0FBVyxFQUFFN0IsV0FBVyxDQUFDYSxFQUZYO0FBR2RpQixRQUFBQSxLQUFLLEVBQUU5QixXQUFXLENBQUMrQixRQUhMO0FBSWRqQixRQUFBQSxVQUFVLEVBQUVkLFdBQVcsQ0FBQ2UsV0FKVjtBQUtkQyxRQUFBQSxXQUFXLEVBQUUxSSxZQUxDO0FBTWQySSxRQUFBQSxNQUFNLEVBQUUxSTtBQU5NLE9BQWhCO0FBUUEsWUFBTXlKLFdBQVcsR0FBRyxNQUFNLGdDQUFzQyxLQUFLNUksSUFBM0MsRUFBaUR1SSxRQUFqRCxFQUEyRHhCLE9BQTNELENBQTFCO0FBQ0F6SCxNQUFBQSxLQUFLLENBQUUsMkJBQTBCc0osV0FBM0IsYUFBMkJBLFdBQTNCLHVCQUEyQkEsV0FBVyxDQUFFcEUsTUFBTyxHQUFoRCxDQUFMOztBQUVBLFVBQUlvRSxXQUFXLElBQUlBLFdBQVcsQ0FBQ3BFLE1BQVosS0FBdUIsR0FBMUMsRUFBK0M7QUFDN0MsYUFBSzRDLFlBQUwsQ0FBa0JDLGlDQUFvQndCLFlBQXRDO0FBQ0EsZUFBTztBQUFFeEMsVUFBQUEsT0FBTyxFQUFFO0FBQVgsU0FBUDtBQUNEOztBQUVELFVBQUl1QyxXQUFXLElBQUlBLFdBQVcsQ0FBQ3BFLE1BQVosS0FBdUIsR0FBMUMsRUFBK0M7QUFDN0MsYUFBSzRDLFlBQUwsQ0FBa0JDLGlDQUFvQnlCLGNBQXRDO0FBQ0EsZUFBTztBQUNMekMsVUFBQUEsT0FBTyxFQUFFLEtBREo7QUFFTDBDLFVBQUFBLFNBQVMsRUFBRUMsK0JBQWtCRjtBQUZ4QixTQUFQO0FBSUQ7O0FBRUQsV0FBSzFCLFlBQUwsQ0FBa0JDLGlDQUFvQjRCLFdBQXRDO0FBQ0EsYUFBTztBQUNMNUMsUUFBQUEsT0FBTyxFQUFFLEtBREo7QUFFTDBDLFFBQUFBLFNBQVMsRUFBRUMsK0JBQWtCRTtBQUZ4QixPQUFQO0FBSUQ7O0FBRUQsUUFBSWQsa0JBQWtCLEtBQUssR0FBM0IsRUFBZ0M7QUFDOUIsV0FBS2hCLFlBQUwsQ0FBa0JDLGlDQUFvQnlCLGNBQXRDO0FBQ0EsYUFBTztBQUNMekMsUUFBQUEsT0FBTyxFQUFFLEtBREo7QUFFTDBDLFFBQUFBLFNBQVMsRUFBRUMsK0JBQWtCRjtBQUZ4QixPQUFQO0FBSUQ7O0FBRUQsU0FBSzFCLFlBQUwsQ0FBa0JDLGlDQUFvQjRCLFdBQXRDO0FBQ0EsV0FBTztBQUNMNUMsTUFBQUEsT0FBTyxFQUFFLEtBREo7QUFFTDBDLE1BQUFBLFNBQVMsRUFBRUMsK0JBQWtCRTtBQUZ4QixLQUFQO0FBSUQ7O0FBRUQsUUFBTUMsU0FBTixHQUFrQjtBQUNoQixVQUFNQyxrQkFBa0IsR0FBRyx1QkFBU0MsUUFBVCxDQUFrQixDQUFsQixFQUFxQixPQUFyQixDQUEzQjtBQUNBLFVBQU1DLFNBQVMsR0FBRyxLQUFLMUUsT0FBTCxDQUFhMEUsU0FBYixJQUEwQkYsa0JBQWtCLENBQUNHLE1BQW5CLEVBQTVDOztBQUNBLFVBQU0xRSxXQUFXLEdBQUcyRSxnQkFBT0MsR0FBUCxDQUFXTCxrQkFBWCxFQUErQixxQkFBT0UsU0FBUCxDQUEvQixDQUFwQjs7QUFFQSxXQUFPNUQsb0JBQW9CLENBQUMsS0FBSzFGLElBQU4sb0JBQ3RCLEtBQUs0RSxPQURpQjtBQUV6QnBGLE1BQUFBLFdBQVcsRUFBRSxLQUFLQSxXQUZPO0FBR3pCa0gsTUFBQUEsV0FBVyxFQUFFLEtBQUtBO0FBSE8sUUFJeEI3QixXQUp3QixDQUEzQjtBQUtEOztBQTNHMEQ7O2VBOEc5Q3lCLHVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBidWlsZFVybCBmcm9tICdidWlsZC11cmwnO1xuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuXG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgZmV0Y2hHZXRXaXRoaW5QYWdlLCBmZXRjaFBvc3RXaXRoaW5QYWdlIH0gZnJvbSAnLi4vaGVscGVycy9mZXRjaCc7XG5pbXBvcnQge1xuICBTSEVLRUxfQ1VSUkVOQ1lfS0VZV09SRCxcbiAgU0hFS0VMX0NVUlJFTkNZLFxuICBBTFRfU0hFS0VMX0NVUlJFTkNZLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IGdldEFsbE1vbnRoTW9tZW50cyBmcm9tICcuLi9oZWxwZXJzL2RhdGVzJztcbmltcG9ydCB7IGZpeEluc3RhbGxtZW50cywgZmlsdGVyT2xkVHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25zQWNjb3VudCwgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzLFxuICBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzLFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHtcbiAgU2NyYXBlckVycm9yVHlwZXMsXG4gIFNjcmFwZXJPcHRpb25zLCBTY2FwZXJTY3JhcGluZ1Jlc3VsdCwgU2NhcGVyUHJvZ3Jlc3NUeXBlcyxcbiAgU2NyYXBlckNyZWRlbnRpYWxzLFxufSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuXG5jb25zdCBDT1VOVFJZX0NPREUgPSAnMjEyJztcbmNvbnN0IElEX1RZUEUgPSAnMSc7XG5jb25zdCBJTlNUQUxMTUVOVFNfS0VZV09SRCA9ICfXqtep15zXldedJztcblxuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVlZWSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ2Jhc2UtaXNyYWNhcmQtYW1leCcpO1xuXG5pbnRlcmZhY2UgRXh0ZW5kZWRTY3JhcGVyT3B0aW9ucyBleHRlbmRzIFNjcmFwZXJPcHRpb25zIHtcbiAgc2VydmljZXNVcmw6IHN0cmluZztcbiAgY29tcGFueUNvZGU6IHN0cmluZztcbn1cblxudHlwZSBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXggPSBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbnNBY2NvdW50ICYgeyBpbmRleDogbnVtYmVyIH0+O1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgZGVhbFN1bVR5cGU6IHN0cmluZztcbiAgdm91Y2hlck51bWJlclJhdHpPdXRib3VuZDogc3RyaW5nO1xuICB2b3VjaGVyTnVtYmVyUmF0ejogc3RyaW5nO1xuICBtb3JlSW5mbz86IHN0cmluZztcbiAgZGVhbFN1bU91dGJvdW5kOiBib29sZWFuO1xuICBjdXJyZW5jeUlkOiBzdHJpbmc7XG4gIGRlYWxTdW06IG51bWJlcjtcbiAgZnVsbFBheW1lbnREYXRlPzogc3RyaW5nO1xuICBmdWxsUHVyY2hhc2VEYXRlPzogc3RyaW5nO1xuICBmdWxsUHVyY2hhc2VEYXRlT3V0Ym91bmQ/OiBzdHJpbmc7XG4gIGZ1bGxTdXBwbGllck5hbWVIZWI6IHN0cmluZztcbiAgZnVsbFN1cHBsaWVyTmFtZU91dGJvdW5kOiBzdHJpbmc7XG4gIHBheW1lbnRTdW06IG51bWJlcjtcbiAgcGF5bWVudFN1bU91dGJvdW5kOiBudW1iZXI7XG59XG5cblxuaW50ZXJmYWNlIFNjcmFwZWRBY2NvdW50IHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgYWNjb3VudE51bWJlcjogc3RyaW5nO1xuICBwcm9jZXNzZWREYXRlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTY3JhcGVkTG9naW5WYWxpZGF0aW9uIHtcbiAgSGVhZGVyOiB7XG4gICAgU3RhdHVzOiBzdHJpbmc7XG4gIH07XG4gIFZhbGlkYXRlSWREYXRhQmVhbj86IHtcbiAgICB1c2VyTmFtZT86IHN0cmluZztcbiAgICByZXR1cm5Db2RlOiBzdHJpbmc7XG4gIH07XG59XG5cbmludGVyZmFjZSBTY3JhcGVkQWNjb3VudHNXaXRoaW5QYWdlUmVzcG9uc2Uge1xuICBIZWFkZXI6IHtcbiAgICBTdGF0dXM6IHN0cmluZztcbiAgfTtcbiAgRGFzaGJvYXJkTW9udGhCZWFuPzoge1xuICAgIGNhcmRzQ2hhcmdlczoge1xuICAgICAgY2FyZEluZGV4OiBzdHJpbmc7XG4gICAgICBjYXJkTnVtYmVyOiBzdHJpbmc7XG4gICAgICBiaWxsaW5nRGF0ZTogc3RyaW5nO1xuICAgIH1bXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRDdXJyZW50Q2FyZFRyYW5zYWN0aW9ucyB7XG4gIHR4bklzcmFlbD86IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICB0eG5BYnJvYWQ/OiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbkRhdGEge1xuICBIZWFkZXI/OiB7XG4gICAgU3RhdHVzOiBzdHJpbmc7XG4gIH07XG4gIENhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4/OiBSZWNvcmQ8c3RyaW5nLCB7XG4gICAgQ3VycmVudENhcmRUcmFuc2FjdGlvbnM6IFNjcmFwZWRDdXJyZW50Q2FyZFRyYW5zYWN0aW9uc1tdO1xuICB9Pjtcbn1cblxuZnVuY3Rpb24gZ2V0QWNjb3VudHNVcmwoc2VydmljZXNVcmw6IHN0cmluZywgbW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCBiaWxsaW5nRGF0ZSA9IG1vbnRoTW9tZW50LmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICByZXR1cm4gYnVpbGRVcmwoc2VydmljZXNVcmwsIHtcbiAgICBxdWVyeVBhcmFtczoge1xuICAgICAgcmVxTmFtZTogJ0Rhc2hib2FyZE1vbnRoJyxcbiAgICAgIGFjdGlvbkNvZGU6ICcwJyxcbiAgICAgIGJpbGxpbmdEYXRlLFxuICAgICAgZm9ybWF0OiAnSnNvbicsXG4gICAgfSxcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudHMocGFnZTogUGFnZSwgc2VydmljZXNVcmw6IHN0cmluZywgbW9udGhNb21lbnQ6IE1vbWVudCk6IFByb21pc2U8U2NyYXBlZEFjY291bnRbXT4ge1xuICBjb25zdCBkYXRhVXJsID0gZ2V0QWNjb3VudHNVcmwoc2VydmljZXNVcmwsIG1vbnRoTW9tZW50KTtcbiAgY29uc3QgZGF0YVJlc3VsdCA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkQWNjb3VudHNXaXRoaW5QYWdlUmVzcG9uc2U+KHBhZ2UsIGRhdGFVcmwpO1xuICBpZiAoZGF0YVJlc3VsdCAmJiBfLmdldChkYXRhUmVzdWx0LCAnSGVhZGVyLlN0YXR1cycpID09PSAnMScgJiYgZGF0YVJlc3VsdC5EYXNoYm9hcmRNb250aEJlYW4pIHtcbiAgICBjb25zdCB7IGNhcmRzQ2hhcmdlcyB9ID0gZGF0YVJlc3VsdC5EYXNoYm9hcmRNb250aEJlYW47XG4gICAgaWYgKGNhcmRzQ2hhcmdlcykge1xuICAgICAgcmV0dXJuIGNhcmRzQ2hhcmdlcy5tYXAoKGNhcmRDaGFyZ2UpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbmRleDogcGFyc2VJbnQoY2FyZENoYXJnZS5jYXJkSW5kZXgsIDEwKSxcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiBjYXJkQ2hhcmdlLmNhcmROdW1iZXIsXG4gICAgICAgICAgcHJvY2Vzc2VkRGF0ZTogbW9tZW50KGNhcmRDaGFyZ2UuYmlsbGluZ0RhdGUsIERBVEVfRk9STUFUKS50b0lTT1N0cmluZygpLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbXTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25zVXJsKHNlcnZpY2VzVXJsOiBzdHJpbmcsIG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgbW9udGggPSBtb250aE1vbWVudC5tb250aCgpICsgMTtcbiAgY29uc3QgeWVhciA9IG1vbnRoTW9tZW50LnllYXIoKTtcbiAgY29uc3QgbW9udGhTdHIgPSBtb250aCA8IDEwID8gYDAke21vbnRofWAgOiBtb250aC50b1N0cmluZygpO1xuICByZXR1cm4gYnVpbGRVcmwoc2VydmljZXNVcmwsIHtcbiAgICBxdWVyeVBhcmFtczoge1xuICAgICAgcmVxTmFtZTogJ0NhcmRzVHJhbnNhY3Rpb25zTGlzdCcsXG4gICAgICBtb250aDogbW9udGhTdHIsXG4gICAgICB5ZWFyOiBgJHt5ZWFyfWAsXG4gICAgICByZXF1aXJlZERhdGU6ICdOJyxcbiAgICB9LFxuICB9KTtcbn1cblxuZnVuY3Rpb24gY29udmVydEN1cnJlbmN5KGN1cnJlbmN5U3RyOiBzdHJpbmcpIHtcbiAgaWYgKGN1cnJlbmN5U3RyID09PSBTSEVLRUxfQ1VSUkVOQ1lfS0VZV09SRCB8fCBjdXJyZW5jeVN0ciA9PT0gQUxUX1NIRUtFTF9DVVJSRU5DWSkge1xuICAgIHJldHVybiBTSEVLRUxfQ1VSUkVOQ1k7XG4gIH1cbiAgcmV0dXJuIGN1cnJlbmN5U3RyO1xufVxuXG5mdW5jdGlvbiBnZXRJbnN0YWxsbWVudHNJbmZvKHR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKTogVHJhbnNhY3Rpb25JbnN0YWxsbWVudHMgfCB1bmRlZmluZWQge1xuICBpZiAoIXR4bi5tb3JlSW5mbyB8fCAhdHhuLm1vcmVJbmZvLmluY2x1ZGVzKElOU1RBTExNRU5UU19LRVlXT1JEKSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgbWF0Y2hlcyA9IHR4bi5tb3JlSW5mby5tYXRjaCgvXFxkKy9nKTtcbiAgaWYgKCFtYXRjaGVzIHx8IG1hdGNoZXMubGVuZ3RoIDwgMikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG51bWJlcjogcGFyc2VJbnQobWF0Y2hlc1swXSwgMTApLFxuICAgIHRvdGFsOiBwYXJzZUludChtYXRjaGVzWzFdLCAxMCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uVHlwZSh0eG46IFNjcmFwZWRUcmFuc2FjdGlvbikge1xuICByZXR1cm4gZ2V0SW5zdGFsbG1lbnRzSW5mbyh0eG4pID8gVHJhbnNhY3Rpb25UeXBlcy5JbnN0YWxsbWVudHMgOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbDtcbn1cblxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSwgcHJvY2Vzc2VkRGF0ZTogc3RyaW5nKTogVHJhbnNhY3Rpb25bXSB7XG4gIGNvbnN0IGZpbHRlcmVkVHhucyA9IHR4bnMuZmlsdGVyKCh0eG4pID0+IHR4bi5kZWFsU3VtVHlwZSAhPT0gJzEnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR4bi52b3VjaGVyTnVtYmVyUmF0eiAhPT0gJzAwMDAwMDAwMCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHhuLnZvdWNoZXJOdW1iZXJSYXR6T3V0Ym91bmQgIT09ICcwMDAwMDAwMDAnKTtcblxuICByZXR1cm4gZmlsdGVyZWRUeG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgaXNPdXRib3VuZCA9IHR4bi5kZWFsU3VtT3V0Ym91bmQ7XG4gICAgY29uc3QgdHhuRGF0ZVN0ciA9IGlzT3V0Ym91bmQgPyB0eG4uZnVsbFB1cmNoYXNlRGF0ZU91dGJvdW5kIDogdHhuLmZ1bGxQdXJjaGFzZURhdGU7XG4gICAgY29uc3QgdHhuTW9tZW50ID0gbW9tZW50KHR4bkRhdGVTdHIsIERBVEVfRk9STUFUKTtcblxuICAgIGNvbnN0IGN1cnJlbnRQcm9jZXNzZWREYXRlID0gdHhuLmZ1bGxQYXltZW50RGF0ZSA/XG4gICAgICBtb21lbnQodHhuLmZ1bGxQYXltZW50RGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCkgOlxuICAgICAgcHJvY2Vzc2VkRGF0ZTtcbiAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uID0ge1xuICAgICAgdHlwZTogZ2V0VHJhbnNhY3Rpb25UeXBlKHR4biksXG4gICAgICBpZGVudGlmaWVyOiBwYXJzZUludChpc091dGJvdW5kID8gdHhuLnZvdWNoZXJOdW1iZXJSYXR6T3V0Ym91bmQgOiB0eG4udm91Y2hlck51bWJlclJhdHosIDEwKSxcbiAgICAgIGRhdGU6IHR4bk1vbWVudC50b0lTT1N0cmluZygpLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogY3VycmVudFByb2Nlc3NlZERhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogaXNPdXRib3VuZCA/IC10eG4uZGVhbFN1bU91dGJvdW5kIDogLXR4bi5kZWFsU3VtLFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogY29udmVydEN1cnJlbmN5KHR4bi5jdXJyZW5jeUlkKSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGlzT3V0Ym91bmQgPyAtdHhuLnBheW1lbnRTdW1PdXRib3VuZCA6IC10eG4ucGF5bWVudFN1bSxcbiAgICAgIGRlc2NyaXB0aW9uOiBpc091dGJvdW5kID8gdHhuLmZ1bGxTdXBwbGllck5hbWVPdXRib3VuZCA6IHR4bi5mdWxsU3VwcGxpZXJOYW1lSGViLFxuICAgICAgbWVtbzogdHhuLm1vcmVJbmZvIHx8ICcnLFxuICAgICAgaW5zdGFsbG1lbnRzOiBnZXRJbnN0YWxsbWVudHNJbmZvKHR4bikgfHwgdW5kZWZpbmVkLFxuICAgICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIHN0YXJ0TW9tZW50OiBNb21lbnQsIG1vbnRoTW9tZW50OiBNb21lbnQpOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleD4ge1xuICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IGZldGNoQWNjb3VudHMocGFnZSwgb3B0aW9ucy5zZXJ2aWNlc1VybCwgbW9udGhNb21lbnQpO1xuICBjb25zdCBkYXRhVXJsID0gZ2V0VHJhbnNhY3Rpb25zVXJsKG9wdGlvbnMuc2VydmljZXNVcmwsIG1vbnRoTW9tZW50KTtcbiAgY29uc3QgZGF0YVJlc3VsdCA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkVHJhbnNhY3Rpb25EYXRhPihwYWdlLCBkYXRhVXJsKTtcbiAgaWYgKGRhdGFSZXN1bHQgJiYgXy5nZXQoZGF0YVJlc3VsdCwgJ0hlYWRlci5TdGF0dXMnKSA9PT0gJzEnICYmIGRhdGFSZXN1bHQuQ2FyZHNUcmFuc2FjdGlvbnNMaXN0QmVhbikge1xuICAgIGNvbnN0IGFjY291bnRUeG5zOiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXggPSB7fTtcbiAgICBhY2NvdW50cy5mb3JFYWNoKChhY2NvdW50KSA9PiB7XG4gICAgICBjb25zdCB0eG5Hcm91cHM6IFNjcmFwZWRDdXJyZW50Q2FyZFRyYW5zYWN0aW9uc1tdID0gXy5nZXQoZGF0YVJlc3VsdCwgYENhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4uSW5kZXgke2FjY291bnQuaW5kZXh9LkN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zYCk7XG4gICAgICBpZiAodHhuR3JvdXBzKSB7XG4gICAgICAgIGxldCBhbGxUeG5zOiBUcmFuc2FjdGlvbltdID0gW107XG4gICAgICAgIHR4bkdyb3Vwcy5mb3JFYWNoKCh0eG5Hcm91cCkgPT4ge1xuICAgICAgICAgIGlmICh0eG5Hcm91cC50eG5Jc3JhZWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHR4bnMgPSBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bkdyb3VwLnR4bklzcmFlbCwgYWNjb3VudC5wcm9jZXNzZWREYXRlKTtcbiAgICAgICAgICAgIGFsbFR4bnMucHVzaCguLi50eG5zKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR4bkdyb3VwLnR4bkFicm9hZCkge1xuICAgICAgICAgICAgY29uc3QgdHhucyA9IGNvbnZlcnRUcmFuc2FjdGlvbnModHhuR3JvdXAudHhuQWJyb2FkLCBhY2NvdW50LnByb2Nlc3NlZERhdGUpO1xuICAgICAgICAgICAgYWxsVHhucy5wdXNoKC4uLnR4bnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMpIHtcbiAgICAgICAgICBhbGxUeG5zID0gZml4SW5zdGFsbG1lbnRzKGFsbFR4bnMpO1xuICAgICAgICB9XG4gICAgICAgIGFsbFR4bnMgPSBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMoYWxsVHhucywgc3RhcnRNb21lbnQsIG9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSk7XG5cbiAgICAgICAgYWNjb3VudFR4bnNbYWNjb3VudC5hY2NvdW50TnVtYmVyXSA9IHtcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiBhY2NvdW50LmFjY291bnROdW1iZXIsXG4gICAgICAgICAgaW5kZXg6IGFjY291bnQuaW5kZXgsXG4gICAgICAgICAgdHhuczogYWxsVHhucyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYWNjb3VudFR4bnM7XG4gIH1cblxuICByZXR1cm4ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWxsVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIHN0YXJ0TW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSBvcHRpb25zLmZ1dHVyZU1vbnRoc1RvU2NyYXBlID8/IDE7XG4gIGNvbnN0IGFsbE1vbnRocyA9IGdldEFsbE1vbnRoTW9tZW50cyhzdGFydE1vbWVudCwgZnV0dXJlTW9udGhzVG9TY3JhcGUpO1xuICBjb25zdCByZXN1bHRzOiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXhbXSA9IGF3YWl0IFByb21pc2UuYWxsKGFsbE1vbnRocy5tYXAoYXN5bmMgKG1vbnRoTW9tZW50KSA9PiB7XG4gICAgcmV0dXJuIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2UsIG9wdGlvbnMsIHN0YXJ0TW9tZW50LCBtb250aE1vbWVudCk7XG4gIH0pKTtcblxuICBjb25zdCBjb21iaW5lZFR4bnM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG5cbiAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQpID0+IHtcbiAgICBPYmplY3Qua2V5cyhyZXN1bHQpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICAgIGxldCB0eG5zRm9yQWNjb3VudCA9IGNvbWJpbmVkVHhuc1thY2NvdW50TnVtYmVyXTtcbiAgICAgIGlmICghdHhuc0ZvckFjY291bnQpIHtcbiAgICAgICAgdHhuc0ZvckFjY291bnQgPSBbXTtcbiAgICAgICAgY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdID0gdHhuc0ZvckFjY291bnQ7XG4gICAgICB9XG4gICAgICBjb25zdCB0b0JlQWRkZWRUeG5zID0gcmVzdWx0W2FjY291bnROdW1iZXJdLnR4bnM7XG4gICAgICBjb21iaW5lZFR4bnNbYWNjb3VudE51bWJlcl0ucHVzaCguLi50b0JlQWRkZWRUeG5zKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgYWNjb3VudHMgPSBPYmplY3Qua2V5cyhjb21iaW5lZFR4bnMpLm1hcCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgdHhuczogY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdLFxuICAgIH07XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogdHJ1ZSxcbiAgICBhY2NvdW50cyxcbiAgfTtcbn1cblxuXG5jbGFzcyBJc3JhY2FyZEFtZXhCYXNlU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZztcblxuICBwcml2YXRlIGNvbXBhbnlDb2RlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzZXJ2aWNlc1VybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zLCBiYXNlVXJsOiBzdHJpbmcsIGNvbXBhbnlDb2RlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuYmFzZVVybCA9IGJhc2VVcmw7XG4gICAgdGhpcy5jb21wYW55Q29kZSA9IGNvbXBhbnlDb2RlO1xuICAgIHRoaXMuc2VydmljZXNVcmwgPSBgJHtiYXNlVXJsfS9zZXJ2aWNlcy9Qcm94eVJlcXVlc3RIYW5kbGVyLmFzaHhgO1xuICB9XG5cbiAgYXN5bmMgbG9naW4oY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscyk6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhZ2Uuc2V0UmVxdWVzdEludGVyY2VwdGlvbih0cnVlKTtcbiAgICB0aGlzLnBhZ2Uub24oJ3JlcXVlc3QnLCAocmVxdWVzdCkgPT4ge1xuICAgICAgaWYgKHJlcXVlc3QudXJsKCkuaW5jbHVkZXMoJ2RldGVjdG9yLWRvbS5taW4uanMnKSkge1xuICAgICAgICBkZWJ1ZygnZm9yY2UgYWJvcnQgZm9yIHJlcXVlc3QgZG8gZG93bmxvYWQgZGV0ZWN0b3ItZG9tLm1pbi5qcyByZXNvdXJjZScpO1xuICAgICAgICByZXF1ZXN0LmFib3J0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXF1ZXN0LmNvbnRpbnVlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gcGFnZScpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhgJHt0aGlzLmJhc2VVcmx9L3BlcnNvbmFsYXJlYS9Mb2dpbmApO1xuXG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dnaW5nSW4pO1xuXG4gICAgY29uc3QgdmFsaWRhdGVVcmwgPSBgJHt0aGlzLnNlcnZpY2VzVXJsfT9yZXFOYW1lPVZhbGlkYXRlSWREYXRhYDtcbiAgICBjb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSB7XG4gICAgICBpZDogY3JlZGVudGlhbHMuaWQsXG4gICAgICBjYXJkU3VmZml4OiBjcmVkZW50aWFscy5jYXJkNkRpZ2l0cyxcbiAgICAgIGNvdW50cnlDb2RlOiBDT1VOVFJZX0NPREUsXG4gICAgICBpZFR5cGU6IElEX1RZUEUsXG4gICAgICBjaGVja0xldmVsOiAnMScsXG4gICAgICBjb21wYW55Q29kZTogdGhpcy5jb21wYW55Q29kZSxcbiAgICB9O1xuICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0V2l0aGluUGFnZTxTY3JhcGVkTG9naW5WYWxpZGF0aW9uPih0aGlzLnBhZ2UsIHZhbGlkYXRlVXJsLCB2YWxpZGF0ZVJlcXVlc3QpO1xuICAgIGlmICghdmFsaWRhdGVSZXN1bHQgfHwgIXZhbGlkYXRlUmVzdWx0LkhlYWRlciB8fCB2YWxpZGF0ZVJlc3VsdC5IZWFkZXIuU3RhdHVzICE9PSAnMScgfHwgIXZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmtub3duIGVycm9yIGR1cmluZyBsb2dpbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRlUmV0dXJuQ29kZSA9IHZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbi5yZXR1cm5Db2RlO1xuICAgIGRlYnVnKGB1c2VyIHZhbGlkYXRlIHdpdGggcmV0dXJuIGNvZGUgJyR7dmFsaWRhdGVSZXR1cm5Db2RlfSdgKTtcbiAgICBpZiAodmFsaWRhdGVSZXR1cm5Db2RlID09PSAnMScpIHtcbiAgICAgIGNvbnN0IHsgdXNlck5hbWUgfSA9IHZhbGlkYXRlUmVzdWx0LlZhbGlkYXRlSWREYXRhQmVhbjtcblxuICAgICAgY29uc3QgbG9naW5VcmwgPSBgJHt0aGlzLnNlcnZpY2VzVXJsfT9yZXFOYW1lPXBlcmZvcm1Mb2dvbklgO1xuICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgS29kTWlzaHRhbWVzaDogdXNlck5hbWUsXG4gICAgICAgIE1pc3BhclppaHV5OiBjcmVkZW50aWFscy5pZCxcbiAgICAgICAgU2lzbWE6IGNyZWRlbnRpYWxzLnBhc3N3b3JkLFxuICAgICAgICBjYXJkU3VmZml4OiBjcmVkZW50aWFscy5jYXJkNkRpZ2l0cyxcbiAgICAgICAgY291bnRyeUNvZGU6IENPVU5UUllfQ09ERSxcbiAgICAgICAgaWRUeXBlOiBJRF9UWVBFLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGxvZ2luUmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0V2l0aGluUGFnZTx7c3RhdHVzOiBzdHJpbmd9Pih0aGlzLnBhZ2UsIGxvZ2luVXJsLCByZXF1ZXN0KTtcbiAgICAgIGRlYnVnKGB1c2VyIGxvZ2luIHdpdGggc3RhdHVzICcke2xvZ2luUmVzdWx0Py5zdGF0dXN9J2ApO1xuXG4gICAgICBpZiAobG9naW5SZXN1bHQgJiYgbG9naW5SZXN1bHQuc3RhdHVzID09PSAnMScpIHtcbiAgICAgICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpblN1Y2Nlc3MpO1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChsb2dpblJlc3VsdCAmJiBsb2dpblJlc3VsdC5zdGF0dXMgPT09ICczJykge1xuICAgICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlUmV0dXJuQ29kZSA9PT0gJzQnKSB7XG4gICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCkge1xuICAgIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICAgIHJldHVybiBmZXRjaEFsbFRyYW5zYWN0aW9ucyh0aGlzLnBhZ2UsIHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHNlcnZpY2VzVXJsOiB0aGlzLnNlcnZpY2VzVXJsLFxuICAgICAgY29tcGFueUNvZGU6IHRoaXMuY29tcGFueUNvZGUsXG4gICAgfSwgc3RhcnRNb21lbnQpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IElzcmFjYXJkQW1leEJhc2VTY3JhcGVyO1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "israeli-bank-scrapers",
3
- "version": "2.2.1",
3
+ "version": "3.0.0",
4
4
  "private": false,
5
5
  "description": "Provide scrapers for all major Israeli banks and credit card companies",
6
6
  "engines": {