israeli-bank-scrapers 3.4.1 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -0
- package/lib/definitions.d.ts +6 -1
- package/lib/definitions.js +6 -1
- package/lib/helpers/fetch.d.ts +2 -1
- package/lib/helpers/fetch.js +26 -9
- package/lib/helpers/storage.d.ts +2 -0
- package/lib/helpers/storage.js +17 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +47 -3
- package/lib/scrapers/amex.d.ts +1 -1
- package/lib/scrapers/amex.js +1 -1
- package/lib/scrapers/amex.test.js +3 -2
- package/lib/scrapers/base-beinleumi-group.d.ts +7 -4
- package/lib/scrapers/base-beinleumi-group.js +1 -1
- package/lib/scrapers/base-isracard-amex.d.ts +8 -3
- package/lib/scrapers/base-isracard-amex.js +13 -11
- package/lib/scrapers/base-scraper-with-browser.d.ts +6 -3
- package/lib/scrapers/base-scraper-with-browser.js +14 -11
- package/lib/scrapers/base-scraper.d.ts +9 -119
- package/lib/scrapers/base-scraper.js +34 -50
- package/lib/scrapers/beyahad-bishvilha.d.ts +6 -3
- package/lib/scrapers/beyahad-bishvilha.js +1 -1
- package/lib/scrapers/discount.d.ts +9 -4
- package/lib/scrapers/discount.js +4 -4
- package/lib/scrapers/discount.test.js +4 -3
- package/lib/scrapers/errors.d.ts +16 -0
- package/lib/scrapers/errors.js +37 -0
- package/lib/scrapers/factory.d.ts +2 -16
- package/lib/scrapers/factory.js +6 -1
- package/lib/scrapers/hapoalim.d.ts +6 -3
- package/lib/scrapers/hapoalim.js +1 -1
- package/lib/scrapers/hapoalim.test.js +2 -2
- package/lib/scrapers/interface.d.ts +146 -0
- package/lib/scrapers/interface.js +2 -0
- package/lib/scrapers/isracard.d.ts +1 -1
- package/lib/scrapers/isracard.js +1 -1
- package/lib/scrapers/isracard.test.js +4 -3
- package/lib/scrapers/leumi.d.ts +8 -4
- package/lib/scrapers/leumi.js +1 -1
- package/lib/scrapers/max.d.ts +6 -3
- package/lib/scrapers/max.js +1 -1
- package/lib/scrapers/mizrahi.d.ts +7 -3
- package/lib/scrapers/mizrahi.js +11 -9
- package/lib/scrapers/one-zero-queries.d.ts +2 -0
- package/lib/scrapers/one-zero-queries.js +562 -0
- package/lib/scrapers/one-zero.d.ts +36 -0
- package/lib/scrapers/one-zero.js +304 -0
- package/lib/scrapers/one-zero.test.d.ts +1 -0
- package/lib/scrapers/one-zero.test.js +67 -0
- package/lib/scrapers/otsar-hahayal.d.ts +6 -3
- package/lib/scrapers/otsar-hahayal.js +1 -1
- package/lib/scrapers/union-bank.d.ts +6 -3
- package/lib/scrapers/union-bank.js +1 -1
- package/lib/scrapers/visa-cal.d.ts +103 -15
- package/lib/scrapers/visa-cal.js +154 -265
- package/lib/scrapers/yahav.d.ts +7 -3
- package/lib/scrapers/yahav.js +1 -1
- package/package.json +2 -2
|
@@ -303,4 +303,4 @@ class UnionBankScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
303
303
|
|
|
304
304
|
var _default = UnionBankScraper;
|
|
305
305
|
exports.default = _default;
|
|
306
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy91bmlvbi1iYW5rLnRzIl0sIm5hbWVzIjpbIkJBU0VfVVJMIiwiVFJBTlNBQ1RJT05TX1VSTCIsIkRBVEVfRk9STUFUIiwiTk9fVFJBTlNBQ1RJT05fSU5fREFURV9SQU5HRV9URVhUIiwiREFURV9IRUFERVIiLCJERVNDUklQVElPTl9IRUFERVIiLCJSRUZFUkVOQ0VfSEVBREVSIiwiREVCSVRfSEVBREVSIiwiQ1JFRElUX0hFQURFUiIsIlBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFX0lEIiwiQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRV9JRCIsIkVSUk9SX01FU1NBR0VfQ0xBU1MiLCJBQ0NPVU5UU19EUk9QRE9XTl9TRUxFQ1RPUiIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJnZXRBbW91bnREYXRhIiwiYW1vdW50U3RyIiwiYW1vdW50U3RyQ29weSIsInJlcGxhY2UiLCJwYXJzZUZsb2F0IiwiZ2V0VHhuQW1vdW50IiwidHhuIiwiY3JlZGl0IiwiZGViaXQiLCJOdW1iZXIiLCJpc05hTiIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwibWFwIiwiY29udmVydGVkRGF0ZSIsImRhdGUiLCJ0b0lTT1N0cmluZyIsImNvbnZlcnRlZEFtb3VudCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwiaWRlbnRpZmllciIsInJlZmVyZW5jZSIsInBhcnNlSW50IiwidW5kZWZpbmVkIiwicHJvY2Vzc2VkRGF0ZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsIlNIRUtFTF9DVVJSRU5DWSIsImNoYXJnZWRBbW91bnQiLCJzdGF0dXMiLCJkZXNjcmlwdGlvbiIsIm1lbW8iLCJnZXRUcmFuc2FjdGlvbkRhdGUiLCJ0ZHMiLCJ0eG5zVGFibGVIZWFkZXJzIiwidHJpbSIsImdldFRyYW5zYWN0aW9uRGVzY3JpcHRpb24iLCJnZXRUcmFuc2FjdGlvblJlZmVyZW5jZSIsImdldFRyYW5zYWN0aW9uRGViaXQiLCJnZXRUcmFuc2FjdGlvbkNyZWRpdCIsImV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHMiLCJ0eG5Sb3ciLCJ0eG5TdGF0dXMiLCJpbm5lclRkcyIsImlzRXhwYW5kZWREZXNjUm93IiwiaWQiLCJlZGl0TGFzdFRyYW5zYWN0aW9uRGVzYyIsImxhc3RUeG4iLCJoYW5kbGVUcmFuc2FjdGlvblJvdyIsInR4blR5cGUiLCJsYXN0VHJhbnNhY3Rpb24iLCJwb3AiLCJwdXNoIiwiRXJyb3IiLCJnZXRUcmFuc2FjdGlvbnNUYWJsZUhlYWRlcnMiLCJwYWdlIiwidGFibGVUeXBlSWQiLCJoZWFkZXJzTWFwIiwiaGVhZGVyc09ianMiLCJ0aHMiLCJ0aCIsImluZGV4IiwidGV4dCIsImlubmVyVGV4dCIsImhlYWRlck9iaiIsImV4dHJhY3RUcmFuc2FjdGlvbnNGcm9tVGFibGUiLCJ0cmFuc2FjdGlvbnNUYWJsZUhlYWRlcnMiLCJ0cmFuc2FjdGlvbnNSb3dzIiwidHJzIiwidHIiLCJnZXRBdHRyaWJ1dGUiLCJBcnJheSIsImZyb20iLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInRkIiwiaXNOb1RyYW5zYWN0aW9uSW5EYXRlUmFuZ2VFcnJvciIsImhhc0Vycm9ySW5mb0VsZW1lbnQiLCJlcnJvclRleHQiLCIkZXZhbCIsImVycm9yRWxlbWVudCIsImNob29zZUFjY291bnQiLCJhY2NvdW50SWQiLCJoYXNEcm9wRG93bkxpc3QiLCJzZWFyY2hCeURhdGVzIiwic3RhcnREYXRlIiwiZm9ybWF0IiwiZ2V0QWNjb3VudE51bWJlciIsInNlbGVjdGVkU25pZkFjY291bnQiLCJvcHRpb24iLCJleHBhbmRUcmFuc2FjdGlvbnNUYWJsZSIsImhhc0V4cGFuZEFsbEJ1dHRvbiIsInNjcmFwZVRyYW5zYWN0aW9uc0Zyb21UYWJsZSIsInBlbmRpbmdUeG5zIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIlBlbmRpbmciLCJjb21wbGV0ZWRUeG5zIiwiQ29tcGxldGVkIiwiZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyIsIlByb21pc2UiLCJyYWNlIiwibm9UcmFuc2FjdGlvbkluUmFuZ2VFcnJvciIsImZldGNoQWNjb3VudERhdGEiLCJhY2NvdW50TnVtYmVyIiwiZmV0Y2hBY2NvdW50cyIsImFjY291bnRzIiwiYWNjb3VudHNMaXN0IiwiYWNjb3VudCIsImFjY291bnREYXRhIiwid2FpdEZvclBvc3RMb2dpbiIsIlVuaW9uQmFua1NjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsImFkZCIsIm9wdGlvbnMiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1vbWVudCIsIm1heCIsIm5hdmlnYXRlVG8iLCJzdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQVNBOztBQUNBOztBQUNBOzs7O0FBTUEsTUFBTUEsUUFBUSxHQUFHLDRCQUFqQjtBQUNBLE1BQU1DLGdCQUFnQixHQUFJLEdBQUVELFFBQVMsNENBQXJDO0FBQ0EsTUFBTUUsV0FBVyxHQUFHLFVBQXBCO0FBQ0EsTUFBTUMsaUNBQWlDLEdBQUcsOENBQTFDO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLE9BQXBCO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsT0FBM0I7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyxRQUF6QjtBQUNBLE1BQU1DLFlBQVksR0FBRyxNQUFyQjtBQUNBLE1BQU1DLGFBQWEsR0FBRyxNQUF0QjtBQUNBLE1BQU1DLDZC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LFdBQVcsR0FBR0MsZ0JBQU9DLEdBQVAsQ0FBV1Asa0JBQVgsRUFBK0IscUJBQU9sQyxTQUFQLENBQS9CLENBQXBCOztBQUVBLFVBQU0sS0FBSzBDLFVBQUwsQ0FBZ0J0SixnQkFBaEIsQ0FBTjtBQUVBLFVBQU1nSSxRQUFRLEdBQUcsTUFBTUQsYUFBYSxDQUFDLEtBQUtoRCxJQUFOLEVBQVlvRSxXQUFaLENBQXBDO0FBRUEsV0FBTztBQUNMSSxNQUFBQSxPQUFPLEVBQUUsSUFESjtBQUVMdkIsTUFBQUE7QUFGSyxLQUFQO0FBSUQ7O0FBeEJtRDs7ZUEyQnZDSyxnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQge1xuICBkcm9wZG93blNlbGVjdCxcbiAgZHJvcGRvd25FbGVtZW50cyxcbiAgZmlsbElucHV0LFxuICBjbGlja0J1dHRvbixcbiAgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxuICBwYWdlRXZhbEFsbCxcbiAgZWxlbWVudFByZXNlbnRPblBhZ2UsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbnNBY2NvdW50LCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcyxcbiAgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IFNjcmFwZXJDcmVkZW50aWFscyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyJztcblxuY29uc3QgQkFTRV9VUkwgPSAnaHR0cHM6Ly9oYi51bmlvbmJhbmsuY28uaWwnO1xuY29uc3QgVFJBTlNBQ1RJT05TX1VSTCA9IGAke0JBU0VfVVJMfS9lQmFua2luZy9BY2NvdW50cy9FeHRlbmRlZEFjdGl2aXR5LmFzcHgjL2A7XG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWSc7XG5jb25zdCBOT19UUkFOU0FDVElPTl9JTl9EQVRFX1JBTkdFX1RFWFQgPSAn15zXkCDXp9eZ15nXnteV16og16rXoNeV16LXldeqINee16rXkNeZ157XldeqINei15wg16TXmSDXlNeh15nXoNeV158g16nXlNeV15LXk9eoJztcbmNvbnN0IERBVEVfSEVBREVSID0gJ9eq15DXqNeZ15onO1xuY29uc3QgREVTQ1JJUFRJT05fSEVBREVSID0gJ9eq15nXkNeV16gnO1xuY29uc3QgUkVGRVJFTkNFX0hFQURFUiA9ICfXkNeh157Xm9eq15AnO1xuY29uc3QgREVCSVRfSEVBREVSID0gJ9eX15XXkdeUJztcbmNvbnN0IENSRURJVF9IRUFERVIgPSAn15bXm9eV16onO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfVEFCTEVfSUQgPSAndHJUb2RheUFjdGl2aXR5TmFwYVRhYmxlVXBwZXInO1xuY29uc3QgQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRV9JRCA9ICdjdGxBY3Rpdml0eVRhYmxlJztcbmNvbnN0IEVSUk9SX01FU1NBR0VfQ0xBU1MgPSAnZXJySW5mbyc7XG5jb25zdCBBQ0NPVU5UU19EUk9QRE9XTl9TRUxFQ1RPUiA9ICdzZWxlY3QjZGRsQWNjb3VudHNfbV9kZGwnO1xuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpIHtcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbL2VCYW5raW5nXFwvQWNjb3VudHMvXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFsvSW50ZXJuYWxTaXRlXFwvQ3VzdG9tVXBkYXRlXFwvbGV1bWlcXC9Mb2dpblBhZ2UuQVNQL107XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJyN1aWQnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3Bhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ29weSA9IGFtb3VudFN0ci5yZXBsYWNlKCcsJywgJycpO1xuICByZXR1cm4gcGFyc2VGbG9hdChhbW91bnRTdHJDb3B5KTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIGNyZWRpdDogc3RyaW5nO1xuICBkZWJpdDogc3RyaW5nO1xuICBkYXRlOiBzdHJpbmc7XG4gIHJlZmVyZW5jZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbWVtbzogc3RyaW5nO1xuICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXM7XG59XG5cbmZ1bmN0aW9uIGdldFR4bkFtb3VudCh0eG46IFNjcmFwZWRUcmFuc2FjdGlvbikge1xuICBjb25zdCBjcmVkaXQgPSBnZXRBbW91bnREYXRhKHR4bi5jcmVkaXQpO1xuICBjb25zdCBkZWJpdCA9IGdldEFtb3VudERhdGEodHhuLmRlYml0KTtcbiAgcmV0dXJuIChOdW1iZXIuaXNOYU4oY3JlZGl0KSA/IDAgOiBjcmVkaXQpIC0gKE51bWJlci5pc05hTihkZWJpdCkgPyAwIDogZGViaXQpO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIHJldHVybiB0eG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgY29udmVydGVkRGF0ZSA9IG1vbWVudCh0eG4uZGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgY29udmVydGVkQW1vdW50ID0gZ2V0VHhuQW1vdW50KHR4bik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgaWRlbnRpZmllcjogdHhuLnJlZmVyZW5jZSA/IHBhcnNlSW50KHR4bi5yZWZlcmVuY2UsIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGRhdGU6IGNvbnZlcnRlZERhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiBjb252ZXJ0ZWREYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IGNvbnZlcnRlZEFtb3VudCxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGNvbnZlcnRlZEFtb3VudCxcbiAgICAgIHN0YXR1czogdHhuLnN0YXR1cyxcbiAgICAgIGRlc2NyaXB0aW9uOiB0eG4uZGVzY3JpcHRpb24sXG4gICAgICBtZW1vOiB0eG4ubWVtbyxcbiAgICB9O1xuICB9KTtcbn1cblxudHlwZSBUcmFuc2FjdGlvbnNUciA9IHsgaWQ6IHN0cmluZywgaW5uZXJUZHM6IFRyYW5zYWN0aW9uc1RyVGRzIH07XG50eXBlIFRyYW5zYWN0aW9uVGFibGVIZWFkZXJzID0gUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbnR5cGUgVHJhbnNhY3Rpb25zVHJUZHMgPSBzdHJpbmdbXTtcblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25EYXRlKHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHR4bnNUYWJsZUhlYWRlcnM6IFRyYW5zYWN0aW9uVGFibGVIZWFkZXJzKSB7XG4gIHJldHVybiAodGRzW3R4bnNUYWJsZUhlYWRlcnNbREFURV9IRUFERVJdXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRlc2NyaXB0aW9uKHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHR4bnNUYWJsZUhlYWRlcnM6IFRyYW5zYWN0aW9uVGFibGVIZWFkZXJzKSB7XG4gIHJldHVybiAodGRzW3R4bnNUYWJsZUhlYWRlcnNbREVTQ1JJUFRJT05fSEVBREVSXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25SZWZlcmVuY2UodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHhuc1RhYmxlSGVhZGVyczogVHJhbnNhY3Rpb25UYWJsZUhlYWRlcnMpIHtcbiAgcmV0dXJuICh0ZHNbdHhuc1RhYmxlSGVhZGVyc1tSRUZFUkVOQ0VfSEVBREVSXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25EZWJpdCh0ZHM6IFRyYW5zYWN0aW9uc1RyVGRzLCB0eG5zVGFibGVIZWFkZXJzOiBUcmFuc2FjdGlvblRhYmxlSGVhZGVycykge1xuICByZXR1cm4gKHRkc1t0eG5zVGFibGVIZWFkZXJzW0RFQklUX0hFQURFUl1dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uQ3JlZGl0KHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHR4bnNUYWJsZUhlYWRlcnM6IFRyYW5zYWN0aW9uVGFibGVIZWFkZXJzKSB7XG4gIHJldHVybiAodGRzW3R4bnNUYWJsZUhlYWRlcnNbQ1JFRElUX0hFQURFUl1dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHModHhuUm93OiBUcmFuc2FjdGlvbnNUciwgdHhuc1RhYmxlSGVhZGVyczogVHJhbnNhY3Rpb25UYWJsZUhlYWRlcnMsIHR4blN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcyk6IFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIGNvbnN0IHRkcyA9IHR4blJvdy5pbm5lclRkcztcbiAgcmV0dXJuIHtcbiAgICBzdGF0dXM6IHR4blN0YXR1cyxcbiAgICBkYXRlOiBnZXRUcmFuc2FjdGlvbkRhdGUodGRzLCB0eG5zVGFibGVIZWFkZXJzKSxcbiAgICBkZXNjcmlwdGlvbjogZ2V0VHJhbnNhY3Rpb25EZXNjcmlwdGlvbih0ZHMsIHR4bnNUYWJsZUhlYWRlcnMpLFxuICAgIHJlZmVyZW5jZTogZ2V0VHJhbnNhY3Rpb25SZWZlcmVuY2UodGRzLCB0eG5zVGFibGVIZWFkZXJzKSxcbiAgICBkZWJpdDogZ2V0VHJhbnNhY3Rpb25EZWJpdCh0ZHMsIHR4bnNUYWJsZUhlYWRlcnMpLFxuICAgIGNyZWRpdDogZ2V0VHJhbnNhY3Rpb25DcmVkaXQodGRzLCB0eG5zVGFibGVIZWFkZXJzKSxcbiAgICBtZW1vOiAnJyxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNFeHBhbmRlZERlc2NSb3codHhuUm93OiBUcmFuc2FjdGlvbnNUcikge1xuICByZXR1cm4gdHhuUm93LmlkID09PSAncm93QWRkZWQnO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuZnVuY3Rpb24gZWRpdExhc3RUcmFuc2FjdGlvbkRlc2ModHhuUm93OiBUcmFuc2FjdGlvbnNUciwgbGFzdFR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKTogU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgbGFzdFR4bi5kZXNjcmlwdGlvbiA9IGAke2xhc3RUeG4uZGVzY3JpcHRpb259ICR7dHhuUm93LmlubmVyVGRzWzBdfWA7XG4gIHJldHVybiBsYXN0VHhuO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVUcmFuc2FjdGlvblJvdyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSwgdHhuc1RhYmxlSGVhZGVyczogVHJhbnNhY3Rpb25UYWJsZUhlYWRlcnMsIHR4blJvdzogVHJhbnNhY3Rpb25zVHIsIHR4blR5cGU6IFRyYW5zYWN0aW9uU3RhdHVzZXMpIHtcbiAgaWYgKGlzRXhwYW5kZWREZXNjUm93KHR4blJvdykpIHtcbiAgICBjb25zdCBsYXN0VHJhbnNhY3Rpb24gPSB0eG5zLnBvcCgpO1xuICAgIGlmIChsYXN0VHJhbnNhY3Rpb24pIHtcbiAgICAgIHR4bnMucHVzaChlZGl0TGFzdFRyYW5zYWN0aW9uRGVzYyh0eG5Sb3csIGxhc3RUcmFuc2FjdGlvbikpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludGVybmFsIHVuaW9uLWJhbmsgZXJyb3InKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdHhucy5wdXNoKGV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHModHhuUm93LCB0eG5zVGFibGVIZWFkZXJzLCB0eG5UeXBlKSk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25zVGFibGVIZWFkZXJzKHBhZ2U6IFBhZ2UsIHRhYmxlVHlwZUlkOiBzdHJpbmcpIHtcbiAgY29uc3QgaGVhZGVyc01hcDogUmVjb3JkPHN0cmluZywgYW55PiA9IFtdO1xuICBjb25zdCBoZWFkZXJzT2JqcyA9IGF3YWl0IHBhZ2VFdmFsQWxsKHBhZ2UsIGAjV29ya1NwYWNlQm94ICMke3RhYmxlVHlwZUlkfSB0cltjbGFzcz0naGVhZGVyJ10gdGhgLCBudWxsLCAodGhzKSA9PiB7XG4gICAgcmV0dXJuIHRocy5tYXAoKHRoLCBpbmRleCkgPT4gKHtcbiAgICAgIHRleHQ6ICh0aCBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0LnRyaW0oKSxcbiAgICAgIGluZGV4LFxuICAgIH0pKTtcbiAgfSk7XG5cbiAgZm9yIChjb25zdCBoZWFkZXJPYmogb2YgaGVhZGVyc09ianMpIHtcbiAgICBoZWFkZXJzTWFwW2hlYWRlck9iai50ZXh0XSA9IGhlYWRlck9iai5pbmRleDtcbiAgfVxuICByZXR1cm4gaGVhZGVyc01hcDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21UYWJsZShwYWdlOiBQYWdlLCB0YWJsZVR5cGVJZDogc3RyaW5nLCB0eG5UeXBlOiBUcmFuc2FjdGlvblN0YXR1c2VzKTogUHJvbWlzZTxTY3JhcGVkVHJhbnNhY3Rpb25bXT4ge1xuICBjb25zdCB0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSA9IFtdO1xuICBjb25zdCB0cmFuc2FjdGlvbnNUYWJsZUhlYWRlcnMgPSBhd2FpdCBnZXRUcmFuc2FjdGlvbnNUYWJsZUhlYWRlcnMocGFnZSwgdGFibGVUeXBlSWQpO1xuXG4gIGNvbnN0IHRyYW5zYWN0aW9uc1Jvd3MgPSBhd2FpdCBwYWdlRXZhbEFsbDxUcmFuc2FjdGlvbnNUcltdPihwYWdlLCBgI1dvcmtTcGFjZUJveCAjJHt0YWJsZVR5cGVJZH0gdHJbY2xhc3NdOm5vdChbY2xhc3M9J2hlYWRlciddKWAsIFtdLCAodHJzKSA9PiB7XG4gICAgcmV0dXJuICh0cnMgYXMgSFRNTEVsZW1lbnRbXSkubWFwKCh0cikgPT4gKHtcbiAgICAgIGlkOiAodHIpLmdldEF0dHJpYnV0ZSgnaWQnKSB8fCAnJyxcbiAgICAgIGlubmVyVGRzOiBBcnJheS5mcm9tKHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZCcpKS5tYXAoKHRkKSA9PiAodGQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dCksXG4gICAgfSkpO1xuICB9KTtcblxuICBmb3IgKGNvbnN0IHR4blJvdyBvZiB0cmFuc2FjdGlvbnNSb3dzKSB7XG4gICAgaGFuZGxlVHJhbnNhY3Rpb25Sb3codHhucywgdHJhbnNhY3Rpb25zVGFibGVIZWFkZXJzLCB0eG5Sb3csIHR4blR5cGUpO1xuICB9XG4gIHJldHVybiB0eG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpc05vVHJhbnNhY3Rpb25JbkRhdGVSYW5nZUVycm9yKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgaGFzRXJyb3JJbmZvRWxlbWVudCA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIGAuJHtFUlJPUl9NRVNTQUdFX0NMQVNTfWApO1xuICBpZiAoaGFzRXJyb3JJbmZvRWxlbWVudCkge1xuICAgIGNvbnN0IGVycm9yVGV4dCA9IGF3YWl0IHBhZ2UuJGV2YWwoYC4ke0VSUk9SX01FU1NBR0VfQ0xBU1N9YCwgKGVycm9yRWxlbWVudCkgPT4ge1xuICAgICAgcmV0dXJuIChlcnJvckVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dDtcbiAgICB9KTtcbiAgICByZXR1cm4gZXJyb3JUZXh0LnRyaW0oKSA9PT0gTk9fVFJBTlNBQ1RJT05fSU5fREFURV9SQU5HRV9URVhUO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2hvb3NlQWNjb3VudChwYWdlOiBQYWdlLCBhY2NvdW50SWQ6IHN0cmluZykge1xuICBjb25zdCBoYXNEcm9wRG93bkxpc3QgPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBBQ0NPVU5UU19EUk9QRE9XTl9TRUxFQ1RPUik7XG4gIGlmIChoYXNEcm9wRG93bkxpc3QpIHtcbiAgICBhd2FpdCBkcm9wZG93blNlbGVjdChwYWdlLCBBQ0NPVU5UU19EUk9QRE9XTl9TRUxFQ1RPUiwgYWNjb3VudElkKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBzZWFyY2hCeURhdGVzKHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50KSB7XG4gIGF3YWl0IGRyb3Bkb3duU2VsZWN0KHBhZ2UsICdzZWxlY3QjZGRsVHJhbnNhY3Rpb25QZXJpb2QnLCAnMDA0Jyk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnc2VsZWN0I2RkbFRyYW5zYWN0aW9uUGVyaW9kJyk7XG4gIGF3YWl0IGZpbGxJbnB1dChcbiAgICBwYWdlLFxuICAgICdpbnB1dCNkdEZyb21EYXRlX3RleHRCb3gnLFxuICAgIHN0YXJ0RGF0ZS5mb3JtYXQoREFURV9GT1JNQVQpLFxuICApO1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnaW5wdXQjYnRuRGlzcGxheURhdGVzJyk7XG4gIGF3YWl0IHdhaXRGb3JOYXZpZ2F0aW9uKHBhZ2UpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50TnVtYmVyKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3Qgc2VsZWN0ZWRTbmlmQWNjb3VudCA9IGF3YWl0IHBhZ2UuJGV2YWwoJyNkZGxBY2NvdW50c19tX2RkbCBvcHRpb25bc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiXScsIChvcHRpb24pID0+IHtcbiAgICByZXR1cm4gKG9wdGlvbiBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0O1xuICB9KTtcblxuICByZXR1cm4gc2VsZWN0ZWRTbmlmQWNjb3VudC5yZXBsYWNlKCcvJywgJ18nKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXhwYW5kVHJhbnNhY3Rpb25zVGFibGUocGFnZTogUGFnZSkge1xuICBjb25zdCBoYXNFeHBhbmRBbGxCdXR0b24gPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBcImFbaWQqPSdsbmtDdGxFeHBhbmRBbGwnXVwiKTtcbiAgaWYgKGhhc0V4cGFuZEFsbEJ1dHRvbikge1xuICAgIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIFwiYVtpZCo9J2xua0N0bEV4cGFuZEFsbCddXCIpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNjcmFwZVRyYW5zYWN0aW9uc0Zyb21UYWJsZShwYWdlOiBQYWdlKTogUHJvbWlzZTxUcmFuc2FjdGlvbltdPiB7XG4gIGNvbnN0IHBlbmRpbmdUeG5zID0gYXdhaXQgZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21UYWJsZShwYWdlLCBQRU5ESU5HX1RSQU5TQUNUSU9OU19UQUJMRV9JRCxcbiAgICBUcmFuc2FjdGlvblN0YXR1c2VzLlBlbmRpbmcpO1xuICBjb25zdCBjb21wbGV0ZWRUeG5zID0gYXdhaXQgZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21UYWJsZShwYWdlLCBDT01QTEVURURfVFJBTlNBQ1RJT05TX1RBQkxFX0lELFxuICAgIFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkKTtcbiAgY29uc3QgdHhucyA9IFtcbiAgICAuLi5wZW5kaW5nVHhucyxcbiAgICAuLi5jb21wbGV0ZWRUeG5zLFxuICBdO1xuICByZXR1cm4gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlKTogUHJvbWlzZTxUcmFuc2FjdGlvbltdPiB7XG4gIGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIGAjJHtDT01QTEVURURfVFJBTlNBQ1RJT05TX1RBQkxFX0lEfWAsIGZhbHNlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgYC4ke0VSUk9SX01FU1NBR0VfQ0xBU1N9YCwgZmFsc2UpLFxuICBdKTtcblxuICBjb25zdCBub1RyYW5zYWN0aW9uSW5SYW5nZUVycm9yID0gYXdhaXQgaXNOb1RyYW5zYWN0aW9uSW5EYXRlUmFuZ2VFcnJvcihwYWdlKTtcbiAgaWYgKG5vVHJhbnNhY3Rpb25JblJhbmdlRXJyb3IpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBhd2FpdCBleHBhbmRUcmFuc2FjdGlvbnNUYWJsZShwYWdlKTtcbiAgcmV0dXJuIHNjcmFwZVRyYW5zYWN0aW9uc0Zyb21UYWJsZShwYWdlKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBY2NvdW50RGF0YShwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCwgYWNjb3VudElkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnQ+IHtcbiAgYXdhaXQgY2hvb3NlQWNjb3VudChwYWdlLCBhY2NvdW50SWQpO1xuICBhd2FpdCBzZWFyY2hCeURhdGVzKHBhZ2UsIHN0YXJ0RGF0ZSk7XG4gIGNvbnN0IGFjY291bnROdW1iZXIgPSBhd2FpdCBnZXRBY2NvdW50TnVtYmVyKHBhZ2UpO1xuICBjb25zdCB0eG5zID0gYXdhaXQgZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyhwYWdlKTtcbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyLFxuICAgIHR4bnMsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudHMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgY29uc3QgYWNjb3VudHM6IFRyYW5zYWN0aW9uc0FjY291bnRbXSA9IFtdO1xuICBjb25zdCBhY2NvdW50c0xpc3QgPSBhd2FpdCBkcm9wZG93bkVsZW1lbnRzKHBhZ2UsIEFDQ09VTlRTX0RST1BET1dOX1NFTEVDVE9SKTtcbiAgZm9yIChjb25zdCBhY2NvdW50IG9mIGFjY291bnRzTGlzdCkge1xuICAgIGlmIChhY2NvdW50LnZhbHVlICE9PSAnLTEnKSB7IC8vIFNraXAgXCJBbGwgYWNjb3VudHNcIiBvcHRpb25cbiAgICAgIGNvbnN0IGFjY291bnREYXRhID0gYXdhaXQgZmV0Y2hBY2NvdW50RGF0YShwYWdlLCBzdGFydERhdGUsIGFjY291bnQudmFsdWUpO1xuICAgICAgYWNjb3VudHMucHVzaChhY2NvdW50RGF0YSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBhY2NvdW50cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gd2FpdEZvclBvc3RMb2dpbihwYWdlOiBQYWdlKSB7XG4gIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnI3NpZ25vZmYnLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyNyZXN0b3JlJywgdHJ1ZSksXG4gIF0pO1xufVxuXG5jbGFzcyBVbmlvbkJhbmtTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHtCQVNFX1VSTH1gLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJyNlbnRlcicsXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiB3YWl0Rm9yUG9zdExvZ2luKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKS5hZGQoMSwgJ2RheScpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhUUkFOU0FDVElPTlNfVVJMKTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hBY2NvdW50cyh0aGlzLnBhZ2UsIHN0YXJ0TW9tZW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBVbmlvbkJhbmtTY3JhcGVyO1xuIl19
|
|
306
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy91bmlvbi1iYW5rLnRzIl0sIm5hbWVzIjpbIkJBU0VfVVJMIiwiVFJBTlNBQ1RJT05TX1VSTCIsIkRBVEVfRk9STUFUIiwiTk9fVFJBTlNBQ1RJT05fSU5fREFURV9SQU5HRV9URVhUIiwiREFURV9IRUFERVIiLCJERVNDUklQVElPTl9IRUFERVIiLCJSRUZFUkVOQ0VfSEVBREVSIiwiREVCSVRfSEVBREVSIiwiQ1JFRElUX0hFQURFUiIsIlBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFX0lEIiwiQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRV9JRCIsIkVSUk9SX01FU1NBR0VfQ0xBU1MiLCJBQ0NPVU5UU19EUk9QRE9XTl9TRUxFQ1RPUiIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJnZXRBbW91bnREYXRhIiwiYW1vdW50U3RyIiwiYW1vdW50U3RyQ29weSIsInJlcGxhY2UiLCJwYXJzZUZsb2F0IiwiZ2V0VHhuQW1vdW50IiwidHhuIiwiY3JlZGl0IiwiZGViaXQiLCJOdW1iZXIiLCJpc05hTiIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwibWFwIiwiY29udmVydGVkRGF0ZSIsImRhdGUiLCJ0b0lTT1N0cmluZyIsImNvbnZlcnRlZEFtb3VudCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwiaWRlbnRpZmllciIsInJlZmVyZW5jZSIsInBhcnNlSW50IiwidW5kZWZpbmVkIiwicHJvY2Vzc2VkRGF0ZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsIlNIRUtFTF9DVVJSRU5DWSIsImNoYXJnZWRBbW91bnQiLCJzdGF0dXMiLCJkZXNjcmlwdGlvbiIsIm1lbW8iLCJnZXRUcmFuc2FjdGlvbkRhdGUiLCJ0ZHMiLCJ0eG5zVGFibGVIZWFkZXJzIiwidHJpbSIsImdldFRyYW5zYWN0aW9uRGVzY3JpcHRpb24iLCJnZXRUcmFuc2FjdGlvblJlZmVyZW5jZSIsImdldFRyYW5zYWN0aW9uRGViaXQiLCJnZXRUcmFuc2FjdGlvbkNyZWRpdCIsImV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHMiLCJ0eG5Sb3ciLCJ0eG5TdGF0dXMiLCJpbm5lclRkcyIsImlzRXhwYW5kZWREZXNjUm93IiwiaWQiLCJlZGl0TGFzdFRyYW5zYWN0aW9uRGVzYyIsImxhc3RUeG4iLCJoYW5kbGVUcmFuc2FjdGlvblJvdyIsInR4blR5cGUiLCJsYXN0VHJhbnNhY3Rpb24iLCJwb3AiLCJwdXNoIiwiRXJyb3IiLCJnZXRUcmFuc2FjdGlvbnNUYWJsZUhlYWRlcnMiLCJwYWdlIiwidGFibGVUeXBlSWQiLCJoZWFkZXJzTWFwIiwiaGVhZGVyc09ianMiLCJ0aHMiLCJ0aCIsImluZGV4IiwidGV4dCIsImlubmVyVGV4dCIsImhlYWRlck9iaiIsImV4dHJhY3RUcmFuc2FjdGlvbnNGcm9tVGFibGUiLCJ0cmFuc2FjdGlvbnNUYWJsZUhlYWRlcnMiLCJ0cmFuc2FjdGlvbnNSb3dzIiwidHJzIiwidHIiLCJnZXRBdHRyaWJ1dGUiLCJBcnJheSIsImZyb20iLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInRkIiwiaXNOb1RyYW5zYWN0aW9uSW5EYXRlUmFuZ2VFcnJvciIsImhhc0Vycm9ySW5mb0VsZW1lbnQiLCJlcnJvclRleHQiLCIkZXZhbCIsImVycm9yRWxlbWVudCIsImNob29zZUFjY291bnQiLCJhY2NvdW50SWQiLCJoYXNEcm9wRG93bkxpc3QiLCJzZWFyY2hCeURhdGVzIiwic3RhcnREYXRlIiwiZm9ybWF0IiwiZ2V0QWNjb3VudE51bWJlciIsInNlbGVjdGVkU25pZkFjY291bnQiLCJvcHRpb24iLCJleHBhbmRUcmFuc2FjdGlvbnNUYWJsZSIsImhhc0V4cGFuZEFsbEJ1dHRvbiIsInNjcmFwZVRyYW5zYWN0aW9uc0Zyb21UYWJsZSIsInBlbmRpbmdUeG5zIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIlBlbmRpbmciLCJjb21wbGV0ZWRUeG5zIiwiQ29tcGxldGVkIiwiZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyIsIlByb21pc2UiLCJyYWNlIiwibm9UcmFuc2FjdGlvbkluUmFuZ2VFcnJvciIsImZldGNoQWNjb3VudERhdGEiLCJhY2NvdW50TnVtYmVyIiwiZmV0Y2hBY2NvdW50cyIsImFjY291bnRzIiwiYWNjb3VudHNMaXN0IiwiYWNjb3VudCIsImFjY291bnREYXRhIiwid2FpdEZvclBvc3RMb2dpbiIsIlVuaW9uQmFua1NjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsImFkZCIsIm9wdGlvbnMiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1vbWVudCIsIm1heCIsIm5hdmlnYXRlVG8iLCJzdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQVNBOztBQUNBOztBQUNBOzs7O0FBS0EsTUFBTUEsUUFBUSxHQUFHLDRCQUFqQjtBQUNBLE1BQU1DLGdCQUFnQixHQUFJLEdBQUVELFFBQVMsNENBQXJDO0FBQ0EsTUFBTUUsV0FBVyxHQUFHLFVBQXBCO0FBQ0EsTUFBTUMsaUNBQWlDLEdBQUcsOENBQTFDO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLE9BQXBCO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsT0FBM0I7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyxRQUF6QjtBQUNBLE1BQU1DLFlBQVksR0FBRyxNQUFyQjtBQUNBLE1BQU1DLGFBQWEsR0FBRyxNQUF0QjtBQUNBLE1BQU1DLDZCQUE2QixHQUFHLCtCQUF0QztBQUNBLE1BQU1DLCtCQUErQixHQUFHLGtCQUF4QztBQUNBLE1BQU1DLG1CQUFtQixHQUFHLFNBQTVCO0FBQ0EsTUFBTUMsMEJBQTBCLEdBQUcsMEJBQW5DOztBQUVBLFNBQVNDLHVCQUFULEdBQW1DO0FBQ2pDLFFBQU1DLElBQTBCLEdBQUcsRUFBbkM7QUFDQUEsRUFBQUEsSUFBSSxDQUFDQyxxQ0FBYUMsT0FBZCxDQUFKLEdBQTZCLENBQUMsb0JBQUQsQ0FBN0I7QUFDQUYsRUFBQUEsSUFBSSxDQUFDQyxxQ0FBYUUsZUFBZCxDQUFKLEdBQXFDLENBQUMsa0RBQUQsQ0FBckM7QUFDQSxTQUFPSCxJQUFQO0FBQ0Q7O0FBRUQsU0FBU0ksaUJBQVQsQ0FBMkJDLFdBQTNCLEVBQW9FO0FBQ2xFLFNBQU8sQ0FDTDtBQUFFQyxJQUFBQSxRQUFRLEVBQUUsTUFBWjtBQUFvQkMsSUFBQUEsS0FBSyxFQUFFRixXQUFXLENBQUNHO0FBQXZDLEdBREssRUFFTDtBQUFFRixJQUFBQSxRQUFRLEVBQUUsV0FBWjtBQUF5QkMsSUFBQUEsS0FBSyxFQUFFRixXQUFXLENBQUNJO0FBQTVDLEdBRkssQ0FBUDtBQUlEOztBQUVELFNBQVNDLGFBQVQsQ0FBdUJDLFNBQXZCLEVBQTBDO0FBQ3hDLFFBQU1DLGFBQWEsR0FBR0QsU0FBUyxDQUFDRSxPQUFWLENBQWtCLEdBQWxCLEVBQXVCLEVBQXZCLENBQXRCO0FBQ0EsU0FBT0MsVUFBVSxDQUFDRixhQUFELENBQWpCO0FBQ0Q7O0FBWUQsU0FBU0csWUFBVCxDQUFzQkMsR0FBdEIsRUFBK0M7QUFDN0MsUUFBTUMsTUFBTSxHQUFHUCxhQUFhLENBQUNNLEdBQUcsQ0FBQ0MsTUFBTCxDQUE1QjtBQUNBLFFBQU1DLEtBQUssR0FBR1IsYUFBYSxDQUFDTSxHQUFHLENBQUNFLEtBQUwsQ0FBM0I7QUFDQSxTQUFPLENBQUNDLE1BQU0sQ0FBQ0MsS0FBUCxDQUFhSCxNQUFiLElBQXVCLENBQXZCLEdBQTJCQSxNQUE1QixLQUF1Q0UsTUFBTSxDQUFDQyxLQUFQLENBQWFGLEtBQWIsSUFBc0IsQ0FBdEIsR0FBMEJBLEtBQWpFLENBQVA7QUFDRDs7QUFFRCxTQUFTRyxtQkFBVCxDQUE2QkMsSUFBN0IsRUFBd0U7QUFDdEUsU0FBT0EsSUFBSSxDQUFDQyxHQUFMLENBQVVQLEdBQUQsSUFBUztBQUN2QixVQUFNUSxhQUFhLEdBQUcscUJBQU9SLEdBQUcsQ0FBQ1MsSUFBWCxFQUFpQnJDLFdBQWpCLEVBQThCc0MsV0FBOUIsRUFBdEI7QUFDQSxVQUFNQyxlQUFlLEdBQUdaLFlBQVksQ0FBQ0MsR0FBRCxDQUFwQztBQUNBLFdBQU87QUFDTFksTUFBQUEsSUFBSSxFQUFFQywrQkFBaUJDLE1BRGxCO0FBRUxDLE1BQUFBLFVBQVUsRUFBRWYsR0FBRyxDQUFDZ0IsU0FBSixHQUFnQkMsUUFBUSxDQUFDakIsR0FBRyxDQUFDZ0IsU0FBTCxFQUFnQixFQUFoQixDQUF4QixHQUE4Q0UsU0FGckQ7QUFHTFQsTUFBQUEsSUFBSSxFQUFFRCxhQUhEO0FBSUxXLE1BQUFBLGFBQWEsRUFBRVgsYUFKVjtBQUtMWSxNQUFBQSxjQUFjLEVBQUVULGVBTFg7QUFNTFUsTUFBQUEsZ0JBQWdCLEVBQUVDLDBCQU5iO0FBT0xDLE1BQUFBLGFBQWEsRUFBRVosZUFQVjtBQVFMYSxNQUFBQSxNQUFNLEVBQUV4QixHQUFHLENBQUN3QixNQVJQO0FBU0xDLE1BQUFBLFdBQVcsRUFBRXpCLEdBQUcsQ0FBQ3lCLFdBVFo7QUFVTEMsTUFBQUEsSUFBSSxFQUFFMUIsR0FBRyxDQUFDMEI7QUFWTCxLQUFQO0FBWUQsR0FmTSxDQUFQO0FBZ0JEOztBQU1ELFNBQVNDLGtCQUFULENBQTRCQyxHQUE1QixFQUFvREMsZ0JBQXBELEVBQStGO0FBQzdGLFNBQU8sQ0FBQ0QsR0FBRyxDQUFDQyxnQkFBZ0IsQ0FBQ3ZELFdBQUQsQ0FBakIsQ0FBSCxJQUFzQyxFQUF2QyxFQUEyQ3dELElBQTNDLEVBQVA7QUFDRDs7QUFFRCxTQUFTQyx5QkFBVCxDQUFtQ0gsR0FBbkMsRUFBMkRDLGdCQUEzRCxFQUFzRztBQUNwRyxTQUFPLENBQUNELEdBQUcsQ0FBQ0MsZ0JBQWdCLENBQUN0RCxrQkFBRCxDQUFqQixDQUFILElBQTZDLEVBQTlDLEVBQWtEdUQsSUFBbEQsRUFBUDtBQUNEOztBQUVELFNBQVNFLHVCQUFULENBQWlDSixHQUFqQyxFQUF5REMsZ0JBQXpELEVBQW9HO0FBQ2xHLFNBQU8sQ0FBQ0QsR0FBRyxDQUFDQyxnQkFBZ0IsQ0FBQ3JELGdCQUFELENBQWpCLENBQUgsSUFBMkMsRUFBNUMsRUFBZ0RzRCxJQUFoRCxFQUFQO0FBQ0Q7O0FBRUQsU0FBU0csbUJBQVQsQ0FBNkJMLEdBQTdCLEVBQXFEQyxnQkFBckQsRUFBZ0c7QUFDOUYsU0FBTyxDQUFDRCxHQUFHLENBQUNDLGdCQUFnQixDQUFDcEQsWUFBRCxDQUFqQixDQUFILElBQXVDLEVBQXhDLEVBQTRDcUQsSUFBNUMsRUFBUDtBQUNEOztBQUVELFNBQVNJLG9CQUFULENBQThCTixHQUE5QixFQUFzREMsZ0JBQXRELEVBQWlHO0FBQy9GLFNBQU8sQ0FBQ0QsR0FBRyxDQUFDQyxnQkFBZ0IsQ0FBQ25ELGFBQUQsQ0FBakIsQ0FBSCxJQUF3QyxFQUF6QyxFQUE2Q29ELElBQTdDLEVBQVA7QUFDRDs7QUFFRCxTQUFTSyx5QkFBVCxDQUFtQ0MsTUFBbkMsRUFBMkRQLGdCQUEzRCxFQUFzR1EsU0FBdEcsRUFBMEo7QUFDeEosUUFBTVQsR0FBRyxHQUFHUSxNQUFNLENBQUNFLFFBQW5CO0FBQ0EsU0FBTztBQUNMZCxJQUFBQSxNQUFNLEVBQUVhLFNBREg7QUFFTDVCLElBQUFBLElBQUksRUFBRWtCLGtCQUFrQixDQUFDQyxHQUFELEVBQU1DLGdCQUFOLENBRm5CO0FBR0xKLElBQUFBLFdBQVcsRUFBRU0seUJBQXlCLENBQUNILEdBQUQsRUFBTUMsZ0JBQU4sQ0FIakM7QUFJTGIsSUFBQUEsU0FBUyxFQUFFZ0IsdUJBQXVCLENBQUNKLEdBQUQsRUFBTUMsZ0JBQU4sQ0FKN0I7QUFLTDNCLElBQUFBLEtBQUssRUFBRStCLG1CQUFtQixDQUFDTCxHQUFELEVBQU1DLGdCQUFOLENBTHJCO0FBTUw1QixJQUFBQSxNQUFNLEVBQUVpQyxvQkFBb0IsQ0FBQ04sR0FBRCxFQUFNQyxnQkFBTixDQU52QjtBQU9MSCxJQUFBQSxJQUFJLEVBQUU7QUFQRCxHQUFQO0FBU0Q7O0FBRUQsU0FBU2EsaUJBQVQsQ0FBMkJILE1BQTNCLEVBQW1EO0FBQ2pELFNBQU9BLE1BQU0sQ0FBQ0ksRUFBUCxLQUFjLFVBQXJCO0FBQ0Q7QUFFRDs7O0FBQ0EsU0FBU0MsdUJBQVQsQ0FBaUNMLE1BQWpDLEVBQXlETSxPQUF6RCxFQUEwRztBQUN4R0EsRUFBQUEsT0FBTyxDQUFDakIsV0FBUixHQUF1QixHQUFFaUIsT0FBTyxDQUFDakIsV0FBWSxJQUFHVyxNQUFNLENBQUNFLFFBQVAsQ0FBZ0IsQ0FBaEIsQ0FBbUIsRUFBbkU7QUFDQSxTQUFPSSxPQUFQO0FBQ0Q7O0FBRUQsU0FBU0Msb0JBQVQsQ0FBOEJyQyxJQUE5QixFQUEwRHVCLGdCQUExRCxFQUFxR08sTUFBckcsRUFBNkhRLE9BQTdILEVBQTJKO0FBQ3pKLE1BQUlMLGlCQUFpQixDQUFDSCxNQUFELENBQXJCLEVBQStCO0FBQzdCLFVBQU1TLGVBQWUsR0FBR3ZDLElBQUksQ0FBQ3dDLEdBQUwsRUFBeEI7O0FBQ0EsUUFBSUQsZUFBSixFQUFxQjtBQUNuQnZDLE1BQUFBLElBQUksQ0FBQ3lDLElBQUwsQ0FBVU4sdUJBQXVCLENBQUNMLE1BQUQsRUFBU1MsZUFBVCxDQUFqQztBQUNELEtBRkQsTUFFTztBQUNMLFlBQU0sSUFBSUcsS0FBSixDQUFVLDJCQUFWLENBQU47QUFDRDtBQUNGLEdBUEQsTUFPTztBQUNMMUMsSUFBQUEsSUFBSSxDQUFDeUMsSUFBTCxDQUFVWix5QkFBeUIsQ0FBQ0MsTUFBRCxFQUFTUCxnQkFBVCxFQUEyQmUsT0FBM0IsQ0FBbkM7QUFDRDtBQUNGOztBQUVELGVBQWVLLDJCQUFmLENBQTJDQyxJQUEzQyxFQUF1REMsV0FBdkQsRUFBNEU7QUFDMUUsUUFBTUMsVUFBK0IsR0FBRyxFQUF4QztBQUNBLFFBQU1DLFdBQVcsR0FBRyxNQUFNLHVDQUFZSCxJQUFaLEVBQW1CLGtCQUFpQkMsV0FBWSx3QkFBaEQsRUFBeUUsSUFBekUsRUFBZ0ZHLEdBQUQsSUFBUztBQUNoSCxXQUFPQSxHQUFHLENBQUMvQyxHQUFKLENBQVEsQ0FBQ2dELEVBQUQsRUFBS0MsS0FBTCxNQUFnQjtBQUM3QkMsTUFBQUEsSUFBSSxFQUFHRixFQUFELENBQW9CRyxTQUFwQixDQUE4QjVCLElBQTlCLEVBRHVCO0FBRTdCMEIsTUFBQUE7QUFGNkIsS0FBaEIsQ0FBUixDQUFQO0FBSUQsR0FMeUIsQ0FBMUI7O0FBT0EsT0FBSyxNQUFNRyxTQUFYLElBQXdCTixXQUF4QixFQUFxQztBQUNuQ0QsSUFBQUEsVUFBVSxDQUFDTyxTQUFTLENBQUNGLElBQVgsQ0FBVixHQUE2QkUsU0FBUyxDQUFDSCxLQUF2QztBQUNEOztBQUNELFNBQU9KLFVBQVA7QUFDRDs7QUFFRCxlQUFlUSw0QkFBZixDQUE0Q1YsSUFBNUMsRUFBd0RDLFdBQXhELEVBQTZFUCxPQUE3RSxFQUEwSTtBQUN4SSxRQUFNdEMsSUFBMEIsR0FBRyxFQUFuQztBQUNBLFFBQU11RCx3QkFBd0IsR0FBRyxNQUFNWiwyQkFBMkIsQ0FBQ0MsSUFBRCxFQUFPQyxXQUFQLENBQWxFO0FBRUEsUUFBTVcsZ0JBQWdCLEdBQUcsTUFBTSx1Q0FBOEJaLElBQTlCLEVBQXFDLGtCQUFpQkMsV0FBWSxrQ0FBbEUsRUFBcUcsRUFBckcsRUFBMEdZLEdBQUQsSUFBUztBQUMvSSxXQUFRQSxHQUFELENBQXVCeEQsR0FBdkIsQ0FBNEJ5RCxFQUFELEtBQVM7QUFDekN4QixNQUFBQSxFQUFFLEVBQUd3QixFQUFELENBQUtDLFlBQUwsQ0FBa0IsSUFBbEIsS0FBMkIsRUFEVTtBQUV6QzNCLE1BQUFBLFFBQVEsRUFBRTRCLEtBQUssQ0FBQ0MsSUFBTixDQUFXSCxFQUFFLENBQUNJLG9CQUFILENBQXdCLElBQXhCLENBQVgsRUFBMEM3RCxHQUExQyxDQUErQzhELEVBQUQsSUFBU0EsRUFBRCxDQUFvQlgsU0FBMUU7QUFGK0IsS0FBVCxDQUEzQixDQUFQO0FBSUQsR0FMOEIsQ0FBL0I7O0FBT0EsT0FBSyxNQUFNdEIsTUFBWCxJQUFxQjBCLGdCQUFyQixFQUF1QztBQUNyQ25CLElBQUFBLG9CQUFvQixDQUFDckMsSUFBRCxFQUFPdUQsd0JBQVAsRUFBaUN6QixNQUFqQyxFQUF5Q1EsT0FBekMsQ0FBcEI7QUFDRDs7QUFDRCxTQUFPdEMsSUFBUDtBQUNEOztBQUVELGVBQWVnRSwrQkFBZixDQUErQ3BCLElBQS9DLEVBQTJEO0FBQ3pELFFBQU1xQixtQkFBbUIsR0FBRyxNQUFNLGdEQUFxQnJCLElBQXJCLEVBQTRCLElBQUdyRSxtQkFBb0IsRUFBbkQsQ0FBbEM7O0FBQ0EsTUFBSTBGLG1CQUFKLEVBQXlCO0FBQ3ZCLFVBQU1DLFNBQVMsR0FBRyxNQUFNdEIsSUFBSSxDQUFDdUIsS0FBTCxDQUFZLElBQUc1RixtQkFBb0IsRUFBbkMsRUFBdUM2RixZQUFELElBQWtCO0FBQzlFLGFBQVFBLFlBQUQsQ0FBOEJoQixTQUFyQztBQUNELEtBRnVCLENBQXhCO0FBR0EsV0FBT2MsU0FBUyxDQUFDMUMsSUFBVixPQUFxQnpELGlDQUE1QjtBQUNEOztBQUNELFNBQU8sS0FBUDtBQUNEOztBQUVELGVBQWVzRyxhQUFmLENBQTZCekIsSUFBN0IsRUFBeUMwQixTQUF6QyxFQUE0RDtBQUMxRCxRQUFNQyxlQUFlLEdBQUcsTUFBTSxnREFBcUIzQixJQUFyQixFQUEyQnBFLDBCQUEzQixDQUE5Qjs7QUFDQSxNQUFJK0YsZUFBSixFQUFxQjtBQUNuQixVQUFNLDBDQUFlM0IsSUFBZixFQUFxQnBFLDBCQUFyQixFQUFpRDhGLFNBQWpELENBQU47QUFDRDtBQUNGOztBQUVELGVBQWVFLGFBQWYsQ0FBNkI1QixJQUE3QixFQUF5QzZCLFNBQXpDLEVBQTREO0FBQzFELFFBQU0sMENBQWU3QixJQUFmLEVBQXFCLDZCQUFyQixFQUFvRCxLQUFwRCxDQUFOO0FBQ0EsUUFBTSxpREFBc0JBLElBQXRCLEVBQTRCLDZCQUE1QixDQUFOO0FBQ0EsUUFBTSxxQ0FDSkEsSUFESSxFQUVKLDBCQUZJLEVBR0o2QixTQUFTLENBQUNDLE1BQVYsQ0FBaUI1RyxXQUFqQixDQUhJLENBQU47QUFLQSxRQUFNLHVDQUFZOEUsSUFBWixFQUFrQix1QkFBbEIsQ0FBTjtBQUNBLFFBQU0sbUNBQWtCQSxJQUFsQixDQUFOO0FBQ0Q7O0FBRUQsZUFBZStCLGdCQUFmLENBQWdDL0IsSUFBaEMsRUFBNEM7QUFDMUMsUUFBTWdDLG1CQUFtQixHQUFHLE1BQU1oQyxJQUFJLENBQUN1QixLQUFMLENBQVcsZ0RBQVgsRUFBOERVLE1BQUQsSUFBWTtBQUN6RyxXQUFRQSxNQUFELENBQXdCekIsU0FBL0I7QUFDRCxHQUZpQyxDQUFsQztBQUlBLFNBQU93QixtQkFBbUIsQ0FBQ3JGLE9BQXBCLENBQTRCLEdBQTVCLEVBQWlDLEdBQWpDLENBQVA7QUFDRDs7QUFFRCxlQUFldUYsdUJBQWYsQ0FBdUNsQyxJQUF2QyxFQUFtRDtBQUNqRCxRQUFNbUMsa0JBQWtCLEdBQUcsTUFBTSxnREFBcUJuQyxJQUFyQixFQUEyQiwwQkFBM0IsQ0FBakM7O0FBQ0EsTUFBSW1DLGtCQUFKLEVBQXdCO0FBQ3RCLFVBQU0sdUNBQVluQyxJQUFaLEVBQWtCLDBCQUFsQixDQUFOO0FBQ0Q7QUFDRjs7QUFFRCxlQUFlb0MsMkJBQWYsQ0FBMkNwQyxJQUEzQyxFQUErRTtBQUM3RSxRQUFNcUMsV0FBVyxHQUFHLE1BQU0zQiw0QkFBNEIsQ0FBQ1YsSUFBRCxFQUFPdkUsNkJBQVAsRUFDcEQ2RyxrQ0FBb0JDLE9BRGdDLENBQXREO0FBRUEsUUFBTUMsYUFBYSxHQUFHLE1BQU05Qiw0QkFBNEIsQ0FBQ1YsSUFBRCxFQUFPdEUsK0JBQVAsRUFDdEQ0RyxrQ0FBb0JHLFNBRGtDLENBQXhEO0FBRUEsUUFBTXJGLElBQUksR0FBRyxDQUNYLEdBQUdpRixXQURRLEVBRVgsR0FBR0csYUFGUSxDQUFiO0FBSUEsU0FBT3JGLG1CQUFtQixDQUFDQyxJQUFELENBQTFCO0FBQ0Q7O0FBRUQsZUFBZXNGLHNCQUFmLENBQXNDMUMsSUFBdEMsRUFBMEU7QUFDeEUsUUFBTTJDLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLENBQ2pCLGlEQUFzQjVDLElBQXRCLEVBQTZCLElBQUd0RSwrQkFBZ0MsRUFBaEUsRUFBbUUsS0FBbkUsQ0FEaUIsRUFFakIsaURBQXNCc0UsSUFBdEIsRUFBNkIsSUFBR3JFLG1CQUFvQixFQUFwRCxFQUF1RCxLQUF2RCxDQUZpQixDQUFiLENBQU47QUFLQSxRQUFNa0gseUJBQXlCLEdBQUcsTUFBTXpCLCtCQUErQixDQUFDcEIsSUFBRCxDQUF2RTs7QUFDQSxNQUFJNkMseUJBQUosRUFBK0I7QUFDN0IsV0FBTyxFQUFQO0FBQ0Q7O0FBRUQsUUFBTVgsdUJBQXVCLENBQUNsQyxJQUFELENBQTdCO0FBQ0EsU0FBT29DLDJCQUEyQixDQUFDcEMsSUFBRCxDQUFsQztBQUNEOztBQUVELGVBQWU4QyxnQkFBZixDQUFnQzlDLElBQWhDLEVBQTRDNkIsU0FBNUMsRUFBK0RILFNBQS9ELEVBQWdIO0FBQzlHLFFBQU1ELGFBQWEsQ0FBQ3pCLElBQUQsRUFBTzBCLFNBQVAsQ0FBbkI7QUFDQSxRQUFNRSxhQUFhLENBQUM1QixJQUFELEVBQU82QixTQUFQLENBQW5CO0FBQ0EsUUFBTWtCLGFBQWEsR0FBRyxNQUFNaEIsZ0JBQWdCLENBQUMvQixJQUFELENBQTVDO0FBQ0EsUUFBTTVDLElBQUksR0FBRyxNQUFNc0Ysc0JBQXNCLENBQUMxQyxJQUFELENBQXpDO0FBQ0EsU0FBTztBQUNMK0MsSUFBQUEsYUFESztBQUVMM0YsSUFBQUE7QUFGSyxHQUFQO0FBSUQ7O0FBRUQsZUFBZTRGLGFBQWYsQ0FBNkJoRCxJQUE3QixFQUF5QzZCLFNBQXpDLEVBQTREO0FBQzFELFFBQU1vQixRQUErQixHQUFHLEVBQXhDO0FBQ0EsUUFBTUMsWUFBWSxHQUFHLE1BQU0sNENBQWlCbEQsSUFBakIsRUFBdUJwRSwwQkFBdkIsQ0FBM0I7O0FBQ0EsT0FBSyxNQUFNdUgsT0FBWCxJQUFzQkQsWUFBdEIsRUFBb0M7QUFDbEMsUUFBSUMsT0FBTyxDQUFDOUcsS0FBUixLQUFrQixJQUF0QixFQUE0QjtBQUFFO0FBQzVCLFlBQU0rRyxXQUFXLEdBQUcsTUFBTU4sZ0JBQWdCLENBQUM5QyxJQUFELEVBQU82QixTQUFQLEVBQWtCc0IsT0FBTyxDQUFDOUcsS0FBMUIsQ0FBMUM7QUFDQTRHLE1BQUFBLFFBQVEsQ0FBQ3BELElBQVQsQ0FBY3VELFdBQWQ7QUFDRDtBQUNGOztBQUNELFNBQU9ILFFBQVA7QUFDRDs7QUFFRCxlQUFlSSxnQkFBZixDQUFnQ3JELElBQWhDLEVBQTRDO0FBQzFDLFNBQU8yQyxPQUFPLENBQUNDLElBQVIsQ0FBYSxDQUNsQixpREFBc0I1QyxJQUF0QixFQUE0QixVQUE1QixFQUF3QyxJQUF4QyxDQURrQixFQUVsQixpREFBc0JBLElBQXRCLEVBQTRCLFVBQTVCLEVBQXdDLElBQXhDLENBRmtCLENBQWIsQ0FBUDtBQUlEOztBQUlELE1BQU1zRCxnQkFBTixTQUErQkMsOENBQS9CLENBQWtGO0FBQ2hGQyxFQUFBQSxlQUFlLENBQUNySCxXQUFELEVBQTBDO0FBQ3ZELFdBQU87QUFDTHNILE1BQUFBLFFBQVEsRUFBRyxHQUFFekksUUFBUyxFQURqQjtBQUVMMEksTUFBQUEsTUFBTSxFQUFFeEgsaUJBQWlCLENBQUNDLFdBQUQsQ0FGcEI7QUFHTHdILE1BQUFBLG9CQUFvQixFQUFFLFFBSGpCO0FBSUxDLE1BQUFBLFVBQVUsRUFBRSxZQUFZUCxnQkFBZ0IsQ0FBQyxLQUFLckQsSUFBTixDQUpuQztBQUtMNkQsTUFBQUEsZUFBZSxFQUFFaEksdUJBQXVCO0FBTG5DLEtBQVA7QUFPRDs7QUFFRCxRQUFNaUksU0FBTixHQUFrQjtBQUNoQixVQUFNQyxrQkFBa0IsR0FBRyx1QkFBU0MsUUFBVCxDQUFrQixDQUFsQixFQUFxQixPQUFyQixFQUE4QkMsR0FBOUIsQ0FBa0MsQ0FBbEMsRUFBcUMsS0FBckMsQ0FBM0I7QUFDQSxVQUFNcEMsU0FBUyxHQUFHLEtBQUtxQyxPQUFMLENBQWFyQyxTQUFiLElBQTBCa0Msa0JBQWtCLENBQUNJLE1BQW5CLEVBQTVDOztBQUNBLFVBQU1DLFdBQVcsR0FBR0MsZ0JBQU9DLEdBQVAsQ0FBV1Asa0JBQVgsRUFBK0IscUJBQU9sQyxTQUFQLENBQS9CLENBQXBCOztBQUVBLFVBQU0sS0FBSzBDLFVBQUwsQ0FBZ0J0SixnQkFBaEIsQ0FBTjtBQUVBLFVBQU1nSSxRQUFRLEdBQUcsTUFBTUQsYUFBYSxDQUFDLEtBQUtoRCxJQUFOLEVBQVlvRSxXQUFaLENBQXBDO0FBRUEsV0FBTztBQUNMSSxNQUFBQSxPQUFPLEVBQUUsSUFESjtBQUVMdkIsTUFBQUE7QUFGSyxLQUFQO0FBSUQ7O0FBeEIrRTs7ZUEyQm5FSyxnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQge1xuICBkcm9wZG93blNlbGVjdCxcbiAgZHJvcGRvd25FbGVtZW50cyxcbiAgZmlsbElucHV0LFxuICBjbGlja0J1dHRvbixcbiAgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxuICBwYWdlRXZhbEFsbCxcbiAgZWxlbWVudFByZXNlbnRPblBhZ2UsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbnNBY2NvdW50LCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcyxcbiAgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcblxuY29uc3QgQkFTRV9VUkwgPSAnaHR0cHM6Ly9oYi51bmlvbmJhbmsuY28uaWwnO1xuY29uc3QgVFJBTlNBQ1RJT05TX1VSTCA9IGAke0JBU0VfVVJMfS9lQmFua2luZy9BY2NvdW50cy9FeHRlbmRlZEFjdGl2aXR5LmFzcHgjL2A7XG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWSc7XG5jb25zdCBOT19UUkFOU0FDVElPTl9JTl9EQVRFX1JBTkdFX1RFWFQgPSAn15zXkCDXp9eZ15nXnteV16og16rXoNeV16LXldeqINee16rXkNeZ157XldeqINei15wg16TXmSDXlNeh15nXoNeV158g16nXlNeV15LXk9eoJztcbmNvbnN0IERBVEVfSEVBREVSID0gJ9eq15DXqNeZ15onO1xuY29uc3QgREVTQ1JJUFRJT05fSEVBREVSID0gJ9eq15nXkNeV16gnO1xuY29uc3QgUkVGRVJFTkNFX0hFQURFUiA9ICfXkNeh157Xm9eq15AnO1xuY29uc3QgREVCSVRfSEVBREVSID0gJ9eX15XXkdeUJztcbmNvbnN0IENSRURJVF9IRUFERVIgPSAn15bXm9eV16onO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfVEFCTEVfSUQgPSAndHJUb2RheUFjdGl2aXR5TmFwYVRhYmxlVXBwZXInO1xuY29uc3QgQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRV9JRCA9ICdjdGxBY3Rpdml0eVRhYmxlJztcbmNvbnN0IEVSUk9SX01FU1NBR0VfQ0xBU1MgPSAnZXJySW5mbyc7XG5jb25zdCBBQ0NPVU5UU19EUk9QRE9XTl9TRUxFQ1RPUiA9ICdzZWxlY3QjZGRsQWNjb3VudHNfbV9kZGwnO1xuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpIHtcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbL2VCYW5raW5nXFwvQWNjb3VudHMvXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFsvSW50ZXJuYWxTaXRlXFwvQ3VzdG9tVXBkYXRlXFwvbGV1bWlcXC9Mb2dpblBhZ2UuQVNQL107XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnI3VpZCcsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6ICcjcGFzc3dvcmQnLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gZ2V0QW1vdW50RGF0YShhbW91bnRTdHI6IHN0cmluZykge1xuICBjb25zdCBhbW91bnRTdHJDb3B5ID0gYW1vdW50U3RyLnJlcGxhY2UoJywnLCAnJyk7XG4gIHJldHVybiBwYXJzZUZsb2F0KGFtb3VudFN0ckNvcHkpO1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgY3JlZGl0OiBzdHJpbmc7XG4gIGRlYml0OiBzdHJpbmc7XG4gIGRhdGU6IHN0cmluZztcbiAgcmVmZXJlbmNlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBtZW1vOiBzdHJpbmc7XG4gIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcztcbn1cblxuZnVuY3Rpb24gZ2V0VHhuQW1vdW50KHR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKSB7XG4gIGNvbnN0IGNyZWRpdCA9IGdldEFtb3VudERhdGEodHhuLmNyZWRpdCk7XG4gIGNvbnN0IGRlYml0ID0gZ2V0QW1vdW50RGF0YSh0eG4uZGViaXQpO1xuICByZXR1cm4gKE51bWJlci5pc05hTihjcmVkaXQpID8gMCA6IGNyZWRpdCkgLSAoTnVtYmVyLmlzTmFOKGRlYml0KSA/IDAgOiBkZWJpdCk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHR4bnMubWFwKCh0eG4pID0+IHtcbiAgICBjb25zdCBjb252ZXJ0ZWREYXRlID0gbW9tZW50KHR4bi5kYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKTtcbiAgICBjb25zdCBjb252ZXJ0ZWRBbW91bnQgPSBnZXRUeG5BbW91bnQodHhuKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiB0eG4ucmVmZXJlbmNlID8gcGFyc2VJbnQodHhuLnJlZmVyZW5jZSwgMTApIDogdW5kZWZpbmVkLFxuICAgICAgZGF0ZTogY29udmVydGVkRGF0ZSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGNvbnZlcnRlZERhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogY29udmVydGVkQW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogY29udmVydGVkQW1vdW50LFxuICAgICAgc3RhdHVzOiB0eG4uc3RhdHVzLFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5kZXNjcmlwdGlvbixcbiAgICAgIG1lbW86IHR4bi5tZW1vLFxuICAgIH07XG4gIH0pO1xufVxuXG50eXBlIFRyYW5zYWN0aW9uc1RyID0geyBpZDogc3RyaW5nLCBpbm5lclRkczogVHJhbnNhY3Rpb25zVHJUZHMgfTtcbnR5cGUgVHJhbnNhY3Rpb25UYWJsZUhlYWRlcnMgPSBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xudHlwZSBUcmFuc2FjdGlvbnNUclRkcyA9IHN0cmluZ1tdO1xuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRhdGUodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHhuc1RhYmxlSGVhZGVyczogVHJhbnNhY3Rpb25UYWJsZUhlYWRlcnMpIHtcbiAgcmV0dXJuICh0ZHNbdHhuc1RhYmxlSGVhZGVyc1tEQVRFX0hFQURFUl1dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uRGVzY3JpcHRpb24odGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHhuc1RhYmxlSGVhZGVyczogVHJhbnNhY3Rpb25UYWJsZUhlYWRlcnMpIHtcbiAgcmV0dXJuICh0ZHNbdHhuc1RhYmxlSGVhZGVyc1tERVNDUklQVElPTl9IRUFERVJdXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvblJlZmVyZW5jZSh0ZHM6IFRyYW5zYWN0aW9uc1RyVGRzLCB0eG5zVGFibGVIZWFkZXJzOiBUcmFuc2FjdGlvblRhYmxlSGVhZGVycykge1xuICByZXR1cm4gKHRkc1t0eG5zVGFibGVIZWFkZXJzW1JFRkVSRU5DRV9IRUFERVJdXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRlYml0KHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHR4bnNUYWJsZUhlYWRlcnM6IFRyYW5zYWN0aW9uVGFibGVIZWFkZXJzKSB7XG4gIHJldHVybiAodGRzW3R4bnNUYWJsZUhlYWRlcnNbREVCSVRfSEVBREVSXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25DcmVkaXQodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHhuc1RhYmxlSGVhZGVyczogVHJhbnNhY3Rpb25UYWJsZUhlYWRlcnMpIHtcbiAgcmV0dXJuICh0ZHNbdHhuc1RhYmxlSGVhZGVyc1tDUkVESVRfSEVBREVSXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9uRGV0YWlscyh0eG5Sb3c6IFRyYW5zYWN0aW9uc1RyLCB0eG5zVGFibGVIZWFkZXJzOiBUcmFuc2FjdGlvblRhYmxlSGVhZGVycywgdHhuU3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzKTogU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgY29uc3QgdGRzID0gdHhuUm93LmlubmVyVGRzO1xuICByZXR1cm4ge1xuICAgIHN0YXR1czogdHhuU3RhdHVzLFxuICAgIGRhdGU6IGdldFRyYW5zYWN0aW9uRGF0ZSh0ZHMsIHR4bnNUYWJsZUhlYWRlcnMpLFxuICAgIGRlc2NyaXB0aW9uOiBnZXRUcmFuc2FjdGlvbkRlc2NyaXB0aW9uKHRkcywgdHhuc1RhYmxlSGVhZGVycyksXG4gICAgcmVmZXJlbmNlOiBnZXRUcmFuc2FjdGlvblJlZmVyZW5jZSh0ZHMsIHR4bnNUYWJsZUhlYWRlcnMpLFxuICAgIGRlYml0OiBnZXRUcmFuc2FjdGlvbkRlYml0KHRkcywgdHhuc1RhYmxlSGVhZGVycyksXG4gICAgY3JlZGl0OiBnZXRUcmFuc2FjdGlvbkNyZWRpdCh0ZHMsIHR4bnNUYWJsZUhlYWRlcnMpLFxuICAgIG1lbW86ICcnLFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc0V4cGFuZGVkRGVzY1Jvdyh0eG5Sb3c6IFRyYW5zYWN0aW9uc1RyKSB7XG4gIHJldHVybiB0eG5Sb3cuaWQgPT09ICdyb3dBZGRlZCc7XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXBhcmFtLXJlYXNzaWduICovXG5mdW5jdGlvbiBlZGl0TGFzdFRyYW5zYWN0aW9uRGVzYyh0eG5Sb3c6IFRyYW5zYWN0aW9uc1RyLCBsYXN0VHhuOiBTY3JhcGVkVHJhbnNhY3Rpb24pOiBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBsYXN0VHhuLmRlc2NyaXB0aW9uID0gYCR7bGFzdFR4bi5kZXNjcmlwdGlvbn0gJHt0eG5Sb3cuaW5uZXJUZHNbMF19YDtcbiAgcmV0dXJuIGxhc3RUeG47XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVRyYW5zYWN0aW9uUm93KHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdLCB0eG5zVGFibGVIZWFkZXJzOiBUcmFuc2FjdGlvblRhYmxlSGVhZGVycywgdHhuUm93OiBUcmFuc2FjdGlvbnNUciwgdHhuVHlwZTogVHJhbnNhY3Rpb25TdGF0dXNlcykge1xuICBpZiAoaXNFeHBhbmRlZERlc2NSb3codHhuUm93KSkge1xuICAgIGNvbnN0IGxhc3RUcmFuc2FjdGlvbiA9IHR4bnMucG9wKCk7XG4gICAgaWYgKGxhc3RUcmFuc2FjdGlvbikge1xuICAgICAgdHhucy5wdXNoKGVkaXRMYXN0VHJhbnNhY3Rpb25EZXNjKHR4blJvdywgbGFzdFRyYW5zYWN0aW9uKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW50ZXJuYWwgdW5pb24tYmFuayBlcnJvcicpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0eG5zLnB1c2goZXh0cmFjdFRyYW5zYWN0aW9uRGV0YWlscyh0eG5Sb3csIHR4bnNUYWJsZUhlYWRlcnMsIHR4blR5cGUpKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbnNUYWJsZUhlYWRlcnMocGFnZTogUGFnZSwgdGFibGVUeXBlSWQ6IHN0cmluZykge1xuICBjb25zdCBoZWFkZXJzTWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gW107XG4gIGNvbnN0IGhlYWRlcnNPYmpzID0gYXdhaXQgcGFnZUV2YWxBbGwocGFnZSwgYCNXb3JrU3BhY2VCb3ggIyR7dGFibGVUeXBlSWR9IHRyW2NsYXNzPSdoZWFkZXInXSB0aGAsIG51bGwsICh0aHMpID0+IHtcbiAgICByZXR1cm4gdGhzLm1hcCgodGgsIGluZGV4KSA9PiAoe1xuICAgICAgdGV4dDogKHRoIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQudHJpbSgpLFxuICAgICAgaW5kZXgsXG4gICAgfSkpO1xuICB9KTtcblxuICBmb3IgKGNvbnN0IGhlYWRlck9iaiBvZiBoZWFkZXJzT2Jqcykge1xuICAgIGhlYWRlcnNNYXBbaGVhZGVyT2JqLnRleHRdID0gaGVhZGVyT2JqLmluZGV4O1xuICB9XG4gIHJldHVybiBoZWFkZXJzTWFwO1xufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVRhYmxlKHBhZ2U6IFBhZ2UsIHRhYmxlVHlwZUlkOiBzdHJpbmcsIHR4blR5cGU6IFRyYW5zYWN0aW9uU3RhdHVzZXMpOiBQcm9taXNlPFNjcmFwZWRUcmFuc2FjdGlvbltdPiB7XG4gIGNvbnN0IHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdID0gW107XG4gIGNvbnN0IHRyYW5zYWN0aW9uc1RhYmxlSGVhZGVycyA9IGF3YWl0IGdldFRyYW5zYWN0aW9uc1RhYmxlSGVhZGVycyhwYWdlLCB0YWJsZVR5cGVJZCk7XG5cbiAgY29uc3QgdHJhbnNhY3Rpb25zUm93cyA9IGF3YWl0IHBhZ2VFdmFsQWxsPFRyYW5zYWN0aW9uc1RyW10+KHBhZ2UsIGAjV29ya1NwYWNlQm94ICMke3RhYmxlVHlwZUlkfSB0cltjbGFzc106bm90KFtjbGFzcz0naGVhZGVyJ10pYCwgW10sICh0cnMpID0+IHtcbiAgICByZXR1cm4gKHRycyBhcyBIVE1MRWxlbWVudFtdKS5tYXAoKHRyKSA9PiAoe1xuICAgICAgaWQ6ICh0cikuZ2V0QXR0cmlidXRlKCdpZCcpIHx8ICcnLFxuICAgICAgaW5uZXJUZHM6IEFycmF5LmZyb20odHIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RkJykpLm1hcCgodGQpID0+ICh0ZCBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0KSxcbiAgICB9KSk7XG4gIH0pO1xuXG4gIGZvciAoY29uc3QgdHhuUm93IG9mIHRyYW5zYWN0aW9uc1Jvd3MpIHtcbiAgICBoYW5kbGVUcmFuc2FjdGlvblJvdyh0eG5zLCB0cmFuc2FjdGlvbnNUYWJsZUhlYWRlcnMsIHR4blJvdywgdHhuVHlwZSk7XG4gIH1cbiAgcmV0dXJuIHR4bnM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGlzTm9UcmFuc2FjdGlvbkluRGF0ZVJhbmdlRXJyb3IocGFnZTogUGFnZSkge1xuICBjb25zdCBoYXNFcnJvckluZm9FbGVtZW50ID0gYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZSwgYC4ke0VSUk9SX01FU1NBR0VfQ0xBU1N9YCk7XG4gIGlmIChoYXNFcnJvckluZm9FbGVtZW50KSB7XG4gICAgY29uc3QgZXJyb3JUZXh0ID0gYXdhaXQgcGFnZS4kZXZhbChgLiR7RVJST1JfTUVTU0FHRV9DTEFTU31gLCAoZXJyb3JFbGVtZW50KSA9PiB7XG4gICAgICByZXR1cm4gKGVycm9yRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0O1xuICAgIH0pO1xuICAgIHJldHVybiBlcnJvclRleHQudHJpbSgpID09PSBOT19UUkFOU0FDVElPTl9JTl9EQVRFX1JBTkdFX1RFWFQ7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjaG9vc2VBY2NvdW50KHBhZ2U6IFBhZ2UsIGFjY291bnRJZDogc3RyaW5nKSB7XG4gIGNvbnN0IGhhc0Ryb3BEb3duTGlzdCA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIEFDQ09VTlRTX0RST1BET1dOX1NFTEVDVE9SKTtcbiAgaWYgKGhhc0Ryb3BEb3duTGlzdCkge1xuICAgIGF3YWl0IGRyb3Bkb3duU2VsZWN0KHBhZ2UsIEFDQ09VTlRTX0RST1BET1dOX1NFTEVDVE9SLCBhY2NvdW50SWQpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlYXJjaEJ5RGF0ZXMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgYXdhaXQgZHJvcGRvd25TZWxlY3QocGFnZSwgJ3NlbGVjdCNkZGxUcmFuc2FjdGlvblBlcmlvZCcsICcwMDQnKTtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdzZWxlY3QjZGRsVHJhbnNhY3Rpb25QZXJpb2QnKTtcbiAgYXdhaXQgZmlsbElucHV0KFxuICAgIHBhZ2UsXG4gICAgJ2lucHV0I2R0RnJvbURhdGVfdGV4dEJveCcsXG4gICAgc3RhcnREYXRlLmZvcm1hdChEQVRFX0ZPUk1BVCksXG4gICk7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsICdpbnB1dCNidG5EaXNwbGF5RGF0ZXMnKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFjY291bnROdW1iZXIocGFnZTogUGFnZSkge1xuICBjb25zdCBzZWxlY3RlZFNuaWZBY2NvdW50ID0gYXdhaXQgcGFnZS4kZXZhbCgnI2RkbEFjY291bnRzX21fZGRsIG9wdGlvbltzZWxlY3RlZD1cInNlbGVjdGVkXCJdJywgKG9wdGlvbikgPT4ge1xuICAgIHJldHVybiAob3B0aW9uIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pO1xuXG4gIHJldHVybiBzZWxlY3RlZFNuaWZBY2NvdW50LnJlcGxhY2UoJy8nLCAnXycpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBleHBhbmRUcmFuc2FjdGlvbnNUYWJsZShwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGhhc0V4cGFuZEFsbEJ1dHRvbiA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIFwiYVtpZCo9J2xua0N0bEV4cGFuZEFsbCddXCIpO1xuICBpZiAoaGFzRXhwYW5kQWxsQnV0dG9uKSB7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgXCJhW2lkKj0nbG5rQ3RsRXhwYW5kQWxsJ11cIik7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gc2NyYXBlVHJhbnNhY3Rpb25zRnJvbVRhYmxlKHBhZ2U6IFBhZ2UpOiBQcm9taXNlPFRyYW5zYWN0aW9uW10+IHtcbiAgY29uc3QgcGVuZGluZ1R4bnMgPSBhd2FpdCBleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVRhYmxlKHBhZ2UsIFBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFX0lELFxuICAgIFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZyk7XG4gIGNvbnN0IGNvbXBsZXRlZFR4bnMgPSBhd2FpdCBleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVRhYmxlKHBhZ2UsIENPTVBMRVRFRF9UUkFOU0FDVElPTlNfVEFCTEVfSUQsXG4gICAgVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQpO1xuICBjb25zdCB0eG5zID0gW1xuICAgIC4uLnBlbmRpbmdUeG5zLFxuICAgIC4uLmNvbXBsZXRlZFR4bnMsXG4gIF07XG4gIHJldHVybiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50VHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UpOiBQcm9taXNlPFRyYW5zYWN0aW9uW10+IHtcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgYCMke0NPTVBMRVRFRF9UUkFOU0FDVElPTlNfVEFCTEVfSUR9YCwgZmFsc2UpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBgLiR7RVJST1JfTUVTU0FHRV9DTEFTU31gLCBmYWxzZSksXG4gIF0pO1xuXG4gIGNvbnN0IG5vVHJhbnNhY3Rpb25JblJhbmdlRXJyb3IgPSBhd2FpdCBpc05vVHJhbnNhY3Rpb25JbkRhdGVSYW5nZUVycm9yKHBhZ2UpO1xuICBpZiAobm9UcmFuc2FjdGlvbkluUmFuZ2VFcnJvcikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGF3YWl0IGV4cGFuZFRyYW5zYWN0aW9uc1RhYmxlKHBhZ2UpO1xuICByZXR1cm4gc2NyYXBlVHJhbnNhY3Rpb25zRnJvbVRhYmxlKHBhZ2UpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFjY291bnREYXRhKHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50LCBhY2NvdW50SWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25zQWNjb3VudD4ge1xuICBhd2FpdCBjaG9vc2VBY2NvdW50KHBhZ2UsIGFjY291bnRJZCk7XG4gIGF3YWl0IHNlYXJjaEJ5RGF0ZXMocGFnZSwgc3RhcnREYXRlKTtcbiAgY29uc3QgYWNjb3VudE51bWJlciA9IGF3YWl0IGdldEFjY291bnROdW1iZXIocGFnZSk7XG4gIGNvbnN0IHR4bnMgPSBhd2FpdCBnZXRBY2NvdW50VHJhbnNhY3Rpb25zKHBhZ2UpO1xuICByZXR1cm4ge1xuICAgIGFjY291bnROdW1iZXIsXG4gICAgdHhucyxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBY2NvdW50cyhwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCkge1xuICBjb25zdCBhY2NvdW50czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG4gIGNvbnN0IGFjY291bnRzTGlzdCA9IGF3YWl0IGRyb3Bkb3duRWxlbWVudHMocGFnZSwgQUNDT1VOVFNfRFJPUERPV05fU0VMRUNUT1IpO1xuICBmb3IgKGNvbnN0IGFjY291bnQgb2YgYWNjb3VudHNMaXN0KSB7XG4gICAgaWYgKGFjY291bnQudmFsdWUgIT09ICctMScpIHsgLy8gU2tpcCBcIkFsbCBhY2NvdW50c1wiIG9wdGlvblxuICAgICAgY29uc3QgYWNjb3VudERhdGEgPSBhd2FpdCBmZXRjaEFjY291bnREYXRhKHBhZ2UsIHN0YXJ0RGF0ZSwgYWNjb3VudC52YWx1ZSk7XG4gICAgICBhY2NvdW50cy5wdXNoKGFjY291bnREYXRhKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFjY291bnRzO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3YWl0Rm9yUG9zdExvZ2luKHBhZ2U6IFBhZ2UpIHtcbiAgcmV0dXJuIFByb21pc2UucmFjZShbXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICcjc2lnbm9mZicsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnI3Jlc3RvcmUnLCB0cnVlKSxcbiAgXSk7XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcgfTtcblxuY2xhc3MgVW5pb25CYW5rU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXI8U2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHM+IHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogYCR7QkFTRV9VUkx9YCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcjZW50ZXInLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gd2FpdEZvclBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG8oVFJBTlNBQ1RJT05TX1VSTCk7XG5cbiAgICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IGZldGNoQWNjb3VudHModGhpcy5wYWdlLCBzdGFydE1vbWVudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVW5pb25CYW5rU2NyYXBlcjtcbiJdfQ==
|
|
@@ -1,19 +1,107 @@
|
|
|
1
|
-
import { BaseScraperWithBrowser } from './base-scraper-with-browser';
|
|
2
|
-
import {
|
|
3
|
-
declare
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { BaseScraperWithBrowser, LoginOptions } from './base-scraper-with-browser';
|
|
2
|
+
import { ScraperScrapingResult } from './interface';
|
|
3
|
+
declare enum trnTypeCode {
|
|
4
|
+
regular = "5",
|
|
5
|
+
credit = "6",
|
|
6
|
+
installments = "8",
|
|
7
|
+
standingOrder = "9"
|
|
8
|
+
}
|
|
9
|
+
interface ScrapedTransaction {
|
|
10
|
+
amtBeforeConvAndIndex: number;
|
|
11
|
+
branchCodeDesc: string;
|
|
12
|
+
cashAccManagerName: null;
|
|
13
|
+
cashAccountManager: null;
|
|
14
|
+
cashAccountTrnAmt: number;
|
|
15
|
+
chargeExternalToCardComment: string;
|
|
16
|
+
comments: [];
|
|
17
|
+
curPaymentNum: number;
|
|
18
|
+
debCrdCurrencySymbol: CurrencySymbol;
|
|
19
|
+
debCrdDate: string;
|
|
20
|
+
debitSpreadInd: boolean;
|
|
21
|
+
discountAmount: unknown;
|
|
22
|
+
discountReason: unknown;
|
|
23
|
+
immediateComments: [];
|
|
24
|
+
isImmediateCommentInd: boolean;
|
|
25
|
+
isImmediateHHKInd: boolean;
|
|
26
|
+
isMargarita: boolean;
|
|
27
|
+
isSpreadPaymenstAbroad: boolean;
|
|
28
|
+
linkedComments: [];
|
|
29
|
+
merchantAddress: string;
|
|
30
|
+
merchantName: string;
|
|
31
|
+
merchantPhoneNo: string;
|
|
32
|
+
numOfPayments: number;
|
|
33
|
+
onGoingTransactionsComment: string;
|
|
34
|
+
refundInd: boolean;
|
|
35
|
+
roundingAmount: unknown;
|
|
36
|
+
roundingReason: unknown;
|
|
37
|
+
tokenInd: 0;
|
|
38
|
+
tokenNumberPart4: '';
|
|
39
|
+
transCardPresentInd: boolean;
|
|
40
|
+
transTypeCommentDetails: [];
|
|
41
|
+
trnAmt: number;
|
|
42
|
+
trnCurrencySymbol: CurrencySymbol;
|
|
43
|
+
trnExacWay: number;
|
|
44
|
+
trnIntId: string;
|
|
45
|
+
trnNumaretor: number;
|
|
46
|
+
trnPurchaseDate: string;
|
|
47
|
+
trnType: string;
|
|
48
|
+
trnTypeCode: trnTypeCode;
|
|
49
|
+
walletProviderCode: 0;
|
|
50
|
+
walletProviderDesc: '';
|
|
51
|
+
}
|
|
52
|
+
declare type CurrencySymbol = '₪' | string;
|
|
53
|
+
interface CardTransactionDetailsError {
|
|
54
|
+
title: string;
|
|
55
|
+
statusCode: number;
|
|
56
|
+
}
|
|
57
|
+
interface CardTransactionDetails extends CardTransactionDetailsError {
|
|
58
|
+
result: {
|
|
59
|
+
bankAccounts: {
|
|
60
|
+
bankAccountNum: string;
|
|
61
|
+
bankName: string;
|
|
62
|
+
choiceExternalTransactions: any;
|
|
63
|
+
currentBankAccountInd: boolean;
|
|
64
|
+
debitDates: {
|
|
65
|
+
basketAmountComment: unknown;
|
|
66
|
+
choiceHHKDebit: number;
|
|
67
|
+
date: string;
|
|
68
|
+
debitReason: unknown;
|
|
69
|
+
fixDebitAmount: number;
|
|
70
|
+
fromPurchaseDate: string;
|
|
71
|
+
isChoiceRepaiment: boolean;
|
|
72
|
+
toPurchaseDate: string;
|
|
73
|
+
totalBasketAmount: number;
|
|
74
|
+
totalDebits: {
|
|
75
|
+
currencySymbol: CurrencySymbol;
|
|
76
|
+
amount: number;
|
|
77
|
+
}[];
|
|
78
|
+
transactions: ScrapedTransaction[];
|
|
79
|
+
}[];
|
|
80
|
+
immidiateDebits: {
|
|
81
|
+
totalDebits: [];
|
|
82
|
+
debitDays: [];
|
|
83
|
+
};
|
|
10
84
|
}[];
|
|
11
|
-
|
|
12
|
-
possibleResults: import("./base-scraper-with-browser").PossibleLoginResults;
|
|
13
|
-
checkReadiness: () => Promise<void>;
|
|
14
|
-
preAction: () => Promise<never>;
|
|
15
|
-
userAgent: string;
|
|
85
|
+
blockedCardInd: boolean;
|
|
16
86
|
};
|
|
17
|
-
|
|
87
|
+
statusCode: 1;
|
|
88
|
+
statusDescription: string;
|
|
89
|
+
statusTitle: string;
|
|
90
|
+
}
|
|
91
|
+
declare type ScraperSpecificCredentials = {
|
|
92
|
+
username: string;
|
|
93
|
+
password: string;
|
|
94
|
+
};
|
|
95
|
+
declare class VisaCalScraper extends BaseScraperWithBrowser<ScraperSpecificCredentials> {
|
|
96
|
+
openLoginPopup: () => Promise<never>;
|
|
97
|
+
getCards(): Promise<{
|
|
98
|
+
cardUniqueId: string;
|
|
99
|
+
last4Digits: string;
|
|
100
|
+
}[]>;
|
|
101
|
+
getAuthorizationHeader(): Promise<string>;
|
|
102
|
+
getXSiteId(): Promise<string>;
|
|
103
|
+
getLoginOptions(credentials: ScraperSpecificCredentials): LoginOptions;
|
|
104
|
+
isCardTransactionDetails(result: CardTransactionDetails | CardTransactionDetailsError): result is CardTransactionDetails;
|
|
105
|
+
fetchData(): Promise<ScraperScrapingResult>;
|
|
18
106
|
}
|
|
19
107
|
export default VisaCalScraper;
|