israeli-bank-scrapers 1.10.1 → 1.11.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 CHANGED
@@ -24,6 +24,7 @@ Currently only the following banks are supported:
24
24
  - Beinleumi (Thanks to [@dudiventura](https://github.com/dudiventura) from the Intuit FDP OpenSource Team)
25
25
  - Massad
26
26
  - Yahav (Thanks to [@gczobel](https://github.com/gczobel))
27
+ - Beyhad Bishvilha - [ביחד בשבילך](https://www.hist.org.il/) (thanks [@esakal](https://github.com/esakal))
27
28
 
28
29
  # Prerequisites
29
30
  To use this you will need to have [Node.js](https://nodejs.org) >= 10.x installed.
@@ -282,12 +283,21 @@ const credentials = {
282
283
  ```
283
284
  This scraper supports fetching transaction from up to six months.
284
285
 
286
+ ## Beyhad Bishvilha
287
+ This scraper expects the following credentials object::
288
+ ```node
289
+ const credentials = {
290
+ id: <user identification number>,
291
+ password: <user password>
292
+ };
293
+ ```
294
+
295
+
285
296
  # Known projects
286
297
  These are the projects known to be using this module:
287
298
  - [Israeli YNAB updater](https://github.com/eshaham/israeli-ynab-updater) - A command line tool for exporting banks data to CSVs, formatted specifically for [YNAB](https://www.youneedabudget.com)
288
299
  - [Israel Finance Telegram Bot](https://github.com/GuyLewin/israel-finance-telegram-bot) - A simple telegram bot that sends notifications about new transactions and interacts with them
289
300
  - [Caspion](https://github.com/brafdlog/caspion) - An app for automatically sending transactions from Israeli banks and credit cards to budget tracking apps
290
- - [Oshi](https://github.com/baruchiro/israeli-bank-scrapers-desktop) - Secure desktop app for retriving your transactions from all israeli banks and credit cards
291
301
  - [Finance Notifier](https://github.com/LiranBri/finance-notifier) - A simple script with the ability to send custom financial alerts to multiple contacts and platforms
292
302
 
293
303
  Built something interesting you want to share here? [Let me know](https://goo.gl/forms/5Fb9JAjvzMIpmzqo2).
@@ -14,7 +14,8 @@ export declare enum CompanyTypes {
14
14
  mizrahi = "mizrahi",
15
15
  leumi = "leumi",
16
16
  massad = "massad",
17
- yahav = "yahav"
17
+ yahav = "yahav",
18
+ beyahadBishvilha = "beyahadBishvilha"
18
19
  }
19
20
  export declare const SCRAPERS: {
20
21
  hapoalim: {
@@ -77,4 +78,8 @@ export declare const SCRAPERS: {
77
78
  name: string;
78
79
  loginFields: string[];
79
80
  };
81
+ beyahadBishvilha: {
82
+ name: string;
83
+ loginFields: string[];
84
+ };
80
85
  };
@@ -26,6 +26,7 @@ exports.CompanyTypes = CompanyTypes;
26
26
  CompanyTypes["leumi"] = "leumi";
27
27
  CompanyTypes["massad"] = "massad";
28
28
  CompanyTypes["yahav"] = "yahav";
29
+ CompanyTypes["beyahadBishvilha"] = "beyahadBishvilha";
29
30
  })(CompanyTypes || (exports.CompanyTypes = CompanyTypes = {}));
30
31
 
31
32
  const SCRAPERS = {
@@ -90,7 +91,11 @@ const SCRAPERS = {
90
91
  [CompanyTypes.yahav]: {
91
92
  name: 'Bank Yahav',
92
93
  loginFields: ['username', 'nationalID', PASSWORD_FIELD]
94
+ },
95
+ [CompanyTypes.beyahadBishvilha]: {
96
+ name: 'Beyahad Bishvilha',
97
+ loginFields: ['id', PASSWORD_FIELD]
93
98
  }
94
99
  };
95
100
  exports.SCRAPERS = SCRAPERS;
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9ucy50cyJdLCJuYW1lcyI6WyJQQVNTV09SRF9GSUVMRCIsIkNvbXBhbnlUeXBlcyIsIlNDUkFQRVJTIiwiaGFwb2FsaW0iLCJuYW1lIiwibG9naW5GaWVsZHMiLCJoYXBvYWxpbUJlT25saW5lIiwibGV1bWkiLCJtaXpyYWhpIiwiZGlzY291bnQiLCJvdHNhckhhaGF5YWwiLCJsZXVtaUNhcmQiLCJtYXgiLCJ2aXNhQ2FsIiwiaXNyYWNhcmQiLCJhbWV4IiwidW5pb24iLCJiZWlubGV1bWkiLCJtYXNzYWQiLCJ5YWhhdiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFFTyxNQUFNQSxjQUFjLEdBQUcsVUFBdkI7O0lBRUtDLFk7OztXQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0dBQUFBLFksNEJBQUFBLFk7O0FBa0JMLE1BQU1DLFFBQVEsR0FBRztBQUN0QixHQUFDRCxZQUFZLENBQUNFLFFBQWQsR0FBeUI7QUFDdkJDLElBQUFBLElBQUksRUFBRSxlQURpQjtBQUV2QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlUsR0FESDtBQUt0QixHQUFDQyxZQUFZLENBQUNLLGdCQUFkLEdBQWlDO0FBQUU7QUFDakNGLElBQUFBLElBQUksRUFBRSxlQUR5QjtBQUUvQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRmtCLEdBTFg7QUFTdEIsR0FBQ0MsWUFBWSxDQUFDTSxLQUFkLEdBQXNCO0FBQ3BCSCxJQUFBQSxJQUFJLEVBQUUsWUFEYztBQUVwQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRk8sR0FUQTtBQWF0QixHQUFDQyxZQUFZLENBQUNPLE9BQWQsR0FBd0I7QUFDdEJKLElBQUFBLElBQUksRUFBRSxjQURnQjtBQUV0QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlMsR0FiRjtBQWlCdEIsR0FBQ0MsWUFBWSxDQUFDUSxRQUFkLEdBQXlCO0FBQ3ZCTCxJQUFBQSxJQUFJLEVBQUUsZUFEaUI7QUFFdkJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLElBQUQsRUFBT0wsY0FBUCxFQUF1QixLQUF2QjtBQUZVLEdBakJIO0FBcUJ0QixHQUFDQyxZQUFZLENBQUNTLFlBQWQsR0FBNkI7QUFDM0JOLElBQUFBLElBQUksRUFBRSxvQkFEcUI7QUFFM0JDLElBQUFBLFdBQVcsRUFBRSxDQUFDLFVBQUQsRUFBYUwsY0FBYjtBQUZjLEdBckJQO0FBeUJ0QixHQUFDQyxZQUFZLENBQUNVLFNBQWQsR0FBMEI7QUFBRTtBQUMxQlAsSUFBQUEsSUFBSSxFQUFFLFlBRGtCO0FBRXhCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGVyxHQXpCSjtBQTZCdEIsR0FBQ0MsWUFBWSxDQUFDVyxHQUFkLEdBQW9CO0FBQ2xCUixJQUFBQSxJQUFJLEVBQUUsS0FEWTtBQUVsQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRkssR0E3QkU7QUFpQ3RCLEdBQUNDLFlBQVksQ0FBQ1ksT0FBZCxHQUF3QjtBQUN0QlQsSUFBQUEsSUFBSSxFQUFFLFVBRGdCO0FBRXRCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGUyxHQWpDRjtBQXFDdEIsR0FBQ0MsWUFBWSxDQUFDYSxRQUFkLEdBQXlCO0FBQ3ZCVixJQUFBQSxJQUFJLEVBQUUsVUFEaUI7QUFFdkJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLElBQUQsRUFBTyxhQUFQLEVBQXNCTCxjQUF0QjtBQUZVLEdBckNIO0FBeUN0QixHQUFDQyxZQUFZLENBQUNjLElBQWQsR0FBcUI7QUFDbkJYLElBQUFBLElBQUksRUFBRSxNQURhO0FBRW5CQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxJQUFELEVBQU8sYUFBUCxFQUFzQkwsY0FBdEI7QUFGTSxHQXpDQztBQTZDdEIsR0FBQ0MsWUFBWSxDQUFDZSxLQUFkLEdBQXNCO0FBQ3BCWixJQUFBQSxJQUFJLEVBQUUsT0FEYztBQUVwQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRk8sR0E3Q0E7QUFpRHRCLEdBQUNDLFlBQVksQ0FBQ2dCLFNBQWQsR0FBMEI7QUFDeEJiLElBQUFBLElBQUksRUFBRSxXQURrQjtBQUV4QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlcsR0FqREo7QUFxRHRCLEdBQUNDLFlBQVksQ0FBQ2lCLE1BQWQsR0FBdUI7QUFDckJkLElBQUFBLElBQUksRUFBRSxRQURlO0FBRXJCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGUSxHQXJERDtBQXlEdEIsR0FBQ0MsWUFBWSxDQUFDa0IsS0FBZCxHQUFzQjtBQUNwQmYsSUFBQUEsSUFBSSxFQUFFLFlBRGM7QUFFcEJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLFVBQUQsRUFBYSxZQUFiLEVBQTJCTCxjQUEzQjtBQUZPO0FBekRBLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTk9USUNFOiBhdm9pZCBjaGFuZ2luZyBleHBvcnRlZCBrZXlzIGFzIHRoZXkgYXJlIHBhcnQgb2YgdGhlIHB1YmxpYyBhcGlcblxuZXhwb3J0IGNvbnN0IFBBU1NXT1JEX0ZJRUxEID0gJ3Bhc3N3b3JkJztcblxuZXhwb3J0IGVudW0gQ29tcGFueVR5cGVzIHtcbiAgaGFwb2FsaW0gPSAnaGFwb2FsaW0nLFxuICBoYXBvYWxpbUJlT25saW5lID0gJ2hhcG9hbGltQmVPbmxpbmUnLFxuICBiZWlubGV1bWkgPSAnYmVpbmxldW1pJyxcbiAgdW5pb24gPSAndW5pb24nLFxuICBhbWV4ID0gJ2FtZXgnLFxuICBpc3JhY2FyZCA9ICdpc3JhY2FyZCcsXG4gIHZpc2FDYWwgPSAndmlzYUNhbCcsXG4gIG1heCA9ICdtYXgnLFxuICBsZXVtaUNhcmQgPSAnbGV1bWlDYXJkJyxcbiAgb3RzYXJIYWhheWFsID0gJ290c2FySGFoYXlhbCcsXG4gIGRpc2NvdW50ID0gJ2Rpc2NvdW50JyxcbiAgbWl6cmFoaSA9ICdtaXpyYWhpJyxcbiAgbGV1bWkgPSAnbGV1bWknLFxuICBtYXNzYWQgPSAnbWFzc2FkJyxcbiAgeWFoYXYgPSAneWFoYXYnXG59XG5cbmV4cG9ydCBjb25zdCBTQ1JBUEVSUyA9IHtcbiAgW0NvbXBhbnlUeXBlcy5oYXBvYWxpbV06IHtcbiAgICBuYW1lOiAnQmFuayBIYXBvYWxpbScsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlckNvZGUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuaGFwb2FsaW1CZU9ubGluZV06IHsgLy8gVE9ETyByZW1vdmUgaW4gTWFqb3IgdmVyc2lvblxuICAgIG5hbWU6ICdCYW5rIEhhcG9hbGltJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VyQ29kZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5sZXVtaV06IHtcbiAgICBuYW1lOiAnQmFuayBMZXVtaScsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubWl6cmFoaV06IHtcbiAgICBuYW1lOiAnTWl6cmFoaSBCYW5rJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5kaXNjb3VudF06IHtcbiAgICBuYW1lOiAnRGlzY291bnQgQmFuaycsXG4gICAgbG9naW5GaWVsZHM6IFsnaWQnLCBQQVNTV09SRF9GSUVMRCwgJ251bSddLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm90c2FySGFoYXlhbF06IHtcbiAgICBuYW1lOiAnQmFuayBPdHNhciBIYWhheWFsJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5sZXVtaUNhcmRdOiB7IC8vIFRPRE8gcmVtb3ZlIGluIE1ham9yIHZlcnNpb25cbiAgICBuYW1lOiAnTGV1bWkgQ2FyZCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubWF4XToge1xuICAgIG5hbWU6ICdNYXgnLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLnZpc2FDYWxdOiB7XG4gICAgbmFtZTogJ1Zpc2EgQ2FsJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5pc3JhY2FyZF06IHtcbiAgICBuYW1lOiAnSXNyYWNhcmQnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgJ2NhcmQ2RGlnaXRzJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLmFtZXhdOiB7XG4gICAgbmFtZTogJ0FtZXgnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgJ2NhcmQ2RGlnaXRzJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLnVuaW9uXToge1xuICAgIG5hbWU6ICdVbmlvbicsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuYmVpbmxldW1pXToge1xuICAgIG5hbWU6ICdCZWlubGV1bWknLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm1hc3NhZF06IHtcbiAgICBuYW1lOiAnTWFzc2FkJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy55YWhhdl06IHtcbiAgICBuYW1lOiAnQmFuayBZYWhhdicsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCAnbmF0aW9uYWxJRCcsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbn07XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9ucy50cyJdLCJuYW1lcyI6WyJQQVNTV09SRF9GSUVMRCIsIkNvbXBhbnlUeXBlcyIsIlNDUkFQRVJTIiwiaGFwb2FsaW0iLCJuYW1lIiwibG9naW5GaWVsZHMiLCJoYXBvYWxpbUJlT25saW5lIiwibGV1bWkiLCJtaXpyYWhpIiwiZGlzY291bnQiLCJvdHNhckhhaGF5YWwiLCJsZXVtaUNhcmQiLCJtYXgiLCJ2aXNhQ2FsIiwiaXNyYWNhcmQiLCJhbWV4IiwidW5pb24iLCJiZWlubGV1bWkiLCJtYXNzYWQiLCJ5YWhhdiIsImJleWFoYWRCaXNodmlsaGEiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBRU8sTUFBTUEsY0FBYyxHQUFHLFVBQXZCOztJQUVLQyxZOzs7V0FBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0dBQUFBLFksNEJBQUFBLFk7O0FBbUJMLE1BQU1DLFFBQVEsR0FBRztBQUN0QixHQUFDRCxZQUFZLENBQUNFLFFBQWQsR0FBeUI7QUFDdkJDLElBQUFBLElBQUksRUFBRSxlQURpQjtBQUV2QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlUsR0FESDtBQUt0QixHQUFDQyxZQUFZLENBQUNLLGdCQUFkLEdBQWlDO0FBQUU7QUFDakNGLElBQUFBLElBQUksRUFBRSxlQUR5QjtBQUUvQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRmtCLEdBTFg7QUFTdEIsR0FBQ0MsWUFBWSxDQUFDTSxLQUFkLEdBQXNCO0FBQ3BCSCxJQUFBQSxJQUFJLEVBQUUsWUFEYztBQUVwQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRk8sR0FUQTtBQWF0QixHQUFDQyxZQUFZLENBQUNPLE9BQWQsR0FBd0I7QUFDdEJKLElBQUFBLElBQUksRUFBRSxjQURnQjtBQUV0QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlMsR0FiRjtBQWlCdEIsR0FBQ0MsWUFBWSxDQUFDUSxRQUFkLEdBQXlCO0FBQ3ZCTCxJQUFBQSxJQUFJLEVBQUUsZUFEaUI7QUFFdkJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLElBQUQsRUFBT0wsY0FBUCxFQUF1QixLQUF2QjtBQUZVLEdBakJIO0FBcUJ0QixHQUFDQyxZQUFZLENBQUNTLFlBQWQsR0FBNkI7QUFDM0JOLElBQUFBLElBQUksRUFBRSxvQkFEcUI7QUFFM0JDLElBQUFBLFdBQVcsRUFBRSxDQUFDLFVBQUQsRUFBYUwsY0FBYjtBQUZjLEdBckJQO0FBeUJ0QixHQUFDQyxZQUFZLENBQUNVLFNBQWQsR0FBMEI7QUFBRTtBQUMxQlAsSUFBQUEsSUFBSSxFQUFFLFlBRGtCO0FBRXhCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGVyxHQXpCSjtBQTZCdEIsR0FBQ0MsWUFBWSxDQUFDVyxHQUFkLEdBQW9CO0FBQ2xCUixJQUFBQSxJQUFJLEVBQUUsS0FEWTtBQUVsQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRkssR0E3QkU7QUFpQ3RCLEdBQUNDLFlBQVksQ0FBQ1ksT0FBZCxHQUF3QjtBQUN0QlQsSUFBQUEsSUFBSSxFQUFFLFVBRGdCO0FBRXRCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGUyxHQWpDRjtBQXFDdEIsR0FBQ0MsWUFBWSxDQUFDYSxRQUFkLEdBQXlCO0FBQ3ZCVixJQUFBQSxJQUFJLEVBQUUsVUFEaUI7QUFFdkJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLElBQUQsRUFBTyxhQUFQLEVBQXNCTCxjQUF0QjtBQUZVLEdBckNIO0FBeUN0QixHQUFDQyxZQUFZLENBQUNjLElBQWQsR0FBcUI7QUFDbkJYLElBQUFBLElBQUksRUFBRSxNQURhO0FBRW5CQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxJQUFELEVBQU8sYUFBUCxFQUFzQkwsY0FBdEI7QUFGTSxHQXpDQztBQTZDdEIsR0FBQ0MsWUFBWSxDQUFDZSxLQUFkLEdBQXNCO0FBQ3BCWixJQUFBQSxJQUFJLEVBQUUsT0FEYztBQUVwQkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRk8sR0E3Q0E7QUFpRHRCLEdBQUNDLFlBQVksQ0FBQ2dCLFNBQWQsR0FBMEI7QUFDeEJiLElBQUFBLElBQUksRUFBRSxXQURrQjtBQUV4QkMsSUFBQUEsV0FBVyxFQUFFLENBQUMsVUFBRCxFQUFhTCxjQUFiO0FBRlcsR0FqREo7QUFxRHRCLEdBQUNDLFlBQVksQ0FBQ2lCLE1BQWQsR0FBdUI7QUFDckJkLElBQUFBLElBQUksRUFBRSxRQURlO0FBRXJCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGUSxHQXJERDtBQXlEdEIsR0FBQ0MsWUFBWSxDQUFDa0IsS0FBZCxHQUFzQjtBQUNwQmYsSUFBQUEsSUFBSSxFQUFFLFlBRGM7QUFFcEJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLFVBQUQsRUFBYSxZQUFiLEVBQTJCTCxjQUEzQjtBQUZPLEdBekRBO0FBNkR0QixHQUFDQyxZQUFZLENBQUNtQixnQkFBZCxHQUFpQztBQUMvQmhCLElBQUFBLElBQUksRUFBRSxtQkFEeUI7QUFFL0JDLElBQUFBLFdBQVcsRUFBRSxDQUFDLElBQUQsRUFBT0wsY0FBUDtBQUZrQjtBQTdEWCxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVElDRTogYXZvaWQgY2hhbmdpbmcgZXhwb3J0ZWQga2V5cyBhcyB0aGV5IGFyZSBwYXJ0IG9mIHRoZSBwdWJsaWMgYXBpXG5cbmV4cG9ydCBjb25zdCBQQVNTV09SRF9GSUVMRCA9ICdwYXNzd29yZCc7XG5cbmV4cG9ydCBlbnVtIENvbXBhbnlUeXBlcyB7XG4gIGhhcG9hbGltID0gJ2hhcG9hbGltJyxcbiAgaGFwb2FsaW1CZU9ubGluZSA9ICdoYXBvYWxpbUJlT25saW5lJyxcbiAgYmVpbmxldW1pID0gJ2JlaW5sZXVtaScsXG4gIHVuaW9uID0gJ3VuaW9uJyxcbiAgYW1leCA9ICdhbWV4JyxcbiAgaXNyYWNhcmQgPSAnaXNyYWNhcmQnLFxuICB2aXNhQ2FsID0gJ3Zpc2FDYWwnLFxuICBtYXggPSAnbWF4JyxcbiAgbGV1bWlDYXJkID0gJ2xldW1pQ2FyZCcsXG4gIG90c2FySGFoYXlhbCA9ICdvdHNhckhhaGF5YWwnLFxuICBkaXNjb3VudCA9ICdkaXNjb3VudCcsXG4gIG1penJhaGkgPSAnbWl6cmFoaScsXG4gIGxldW1pID0gJ2xldW1pJyxcbiAgbWFzc2FkID0gJ21hc3NhZCcsXG4gIHlhaGF2ID0gJ3lhaGF2JyxcbiAgYmV5YWhhZEJpc2h2aWxoYSA9ICdiZXlhaGFkQmlzaHZpbGhhJ1xufVxuXG5leHBvcnQgY29uc3QgU0NSQVBFUlMgPSB7XG4gIFtDb21wYW55VHlwZXMuaGFwb2FsaW1dOiB7XG4gICAgbmFtZTogJ0JhbmsgSGFwb2FsaW0nLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJDb2RlJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLmhhcG9hbGltQmVPbmxpbmVdOiB7IC8vIFRPRE8gcmVtb3ZlIGluIE1ham9yIHZlcnNpb25cbiAgICBuYW1lOiAnQmFuayBIYXBvYWxpbScsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlckNvZGUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubGV1bWldOiB7XG4gICAgbmFtZTogJ0JhbmsgTGV1bWknLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm1penJhaGldOiB7XG4gICAgbmFtZTogJ01penJhaGkgQmFuaycsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuZGlzY291bnRdOiB7XG4gICAgbmFtZTogJ0Rpc2NvdW50IEJhbmsnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgUEFTU1dPUkRfRklFTEQsICdudW0nXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5vdHNhckhhaGF5YWxdOiB7XG4gICAgbmFtZTogJ0JhbmsgT3RzYXIgSGFoYXlhbCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubGV1bWlDYXJkXTogeyAvLyBUT0RPIHJlbW92ZSBpbiBNYWpvciB2ZXJzaW9uXG4gICAgbmFtZTogJ0xldW1pIENhcmQnLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm1heF06IHtcbiAgICBuYW1lOiAnTWF4JyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy52aXNhQ2FsXToge1xuICAgIG5hbWU6ICdWaXNhIENhbCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuaXNyYWNhcmRdOiB7XG4gICAgbmFtZTogJ0lzcmFjYXJkJyxcbiAgICBsb2dpbkZpZWxkczogWydpZCcsICdjYXJkNkRpZ2l0cycsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5hbWV4XToge1xuICAgIG5hbWU6ICdBbWV4JyxcbiAgICBsb2dpbkZpZWxkczogWydpZCcsICdjYXJkNkRpZ2l0cycsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy51bmlvbl06IHtcbiAgICBuYW1lOiAnVW5pb24nLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLmJlaW5sZXVtaV06IHtcbiAgICBuYW1lOiAnQmVpbmxldW1pJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5tYXNzYWRdOiB7XG4gICAgbmFtZTogJ01hc3NhZCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMueWFoYXZdOiB7XG4gICAgbmFtZTogJ0JhbmsgWWFoYXYnLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgJ25hdGlvbmFsSUQnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuYmV5YWhhZEJpc2h2aWxoYV06IHtcbiAgICBuYW1lOiAnQmV5YWhhZCBCaXNodmlsaGEnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxufTtcbiJdfQ==
@@ -24,7 +24,7 @@ export interface LoginOptions {
24
24
  selector: string;
25
25
  value: string;
26
26
  }[];
27
- submitButtonSelector: string;
27
+ submitButtonSelector: string | (() => Promise<void>);
28
28
  preAction?: () => Promise<Frame | void>;
29
29
  postAction?: () => Promise<void>;
30
30
  possibleResults: PossibleLoginResults;
@@ -33,6 +33,10 @@ export interface LoginOptions {
33
33
  declare class BaseScraperWithBrowser extends BaseScraper {
34
34
  protected browser: Browser;
35
35
  protected page: Page;
36
+ protected getViewPort(): {
37
+ width: number;
38
+ height: number;
39
+ };
36
40
  initialize(): Promise<void>;
37
41
  navigateTo(url: string, page?: Page, timeout?: number): Promise<void>;
38
42
  getLoginOptions(_credentials: ScraperCredentials): LoginOptions;
@@ -129,6 +129,13 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
129
129
  _defineProperty(this, "page", void 0);
130
130
  }
131
131
 
132
+ getViewPort() {
133
+ return {
134
+ width: VIEWPORT_WIDTH,
135
+ height: VIEWPORT_HEIGHT
136
+ };
137
+ }
138
+
132
139
  async initialize() {
133
140
  debug('initialize scraper');
134
141
  this.emitProgress(_baseScraper.ScaperProgressTypes.Initializing);
@@ -181,10 +188,11 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
181
188
  await this.options.preparePage(this.page);
182
189
  }
183
190
 
184
- debug(`set viewport to width ${VIEWPORT_WIDTH}, height ${VIEWPORT_HEIGHT}`);
191
+ const viewport = this.getViewPort();
192
+ debug(`set viewport to width ${viewport.width}, height ${viewport.height}`);
185
193
  await this.page.setViewport({
186
- width: VIEWPORT_WIDTH,
187
- height: VIEWPORT_HEIGHT
194
+ width: viewport.width,
195
+ height: viewport.height
188
196
  });
189
197
  this.page.on('requestfailed', request => {
190
198
  var _request$failure;
@@ -250,7 +258,7 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
250
258
  if (loginOptions.checkReadiness) {
251
259
  debug('execute \'checkReadiness\' interceptor provided in login options');
252
260
  await loginOptions.checkReadiness();
253
- } else {
261
+ } else if (typeof loginOptions.submitButtonSelector === 'string') {
254
262
  debug('wait until submit button is available');
255
263
  await (0, _elementsInteractions.waitUntilElementFound)(this.page, loginOptions.submitButtonSelector);
256
264
  }
@@ -265,7 +273,13 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
265
273
  debug('fill login components input with relevant values');
266
274
  await this.fillInputs(loginFrameOrPage, loginOptions.fields);
267
275
  debug('click on login submit button');
268
- await (0, _elementsInteractions.clickButton)(loginFrameOrPage, loginOptions.submitButtonSelector);
276
+
277
+ if (typeof loginOptions.submitButtonSelector === 'string') {
278
+ await (0, _elementsInteractions.clickButton)(loginFrameOrPage, loginOptions.submitButtonSelector);
279
+ } else {
280
+ await loginOptions.submitButtonSelector();
281
+ }
282
+
269
283
  this.emitProgress(_baseScraper.ScaperProgressTypes.LoggingIn);
270
284
 
271
285
  if (loginOptions.postAction) {
@@ -305,4 +319,4 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
305
319
  }
306
320
 
307
321
  exports.BaseScraperWithBrowser = BaseScraperWithBrowser;
308
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyLnRzIl0sIm5hbWVzIjpbIlZJRVdQT1JUX1dJRFRIIiwiVklFV1BPUlRfSEVJR0hUIiwiT0tfU1RBVFVTIiwiZGVidWciLCJMb2dpbkJhc2VSZXN1bHRzIiwiVGltZW91dCIsIkdlbmVyaWMiLCJHZW5lcmFsIiwiU2NyYXBlckVycm9yVHlwZXMiLCJyZXN0IiwiTG9naW5SZXN1bHRzIiwiZ2V0S2V5QnlWYWx1ZSIsIm9iamVjdCIsInZhbHVlIiwicGFnZSIsImtleXMiLCJPYmplY3QiLCJrZXkiLCJjb25kaXRpb25zIiwiY29uZGl0aW9uIiwicmVzdWx0IiwiUmVnRXhwIiwidGVzdCIsInRvTG93ZXJDYXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJVbmtub3duRXJyb3IiLCJoYW5kbGVMb2dpblJlc3VsdCIsInNjcmFwZXIiLCJsb2dpblJlc3VsdCIsIlN1Y2Nlc3MiLCJlbWl0UHJvZ3Jlc3MiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiTG9naW5TdWNjZXNzIiwic3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIkxvZ2luRmFpbGVkIiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlIiwiQ2hhbmdlUGFzc3dvcmQiLCJFcnJvciIsImNyZWF0ZUdlbmVyYWxFcnJvciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJCYXNlU2NyYXBlciIsImluaXRpYWxpemUiLCJJbml0aWFsaXppbmciLCJlbnYiLCJvcHRpb25zIiwidmVyYm9zZSIsIkRFQlVHIiwicHJvY2VzcyIsImJyb3dzZXIiLCJleGVjdXRhYmxlUGF0aCIsInVuZGVmaW5lZCIsImFyZ3MiLCJoZWFkbGVzcyIsInNob3dCcm93c2VyIiwicHVwcGV0ZWVyIiwibGF1bmNoIiwicHJlcGFyZUJyb3dzZXIiLCJwYWdlcyIsImxlbmd0aCIsIm5ld1BhZ2UiLCJwcmVwYXJlUGFnZSIsInNldFZpZXdwb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJvbiIsInJlcXVlc3QiLCJmYWlsdXJlIiwiZXJyb3JUZXh0IiwidXJsIiwibmF2aWdhdGVUbyIsInRpbWVvdXQiLCJwYWdlVG9Vc2UiLCJyZXNwb25zZSIsImdvdG8iLCJzdGF0dXMiLCJnZXRMb2dpbk9wdGlvbnMiLCJfY3JlZGVudGlhbHMiLCJjb21wYW55SWQiLCJmaWxsSW5wdXRzIiwicGFnZU9yRnJhbWUiLCJmaWVsZHMiLCJtb2RpZmllZCIsImlucHV0Iiwic2hpZnQiLCJzZWxlY3RvciIsImxvZ2luIiwiY3JlZGVudGlhbHMiLCJsb2dpbk9wdGlvbnMiLCJ1c2VyQWdlbnQiLCJzZXRVc2VyQWdlbnQiLCJsb2dpblVybCIsImNoZWNrUmVhZGluZXNzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJsb2dpbkZyYW1lT3JQYWdlIiwicHJlQWN0aW9uIiwiTG9nZ2luZ0luIiwicG9zdEFjdGlvbiIsImN1cnJlbnQiLCJwb3NzaWJsZVJlc3VsdHMiLCJ0ZXJtaW5hdGUiLCJfc3VjY2VzcyIsIlRlcm1pbmF0aW5nIiwic3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGgiLCJzY3JlZW5zaG90IiwicGF0aCIsImZ1bGxQYWdlIiwiY2xvc2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBS0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FBRUEsTUFBTUEsY0FBYyxHQUFHLElBQXZCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHLEdBQXhCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHLEdBQWxCO0FBRUEsTUFBTUMsS0FBSyxHQUFHLHFCQUFTLDJCQUFULENBQWQ7SUFFS0MsZ0I7O1dBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0dBQUFBLGdCLEtBQUFBLGdCOztBQUtMLE1BQU07QUFDSkMsRUFBQUEsT0FESTtBQUNLQyxFQUFBQSxPQURMO0FBQ2NDLEVBQUFBO0FBRGQsSUFFRkMsOEJBRko7QUFBQSxNQUNnQ0MsSUFEaEMsNEJBRUlELDhCQUZKOztBQUdPLE1BQU1F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QU47QUFJRDs7QUFFRCxRQUFJLENBQUMsS0FBS3pELE9BQVYsRUFBbUI7QUFDakI7QUFDRDs7QUFFRCxVQUFNLEtBQUtBLE9BQUwsQ0FBYTBELEtBQWIsRUFBTjtBQUNEOztBQTNLOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHVwcGV0ZWVyLCB7IEJyb3dzZXIsIEZyYW1lLCBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcblxuaW1wb3J0IHtcbiAgU2NyYXBlckVycm9yVHlwZXMsXG4gIEJhc2VTY3JhcGVyLCBTY2FwZXJTY3JhcGluZ1Jlc3VsdCwgU2NhcGVyUHJvZ3Jlc3NUeXBlcyxcbiAgU2NyYXBlckNyZWRlbnRpYWxzLFxufSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5pbXBvcnQgeyBnZXRDdXJyZW50VXJsLCB3YWl0Rm9yTmF2aWdhdGlvbiB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBjbGlja0J1dHRvbiwgZmlsbElucHV0LCB3YWl0VW50aWxFbGVtZW50Rm91bmQgfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuXG5jb25zdCBWSUVXUE9SVF9XSURUSCA9IDEwMjQ7XG5jb25zdCBWSUVXUE9SVF9IRUlHSFQgPSA3Njg7XG5jb25zdCBPS19TVEFUVVMgPSAyMDA7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInKTtcblxuZW51bSBMb2dpbkJhc2VSZXN1bHRzIHtcbiAgU3VjY2VzcyA9ICdTVUNDRVNTJyxcbiAgVW5rbm93bkVycm9yID0gJ1VOS05PV05fRVJST1InXG59XG5cbmNvbnN0IHtcbiAgVGltZW91dCwgR2VuZXJpYywgR2VuZXJhbCwgLi4ucmVzdFxufSA9IFNjcmFwZXJFcnJvclR5cGVzO1xuZXhwb3J0IGNvbnN0IExvZ2luUmVzdWx0cyA9IHtcbiAgLi4ucmVzdCxcbiAgLi4uTG9naW5CYXNlUmVzdWx0cyxcbn07XG5cbmV4cG9ydCB0eXBlIExvZ2luUmVzdWx0cyA9IEV4Y2x1ZGU8U2NyYXBlckVycm9yVHlwZXMsXG5TY3JhcGVyRXJyb3JUeXBlcy5UaW1lb3V0XG58IFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyaWNcbnwgU2NyYXBlckVycm9yVHlwZXMuR2VuZXJhbD4gfCBMb2dpbkJhc2VSZXN1bHRzO1xuXG5leHBvcnQgdHlwZSBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHtcbiAgW2tleSBpbiBMb2dpblJlc3VsdHNdPzogKHN0cmluZyB8IFJlZ0V4cCB8ICgob3B0aW9ucz86IHsgcGFnZT86IFBhZ2V9KSA9PiBQcm9taXNlPGJvb2xlYW4+KSlbXVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBMb2dpbk9wdGlvbnMge1xuICBsb2dpblVybDogc3RyaW5nO1xuICBjaGVja1JlYWRpbmVzcz86ICgpID0+IFByb21pc2U8dm9pZD47XG4gIGZpZWxkczoge3NlbGVjdG9yOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmd9W107XG4gIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiBzdHJpbmc7XG4gIHByZUFjdGlvbj86ICgpID0+IFByb21pc2U8RnJhbWUgfCB2b2lkPjtcbiAgcG9zdEFjdGlvbj86ICgpID0+IFByb21pc2U8dm9pZD47XG4gIHBvc3NpYmxlUmVzdWx0czogUG9zc2libGVMb2dpblJlc3VsdHM7XG4gIHVzZXJBZ2VudD86IHN0cmluZztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0S2V5QnlWYWx1ZShvYmplY3Q6IFBvc3NpYmxlTG9naW5SZXN1bHRzLCB2YWx1ZTogc3RyaW5nLCBwYWdlOiBQYWdlKTogUHJvbWlzZTxMb2dpblJlc3VsdHM+IHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgY29uZGl0aW9ucyA9IG9iamVjdFtrZXldO1xuXG4gICAgZm9yIChjb25zdCBjb25kaXRpb24gb2YgY29uZGl0aW9ucykge1xuICAgICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgICBpZiAoY29uZGl0aW9uIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgIHJlc3VsdCA9IGNvbmRpdGlvbi50ZXN0KHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBjb25kaXRpb24oeyBwYWdlLCB2YWx1ZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IGNvbmRpdGlvbi50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoTG9naW5SZXN1bHRzLlVua25vd25FcnJvcik7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUxvZ2luUmVzdWx0KHNjcmFwZXI6IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIGxvZ2luUmVzdWx0OiBMb2dpblJlc3VsdHMpIHtcbiAgc3dpdGNoIChsb2dpblJlc3VsdCkge1xuICAgIGNhc2UgTG9naW5SZXN1bHRzLlN1Y2Nlc3M6XG4gICAgICBzY3JhcGVyLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkxvZ2luU3VjY2Vzcyk7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgY2FzZSBMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkOlxuICAgIGNhc2UgTG9naW5SZXN1bHRzLlVua25vd25FcnJvcjpcbiAgICAgIHNjcmFwZXIuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuTG9naW5GYWlsZWQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yVHlwZTogbG9naW5SZXN1bHQgPT09IExvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmQgPyBTY3JhcGVyRXJyb3JUeXBlcy5JbnZhbGlkUGFzc3dvcmQgOlxuICAgICAgICAgIFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyYWwsXG4gICAgICAgIGVycm9yTWVzc2FnZTogYExvZ2luIGZhaWxlZCB3aXRoICR7bG9naW5SZXN1bHR9IGVycm9yYCxcbiAgICAgIH07XG4gICAgY2FzZSBMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmQ6XG4gICAgICBzY3JhcGVyLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIGxvZ2luIHJlc3VsdCBcIiR7bG9naW5SZXN1bHR9XCJgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVHZW5lcmFsRXJyb3IoKTogU2NhcGVyU2NyYXBpbmdSZXN1bHQge1xuICByZXR1cm4ge1xuICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuR2VuZXJhbCxcbiAgfTtcbn1cblxuY2xhc3MgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciBleHRlbmRzIEJhc2VTY3JhcGVyIHtcbiAgLy8gTk9USUNFIC0gaXQgaXMgZGlzY291cmFnZSB0byB1c2UgYmFuZyAoISkgaW4gZ2VuZXJhbC4gSXQgaXMgdXNlZCBoZXJlIGJlY2F1c2VcbiAgLy8gYWxsIHRoZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIHRoaXMgYmFzZSBhc3N1bWUgaXMgaXQgbWFuZGF0b3J5LlxuICBwcm90ZWN0ZWQgYnJvd3NlciE6IEJyb3dzZXI7XG5cbiAgLy8gTk9USUNFIC0gaXQgaXMgZGlzY291cmFnZSB0byB1c2UgYmFuZyAoISkgaW4gZ2VuZXJhbC4gSXQgaXMgdXNlZCBoZXJlIGJlY2F1c2VcbiAgLy8gYWxsIHRoZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIHRoaXMgYmFzZSBhc3N1bWUgaXMgaXQgbWFuZGF0b3J5LlxuICBwcm90ZWN0ZWQgcGFnZSE6IFBhZ2U7XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICBkZWJ1ZygnaW5pdGlhbGl6ZSBzY3JhcGVyJyk7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Jbml0aWFsaXppbmcpO1xuXG4gICAgbGV0IGVudjogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgIGVudiA9IHsgREVCVUc6ICcqJywgLi4ucHJvY2Vzcy5lbnYgfTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5icm93c2VyICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm9wdGlvbnMuYnJvd3NlciAhPT0gbnVsbCkge1xuICAgICAgZGVidWcoJ3VzZSBjdXN0b20gYnJvd3NlciBpbnN0YW5jZSBwcm92aWRlZCBpbiBvcHRpb25zJyk7XG4gICAgICB0aGlzLmJyb3dzZXIgPSB0aGlzLm9wdGlvbnMuYnJvd3NlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXhlY3V0YWJsZVBhdGggPSB0aGlzLm9wdGlvbnMuZXhlY3V0YWJsZVBhdGggfHwgdW5kZWZpbmVkO1xuICAgICAgY29uc3QgYXJncyA9IHRoaXMub3B0aW9ucy5hcmdzIHx8IFtdO1xuXG4gICAgICBjb25zdCBoZWFkbGVzcyA9ICF0aGlzLm9wdGlvbnMuc2hvd0Jyb3dzZXI7XG4gICAgICBkZWJ1ZyhgbGF1bmNoIGEgYnJvd3NlciB3aXRoIGhlYWRsZXNzIG1vZGUgPSAke2hlYWRsZXNzfWApO1xuICAgICAgdGhpcy5icm93c2VyID0gYXdhaXQgcHVwcGV0ZWVyLmxhdW5jaCh7XG4gICAgICAgIGVudixcbiAgICAgICAgaGVhZGxlc3MsXG4gICAgICAgIGV4ZWN1dGFibGVQYXRoLFxuICAgICAgICBhcmdzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5wcmVwYXJlQnJvd3Nlcikge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwncHJlcGFyZUJyb3dzZXJcXCcgaW50ZXJjZXB0b3IgcHJvdmlkZWQgaW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgdGhpcy5vcHRpb25zLnByZXBhcmVCcm93c2VyKHRoaXMuYnJvd3Nlcik7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmJyb3dzZXIpIHtcbiAgICAgIGRlYnVnKCdmYWlsZWQgdG8gaW5pdGlhdGUgYSBicm93c2VyLCBleGl0Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFnZXMgPSBhd2FpdCB0aGlzLmJyb3dzZXIucGFnZXMoKTtcbiAgICBpZiAocGFnZXMubGVuZ3RoKSB7XG4gICAgICBkZWJ1ZygnYnJvd3NlciBoYXMgYWxyZWFkeSBwYWdlcyBvcGVuLCB1c2UgdGhlIGZpcnN0IG9uZScpO1xuICAgICAgW3RoaXMucGFnZV0gPSBwYWdlcztcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ2NyZWF0ZSBhIG5ldyBicm93c2VyIHBhZ2UnKTtcbiAgICAgIHRoaXMucGFnZSA9IGF3YWl0IHRoaXMuYnJvd3Nlci5uZXdQYWdlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5wcmVwYXJlUGFnZSkge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwncHJlcGFyZVBhZ2VcXCcgaW50ZXJjZXB0b3IgcHJvdmlkZWQgaW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgdGhpcy5vcHRpb25zLnByZXBhcmVQYWdlKHRoaXMucGFnZSk7XG4gICAgfVxuXG4gICAgZGVidWcoYHNldCB2aWV3cG9ydCB0byB3aWR0aCAke1ZJRVdQT1JUX1dJRFRIfSwgaGVpZ2h0ICR7VklFV1BPUlRfSEVJR0hUfWApO1xuICAgIGF3YWl0IHRoaXMucGFnZS5zZXRWaWV3cG9ydCh7XG4gICAgICB3aWR0aDogVklFV1BPUlRfV0lEVEgsXG4gICAgICBoZWlnaHQ6IFZJRVdQT1JUX0hFSUdIVCxcbiAgICB9KTtcblxuICAgIHRoaXMucGFnZS5vbigncmVxdWVzdGZhaWxlZCcsIChyZXF1ZXN0KSA9PiB7XG4gICAgICBkZWJ1ZygnUmVxdWVzdCBmYWlsZWQ6ICVzICVzJywgcmVxdWVzdC5mYWlsdXJlKCk/LmVycm9yVGV4dCwgcmVxdWVzdC51cmwoKSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBuYXZpZ2F0ZVRvKHVybDogc3RyaW5nLCBwYWdlPzogUGFnZSwgdGltZW91dD86IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBhZ2VUb1VzZSA9IHBhZ2UgfHwgdGhpcy5wYWdlO1xuXG4gICAgaWYgKCFwYWdlVG9Vc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zID0geyAuLi4odGltZW91dCA9PT0gbnVsbCA/IG51bGwgOiB7IHRpbWVvdXQgfSkgfTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHBhZ2VUb1VzZS5nb3RvKHVybCwgb3B0aW9ucyk7XG5cbiAgICAvLyBub3RlOiByZXNwb25zZSB3aWxsIGJlIG51bGwgd2hlbiBuYXZpZ2F0aW5nIHRvIHNhbWUgdXJsIHdoaWxlIGNoYW5naW5nIHRoZSBoYXNoIHBhcnQuIHRoZSBjb25kaXRpb24gYmVsb3cgd2lsbCBhbHdheXMgYWNjZXB0IG51bGwgYXMgdmFsaWQgcmVzdWx0LlxuICAgIGlmIChyZXNwb25zZSAhPT0gbnVsbCAmJiAocmVzcG9uc2UgPT09IHVuZGVmaW5lZCB8fCByZXNwb25zZS5zdGF0dXMoKSAhPT0gT0tfU1RBVFVTKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciB3aGlsZSB0cnlpbmcgdG8gbmF2aWdhdGUgdG8gdXJsICR7dXJsfWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgZ2V0TG9naW5PcHRpb25zKF9jcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKTogTG9naW5PcHRpb25zIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGdldExvZ2luT3B0aW9ucygpIGlzIG5vdCBjcmVhdGVkIGluICR7dGhpcy5vcHRpb25zLmNvbXBhbnlJZH1gKTtcbiAgfVxuXG4gIGFzeW5jIGZpbGxJbnB1dHMocGFnZU9yRnJhbWU6IFBhZ2UgfCBGcmFtZSwgZmllbGRzOiB7IHNlbGVjdG9yOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmd9W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBtb2RpZmllZCA9IFsuLi5maWVsZHNdO1xuICAgIGNvbnN0IGlucHV0ID0gbW9kaWZpZWQuc2hpZnQoKTtcblxuICAgIGlmICghaW5wdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgZmlsbElucHV0KHBhZ2VPckZyYW1lLCBpbnB1dC5zZWxlY3RvciwgaW5wdXQudmFsdWUpO1xuICAgIGlmIChtb2RpZmllZC5sZW5ndGgpIHtcbiAgICAgIGF3YWl0IHRoaXMuZmlsbElucHV0cyhwYWdlT3JGcmFtZSwgbW9kaWZpZWQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxvZ2luKGNyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxTY2FwZXJTY3JhcGluZ1Jlc3VsdD4ge1xuICAgIGlmICghY3JlZGVudGlhbHMgfHwgIXRoaXMucGFnZSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZUdlbmVyYWxFcnJvcigpO1xuICAgIH1cblxuICAgIGRlYnVnKCdleGVjdXRlIGxvZ2luIHByb2Nlc3MnKTtcbiAgICBjb25zdCBsb2dpbk9wdGlvbnMgPSB0aGlzLmdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFscyk7XG5cbiAgICBpZiAobG9naW5PcHRpb25zLnVzZXJBZ2VudCkge1xuICAgICAgZGVidWcoJ3NldCBjdXN0b20gdXNlciBhZ2VudCBwcm92aWRlZCBpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCB0aGlzLnBhZ2Uuc2V0VXNlckFnZW50KGxvZ2luT3B0aW9ucy51c2VyQWdlbnQpO1xuICAgIH1cblxuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byBsb2dpbiB1cmwnKTtcbiAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG8obG9naW5PcHRpb25zLmxvZ2luVXJsKTtcbiAgICBpZiAobG9naW5PcHRpb25zLmNoZWNrUmVhZGluZXNzKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdjaGVja1JlYWRpbmVzc1xcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBsb2dpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCBsb2dpbk9wdGlvbnMuY2hlY2tSZWFkaW5lc3MoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ3dhaXQgdW50aWwgc3VibWl0IGJ1dHRvbiBpcyBhdmFpbGFibGUnKTtcbiAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3Rvcik7XG4gICAgfVxuXG4gICAgbGV0IGxvZ2luRnJhbWVPclBhZ2U6IChQYWdlIHwgRnJhbWUgfCBudWxsKSA9IHRoaXMucGFnZTtcbiAgICBpZiAobG9naW5PcHRpb25zLnByZUFjdGlvbikge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwncHJlQWN0aW9uXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIGxvZ2luIG9wdGlvbnMnKTtcbiAgICAgIGxvZ2luRnJhbWVPclBhZ2UgPSBhd2FpdCBsb2dpbk9wdGlvbnMucHJlQWN0aW9uKCkgfHwgdGhpcy5wYWdlO1xuICAgIH1cblxuICAgIGRlYnVnKCdmaWxsIGxvZ2luIGNvbXBvbmVudHMgaW5wdXQgd2l0aCByZWxldmFudCB2YWx1ZXMnKTtcbiAgICBhd2FpdCB0aGlzLmZpbGxJbnB1dHMobG9naW5GcmFtZU9yUGFnZSwgbG9naW5PcHRpb25zLmZpZWxkcyk7XG4gICAgZGVidWcoJ2NsaWNrIG9uIGxvZ2luIHN1Ym1pdCBidXR0b24nKTtcbiAgICBhd2FpdCBjbGlja0J1dHRvbihsb2dpbkZyYW1lT3JQYWdlLCBsb2dpbk9wdGlvbnMuc3VibWl0QnV0dG9uU2VsZWN0b3IpO1xuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuTG9nZ2luZ0luKTtcblxuICAgIGlmIChsb2dpbk9wdGlvbnMucG9zdEFjdGlvbikge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwncG9zdEFjdGlvblxcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBsb2dpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCBsb2dpbk9wdGlvbnMucG9zdEFjdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWJ1Zygnd2FpdCBmb3IgcGFnZSBuYXZpZ2F0aW9uJyk7XG4gICAgICBhd2FpdCB3YWl0Rm9yTmF2aWdhdGlvbih0aGlzLnBhZ2UpO1xuICAgIH1cblxuICAgIGRlYnVnKCdjaGVjayBsb2dpbiByZXN1bHQnKTtcbiAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgZ2V0Q3VycmVudFVybCh0aGlzLnBhZ2UsIHRydWUpO1xuICAgIGNvbnN0IGxvZ2luUmVzdWx0ID0gYXdhaXQgZ2V0S2V5QnlWYWx1ZShsb2dpbk9wdGlvbnMucG9zc2libGVSZXN1bHRzLCBjdXJyZW50LCB0aGlzLnBhZ2UpO1xuICAgIGRlYnVnKGBoYW5kbGUgbG9naW4gcmVzdWx0cyAke2xvZ2luUmVzdWx0fWApO1xuICAgIHJldHVybiBoYW5kbGVMb2dpblJlc3VsdCh0aGlzLCBsb2dpblJlc3VsdCk7XG4gIH1cblxuICBhc3luYyB0ZXJtaW5hdGUoX3N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICBkZWJ1ZyhgdGVybWluYXRpbmcgYnJvd3NlciB3aXRoIHN1Y2Nlc3MgPSAke19zdWNjZXNzfWApO1xuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuVGVybWluYXRpbmcpO1xuXG4gICAgaWYgKCFfc3VjY2VzcyAmJiAhIXRoaXMub3B0aW9ucy5zdG9yZUZhaWx1cmVTY3JlZW5TaG90UGF0aCkge1xuICAgICAgZGVidWcoYGNyZWF0ZSBhIHNuYXBzaG90IGJlZm9yZSB0ZXJtaW5hdGVkIGluICR7dGhpcy5vcHRpb25zLnN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRofWApO1xuICAgICAgYXdhaXQgdGhpcy5wYWdlLnNjcmVlbnNob3Qoe1xuICAgICAgICBwYXRoOiB0aGlzLm9wdGlvbnMuc3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGgsXG4gICAgICAgIGZ1bGxQYWdlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmJyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmJyb3dzZXIuY2xvc2UoKTtcbiAgfVxufVxuXG5leHBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIH07XG4iXX0=
322
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyLnRzIl0sIm5hbWVzIjpbIlZJRVdQT1JUX1dJRFRIIiwiVklFV1BPUlRfSEVJR0hUIiwiT0tfU1RBVFVTIiwiZGVidWciLCJMb2dpbkJhc2VSZXN1bHRzIiwiVGltZW91dCIsIkdlbmVyaWMiLCJHZW5lcmFsIiwiU2NyYXBlckVycm9yVHlwZXMiLCJyZXN0IiwiTG9naW5SZXN1bHRzIiwiZ2V0S2V5QnlWYWx1ZSIsIm9iamVjdCIsInZhbHVlIiwicGFnZSIsImtleXMiLCJPYmplY3QiLCJrZXkiLCJjb25kaXRpb25zIiwiY29uZGl0aW9uIiwicmVzdWx0IiwiUmVnRXhwIiwidGVzdCIsInRvTG93ZXJDYXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJVbmtub3duRXJyb3IiLCJoYW5kbGVMb2dpblJlc3VsdCIsInNjcmFwZXIiLCJsb2dpblJlc3VsdCIsIlN1Y2Nlc3MiLCJlbWl0UHJvZ3Jlc3MiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiTG9naW5TdWNjZXNzIiwic3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIkxvZ2luRmFpbGVkIiwiZXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlIiwiQ2hhbmdlUGFzc3dvcmQiLCJFcnJvciIsImNyZWF0ZUdlbmVyYWxFcnJvciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJCYXNlU2NyYXBlciIsImdldFZpZXdQb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJpbml0aWFsaXplIiwiSW5pdGlhbGl6aW5nIiwiZW52Iiwib3B0aW9ucyIsInZlcmJvc2UiLCJERUJVRyIsInByb2Nlc3MiLCJicm93c2VyIiwiZXhlY3V0YWJsZVBhdGgiLCJ1bmRlZmluZWQiLCJhcmdzIiwiaGVhZGxlc3MiLCJzaG93QnJvd3NlciIsInB1cHBldGVlciIsImxhdW5jaCIsInByZXBhcmVCcm93c2VyIiwicGFnZXMiLCJsZW5ndGgiLCJuZXdQYWdlIiwicHJlcGFyZVBhZ2UiLCJ2aWV3cG9ydCIsInNldFZpZXdwb3J0Iiwib24iLCJyZXF1ZXN0IiwiZmFpbHVyZSIsImVycm9yVGV4dCIsInVybCIsIm5hdmlnYXRlVG8iLCJ0aW1lb3V0IiwicGFnZVRvVXNlIiwicmVzcG9uc2UiLCJnb3RvIiwic3RhdHVzIiwiZ2V0TG9naW5PcHRpb25zIiwiX2NyZWRlbnRpYWxzIiwiY29tcGFueUlkIiwiZmlsbElucHV0cyIsInBhZ2VPckZyYW1lIiwiZmllbGRzIiwibW9kaWZpZWQiLCJpbnB1dCIsInNoaWZ0Iiwic2VsZWN0b3IiLCJsb2dpbiIsImNyZWRlbnRpYWxzIiwibG9naW5PcHRpb25zIiwidXNlckFnZW50Iiwic2V0VXNlckFnZW50IiwibG9naW5VcmwiLCJjaGVja1JlYWRpbmVzcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwibG9naW5GcmFtZU9yUGFnZSIsInByZUFjdGlvbiIsIkxvZ2dpbmdJbiIsInBvc3RBY3Rpb24iLCJjdXJyZW50IiwicG9zc2libGVSZXN1bHRzIiwidGVybWluYXRlIiwiX3N1Y2Nlc3MiLCJUZXJtaW5hdGluZyIsInN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoIiwic2NyZWVuc2hvdCIsInBhdGgiLCJmdWxsUGFnZSIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUtBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7OztBQUVBLE1BQU1BLGNBQWMsR0FBRyxJQUF2QjtBQUNBLE1BQU1DLGVBQWUsR0FBRyxHQUF4QjtBQUNBLE1BQU1DLFNBQVMsR0FBRyxHQUFsQjtBQUVBLE1BQU1DLEtBQUssR0FBRyxxQkFBUywyQkFBVCxDQUFkO0lBRUtDLGdCOztXQUFBQSxnQjtBQUFBQSxFQUFBQSxnQjtBQUFBQSxFQUFBQSxnQjtHQUFBQSxnQixLQUFBQSxnQjs7QUFLTCxNQUFNO0FBQ0pDLEVBQUFBLE9BREk7QUFDS0MsRUFBQUEsT0FETDtBQUNjQyxFQUFBQTtBQURkLElBRUZDLDhCQUZKO0FBQUEsTUFDZ0NDLElBRGhD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TTJFLFNBQU4sQ0FBZ0JDLFFBQWhCLEVBQW1DO0FBQ2pDdEcsSUFBQUEsS0FBSyxDQUFFLHNDQUFxQ3NHLFFBQVMsRUFBaEQsQ0FBTDtBQUNBLFNBQUsxRSxZQUFMLENBQWtCQyxpQ0FBb0IwRSxXQUF0Qzs7QUFFQSxRQUFJLENBQUNELFFBQUQsSUFBYSxDQUFDLENBQUMsS0FBS3ZELE9BQUwsQ0FBYXlELDBCQUFoQyxFQUE0RDtBQUMxRHhHLE1BQUFBLEtBQUssQ0FBRSwwQ0FBeUMsS0FBSytDLE9BQUwsQ0FBYXlELDBCQUEyQixFQUFuRixDQUFMO0FBQ0EsWUFBTSxLQUFLN0YsSUFBTCxDQUFVOEYsVUFBVixDQUFxQjtBQUN6QkMsUUFBQUEsSUFBSSxFQUFFLEtBQUszRCxPQUFMLENBQWF5RCwwQkFETTtBQUV6QkcsUUFBQUEsUUFBUSxFQUFFO0FBRmUsT0FBckIsQ0FBTjtBQUlEOztBQUVELFFBQUksQ0FBQyxLQUFLeEQsT0FBVixFQUFtQjtBQUNqQjtBQUNEOztBQUVELFVBQU0sS0FBS0EsT0FBTCxDQUFheUQsS0FBYixFQUFOO0FBQ0Q7O0FBdkw4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwdXBwZXRlZXIsIHsgQnJvd3NlciwgRnJhbWUsIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuXG5pbXBvcnQge1xuICBTY3JhcGVyRXJyb3JUeXBlcyxcbiAgQmFzZVNjcmFwZXIsIFNjYXBlclNjcmFwaW5nUmVzdWx0LCBTY2FwZXJQcm9ncmVzc1R5cGVzLFxuICBTY3JhcGVyQ3JlZGVudGlhbHMsXG59IGZyb20gJy4vYmFzZS1zY3JhcGVyJztcbmltcG9ydCB7IGdldEN1cnJlbnRVcmwsIHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IGNsaWNrQnV0dG9uLCBmaWxsSW5wdXQsIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCB9IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5cbmNvbnN0IFZJRVdQT1JUX1dJRFRIID0gMTAyNDtcbmNvbnN0IFZJRVdQT1JUX0hFSUdIVCA9IDc2ODtcbmNvbnN0IE9LX1NUQVRVUyA9IDIwMDtcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3NlcicpO1xuXG5lbnVtIExvZ2luQmFzZVJlc3VsdHMge1xuICBTdWNjZXNzID0gJ1NVQ0NFU1MnLFxuICBVbmtub3duRXJyb3IgPSAnVU5LTk9XTl9FUlJPUidcbn1cblxuY29uc3Qge1xuICBUaW1lb3V0LCBHZW5lcmljLCBHZW5lcmFsLCAuLi5yZXN0XG59ID0gU2NyYXBlckVycm9yVHlwZXM7XG5leHBvcnQgY29uc3QgTG9naW5SZXN1bHRzID0ge1xuICAuLi5yZXN0LFxuICAuLi5Mb2dpbkJhc2VSZXN1bHRzLFxufTtcblxuZXhwb3J0IHR5cGUgTG9naW5SZXN1bHRzID0gRXhjbHVkZTxTY3JhcGVyRXJyb3JUeXBlcyxcblNjcmFwZXJFcnJvclR5cGVzLlRpbWVvdXRcbnwgU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpY1xufCBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmFsPiB8IExvZ2luQmFzZVJlc3VsdHM7XG5cbmV4cG9ydCB0eXBlIFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge1xuICBba2V5IGluIExvZ2luUmVzdWx0c10/OiAoc3RyaW5nIHwgUmVnRXhwIHwgKChvcHRpb25zPzogeyBwYWdlPzogUGFnZX0pID0+IFByb21pc2U8Ym9vbGVhbj4pKVtdXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luT3B0aW9ucyB7XG4gIGxvZ2luVXJsOiBzdHJpbmc7XG4gIGNoZWNrUmVhZGluZXNzPzogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZmllbGRzOiB7c2VsZWN0b3I6IHN0cmluZywgdmFsdWU6IHN0cmluZ31bXTtcbiAgc3VibWl0QnV0dG9uU2VsZWN0b3I6IHN0cmluZyB8ICgoKSA9PiBQcm9taXNlPHZvaWQ+KTtcbiAgcHJlQWN0aW9uPzogKCkgPT4gUHJvbWlzZTxGcmFtZSB8IHZvaWQ+O1xuICBwb3N0QWN0aW9uPzogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcG9zc2libGVSZXN1bHRzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cztcbiAgdXNlckFnZW50Pzogc3RyaW5nO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRLZXlCeVZhbHVlKG9iamVjdDogUG9zc2libGVMb2dpblJlc3VsdHMsIHZhbHVlOiBzdHJpbmcsIHBhZ2U6IFBhZ2UpOiBQcm9taXNlPExvZ2luUmVzdWx0cz4ge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBjb25kaXRpb25zID0gb2JqZWN0W2tleV07XG5cbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBjb25kaXRpb25zKSB7XG4gICAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICAgIGlmIChjb25kaXRpb24gaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgcmVzdWx0ID0gY29uZGl0aW9uLnRlc3QodmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29uZGl0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IGNvbmRpdGlvbih7IHBhZ2UsIHZhbHVlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gY29uZGl0aW9uLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlTG9naW5SZXN1bHQoc2NyYXBlcjogQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgbG9naW5SZXN1bHQ6IExvZ2luUmVzdWx0cykge1xuICBzd2l0Y2ggKGxvZ2luUmVzdWx0KSB7XG4gICAgY2FzZSBMb2dpblJlc3VsdHMuU3VjY2VzczpcbiAgICAgIHNjcmFwZXIuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuTG9naW5TdWNjZXNzKTtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUgfTtcbiAgICBjYXNlIExvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmQ6XG4gICAgY2FzZSBMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yOlxuICAgICAgc2NyYXBlci5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpbkZhaWxlZCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3JUeXBlOiBsb2dpblJlc3VsdCA9PT0gTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZCA/IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCA6XG4gICAgICAgICAgU2NyYXBlckVycm9yVHlwZXMuR2VuZXJhbCxcbiAgICAgICAgZXJyb3JNZXNzYWdlOiBgTG9naW4gZmFpbGVkIHdpdGggJHtsb2dpblJlc3VsdH0gZXJyb3JgLFxuICAgICAgfTtcbiAgICBjYXNlIExvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZDpcbiAgICAgIHNjcmFwZXIuZW1pdFByb2dyZXNzKFNjYXBlclByb2dyZXNzVHlwZXMuQ2hhbmdlUGFzc3dvcmQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuQ2hhbmdlUGFzc3dvcmQsXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgbG9naW4gcmVzdWx0IFwiJHtsb2dpblJlc3VsdH1cImApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUdlbmVyYWxFcnJvcigpOiBTY2FwZXJTY3JhcGluZ1Jlc3VsdCB7XG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogZmFsc2UsXG4gICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmFsLFxuICB9O1xufVxuXG5jbGFzcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIGV4dGVuZHMgQmFzZVNjcmFwZXIge1xuICAvLyBOT1RJQ0UgLSBpdCBpcyBkaXNjb3VyYWdlIHRvIHVzZSBiYW5nICghKSBpbiBnZW5lcmFsLiBJdCBpcyB1c2VkIGhlcmUgYmVjYXVzZVxuICAvLyBhbGwgdGhlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gdGhpcyBiYXNlIGFzc3VtZSBpcyBpdCBtYW5kYXRvcnkuXG4gIHByb3RlY3RlZCBicm93c2VyITogQnJvd3NlcjtcblxuICAvLyBOT1RJQ0UgLSBpdCBpcyBkaXNjb3VyYWdlIHRvIHVzZSBiYW5nICghKSBpbiBnZW5lcmFsLiBJdCBpcyB1c2VkIGhlcmUgYmVjYXVzZVxuICAvLyBhbGwgdGhlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gdGhpcyBiYXNlIGFzc3VtZSBpcyBpdCBtYW5kYXRvcnkuXG4gIHByb3RlY3RlZCBwYWdlITogUGFnZTtcblxuICBwcm90ZWN0ZWQgZ2V0Vmlld1BvcnQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpZHRoOiBWSUVXUE9SVF9XSURUSCxcbiAgICAgIGhlaWdodDogVklFV1BPUlRfSEVJR0hULFxuICAgIH07XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXplKCkge1xuICAgIGRlYnVnKCdpbml0aWFsaXplIHNjcmFwZXInKTtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLkluaXRpYWxpemluZyk7XG5cbiAgICBsZXQgZW52OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgZW52ID0geyBERUJVRzogJyonLCAuLi5wcm9jZXNzLmVudiB9O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLmJyb3dzZXIgIT09ICd1bmRlZmluZWQnICYmIHRoaXMub3B0aW9ucy5icm93c2VyICE9PSBudWxsKSB7XG4gICAgICBkZWJ1ZygndXNlIGN1c3RvbSBicm93c2VyIGluc3RhbmNlIHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIHRoaXMuYnJvd3NlciA9IHRoaXMub3B0aW9ucy5icm93c2VyO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBleGVjdXRhYmxlUGF0aCA9IHRoaXMub3B0aW9ucy5leGVjdXRhYmxlUGF0aCB8fCB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBhcmdzID0gdGhpcy5vcHRpb25zLmFyZ3MgfHwgW107XG5cbiAgICAgIGNvbnN0IGhlYWRsZXNzID0gIXRoaXMub3B0aW9ucy5zaG93QnJvd3NlcjtcbiAgICAgIGRlYnVnKGBsYXVuY2ggYSBicm93c2VyIHdpdGggaGVhZGxlc3MgbW9kZSA9ICR7aGVhZGxlc3N9YCk7XG4gICAgICB0aGlzLmJyb3dzZXIgPSBhd2FpdCBwdXBwZXRlZXIubGF1bmNoKHtcbiAgICAgICAgZW52LFxuICAgICAgICBoZWFkbGVzcyxcbiAgICAgICAgZXhlY3V0YWJsZVBhdGgsXG4gICAgICAgIGFyZ3MsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnByZXBhcmVCcm93c2VyKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdwcmVwYXJlQnJvd3NlclxcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCB0aGlzLm9wdGlvbnMucHJlcGFyZUJyb3dzZXIodGhpcy5icm93c2VyKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYnJvd3Nlcikge1xuICAgICAgZGVidWcoJ2ZhaWxlZCB0byBpbml0aWF0ZSBhIGJyb3dzZXIsIGV4aXQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYWdlcyA9IGF3YWl0IHRoaXMuYnJvd3Nlci5wYWdlcygpO1xuICAgIGlmIChwYWdlcy5sZW5ndGgpIHtcbiAgICAgIGRlYnVnKCdicm93c2VyIGhhcyBhbHJlYWR5IHBhZ2VzIG9wZW4sIHVzZSB0aGUgZmlyc3Qgb25lJyk7XG4gICAgICBbdGhpcy5wYWdlXSA9IHBhZ2VzO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWJ1ZygnY3JlYXRlIGEgbmV3IGJyb3dzZXIgcGFnZScpO1xuICAgICAgdGhpcy5wYWdlID0gYXdhaXQgdGhpcy5icm93c2VyLm5ld1BhZ2UoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnByZXBhcmVQYWdlKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdwcmVwYXJlUGFnZVxcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCB0aGlzLm9wdGlvbnMucHJlcGFyZVBhZ2UodGhpcy5wYWdlKTtcbiAgICB9XG5cbiAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuZ2V0Vmlld1BvcnQoKTtcbiAgICBkZWJ1Zyhgc2V0IHZpZXdwb3J0IHRvIHdpZHRoICR7dmlld3BvcnQud2lkdGh9LCBoZWlnaHQgJHt2aWV3cG9ydC5oZWlnaHR9YCk7XG4gICAgYXdhaXQgdGhpcy5wYWdlLnNldFZpZXdwb3J0KHtcbiAgICAgIHdpZHRoOiB2aWV3cG9ydC53aWR0aCxcbiAgICAgIGhlaWdodDogdmlld3BvcnQuaGVpZ2h0LFxuICAgIH0pO1xuXG4gICAgdGhpcy5wYWdlLm9uKCdyZXF1ZXN0ZmFpbGVkJywgKHJlcXVlc3QpID0+IHtcbiAgICAgIGRlYnVnKCdSZXF1ZXN0IGZhaWxlZDogJXMgJXMnLCByZXF1ZXN0LmZhaWx1cmUoKT8uZXJyb3JUZXh0LCByZXF1ZXN0LnVybCgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG5hdmlnYXRlVG8odXJsOiBzdHJpbmcsIHBhZ2U/OiBQYWdlLCB0aW1lb3V0PzogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGFnZVRvVXNlID0gcGFnZSB8fCB0aGlzLnBhZ2U7XG5cbiAgICBpZiAoIXBhZ2VUb1VzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLih0aW1lb3V0ID09PSBudWxsID8gbnVsbCA6IHsgdGltZW91dCB9KSB9O1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcGFnZVRvVXNlLmdvdG8odXJsLCBvcHRpb25zKTtcblxuICAgIC8vIG5vdGU6IHJlc3BvbnNlIHdpbGwgYmUgbnVsbCB3aGVuIG5hdmlnYXRpbmcgdG8gc2FtZSB1cmwgd2hpbGUgY2hhbmdpbmcgdGhlIGhhc2ggcGFydC4gdGhlIGNvbmRpdGlvbiBiZWxvdyB3aWxsIGFsd2F5cyBhY2NlcHQgbnVsbCBhcyB2YWxpZCByZXN1bHQuXG4gICAgaWYgKHJlc3BvbnNlICE9PSBudWxsICYmIChyZXNwb25zZSA9PT0gdW5kZWZpbmVkIHx8IHJlc3BvbnNlLnN0YXR1cygpICE9PSBPS19TVEFUVVMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIHdoaWxlIHRyeWluZyB0byBuYXZpZ2F0ZSB0byB1cmwgJHt1cmx9YCk7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBnZXRMb2dpbk9wdGlvbnMoX2NyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpOiBMb2dpbk9wdGlvbnMge1xuICAgIHRocm93IG5ldyBFcnJvcihgZ2V0TG9naW5PcHRpb25zKCkgaXMgbm90IGNyZWF0ZWQgaW4gJHt0aGlzLm9wdGlvbnMuY29tcGFueUlkfWApO1xuICB9XG5cbiAgYXN5bmMgZmlsbElucHV0cyhwYWdlT3JGcmFtZTogUGFnZSB8IEZyYW1lLCBmaWVsZHM6IHsgc2VsZWN0b3I6IHN0cmluZywgdmFsdWU6IHN0cmluZ31bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1vZGlmaWVkID0gWy4uLmZpZWxkc107XG4gICAgY29uc3QgaW5wdXQgPSBtb2RpZmllZC5zaGlmdCgpO1xuXG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCBmaWxsSW5wdXQocGFnZU9yRnJhbWUsIGlucHV0LnNlbGVjdG9yLCBpbnB1dC52YWx1ZSk7XG4gICAgaWYgKG1vZGlmaWVkLmxlbmd0aCkge1xuICAgICAgYXdhaXQgdGhpcy5maWxsSW5wdXRzKHBhZ2VPckZyYW1lLCBtb2RpZmllZCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9naW4oY3JlZGVudGlhbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgaWYgKCFjcmVkZW50aWFscyB8fCAhdGhpcy5wYWdlKSB7XG4gICAgICByZXR1cm4gY3JlYXRlR2VuZXJhbEVycm9yKCk7XG4gICAgfVxuXG4gICAgZGVidWcoJ2V4ZWN1dGUgbG9naW4gcHJvY2VzcycpO1xuICAgIGNvbnN0IGxvZ2luT3B0aW9ucyA9IHRoaXMuZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzKTtcblxuICAgIGlmIChsb2dpbk9wdGlvbnMudXNlckFnZW50KSB7XG4gICAgICBkZWJ1Zygnc2V0IGN1c3RvbSB1c2VyIGFnZW50IHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IHRoaXMucGFnZS5zZXRVc2VyQWdlbnQobG9naW5PcHRpb25zLnVzZXJBZ2VudCk7XG4gICAgfVxuXG4gICAgZGVidWcoJ25hdmlnYXRlIHRvIGxvZ2luIHVybCcpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhsb2dpbk9wdGlvbnMubG9naW5VcmwpO1xuICAgIGlmIChsb2dpbk9wdGlvbnMuY2hlY2tSZWFkaW5lc3MpIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ2NoZWNrUmVhZGluZXNzXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIGxvZ2luIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IGxvZ2luT3B0aW9ucy5jaGVja1JlYWRpbmVzcygpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3RvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRlYnVnKCd3YWl0IHVudGlsIHN1Ym1pdCBidXR0b24gaXMgYXZhaWxhYmxlJyk7XG4gICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCBsb2dpbk9wdGlvbnMuc3VibWl0QnV0dG9uU2VsZWN0b3IpO1xuICAgIH1cblxuICAgIGxldCBsb2dpbkZyYW1lT3JQYWdlOiAoUGFnZSB8IEZyYW1lIHwgbnVsbCkgPSB0aGlzLnBhZ2U7XG4gICAgaWYgKGxvZ2luT3B0aW9ucy5wcmVBY3Rpb24pIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ3ByZUFjdGlvblxcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBsb2dpbiBvcHRpb25zJyk7XG4gICAgICBsb2dpbkZyYW1lT3JQYWdlID0gYXdhaXQgbG9naW5PcHRpb25zLnByZUFjdGlvbigpIHx8IHRoaXMucGFnZTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnZmlsbCBsb2dpbiBjb21wb25lbnRzIGlucHV0IHdpdGggcmVsZXZhbnQgdmFsdWVzJyk7XG4gICAgYXdhaXQgdGhpcy5maWxsSW5wdXRzKGxvZ2luRnJhbWVPclBhZ2UsIGxvZ2luT3B0aW9ucy5maWVsZHMpO1xuICAgIGRlYnVnKCdjbGljayBvbiBsb2dpbiBzdWJtaXQgYnV0dG9uJyk7XG4gICAgaWYgKHR5cGVvZiBsb2dpbk9wdGlvbnMuc3VibWl0QnV0dG9uU2VsZWN0b3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBhd2FpdCBjbGlja0J1dHRvbihsb2dpbkZyYW1lT3JQYWdlLCBsb2dpbk9wdGlvbnMuc3VibWl0QnV0dG9uU2VsZWN0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBsb2dpbk9wdGlvbnMuc3VibWl0QnV0dG9uU2VsZWN0b3IoKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dnaW5nSW4pO1xuXG4gICAgaWYgKGxvZ2luT3B0aW9ucy5wb3N0QWN0aW9uKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdwb3N0QWN0aW9uXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIGxvZ2luIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IGxvZ2luT3B0aW9ucy5wb3N0QWN0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCd3YWl0IGZvciBwYWdlIG5hdmlnYXRpb24nKTtcbiAgICAgIGF3YWl0IHdhaXRGb3JOYXZpZ2F0aW9uKHRoaXMucGFnZSk7XG4gICAgfVxuXG4gICAgZGVidWcoJ2NoZWNrIGxvZ2luIHJlc3VsdCcpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCBnZXRDdXJyZW50VXJsKHRoaXMucGFnZSwgdHJ1ZSk7XG4gICAgY29uc3QgbG9naW5SZXN1bHQgPSBhd2FpdCBnZXRLZXlCeVZhbHVlKGxvZ2luT3B0aW9ucy5wb3NzaWJsZVJlc3VsdHMsIGN1cnJlbnQsIHRoaXMucGFnZSk7XG4gICAgZGVidWcoYGhhbmRsZSBsb2dpbiByZXN1bHRzICR7bG9naW5SZXN1bHR9YCk7XG4gICAgcmV0dXJuIGhhbmRsZUxvZ2luUmVzdWx0KHRoaXMsIGxvZ2luUmVzdWx0KTtcbiAgfVxuXG4gIGFzeW5jIHRlcm1pbmF0ZShfc3VjY2VzczogYm9vbGVhbikge1xuICAgIGRlYnVnKGB0ZXJtaW5hdGluZyBicm93c2VyIHdpdGggc3VjY2VzcyA9ICR7X3N1Y2Nlc3N9YCk7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5UZXJtaW5hdGluZyk7XG5cbiAgICBpZiAoIV9zdWNjZXNzICYmICEhdGhpcy5vcHRpb25zLnN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoKSB7XG4gICAgICBkZWJ1ZyhgY3JlYXRlIGEgc25hcHNob3QgYmVmb3JlIHRlcm1pbmF0ZWQgaW4gJHt0aGlzLm9wdGlvbnMuc3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGh9YCk7XG4gICAgICBhd2FpdCB0aGlzLnBhZ2Uuc2NyZWVuc2hvdCh7XG4gICAgICAgIHBhdGg6IHRoaXMub3B0aW9ucy5zdG9yZUZhaWx1cmVTY3JlZW5TaG90UGF0aCxcbiAgICAgICAgZnVsbFBhZ2U6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuYnJvd3Nlci5jbG9zZSgpO1xuICB9XG59XG5cbmV4cG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIgfTtcbiJdfQ==
@@ -76,7 +76,7 @@ export interface ScaperOptions {
76
76
  */
77
77
  preparePage?: (page: Page) => Promise<void>;
78
78
  /**
79
- * if set, store a screnshot if failed to scrape. Used for debug purposes
79
+ * if set, store a screenshot if failed to scrape. Used for debug purposes
80
80
  */
81
81
  storeFailureScreenShotPath?: string;
82
82
  }
@@ -134,4 +134,4 @@ class BaseScraper {
134
134
  }
135
135
 
136
136
  exports.BaseScraper = BaseScraper;
137
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXIudHMiXSwibmFtZXMiOlsiU0NSQVBFX1BST0dSRVNTIiwiU2NyYXBlckVycm9yVHlwZXMiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiY3JlYXRlRXJyb3JSZXN1bHQiLCJlcnJvclR5cGUiLCJlcnJvck1lc3NhZ2UiLCJzdWNjZXNzIiwiY3JlYXRlVGltZW91dEVycm9yIiwiVGltZW91dCIsImNyZWF0ZUdlbmVyaWNFcnJvciIsIkdlbmVyaWMiLCJCYXNlU2NyYXBlciIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIkV2ZW50RW1pdHRlciIsImluaXRpYWxpemUiLCJlbWl0UHJvZ3Jlc3MiLCJJbml0aWFsaXppbmciLCJzY3JhcGUiLCJjcmVkZW50aWFscyIsIlN0YXJ0U2NyYXBpbmciLCJsb2dpblJlc3VsdCIsImxvZ2luIiwiZSIsIlRpbWVvdXRFcnJvciIsIm1lc3NhZ2UiLCJzY3JhcGVSZXN1bHQiLCJmZXRjaERhdGEiLCJ0ZXJtaW5hdGUiLCJFbmRTY3JhcGluZyIsIl9jcmVkZW50aWFscyIsIkVycm9yIiwiY29tcGFueUlkIiwiX3N1Y2Nlc3MiLCJUZXJtaW5hdGluZyIsInR5cGUiLCJlbWl0IiwiZXZlbnROYW1lIiwicGF5bG9hZCIsImV2ZW50RW1pdHRlciIsIm9uUHJvZ3Jlc3MiLCJmdW5jIiwib24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOzs7O0FBSUEsTUFBTUEsZUFBZSxHQUFHLGlCQUF4QjtJQUVZQyxpQjs7O1dBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0dBQUFBLGlCLGlDQUFBQSxpQjs7SUFnR0FDLG1COzs7V0FBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7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Q0QsR0F6RHNCLENBMkR2Qjs7O0FBQ0EsUUFBTUosU0FBTixDQUFnQkssUUFBaEIsRUFBbUM7QUFDakMsU0FBS2pCLFlBQUwsQ0FBa0JkLG1CQUFtQixDQUFDZ0MsV0FBdEM7QUFDRDs7QUFFRGxCLEVBQUFBLFlBQVksQ0FBQ21CLElBQUQsRUFBNEI7QUFDdEMsU0FBS0MsSUFBTCxDQUFVcEMsZUFBVixFQUEyQjtBQUFFbUMsTUFBQUE7QUFBRixLQUEzQjtBQUNEOztBQUVEQyxFQUFBQSxJQUFJLENBQUNDLFNBQUQsRUFBb0JDLE9BQXBCLEVBQWtEO0FBQ3BELFNBQUtDLFlBQUwsQ0FBa0JILElBQWxCLENBQXVCQyxTQUF2QixFQUFrQyxLQUFLeEIsT0FBTCxDQUFhbUIsU0FBL0MsRUFBMERNLE9BQTFEO0FBQ0Q7O0FBRURFLEVBQUFBLFVBQVUsQ0FBQ0MsSUFBRCxFQUFpQztBQUN6QyxTQUFLRixZQUFMLENBQWtCRyxFQUFsQixDQUFxQjFDLGVBQXJCLEVBQXNDeUMsSUFBdEM7QUFDRDs7QUExRXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCB7IEJyb3dzZXIsIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgVGltZW91dEVycm9yIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uc0FjY291bnQgfSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQ29tcGFueVR5cGVzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuXG5jb25zdCBTQ1JBUEVfUFJPR1JFU1MgPSAnU0NSQVBFX1BST0dSRVNTJztcblxuZXhwb3J0IGVudW0gU2NyYXBlckVycm9yVHlwZXMge1xuICBJbnZhbGlkUGFzc3dvcmQgPSdJTlZBTElEX1BBU1NXT1JEJyxcbiAgQ2hhbmdlUGFzc3dvcmQgPSAnQ0hBTkdFX1BBU1NXT1JEJyxcbiAgVGltZW91dCA9ICdUSU1FT1VUJyxcbiAgQWNjb3VudEJsb2NrZWQgPSAnQUNDT1VOVF9CTE9DS0VEJyxcbiAgR2VuZXJpYyA9ICdHRU5FUklDJyxcbiAgR2VuZXJhbCA9ICdHRU5FUkFMX0VSUk9SJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjYXBlckxvZ2luUmVzdWx0IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZXJyb3JUeXBlPzogU2NyYXBlckVycm9yVHlwZXM7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZzsgLy8gb25seSBvbiBzdWNjZXNzPWZhbHNlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyU2NyYXBpbmdSZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBhY2NvdW50cz86IFRyYW5zYWN0aW9uc0FjY291bnRbXTtcbiAgZXJyb3JUeXBlPzogU2NyYXBlckVycm9yVHlwZXM7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZzsgLy8gb25seSBvbiBzdWNjZXNzPWZhbHNlXG59XG5cbmV4cG9ydCB0eXBlIFNjcmFwZXJDcmVkZW50aWFscyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcGFueSB5b3Ugd2FudCB0byBzY3JhcGVcbiAgICovXG4gIGNvbXBhbnlJZDogQ29tcGFueVR5cGVzO1xuXG4gIC8qKlxuICAgKiBpbmNsdWRlIG1vcmUgZGVidWcgaW5mbyBhYm91dCBpbiB0aGUgb3V0cHV0XG4gICAqL1xuICB2ZXJib3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogdGhlIGRhdGUgdG8gZmV0Y2ggdHJhbnNhY3Rpb25zIGZyb20gKGNhbid0IGJlIGJlZm9yZSB0aGUgbWluaW11bSBhbGxvd2VkIHRpbWUgZGlmZmVyZW5jZSBmb3IgdGhlIHNjcmFwZXIpXG4gICAqL1xuICBzdGFydERhdGU6IERhdGU7XG5cbiAgLyoqXG4gICAqIHNob3dzIHRoZSBicm93c2VyIHdoaWxlIHNjcmFwaW5nLCBnb29kIGZvciBkZWJ1Z2dpbmcgKGRlZmF1bHQgZmFsc2UpXG4gICAqL1xuICBzaG93QnJvd3Nlcj86IGJvb2xlYW47XG5cblxuICAvKipcbiAgICogc2NyYXBlIHRyYW5zYWN0aW9ucyB0byBiZSBwcm9jZXNzZWQgWCBtb250aHMgaW4gdGhlIGZ1dHVyZVxuICAgKi9cbiAgZnV0dXJlTW9udGhzVG9TY3JhcGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIG9wdGlvbiBmcm9tIGluaXQgcHVwcGV0ZWVyIGJyb3dzZXIgaW5zdGFuY2Ugb3V0c2lkZSB0aGUgbGliYXJ5IHNjb3BlLiB5b3UgY2FuIGdldFxuICAgKiBicm93c2VyIGRpcmV0bHkgZnJvbSBwdXBwZXRlZXIgdmlhIGBwdXBwZXRlZXIubGF1bmNoKClgXG4gICAqL1xuICBicm93c2VyPzogYW55O1xuXG4gIC8qKlxuICAgKiBwcm92aWRlIGEgcGF0Y2ggdG8gbG9jYWwgY2hyb21pdW0gdG8gYmUgdXNlZCBieSBwdXBwZXRlZXIuIFJlbGV2YW50IHdoZW4gdXNpbmdcbiAgICogYGlzcmFlbGktYmFuay1zY3JhcGVycy1jb3JlYCBsaWJyYXJ5XG4gICAqL1xuICBleGVjdXRhYmxlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogaWYgc2V0IHRvIHRydWUsIGFsbCBpbnN0YWxsbWVudCB0cmFuc2FjdGlvbnMgd2lsbCBiZSBjb21iaW5lIGludG8gdGhlIGZpcnN0IG9uZVxuICAgKi9cbiAgY29tYmluZUluc3RhbGxtZW50cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGJyb3dzZXIgaW5zdGFuY2UuIFRoZSBsaXN0IG9mIGZsYWdzIGNhbiBiZSBmb3VuZCBpblxuICAgKlxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL01vemlsbGEvQ29tbWFuZF9MaW5lX09wdGlvbnNcbiAgICogaHR0cHM6Ly9wZXRlci5zaC9leHBlcmltZW50cy9jaHJvbWl1bS1jb21tYW5kLWxpbmUtc3dpdGNoZXMvXG4gICAqL1xuICBhcmdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGFkanVzdCB0aGUgYnJvd3NlciBpbnN0YW5jZSBiZWZvcmUgaXQgaXMgYmVpbmcgdXNlZFxuICAgKlxuICAgKiBAcGFyYW0gYnJvd3NlclxuICAgKi9cbiAgcHJlcGFyZUJyb3dzZXI/OiAoYnJvd3NlcjogQnJvd3NlcikgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogYWRqdXN0IHRoZSBwYWdlIGluc3RhbmNlIGJlZm9yZSBpdCBpcyBiZWluZyB1c2VkLlxuICAgKlxuICAgKiBAcGFyYW0gcGFnZVxuICAgKi9cbiAgcHJlcGFyZVBhZ2U/OiAocGFnZTogUGFnZSkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogaWYgc2V0LCBzdG9yZSBhIHNjcmVuc2hvdCBpZiBmYWlsZWQgdG8gc2NyYXBlLiBVc2VkIGZvciBkZWJ1ZyBwdXJwb3Nlc1xuICAgKi9cbiAgc3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFNjYXBlclByb2dyZXNzVHlwZXMge1xuICBJbml0aWFsaXppbmcgPSAnSU5JVElBTElaSU5HJyxcbiAgU3RhcnRTY3JhcGluZyA9ICdTVEFSVF9TQ1JBUElORycsXG4gIExvZ2dpbmdJbiA9ICdMT0dHSU5HX0lOJyxcbiAgTG9naW5TdWNjZXNzID0gJ0xPR0lOX1NVQ0NFU1MnLFxuICBMb2dpbkZhaWxlZCA9ICdMT0dJTl9GQUlMRUQnLFxuICBDaGFuZ2VQYXNzd29yZCA9ICdDSEFOR0VfUEFTU1dPUkQnLFxuICBFbmRTY3JhcGluZyA9ICdFTkRfU0NSQVBJTkcnLFxuICBUZXJtaW5hdGluZyA9ICdURVJNSU5BVElORycsXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yUmVzdWx0KGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMsIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogZmFsc2UsXG4gICAgZXJyb3JUeXBlLFxuICAgIGVycm9yTWVzc2FnZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlVGltZW91dEVycm9yKGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVFcnJvclJlc3VsdChTY3JhcGVyRXJyb3JUeXBlcy5UaW1lb3V0LCBlcnJvck1lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVHZW5lcmljRXJyb3IoZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUVycm9yUmVzdWx0KFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyaWMsIGVycm9yTWVzc2FnZSk7XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNlU2NyYXBlciB7XG4gIHByaXZhdGUgZXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvcHRpb25zOiBTY2FwZXJPcHRpb25zKSB7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Jbml0aWFsaXppbmcpO1xuICB9XG5cbiAgYXN5bmMgc2NyYXBlKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5TdGFydFNjcmFwaW5nKTtcbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemUoKTtcblxuICAgIGxldCBsb2dpblJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgbG9naW5SZXN1bHQgPSBhd2FpdCB0aGlzLmxvZ2luKGNyZWRlbnRpYWxzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2dpblJlc3VsdCA9IGUgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3IgP1xuICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgIGNyZWF0ZUdlbmVyaWNFcnJvcihlLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGxldCBzY3JhcGVSZXN1bHQ7XG4gICAgaWYgKGxvZ2luUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9IGF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9XG4gICAgICAgICAgZSBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvciA/XG4gICAgICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgICAgICBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2NyYXBlUmVzdWx0ID0gbG9naW5SZXN1bHQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBzY3JhcGVSZXN1bHQgJiYgc2NyYXBlUmVzdWx0LnN1Y2Nlc3MgPT09IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLnRlcm1pbmF0ZShzdWNjZXNzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzY3JhcGVSZXN1bHQgPSBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5FbmRTY3JhcGluZyk7XG5cbiAgICByZXR1cm4gc2NyYXBlUmVzdWx0O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbiAgYXN5bmMgbG9naW4oX2NyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxTY2FwZXJMb2dpblJlc3VsdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgbG9naW4oKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBmZXRjaERhdGEoKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxuICBhc3luYyB0ZXJtaW5hdGUoX3N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLlRlcm1pbmF0aW5nKTtcbiAgfVxuXG4gIGVtaXRQcm9ncmVzcyh0eXBlOiBTY2FwZXJQcm9ncmVzc1R5cGVzKSB7XG4gICAgdGhpcy5lbWl0KFNDUkFQRV9QUk9HUkVTUywgeyB0eXBlIH0pO1xuICB9XG5cbiAgZW1pdChldmVudE5hbWU6IHN0cmluZywgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHRoaXMuZXZlbnRFbWl0dGVyLmVtaXQoZXZlbnROYW1lLCB0aGlzLm9wdGlvbnMuY29tcGFueUlkLCBwYXlsb2FkKTtcbiAgfVxuXG4gIG9uUHJvZ3Jlc3MoZnVuYzogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIub24oU0NSQVBFX1BST0dSRVNTLCBmdW5jKTtcbiAgfVxufVxuIl19
137
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXIudHMiXSwibmFtZXMiOlsiU0NSQVBFX1BST0dSRVNTIiwiU2NyYXBlckVycm9yVHlwZXMiLCJTY2FwZXJQcm9ncmVzc1R5cGVzIiwiY3JlYXRlRXJyb3JSZXN1bHQiLCJlcnJvclR5cGUiLCJlcnJvck1lc3NhZ2UiLCJzdWNjZXNzIiwiY3JlYXRlVGltZW91dEVycm9yIiwiVGltZW91dCIsImNyZWF0ZUdlbmVyaWNFcnJvciIsIkdlbmVyaWMiLCJCYXNlU2NyYXBlciIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIkV2ZW50RW1pdHRlciIsImluaXRpYWxpemUiLCJlbWl0UHJvZ3Jlc3MiLCJJbml0aWFsaXppbmciLCJzY3JhcGUiLCJjcmVkZW50aWFscyIsIlN0YXJ0U2NyYXBpbmciLCJsb2dpblJlc3VsdCIsImxvZ2luIiwiZSIsIlRpbWVvdXRFcnJvciIsIm1lc3NhZ2UiLCJzY3JhcGVSZXN1bHQiLCJmZXRjaERhdGEiLCJ0ZXJtaW5hdGUiLCJFbmRTY3JhcGluZyIsIl9jcmVkZW50aWFscyIsIkVycm9yIiwiY29tcGFueUlkIiwiX3N1Y2Nlc3MiLCJUZXJtaW5hdGluZyIsInR5cGUiLCJlbWl0IiwiZXZlbnROYW1lIiwicGF5bG9hZCIsImV2ZW50RW1pdHRlciIsIm9uUHJvZ3Jlc3MiLCJmdW5jIiwib24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBOzs7O0FBSUEsTUFBTUEsZUFBZSxHQUFHLGlCQUF4QjtJQUVZQyxpQjs7O1dBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0FBQUFBLEVBQUFBLGlCO0dBQUFBLGlCLGlDQUFBQSxpQjs7SUFpR0FDLG1COzs7V0FBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7QUFBQUEsRUFBQUEsbUI7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Q0QsR0F6RHNCLENBMkR2Qjs7O0FBQ0EsUUFBTUosU0FBTixDQUFnQkssUUFBaEIsRUFBbUM7QUFDakMsU0FBS2pCLFlBQUwsQ0FBa0JkLG1CQUFtQixDQUFDZ0MsV0FBdEM7QUFDRDs7QUFFRGxCLEVBQUFBLFlBQVksQ0FBQ21CLElBQUQsRUFBNEI7QUFDdEMsU0FBS0MsSUFBTCxDQUFVcEMsZUFBVixFQUEyQjtBQUFFbUMsTUFBQUE7QUFBRixLQUEzQjtBQUNEOztBQUVEQyxFQUFBQSxJQUFJLENBQUNDLFNBQUQsRUFBb0JDLE9BQXBCLEVBQWtEO0FBQ3BELFNBQUtDLFlBQUwsQ0FBa0JILElBQWxCLENBQXVCQyxTQUF2QixFQUFrQyxLQUFLeEIsT0FBTCxDQUFhbUIsU0FBL0MsRUFBMERNLE9BQTFEO0FBQ0Q7O0FBRURFLEVBQUFBLFVBQVUsQ0FBQ0MsSUFBRCxFQUFpQztBQUN6QyxTQUFLRixZQUFMLENBQWtCRyxFQUFsQixDQUFxQjFDLGVBQXJCLEVBQXNDeUMsSUFBdEM7QUFDRDs7QUExRXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCB7IEJyb3dzZXIsIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgVGltZW91dEVycm9yIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uc0FjY291bnQgfSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQ29tcGFueVR5cGVzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuXG5jb25zdCBTQ1JBUEVfUFJPR1JFU1MgPSAnU0NSQVBFX1BST0dSRVNTJztcblxuZXhwb3J0IGVudW0gU2NyYXBlckVycm9yVHlwZXMge1xuICBJbnZhbGlkUGFzc3dvcmQgPSdJTlZBTElEX1BBU1NXT1JEJyxcbiAgQ2hhbmdlUGFzc3dvcmQgPSAnQ0hBTkdFX1BBU1NXT1JEJyxcbiAgVGltZW91dCA9ICdUSU1FT1VUJyxcbiAgQWNjb3VudEJsb2NrZWQgPSAnQUNDT1VOVF9CTE9DS0VEJyxcbiAgR2VuZXJpYyA9ICdHRU5FUklDJyxcbiAgR2VuZXJhbCA9ICdHRU5FUkFMX0VSUk9SJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjYXBlckxvZ2luUmVzdWx0IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZXJyb3JUeXBlPzogU2NyYXBlckVycm9yVHlwZXM7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZzsgLy8gb25seSBvbiBzdWNjZXNzPWZhbHNlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyU2NyYXBpbmdSZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBhY2NvdW50cz86IFRyYW5zYWN0aW9uc0FjY291bnRbXTtcbiAgZXJyb3JUeXBlPzogU2NyYXBlckVycm9yVHlwZXM7XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZzsgLy8gb25seSBvbiBzdWNjZXNzPWZhbHNlXG59XG5cbmV4cG9ydCB0eXBlIFNjcmFwZXJDcmVkZW50aWFscyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhcGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcGFueSB5b3Ugd2FudCB0byBzY3JhcGVcbiAgICovXG4gIGNvbXBhbnlJZDogQ29tcGFueVR5cGVzO1xuXG4gIC8qKlxuICAgKiBpbmNsdWRlIG1vcmUgZGVidWcgaW5mbyBhYm91dCBpbiB0aGUgb3V0cHV0XG4gICAqL1xuICB2ZXJib3NlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogdGhlIGRhdGUgdG8gZmV0Y2ggdHJhbnNhY3Rpb25zIGZyb20gKGNhbid0IGJlIGJlZm9yZSB0aGUgbWluaW11bSBhbGxvd2VkIHRpbWUgZGlmZmVyZW5jZSBmb3IgdGhlIHNjcmFwZXIpXG4gICAqL1xuICBzdGFydERhdGU6IERhdGU7XG5cbiAgLyoqXG4gICAqIHNob3dzIHRoZSBicm93c2VyIHdoaWxlIHNjcmFwaW5nLCBnb29kIGZvciBkZWJ1Z2dpbmcgKGRlZmF1bHQgZmFsc2UpXG4gICAqL1xuICBzaG93QnJvd3Nlcj86IGJvb2xlYW47XG5cblxuICAvKipcbiAgICogc2NyYXBlIHRyYW5zYWN0aW9ucyB0byBiZSBwcm9jZXNzZWQgWCBtb250aHMgaW4gdGhlIGZ1dHVyZVxuICAgKi9cbiAgZnV0dXJlTW9udGhzVG9TY3JhcGU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIG9wdGlvbiBmcm9tIGluaXQgcHVwcGV0ZWVyIGJyb3dzZXIgaW5zdGFuY2Ugb3V0c2lkZSB0aGUgbGliYXJ5IHNjb3BlLiB5b3UgY2FuIGdldFxuICAgKiBicm93c2VyIGRpcmV0bHkgZnJvbSBwdXBwZXRlZXIgdmlhIGBwdXBwZXRlZXIubGF1bmNoKClgXG4gICAqL1xuICBicm93c2VyPzogYW55O1xuXG4gIC8qKlxuICAgKiBwcm92aWRlIGEgcGF0Y2ggdG8gbG9jYWwgY2hyb21pdW0gdG8gYmUgdXNlZCBieSBwdXBwZXRlZXIuIFJlbGV2YW50IHdoZW4gdXNpbmdcbiAgICogYGlzcmFlbGktYmFuay1zY3JhcGVycy1jb3JlYCBsaWJyYXJ5XG4gICAqL1xuICBleGVjdXRhYmxlUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogaWYgc2V0IHRvIHRydWUsIGFsbCBpbnN0YWxsbWVudCB0cmFuc2FjdGlvbnMgd2lsbCBiZSBjb21iaW5lIGludG8gdGhlIGZpcnN0IG9uZVxuICAgKi9cbiAgY29tYmluZUluc3RhbGxtZW50cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGJyb3dzZXIgaW5zdGFuY2UuIFRoZSBsaXN0IG9mIGZsYWdzIGNhbiBiZSBmb3VuZCBpblxuICAgKlxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL01vemlsbGEvQ29tbWFuZF9MaW5lX09wdGlvbnNcbiAgICogaHR0cHM6Ly9wZXRlci5zaC9leHBlcmltZW50cy9jaHJvbWl1bS1jb21tYW5kLWxpbmUtc3dpdGNoZXMvXG4gICAqL1xuICBhcmdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGFkanVzdCB0aGUgYnJvd3NlciBpbnN0YW5jZSBiZWZvcmUgaXQgaXMgYmVpbmcgdXNlZFxuICAgKlxuICAgKiBAcGFyYW0gYnJvd3NlclxuICAgKi9cbiAgcHJlcGFyZUJyb3dzZXI/OiAoYnJvd3NlcjogQnJvd3NlcikgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogYWRqdXN0IHRoZSBwYWdlIGluc3RhbmNlIGJlZm9yZSBpdCBpcyBiZWluZyB1c2VkLlxuICAgKlxuICAgKiBAcGFyYW0gcGFnZVxuICAgKi9cbiAgcHJlcGFyZVBhZ2U/OiAocGFnZTogUGFnZSkgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogaWYgc2V0LCBzdG9yZSBhIHNjcmVlbnNob3QgaWYgZmFpbGVkIHRvIHNjcmFwZS4gVXNlZCBmb3IgZGVidWcgcHVycG9zZXNcbiAgICovXG4gIHN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoPzogc3RyaW5nO1xuXG59XG5cbmV4cG9ydCBlbnVtIFNjYXBlclByb2dyZXNzVHlwZXMge1xuICBJbml0aWFsaXppbmcgPSAnSU5JVElBTElaSU5HJyxcbiAgU3RhcnRTY3JhcGluZyA9ICdTVEFSVF9TQ1JBUElORycsXG4gIExvZ2dpbmdJbiA9ICdMT0dHSU5HX0lOJyxcbiAgTG9naW5TdWNjZXNzID0gJ0xPR0lOX1NVQ0NFU1MnLFxuICBMb2dpbkZhaWxlZCA9ICdMT0dJTl9GQUlMRUQnLFxuICBDaGFuZ2VQYXNzd29yZCA9ICdDSEFOR0VfUEFTU1dPUkQnLFxuICBFbmRTY3JhcGluZyA9ICdFTkRfU0NSQVBJTkcnLFxuICBUZXJtaW5hdGluZyA9ICdURVJNSU5BVElORycsXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yUmVzdWx0KGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMsIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogZmFsc2UsXG4gICAgZXJyb3JUeXBlLFxuICAgIGVycm9yTWVzc2FnZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlVGltZW91dEVycm9yKGVycm9yTWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiBjcmVhdGVFcnJvclJlc3VsdChTY3JhcGVyRXJyb3JUeXBlcy5UaW1lb3V0LCBlcnJvck1lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVHZW5lcmljRXJyb3IoZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUVycm9yUmVzdWx0KFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyaWMsIGVycm9yTWVzc2FnZSk7XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNlU2NyYXBlciB7XG4gIHByaXZhdGUgZXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvcHRpb25zOiBTY2FwZXJPcHRpb25zKSB7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5Jbml0aWFsaXppbmcpO1xuICB9XG5cbiAgYXN5bmMgc2NyYXBlKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5TdGFydFNjcmFwaW5nKTtcbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemUoKTtcblxuICAgIGxldCBsb2dpblJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgbG9naW5SZXN1bHQgPSBhd2FpdCB0aGlzLmxvZ2luKGNyZWRlbnRpYWxzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2dpblJlc3VsdCA9IGUgaW5zdGFuY2VvZiBUaW1lb3V0RXJyb3IgP1xuICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgIGNyZWF0ZUdlbmVyaWNFcnJvcihlLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGxldCBzY3JhcGVSZXN1bHQ7XG4gICAgaWYgKGxvZ2luUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9IGF3YWl0IHRoaXMuZmV0Y2hEYXRhKCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNjcmFwZVJlc3VsdCA9XG4gICAgICAgICAgZSBpbnN0YW5jZW9mIFRpbWVvdXRFcnJvciA/XG4gICAgICAgICAgICBjcmVhdGVUaW1lb3V0RXJyb3IoZS5tZXNzYWdlKSA6XG4gICAgICAgICAgICBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2NyYXBlUmVzdWx0ID0gbG9naW5SZXN1bHQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBzY3JhcGVSZXN1bHQgJiYgc2NyYXBlUmVzdWx0LnN1Y2Nlc3MgPT09IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLnRlcm1pbmF0ZShzdWNjZXNzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBzY3JhcGVSZXN1bHQgPSBjcmVhdGVHZW5lcmljRXJyb3IoZS5tZXNzYWdlKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NhcGVyUHJvZ3Jlc3NUeXBlcy5FbmRTY3JhcGluZyk7XG5cbiAgICByZXR1cm4gc2NyYXBlUmVzdWx0O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L3JlcXVpcmUtYXdhaXRcbiAgYXN5bmMgbG9naW4oX2NyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxTY2FwZXJMb2dpblJlc3VsdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgbG9naW4oKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBmZXRjaERhdGEoKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzLCBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdFxuICBhc3luYyB0ZXJtaW5hdGUoX3N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY2FwZXJQcm9ncmVzc1R5cGVzLlRlcm1pbmF0aW5nKTtcbiAgfVxuXG4gIGVtaXRQcm9ncmVzcyh0eXBlOiBTY2FwZXJQcm9ncmVzc1R5cGVzKSB7XG4gICAgdGhpcy5lbWl0KFNDUkFQRV9QUk9HUkVTUywgeyB0eXBlIH0pO1xuICB9XG5cbiAgZW1pdChldmVudE5hbWU6IHN0cmluZywgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHRoaXMuZXZlbnRFbWl0dGVyLmVtaXQoZXZlbnROYW1lLCB0aGlzLm9wdGlvbnMuY29tcGFueUlkLCBwYXlsb2FkKTtcbiAgfVxuXG4gIG9uUHJvZ3Jlc3MoZnVuYzogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIub24oU0NSQVBFX1BST0dSRVNTLCBmdW5jKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,27 @@
1
+ import { BaseScraperWithBrowser, PossibleLoginResults } from './base-scraper-with-browser';
2
+ import { ScraperCredentials } from './base-scraper';
3
+ import { Transaction } from '../transactions';
4
+ declare class BeyahadBishvilhaScraper extends BaseScraperWithBrowser {
5
+ protected getViewPort(): {
6
+ width: number;
7
+ height: number;
8
+ };
9
+ getLoginOptions(credentials: ScraperCredentials): {
10
+ loginUrl: string;
11
+ fields: {
12
+ selector: string;
13
+ value: string;
14
+ }[];
15
+ submitButtonSelector: () => Promise<void>;
16
+ possibleResults: PossibleLoginResults;
17
+ };
18
+ fetchData(): Promise<{
19
+ success: boolean;
20
+ accounts: {
21
+ accountNumber: any;
22
+ balance: number;
23
+ txns: Transaction[];
24
+ }[];
25
+ }>;
26
+ }
27
+ export default BeyahadBishvilhaScraper;
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.symbol.description");
4
+
5
+ require("core-js/modules/es.array.iterator");
6
+
7
+ require("core-js/modules/es.promise");
8
+
9
+ require("core-js/modules/es.string.replace");
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.default = void 0;
15
+
16
+ var _moment = _interopRequireDefault(require("moment"));
17
+
18
+ var _baseScraperWithBrowser = require("./base-scraper-with-browser");
19
+
20
+ var _transactions = require("../transactions");
21
+
22
+ var _elementsInteractions = require("../helpers/elements-interactions");
23
+
24
+ var _debug = require("../helpers/debug");
25
+
26
+ var _transactions2 = require("../helpers/transactions");
27
+
28
+ var _constants = require("../constants");
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+
32
+ const debug = (0, _debug.getDebug)('beyahadBishvilha');
33
+ const DATE_FORMAT = 'DD/MM/YY';
34
+ const LOGIN_URL = 'https://www.hist.org.il/login';
35
+ const SUCCESS_URL = 'https://www.hist.org.il/';
36
+ const CARD_URL = 'https://www.hist.org.il/card/balanceAndUses';
37
+
38
+ function getAmountData(amountStr) {
39
+ const amountStrCln = amountStr.replace(',', '');
40
+ let currency = null;
41
+ let amount = null;
42
+
43
+ if (amountStrCln.includes(_constants.SHEKEL_CURRENCY_SYMBOL)) {
44
+ amount = parseFloat(amountStrCln.replace(_constants.SHEKEL_CURRENCY_SYMBOL, ''));
45
+ currency = _constants.SHEKEL_CURRENCY;
46
+ } else if (amountStrCln.includes(_constants.DOLLAR_CURRENCY_SYMBOL)) {
47
+ amount = parseFloat(amountStrCln.replace(_constants.DOLLAR_CURRENCY_SYMBOL, ''));
48
+ currency = _constants.DOLLAR_CURRENCY;
49
+ } else if (amountStrCln.includes(_constants.EURO_CURRENCY_SYMBOL)) {
50
+ amount = parseFloat(amountStrCln.replace(_constants.EURO_CURRENCY_SYMBOL, ''));
51
+ currency = _constants.EURO_CURRENCY;
52
+ } else {
53
+ const parts = amountStrCln.split(' ');
54
+ [currency] = parts;
55
+ amount = parseFloat(parts[1]);
56
+ }
57
+
58
+ return {
59
+ amount,
60
+ currency
61
+ };
62
+ }
63
+
64
+ function convertTransactions(txns) {
65
+ debug(`convert ${txns.length} raw transactions to official Transaction structure`);
66
+ return txns.map(txn => {
67
+ const chargedAmountTuple = getAmountData(txn.chargedAmount || '');
68
+ const txnProcessedDate = (0, _moment.default)(txn.date, DATE_FORMAT);
69
+ const result = {
70
+ type: _transactions.TransactionTypes.Normal,
71
+ status: _transactions.TransactionStatuses.Completed,
72
+ date: txnProcessedDate.toISOString(),
73
+ processedDate: txnProcessedDate.toISOString(),
74
+ originalAmount: chargedAmountTuple.amount,
75
+ originalCurrency: chargedAmountTuple.currency,
76
+ chargedAmount: chargedAmountTuple.amount,
77
+ chargedCurrency: chargedAmountTuple.currency,
78
+ description: txn.description || '',
79
+ memo: '',
80
+ identifier: txn.identifier
81
+ };
82
+ return result;
83
+ });
84
+ }
85
+
86
+ async function fetchTransactions(page, options) {
87
+ await page.goto(CARD_URL);
88
+ await (0, _elementsInteractions.waitUntilElementFound)(page, '.react-loading.hide', false);
89
+ const defaultStartMoment = (0, _moment.default)().subtract(1, 'years');
90
+ const startDate = options.startDate || defaultStartMoment.toDate();
91
+
92
+ const startMoment = _moment.default.max(defaultStartMoment, (0, _moment.default)(startDate));
93
+
94
+ const accountNumber = await (0, _elementsInteractions.pageEval)(page, '.wallet-details div:nth-of-type(2)', null, element => {
95
+ return element.innerText.replace('מספר כרטיס ', '');
96
+ });
97
+ const balance = await (0, _elementsInteractions.pageEval)(page, '.wallet-details div:nth-of-type(4) > span:nth-of-type(2)', null, element => {
98
+ return element.innerText;
99
+ });
100
+ debug('fetch raw transactions from page');
101
+ const rawTransactions = await (0, _elementsInteractions.pageEvalAll)(page, '.transaction-container, .transaction-component-container', [], items => {
102
+ return items.map(el => {
103
+ const columns = el.querySelectorAll('.transaction-item > span');
104
+
105
+ if (columns.length === 7) {
106
+ return {
107
+ date: columns[0].innerText,
108
+ identifier: columns[1].innerText,
109
+ description: columns[3].innerText,
110
+ type: columns[5].innerText,
111
+ chargedAmount: columns[6].innerText
112
+ };
113
+ }
114
+
115
+ return null;
116
+ });
117
+ });
118
+ debug(`fetched ${rawTransactions.length} raw transactions from page`);
119
+ const accountTransactions = convertTransactions(rawTransactions.filter(item => !!item));
120
+ debug('filer out old transactions');
121
+ const txns = (0, _transactions2.filterOldTransactions)(accountTransactions, startMoment, false);
122
+ debug(`found ${txns.length} valid transactions out of ${accountTransactions.length} transactions for account ending with ${accountNumber.substring(accountNumber.length - 2)}`);
123
+ return {
124
+ accountNumber,
125
+ balance: getAmountData(balance).amount,
126
+ txns
127
+ };
128
+ }
129
+
130
+ function getPossibleLoginResults() {
131
+ const urls = {};
132
+ urls[_baseScraperWithBrowser.LoginResults.Success] = [SUCCESS_URL];
133
+ urls[_baseScraperWithBrowser.LoginResults.ChangePassword] = []; // TODO
134
+
135
+ urls[_baseScraperWithBrowser.LoginResults.InvalidPassword] = []; // TODO
136
+
137
+ urls[_baseScraperWithBrowser.LoginResults.UnknownError] = []; // TODO
138
+
139
+ return urls;
140
+ }
141
+
142
+ function createLoginFields(credentials) {
143
+ return [{
144
+ selector: '#loginId',
145
+ value: credentials.id
146
+ }, {
147
+ selector: '#loginPassword',
148
+ value: credentials.password
149
+ }];
150
+ }
151
+
152
+ class BeyahadBishvilhaScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
153
+ getViewPort() {
154
+ return {
155
+ width: 1500,
156
+ height: 800
157
+ };
158
+ }
159
+
160
+ getLoginOptions(credentials) {
161
+ return {
162
+ loginUrl: LOGIN_URL,
163
+ fields: createLoginFields(credentials),
164
+ submitButtonSelector: async () => {
165
+ const [button] = await this.page.$x("//button[contains(., 'התחבר')]");
166
+
167
+ if (button) {
168
+ await button.click();
169
+ }
170
+ },
171
+ possibleResults: getPossibleLoginResults()
172
+ };
173
+ }
174
+
175
+ async fetchData() {
176
+ const account = await fetchTransactions(this.page, this.options);
177
+ return {
178
+ success: true,
179
+ accounts: [account]
180
+ };
181
+ }
182
+
183
+ }
184
+
185
+ var _default = BeyahadBishvilhaScraper;
186
+ exports.default = _default;
187
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iZXlhaGFkLWJpc2h2aWxoYS50cyJdLCJuYW1lcyI6WyJkZWJ1ZyIsIkRBVEVfRk9STUFUIiwiTE9HSU5fVVJMIiwiU1VDQ0VTU19VUkwiLCJDQVJEX1VSTCIsImdldEFtb3VudERhdGEiLCJhbW91bnRTdHIiLCJhbW91bnRTdHJDbG4iLCJyZXBsYWNlIiwiY3VycmVuY3kiLCJhbW91bnQiLCJpbmNsdWRlcyIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJzZUZsb2F0IiwiU0hFS0VMX0NVUlJFTkNZIiwiRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCIsIkRPTExBUl9DVVJSRU5DWSIsIkVVUk9fQ1VSUkVOQ1lfU1lNQk9MIiwiRVVST19DVVJSRU5DWSIsInBhcnRzIiwic3BsaXQiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsImxlbmd0aCIsIm1hcCIsInR4biIsImNoYXJnZWRBbW91bnRUdXBsZSIsImNoYXJnZWRBbW91bnQiLCJ0eG5Qcm9jZXNzZWREYXRlIiwiZGF0ZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwibWVtbyIsImlkZW50aWZpZXIiLCJmZXRjaFRyYW5zYWN0aW9ucyIsInBhZ2UiLCJvcHRpb25zIiwiZ290byIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJhY2NvdW50TnVtYmVyIiwiZWxlbWVudCIsImlubmVyVGV4dCIsImJhbGFuY2UiLCJyYXdUcmFuc2FjdGlvbnMiLCJpdGVtcyIsImVsIiwiY29sdW1ucyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJhY2NvdW50VHJhbnNhY3Rpb25zIiwiZmlsdGVyIiwiaXRlbSIsInN1YnN0cmluZyIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJDaGFuZ2VQYXNzd29yZCIsIkludmFsaWRQYXNzd29yZCIsIlVua25vd25FcnJvciIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInZhbHVlIiwiaWQiLCJwYXNzd29yZCIsIkJleWFoYWRCaXNodmlsaGFTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldFZpZXdQb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiYnV0dG9uIiwiJHgiLCJjbGljayIsInBvc3NpYmxlUmVzdWx0cyIsImZldGNoRGF0YSIsImFjY291bnQiLCJzdWNjZXNzIiwiYWNjb3VudHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBUUEsTUFBTUEsS0FBSyxHQUFHLHFCQUFTLGtCQUFULENBQWQ7QUFFQSxNQUFNQyxXQUFXLEdBQUcsVUFBcEI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsK0JBQWxCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLDBCQUFwQjtBQUNBLE1BQU1DLFFBQVEsR0FBRyw2Q0FBakI7O0FBVUEsU0FBU0MsYUFBVCxDQUF1QkMsU0FBdkIsRUFBMEM7QUFDeEMsUUFBTUMsWUFBWSxHQUFHRCxTQUFTLENBQUNFLE9BQVYsQ0FBa0IsR0FBbEIsRUFBdUIsRUFBdkIsQ0FBckI7QUFDQSxNQUFJQyxRQUF1QixHQUFHLElBQTlCO0FBQ0EsTUFBSUMsTUFBcUIsR0FBRyxJQUE1Qjs7QUFDQSxNQUFJSCxZQUFZLENBQUNJLFFBQWIsQ0FBc0JDLGlDQUF0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TEMsTUFBQUEsUUFBUSxFQUFFLENBQUNGLE9BQUQ7QUFGTCxLQUFQO0FBSUQ7O0FBNUIwRDs7ZUErQjlDZCx1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyBTY2FwZXJPcHRpb25zLCBTY3JhcGVyQ3JlZGVudGlhbHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBwYWdlRXZhbCwgcGFnZUV2YWxBbGwsIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCB9IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5pbXBvcnQgeyBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQge1xuICBET0xMQVJfQ1VSUkVOQ1ksXG4gIERPTExBUl9DVVJSRU5DWV9TWU1CT0wsIEVVUk9fQ1VSUkVOQ1ksXG4gIEVVUk9fQ1VSUkVOQ1lfU1lNQk9MLFxuICBTSEVLRUxfQ1VSUkVOQ1ksXG4gIFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wsXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ2JleWFoYWRCaXNodmlsaGEnKTtcblxuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVknO1xuY29uc3QgTE9HSU5fVVJMID0gJ2h0dHBzOi8vd3d3Lmhpc3Qub3JnLmlsL2xvZ2luJztcbmNvbnN0IFNVQ0NFU1NfVVJMID0gJ2h0dHBzOi8vd3d3Lmhpc3Qub3JnLmlsLyc7XG5jb25zdCBDQVJEX1VSTCA9ICdodHRwczovL3d3dy5oaXN0Lm9yZy5pbC9jYXJkL2JhbGFuY2VBbmRVc2VzJztcblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIGRhdGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBjaGFyZ2VkQW1vdW50OiBzdHJpbmc7XG4gIGlkZW50aWZpZXI6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0QW1vdW50RGF0YShhbW91bnRTdHI6IHN0cmluZykge1xuICBjb25zdCBhbW91bnRTdHJDbG4gPSBhbW91bnRTdHIucmVwbGFjZSgnLCcsICcnKTtcbiAgbGV0IGN1cnJlbmN5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgbGV0IGFtb3VudDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSBwYXJzZUZsb2F0KGFtb3VudFN0ckNsbi5yZXBsYWNlKFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wsICcnKSk7XG4gICAgY3VycmVuY3kgPSBTSEVLRUxfQ1VSUkVOQ1k7XG4gIH0gZWxzZSBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKERPTExBUl9DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gRE9MTEFSX0NVUlJFTkNZO1xuICB9IGVsc2UgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhFVVJPX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSBwYXJzZUZsb2F0KGFtb3VudFN0ckNsbi5yZXBsYWNlKEVVUk9fQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gRVVST19DVVJSRU5DWTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBwYXJ0cyA9IGFtb3VudFN0ckNsbi5zcGxpdCgnICcpO1xuICAgIFtjdXJyZW5jeV0gPSBwYXJ0cztcbiAgICBhbW91bnQgPSBwYXJzZUZsb2F0KHBhcnRzWzFdKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYW1vdW50LFxuICAgIGN1cnJlbmN5LFxuICB9O1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIGRlYnVnKGBjb252ZXJ0ICR7dHhucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgdG8gb2ZmaWNpYWwgVHJhbnNhY3Rpb24gc3RydWN0dXJlYCk7XG4gIHJldHVybiB0eG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgY2hhcmdlZEFtb3VudFR1cGxlID0gZ2V0QW1vdW50RGF0YSh0eG4uY2hhcmdlZEFtb3VudCB8fCAnJyk7XG4gICAgY29uc3QgdHhuUHJvY2Vzc2VkRGF0ZSA9IG1vbWVudCh0eG4uZGF0ZSwgREFURV9GT1JNQVQpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICAgIGRhdGU6IHR4blByb2Nlc3NlZERhdGUudG9JU09TdHJpbmcoKSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IHR4blByb2Nlc3NlZERhdGUudG9JU09TdHJpbmcoKSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiBjaGFyZ2VkQW1vdW50VHVwbGUuYW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogY2hhcmdlZEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgY2hhcmdlZEFtb3VudDogY2hhcmdlZEFtb3VudFR1cGxlLmFtb3VudCxcbiAgICAgIGNoYXJnZWRDdXJyZW5jeTogY2hhcmdlZEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIG1lbW86ICcnLFxuICAgICAgaWRlbnRpZmllcjogdHhuLmlkZW50aWZpZXIsXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IFNjYXBlck9wdGlvbnMpIHtcbiAgYXdhaXQgcGFnZS5nb3RvKENBUkRfVVJMKTtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICcucmVhY3QtbG9hZGluZy5oaWRlJywgZmFsc2UpO1xuICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgY29uc3QgYWNjb3VudE51bWJlciA9IGF3YWl0IHBhZ2VFdmFsKHBhZ2UsICcud2FsbGV0LWRldGFpbHMgZGl2Om50aC1vZi10eXBlKDIpJywgbnVsbCwgKGVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gKGVsZW1lbnQgYXMgYW55KS5pbm5lclRleHQucmVwbGFjZSgn157Xodek16gg15vXqNeY15nXoSAnLCAnJyk7XG4gIH0pO1xuXG4gIGNvbnN0IGJhbGFuY2UgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCAnLndhbGxldC1kZXRhaWxzIGRpdjpudGgtb2YtdHlwZSg0KSA+IHNwYW46bnRoLW9mLXR5cGUoMiknLCBudWxsLCAoZWxlbWVudCkgPT4ge1xuICAgIHJldHVybiAoZWxlbWVudCBhcyBhbnkpLmlubmVyVGV4dDtcbiAgfSk7XG5cbiAgZGVidWcoJ2ZldGNoIHJhdyB0cmFuc2FjdGlvbnMgZnJvbSBwYWdlJyk7XG5cbiAgY29uc3QgcmF3VHJhbnNhY3Rpb25zOiAoU2NyYXBlZFRyYW5zYWN0aW9uIHwgbnVsbClbXSA9IGF3YWl0IHBhZ2VFdmFsQWxsPChTY3JhcGVkVHJhbnNhY3Rpb24gfCBudWxsKVtdPihwYWdlLCAnLnRyYW5zYWN0aW9uLWNvbnRhaW5lciwgLnRyYW5zYWN0aW9uLWNvbXBvbmVudC1jb250YWluZXInLCBbXSwgKGl0ZW1zKSA9PiB7XG4gICAgcmV0dXJuIChpdGVtcykubWFwKChlbCkgPT4ge1xuICAgICAgY29uc3QgY29sdW1uczogTm9kZUxpc3RPZjxIVE1MU3BhbkVsZW1lbnQ+ID0gZWwucXVlcnlTZWxlY3RvckFsbCgnLnRyYW5zYWN0aW9uLWl0ZW0gPiBzcGFuJyk7XG4gICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT09IDcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRlOiBjb2x1bW5zWzBdLmlubmVyVGV4dCxcbiAgICAgICAgICBpZGVudGlmaWVyOiBjb2x1bW5zWzFdLmlubmVyVGV4dCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogY29sdW1uc1szXS5pbm5lclRleHQsXG4gICAgICAgICAgdHlwZTogY29sdW1uc1s1XS5pbm5lclRleHQsXG4gICAgICAgICAgY2hhcmdlZEFtb3VudDogY29sdW1uc1s2XS5pbm5lclRleHQsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgfSk7XG4gIGRlYnVnKGBmZXRjaGVkICR7cmF3VHJhbnNhY3Rpb25zLmxlbmd0aH0gcmF3IHRyYW5zYWN0aW9ucyBmcm9tIHBhZ2VgKTtcblxuICBjb25zdCBhY2NvdW50VHJhbnNhY3Rpb25zID0gY29udmVydFRyYW5zYWN0aW9ucyhyYXdUcmFuc2FjdGlvbnMuZmlsdGVyKChpdGVtKSA9PiAhIWl0ZW0pIGFzIFNjcmFwZWRUcmFuc2FjdGlvbltdKTtcblxuICBkZWJ1ZygnZmlsZXIgb3V0IG9sZCB0cmFuc2FjdGlvbnMnKTtcbiAgY29uc3QgdHhucyA9IGZpbHRlck9sZFRyYW5zYWN0aW9ucyhhY2NvdW50VHJhbnNhY3Rpb25zLCBzdGFydE1vbWVudCwgZmFsc2UpO1xuICBkZWJ1ZyhgZm91bmQgJHt0eG5zLmxlbmd0aH0gdmFsaWQgdHJhbnNhY3Rpb25zIG91dCBvZiAke2FjY291bnRUcmFuc2FjdGlvbnMubGVuZ3RofSB0cmFuc2FjdGlvbnMgZm9yIGFjY291bnQgZW5kaW5nIHdpdGggJHthY2NvdW50TnVtYmVyLnN1YnN0cmluZyhhY2NvdW50TnVtYmVyLmxlbmd0aCAtIDIpfWApO1xuXG4gIHJldHVybiB7XG4gICAgYWNjb3VudE51bWJlcixcbiAgICBiYWxhbmNlOiBnZXRBbW91bnREYXRhKGJhbGFuY2UpLmFtb3VudCxcbiAgICB0eG5zLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIGNvbnN0IHVybHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge307XG4gIHVybHNbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdID0gW1NVQ0NFU1NfVVJMXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdID0gW107IC8vIFRPRE9cbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFtdOyAvLyBUT0RPXG4gIHVybHNbTG9naW5SZXN1bHRzLlVua25vd25FcnJvcl0gPSBbXTsgLy8gVE9ET1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjbG9naW5JZCcsIHZhbHVlOiBjcmVkZW50aWFscy5pZCB9LFxuICAgIHsgc2VsZWN0b3I6ICcjbG9naW5QYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5jbGFzcyBCZXlhaGFkQmlzaHZpbGhhU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBwcm90ZWN0ZWQgZ2V0Vmlld1BvcnQoKTogeyB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IDE1MDAsXG4gICAgICBoZWlnaHQ6IDgwMCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IExPR0lOX1VSTCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgW2J1dHRvbl0gPSBhd2FpdCB0aGlzLnBhZ2UuJHgoXCIvL2J1dHRvbltjb250YWlucyguLCAn15TXqteX15HXqCcpXVwiKTtcbiAgICAgICAgaWYgKGJ1dHRvbikge1xuICAgICAgICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwgdGhpcy5vcHRpb25zKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzOiBbYWNjb3VudF0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCZXlhaGFkQmlzaHZpbGhhU2NyYXBlcjtcbiJdfQ==
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.promise");
4
+
5
+ require("core-js/modules/es.string.trim");
6
+
7
+ var _beyahadBishvilha = _interopRequireDefault(require("./beyahad-bishvilha"));
8
+
9
+ var _testsUtils = require("../tests/tests-utils");
10
+
11
+ var _definitions = require("../definitions");
12
+
13
+ var _baseScraperWithBrowser = require("./base-scraper-with-browser");
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
18
+
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+
21
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22
+
23
+ const COMPANY_ID = 'beyahadBishvilha'; // TODO this property should be hard-coded in the provider
24
+
25
+ const testsConfig = (0, _testsUtils.getTestsConfig)();
26
+ describe('Beyahad Bishvilha scraper', () => {
27
+ beforeAll(() => {
28
+ (0, _testsUtils.extendAsyncTimeout)(); // The default timeout is 5 seconds per async test, this function extends the timeout value
29
+ });
30
+ test('should expose login fields in scrapers constant', () => {
31
+ expect(_definitions.SCRAPERS.beyahadBishvilha).toBeDefined();
32
+ expect(_definitions.SCRAPERS.beyahadBishvilha.loginFields).toContain('id');
33
+ expect(_definitions.SCRAPERS.beyahadBishvilha.loginFields).toContain('password');
34
+ });
35
+ (0, _testsUtils.maybeTestCompanyAPI)(COMPANY_ID, config => config.companyAPI.invalidPassword)('should fail on invalid user/password"', async () => {
36
+ const options = _objectSpread({}, testsConfig.options, {
37
+ companyId: COMPANY_ID
38
+ });
39
+
40
+ const scraper = new _beyahadBishvilha.default(options);
41
+ const result = await scraper.scrape({
42
+ id: 'e10s12',
43
+ password: '3f3ss3d'
44
+ });
45
+ expect(result).toBeDefined();
46
+ expect(result.success).toBeFalsy();
47
+ expect(result.errorType).toBe(_baseScraperWithBrowser.LoginResults.InvalidPassword);
48
+ });
49
+ (0, _testsUtils.maybeTestCompanyAPI)(COMPANY_ID)('should scrape transactions"', async () => {
50
+ const options = _objectSpread({}, testsConfig.options, {
51
+ companyId: COMPANY_ID
52
+ });
53
+
54
+ const scraper = new _beyahadBishvilha.default(options);
55
+ const result = await scraper.scrape(testsConfig.credentials.beyahadBishvilha);
56
+ expect(result).toBeDefined();
57
+ const error = `${result.errorType || ''} ${result.errorMessage || ''}`.trim();
58
+ expect(error).toBe('');
59
+ expect(result.success).toBeTruthy();
60
+ (0, _testsUtils.exportTransactions)(COMPANY_ID, result.accounts || []);
61
+ });
62
+ });
63
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iZXlhaGFkLWJpc2h2aWxoYS50ZXN0LnRzIl0sIm5hbWVzIjpbIkNPTVBBTllfSUQiLCJ0ZXN0c0NvbmZpZyIsImRlc2NyaWJlIiwiYmVmb3JlQWxsIiwidGVzdCIsImV4cGVjdCIsIlNDUkFQRVJTIiwiYmV5YWhhZEJpc2h2aWxoYSIsInRvQmVEZWZpbmVkIiwibG9naW5GaWVsZHMiLCJ0b0NvbnRhaW4iLCJjb25maWciLCJjb21wYW55QVBJIiwiaW52YWxpZFBhc3N3b3JkIiwib3B0aW9ucyIsImNvbXBhbnlJZCIsInNjcmFwZXIiLCJCZXlhaGFkQmlzaHZpbGhhU2NyYXBlciIsInJlc3VsdCIsInNjcmFwZSIsImlkIiwicGFzc3dvcmQiLCJzdWNjZXNzIiwidG9CZUZhbHN5IiwiZXJyb3JUeXBlIiwidG9CZSIsIkxvZ2luUmVzdWx0cyIsIkludmFsaWRQYXNzd29yZCIsImNyZWRlbnRpYWxzIiwiZXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJ0cmltIiwidG9CZVRydXRoeSIsImFjY291bnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLE1BQU1BLFVBQVUsR0FBRyxrQkFBbkIsQyxDQUF1Qzs7QUFDdkMsTUFBTUMsV0FBVyxHQUFHLGlDQUFwQjtBQUVBQyxRQUFRLENBQUMsMkJBQUQsRUFBOEIsTUFBTTtBQUMxQ0MsRUFBQUEsU0FBUyxDQUFDLE1BQU07QUFDZCwwQ0FEYyxDQUNRO0FBQ3ZCLEdBRlEsQ0FBVDtBQUlBQyxFQUFBQSxJQUFJLENBQUMsaURBQUQsRUFBb0QsTUFBTTtBQUM1REMsSUFBQUEsTUFBTSxDQUFDQyxzQkFBU0MsZ0JBQVYsQ0FBTixDQUFrQ0MsV0FBbEM7QUFDQUgsSUFBQUEsTUFBTSxDQUFDQyxzQkFBU0MsZ0JBQVQsQ0FBMEJFLFdBQTNCLENBQU4sQ0FBOENDLFNBQTlDLENBQXdELElBQXhEO0FBQ0FMLElBQUFBLE1BQU0sQ0FBQ0Msc0JBQVNDLGdCQUFULENBQTBCRSxXQUEzQixDQUFOLENBQThDQyxTQUE5QyxDQUF3RCxVQUF4RDtBQUNELEdBSkcsQ0FBSjtBQU1BLHVDQUFvQlYsVUFBcEIsRUFBaUNXLE1BQUQsSUFBWUEsTUFBTSxDQUFDQyxVQUFQLENBQWtCQyxlQUE5RCxFQUErRSx1Q0FBL0UsRUFBd0gsWUFBWTtBQUNsSSxVQUFNQyxPQUFPLHFCQUNSYixXQUFXLENBQUNhLE9BREo7QUFFWEMsTUFBQUEsU0FBUyxFQUFFZjtBQUZBLE1BQWI7O0FBS0EsVUFBTWdCLE9BQU8sR0FBRyxJQUFJQyx5QkFBSixDQUE0QkgsT0FBNUIsQ0FBaEI7QUFFQSxVQUFNSSxNQUFNLEdBQUcsTUFBTUYsT0FBTyxDQUFDRyxNQUFSLENBQWU7QUFBRUMsTUFBQUEsRUFBRSxFQUFFLFFBQU47QUFBZ0JDLE1BQUFBLFFBQVEsRUFBRTtBQUExQixLQUFmLENBQXJCO0FBRUFoQixJQUFBQSxNQUFNLENBQUNhLE1BQUQsQ0FBTixDQUFlVixXQUFmO0FBQ0FILElBQUFBLE1BQU0sQ0FBQ2EsTUFBTSxDQUFDSSxPQUFSLENBQU4sQ0FBdUJDLFNBQXZCO0FBQ0FsQixJQUFBQSxNQUFNLENBQUNhLE1BQU0sQ0FBQ00sU0FBUixDQUFOLENBQXlCQyxJQUF6QixDQUE4QkMscUNBQWFDLGVBQTNDO0FBQ0QsR0FiRDtBQWVBLHVDQUFvQjNCLFVBQXBCLEVBQWdDLDZCQUFoQyxFQUErRCxZQUFZO0FBQ3pFLFVBQU1jLE9BQU8scUJBQ1JiLFdBQVcsQ0FBQ2EsT0FESjtBQUVYQyxNQUFBQSxTQUFTLEVBQUVmO0FBRkEsTUFBYjs7QUFLQSxVQUFNZ0IsT0FBTyxHQUFHLElBQUlDLHlCQUFKLENBQTRCSCxPQUE1QixDQUFoQjtBQUNBLFVBQU1JLE1BQU0sR0FBRyxNQUFNRixPQUFPLENBQUNHLE1BQVIsQ0FBZWxCLFdBQVcsQ0FBQzJCLFdBQVosQ0FBd0JyQixnQkFBdkMsQ0FBckI7QUFDQUYsSUFBQUEsTUFBTSxDQUFDYSxNQUFELENBQU4sQ0FBZVYsV0FBZjtBQUNBLFVBQU1xQixLQUFLLEdBQUksR0FBRVgsTUFBTSxDQUFDTSxTQUFQLElBQW9CLEVBQUcsSUFBR04sTUFBTSxDQUFDWSxZQUFQLElBQXVCLEVBQUcsRUFBdkQsQ0FBeURDLElBQXpELEVBQWQ7QUFDQTFCLElBQUFBLE1BQU0sQ0FBQ3dCLEtBQUQsQ0FBTixDQUFjSixJQUFkLENBQW1CLEVBQW5CO0FBQ0FwQixJQUFBQSxNQUFNLENBQUNhLE1BQU0sQ0FBQ0ksT0FBUixDQUFOLENBQXVCVSxVQUF2QjtBQUVBLHdDQUFtQmhDLFVBQW5CLEVBQStCa0IsTUFBTSxDQUFDZSxRQUFQLElBQW1CLEVBQWxEO0FBQ0QsR0FkRDtBQWVELENBekNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmV5YWhhZEJpc2h2aWxoYVNjcmFwZXIgZnJvbSAnLi9iZXlhaGFkLWJpc2h2aWxoYSc7XG5pbXBvcnQge1xuICBtYXliZVRlc3RDb21wYW55QVBJLCBleHRlbmRBc3luY1RpbWVvdXQsIGdldFRlc3RzQ29uZmlnLCBleHBvcnRUcmFuc2FjdGlvbnMsXG59IGZyb20gJy4uL3Rlc3RzL3Rlc3RzLXV0aWxzJztcbmltcG9ydCB7IFNDUkFQRVJTIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHsgTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcblxuY29uc3QgQ09NUEFOWV9JRCA9ICdiZXlhaGFkQmlzaHZpbGhhJzsgLy8gVE9ETyB0aGlzIHByb3BlcnR5IHNob3VsZCBiZSBoYXJkLWNvZGVkIGluIHRoZSBwcm92aWRlclxuY29uc3QgdGVzdHNDb25maWcgPSBnZXRUZXN0c0NvbmZpZygpO1xuXG5kZXNjcmliZSgnQmV5YWhhZCBCaXNodmlsaGEgc2NyYXBlcicsICgpID0+IHtcbiAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICBleHRlbmRBc3luY1RpbWVvdXQoKTsgLy8gVGhlIGRlZmF1bHQgdGltZW91dCBpcyA1IHNlY29uZHMgcGVyIGFzeW5jIHRlc3QsIHRoaXMgZnVuY3Rpb24gZXh0ZW5kcyB0aGUgdGltZW91dCB2YWx1ZVxuICB9KTtcblxuICB0ZXN0KCdzaG91bGQgZXhwb3NlIGxvZ2luIGZpZWxkcyBpbiBzY3JhcGVycyBjb25zdGFudCcsICgpID0+IHtcbiAgICBleHBlY3QoU0NSQVBFUlMuYmV5YWhhZEJpc2h2aWxoYSkudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoU0NSQVBFUlMuYmV5YWhhZEJpc2h2aWxoYS5sb2dpbkZpZWxkcykudG9Db250YWluKCdpZCcpO1xuICAgIGV4cGVjdChTQ1JBUEVSUy5iZXlhaGFkQmlzaHZpbGhhLmxvZ2luRmllbGRzKS50b0NvbnRhaW4oJ3Bhc3N3b3JkJyk7XG4gIH0pO1xuXG4gIG1heWJlVGVzdENvbXBhbnlBUEkoQ09NUEFOWV9JRCwgKGNvbmZpZykgPT4gY29uZmlnLmNvbXBhbnlBUEkuaW52YWxpZFBhc3N3b3JkKSgnc2hvdWxkIGZhaWwgb24gaW52YWxpZCB1c2VyL3Bhc3N3b3JkXCInLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIC4uLnRlc3RzQ29uZmlnLm9wdGlvbnMsXG4gICAgICBjb21wYW55SWQ6IENPTVBBTllfSUQsXG4gICAgfTtcblxuICAgIGNvbnN0IHNjcmFwZXIgPSBuZXcgQmV5YWhhZEJpc2h2aWxoYVNjcmFwZXIob3B0aW9ucyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSh7IGlkOiAnZTEwczEyJywgcGFzc3dvcmQ6ICczZjNzczNkJyB9KTtcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KHJlc3VsdC5zdWNjZXNzKS50b0JlRmFsc3koKTtcbiAgICBleHBlY3QocmVzdWx0LmVycm9yVHlwZSkudG9CZShMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkKTtcbiAgfSk7XG5cbiAgbWF5YmVUZXN0Q29tcGFueUFQSShDT01QQU5ZX0lEKSgnc2hvdWxkIHNjcmFwZSB0cmFuc2FjdGlvbnNcIicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgLi4udGVzdHNDb25maWcub3B0aW9ucyxcbiAgICAgIGNvbXBhbnlJZDogQ09NUEFOWV9JRCxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NyYXBlciA9IG5ldyBCZXlhaGFkQmlzaHZpbGhhU2NyYXBlcihvcHRpb25zKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSh0ZXN0c0NvbmZpZy5jcmVkZW50aWFscy5iZXlhaGFkQmlzaHZpbGhhKTtcbiAgICBleHBlY3QocmVzdWx0KS50b0JlRGVmaW5lZCgpO1xuICAgIGNvbnN0IGVycm9yID0gYCR7cmVzdWx0LmVycm9yVHlwZSB8fCAnJ30gJHtyZXN1bHQuZXJyb3JNZXNzYWdlIHx8ICcnfWAudHJpbSgpO1xuICAgIGV4cGVjdChlcnJvcikudG9CZSgnJyk7XG4gICAgZXhwZWN0KHJlc3VsdC5zdWNjZXNzKS50b0JlVHJ1dGh5KCk7XG5cbiAgICBleHBvcnRUcmFuc2FjdGlvbnMoQ09NUEFOWV9JRCwgcmVzdWx0LmFjY291bnRzIHx8IFtdKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -107,7 +107,7 @@ async function navigateOrErrorLabel(page) {
107
107
 
108
108
  function getPossibleLoginResults() {
109
109
  const urls = {};
110
- urls[_baseScraperWithBrowser.LoginResults.Success] = [`${BASE_URL}/apollo/core/templates/RETAIL/masterPage.html#/MY_ACCOUNT_HOMEPAGE`];
110
+ urls[_baseScraperWithBrowser.LoginResults.Success] = [`${BASE_URL}/apollo/retail/#/MY_ACCOUNT_HOMEPAGE`];
111
111
  urls[_baseScraperWithBrowser.LoginResults.InvalidPassword] = [`${BASE_URL}/apollo/core/templates/lobby/masterPage.html#/LOGIN_PAGE`];
112
112
  urls[_baseScraperWithBrowser.LoginResults.ChangePassword] = [`${BASE_URL}/apollo/core/templates/lobby/masterPage.html#/PWD_RENEW`];
113
113
  return urls;
@@ -146,4 +146,4 @@ class DiscountScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
146
146
 
147
147
  var _default = DiscountScraper;
148
148
  exports.default = _default;
149
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9kaXNjb3VudC50cyJdLCJuYW1lcyI6WyJCQVNFX1VSTCIsIkRBVEVfRk9STUFUIiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJ0eG5TdGF0dXMiLCJtYXAiLCJ0eG4iLCJ0eXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsImlkZW50aWZpZXIiLCJPcGVyYXRpb25OdW1iZXIiLCJkYXRlIiwiT3BlcmF0aW9uRGF0ZSIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsIlZhbHVlRGF0ZSIsIm9yaWdpbmFsQW1vdW50IiwiT3BlcmF0aW9uQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRBbW91bnQiLCJkZXNjcmlwdGlvbiIsIk9wZXJhdGlvbkRlc2NyaXB0aW9uVG9EaXNwbGF5Iiwic3RhdHVzIiwiZmV0Y2hBY2NvdW50RGF0YSIsInBhZ2UiLCJvcHRpb25zIiwiYXBpU2l0ZVVybCIsImFjY291bnREYXRhVXJsIiwiYWNjb3VudEluZm8iLCJzdWNjZXNzIiwiZXJyb3JUeXBlIiwiU2NyYXBlckVycm9yVHlwZXMiLCJHZW5lcmljIiwiZXJyb3JNZXNzYWdlIiwiYWNjb3VudE51bWJlciIsIlVzZXJBY2NvdW50c0RhdGEiLCJEZWZhdWx0QWNjb3VudE51bWJlciIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0IiwiYWRkIiwic3RhcnREYXRlIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJzdGFydERhdGVTdHIiLCJmb3JtYXQiLCJ0eG5zVXJsIiwidHhuc1Jlc3VsdCIsIkVycm9yIiwiQ3VycmVudEFjY291bnRMYXN0VHJhbnNhY3Rpb25zIiwiTXNnVGV4dCIsImNvbXBsZXRlZFR4bnMiLCJPcGVyYXRpb25FbnRyeSIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJyYXdGdXR1cmVUeG5zIiwiXyIsImdldCIsInBlbmRpbmdUeG5zIiwiUGVuZGluZyIsImFjY291bnREYXRhIiwiYWNjb3VudHMiLCJiYWxhbmNlIiwiQ3VycmVudEFjY291bnRJbmZvIiwiQWNjb3VudEJhbGFuY2UiLCJuYXZpZ2F0ZU9yRXJyb3JMYWJlbCIsImUiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwiQ2hhbmdlUGFzc3dvcmQiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsImlkIiwicGFzc3dvcmQiLCJudW0iLCJEaXNjb3VudFNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJjaGVja1JlYWRpbmVzcyIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwicG9zdEFjdGlvbiIsInBvc3NpYmxlUmVzdWx0cyIsImZldGNoRGF0YSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7OztBQUtBLE1BQU1BLFFBQVEsR0FBRyw4QkFBakI7QUFDQSxNQUFNQyxXQUFXLEdBQUcsVUFBcEI7O0FBNEJBLFNBQVNDLG1CQUFULENBQTZCQyxJQUE3QixFQUF5REMsU0FBekQsRUFBd0c7QUFDdEcsTUFBSSxDQUFDRCxJQUFMLEVBQVc7QUFDVCxXQUFPLEVBQVA7QUFDRDs7QUFDRCxTQUFPQSxJQUFJLENBQUNFLEdBQUwsQ0FBVUMsR0FBRCxJQUFTO0FBQ3ZCLFdBQU87QUFDTEMsTUFBQUEsSUFBSSxFQUFFQywrQkFBaUJDLE1BRGxCO0FBRUxDLE1BQUFBLFVBQVUsRUFBRUosR0FBRyxDQUFDSyxlQUZYO0FBR0xDLE1BQUFBLElBQUksRUFBRSxxQkFBT04sR0FBRyxDQUFDTyxhQUFYLEVBQTBCWixXQUExQixFQUF1Q2EsV0FBdkMsRUFIRDtBQUlMQyxNQUFBQSxhQUFhLEVBQUUscUJB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TFMsTUFBQUEsUUFBUSxFQUFHLEdBQUVyRixRQUFTLDBEQURqQjtBQUVMc0YsTUFBQUEsY0FBYyxFQUFFLFlBQVksaURBQXNCLEtBQUs3RCxJQUEzQixFQUFpQyxPQUFqQyxDQUZ2QjtBQUdMOEQsTUFBQUEsTUFBTSxFQUFFWixpQkFBaUIsQ0FBQ0MsV0FBRCxDQUhwQjtBQUlMWSxNQUFBQSxvQkFBb0IsRUFBRSxVQUpqQjtBQUtMQyxNQUFBQSxVQUFVLEVBQUUsWUFBWXRCLG9CQUFvQixDQUFDLEtBQUsxQyxJQUFOLENBTHZDO0FBTUxpRSxNQUFBQSxlQUFlLEVBQUVyQix1QkFBdUI7QUFObkMsS0FBUDtBQVFEOztBQUVELFFBQU1zQixTQUFOLEdBQWtCO0FBQ2hCLFdBQU9uRSxnQkFBZ0IsQ0FBQyxLQUFLQyxJQUFOLEVBQVksS0FBS0MsT0FBakIsQ0FBdkI7QUFDRDs7QUFka0Q7O2VBaUJ0Q3dELGUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIFBvc3NpYmxlTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCB9IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQge1xuICBTY2FwZXJPcHRpb25zLFxuICBTY3JhcGVyRXJyb3JUeXBlcywgU2NhcGVyU2NyYXBpbmdSZXN1bHQsIFNjcmFwZXJDcmVkZW50aWFscyxcbn0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuXG5jb25zdCBCQVNFX1VSTCA9ICdodHRwczovL3N0YXJ0LnRlbGViYW5rLmNvLmlsJztcbmNvbnN0IERBVEVfRk9STUFUID0gJ1lZWVlNTUREJztcblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIE9wZXJhdGlvbk51bWJlcjogbnVtYmVyO1xuICBPcGVyYXRpb25EYXRlOiBzdHJpbmc7XG4gIFZhbHVlRGF0ZTogc3RyaW5nO1xuICBPcGVyYXRpb25BbW91bnQ6IG51bWJlcjtcbiAgT3BlcmF0aW9uRGVzY3JpcHRpb25Ub0Rpc3BsYXk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEN1cnJlbnRBY2NvdW50SW5mbyB7XG4gIEFjY291bnRCYWxhbmNlOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBTY3JhcGVkQWNjb3VudERhdGEge1xuICBVc2VyQWNjb3VudHNEYXRhOiB7XG4gICAgRGVmYXVsdEFjY291bnROdW1iZXI6IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbkRhdGEge1xuICBFcnJvcj86IHsgTXNnVGV4dDogc3RyaW5nIH07XG4gIEN1cnJlbnRBY2NvdW50TGFzdFRyYW5zYWN0aW9ucz86IHtcbiAgICBPcGVyYXRpb25FbnRyeTogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gICAgQ3VycmVudEFjY291bnRJbmZvOiBDdXJyZW50QWNjb3VudEluZm87XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10sIHR4blN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcyk6IFRyYW5zYWN0aW9uW10ge1xuICBpZiAoIXR4bnMpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIHR4bnMubWFwKCh0eG4pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiB0eG4uT3BlcmF0aW9uTnVtYmVyLFxuICAgICAgZGF0ZTogbW9tZW50KHR4bi5PcGVyYXRpb25EYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IG1vbWVudCh0eG4uVmFsdWVEYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiB0eG4uT3BlcmF0aW9uQW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogJ0lMUycsXG4gICAgICBjaGFyZ2VkQW1vdW50OiB0eG4uT3BlcmF0aW9uQW1vdW50LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5PcGVyYXRpb25EZXNjcmlwdGlvblRvRGlzcGxheSxcbiAgICAgIHN0YXR1czogdHhuU3RhdHVzLFxuICAgIH07XG4gIH0pO1xufVxuXG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudERhdGEocGFnZTogUGFnZSwgb3B0aW9uczogU2NhcGVyT3B0aW9ucyk6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgY29uc3QgYXBpU2l0ZVVybCA9IGAke0JBU0VfVVJMfS9UaXRhbi9nYXRld2F5QVBJYDtcblxuICBjb25zdCBhY2NvdW50RGF0YVVybCA9IGAke2FwaVNpdGVVcmx9L3VzZXJBY2NvdW50c0RhdGFgO1xuICBjb25zdCBhY2NvdW50SW5mbyA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkQWNjb3VudERhdGE+KHBhZ2UsIGFjY291bnREYXRhVXJsKTtcblxuICBpZiAoIWFjY291bnRJbmZvKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmljLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnZmFpbGVkIHRvIGdldCBhY2NvdW50IGRhdGEnLFxuICAgIH07XG4gIH1cbiAgY29uc3QgYWNjb3VudE51bWJlciA9IGFjY291bnRJbmZvLlVzZXJBY2NvdW50c0RhdGEuRGVmYXVsdEFjY291bnROdW1iZXI7XG5cbiAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgY29uc3Qgc3RhcnREYXRlU3RyID0gc3RhcnRNb21lbnQuZm9ybWF0KERBVEVfRk9STUFUKTtcbiAgY29uc3QgdHhuc1VybCA9IGAke2FwaVNpdGVVcmx9L2xhc3RUcmFuc2FjdGlvbnMvJHthY2NvdW50TnVtYmVyfS9EYXRlP0lzQ2F0ZWdvcnlEZXNjQ29kZT1UcnVlJklzVHJhbnNhY3Rpb25EZXRhaWxzPVRydWUmSXNFdmVudE5hbWVzPVRydWUmSXNGdXR1cmVUcmFuc2FjdGlvbkZsYWc9VHJ1ZSZGcm9tRGF0ZT0ke3N0YXJ0RGF0ZVN0cn1gO1xuICBjb25zdCB0eG5zUmVzdWx0ID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbkRhdGE+KHBhZ2UsIHR4bnNVcmwpO1xuICBpZiAoIXR4bnNSZXN1bHQgfHwgdHhuc1Jlc3VsdC5FcnJvciB8fFxuICAgICF0eG5zUmVzdWx0LkN1cnJlbnRBY2NvdW50TGFzdFRyYW5zYWN0aW9ucykge1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpYyxcbiAgICAgIGVycm9yTWVzc2FnZTogdHhuc1Jlc3VsdCAmJiB0eG5zUmVzdWx0LkVycm9yID8gdHhuc1Jlc3VsdC5FcnJvci5Nc2dUZXh0IDogJ3Vua25vd24gZXJyb3InLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBjb21wbGV0ZWRUeG5zID0gY29udmVydFRyYW5zYWN0aW9ucyhcbiAgICB0eG5zUmVzdWx0LkN1cnJlbnRBY2NvdW50TGFzdFRyYW5zYWN0aW9ucy5PcGVyYXRpb25FbnRyeSxcbiAgICBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgKTtcbiAgY29uc3QgcmF3RnV0dXJlVHhucyA9IF8uZ2V0KHR4bnNSZXN1bHQsICdDdXJyZW50QWNjb3VudExhc3RUcmFuc2FjdGlvbnMuRnV0dXJlVHJhbnNhY3Rpb25zQmxvY2suRnV0dXJlVHJhbnNhY3Rpb25FbnRyeScpO1xuICBjb25zdCBwZW5kaW5nVHhucyA9IGNvbnZlcnRUcmFuc2FjdGlvbnMocmF3RnV0dXJlVHhucywgVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nKTtcblxuICBjb25zdCBhY2NvdW50RGF0YSA9IHtcbiAgICBzdWNjZXNzOiB0cnVlLFxuICAgIGFjY291bnRzOiBbe1xuICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgIGJhbGFuY2U6IHR4bnNSZXN1bHQuQ3VycmVudEFjY291bnRMYXN0VHJhbnNhY3Rpb25zLkN1cnJlbnRBY2NvdW50SW5mby5BY2NvdW50QmFsYW5jZSxcbiAgICAgIHR4bnM6IFsuLi5jb21wbGV0ZWRUeG5zLCAuLi5wZW5kaW5nVHhuc10sXG4gICAgfV0sXG4gIH07XG5cbiAgcmV0dXJuIGFjY291bnREYXRhO1xufVxuXG5hc3luYyBmdW5jdGlvbiBuYXZpZ2F0ZU9yRXJyb3JMYWJlbChwYWdlOiBQYWdlKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyNnZW5lcmFsLWVycm9yJywgZmFsc2UsIDEwMCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICBjb25zdCB1cmxzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHt9O1xuICB1cmxzW0xvZ2luUmVzdWx0cy5TdWNjZXNzXSA9IFtgJHtCQVNFX1VSTH0vYXBvbGxvL2NvcmUvdGVtcGxhdGVzL1JFVEFJTC9tYXN0ZXJQYWdlLmh0bWwjL01ZX0FDQ09VTlRfSE9NRVBBR0VgXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFtgJHtCQVNFX1VSTH0vYXBvbGxvL2NvcmUvdGVtcGxhdGVzL2xvYmJ5L21hc3RlclBhZ2UuaHRtbCMvTE9HSU5fUEFHRWBdO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF0gPSBbYCR7QkFTRV9VUkx9L2Fwb2xsby9jb3JlL3RlbXBsYXRlcy9sb2JieS9tYXN0ZXJQYWdlLmh0bWwjL1BXRF9SRU5FV2BdO1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjdHpJZCcsIHZhbHVlOiBjcmVkZW50aWFscy5pZCB9LFxuICAgIHsgc2VsZWN0b3I6ICcjdHpQYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICAgIHsgc2VsZWN0b3I6ICcjYWlkbnVtJywgdmFsdWU6IGNyZWRlbnRpYWxzLm51bSB9LFxuICBdO1xufVxuXG5jbGFzcyBEaXNjb3VudFNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IGAke0JBU0VfVVJMfS9hcG9sbG8vY29yZS90ZW1wbGF0ZXMvbG9iYnkvbWFzdGVyUGFnZS5odG1sIy9MT0dJTl9QQUdFYCxcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI3R6SWQnKSxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcuc2VuZEJ0bicsXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiBuYXZpZ2F0ZU9yRXJyb3JMYWJlbCh0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgcmV0dXJuIGZldGNoQWNjb3VudERhdGEodGhpcy5wYWdlLCB0aGlzLm9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IERpc2NvdW50U2NyYXBlcjtcbiJdfQ==
149
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9kaXNjb3VudC50cyJdLCJuYW1lcyI6WyJCQVNFX1VSTCIsIkRBVEVfRk9STUFUIiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJ0eG5TdGF0dXMiLCJtYXAiLCJ0eG4iLCJ0eXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsImlkZW50aWZpZXIiLCJPcGVyYXRpb25OdW1iZXIiLCJkYXRlIiwiT3BlcmF0aW9uRGF0ZSIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsIlZhbHVlRGF0ZSIsIm9yaWdpbmFsQW1vdW50IiwiT3BlcmF0aW9uQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRBbW91bnQiLCJkZXNjcmlwdGlvbiIsIk9wZXJhdGlvbkRlc2NyaXB0aW9uVG9EaXNwbGF5Iiwic3RhdHVzIiwiZmV0Y2hBY2NvdW50RGF0YSIsInBhZ2UiLCJvcHRpb25zIiwiYXBpU2l0ZVVybCIsImFjY291bnREYXRhVXJsIiwiYWNjb3VudEluZm8iLCJzdWNjZXNzIiwiZXJyb3JUeXBlIiwiU2NyYXBlckVycm9yVHlwZXMiLCJHZW5lcmljIiwiZXJyb3JNZXNzYWdlIiwiYWNjb3VudE51bWJlciIsIlVzZXJBY2NvdW50c0RhdGEiLCJEZWZhdWx0QWNjb3VudE51bWJlciIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0IiwiYWRkIiwic3RhcnREYXRlIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJzdGFydERhdGVTdHIiLCJmb3JtYXQiLCJ0eG5zVXJsIiwidHhuc1Jlc3VsdCIsIkVycm9yIiwiQ3VycmVudEFjY291bnRMYXN0VHJhbnNhY3Rpb25zIiwiTXNnVGV4dCIsImNvbXBsZXRlZFR4bnMiLCJPcGVyYXRpb25FbnRyeSIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJyYXdGdXR1cmVUeG5zIiwiXyIsImdldCIsInBlbmRpbmdUeG5zIiwiUGVuZGluZyIsImFjY291bnREYXRhIiwiYWNjb3VudHMiLCJiYWxhbmNlIiwiQ3VycmVudEFjY291bnRJbmZvIiwiQWNjb3VudEJhbGFuY2UiLCJuYXZpZ2F0ZU9yRXJyb3JMYWJlbCIsImUiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwiQ2hhbmdlUGFzc3dvcmQiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsImlkIiwicGFzc3dvcmQiLCJudW0iLCJEaXNjb3VudFNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJjaGVja1JlYWRpbmVzcyIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwicG9zdEFjdGlvbiIsInBvc3NpYmxlUmVzdWx0cyIsImZldGNoRGF0YSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7OztBQUtBLE1BQU1BLFFBQVEsR0FBRyw4QkFBakI7QUFDQSxNQUFNQyxXQUFXLEdBQUcsVUFBcEI7O0FBNEJBLFNBQVNDLG1CQUFULENBQTZCQyxJQUE3QixFQUF5REMsU0FBekQsRUFBd0c7QUFDdEcsTUFBSSxDQUFDRCxJQUFMLEVBQVc7QUFDVCxXQUFPLEVBQVA7QUFDRDs7QUFDRCxTQUFPQSxJQUFJLENBQUNFLEdBQUwsQ0FBVUMsR0FBRCxJQUFTO0FBQ3ZCLFdBQU87QUFDTEMsTUFBQUEsSUFBSSxFQUFFQywrQkFBaUJDLE1BRGxCO0FBRUxDLE1BQUFBLFVBQVUsRUFBRUosR0FBRyxDQUFDSyxlQUZYO0FBR0xDLE1BQUFBLElBQUksRUFBRSxxQkFBT04sR0FBRyxDQUFDTyxhQUFYLEVBQTBCWixXQUExQixFQUF1Q2EsV0FBdkMsRUFIRDtBQUlMQyxNQUFBQSxhQUFhLEVBQUUscUJB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TFMsTUFBQUEsUUFBUSxFQUFHLEdBQUVyRixRQUFTLDBEQURqQjtBQUVMc0YsTUFBQUEsY0FBYyxFQUFFLFlBQVksaURBQXNCLEtBQUs3RCxJQUEzQixFQUFpQyxPQUFqQyxDQUZ2QjtBQUdMOEQsTUFBQUEsTUFBTSxFQUFFWixpQkFBaUIsQ0FBQ0MsV0FBRCxDQUhwQjtBQUlMWSxNQUFBQSxvQkFBb0IsRUFBRSxVQUpqQjtBQUtMQyxNQUFBQSxVQUFVLEVBQUUsWUFBWXRCLG9CQUFvQixDQUFDLEtBQUsxQyxJQUFOLENBTHZDO0FBTUxpRSxNQUFBQSxlQUFlLEVBQUVyQix1QkFBdUI7QUFObkMsS0FBUDtBQVFEOztBQUVELFFBQU1zQixTQUFOLEdBQWtCO0FBQ2hCLFdBQU9uRSxnQkFBZ0IsQ0FBQyxLQUFLQyxJQUFOLEVBQVksS0FBS0MsT0FBakIsQ0FBdkI7QUFDRDs7QUFka0Q7O2VBaUJ0Q3dELGUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIFBvc3NpYmxlTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCB9IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQge1xuICBTY2FwZXJPcHRpb25zLFxuICBTY3JhcGVyRXJyb3JUeXBlcywgU2NhcGVyU2NyYXBpbmdSZXN1bHQsIFNjcmFwZXJDcmVkZW50aWFscyxcbn0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuXG5jb25zdCBCQVNFX1VSTCA9ICdodHRwczovL3N0YXJ0LnRlbGViYW5rLmNvLmlsJztcbmNvbnN0IERBVEVfRk9STUFUID0gJ1lZWVlNTUREJztcblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIE9wZXJhdGlvbk51bWJlcjogbnVtYmVyO1xuICBPcGVyYXRpb25EYXRlOiBzdHJpbmc7XG4gIFZhbHVlRGF0ZTogc3RyaW5nO1xuICBPcGVyYXRpb25BbW91bnQ6IG51bWJlcjtcbiAgT3BlcmF0aW9uRGVzY3JpcHRpb25Ub0Rpc3BsYXk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEN1cnJlbnRBY2NvdW50SW5mbyB7XG4gIEFjY291bnRCYWxhbmNlOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBTY3JhcGVkQWNjb3VudERhdGEge1xuICBVc2VyQWNjb3VudHNEYXRhOiB7XG4gICAgRGVmYXVsdEFjY291bnROdW1iZXI6IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbkRhdGEge1xuICBFcnJvcj86IHsgTXNnVGV4dDogc3RyaW5nIH07XG4gIEN1cnJlbnRBY2NvdW50TGFzdFRyYW5zYWN0aW9ucz86IHtcbiAgICBPcGVyYXRpb25FbnRyeTogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gICAgQ3VycmVudEFjY291bnRJbmZvOiBDdXJyZW50QWNjb3VudEluZm87XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10sIHR4blN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcyk6IFRyYW5zYWN0aW9uW10ge1xuICBpZiAoIXR4bnMpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIHR4bnMubWFwKCh0eG4pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiB0eG4uT3BlcmF0aW9uTnVtYmVyLFxuICAgICAgZGF0ZTogbW9tZW50KHR4bi5PcGVyYXRpb25EYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IG1vbWVudCh0eG4uVmFsdWVEYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiB0eG4uT3BlcmF0aW9uQW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogJ0lMUycsXG4gICAgICBjaGFyZ2VkQW1vdW50OiB0eG4uT3BlcmF0aW9uQW1vdW50LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5PcGVyYXRpb25EZXNjcmlwdGlvblRvRGlzcGxheSxcbiAgICAgIHN0YXR1czogdHhuU3RhdHVzLFxuICAgIH07XG4gIH0pO1xufVxuXG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudERhdGEocGFnZTogUGFnZSwgb3B0aW9uczogU2NhcGVyT3B0aW9ucyk6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgY29uc3QgYXBpU2l0ZVVybCA9IGAke0JBU0VfVVJMfS9UaXRhbi9nYXRld2F5QVBJYDtcblxuICBjb25zdCBhY2NvdW50RGF0YVVybCA9IGAke2FwaVNpdGVVcmx9L3VzZXJBY2NvdW50c0RhdGFgO1xuICBjb25zdCBhY2NvdW50SW5mbyA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkQWNjb3VudERhdGE+KHBhZ2UsIGFjY291bnREYXRhVXJsKTtcblxuICBpZiAoIWFjY291bnRJbmZvKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmljLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnZmFpbGVkIHRvIGdldCBhY2NvdW50IGRhdGEnLFxuICAgIH07XG4gIH1cbiAgY29uc3QgYWNjb3VudE51bWJlciA9IGFjY291bnRJbmZvLlVzZXJBY2NvdW50c0RhdGEuRGVmYXVsdEFjY291bnROdW1iZXI7XG5cbiAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgY29uc3Qgc3RhcnREYXRlU3RyID0gc3RhcnRNb21lbnQuZm9ybWF0KERBVEVfRk9STUFUKTtcbiAgY29uc3QgdHhuc1VybCA9IGAke2FwaVNpdGVVcmx9L2xhc3RUcmFuc2FjdGlvbnMvJHthY2NvdW50TnVtYmVyfS9EYXRlP0lzQ2F0ZWdvcnlEZXNjQ29kZT1UcnVlJklzVHJhbnNhY3Rpb25EZXRhaWxzPVRydWUmSXNFdmVudE5hbWVzPVRydWUmSXNGdXR1cmVUcmFuc2FjdGlvbkZsYWc9VHJ1ZSZGcm9tRGF0ZT0ke3N0YXJ0RGF0ZVN0cn1gO1xuICBjb25zdCB0eG5zUmVzdWx0ID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbkRhdGE+KHBhZ2UsIHR4bnNVcmwpO1xuICBpZiAoIXR4bnNSZXN1bHQgfHwgdHhuc1Jlc3VsdC5FcnJvciB8fFxuICAgICF0eG5zUmVzdWx0LkN1cnJlbnRBY2NvdW50TGFzdFRyYW5zYWN0aW9ucykge1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpYyxcbiAgICAgIGVycm9yTWVzc2FnZTogdHhuc1Jlc3VsdCAmJiB0eG5zUmVzdWx0LkVycm9yID8gdHhuc1Jlc3VsdC5FcnJvci5Nc2dUZXh0IDogJ3Vua25vd24gZXJyb3InLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBjb21wbGV0ZWRUeG5zID0gY29udmVydFRyYW5zYWN0aW9ucyhcbiAgICB0eG5zUmVzdWx0LkN1cnJlbnRBY2NvdW50TGFzdFRyYW5zYWN0aW9ucy5PcGVyYXRpb25FbnRyeSxcbiAgICBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgKTtcbiAgY29uc3QgcmF3RnV0dXJlVHhucyA9IF8uZ2V0KHR4bnNSZXN1bHQsICdDdXJyZW50QWNjb3VudExhc3RUcmFuc2FjdGlvbnMuRnV0dXJlVHJhbnNhY3Rpb25zQmxvY2suRnV0dXJlVHJhbnNhY3Rpb25FbnRyeScpO1xuICBjb25zdCBwZW5kaW5nVHhucyA9IGNvbnZlcnRUcmFuc2FjdGlvbnMocmF3RnV0dXJlVHhucywgVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nKTtcblxuICBjb25zdCBhY2NvdW50RGF0YSA9IHtcbiAgICBzdWNjZXNzOiB0cnVlLFxuICAgIGFjY291bnRzOiBbe1xuICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgIGJhbGFuY2U6IHR4bnNSZXN1bHQuQ3VycmVudEFjY291bnRMYXN0VHJhbnNhY3Rpb25zLkN1cnJlbnRBY2NvdW50SW5mby5BY2NvdW50QmFsYW5jZSxcbiAgICAgIHR4bnM6IFsuLi5jb21wbGV0ZWRUeG5zLCAuLi5wZW5kaW5nVHhuc10sXG4gICAgfV0sXG4gIH07XG5cbiAgcmV0dXJuIGFjY291bnREYXRhO1xufVxuXG5hc3luYyBmdW5jdGlvbiBuYXZpZ2F0ZU9yRXJyb3JMYWJlbChwYWdlOiBQYWdlKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyNnZW5lcmFsLWVycm9yJywgZmFsc2UsIDEwMCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICBjb25zdCB1cmxzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHt9O1xuICB1cmxzW0xvZ2luUmVzdWx0cy5TdWNjZXNzXSA9IFtgJHtCQVNFX1VSTH0vYXBvbGxvL3JldGFpbC8jL01ZX0FDQ09VTlRfSE9NRVBBR0VgXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFtgJHtCQVNFX1VSTH0vYXBvbGxvL2NvcmUvdGVtcGxhdGVzL2xvYmJ5L21hc3RlclBhZ2UuaHRtbCMvTE9HSU5fUEFHRWBdO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF0gPSBbYCR7QkFTRV9VUkx9L2Fwb2xsby9jb3JlL3RlbXBsYXRlcy9sb2JieS9tYXN0ZXJQYWdlLmh0bWwjL1BXRF9SRU5FV2BdO1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjdHpJZCcsIHZhbHVlOiBjcmVkZW50aWFscy5pZCB9LFxuICAgIHsgc2VsZWN0b3I6ICcjdHpQYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICAgIHsgc2VsZWN0b3I6ICcjYWlkbnVtJywgdmFsdWU6IGNyZWRlbnRpYWxzLm51bSB9LFxuICBdO1xufVxuXG5jbGFzcyBEaXNjb3VudFNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IGAke0JBU0VfVVJMfS9hcG9sbG8vY29yZS90ZW1wbGF0ZXMvbG9iYnkvbWFzdGVyUGFnZS5odG1sIy9MT0dJTl9QQUdFYCxcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI3R6SWQnKSxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcuc2VuZEJ0bicsXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiBuYXZpZ2F0ZU9yRXJyb3JMYWJlbCh0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgcmV0dXJuIGZldGNoQWNjb3VudERhdGEodGhpcy5wYWdlLCB0aGlzLm9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IERpc2NvdW50U2NyYXBlcjtcbiJdfQ==
@@ -12,4 +12,5 @@ import BeinleumiScraper from './beinleumi';
12
12
  import MassadScraper from './massad';
13
13
  import YahavScraper from './yahav';
14
14
  import { ScaperOptions } from './base-scraper';
15
- export default function createScraper(options: ScaperOptions): HapoalimScraper | OtsarHahayalScraper | LeumiScraper | DiscountScraper | MaxScraper | VisaCalScraper | IsracardScraper | AmexScraper | MizrahiScraper | UnionBankScraper | BeinleumiScraper | MassadScraper | YahavScraper;
15
+ import BeyahadBishvilhaScraper from './beyahad-bishvilha';
16
+ export default function createScraper(options: ScaperOptions): HapoalimScraper | OtsarHahayalScraper | LeumiScraper | DiscountScraper | MaxScraper | VisaCalScraper | IsracardScraper | AmexScraper | MizrahiScraper | UnionBankScraper | BeinleumiScraper | MassadScraper | YahavScraper | BeyahadBishvilhaScraper;
@@ -33,6 +33,8 @@ var _yahav = _interopRequireDefault(require("./yahav"));
33
33
 
34
34
  var _definitions = require("../definitions");
35
35
 
36
+ var _beyahadBishvilha = _interopRequireDefault(require("./beyahad-bishvilha"));
37
+
36
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
39
 
38
40
  function createScraper(options) {
@@ -48,6 +50,9 @@ function createScraper(options) {
48
50
  case _definitions.CompanyTypes.leumi:
49
51
  return new _leumi.default(options);
50
52
 
53
+ case _definitions.CompanyTypes.beyahadBishvilha:
54
+ return new _beyahadBishvilha.default(options);
55
+
51
56
  case _definitions.CompanyTypes.mizrahi:
52
57
  return new _mizrahi.default(options);
53
58
 
@@ -90,4 +95,4 @@ function createScraper(options) {
90
95
  throw new Error(`unknown company id ${options.companyId}`);
91
96
  }
92
97
  }
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbImNyZWF0ZVNjcmFwZXIiLCJvcHRpb25zIiwiY29tcGFueUlkIiwiQ29tcGFueVR5cGVzIiwiaGFwb2FsaW0iLCJIYXBvYWxpbVNjcmFwZXIiLCJoYXBvYWxpbUJlT25saW5lIiwiY29uc29sZSIsIndhcm4iLCJsZXVtaSIsIkxldW1pU2NyYXBlciIsIm1penJhaGkiLCJNaXpyYWhpU2NyYXBlciIsImRpc2NvdW50IiwiRGlzY291bnRTY3JhcGVyIiwib3RzYXJIYWhheWFsIiwiT3RzYXJIYWhheWFsU2NyYXBlciIsInZpc2FDYWwiLCJWaXNhQ2FsU2NyYXBlciIsImxldW1pQ2FyZCIsIk1heFNjcmFwZXIiLCJtYXgiLCJpc3JhY2FyZCIsIklzcmFjYXJkU2NyYXBlciIsImFtZXgiLCJBbWV4U2NyYXBlciIsInVuaW9uIiwiVW5pb25CYW5rU2NyYXBlciIsImJlaW5sZXVtaSIsIkJlaW5sZXVtaVNjcmFwZXIiLCJtYXNzYWQiLCJNYXNzYWRTY3JhcGVyIiwieWFoYXYiLCJZYWhhdlNjcmFwZXIiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7O0FBRWUsU0FBU0EsYUFBVCxDQUF1QkMsT0FBdkIsRUFBK0M7QUFDNUQsVUFBUUEsT0FBTyxDQUFDQyxTQUFoQjtBQUNFLFNBQUtDLDBCQUFhQyxRQUFsQjtBQUNFLGFBQU8sSUFBSUMsaUJBQUosQ0FBb0JKLE9BQXBCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFHLGdCQUFsQjtBQUNFO0FBQ0FDLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLHdEQUFiO0FBQ0EsYUFBTyxJQUFJSCxpQkFBSixDQUFvQkosT0FBcEIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYU0sS0FBbEI7QUFDRSxhQUFPLElBQUlDLGNBQUosQ0FBaUJULE9BQWpCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFRLE9BQWxCO0FBQ0UsYUFBTyxJQUFJQyxnQkFBSixDQUFtQlgsT0FBbkIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYVUsUUFBbEI7QUFDRSxhQUFPLElBQUlDLGlCQUFKLENBQW9CYixPQUFwQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhWSxZQUFsQjtBQUNFLGFBQU8sSUFBSUMscUJBQUosQ0FBd0JmLE9BQXhCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFjLE9BQWxCO0FBQ0UsYUFBTyxJQUFJQyxnQkFBSixDQUFtQmpCLE9BQW5CLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFnQixTQUFsQjtBQUNFO0FBQ0FaLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLDRDQUFiO0FBQ0EsYUFBTyxJQUFJWSxZQUFKLENBQWVuQixPQUFmLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFrQixHQUFsQjtBQUNFLGFBQU8sSUFBSUQsWUFBSixDQUFlbkIsT0FBZixDQUFQOztBQUNGLFNBQUtFLDBCQUFhbUIsUUFBbEI7QUFDRSxhQUFPLElBQUlDLGlCQUFKLENBQW9CdEIsT0FBcEIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYXFCLElBQWxCO0FBQ0UsYUFBTyxJQUFJQyxhQUFKLENBQWdCeEIsT0FBaEIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYXVCLEtBQWxCO0FBQ0UsYUFBTyxJQUFJQyxrQkFBSixDQUFxQjFCLE9BQXJCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWF5QixTQUFsQjtBQUNFLGFBQU8sSUFBSUMsa0JBQUosQ0FBcUI1QixPQUFyQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhMkIsTUFBbEI7QUFDRSxhQUFPLElBQUlDLGVBQUosQ0FBa0I5QixPQUFsQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhNkIsS0FBbEI7QUFDRSxhQUFPLElBQUlDLGNBQUosQ0FBaUJoQyxPQUFqQixDQUFQOztBQUNGO0FBQ0UsWUFBTSxJQUFJaUMsS0FBSixDQUFXLHNCQUFxQmpDLE9BQU8sQ0FBQ0MsU0FBVSxFQUFsRCxDQUFOO0FBcENKO0FBc0NEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEhhcG9hbGltU2NyYXBlciBmcm9tICcuL2hhcG9hbGltJztcbmltcG9ydCBPdHNhckhhaGF5YWxTY3JhcGVyIGZyb20gJy4vb3RzYXItaGFoYXlhbCc7XG5pbXBvcnQgTGV1bWlTY3JhcGVyIGZyb20gJy4vbGV1bWknO1xuaW1wb3J0IERpc2NvdW50U2NyYXBlciBmcm9tICcuL2Rpc2NvdW50JztcbmltcG9ydCBNYXhTY3JhcGVyIGZyb20gJy4vbWF4JztcbmltcG9ydCBWaXNhQ2FsU2NyYXBlciBmcm9tICcuL3Zpc2EtY2FsJztcbmltcG9ydCBJc3JhY2FyZFNjcmFwZXIgZnJvbSAnLi9pc3JhY2FyZCc7XG5pbXBvcnQgQW1leFNjcmFwZXIgZnJvbSAnLi9hbWV4JztcbmltcG9ydCBNaXpyYWhpU2NyYXBlciBmcm9tICcuL21penJhaGknO1xuaW1wb3J0IFVuaW9uQmFua1NjcmFwZXIgZnJvbSAnLi91bmlvbi1iYW5rJztcbmltcG9ydCBCZWlubGV1bWlTY3JhcGVyIGZyb20gJy4vYmVpbmxldW1pJztcbmltcG9ydCBNYXNzYWRTY3JhcGVyIGZyb20gJy4vbWFzc2FkJztcbmltcG9ydCBZYWhhdlNjcmFwZXIgZnJvbSAnLi95YWhhdic7XG5pbXBvcnQgeyBTY2FwZXJPcHRpb25zIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgQ29tcGFueVR5cGVzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTY3JhcGVyKG9wdGlvbnM6IFNjYXBlck9wdGlvbnMpIHtcbiAgc3dpdGNoIChvcHRpb25zLmNvbXBhbnlJZCkge1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmhhcG9hbGltOlxuICAgICAgcmV0dXJuIG5ldyBIYXBvYWxpbVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuaGFwb2FsaW1CZU9ubGluZTpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXCJoYXBvYWxpbUJlT25saW5lIGlzIGRlcHJlY2F0ZWQsIHVzZSAnaGFwb2FsaW0nIGluc3RlYWRcIik7XG4gICAgICByZXR1cm4gbmV3IEhhcG9hbGltU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5sZXVtaTpcbiAgICAgIHJldHVybiBuZXcgTGV1bWlTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLm1penJhaGk6XG4gICAgICByZXR1cm4gbmV3IE1penJhaGlTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmRpc2NvdW50OlxuICAgICAgcmV0dXJuIG5ldyBEaXNjb3VudFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMub3RzYXJIYWhheWFsOlxuICAgICAgcmV0dXJuIG5ldyBPdHNhckhhaGF5YWxTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLnZpc2FDYWw6XG4gICAgICByZXR1cm4gbmV3IFZpc2FDYWxTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmxldW1pQ2FyZDpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXCJsZXVtaUNhcmQgaXMgZGVwcmVjYXRlZCwgdXNlICdtYXgnIGluc3RlYWRcIik7XG4gICAgICByZXR1cm4gbmV3IE1heFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubWF4OlxuICAgICAgcmV0dXJuIG5ldyBNYXhTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmlzcmFjYXJkOlxuICAgICAgcmV0dXJuIG5ldyBJc3JhY2FyZFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuYW1leDpcbiAgICAgIHJldHVybiBuZXcgQW1leFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMudW5pb246XG4gICAgICByZXR1cm4gbmV3IFVuaW9uQmFua1NjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuYmVpbmxldW1pOlxuICAgICAgcmV0dXJuIG5ldyBCZWlubGV1bWlTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLm1hc3NhZDpcbiAgICAgIHJldHVybiBuZXcgTWFzc2FkU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy55YWhhdjpcbiAgICAgIHJldHVybiBuZXcgWWFoYXZTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gY29tcGFueSBpZCAke29wdGlvbnMuY29tcGFueUlkfWApO1xuICB9XG59XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbImNyZWF0ZVNjcmFwZXIiLCJvcHRpb25zIiwiY29tcGFueUlkIiwiQ29tcGFueVR5cGVzIiwiaGFwb2FsaW0iLCJIYXBvYWxpbVNjcmFwZXIiLCJoYXBvYWxpbUJlT25saW5lIiwiY29uc29sZSIsIndhcm4iLCJsZXVtaSIsIkxldW1pU2NyYXBlciIsImJleWFoYWRCaXNodmlsaGEiLCJCZXlhaGFkQmlzaHZpbGhhU2NyYXBlciIsIm1penJhaGkiLCJNaXpyYWhpU2NyYXBlciIsImRpc2NvdW50IiwiRGlzY291bnRTY3JhcGVyIiwib3RzYXJIYWhheWFsIiwiT3RzYXJIYWhheWFsU2NyYXBlciIsInZpc2FDYWwiLCJWaXNhQ2FsU2NyYXBlciIsImxldW1pQ2FyZCIsIk1heFNjcmFwZXIiLCJtYXgiLCJpc3JhY2FyZCIsIklzcmFjYXJkU2NyYXBlciIsImFtZXgiLCJBbWV4U2NyYXBlciIsInVuaW9uIiwiVW5pb25CYW5rU2NyYXBlciIsImJlaW5sZXVtaSIsIkJlaW5sZXVtaVNjcmFwZXIiLCJtYXNzYWQiLCJNYXNzYWRTY3JhcGVyIiwieWFoYXYiLCJZYWhhdlNjcmFwZXIiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7O0FBRWUsU0FBU0EsYUFBVCxDQUF1QkMsT0FBdkIsRUFBK0M7QUFDNUQsVUFBUUEsT0FBTyxDQUFDQyxTQUFoQjtBQUNFLFNBQUtDLDBCQUFhQyxRQUFsQjtBQUNFLGFBQU8sSUFBSUMsaUJBQUosQ0FBb0JKLE9BQXBCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFHLGdCQUFsQjtBQUNFO0FBQ0FDLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLHdEQUFiO0FBQ0EsYUFBTyxJQUFJSCxpQkFBSixDQUFvQkosT0FBcEIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYU0sS0FBbEI7QUFDRSxhQUFPLElBQUlDLGNBQUosQ0FBaUJULE9BQWpCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFRLGdCQUFsQjtBQUNFLGFBQU8sSUFBSUMseUJBQUosQ0FBNEJYLE9BQTVCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFVLE9BQWxCO0FBQ0UsYUFBTyxJQUFJQyxnQkFBSixDQUFtQmIsT0FBbkIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYVksUUFBbEI7QUFDRSxhQUFPLElBQUlDLGlCQUFKLENBQW9CZixPQUFwQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhYyxZQUFsQjtBQUNFLGFBQU8sSUFBSUMscUJBQUosQ0FBd0JqQixPQUF4QixDQUFQOztBQUNGLFNBQUtFLDBCQUFhZ0IsT0FBbEI7QUFDRSxhQUFPLElBQUlDLGdCQUFKLENBQW1CbkIsT0FBbkIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYWtCLFNBQWxCO0FBQ0U7QUFDQWQsTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsNENBQWI7QUFDQSxhQUFPLElBQUljLFlBQUosQ0FBZXJCLE9BQWYsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYW9CLEdBQWxCO0FBQ0UsYUFBTyxJQUFJRCxZQUFKLENBQWVyQixPQUFmLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFxQixRQUFsQjtBQUNFLGFBQU8sSUFBSUMsaUJBQUosQ0FBb0J4QixPQUFwQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhdUIsSUFBbEI7QUFDRSxhQUFPLElBQUlDLGFBQUosQ0FBZ0IxQixPQUFoQixDQUFQOztBQUNGLFNBQUtFLDBCQUFheUIsS0FBbEI7QUFDRSxhQUFPLElBQUlDLGtCQUFKLENBQXFCNUIsT0FBckIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYTJCLFNBQWxCO0FBQ0UsYUFBTyxJQUFJQyxrQkFBSixDQUFxQjlCLE9BQXJCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWE2QixNQUFsQjtBQUNFLGFBQU8sSUFBSUMsZUFBSixDQUFrQmhDLE9BQWxCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWErQixLQUFsQjtBQUNFLGFBQU8sSUFBSUMsY0FBSixDQUFpQmxDLE9BQWpCLENBQVA7O0FBQ0Y7QUFDRSxZQUFNLElBQUltQyxLQUFKLENBQVcsc0JBQXFCbkMsT0FBTyxDQUFDQyxTQUFVLEVBQWxELENBQU47QUF0Q0o7QUF3Q0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSGFwb2FsaW1TY3JhcGVyIGZyb20gJy4vaGFwb2FsaW0nO1xuaW1wb3J0IE90c2FySGFoYXlhbFNjcmFwZXIgZnJvbSAnLi9vdHNhci1oYWhheWFsJztcbmltcG9ydCBMZXVtaVNjcmFwZXIgZnJvbSAnLi9sZXVtaSc7XG5pbXBvcnQgRGlzY291bnRTY3JhcGVyIGZyb20gJy4vZGlzY291bnQnO1xuaW1wb3J0IE1heFNjcmFwZXIgZnJvbSAnLi9tYXgnO1xuaW1wb3J0IFZpc2FDYWxTY3JhcGVyIGZyb20gJy4vdmlzYS1jYWwnO1xuaW1wb3J0IElzcmFjYXJkU2NyYXBlciBmcm9tICcuL2lzcmFjYXJkJztcbmltcG9ydCBBbWV4U2NyYXBlciBmcm9tICcuL2FtZXgnO1xuaW1wb3J0IE1penJhaGlTY3JhcGVyIGZyb20gJy4vbWl6cmFoaSc7XG5pbXBvcnQgVW5pb25CYW5rU2NyYXBlciBmcm9tICcuL3VuaW9uLWJhbmsnO1xuaW1wb3J0IEJlaW5sZXVtaVNjcmFwZXIgZnJvbSAnLi9iZWlubGV1bWknO1xuaW1wb3J0IE1hc3NhZFNjcmFwZXIgZnJvbSAnLi9tYXNzYWQnO1xuaW1wb3J0IFlhaGF2U2NyYXBlciBmcm9tICcuL3lhaGF2JztcbmltcG9ydCB7IFNjYXBlck9wdGlvbnMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5pbXBvcnQgeyBDb21wYW55VHlwZXMgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgQmV5YWhhZEJpc2h2aWxoYVNjcmFwZXIgZnJvbSAnLi9iZXlhaGFkLWJpc2h2aWxoYSc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNjcmFwZXIob3B0aW9uczogU2NhcGVyT3B0aW9ucykge1xuICBzd2l0Y2ggKG9wdGlvbnMuY29tcGFueUlkKSB7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuaGFwb2FsaW06XG4gICAgICByZXR1cm4gbmV3IEhhcG9hbGltU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5oYXBvYWxpbUJlT25saW5lOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcImhhcG9hbGltQmVPbmxpbmUgaXMgZGVwcmVjYXRlZCwgdXNlICdoYXBvYWxpbScgaW5zdGVhZFwiKTtcbiAgICAgIHJldHVybiBuZXcgSGFwb2FsaW1TY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmxldW1pOlxuICAgICAgcmV0dXJuIG5ldyBMZXVtaVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuYmV5YWhhZEJpc2h2aWxoYTpcbiAgICAgIHJldHVybiBuZXcgQmV5YWhhZEJpc2h2aWxoYVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubWl6cmFoaTpcbiAgICAgIHJldHVybiBuZXcgTWl6cmFoaVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuZGlzY291bnQ6XG4gICAgICByZXR1cm4gbmV3IERpc2NvdW50U2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5vdHNhckhhaGF5YWw6XG4gICAgICByZXR1cm4gbmV3IE90c2FySGFoYXlhbFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMudmlzYUNhbDpcbiAgICAgIHJldHVybiBuZXcgVmlzYUNhbFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubGV1bWlDYXJkOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcImxldW1pQ2FyZCBpcyBkZXByZWNhdGVkLCB1c2UgJ21heCcgaW5zdGVhZFwiKTtcbiAgICAgIHJldHVybiBuZXcgTWF4U2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5tYXg6XG4gICAgICByZXR1cm4gbmV3IE1heFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuaXNyYWNhcmQ6XG4gICAgICByZXR1cm4gbmV3IElzcmFjYXJkU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5hbWV4OlxuICAgICAgcmV0dXJuIG5ldyBBbWV4U2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy51bmlvbjpcbiAgICAgIHJldHVybiBuZXcgVW5pb25CYW5rU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5iZWlubGV1bWk6XG4gICAgICByZXR1cm4gbmV3IEJlaW5sZXVtaVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubWFzc2FkOlxuICAgICAgcmV0dXJuIG5ldyBNYXNzYWRTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLnlhaGF2OlxuICAgICAgcmV0dXJuIG5ldyBZYWhhdlNjcmFwZXIob3B0aW9ucyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBjb21wYW55IGlkICR7b3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cbn1cbiJdfQ==
@@ -162,7 +162,7 @@ async function fetchTransactions(page, startDate) {
162
162
 
163
163
  async function waitForPostLogin(page) {
164
164
  // TODO check for condition to provide new password
165
- await Promise.race([(0, _elementsInteractions.waitUntilElementFound)(page, 'div.leumi-container', true), (0, _elementsInteractions.waitUntilElementFound)(page, '#BodyContent_ctl00_loginErrMsg', true), (0, _elementsInteractions.waitUntilElementFound)(page, '.ErrMsg', true), (0, _elementsInteractions.waitUntilElementFound)(page, 'form[action="/changepassword"]', true)]);
165
+ await Promise.race([(0, _elementsInteractions.waitUntilElementFound)(page, 'a[title="דלג לחשבון"]', true), (0, _elementsInteractions.waitUntilElementFound)(page, 'div.leumi-container', true), (0, _elementsInteractions.waitUntilElementFound)(page, '#BodyContent_ctl00_loginErrMsg', true), (0, _elementsInteractions.waitUntilElementFound)(page, '.ErrMsg', true), (0, _elementsInteractions.waitUntilElementFound)(page, 'form[action="/changepassword"]', true)]);
166
166
  }
167
167
 
168
168
  class LeumiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
@@ -194,4 +194,4 @@ class LeumiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
194
194
 
195
195
  var _default = LeumiScraper;
196
196
  exports.default = _default;
197
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9sZXVtaS50cyJdLCJuYW1lcyI6WyJCQVNFX1VSTCIsIlRSQU5TQUNUSU9OU19VUkwiLCJGSUxURVJFRF9UUkFOU0FDVElPTlNfVVJMIiwiREFURV9GT1JNQVQiLCJBQ0NPVU5UX0JMT0NLRURfTVNHIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJ1cmxzIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIkFjY291bnRCbG9ja2VkIiwib3B0aW9ucyIsInBhZ2UiLCJFcnJvciIsImVycm9yTWVzc2FnZSIsImxhYmVsIiwiaW5uZXJUZXh0Iiwic3RhcnRzV2l0aCIsIkNoYW5nZVBhc3N3b3JkIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21QYWdlIiwidHJhbnNhY3Rpb25zIiwic3RhdHVzIiwibGVuZ3RoIiwicmVzdWx0IiwibWFwIiwicmF3VHJhbnNhY3Rpb24iLCJuZXdUcmFuc2FjdGlvbiIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwiZGF0ZSIsIkRhdGVVVEMiLCJwcm9jZXNzZWREYXRlIiwiZGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiIsImlkZW50aWZpZXIiLCJSZWZlcmVuY2VOdW1iZXJMb25nIiwibWVtbyIsIkFkZGl0aW9uYWxEYXRhIiwib3JpZ2luYWxDdXJyZW5jeSIsIlNIRUtFTF9DVVJSRU5DWSIsImNoYXJnZWRBbW91bnQiLCJBbW91bnQiLCJvcmlnaW5hbEFtb3VudCIsImhhbmdQcm9jZXNzIiwidGltZW91dCIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsImNsaWNrQnlYUGF0aCIsInhwYXRoIiwid2FpdEZvclhQYXRoIiwidmlzaWJsZSIsImVsbSIsIiR4IiwiY2xpY2siLCJyZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyIsInN0ciIsInJlcGxhY2UiLCJmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQiLCJzdGFydERhdGUiLCJhY2NvdW50SWQiLCJmb3JtYXQiLCJmb2N1cyIsImZpbmFsUmVzcG9uc2UiLCJ3YWl0Rm9yUmVzcG9uc2UiLCJyZXNwb25zZSIsInVybCIsInJlcXVlc3QiLCJtZXRob2QiLCJyZXNwb25zZUpzb24iLCJqc29uIiwiYWNjb3VudE51bWJlciIsIkpTT04iLCJwYXJzZSIsImpzb25SZXNwIiwicGVuZGluZ1RyYW5zYWN0aW9ucyIsIlRvZGF5VHJhbnNhY3Rpb25zSXRlbXMiLCJIaXN0b3J5VHJhbnNhY3Rpb25zSXRlbXMiLCJiYWxhbmNlIiwiQmFsYW5jZURpc3BsYXkiLCJwYXJzZUZsb2F0IiwidW5kZWZpbmVkIiwicGVuZGluZ1R4bnMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsImNvbXBsZXRlZFR4bnMiLCJDb21wbGV0ZWQiLCJ0eG5zIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJhY2NvdW50cyIsImFjY291bnRzSWRzIiwiZXZhbHVhdGUiLCJBcnJheSIsImZyb20iLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJlIiwidGV4dENvbnRlbnQiLCJwdXNoIiwid2FpdEZvclBvc3RMb2dpbiIsInJhY2UiLCJMZXVtaVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsImFkZCIsInRvRGF0ZSIsInN0YXJ0TW9tZW50IiwibW9tZW50IiwibWF4IiwibmF2aWdhdGVUbyIsInN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFNQTs7QUFDQTs7OztBQUtBLE1B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bkNZLFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgTG9naW5PcHRpb25zIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7XG4gIGZpbGxJbnB1dCxcbiAgY2xpY2tCdXR0b24sXG4gIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCxcbiAgcGFnZUV2YWxBbGwsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbnNBY2NvdW50LCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IFNjYXBlclNjcmFwaW5nUmVzdWx0LCBTY3JhcGVyQ3JlZGVudGlhbHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5cbmNvbnN0IEJBU0VfVVJMID0gJ2h0dHBzOi8vaGIyLmJhbmtsZXVtaS5jby5pbCc7XG5jb25zdCBUUkFOU0FDVElPTlNfVVJMID0gYCR7QkFTRV9VUkx9L2VCYW5raW5nL1NPL1NQQS5hc3B4Iy90cy9CdXNpbmVzc0FjY291bnRUcng/V2lkZ2V0UGFyPTFgO1xuY29uc3QgRklMVEVSRURfVFJBTlNBQ1RJT05TX1VSTCA9IGAke0JBU0VfVVJMfS9DaGFubmVsV0NGL0Jyb2tlci5zdmMvUHJvY2Vzc1JlcXVlc3Q/bW9kdWxlTmFtZT1VQ19TT18yN19HZXRCdXNpbmVzc0FjY291bnRUcnhgO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC5NTS5ZWSc7XG5jb25zdCBBQ0NPVU5UX0JMT0NLRURfTVNHID0gJ9eU157XoNeV15kg15fXodeV150nO1xuXG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCkge1xuICBjb25zdCB1cmxzOiBMb2dpbk9wdGlvbnNbJ3Bvc3NpYmxlUmVzdWx0cyddID0ge1xuICAgIFtMb2dpblJlc3VsdHMuU3VjY2Vzc106IFsvZWJhbmtpbmdcXC9TT1xcL1NQQS5hc3B4L2ldLFxuICAgIFtMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXTogWy9JbnRlcm5hbFNpdGVcXC9DdXN0b21VcGRhdGVcXC9sZXVtaVxcL0xvZ2luUGFnZS5BU1AvXSxcbiAgICBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogW1xuICAgICAgYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLnBhZ2UpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcGFnZSBvcHRpb25zIGFyZ3VtZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYXdhaXQgcGFnZUV2YWxBbGwob3B0aW9ucy5wYWdlLCAnLmVyckhlYWRlcicsIFtdLCAobGFiZWwpID0+IHtcbiAgICAgICAgICByZXR1cm4gKGxhYmVsWzBdIGFzIEhUTUxFbGVtZW50KT8uaW5uZXJUZXh0O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZXJyb3JNZXNzYWdlPy5zdGFydHNXaXRoKEFDQ09VTlRfQkxPQ0tFRF9NU0cpO1xuICAgICAgfSxcbiAgICBdLFxuICAgIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbJ2h0dHBzOi8vaGIyLmJhbmtsZXVtaS5jby5pbC9hdXRoZW50aWNhdGUnXSxcbiAgfTtcbiAgcmV0dXJuIHVybHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnI3d0cl91aWQnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3d0cl9wYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVBhZ2UodHJhbnNhY3Rpb25zOiBhbnlbXSwgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzKTogVHJhbnNhY3Rpb25bXSB7XG4gIGlmICh0cmFuc2FjdGlvbnMgPT09IG51bGwgfHwgdHJhbnNhY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb25bXSA9IHRyYW5zYWN0aW9ucy5tYXAoKHJhd1RyYW5zYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbmV3VHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uID0ge1xuICAgICAgc3RhdHVzLFxuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBkYXRlOiByYXdUcmFuc2FjdGlvbi5EYXRlVVRDLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogcmF3VHJhbnNhY3Rpb24uRGF0ZVVUQyxcbiAgICAgIGRlc2NyaXB0aW9uOiByYXdUcmFuc2FjdGlvbi5EZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIGlkZW50aWZpZXI6IHJhd1RyYW5zYWN0aW9uLlJlZmVyZW5jZU51bWJlckxvbmcsXG4gICAgICBtZW1vOiByYXdUcmFuc2FjdGlvbi5BZGRpdGlvbmFsRGF0YSB8fCAnJyxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IHJhd1RyYW5zYWN0aW9uLkFtb3VudCxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiByYXdUcmFuc2FjdGlvbi5BbW91bnQsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXdUcmFuc2FjdGlvbjtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gaGFuZ1Byb2Nlc3ModGltZW91dDogbnVtYmVyKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0sIHRpbWVvdXQpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2xpY2tCeVhQYXRoKHBhZ2U6IFBhZ2UsIHhwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcGFnZS53YWl0Rm9yWFBhdGgoeHBhdGgsIHsgdGltZW91dDogMzAwMDAsIHZpc2libGU6IHRydWUgfSk7XG4gIGNvbnN0IGVsbSA9IGF3YWl0IHBhZ2UuJHgoeHBhdGgpO1xuICBhd2FpdCBlbG1bMF0uY2xpY2soKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlU3BlY2lhbENoYXJhY3RlcnMoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL1teMC05Ly1dL2csICcnKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50KHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50LCBhY2NvdW50SWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25zQWNjb3VudD4ge1xuICAvLyBERVZFTE9QRVIgTk9USUNFIHRoZSBhY2NvdW50IG51bWJlciByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIgaXMgYmVpbmcgYWx0ZXJlZCBhdFxuICAvLyBydW50aW1lIGZvciBzb21lIGFjY291bnRzIGFmdGVyIDEtMiBzZWNvbmRzIHNvIHdlIG5lZWQgdG8gaGFuZyB0aGUgcHJvY2VzcyBmb3IgYSBzaG9ydCB3aGlsZS5cbiAgYXdhaXQgaGFuZ1Byb2Nlc3MoNDAwMCk7XG5cbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdidXR0b25bdGl0bGU9XCLXl9eZ16TXldepINee16rXp9eT151cIl0nLCB0cnVlKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJ2J1dHRvblt0aXRsZT1cIteX15nXpNeV16kg157Xqten15PXnVwiXScpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2JsbC1yYWRpby1idXR0b24nLCB0cnVlKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJ2JsbC1yYWRpby1idXR0b246bm90KFtjaGVja2VkXSknKTtcblxuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2lucHV0W2Zvcm1jb250cm9sbmFtZT1cInR4dElucHV0RnJvbVwiXScsIHRydWUpO1xuXG4gIGF3YWl0IGZpbGxJbnB1dChcbiAgICBwYWdlLFxuICAgICdpbnB1dFtmb3JtY29udHJvbG5hbWU9XCJ0eHRJbnB1dEZyb21cIl0nLFxuICAgIHN0YXJ0RGF0ZS5mb3JtYXQoREFURV9GT1JNQVQpLFxuICApO1xuXG4gIC8vIHdlIG11c3QgYmx1ciB0aGUgZnJvbSBjb250cm9sIG90aGVyd2lzZSB0aGUgc2VhcmNoIHdpbGwgdXNlIHRoZSBwcmV2aW91cyB2YWx1ZVxuICBhd2FpdCBwYWdlLmZvY3VzKFwiYnV0dG9uW2FyaWEtbGFiZWw9J9eh16DXnyddXCIpO1xuXG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIFwiYnV0dG9uW2FyaWEtbGFiZWw9J9eh16DXnyddXCIpO1xuICBjb25zdCBmaW5hbFJlc3BvbnNlID0gYXdhaXQgcGFnZS53YWl0Rm9yUmVzcG9uc2UoKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnVybCgpID09PSBGSUxURVJFRF9UUkFOU0FDVElPTlNfVVJMICYmXG4gICAgICByZXNwb25zZS5yZXF1ZXN0KCkubWV0aG9kKCkgPT09ICdQT1NUJztcbiAgfSk7XG5cbiAgY29uc3QgcmVzcG9uc2VKc29uOiBhbnkgPSBhd2FpdCBmaW5hbFJlc3BvbnNlLmpzb24oKTtcblxuICBjb25zdCBhY2NvdW50TnVtYmVyID0gYWNjb3VudElkLnJlcGxhY2UoJy8nLCAnXycpLnJlcGxhY2UoL1teXFxkLV9dL2csICcnKTtcblxuICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2UocmVzcG9uc2VKc29uLmpzb25SZXNwKTtcblxuICBjb25zdCBwZW5kaW5nVHJhbnNhY3Rpb25zID0gcmVzcG9uc2UuVG9kYXlUcmFuc2FjdGlvbnNJdGVtcztcbiAgY29uc3QgdHJhbnNhY3Rpb25zID0gcmVzcG9uc2UuSGlzdG9yeVRyYW5zYWN0aW9uc0l0ZW1zO1xuICBjb25zdCBiYWxhbmNlID0gcmVzcG9uc2UuQmFsYW5jZURpc3BsYXkgPyBwYXJzZUZsb2F0KHJlc3BvbnNlLkJhbGFuY2VEaXNwbGF5KSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBwZW5kaW5nVHhucyA9IGV4dHJhY3RUcmFuc2FjdGlvbnNGcm9tUGFnZShwZW5kaW5nVHJhbnNhY3Rpb25zLCBUcmFuc2FjdGlvblN0YXR1c2VzLlBlbmRpbmcpO1xuICBjb25zdCBjb21wbGV0ZWRUeG5zID0gZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21QYWdlKHRyYW5zYWN0aW9ucywgVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQpO1xuICBjb25zdCB0eG5zID0gW1xuICAgIC4uLnBlbmRpbmdUeG5zLFxuICAgIC4uLmNvbXBsZXRlZFR4bnMsXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyLFxuICAgIGJhbGFuY2UsXG4gICAgdHhucyxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnRbXT4ge1xuICBjb25zdCBhY2NvdW50czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgLy8gREVWRUxPUEVSIE5PVElDRSB0aGUgYWNjb3VudCBudW1iZXIgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyIGlzIGJlaW5nIGFsdGVyZWQgYXRcbiAgLy8gcnVudGltZSBmb3Igc29tZSBhY2NvdW50cyBhZnRlciAxLTIgc2Vjb25kcyBzbyB3ZSBuZWVkIHRvIGhhbmcgdGhlIHByb2Nlc3MgZm9yIGEgc2hvcnQgd2hpbGUuXG4gIGF3YWl0IGhhbmdQcm9jZXNzKDQwMDApO1xuXG4gIGNvbnN0IGFjY291bnRzSWRzID0gYXdhaXQgcGFnZS5ldmFsdWF0ZSgoKSA9PiBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2FwcC1tYXNrZWQtbnVtYmVyLWNvbWJvIHNwYW4uZGlzcGxheS1udW1iZXItbGknKSwgKGUpID0+IGUudGV4dENvbnRlbnQpKSBhcyBzdHJpbmdbXTtcblxuICAvLyBkdWUgdG8gYSBidWcsIHRoZSBhbHRlcmVkIHZhbHVlIG1pZ2h0IGluY2x1ZGUgdW5kZXNpcmVkIHNpZ25zIGxpa2UgJiB0aGF0IHNob3VsZCBiZSByZW1vdmVkXG5cbiAgaWYgKCFhY2NvdW50c0lkcy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBleHRyYWN0IG9yIHBhcnNlIHRoZSBhY2NvdW50IG51bWJlcicpO1xuICB9XG5cbiAgZm9yIChjb25zdCBhY2NvdW50SWQgb2YgYWNjb3VudHNJZHMpIHtcbiAgICBpZiAoYWNjb3VudHNJZHMubGVuZ3RoID4gMSkge1xuICAgICAgLy8gZ2V0IGxpc3Qgb2YgYWNjb3VudHMgYW5kIGNoZWNrIGFjY291bnRJZFxuICAgICAgYXdhaXQgY2xpY2tCeVhQYXRoKHBhZ2UsICcvLypbY29udGFpbnMoQGNsYXNzLCBcIm51bWJlclwiKSBhbmQgY29udGFpbnMoQGNsYXNzLCBcImNvbWJvLWlubmVyXCIpXScpO1xuICAgICAgYXdhaXQgY2xpY2tCeVhQYXRoKHBhZ2UsIGAvL3NwYW5bY29udGFpbnModGV4dCgpLCAnJHthY2NvdW50SWR9JyldYCk7XG4gICAgfVxuXG4gICAgYWNjb3VudHMucHVzaChhd2FpdCBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZSwgc3RhcnREYXRlLCByZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyhhY2NvdW50SWQpKSk7XG4gIH1cblxuICByZXR1cm4gYWNjb3VudHM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JQb3N0TG9naW4ocGFnZTogUGFnZSk6IFByb21pc2U8dm9pZD4ge1xuICAvLyBUT0RPIGNoZWNrIGZvciBjb25kaXRpb24gdG8gcHJvdmlkZSBuZXcgcGFzc3dvcmRcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2Rpdi5sZXVtaS1jb250YWluZXInLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyNCb2R5Q29udGVudF9jdGwwMF9sb2dpbkVyck1zZycsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnLkVyck1zZycsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnZm9ybVthY3Rpb249XCIvY2hhbmdlcGFzc3dvcmRcIl0nLCB0cnVlKSxcbiAgXSk7XG59XG5cbmNsYXNzIExldW1pU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IGAke0JBU0VfVVJMfWAsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiAnI2VudGVyJyxcbiAgICAgIHBvc3RBY3Rpb246IGFzeW5jICgpID0+IHdhaXRGb3JQb3N0TG9naW4odGhpcy5wYWdlKSxcbiAgICAgIHBvc3NpYmxlUmVzdWx0czogZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCk6IFByb21pc2U8U2NhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKS5hZGQoMSwgJ2RheScpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhUUkFOU0FDVElPTlNfVVJMKTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCBzdGFydE1vbWVudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGV1bWlTY3JhcGVyO1xuIl19
197
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9sZXVtaS50cyJdLCJuYW1lcyI6WyJCQVNFX1VSTCIsIlRSQU5TQUNUSU9OU19VUkwiLCJGSUxURVJFRF9UUkFOU0FDVElPTlNfVVJMIiwiREFURV9GT1JNQVQiLCJBQ0NPVU5UX0JMT0NLRURfTVNHIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJ1cmxzIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIkFjY291bnRCbG9ja2VkIiwib3B0aW9ucyIsInBhZ2UiLCJFcnJvciIsImVycm9yTWVzc2FnZSIsImxhYmVsIiwiaW5uZXJUZXh0Iiwic3RhcnRzV2l0aCIsIkNoYW5nZVBhc3N3b3JkIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21QYWdlIiwidHJhbnNhY3Rpb25zIiwic3RhdHVzIiwibGVuZ3RoIiwicmVzdWx0IiwibWFwIiwicmF3VHJhbnNhY3Rpb24iLCJuZXdUcmFuc2FjdGlvbiIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwiZGF0ZSIsIkRhdGVVVEMiLCJwcm9jZXNzZWREYXRlIiwiZGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiIsImlkZW50aWZpZXIiLCJSZWZlcmVuY2VOdW1iZXJMb25nIiwibWVtbyIsIkFkZGl0aW9uYWxEYXRhIiwib3JpZ2luYWxDdXJyZW5jeSIsIlNIRUtFTF9DVVJSRU5DWSIsImNoYXJnZWRBbW91bnQiLCJBbW91bnQiLCJvcmlnaW5hbEFtb3VudCIsImhhbmdQcm9jZXNzIiwidGltZW91dCIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsImNsaWNrQnlYUGF0aCIsInhwYXRoIiwid2FpdEZvclhQYXRoIiwidmlzaWJsZSIsImVsbSIsIiR4IiwiY2xpY2siLCJyZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyIsInN0ciIsInJlcGxhY2UiLCJmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQiLCJzdGFydERhdGUiLCJhY2NvdW50SWQiLCJmb3JtYXQiLCJmb2N1cyIsImZpbmFsUmVzcG9uc2UiLCJ3YWl0Rm9yUmVzcG9uc2UiLCJyZXNwb25zZSIsInVybCIsInJlcXVlc3QiLCJtZXRob2QiLCJyZXNwb25zZUpzb24iLCJqc29uIiwiYWNjb3VudE51bWJlciIsIkpTT04iLCJwYXJzZSIsImpzb25SZXNwIiwicGVuZGluZ1RyYW5zYWN0aW9ucyIsIlRvZGF5VHJhbnNhY3Rpb25zSXRlbXMiLCJIaXN0b3J5VHJhbnNhY3Rpb25zSXRlbXMiLCJiYWxhbmNlIiwiQmFsYW5jZURpc3BsYXkiLCJwYXJzZUZsb2F0IiwidW5kZWZpbmVkIiwicGVuZGluZ1R4bnMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsImNvbXBsZXRlZFR4bnMiLCJDb21wbGV0ZWQiLCJ0eG5zIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJhY2NvdW50cyIsImFjY291bnRzSWRzIiwiZXZhbHVhdGUiLCJBcnJheSIsImZyb20iLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJlIiwidGV4dENvbnRlbnQiLCJwdXNoIiwid2FpdEZvclBvc3RMb2dpbiIsInJhY2UiLCJMZXVtaVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsImFkZCIsInRvRGF0ZSIsInN0YXJ0TW9tZW50IiwibW9tZW50IiwibWF4IiwibmF2aWdhdGVUbyIsInN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFNQTs7QUFDQTs7OztBQUtBLE1B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RUFBRSxJQURKO0FBRUw3QixNQUFBQTtBQUZLLEtBQVA7QUFJRDs7QUF4QitDOztlQTJCbkNZLFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgTG9naW5PcHRpb25zIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7XG4gIGZpbGxJbnB1dCxcbiAgY2xpY2tCdXR0b24sXG4gIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCxcbiAgcGFnZUV2YWxBbGwsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbnNBY2NvdW50LCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IFNjYXBlclNjcmFwaW5nUmVzdWx0LCBTY3JhcGVyQ3JlZGVudGlhbHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5cbmNvbnN0IEJBU0VfVVJMID0gJ2h0dHBzOi8vaGIyLmJhbmtsZXVtaS5jby5pbCc7XG5jb25zdCBUUkFOU0FDVElPTlNfVVJMID0gYCR7QkFTRV9VUkx9L2VCYW5raW5nL1NPL1NQQS5hc3B4Iy90cy9CdXNpbmVzc0FjY291bnRUcng/V2lkZ2V0UGFyPTFgO1xuY29uc3QgRklMVEVSRURfVFJBTlNBQ1RJT05TX1VSTCA9IGAke0JBU0VfVVJMfS9DaGFubmVsV0NGL0Jyb2tlci5zdmMvUHJvY2Vzc1JlcXVlc3Q/bW9kdWxlTmFtZT1VQ19TT18yN19HZXRCdXNpbmVzc0FjY291bnRUcnhgO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC5NTS5ZWSc7XG5jb25zdCBBQ0NPVU5UX0JMT0NLRURfTVNHID0gJ9eU157XoNeV15kg15fXodeV150nO1xuXG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCkge1xuICBjb25zdCB1cmxzOiBMb2dpbk9wdGlvbnNbJ3Bvc3NpYmxlUmVzdWx0cyddID0ge1xuICAgIFtMb2dpblJlc3VsdHMuU3VjY2Vzc106IFsvZWJhbmtpbmdcXC9TT1xcL1NQQS5hc3B4L2ldLFxuICAgIFtMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXTogWy9JbnRlcm5hbFNpdGVcXC9DdXN0b21VcGRhdGVcXC9sZXVtaVxcL0xvZ2luUGFnZS5BU1AvXSxcbiAgICBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogW1xuICAgICAgYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLnBhZ2UpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcGFnZSBvcHRpb25zIGFyZ3VtZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYXdhaXQgcGFnZUV2YWxBbGwob3B0aW9ucy5wYWdlLCAnLmVyckhlYWRlcicsIFtdLCAobGFiZWwpID0+IHtcbiAgICAgICAgICByZXR1cm4gKGxhYmVsWzBdIGFzIEhUTUxFbGVtZW50KT8uaW5uZXJUZXh0O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZXJyb3JNZXNzYWdlPy5zdGFydHNXaXRoKEFDQ09VTlRfQkxPQ0tFRF9NU0cpO1xuICAgICAgfSxcbiAgICBdLFxuICAgIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbJ2h0dHBzOi8vaGIyLmJhbmtsZXVtaS5jby5pbC9hdXRoZW50aWNhdGUnXSxcbiAgfTtcbiAgcmV0dXJuIHVybHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnI3d0cl91aWQnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3d0cl9wYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVBhZ2UodHJhbnNhY3Rpb25zOiBhbnlbXSwgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzKTogVHJhbnNhY3Rpb25bXSB7XG4gIGlmICh0cmFuc2FjdGlvbnMgPT09IG51bGwgfHwgdHJhbnNhY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb25bXSA9IHRyYW5zYWN0aW9ucy5tYXAoKHJhd1RyYW5zYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbmV3VHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uID0ge1xuICAgICAgc3RhdHVzLFxuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBkYXRlOiByYXdUcmFuc2FjdGlvbi5EYXRlVVRDLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogcmF3VHJhbnNhY3Rpb24uRGF0ZVVUQyxcbiAgICAgIGRlc2NyaXB0aW9uOiByYXdUcmFuc2FjdGlvbi5EZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIGlkZW50aWZpZXI6IHJhd1RyYW5zYWN0aW9uLlJlZmVyZW5jZU51bWJlckxvbmcsXG4gICAgICBtZW1vOiByYXdUcmFuc2FjdGlvbi5BZGRpdGlvbmFsRGF0YSB8fCAnJyxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IHJhd1RyYW5zYWN0aW9uLkFtb3VudCxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiByYXdUcmFuc2FjdGlvbi5BbW91bnQsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXdUcmFuc2FjdGlvbjtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gaGFuZ1Byb2Nlc3ModGltZW91dDogbnVtYmVyKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0sIHRpbWVvdXQpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2xpY2tCeVhQYXRoKHBhZ2U6IFBhZ2UsIHhwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgcGFnZS53YWl0Rm9yWFBhdGgoeHBhdGgsIHsgdGltZW91dDogMzAwMDAsIHZpc2libGU6IHRydWUgfSk7XG4gIGNvbnN0IGVsbSA9IGF3YWl0IHBhZ2UuJHgoeHBhdGgpO1xuICBhd2FpdCBlbG1bMF0uY2xpY2soKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlU3BlY2lhbENoYXJhY3RlcnMoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL1teMC05Ly1dL2csICcnKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50KHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50LCBhY2NvdW50SWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25zQWNjb3VudD4ge1xuICAvLyBERVZFTE9QRVIgTk9USUNFIHRoZSBhY2NvdW50IG51bWJlciByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIgaXMgYmVpbmcgYWx0ZXJlZCBhdFxuICAvLyBydW50aW1lIGZvciBzb21lIGFjY291bnRzIGFmdGVyIDEtMiBzZWNvbmRzIHNvIHdlIG5lZWQgdG8gaGFuZyB0aGUgcHJvY2VzcyBmb3IgYSBzaG9ydCB3aGlsZS5cbiAgYXdhaXQgaGFuZ1Byb2Nlc3MoNDAwMCk7XG5cbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdidXR0b25bdGl0bGU9XCLXl9eZ16TXldepINee16rXp9eT151cIl0nLCB0cnVlKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJ2J1dHRvblt0aXRsZT1cIteX15nXpNeV16kg157Xqten15PXnVwiXScpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2JsbC1yYWRpby1idXR0b24nLCB0cnVlKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJ2JsbC1yYWRpby1idXR0b246bm90KFtjaGVja2VkXSknKTtcblxuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2lucHV0W2Zvcm1jb250cm9sbmFtZT1cInR4dElucHV0RnJvbVwiXScsIHRydWUpO1xuXG4gIGF3YWl0IGZpbGxJbnB1dChcbiAgICBwYWdlLFxuICAgICdpbnB1dFtmb3JtY29udHJvbG5hbWU9XCJ0eHRJbnB1dEZyb21cIl0nLFxuICAgIHN0YXJ0RGF0ZS5mb3JtYXQoREFURV9GT1JNQVQpLFxuICApO1xuXG4gIC8vIHdlIG11c3QgYmx1ciB0aGUgZnJvbSBjb250cm9sIG90aGVyd2lzZSB0aGUgc2VhcmNoIHdpbGwgdXNlIHRoZSBwcmV2aW91cyB2YWx1ZVxuICBhd2FpdCBwYWdlLmZvY3VzKFwiYnV0dG9uW2FyaWEtbGFiZWw9J9eh16DXnyddXCIpO1xuXG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIFwiYnV0dG9uW2FyaWEtbGFiZWw9J9eh16DXnyddXCIpO1xuICBjb25zdCBmaW5hbFJlc3BvbnNlID0gYXdhaXQgcGFnZS53YWl0Rm9yUmVzcG9uc2UoKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnVybCgpID09PSBGSUxURVJFRF9UUkFOU0FDVElPTlNfVVJMICYmXG4gICAgICByZXNwb25zZS5yZXF1ZXN0KCkubWV0aG9kKCkgPT09ICdQT1NUJztcbiAgfSk7XG5cbiAgY29uc3QgcmVzcG9uc2VKc29uOiBhbnkgPSBhd2FpdCBmaW5hbFJlc3BvbnNlLmpzb24oKTtcblxuICBjb25zdCBhY2NvdW50TnVtYmVyID0gYWNjb3VudElkLnJlcGxhY2UoJy8nLCAnXycpLnJlcGxhY2UoL1teXFxkLV9dL2csICcnKTtcblxuICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2UocmVzcG9uc2VKc29uLmpzb25SZXNwKTtcblxuICBjb25zdCBwZW5kaW5nVHJhbnNhY3Rpb25zID0gcmVzcG9uc2UuVG9kYXlUcmFuc2FjdGlvbnNJdGVtcztcbiAgY29uc3QgdHJhbnNhY3Rpb25zID0gcmVzcG9uc2UuSGlzdG9yeVRyYW5zYWN0aW9uc0l0ZW1zO1xuICBjb25zdCBiYWxhbmNlID0gcmVzcG9uc2UuQmFsYW5jZURpc3BsYXkgPyBwYXJzZUZsb2F0KHJlc3BvbnNlLkJhbGFuY2VEaXNwbGF5KSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBwZW5kaW5nVHhucyA9IGV4dHJhY3RUcmFuc2FjdGlvbnNGcm9tUGFnZShwZW5kaW5nVHJhbnNhY3Rpb25zLCBUcmFuc2FjdGlvblN0YXR1c2VzLlBlbmRpbmcpO1xuICBjb25zdCBjb21wbGV0ZWRUeG5zID0gZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21QYWdlKHRyYW5zYWN0aW9ucywgVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQpO1xuICBjb25zdCB0eG5zID0gW1xuICAgIC4uLnBlbmRpbmdUeG5zLFxuICAgIC4uLmNvbXBsZXRlZFR4bnMsXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyLFxuICAgIGJhbGFuY2UsXG4gICAgdHhucyxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnRbXT4ge1xuICBjb25zdCBhY2NvdW50czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgLy8gREVWRUxPUEVSIE5PVElDRSB0aGUgYWNjb3VudCBudW1iZXIgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyIGlzIGJlaW5nIGFsdGVyZWQgYXRcbiAgLy8gcnVudGltZSBmb3Igc29tZSBhY2NvdW50cyBhZnRlciAxLTIgc2Vjb25kcyBzbyB3ZSBuZWVkIHRvIGhhbmcgdGhlIHByb2Nlc3MgZm9yIGEgc2hvcnQgd2hpbGUuXG4gIGF3YWl0IGhhbmdQcm9jZXNzKDQwMDApO1xuXG4gIGNvbnN0IGFjY291bnRzSWRzID0gYXdhaXQgcGFnZS5ldmFsdWF0ZSgoKSA9PiBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2FwcC1tYXNrZWQtbnVtYmVyLWNvbWJvIHNwYW4uZGlzcGxheS1udW1iZXItbGknKSwgKGUpID0+IGUudGV4dENvbnRlbnQpKSBhcyBzdHJpbmdbXTtcblxuICAvLyBkdWUgdG8gYSBidWcsIHRoZSBhbHRlcmVkIHZhbHVlIG1pZ2h0IGluY2x1ZGUgdW5kZXNpcmVkIHNpZ25zIGxpa2UgJiB0aGF0IHNob3VsZCBiZSByZW1vdmVkXG5cbiAgaWYgKCFhY2NvdW50c0lkcy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBleHRyYWN0IG9yIHBhcnNlIHRoZSBhY2NvdW50IG51bWJlcicpO1xuICB9XG5cbiAgZm9yIChjb25zdCBhY2NvdW50SWQgb2YgYWNjb3VudHNJZHMpIHtcbiAgICBpZiAoYWNjb3VudHNJZHMubGVuZ3RoID4gMSkge1xuICAgICAgLy8gZ2V0IGxpc3Qgb2YgYWNjb3VudHMgYW5kIGNoZWNrIGFjY291bnRJZFxuICAgICAgYXdhaXQgY2xpY2tCeVhQYXRoKHBhZ2UsICcvLypbY29udGFpbnMoQGNsYXNzLCBcIm51bWJlclwiKSBhbmQgY29udGFpbnMoQGNsYXNzLCBcImNvbWJvLWlubmVyXCIpXScpO1xuICAgICAgYXdhaXQgY2xpY2tCeVhQYXRoKHBhZ2UsIGAvL3NwYW5bY29udGFpbnModGV4dCgpLCAnJHthY2NvdW50SWR9JyldYCk7XG4gICAgfVxuXG4gICAgYWNjb3VudHMucHVzaChhd2FpdCBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZSwgc3RhcnREYXRlLCByZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyhhY2NvdW50SWQpKSk7XG4gIH1cblxuICByZXR1cm4gYWNjb3VudHM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JQb3N0TG9naW4ocGFnZTogUGFnZSk6IFByb21pc2U8dm9pZD4ge1xuICAvLyBUT0RPIGNoZWNrIGZvciBjb25kaXRpb24gdG8gcHJvdmlkZSBuZXcgcGFzc3dvcmRcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2FbdGl0bGU9XCLXk9ec15Ig15zXl9ep15HXldefXCJdJywgdHJ1ZSksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdkaXYubGV1bWktY29udGFpbmVyJywgdHJ1ZSksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICcjQm9keUNvbnRlbnRfY3RsMDBfbG9naW5FcnJNc2cnLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJy5FcnJNc2cnLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2Zvcm1bYWN0aW9uPVwiL2NoYW5nZXBhc3N3b3JkXCJdJywgdHJ1ZSksXG4gIF0pO1xufVxuXG5jbGFzcyBMZXVtaVNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHtCQVNFX1VSTH1gLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJyNlbnRlcicsXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiB3YWl0Rm9yUG9zdExvZ2luKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG8oVFJBTlNBQ1RJT05TX1VSTCk7XG5cbiAgICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwgc3RhcnRNb21lbnQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBhY2NvdW50cyxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExldW1pU2NyYXBlcjtcbiJdfQ==
@@ -178,6 +178,7 @@ async function fetchTransactionsForAccount(page, startDate, accountNumber, scrap
178
178
  const buttonSelector = '[id$="FormAreaNoBorder_FormArea_ctlSubmitRequest"]';
179
179
  const nextPageSelector = '[id$="FormAreaNoBorder_FormArea_ctlGridPager_btnNext"]';
180
180
  const billingLabelSelector = '[id$=FormAreaNoBorder_FormArea_ctlMainToolBar_lblCaption]';
181
+ const secondaryBillingLabelSelector = '[id$=FormAreaNoBorder_FormArea_ctlSecondaryToolBar_lblCaption]';
181
182
  const noDataSelector = '[id$=FormAreaNoBorder_FormArea_msgboxErrorMessages]';
182
183
  debug('find the start date index in the dropbox');
183
184
  const options = await (0, _elementsInteractions.pageEvalAll)(page, '[id$="FormAreaNoBorder_FormArea_clndrDebitDateScope_OptionList"] li', [], items => {
@@ -207,13 +208,22 @@ async function fetchTransactionsForAccount(page, startDate, accountNumber, scrap
207
208
  if (pageHasNoTransactions) {
208
209
  debug('page has no transactions');
209
210
  } else {
210
- var _$exec;
211
+ var _settlementDateRegex$;
211
212
 
212
213
  debug('find the billing date');
213
- const billingDateLabel = await (0, _elementsInteractions.pageEval)(page, billingLabelSelector, '', element => {
214
+ let billingDateLabel = await (0, _elementsInteractions.pageEval)(page, billingLabelSelector, '', element => {
214
215
  return element.innerText;
215
216
  });
216
- const billingDate = (_$exec = /\d{1,2}[/]\d{2}[/]\d{2,4}/.exec(billingDateLabel)) === null || _$exec === void 0 ? void 0 : _$exec[0];
217
+ let settlementDateRegex = /\d{1,2}[/]\d{2}[/]\d{2,4}/;
218
+
219
+ if (billingDateLabel === '') {
220
+ billingDateLabel = await (0, _elementsInteractions.pageEval)(page, secondaryBillingLabelSelector, '', element => {
221
+ return element.innerText;
222
+ });
223
+ settlementDateRegex = /\d{1,2}[/]\d{2,4}/;
224
+ }
225
+
226
+ const billingDate = (_settlementDateRegex$ = settlementDateRegex.exec(billingDateLabel)) === null || _settlementDateRegex$ === void 0 ? void 0 : _settlementDateRegex$[0];
217
227
 
218
228
  if (!billingDate) {
219
229
  throw new Error('failed to fetch process date');
@@ -279,9 +289,9 @@ async function fetchTransactionsForAccount(page, startDate, accountNumber, scrap
279
289
 
280
290
  async function getAccountNumbers(page) {
281
291
  return (0, _elementsInteractions.pageEvalAll)(page, '[id$=lnkItem]', [], elements => elements.map(e => e.text)).then(res => res.map(text => {
282
- var _$exec$, _$exec2;
292
+ var _$exec$, _$exec;
283
293
 
284
- return (_$exec$ = (_$exec2 = /\d+$/.exec(text.trim())) === null || _$exec2 === void 0 ? void 0 : _$exec2[0]) !== null && _$exec$ !== void 0 ? _$exec$ : '';
294
+ return (_$exec$ = (_$exec = /\d+$/.exec(text.trim())) === null || _$exec === void 0 ? void 0 : _$exec[0]) !== null && _$exec$ !== void 0 ? _$exec$ : '';
285
295
  }));
286
296
  }
287
297
 
@@ -366,4 +376,4 @@ class VisaCalScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
366
376
 
367
377
  var _default = VisaCalScraper;
368
378
  exports.default = _default;
369
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy92aXNhLWNhbC50cyJdLCJuYW1lcyI6WyJMT0dJTl9VUkwiLCJUUkFOU0FDVElPTlNfVVJMIiwiTE9OR19EQVRFX0ZPUk1BVCIsIkRBVEVfRk9STUFUIiwiSW52YWxpZFBhc3N3b3JkTWVzc2FnZSIsImRlYnVnIiwiZ2V0TG9naW5GcmFtZSIsInBhZ2UiLCJmcmFtZSIsImZyYW1lcyIsImZpbmQiLCJmIiwidXJsIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IiLCJlcnJvckZvdW5kIiwiZXJyb3JNZXNzYWdlIiwiaXRlbSIsImlubmVyVGV4dCIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJvcHRpb25zIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNsbiIsInJlcGxhY2UiLCJjdXJyZW5jeSIsImFtb3VudCIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJzZUZsb2F0IiwiU0hFS0VMX0NVUlJFTkNZIiwiRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCIsIkRPTExBUl9DVVJSRU5DWSIsIkVVUk9fQ1VSUkVOQ1lfU1lNQk9MIiwiRVVST19DVVJSRU5DWSIsInBhcnRzIiwic3BsaXQiLCJnZXRUcmFuc2FjdGlvbkluc3RhbGxtZW50cyIsIm1lbW8iLCJwYXJzZWRNZW1vIiwiZXhlYyIsImxlbmd0aCIsIm51bWJlciIsInBhcnNlSW50IiwidG90YWwiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsIm1hcCIsInR4biIsIm9yaWdpbmFsQW1vdW50VHVwbGUiLCJvcmlnaW5hbEFtb3VudCIsImNoYXJnZWRBbW91bnRUdXBsZSIsImNoYXJnZWRBbW91bnQiLCJpbnN0YWxsbWVudHMiLCJ0eG5EYXRlIiwiZGF0ZSIsInByb2Nlc3NlZERhdGVGb3JtYXQiLCJwcm9jZXNzZWREYXRlIiwidHhuUHJvY2Vzc2VkRGF0ZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiSW5zdGFsbG1lbnRzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImFkZCIsInRvSVNPU3RyaW5nIiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50Iiwic3RhcnREYXRlIiwiYWNjb3VudE51bWJlciIsInNjcmFwZXJPcHRpb25zIiwic3RhcnREYXRlVmFsdWUiLCJmb3JtYXQiLCJkYXRlU2VsZWN0b3IiLCJkYXRlSGlkZGVuRmllbGRTZWxlY3RvciIsImJ1dHRvblNlbGVjdG9yIiwibmV4dFBhZ2VTZWxlY3RvciIsImJpbGxpbmdMYWJlbFNlbGVjdG9yIiwibm9EYXRhU2VsZWN0b3IiLCJpdGVtcyIsImVsIiwic3RhcnREYXRlSW5kZXgiLCJmaW5kSW5kZXgiLCJvcHRpb24iLCJhY2NvdW50VHJhbnNhY3Rpb25zIiwiY3VycmVudERhdGVJbmRleCIsIndhaXRGb3IiLCJhbGwiLCJ3YWl0Rm9yTmF2aWdhdGlvbiIsIndhaXRVbnRpbCIsInBhZ2VIYXNOb1RyYW5zYWN0aW9ucyIsImVsZW1lbnQiLCJzaXRlVmFsdWUiLCJiaWxsaW5nRGF0ZUxhYmVsIiwiYmlsbGluZ0RhdGUiLCJoYXNOZXh0UGFnZSIsInJhd1RyYW5zYWN0aW9ucyIsImNvbHVtbnMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInB1c2giLCJmaWx0ZXIiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwic3Vic3RyaW5nIiwiZ2V0QWNjb3VudE51bWJlcnMiLCJlbGVtZW50cyIsImUiLCJ0ZXh0IiwidGhlbiIsInJlcyIsInRyaW0iLCJzZXRBY2NvdW50IiwiYWNjb3VudCIsImVsZW0iLCJhIiwiY2xpY2siLCJmZXRjaFRyYW5zYWN0aW9ucyIsImFjY291bnROdW1iZXJzIiwiYWNjb3VudHMiLCJWaXNhQ2FsU2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwicG9zc2libGVSZXN1bHRzIiwiY2hlY2tSZWFkaW5lc3MiLCJwcmVBY3Rpb24iLCJvcGVuTG9naW5Qb3B1cCIsInVzZXJBZ2VudCIsImZldGNoRGF0YSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0IiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJuYXZpZ2F0ZVRvIiwidW5kZWZpbmVkIiwic3VjY2VzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFHQTs7QUFRQTs7QUFHQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsTUFBTUEsU0FBUyxHQUFHLCtCQUFsQjtBQUNBLE1BQU1DLGdCQUFnQixHQUFHLHVGQUF6QjtBQUNBLE1BQU1DLGdCQUFnQixHQUFHLFlBQXpCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLFVBQXBCO0FBQ0EsTUFBTUMsc0JBQXNCLEdBQUcsbUNBQS9CO0FBRUEsTUFBTUMsS0FBSyxHQUFHLHFCQUFTLFVBQVQsQ0FBZDs7QUFXQSxlQUFlQyxhQUFmLENBQTZCQyxJQUE3QixFQUF5QztBQUN2QyxNQUFJQyxLQUFtQixHQUFHLElBQTFCO0FBQ0FILEVBQUFBLEtBQUssQ0FBQyw4QkFBRCxDQUFMO0FBQ0EsUUFBTSx3QkFBVSxNQUFNO0FBQ3BCRyxJQUFBQSxLQUFLLEdBQUdELElBQUksQ0FDVEUsTUFESyxHQUVMQyxJQUZLLENBRUNDLENBQUQsSUFBT0EsQ0FBQyxDQUFDQyxHQUFGLEdBQVFDLFFBQVIsQ0FBaUIsb0JBQWpCLENBRlAsS0FFa0QsSUFGMUQ7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ZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZyYW1lLCBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luT3B0aW9ucywgTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7XG4gIGNsaWNrQnV0dG9uLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgcGFnZUV2YWwsIHBhZ2VFdmFsQWxsLCBzZXRWYWx1ZSwgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxufSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25JbnN0YWxsbWVudHMsXG4gIFRyYW5zYWN0aW9uc0FjY291bnQsXG4gIFRyYW5zYWN0aW9uU3RhdHVzZXMsXG4gIFRyYW5zYWN0aW9uVHlwZXMsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBTY2FwZXJPcHRpb25zLCBTY2FwZXJTY3JhcGluZ1Jlc3VsdCwgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHtcbiAgRE9MTEFSX0NVUlJFTkNZLCBET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCBFVVJPX0NVUlJFTkNZLCBFVVJPX0NVUlJFTkNZX1NZTUJPTCwgU0hFS0VMX0NVUlJFTkNZLCBTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgd2FpdFVudGlsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IGZpbHRlck9sZFRyYW5zYWN0aW9ucyB9IGZyb20gJy4uL2hlbHBlcnMvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5cbmNvbnN0IExPR0lOX1VSTCA9ICdodHRwczovL3d3dy5jYWwtb25saW5lLmNvLmlsLyc7XG5jb25zdCBUUkFOU0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vc2VydmljZXMuY2FsLW9ubGluZS5jby5pbC9DYXJkLUhvbGRlcnMvU2NyZWVucy9UcmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25zLmFzcHgnO1xuY29uc3QgTE9OR19EQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZJztcbmNvbnN0IEludmFsaWRQYXNzd29yZE1lc3NhZ2UgPSAn16nXnSDXlNee16nXqtee16kg15DXlSDXlNeh15nXodee15Qg16nXlNeV15bXoNeVINep15LXldeZ15nXnSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ3Zpc2EtY2FsJyk7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBkYXRlOiBzdHJpbmc7XG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IHN0cmluZztcbiAgY2hhcmdlZEFtb3VudDogc3RyaW5nO1xuICBtZW1vOiBzdHJpbmc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldExvZ2luRnJhbWUocGFnZTogUGFnZSkge1xuICBsZXQgZnJhbWU6IEZyYW1lIHwgbnVsbCA9IG51bGw7XG4gIGRlYnVnKCd3YWl0IHVudGlsIGxvZ2luIGZyYW1lIGZvdW5kJyk7XG4gIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiB7XG4gICAgZnJhbWUgPSBwYWdlXG4gICAgICAuZnJhbWVzKClcbiAgICAgIC5maW5kKChmKSA9PiBmLnVybCgpLmluY2x1ZGVzKCdjb25uZWN0LmNhbC1vbmxpbmUnKSkgfHwgbnVsbDtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCEhZnJhbWUpO1xuICB9LCAnd2FpdCBmb3IgaWZyYW1lIHdpdGggbG9naW4gZm9ybScsIDEwMDAwLCAxMDAwKTtcblxuICBpZiAoIWZyYW1lKSB7XG4gICAgZGVidWcoJ2ZhaWxlZCB0byBmaW5kIGxvZ2luIGZyYW1lIGZvciAxMCBzZWNvbmRzJyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdmYWlsZWQgdG8gZXh0cmFjdCBsb2dpbiBpZnJhbWUnKTtcbiAgfVxuXG4gIHJldHVybiBmcmFtZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IocGFnZTogUGFnZSkge1xuICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUocGFnZSk7XG4gIGNvbnN0IGVycm9yRm91bmQgPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShmcmFtZSwgJ2Rpdi5nZW5lcmFsLWVycm9yID4gZGl2Jyk7XG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yRm91bmQgPyBhd2FpdCBwYWdlRXZhbChmcmFtZSwgJ2Rpdi5nZW5lcmFsLWVycm9yID4gZGl2JywgJycsIChpdGVtKSA9PiB7XG4gICAgcmV0dXJuIChpdGVtIGFzIEhUTUxEaXZFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pIDogJyc7XG4gIHJldHVybiBlcnJvck1lc3NhZ2UgPT09IEludmFsaWRQYXNzd29yZE1lc3NhZ2U7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCkge1xuICBkZWJ1ZygncmV0dXJuIHBvc3NpYmxlIGxvZ2luIHJlc3VsdHMnKTtcbiAgY29uc3QgdXJsczogTG9naW5PcHRpb25zWydwb3NzaWJsZVJlc3VsdHMnXSA9IHtcbiAgICBbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdOiBbL0FjY291bnRNYW5hZ2VtZW50L2ldLFxuICAgIFtMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXTogW2FzeW5jIChvcHRpb25zPzogeyBwYWdlPzogUGFnZX0pID0+IHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBvcHRpb25zPy5wYWdlO1xuICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlKTtcbiAgICB9XSxcbiAgICAvLyBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogW10sIC8vIFRPRE8gYWRkIHdoZW4gcmVhY2hpbmcgdGhpcyBzY2VuYXJpb1xuICAgIC8vIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbXSwgLy8gVE9ETyBhZGQgd2hlbiByZWFjaGluZyB0aGlzIHNjZW5hcmlvXG4gIH07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIGRlYnVnKCdjcmVhdGUgbG9naW4gZmllbGRzIGZvciB1c2VybmFtZSBhbmQgcGFzc3dvcmQnKTtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnW2Zvcm1jb250cm9sbmFtZT1cInVzZXJOYW1lXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogJ1tmb3JtY29udHJvbG5hbWU9XCJwYXNzd29yZFwiXScsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ2xuID0gYW1vdW50U3RyLnJlcGxhY2UoJywnLCAnJyk7XG4gIGxldCBjdXJyZW5jeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGxldCBhbW91bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gLXBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IFNIRUtFTF9DVVJSRU5DWTtcbiAgfSBlbHNlIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSAtcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gRE9MTEFSX0NVUlJFTkNZO1xuICB9IGVsc2UgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhFVVJPX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSAtcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShFVVJPX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IEVVUk9fQ1VSUkVOQ1k7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcGFydHMgPSBhbW91bnRTdHJDbG4uc3BsaXQoJyAnKTtcbiAgICBbY3VycmVuY3ldID0gcGFydHM7XG4gICAgYW1vdW50ID0gLXBhcnNlRmxvYXQocGFydHNbMV0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhbW91bnQsXG4gICAgY3VycmVuY3ksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzKG1lbW86IHN0cmluZyk6IFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzIHwgbnVsbCB7XG4gIGNvbnN0IHBhcnNlZE1lbW8gPSAoL9eq16nXnNeV150gKFxcZCspINee16rXldeaIChcXGQrKS8pLmV4ZWMobWVtbyB8fCAnJyk7XG5cbiAgaWYgKCFwYXJzZWRNZW1vIHx8IHBhcnNlZE1lbW8ubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG51bWJlcjogcGFyc2VJbnQocGFyc2VkTWVtb1sxXSwgMTApLFxuICAgIHRvdGFsOiBwYXJzZUludChwYXJzZWRNZW1vWzJdLCAxMCksXG4gIH07XG59XG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIGRlYnVnKGBjb252ZXJ0ICR7dHhucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgdG8gb2ZmaWNpYWwgVHJhbnNhY3Rpb24gc3RydWN0dXJlYCk7XG4gIHJldHVybiB0eG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWxBbW91bnRUdXBsZSA9IGdldEFtb3VudERhdGEodHhuLm9yaWdpbmFsQW1vdW50IHx8ICcnKTtcbiAgICBjb25zdCBjaGFyZ2VkQW1vdW50VHVwbGUgPSBnZXRBbW91bnREYXRhKHR4bi5jaGFyZ2VkQW1vdW50IHx8ICcnKTtcblxuICAgIGNvbnN0IGluc3RhbGxtZW50cyA9IGdldFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzKHR4bi5tZW1vKTtcbiAgICBjb25zdCB0eG5EYXRlID0gbW9tZW50KHR4bi5kYXRlLCBEQVRFX0ZPUk1BVCk7XG4gICAgY29uc3QgcHJvY2Vzc2VkRGF0ZUZvcm1hdCA9XG4gICAgICB0eG4ucHJvY2Vzc2VkRGF0ZS5sZW5ndGggPT09IDggP1xuICAgICAgICBEQVRFX0ZPUk1BVCA6XG4gICAgICAgIHR4bi5wcm9jZXNzZWREYXRlLmxlbmd0aCA9PT0gOSB8fCB0eG4ucHJvY2Vzc2VkRGF0ZS5sZW5ndGggPT09IDEwID9cbiAgICAgICAgICBMT05HX0RBVEVfRk9STUFUIDpcbiAgICAgICAgICBudWxsO1xuICAgIGlmICghcHJvY2Vzc2VkRGF0ZUZvcm1hdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHByb2Nlc3NlZCBkYXRlJyk7XG4gICAgfVxuICAgIGNvbnN0IHR4blByb2Nlc3NlZERhdGUgPSBtb21lbnQodHhuLnByb2Nlc3NlZERhdGUsIHByb2Nlc3NlZERhdGVGb3JtYXQpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIHR5cGU6IGluc3RhbGxtZW50cyA/IFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzIDogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgZGF0ZTogaW5zdGFsbG1lbnRzID8gdHhuRGF0ZS5hZGQoaW5zdGFsbG1lbnRzLm51bWJlciAtIDEsICdtb250aCcpLnRvSVNPU3RyaW5nKCkgOiB0eG5EYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5Qcm9jZXNzZWREYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBvcmlnaW5hbEFtb3VudDogb3JpZ2luYWxBbW91bnRUdXBsZS5hbW91bnQsXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBvcmlnaW5hbEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgY2hhcmdlZEFtb3VudDogY2hhcmdlZEFtb3VudFR1cGxlLmFtb3VudCxcbiAgICAgIGNoYXJnZWRDdXJyZW5jeTogY2hhcmdlZEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIG1lbW86IHR4bi5tZW1vIHx8ICcnLFxuICAgIH07XG5cbiAgICBpZiAoaW5zdGFsbG1lbnRzKSB7XG4gICAgICByZXN1bHQuaW5zdGFsbG1lbnRzID0gaW5zdGFsbG1lbnRzO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQsIGFjY291bnROdW1iZXI6IHN0cmluZywgc2NyYXBlck9wdGlvbnM6IFNjYXBlck9wdGlvbnMpOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnQ+IHtcbiAgY29uc3Qgc3RhcnREYXRlVmFsdWUgPSBzdGFydERhdGUuZm9ybWF0KCdNTS9ZWVlZJyk7XG4gIGNvbnN0IGRhdGVTZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX1RleHRCb3hcIl0nO1xuICBjb25zdCBkYXRlSGlkZGVuRmllbGRTZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX0hpZGRlbkZpZWxkXCJdJztcbiAgY29uc3QgYnV0dG9uU2VsZWN0b3IgPSAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsU3VibWl0UmVxdWVzdFwiXSc7XG4gIGNvbnN0IG5leHRQYWdlU2VsZWN0b3IgPSAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsR3JpZFBhZ2VyX2J0bk5leHRcIl0nO1xuICBjb25zdCBiaWxsaW5nTGFiZWxTZWxlY3RvciA9ICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsTWFpblRvb2xCYXJfbGJsQ2FwdGlvbl0nO1xuICBjb25zdCBub0RhdGFTZWxlY3RvciA9ICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfbXNnYm94RXJyb3JNZXNzYWdlc10nO1xuXG4gIGRlYnVnKCdmaW5kIHRoZSBzdGFydCBkYXRlIGluZGV4IGluIHRoZSBkcm9wYm94Jyk7XG4gIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBwYWdlRXZhbEFsbChwYWdlLCAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY2xuZHJEZWJpdERhdGVTY29wZV9PcHRpb25MaXN0XCJdIGxpJywgW10sIChpdGVtcykgPT4ge1xuICAgIHJldHVybiBpdGVtcy5tYXAoKGVsOiBhbnkpID0+IGVsLmlubmVyVGV4dCk7XG4gIH0pO1xuICBjb25zdCBzdGFydERhdGVJbmRleCA9IG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbiA9PT0gc3RhcnREYXRlVmFsdWUpO1xuXG4gIGRlYnVnKGBzY3JhcGUgJHtvcHRpb25zLmxlbmd0aCAtIHN0YXJ0RGF0ZUluZGV4fSBiaWxsaW5nIGN5Y2xlc2ApO1xuICBjb25zdCBhY2NvdW50VHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdID0gW107XG4gIGZvciAobGV0IGN1cnJlbnREYXRlSW5kZXggPSBzdGFydERhdGVJbmRleDsgY3VycmVudERhdGVJbmRleCA8IG9wdGlvbnMubGVuZ3RoOyBjdXJyZW50RGF0ZUluZGV4ICs9IDEpIHtcbiAgICBkZWJ1Zygnd2FpdCBmb3IgZGF0ZSBzZWxlY3RvciB0byBiZSBmb3VuZCcpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBkYXRlU2VsZWN0b3IsIHRydWUpO1xuICAgIGRlYnVnKGBzZXQgaGlkZGVuIHZhbHVlIG9mIHRoZSBkYXRlIHNlbGVjdG9yIHRvIGJlIHRoZSBpbmRleCAke2N1cnJlbnREYXRlSW5kZXh9YCk7XG4gICAgYXdhaXQgc2V0VmFsdWUocGFnZSwgZGF0ZUhpZGRlbkZpZWxkU2VsZWN0b3IsIGAke2N1cnJlbnREYXRlSW5kZXh9YCk7XG4gICAgZGVidWcoJ3dhaXQgYSBzZWNvbmQgdG8gd29ya2Fyb3VuZCBuYXZpZ2F0aW9uIGlzc3VlIGluIGhlYWRsZXNzIGJyb3dzZXIgbW9kZScpO1xuICAgIGF3YWl0IHBhZ2Uud2FpdEZvcigxMDAwKTtcbiAgICBkZWJ1ZygnY2xpY2sgb24gdGhlIGZpbHRlciBzdWJtaXQgYnV0dG9uIGFuZCB3YWl0IGZvciBuYXZpZ2F0aW9uJyk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgcGFnZS53YWl0Rm9yTmF2aWdhdGlvbih7IHdhaXRVbnRpbDogJ2RvbWNvbnRlbnRsb2FkZWQnIH0pLFxuICAgICAgY2xpY2tCdXR0b24ocGFnZSwgYnV0dG9uU2VsZWN0b3IpLFxuICAgIF0pO1xuICAgIGRlYnVnKCdjaGVjayBpZiBtb250aCBoYXMgbm8gdHJhbnNhY3Rpb25zJyk7XG4gICAgY29uc3QgcGFnZUhhc05vVHJhbnNhY3Rpb25zID0gYXdhaXQgcGFnZUV2YWwocGFnZSwgbm9EYXRhU2VsZWN0b3IsIGZhbHNlLCAoKGVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IHNpdGVWYWx1ZSA9ICgoZWxlbWVudCBhcyBIVE1MU3BhbkVsZW1lbnQpLmlubmVyVGV4dCB8fCAnJykucmVwbGFjZSgvW14g15At16pdL2csICcnKTtcbiAgICAgIHJldHVybiBzaXRlVmFsdWUgPT09ICfXnNeQINeg157XpteQ15Ug16DXqteV16DXmdedJztcbiAgICB9KSk7XG5cbiAgICBpZiAocGFnZUhhc05vVHJhbnNhY3Rpb25zKSB7XG4gICAgICBkZWJ1ZygncGFnZSBoYXMgbm8gdHJhbnNhY3Rpb25zJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCdmaW5kIHRoZSBiaWxsaW5nIGRhdGUnKTtcbiAgICAgIGNvbnN0IGJpbGxpbmdEYXRlTGFiZWwgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCBiaWxsaW5nTGFiZWxTZWxlY3RvciwgJycsICgoZWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gKGVsZW1lbnQgYXMgSFRNTFNwYW5FbGVtZW50KS5pbm5lclRleHQ7XG4gICAgICB9KSk7XG5cbiAgICAgIGNvbnN0IGJpbGxpbmdEYXRlID0gL1xcZHsxLDJ9Wy9dXFxkezJ9Wy9dXFxkezIsNH0vLmV4ZWMoYmlsbGluZ0RhdGVMYWJlbCk/LlswXTtcblxuICAgICAgaWYgKCFiaWxsaW5nRGF0ZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBmZXRjaCBwcm9jZXNzIGRhdGUnKTtcbiAgICAgIH1cblxuICAgICAgZGVidWcoYGZvdW5kIHRoZSBiaWxsaW5nIGRhdGUgZm9yIHRoYXQgbW9udGggJHtiaWxsaW5nRGF0ZX1gKTtcbiAgICAgIGxldCBoYXNOZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgZG8ge1xuICAgICAgICBkZWJ1ZygnZmV0Y2ggcmF3IHRyYW5zYWN0aW9ucyBmcm9tIHBhZ2UnKTtcbiAgICAgICAgY29uc3QgcmF3VHJhbnNhY3Rpb25zID0gYXdhaXQgcGFnZUV2YWxBbGw8KFNjcmFwZWRUcmFuc2FjdGlvbiB8IG51bGwpW10+KHBhZ2UsICcjY3RsTWFpbkdyaWQgPiB0Ym9keSB0ciwgI2N0bFNlY29uZGFyeUdyaWQgPiB0Ym9keSB0cicsIFtdLCAoaXRlbXMsIGJpbGxpbmdEYXRlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChpdGVtcykubWFwKChlbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29sdW1ucyA9IGVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZCcpO1xuICAgICAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09PSA2KSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcHJvY2Vzc2VkRGF0ZTogY29sdW1uc1swXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgZGF0ZTogY29sdW1uc1sxXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbHVtbnNbMl0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsQW1vdW50OiBjb2x1bW5zWzNdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBjaGFyZ2VkQW1vdW50OiBjb2x1bW5zWzRdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBtZW1vOiBjb2x1bW5zWzVdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb2x1bW5zLmxlbmd0aCA9PT0gNSkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHByb2Nlc3NlZERhdGU6IGJpbGxpbmdEYXRlLFxuICAgICAgICAgICAgICAgIGRhdGU6IGNvbHVtbnNbMF0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb2x1bW5zWzFdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBvcmlnaW5hbEFtb3VudDogY29sdW1uc1syXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgY2hhcmdlZEFtb3VudDogY29sdW1uc1szXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgbWVtbzogY29sdW1uc1s0XS5pbm5lclRleHQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSwgYmlsbGluZ0RhdGUpO1xuICAgICAgICBkZWJ1ZyhgZmV0Y2hlZCAke3Jhd1RyYW5zYWN0aW9ucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgZnJvbSBwYWdlYCk7XG4gICAgICAgIGFjY291bnRUcmFuc2FjdGlvbnMucHVzaCguLi5jb252ZXJ0VHJhbnNhY3Rpb25zKChyYXdUcmFuc2FjdGlvbnMgYXMgU2NyYXBlZFRyYW5zYWN0aW9uW10pXG4gICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gISFpdGVtKSkpO1xuXG4gICAgICAgIGRlYnVnKCdjaGVjayBmb3IgZXhpc3RhbmNlIG9mIGFub3RoZXIgcGFnZScpO1xuICAgICAgICBoYXNOZXh0UGFnZSA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIG5leHRQYWdlU2VsZWN0b3IpO1xuICAgICAgICBpZiAoaGFzTmV4dFBhZ2UpIHtcbiAgICAgICAgICBkZWJ1ZygnaGFzIGFub3RoZXIgcGFnZSwgY2xpY2sgb24gYnV0dG9uIG5leHQgYW5kIHdhaXQgZm9yIHBhZ2UgbmF2aWdhdGlvbicpO1xuICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICAgIHBhZ2Uud2FpdEZvck5hdmlnYXRpb24oeyB3YWl0VW50aWw6ICdkb21jb250ZW50bG9hZGVkJyB9KSxcbiAgICAgICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsR3JpZFBhZ2VyX2J0bk5leHRdJyksXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgIH0gd2hpbGUgKGhhc05leHRQYWdlKTtcbiAgICB9XG4gIH1cblxuICBkZWJ1ZygnZmlsZXIgb3V0IG9sZCB0cmFuc2FjdGlvbnMnKTtcbiAgY29uc3QgdHhucyA9IGZpbHRlck9sZFRyYW5zYWN0aW9ucyhhY2NvdW50VHJhbnNhY3Rpb25zLCBzdGFydERhdGUsIHNjcmFwZXJPcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpO1xuICBkZWJ1ZyhgZm91bmQgJHt0eG5zLmxlbmd0aH0gdmFsaWQgdHJhbnNhY3Rpb25zIG91dCBvZiAke2FjY291bnRUcmFuc2FjdGlvbnMubGVuZ3RofSB0cmFuc2FjdGlvbnMgZm9yIGFjY291bnQgZW5kaW5nIHdpdGggJHthY2NvdW50TnVtYmVyLnN1YnN0cmluZyhhY2NvdW50TnVtYmVyLmxlbmd0aCAtIDIpfWApO1xuICByZXR1cm4ge1xuICAgIGFjY291bnROdW1iZXIsXG4gICAgdHhucyxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWNjb3VudE51bWJlcnMocGFnZTogUGFnZSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgcmV0dXJuIHBhZ2VFdmFsQWxsKHBhZ2UsICdbaWQkPWxua0l0ZW1dJywgW10sIChlbGVtZW50cykgPT4gZWxlbWVudHMubWFwKChlKSA9PiAoZSBhcyBIVE1MQW5jaG9yRWxlbWVudCkudGV4dCkpLnRoZW4oKHJlcykgPT4gcmVzLm1hcCgodGV4dCkgPT4gL1xcZCskLy5leGVjKHRleHQudHJpbSgpKT8uWzBdID8/ICcnKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNldEFjY291bnQocGFnZTogUGFnZSwgYWNjb3VudDogc3RyaW5nKSB7XG4gIGF3YWl0IHBhZ2VFdmFsQWxsKFxuICAgIHBhZ2UsXG4gICAgJ1tpZCQ9bG5rSXRlbV0nLFxuICAgIG51bGwsXG4gICAgKGVsZW1lbnRzLCBhY2NvdW50KSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGVsZW0gb2YgZWxlbWVudHMpIHtcbiAgICAgICAgY29uc3QgYSA9IGVsZW0gYXMgSFRNTEFuY2hvckVsZW1lbnQ7XG4gICAgICAgIGlmIChhLnRleHQuaW5jbHVkZXMoYWNjb3VudCkpIHtcbiAgICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGFjY291bnQsXG4gICk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50LCBzY3JhcGVyT3B0aW9uczogU2NhcGVyT3B0aW9ucyk6IFByb21pc2U8VHJhbnNhY3Rpb25zQWNjb3VudFtdPiB7XG4gIGNvbnN0IGFjY291bnROdW1iZXJzOiBzdHJpbmdbXSA9IGF3YWl0IGdldEFjY291bnROdW1iZXJzKHBhZ2UpO1xuICBjb25zdCBhY2NvdW50czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgZm9yIChjb25zdCBhY2NvdW50IG9mIGFjY291bnROdW1iZXJzKSB7XG4gICAgZGVidWcoYHNldHRpbmcgYWNjb3VudDogJHthY2NvdW50fWApO1xuICAgIGF3YWl0IHNldEFjY291bnQocGFnZSwgYWNjb3VudCk7XG4gICAgYXdhaXQgcGFnZS53YWl0Rm9yKDEwMDApO1xuICAgIGFjY291bnRzLnB1c2goXG4gICAgICBhd2FpdCBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQoXG4gICAgICAgIHBhZ2UsXG4gICAgICAgIHN0YXJ0RGF0ZSxcbiAgICAgICAgYWNjb3VudCxcbiAgICAgICAgc2NyYXBlck9wdGlvbnMsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gYWNjb3VudHM7XG59XG5cblxuY2xhc3MgVmlzYUNhbFNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyIHtcbiAgb3BlbkxvZ2luUG9wdXAgPSBhc3luYyAoKSA9PiB7XG4gICAgZGVidWcoJ29wZW4gbG9naW4gcG9wdXAsIHdhaXQgdW50aWwgbG9naW4gYnV0dG9uIGF2YWlsYWJsZScpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjY2NMb2dpbkRlc2t0b3BCdG4nLCB0cnVlKTtcbiAgICBkZWJ1ZygnY2xpY2sgb24gdGhlIGxvZ2luIGJ1dHRvbicpO1xuICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicpO1xuICAgIGRlYnVnKCdnZXQgdGhlIGZyYW1lIHRoYXQgaG9sZHMgdGhlIGxvZ2luJyk7XG4gICAgY29uc3QgZnJhbWUgPSBhd2FpdCBnZXRMb2dpbkZyYW1lKHRoaXMucGFnZSk7XG4gICAgZGVidWcoJ3dhaXQgdW50aWwgdGhlIHBhc3N3b3JkIGxvZ2luIHRhYiBoZWFkZXIgaXMgYXZhaWxhYmxlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCAnI3JlZ3VsYXItbG9naW4nKTtcbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gdGhlIHBhc3N3b3JkIGxvZ2luIHRhYicpO1xuICAgIGF3YWl0IGNsaWNrQnV0dG9uKGZyYW1lLCAnI3JlZ3VsYXItbG9naW4nKTtcbiAgICBkZWJ1Zygnd2FpdCB1bnRpbCB0aGUgcGFzc3dvcmQgbG9naW4gdGFiIGlzIGFjdGl2ZScpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChmcmFtZSwgJ3JlZ3VsYXItbG9naW4nKTtcblxuICAgIHJldHVybiBmcmFtZTtcbiAgfTtcblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IGAke0xPR0lOX1VSTH1gLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJ2J1dHRvblt0eXBlPVwic3VibWl0XCJdJyxcbiAgICAgIHBvc3NpYmxlUmVzdWx0czogZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKSxcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJyksXG4gICAgICBwcmVBY3Rpb246IHRoaXMub3BlbkxvZ2luUG9wdXAsXG4gICAgICB1c2VyQWdlbnQ6ICdNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYnLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKTogUHJvbWlzZTxTY2FwZXJTY3JhcGluZ1Jlc3VsdD4ge1xuICAgIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpLmFkZCgxLCAnZGF5Jyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuICAgIGRlYnVnKGBmZXRjaCB0cmFuc2FjdGlvbnMgc3RhcnRpbmcgJHtzdGFydE1vbWVudC5mb3JtYXQoKX1gKTtcblxuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byB0cmFuc2FjdGlvbnMgcGFnZScpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhUUkFOU0FDVElPTlNfVVJMLCB1bmRlZmluZWQsIDYwMDAwKTtcblxuICAgIGRlYnVnKCdmZXRjaCBhY2NvdW50cyB0cmFuc2FjdGlvbnMnKTtcbiAgICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwgc3RhcnRNb21lbnQsIHRoaXMub3B0aW9ucyk7XG4gICAgZGVidWcoJ3JldHVybiB0aGUgc2NyYXBlZCBhY2NvdW50cycpO1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBWaXNhQ2FsU2NyYXBlcjtcbiJdfQ==
379
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy92aXNhLWNhbC50cyJdLCJuYW1lcyI6WyJMT0dJTl9VUkwiLCJUUkFOU0FDVElPTlNfVVJMIiwiTE9OR19EQVRFX0ZPUk1BVCIsIkRBVEVfRk9STUFUIiwiSW52YWxpZFBhc3N3b3JkTWVzc2FnZSIsImRlYnVnIiwiZ2V0TG9naW5GcmFtZSIsInBhZ2UiLCJmcmFtZSIsImZyYW1lcyIsImZpbmQiLCJmIiwidXJsIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IiLCJlcnJvckZvdW5kIiwiZXJyb3JNZXNzYWdlIiwiaXRlbSIsImlubmVyVGV4dCIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJvcHRpb25zIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNsbiIsInJlcGxhY2UiLCJjdXJyZW5jeSIsImFtb3VudCIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJzZUZsb2F0IiwiU0hFS0VMX0NVUlJFTkNZIiwiRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCIsIkRPTExBUl9DVVJSRU5DWSIsIkVVUk9fQ1VSUkVOQ1lfU1lNQk9MIiwiRVVST19DVVJSRU5DWSIsInBhcnRzIiwic3BsaXQiLCJnZXRUcmFuc2FjdGlvbkluc3RhbGxtZW50cyIsIm1lbW8iLCJwYXJzZWRNZW1vIiwiZXhlYyIsImxlbmd0aCIsIm51bWJlciIsInBhcnNlSW50IiwidG90YWwiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsIm1hcCIsInR4biIsIm9yaWdpbmFsQW1vdW50VHVwbGUiLCJvcmlnaW5hbEFtb3VudCIsImNoYXJnZWRBbW91bnRUdXBsZSIsImNoYXJnZWRBbW91bnQiLCJpbnN0YWxsbWVudHMiLCJ0eG5EYXRlIiwiZGF0ZSIsInByb2Nlc3NlZERhdGVGb3JtYXQiLCJwcm9jZXNzZWREYXRlIiwidHhuUHJvY2Vzc2VkRGF0ZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiSW5zdGFsbG1lbnRzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImFkZCIsInRvSVNPU3RyaW5nIiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50Iiwic3RhcnREYXRlIiwiYWNjb3VudE51bWJlciIsInNjcmFwZXJPcHRpb25zIiwic3RhcnREYXRlVmFsdWUiLCJmb3JtYXQiLCJkYXRlU2VsZWN0b3IiLCJkYXRlSGlkZGVuRmllbGRTZWxlY3RvciIsImJ1dHRvblNlbGVjdG9yIiwibmV4dFBhZ2VTZWxlY3RvciIsImJpbGxpbmdMYWJlbFNlbGVjdG9yIiwic2Vjb25kYXJ5QmlsbGluZ0xhYmVsU2VsZWN0b3IiLCJub0RhdGFTZWxlY3RvciIsIml0ZW1zIiwiZWwiLCJzdGFydERhdGVJbmRleCIsImZpbmRJbmRleCIsIm9wdGlvbiIsImFjY291bnRUcmFuc2FjdGlvbnMiLCJjdXJyZW50RGF0ZUluZGV4Iiwid2FpdEZvciIsImFsbCIsIndhaXRGb3JOYXZpZ2F0aW9uIiwid2FpdFVudGlsIiwicGFnZUhhc05vVHJhbnNhY3Rpb25zIiwiZWxlbWVudCIsInNpdGVWYWx1ZSIsImJpbGxpbmdEYXRlTGFiZWwiLCJzZXR0bGVtZW50RGF0ZVJlZ2V4IiwiYmlsbGluZ0RhdGUiLCJoYXNOZXh0UGFnZSIsInJhd1RyYW5zYWN0aW9ucyIsImNvbHVtbnMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInB1c2giLCJmaWx0ZXIiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwic3Vic3RyaW5nIiwiZ2V0QWNjb3VudE51bWJlcnMiLCJlbGVtZW50cyIsImUiLCJ0ZXh0IiwidGhlbiIsInJlcyIsInRyaW0iLCJzZXRBY2NvdW50IiwiYWNjb3VudCIsImVsZW0iLCJhIiwiY2xpY2siLCJmZXRjaFRyYW5zYWN0aW9ucyIsImFjY291bnROdW1iZXJzIiwiYWNjb3VudHMiLCJWaXNhQ2FsU2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwicG9zc2libGVSZXN1bHRzIiwiY2hlY2tSZWFkaW5lc3MiLCJwcmVBY3Rpb24iLCJvcGVuTG9naW5Qb3B1cCIsInVzZXJBZ2VudCIsImZldGNoRGF0YSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0IiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJuYXZpZ2F0ZVRvIiwidW5kZWZpbmVkIiwic3VjY2VzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFHQTs7QUFRQTs7QUFHQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUEsTUFBTUEsU0FBUyxHQUFHLCtCQUFsQjtBQUNBLE1BQU1DLGdCQUFnQixHQUFHLHVGQUF6QjtBQUNBLE1BQU1DLGdCQUFnQixHQUFHLFlBQXpCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLFVBQXBCO0FBQ0EsTUFBTUMsc0JBQXNCLEdBQUcsbUNBQS9CO0FBRUEsTUFBTUMsS0FBSyxHQUFHLHFCQUFTLFVBQVQsQ0FBZDs7QUFXQSxlQUFlQyxhQUFmLENBQTZCQyxJQUE3QixFQUF5QztBQUN2QyxNQUFJQyxLQUFtQixHQUFHLElBQTFCO0FBQ0FILEVBQUFBLEtBQUssQ0FBQyw4QkFBRCxDQUFMO0FBQ0EsUUFBTSx3QkFBVSxNQUFNO0FBQ3BCRyxJQUFBQSxLQUFLLEdBQUdELElBQUksQ0FDVEUsTUFESyxHQUVMQyxJQUZLLENBRUNDLENBQUQsSUFBT0EsQ0FB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QUFnQjFKLGdCQUFoQixFQUFrQzJKLFNBQWxDLEVBQTZDLEtBQTdDLENBQU47QUFFQXZKLElBQUFBLEtBQUssQ0FBQyw2QkFBRCxDQUFMO0FBQ0EsVUFBTW1JLFFBQVEsR0FBRyxNQUFNRixpQkFBaUIsQ0FBQyxLQUFLL0gsSUFBTixFQUFZaUosV0FBWixFQUF5QixLQUFLN0gsT0FBOUIsQ0FBeEM7QUFDQXRCLElBQUFBLEtBQUssQ0FBQyw2QkFBRCxDQUFMO0FBQ0EsV0FBTztBQUNMd0osTUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTHJCLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQTlDaUQ7O2VBaURyQ0MsYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZyYW1lLCBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luT3B0aW9ucywgTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7XG4gIGNsaWNrQnV0dG9uLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgcGFnZUV2YWwsIHBhZ2VFdmFsQWxsLCBzZXRWYWx1ZSwgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxufSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25JbnN0YWxsbWVudHMsXG4gIFRyYW5zYWN0aW9uc0FjY291bnQsXG4gIFRyYW5zYWN0aW9uU3RhdHVzZXMsXG4gIFRyYW5zYWN0aW9uVHlwZXMsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBTY2FwZXJPcHRpb25zLCBTY2FwZXJTY3JhcGluZ1Jlc3VsdCwgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHtcbiAgRE9MTEFSX0NVUlJFTkNZLCBET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCBFVVJPX0NVUlJFTkNZLCBFVVJPX0NVUlJFTkNZX1NZTUJPTCwgU0hFS0VMX0NVUlJFTkNZLCBTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgd2FpdFVudGlsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7IGZpbHRlck9sZFRyYW5zYWN0aW9ucyB9IGZyb20gJy4uL2hlbHBlcnMvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5cbmNvbnN0IExPR0lOX1VSTCA9ICdodHRwczovL3d3dy5jYWwtb25saW5lLmNvLmlsLyc7XG5jb25zdCBUUkFOU0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vc2VydmljZXMuY2FsLW9ubGluZS5jby5pbC9DYXJkLUhvbGRlcnMvU2NyZWVucy9UcmFuc2FjdGlvbnMvVHJhbnNhY3Rpb25zLmFzcHgnO1xuY29uc3QgTE9OR19EQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZJztcbmNvbnN0IEludmFsaWRQYXNzd29yZE1lc3NhZ2UgPSAn16nXnSDXlNee16nXqtee16kg15DXlSDXlNeh15nXodee15Qg16nXlNeV15bXoNeVINep15LXldeZ15nXnSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ3Zpc2EtY2FsJyk7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBkYXRlOiBzdHJpbmc7XG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IHN0cmluZztcbiAgY2hhcmdlZEFtb3VudDogc3RyaW5nO1xuICBtZW1vOiBzdHJpbmc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldExvZ2luRnJhbWUocGFnZTogUGFnZSkge1xuICBsZXQgZnJhbWU6IEZyYW1lIHwgbnVsbCA9IG51bGw7XG4gIGRlYnVnKCd3YWl0IHVudGlsIGxvZ2luIGZyYW1lIGZvdW5kJyk7XG4gIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiB7XG4gICAgZnJhbWUgPSBwYWdlXG4gICAgICAuZnJhbWVzKClcbiAgICAgIC5maW5kKChmKSA9PiBmLnVybCgpLmluY2x1ZGVzKCdjb25uZWN0LmNhbC1vbmxpbmUnKSkgfHwgbnVsbDtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCEhZnJhbWUpO1xuICB9LCAnd2FpdCBmb3IgaWZyYW1lIHdpdGggbG9naW4gZm9ybScsIDEwMDAwLCAxMDAwKTtcblxuICBpZiAoIWZyYW1lKSB7XG4gICAgZGVidWcoJ2ZhaWxlZCB0byBmaW5kIGxvZ2luIGZyYW1lIGZvciAxMCBzZWNvbmRzJyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdmYWlsZWQgdG8gZXh0cmFjdCBsb2dpbiBpZnJhbWUnKTtcbiAgfVxuXG4gIHJldHVybiBmcmFtZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IocGFnZTogUGFnZSkge1xuICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUocGFnZSk7XG4gIGNvbnN0IGVycm9yRm91bmQgPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShmcmFtZSwgJ2Rpdi5nZW5lcmFsLWVycm9yID4gZGl2Jyk7XG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yRm91bmQgPyBhd2FpdCBwYWdlRXZhbChmcmFtZSwgJ2Rpdi5nZW5lcmFsLWVycm9yID4gZGl2JywgJycsIChpdGVtKSA9PiB7XG4gICAgcmV0dXJuIChpdGVtIGFzIEhUTUxEaXZFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pIDogJyc7XG4gIHJldHVybiBlcnJvck1lc3NhZ2UgPT09IEludmFsaWRQYXNzd29yZE1lc3NhZ2U7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCkge1xuICBkZWJ1ZygncmV0dXJuIHBvc3NpYmxlIGxvZ2luIHJlc3VsdHMnKTtcbiAgY29uc3QgdXJsczogTG9naW5PcHRpb25zWydwb3NzaWJsZVJlc3VsdHMnXSA9IHtcbiAgICBbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdOiBbL0FjY291bnRNYW5hZ2VtZW50L2ldLFxuICAgIFtMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXTogW2FzeW5jIChvcHRpb25zPzogeyBwYWdlPzogUGFnZX0pID0+IHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBvcHRpb25zPy5wYWdlO1xuICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlKTtcbiAgICB9XSxcbiAgICAvLyBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogW10sIC8vIFRPRE8gYWRkIHdoZW4gcmVhY2hpbmcgdGhpcyBzY2VuYXJpb1xuICAgIC8vIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbXSwgLy8gVE9ETyBhZGQgd2hlbiByZWFjaGluZyB0aGlzIHNjZW5hcmlvXG4gIH07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIGRlYnVnKCdjcmVhdGUgbG9naW4gZmllbGRzIGZvciB1c2VybmFtZSBhbmQgcGFzc3dvcmQnKTtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnW2Zvcm1jb250cm9sbmFtZT1cInVzZXJOYW1lXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogJ1tmb3JtY29udHJvbG5hbWU9XCJwYXNzd29yZFwiXScsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ2xuID0gYW1vdW50U3RyLnJlcGxhY2UoJywnLCAnJyk7XG4gIGxldCBjdXJyZW5jeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGxldCBhbW91bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gLXBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IFNIRUtFTF9DVVJSRU5DWTtcbiAgfSBlbHNlIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSAtcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gRE9MTEFSX0NVUlJFTkNZO1xuICB9IGVsc2UgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhFVVJPX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSAtcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShFVVJPX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IEVVUk9fQ1VSUkVOQ1k7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcGFydHMgPSBhbW91bnRTdHJDbG4uc3BsaXQoJyAnKTtcbiAgICBbY3VycmVuY3ldID0gcGFydHM7XG4gICAgYW1vdW50ID0gLXBhcnNlRmxvYXQocGFydHNbMV0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhbW91bnQsXG4gICAgY3VycmVuY3ksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzKG1lbW86IHN0cmluZyk6IFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzIHwgbnVsbCB7XG4gIGNvbnN0IHBhcnNlZE1lbW8gPSAoL9eq16nXnNeV150gKFxcZCspINee16rXldeaIChcXGQrKS8pLmV4ZWMobWVtbyB8fCAnJyk7XG5cbiAgaWYgKCFwYXJzZWRNZW1vIHx8IHBhcnNlZE1lbW8ubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG51bWJlcjogcGFyc2VJbnQocGFyc2VkTWVtb1sxXSwgMTApLFxuICAgIHRvdGFsOiBwYXJzZUludChwYXJzZWRNZW1vWzJdLCAxMCksXG4gIH07XG59XG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIGRlYnVnKGBjb252ZXJ0ICR7dHhucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgdG8gb2ZmaWNpYWwgVHJhbnNhY3Rpb24gc3RydWN0dXJlYCk7XG4gIHJldHVybiB0eG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWxBbW91bnRUdXBsZSA9IGdldEFtb3VudERhdGEodHhuLm9yaWdpbmFsQW1vdW50IHx8ICcnKTtcbiAgICBjb25zdCBjaGFyZ2VkQW1vdW50VHVwbGUgPSBnZXRBbW91bnREYXRhKHR4bi5jaGFyZ2VkQW1vdW50IHx8ICcnKTtcblxuICAgIGNvbnN0IGluc3RhbGxtZW50cyA9IGdldFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzKHR4bi5tZW1vKTtcbiAgICBjb25zdCB0eG5EYXRlID0gbW9tZW50KHR4bi5kYXRlLCBEQVRFX0ZPUk1BVCk7XG4gICAgY29uc3QgcHJvY2Vzc2VkRGF0ZUZvcm1hdCA9XG4gICAgICB0eG4ucHJvY2Vzc2VkRGF0ZS5sZW5ndGggPT09IDggP1xuICAgICAgICBEQVRFX0ZPUk1BVCA6XG4gICAgICAgIHR4bi5wcm9jZXNzZWREYXRlLmxlbmd0aCA9PT0gOSB8fCB0eG4ucHJvY2Vzc2VkRGF0ZS5sZW5ndGggPT09IDEwID9cbiAgICAgICAgICBMT05HX0RBVEVfRk9STUFUIDpcbiAgICAgICAgICBudWxsO1xuICAgIGlmICghcHJvY2Vzc2VkRGF0ZUZvcm1hdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHByb2Nlc3NlZCBkYXRlJyk7XG4gICAgfVxuICAgIGNvbnN0IHR4blByb2Nlc3NlZERhdGUgPSBtb21lbnQodHhuLnByb2Nlc3NlZERhdGUsIHByb2Nlc3NlZERhdGVGb3JtYXQpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIHR5cGU6IGluc3RhbGxtZW50cyA/IFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzIDogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgZGF0ZTogaW5zdGFsbG1lbnRzID8gdHhuRGF0ZS5hZGQoaW5zdGFsbG1lbnRzLm51bWJlciAtIDEsICdtb250aCcpLnRvSVNPU3RyaW5nKCkgOiB0eG5EYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5Qcm9jZXNzZWREYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBvcmlnaW5hbEFtb3VudDogb3JpZ2luYWxBbW91bnRUdXBsZS5hbW91bnQsXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBvcmlnaW5hbEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgY2hhcmdlZEFtb3VudDogY2hhcmdlZEFtb3VudFR1cGxlLmFtb3VudCxcbiAgICAgIGNoYXJnZWRDdXJyZW5jeTogY2hhcmdlZEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIG1lbW86IHR4bi5tZW1vIHx8ICcnLFxuICAgIH07XG5cbiAgICBpZiAoaW5zdGFsbG1lbnRzKSB7XG4gICAgICByZXN1bHQuaW5zdGFsbG1lbnRzID0gaW5zdGFsbG1lbnRzO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQsIGFjY291bnROdW1iZXI6IHN0cmluZywgc2NyYXBlck9wdGlvbnM6IFNjYXBlck9wdGlvbnMpOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnQ+IHtcbiAgY29uc3Qgc3RhcnREYXRlVmFsdWUgPSBzdGFydERhdGUuZm9ybWF0KCdNTS9ZWVlZJyk7XG4gIGNvbnN0IGRhdGVTZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX1RleHRCb3hcIl0nO1xuICBjb25zdCBkYXRlSGlkZGVuRmllbGRTZWxlY3RvciA9ICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX0hpZGRlbkZpZWxkXCJdJztcbiAgY29uc3QgYnV0dG9uU2VsZWN0b3IgPSAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsU3VibWl0UmVxdWVzdFwiXSc7XG4gIGNvbnN0IG5leHRQYWdlU2VsZWN0b3IgPSAnW2lkJD1cIkZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsR3JpZFBhZ2VyX2J0bk5leHRcIl0nO1xuICBjb25zdCBiaWxsaW5nTGFiZWxTZWxlY3RvciA9ICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsTWFpblRvb2xCYXJfbGJsQ2FwdGlvbl0nO1xuICBjb25zdCBzZWNvbmRhcnlCaWxsaW5nTGFiZWxTZWxlY3RvciA9ICdbaWQkPUZvcm1BcmVhTm9Cb3JkZXJfRm9ybUFyZWFfY3RsU2Vjb25kYXJ5VG9vbEJhcl9sYmxDYXB0aW9uXSc7XG4gIGNvbnN0IG5vRGF0YVNlbGVjdG9yID0gJ1tpZCQ9Rm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9tc2dib3hFcnJvck1lc3NhZ2VzXSc7XG5cbiAgZGVidWcoJ2ZpbmQgdGhlIHN0YXJ0IGRhdGUgaW5kZXggaW4gdGhlIGRyb3Bib3gnKTtcbiAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHBhZ2VFdmFsQWxsKHBhZ2UsICdbaWQkPVwiRm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jbG5kckRlYml0RGF0ZVNjb3BlX09wdGlvbkxpc3RcIl0gbGknLCBbXSwgKGl0ZW1zKSA9PiB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoZWw6IGFueSkgPT4gZWwuaW5uZXJUZXh0KTtcbiAgfSk7XG4gIGNvbnN0IHN0YXJ0RGF0ZUluZGV4ID0gb3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uID09PSBzdGFydERhdGVWYWx1ZSk7XG5cbiAgZGVidWcoYHNjcmFwZSAke29wdGlvbnMubGVuZ3RoIC0gc3RhcnREYXRlSW5kZXh9IGJpbGxpbmcgY3ljbGVzYCk7XG4gIGNvbnN0IGFjY291bnRUcmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10gPSBbXTtcbiAgZm9yIChsZXQgY3VycmVudERhdGVJbmRleCA9IHN0YXJ0RGF0ZUluZGV4OyBjdXJyZW50RGF0ZUluZGV4IDwgb3B0aW9ucy5sZW5ndGg7IGN1cnJlbnREYXRlSW5kZXggKz0gMSkge1xuICAgIGRlYnVnKCd3YWl0IGZvciBkYXRlIHNlbGVjdG9yIHRvIGJlIGZvdW5kJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIGRhdGVTZWxlY3RvciwgdHJ1ZSk7XG4gICAgZGVidWcoYHNldCBoaWRkZW4gdmFsdWUgb2YgdGhlIGRhdGUgc2VsZWN0b3IgdG8gYmUgdGhlIGluZGV4ICR7Y3VycmVudERhdGVJbmRleH1gKTtcbiAgICBhd2FpdCBzZXRWYWx1ZShwYWdlLCBkYXRlSGlkZGVuRmllbGRTZWxlY3RvciwgYCR7Y3VycmVudERhdGVJbmRleH1gKTtcbiAgICBkZWJ1Zygnd2FpdCBhIHNlY29uZCB0byB3b3JrYXJvdW5kIG5hdmlnYXRpb24gaXNzdWUgaW4gaGVhZGxlc3MgYnJvd3NlciBtb2RlJyk7XG4gICAgYXdhaXQgcGFnZS53YWl0Rm9yKDEwMDApO1xuICAgIGRlYnVnKCdjbGljayBvbiB0aGUgZmlsdGVyIHN1Ym1pdCBidXR0b24gYW5kIHdhaXQgZm9yIG5hdmlnYXRpb24nKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBwYWdlLndhaXRGb3JOYXZpZ2F0aW9uKHsgd2FpdFVudGlsOiAnZG9tY29udGVudGxvYWRlZCcgfSksXG4gICAgICBjbGlja0J1dHRvbihwYWdlLCBidXR0b25TZWxlY3RvciksXG4gICAgXSk7XG4gICAgZGVidWcoJ2NoZWNrIGlmIG1vbnRoIGhhcyBubyB0cmFuc2FjdGlvbnMnKTtcbiAgICBjb25zdCBwYWdlSGFzTm9UcmFuc2FjdGlvbnMgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCBub0RhdGFTZWxlY3RvciwgZmFsc2UsICgoZWxlbWVudCkgPT4ge1xuICAgICAgY29uc3Qgc2l0ZVZhbHVlID0gKChlbGVtZW50IGFzIEhUTUxTcGFuRWxlbWVudCkuaW5uZXJUZXh0IHx8ICcnKS5yZXBsYWNlKC9bXiDXkC3Xql0vZywgJycpO1xuICAgICAgcmV0dXJuIHNpdGVWYWx1ZSA9PT0gJ9ec15Ag16DXntem15DXlSDXoNeq15XXoNeZ150nO1xuICAgIH0pKTtcblxuICAgIGlmIChwYWdlSGFzTm9UcmFuc2FjdGlvbnMpIHtcbiAgICAgIGRlYnVnKCdwYWdlIGhhcyBubyB0cmFuc2FjdGlvbnMnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ2ZpbmQgdGhlIGJpbGxpbmcgZGF0ZScpO1xuICAgICAgbGV0IGJpbGxpbmdEYXRlTGFiZWwgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCBiaWxsaW5nTGFiZWxTZWxlY3RvciwgJycsICgoZWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gKGVsZW1lbnQgYXMgSFRNTFNwYW5FbGVtZW50KS5pbm5lclRleHQ7XG4gICAgICB9KSk7XG4gICAgICBsZXQgc2V0dGxlbWVudERhdGVSZWdleCA9IC9cXGR7MSwyfVsvXVxcZHsyfVsvXVxcZHsyLDR9LztcblxuICAgICAgaWYgKGJpbGxpbmdEYXRlTGFiZWwgPT09ICcnKSB7XG4gICAgICAgIGJpbGxpbmdEYXRlTGFiZWwgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCBzZWNvbmRhcnlCaWxsaW5nTGFiZWxTZWxlY3RvciwgJycsICgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoZWxlbWVudCBhcyBIVE1MU3BhbkVsZW1lbnQpLmlubmVyVGV4dDtcbiAgICAgICAgfSkpO1xuICAgICAgICBzZXR0bGVtZW50RGF0ZVJlZ2V4ID0gL1xcZHsxLDJ9Wy9dXFxkezIsNH0vO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBiaWxsaW5nRGF0ZSA9IHNldHRsZW1lbnREYXRlUmVnZXguZXhlYyhiaWxsaW5nRGF0ZUxhYmVsKT8uWzBdO1xuXG4gICAgICBpZiAoIWJpbGxpbmdEYXRlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignZmFpbGVkIHRvIGZldGNoIHByb2Nlc3MgZGF0ZScpO1xuICAgICAgfVxuXG4gICAgICBkZWJ1ZyhgZm91bmQgdGhlIGJpbGxpbmcgZGF0ZSBmb3IgdGhhdCBtb250aCAke2JpbGxpbmdEYXRlfWApO1xuICAgICAgbGV0IGhhc05leHRQYWdlID0gZmFsc2U7XG4gICAgICBkbyB7XG4gICAgICAgIGRlYnVnKCdmZXRjaCByYXcgdHJhbnNhY3Rpb25zIGZyb20gcGFnZScpO1xuICAgICAgICBjb25zdCByYXdUcmFuc2FjdGlvbnMgPSBhd2FpdCBwYWdlRXZhbEFsbDwoU2NyYXBlZFRyYW5zYWN0aW9uIHwgbnVsbClbXT4ocGFnZSwgJyNjdGxNYWluR3JpZCA+IHRib2R5IHRyLCAjY3RsU2Vjb25kYXJ5R3JpZCA+IHRib2R5IHRyJywgW10sIChpdGVtcywgYmlsbGluZ0RhdGUpID0+IHtcbiAgICAgICAgICByZXR1cm4gKGl0ZW1zKS5tYXAoKGVsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW5zID0gZWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RkJyk7XG4gICAgICAgICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT09IDYpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwcm9jZXNzZWREYXRlOiBjb2x1bW5zWzBdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBkYXRlOiBjb2x1bW5zWzFdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogY29sdW1uc1syXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxBbW91bnQ6IGNvbHVtbnNbM10uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIGNoYXJnZWRBbW91bnQ6IGNvbHVtbnNbNF0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIG1lbW86IGNvbHVtbnNbNV0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09PSA1KSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcHJvY2Vzc2VkRGF0ZTogYmlsbGluZ0RhdGUsXG4gICAgICAgICAgICAgICAgZGF0ZTogY29sdW1uc1swXS5pbm5lclRleHQsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbHVtbnNbMV0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsQW1vdW50OiBjb2x1bW5zWzJdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBjaGFyZ2VkQW1vdW50OiBjb2x1bW5zWzNdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgICBtZW1vOiBjb2x1bW5zWzRdLmlubmVyVGV4dCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCBiaWxsaW5nRGF0ZSk7XG4gICAgICAgIGRlYnVnKGBmZXRjaGVkICR7cmF3VHJhbnNhY3Rpb25zLmxlbmd0aH0gcmF3IHRyYW5zYWN0aW9ucyBmcm9tIHBhZ2VgKTtcbiAgICAgICAgYWNjb3VudFRyYW5zYWN0aW9ucy5wdXNoKC4uLmNvbnZlcnRUcmFuc2FjdGlvbnMoKHJhd1RyYW5zYWN0aW9ucyBhcyBTY3JhcGVkVHJhbnNhY3Rpb25bXSlcbiAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiAhIWl0ZW0pKSk7XG5cbiAgICAgICAgZGVidWcoJ2NoZWNrIGZvciBleGlzdGFuY2Ugb2YgYW5vdGhlciBwYWdlJyk7XG4gICAgICAgIGhhc05leHRQYWdlID0gYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZSwgbmV4dFBhZ2VTZWxlY3Rvcik7XG4gICAgICAgIGlmIChoYXNOZXh0UGFnZSkge1xuICAgICAgICAgIGRlYnVnKCdoYXMgYW5vdGhlciBwYWdlLCBjbGljayBvbiBidXR0b24gbmV4dCBhbmQgd2FpdCBmb3IgcGFnZSBuYXZpZ2F0aW9uJyk7XG4gICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgcGFnZS53YWl0Rm9yTmF2aWdhdGlvbih7IHdhaXRVbnRpbDogJ2RvbWNvbnRlbnRsb2FkZWQnIH0pLFxuICAgICAgICAgICAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJ1tpZCQ9Rm9ybUFyZWFOb0JvcmRlcl9Gb3JtQXJlYV9jdGxHcmlkUGFnZXJfYnRuTmV4dF0nKSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgfSB3aGlsZSAoaGFzTmV4dFBhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGRlYnVnKCdmaWxlciBvdXQgb2xkIHRyYW5zYWN0aW9ucycpO1xuICBjb25zdCB0eG5zID0gZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGFjY291bnRUcmFuc2FjdGlvbnMsIHN0YXJ0RGF0ZSwgc2NyYXBlck9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSk7XG4gIGRlYnVnKGBmb3VuZCAke3R4bnMubGVuZ3RofSB2YWxpZCB0cmFuc2FjdGlvbnMgb3V0IG9mICR7YWNjb3VudFRyYW5zYWN0aW9ucy5sZW5ndGh9IHRyYW5zYWN0aW9ucyBmb3IgYWNjb3VudCBlbmRpbmcgd2l0aCAke2FjY291bnROdW1iZXIuc3Vic3RyaW5nKGFjY291bnROdW1iZXIubGVuZ3RoIC0gMil9YCk7XG4gIHJldHVybiB7XG4gICAgYWNjb3VudE51bWJlcixcbiAgICB0eG5zLFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50TnVtYmVycyhwYWdlOiBQYWdlKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICByZXR1cm4gcGFnZUV2YWxBbGwocGFnZSwgJ1tpZCQ9bG5rSXRlbV0nLCBbXSwgKGVsZW1lbnRzKSA9PiBlbGVtZW50cy5tYXAoKGUpID0+IChlIGFzIEhUTUxBbmNob3JFbGVtZW50KS50ZXh0KSkudGhlbigocmVzKSA9PiByZXMubWFwKCh0ZXh0KSA9PiAvXFxkKyQvLmV4ZWModGV4dC50cmltKCkpPy5bMF0gPz8gJycpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2V0QWNjb3VudChwYWdlOiBQYWdlLCBhY2NvdW50OiBzdHJpbmcpIHtcbiAgYXdhaXQgcGFnZUV2YWxBbGwoXG4gICAgcGFnZSxcbiAgICAnW2lkJD1sbmtJdGVtXScsXG4gICAgbnVsbCxcbiAgICAoZWxlbWVudHMsIGFjY291bnQpID0+IHtcbiAgICAgIGZvciAoY29uc3QgZWxlbSBvZiBlbGVtZW50cykge1xuICAgICAgICBjb25zdCBhID0gZWxlbSBhcyBIVE1MQW5jaG9yRWxlbWVudDtcbiAgICAgICAgaWYgKGEudGV4dC5pbmNsdWRlcyhhY2NvdW50KSkge1xuICAgICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWNjb3VudCxcbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQsIHNjcmFwZXJPcHRpb25zOiBTY2FwZXJPcHRpb25zKTogUHJvbWlzZTxUcmFuc2FjdGlvbnNBY2NvdW50W10+IHtcbiAgY29uc3QgYWNjb3VudE51bWJlcnM6IHN0cmluZ1tdID0gYXdhaXQgZ2V0QWNjb3VudE51bWJlcnMocGFnZSk7XG4gIGNvbnN0IGFjY291bnRzOiBUcmFuc2FjdGlvbnNBY2NvdW50W10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGFjY291bnQgb2YgYWNjb3VudE51bWJlcnMpIHtcbiAgICBkZWJ1Zyhgc2V0dGluZyBhY2NvdW50OiAke2FjY291bnR9YCk7XG4gICAgYXdhaXQgc2V0QWNjb3VudChwYWdlLCBhY2NvdW50KTtcbiAgICBhd2FpdCBwYWdlLndhaXRGb3IoMTAwMCk7XG4gICAgYWNjb3VudHMucHVzaChcbiAgICAgIGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zRm9yQWNjb3VudChcbiAgICAgICAgcGFnZSxcbiAgICAgICAgc3RhcnREYXRlLFxuICAgICAgICBhY2NvdW50LFxuICAgICAgICBzY3JhcGVyT3B0aW9ucyxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBhY2NvdW50cztcbn1cblxuXG5jbGFzcyBWaXNhQ2FsU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBvcGVuTG9naW5Qb3B1cCA9IGFzeW5jICgpID0+IHtcbiAgICBkZWJ1Zygnb3BlbiBsb2dpbiBwb3B1cCwgd2FpdCB1bnRpbCBsb2dpbiBidXR0b24gYXZhaWxhYmxlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicsIHRydWUpO1xuICAgIGRlYnVnKCdjbGljayBvbiB0aGUgbG9naW4gYnV0dG9uJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJyk7XG4gICAgZGVidWcoJ2dldCB0aGUgZnJhbWUgdGhhdCBob2xkcyB0aGUgbG9naW4nKTtcbiAgICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUodGhpcy5wYWdlKTtcbiAgICBkZWJ1Zygnd2FpdCB1bnRpbCB0aGUgcGFzc3dvcmQgbG9naW4gdGFiIGhlYWRlciBpcyBhdmFpbGFibGUnKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byB0aGUgcGFzc3dvcmQgbG9naW4gdGFiJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24oZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCd3YWl0IHVudGlsIHRoZSBwYXNzd29yZCBsb2dpbiB0YWIgaXMgYWN0aXZlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCAncmVndWxhci1sb2dpbicpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9O1xuXG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogYCR7TE9HSU5fVVJMfWAsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiAnYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0nLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjY2NMb2dpbkRlc2t0b3BCdG4nKSxcbiAgICAgIHByZUFjdGlvbjogdGhpcy5vcGVuTG9naW5Qb3B1cCxcbiAgICAgIHVzZXJBZ2VudDogJ01vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzc4LjAuMzkwNC4xMDggU2FmYXJpLzUzNy4zNicsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG4gICAgZGVidWcoYGZldGNoIHRyYW5zYWN0aW9ucyBzdGFydGluZyAke3N0YXJ0TW9tZW50LmZvcm1hdCgpfWApO1xuXG4gICAgZGVidWcoJ25hdmlnYXRlIHRvIHRyYW5zYWN0aW9ucyBwYWdlJyk7XG4gICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvKFRSQU5TQUNUSU9OU19VUkwsIHVuZGVmaW5lZCwgNjAwMDApO1xuXG4gICAgZGVidWcoJ2ZldGNoIGFjY291bnRzIHRyYW5zYWN0aW9ucycpO1xuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCBzdGFydE1vbWVudCwgdGhpcy5vcHRpb25zKTtcbiAgICBkZWJ1ZygncmV0dXJuIHRoZSBzY3JhcGVkIGFjY291bnRzJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBhY2NvdW50cyxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZpc2FDYWxTY3JhcGVyO1xuIl19
@@ -26,7 +26,7 @@ export interface Transaction {
26
26
  /**
27
27
  * sometimes called Asmachta
28
28
  */
29
- identifier?: number;
29
+ identifier?: string | number;
30
30
  /**
31
31
  * ISO date string
32
32
  */
@@ -19,4 +19,4 @@ exports.TransactionStatuses = TransactionStatuses;
19
19
  TransactionStatuses["Completed"] = "completed";
20
20
  TransactionStatuses["Pending"] = "pending";
21
21
  })(TransactionStatuses || (exports.TransactionStatuses = TransactionStatuses = {}));
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmFuc2FjdGlvbnMudHMiXSwibmFtZXMiOlsiVHJhbnNhY3Rpb25UeXBlcyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztJQU9ZQSxnQjs7O1dBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0dBQUFBLGdCLGdDQUFBQSxnQjs7SUFLQUMsbUI7OztXQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtHQUFBQSxtQixtQ0FBQUEsbUIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25zQWNjb3VudCB7XG4gIGFjY291bnROdW1iZXI6IHN0cmluZztcbiAgYmFsYW5jZT86IG51bWJlcjtcbiAgdHhuczogVHJhbnNhY3Rpb25bXTtcbn1cblxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25UeXBlcyB7XG4gIE5vcm1hbCA9ICdub3JtYWwnLFxuICBJbnN0YWxsbWVudHMgPSAnaW5zdGFsbG1lbnRzJ1xufVxuXG5leHBvcnQgZW51bSBUcmFuc2FjdGlvblN0YXR1c2VzIHtcbiAgQ29tcGxldGVkID0gJ2NvbXBsZXRlZCcsXG4gIFBlbmRpbmcgPSAncGVuZGluZydcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyB7XG4gIC8qKlxuICAgKiB0aGUgY3VycmVudCBpbnN0YWxsbWVudCBudW1iZXJcbiAgICovXG4gIG51bWJlcjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiB0aGUgdG90YWwgbnVtYmVyIG9mIGluc3RhbGxtZW50c1xuICAgKi9cbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbiB7XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXM7XG4gIC8qKlxuICAgKiBzb21ldGltZXMgY2FsbGVkIEFzbWFjaHRhXG4gICAqL1xuICBpZGVudGlmaWVyPzogbnVtYmVyO1xuICAvKipcbiAgICogSVNPIGRhdGUgc3RyaW5nXG4gICAqL1xuICBkYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJU08gZGF0ZSBzdHJpbmdcbiAgICovXG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IG51bWJlcjtcbiAgb3JpZ2luYWxDdXJyZW5jeTogc3RyaW5nO1xuICBjaGFyZ2VkQW1vdW50OiBudW1iZXI7XG4gIGNoYXJnZWRDdXJyZW5jeT86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzO1xuICBpbnN0YWxsbWVudHM/OiBUcmFuc2FjdGlvbkluc3RhbGxtZW50cztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG59XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmFuc2FjdGlvbnMudHMiXSwibmFtZXMiOlsiVHJhbnNhY3Rpb25UeXBlcyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztJQU9ZQSxnQjs7O1dBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0FBQUFBLEVBQUFBLGdCO0dBQUFBLGdCLGdDQUFBQSxnQjs7SUFLQUMsbUI7OztXQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtBQUFBQSxFQUFBQSxtQjtHQUFBQSxtQixtQ0FBQUEsbUIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25zQWNjb3VudCB7XG4gIGFjY291bnROdW1iZXI6IHN0cmluZztcbiAgYmFsYW5jZT86IG51bWJlcjtcbiAgdHhuczogVHJhbnNhY3Rpb25bXTtcbn1cblxuZXhwb3J0IGVudW0gVHJhbnNhY3Rpb25UeXBlcyB7XG4gIE5vcm1hbCA9ICdub3JtYWwnLFxuICBJbnN0YWxsbWVudHMgPSAnaW5zdGFsbG1lbnRzJ1xufVxuXG5leHBvcnQgZW51bSBUcmFuc2FjdGlvblN0YXR1c2VzIHtcbiAgQ29tcGxldGVkID0gJ2NvbXBsZXRlZCcsXG4gIFBlbmRpbmcgPSAncGVuZGluZydcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyB7XG4gIC8qKlxuICAgKiB0aGUgY3VycmVudCBpbnN0YWxsbWVudCBudW1iZXJcbiAgICovXG4gIG51bWJlcjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiB0aGUgdG90YWwgbnVtYmVyIG9mIGluc3RhbGxtZW50c1xuICAgKi9cbiAgdG90YWw6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbiB7XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXM7XG4gIC8qKlxuICAgKiBzb21ldGltZXMgY2FsbGVkIEFzbWFjaHRhXG4gICAqL1xuICBpZGVudGlmaWVyPzogc3RyaW5nIHwgbnVtYmVyO1xuICAvKipcbiAgICogSVNPIGRhdGUgc3RyaW5nXG4gICAqL1xuICBkYXRlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJU08gZGF0ZSBzdHJpbmdcbiAgICovXG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IG51bWJlcjtcbiAgb3JpZ2luYWxDdXJyZW5jeTogc3RyaW5nO1xuICBjaGFyZ2VkQW1vdW50OiBudW1iZXI7XG4gIGNoYXJnZWRDdXJyZW5jeT86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzO1xuICBpbnN0YWxsbWVudHM/OiBUcmFuc2FjdGlvbkluc3RhbGxtZW50cztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "israeli-bank-scrapers",
3
- "version": "1.10.1",
3
+ "version": "1.11.0",
4
4
  "private": false,
5
5
  "description": "Provide scrapers for all major Israeli banks and credit card companies",
6
6
  "engines": {