israeli-bank-scrapers 4.0.2 → 4.1.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
@@ -30,6 +30,7 @@ Currently only the following banks are supported:
30
30
  - Yahav (Thanks to [@gczobel](https://github.com/gczobel))
31
31
  - Beyhad Bishvilha - [ביחד בשבילך](https://www.hist.org.il/) (thanks [@esakal](https://github.com/esakal))
32
32
  - OneZero (Experimental) (thanks [@orzarchi](https://github.com/orzarchi))
33
+ - Behatsdaa - [בהצדעה](behatsdaa.org.il) (thanks [@daniel-hauser](https://github.com/daniel-hauser))
33
34
 
34
35
  # Prerequisites
35
36
  To use this you will need to have [Node.js](https://nodejs.org) >= 16.x installed.
@@ -0,0 +1 @@
1
+ export declare function assertNever(x: never, error?: string): never;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.assertNever = assertNever;
7
+
8
+ function assertNever(x, error = '') {
9
+ throw new Error(error || `Unexpected object: ${x}`);
10
+ }
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hc3NlcnROZXZlci50cyJdLCJuYW1lcyI6WyJhc3NlcnROZXZlciIsIngiLCJlcnJvciIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQU8sU0FBU0EsV0FBVCxDQUFxQkMsQ0FBckIsRUFBK0JDLEtBQUssR0FBRyxFQUF2QyxFQUFrRDtBQUN2RCxRQUFNLElBQUlDLEtBQUosQ0FBVUQsS0FBSyxJQUFLLHNCQUFxQkQsQ0FBRSxFQUEzQyxDQUFOO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gYXNzZXJ0TmV2ZXIoeDogbmV2ZXIsIGVycm9yID0gJycpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcihlcnJvciB8fCBgVW5leHBlY3RlZCBvYmplY3Q6ICR7eH1gKTtcbn1cbiJdfQ==
@@ -15,6 +15,7 @@ export declare enum CompanyTypes {
15
15
  leumi = "leumi",
16
16
  massad = "massad",
17
17
  yahav = "yahav",
18
+ behatsdaa = "behatsdaa",
18
19
  beyahadBishvilha = "beyahadBishvilha",
19
20
  oneZero = "oneZero"
20
21
  }
@@ -87,6 +88,10 @@ export declare const SCRAPERS: {
87
88
  name: string;
88
89
  loginFields: string[];
89
90
  };
91
+ behatsdaa: {
92
+ name: string;
93
+ loginFields: string[];
94
+ };
90
95
  };
91
96
  export declare enum ScraperProgressTypes {
92
97
  Initializing = "INITIALIZING",
@@ -26,6 +26,7 @@ exports.CompanyTypes = CompanyTypes;
26
26
  CompanyTypes["leumi"] = "leumi";
27
27
  CompanyTypes["massad"] = "massad";
28
28
  CompanyTypes["yahav"] = "yahav";
29
+ CompanyTypes["behatsdaa"] = "behatsdaa";
29
30
  CompanyTypes["beyahadBishvilha"] = "beyahadBishvilha";
30
31
  CompanyTypes["oneZero"] = "oneZero";
31
32
  })(CompanyTypes || (exports.CompanyTypes = CompanyTypes = {}));
@@ -100,6 +101,10 @@ const SCRAPERS = {
100
101
  [CompanyTypes.oneZero]: {
101
102
  name: 'One Zero',
102
103
  loginFields: ['email', PASSWORD_FIELD, 'otpCodeRetriever', 'phoneNumber', 'otpLongTermToken']
104
+ },
105
+ [CompanyTypes.behatsdaa]: {
106
+ name: 'Behatsdaa',
107
+ loginFields: ['id', PASSWORD_FIELD]
103
108
  }
104
109
  };
105
110
  exports.SCRAPERS = SCRAPERS;
@@ -116,4 +121,4 @@ exports.ScraperProgressTypes = ScraperProgressTypes;
116
121
  ScraperProgressTypes["EndScraping"] = "END_SCRAPING";
117
122
  ScraperProgressTypes["Terminating"] = "TERMINATING";
118
123
  })(ScraperProgressTypes || (exports.ScraperProgressTypes = ScraperProgressTypes = {}));
119
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9ucy50cyJdLCJuYW1lcyI6WyJQQVNTV09SRF9GSUVMRCIsIkNvbXBhbnlUeXBlcyIsIlNDUkFQRVJTIiwiaGFwb2FsaW0iLCJuYW1lIiwibG9naW5GaWVsZHMiLCJoYXBvYWxpbUJlT25saW5lIiwibGV1bWkiLCJtaXpyYWhpIiwiZGlzY291bnQiLCJvdHNhckhhaGF5YWwiLCJsZXVtaUNhcmQiLCJtYXgiLCJ2aXNhQ2FsIiwiaXNyYWNhcmQiLCJhbWV4IiwidW5pb24iLCJiZWlubGV1bWkiLCJtYXNzYWQiLCJ5YWhhdiIsImJleWFoYWRCaXNodmlsaGEiLCJvbmVaZXJvIiwiU2NyYXBlclByb2dyZXNzVHlwZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBRU8sTUFBTUEsY0FBYyxHQUFHLFVBQXZCOztJQUVLQyxZOzs7V0FBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7R0FBQUEsWSw0QkFBQUEsWTs7QUFvQkwsTUFBTUMsUUFBUSxHQUFHO0FBQ3RCLEdBQUNELFlBQVksQ0FBQ0UsUUFBZCxHQUF5QjtBQUN2QkMsSUFBQUEsSUFBSSxFQUFFLGVBRGlCO0FBRXZCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVBQWFMLGNBQWI7QUFGVSxHQURIO0FBS3RCLEdBQUNDLFlBQVksQ0FBQ0ssZ0JBQWQsR0FBaUM7QUFBRTtBQUNqQ0YsSUFBQUEsSUFBSSxFQUFFLGVBRHlCO0FBRS9CQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxVQUFELEVB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RGdCO0FBRXRCQyxJQUFBQSxXQUFXLEVBQUUsQ0FBQyxPQUFELEVBQVVMLGNBQVYsRUFBMEIsa0JBQTFCLEVBQThDLGFBQTlDLEVBQTZELGtCQUE3RDtBQUZTO0FBakVGLENBQWpCOztJQXVFS3NCLG9COzs7V0FBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7R0FBQUEsb0Isb0NBQUFBLG9CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTk9USUNFOiBhdm9pZCBjaGFuZ2luZyBleHBvcnRlZCBrZXlzIGFzIHRoZXkgYXJlIHBhcnQgb2YgdGhlIHB1YmxpYyBhcGlcblxuZXhwb3J0IGNvbnN0IFBBU1NXT1JEX0ZJRUxEID0gJ3Bhc3N3b3JkJztcblxuZXhwb3J0IGVudW0gQ29tcGFueVR5cGVzIHtcbiAgaGFwb2FsaW0gPSAnaGFwb2FsaW0nLFxuICBoYXBvYWxpbUJlT25saW5lID0gJ2hhcG9hbGltQmVPbmxpbmUnLFxuICBiZWlubGV1bWkgPSAnYmVpbmxldW1pJyxcbiAgdW5pb24gPSAndW5pb24nLFxuICBhbWV4ID0gJ2FtZXgnLFxuICBpc3JhY2FyZCA9ICdpc3JhY2FyZCcsXG4gIHZpc2FDYWwgPSAndmlzYUNhbCcsXG4gIG1heCA9ICdtYXgnLFxuICBsZXVtaUNhcmQgPSAnbGV1bWlDYXJkJyxcbiAgb3RzYXJIYWhheWFsID0gJ290c2FySGFoYXlhbCcsXG4gIGRpc2NvdW50ID0gJ2Rpc2NvdW50JyxcbiAgbWl6cmFoaSA9ICdtaXpyYWhpJyxcbiAgbGV1bWkgPSAnbGV1bWknLFxuICBtYXNzYWQgPSAnbWFzc2FkJyxcbiAgeWFoYXYgPSAneWFoYXYnLFxuICBiZXlhaGFkQmlzaHZpbGhhID0gJ2JleWFoYWRCaXNodmlsaGEnLFxuICBvbmVaZXJvID0gJ29uZVplcm8nXG59XG5cbmV4cG9ydCBjb25zdCBTQ1JBUEVSUyA9IHtcbiAgW0NvbXBhbnlUeXBlcy5oYXBvYWxpbV06IHtcbiAgICBuYW1lOiAnQmFuayBIYXBvYWxpbScsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlckNvZGUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuaGFwb2FsaW1CZU9ubGluZV06IHsgLy8gVE9ETyByZW1vdmUgaW4gTWFqb3IgdmVyc2lvblxuICAgIG5hbWU6ICdCYW5rIEhhcG9hbGltJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VyQ29kZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5sZXVtaV06IHtcbiAgICBuYW1lOiAnQmFuayBMZXVtaScsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubWl6cmFoaV06IHtcbiAgICBuYW1lOiAnTWl6cmFoaSBCYW5rJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5kaXNjb3VudF06IHtcbiAgICBuYW1lOiAnRGlzY291bnQgQmFuaycsXG4gICAgbG9naW5GaWVsZHM6IFsnaWQnLCBQQVNTV09SRF9GSUVMRCwgJ251bSddLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm90c2FySGFoYXlhbF06IHtcbiAgICBuYW1lOiAnQmFuayBPdHNhciBIYWhheWFsJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5sZXVtaUNhcmRdOiB7IC8vIFRPRE8gcmVtb3ZlIGluIE1ham9yIHZlcnNpb25cbiAgICBuYW1lOiAnTGV1bWkgQ2FyZCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubWF4XToge1xuICAgIG5hbWU6ICdNYXgnLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLnZpc2FDYWxdOiB7XG4gICAgbmFtZTogJ1Zpc2EgQ2FsJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5pc3JhY2FyZF06IHtcbiAgICBuYW1lOiAnSXNyYWNhcmQnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgJ2NhcmQ2RGlnaXRzJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLmFtZXhdOiB7XG4gICAgbmFtZTogJ0FtZXgnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgJ2NhcmQ2RGlnaXRzJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLnVuaW9uXToge1xuICAgIG5hbWU6ICdVbmlvbicsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuYmVpbmxldW1pXToge1xuICAgIG5hbWU6ICdCZWlubGV1bWknLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm1hc3NhZF06IHtcbiAgICBuYW1lOiAnTWFzc2FkJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy55YWhhdl06IHtcbiAgICBuYW1lOiAnQmFuayBZYWhhdicsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCAnbmF0aW9uYWxJRCcsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5iZXlhaGFkQmlzaHZpbGhhXToge1xuICAgIG5hbWU6ICdCZXlhaGFkIEJpc2h2aWxoYScsXG4gICAgbG9naW5GaWVsZHM6IFsnaWQnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMub25lWmVyb106IHtcbiAgICBuYW1lOiAnT25lIFplcm8nLFxuICAgIGxvZ2luRmllbGRzOiBbJ2VtYWlsJywgUEFTU1dPUkRfRklFTEQsICdvdHBDb2RlUmV0cmlldmVyJywgJ3Bob25lTnVtYmVyJywgJ290cExvbmdUZXJtVG9rZW4nXSxcbiAgfSxcbn07XG5cbmV4cG9ydCBlbnVtIFNjcmFwZXJQcm9ncmVzc1R5cGVzIHtcbiAgSW5pdGlhbGl6aW5nID0gJ0lOSVRJQUxJWklORycsXG4gIFN0YXJ0U2NyYXBpbmcgPSAnU1RBUlRfU0NSQVBJTkcnLFxuICBMb2dnaW5nSW4gPSAnTE9HR0lOR19JTicsXG4gIExvZ2luU3VjY2VzcyA9ICdMT0dJTl9TVUNDRVNTJyxcbiAgTG9naW5GYWlsZWQgPSAnTE9HSU5fRkFJTEVEJyxcbiAgQ2hhbmdlUGFzc3dvcmQgPSAnQ0hBTkdFX1BBU1NXT1JEJyxcbiAgRW5kU2NyYXBpbmcgPSAnRU5EX1NDUkFQSU5HJyxcbiAgVGVybWluYXRpbmcgPSAnVEVSTUlOQVRJTkcnLFxufVxuIl19
124
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZpbml0aW9ucy50cyJdLCJuYW1lcyI6WyJQQVNTV09SRF9GSUVMRCIsIkNvbXBhbnlUeXBlcyIsIlNDUkFQRVJTIiwiaGFwb2FsaW0iLCJuYW1lIiwibG9naW5GaWVsZHMiLCJoYXBvYWxpbUJlT25saW5lIiwibGV1bWkiLCJtaXpyYWhpIiwiZGlzY291bnQiLCJvdHNhckhhaGF5YWwiLCJsZXVtaUNhcmQiLCJtYXgiLCJ2aXNhQ2FsIiwiaXNyYWNhcmQiLCJhbWV4IiwidW5pb24iLCJiZWlubGV1bWkiLCJtYXNzYWQiLCJ5YWhhdiIsImJleWFoYWRCaXNodmlsaGEiLCJvbmVaZXJvIiwiYmVoYXRzZGFhIiwiU2NyYXBlclByb2dyZXNzVHlwZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBRU8sTUFBTUEsY0FBYyxHQUFHLFVBQXZCOztJQUVLQyxZOzs7V0FBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtBQUFBQSxFQUFBQSxZO0FBQUFBLEVBQUFBLFk7QUFBQUEsRUFBQUEsWTtHQUFBQSxZLDRCQUFBQSxZOztBQXFCTCxNQUFNQyxRQUFRLEdBQUc7QUFDdEIsR0FBQ0QsWUFBWSxDQUFDRSxRQUFkLEdBQXlCO0FBQ3ZCQyxJQUFBQSxJQUFJLEVBQUUsZUFEaUI7QUFFdkJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLFVBQUQsRUFBYUwsY0FBYjtBQUZVLEdBREg7QUFLdEIsR0FBQ0MsWUFBWSxDQUFDSyxnQkFBZCxHQUFpQztBQUFFO0FBQ2pDRixJQUFBQSxJQUFJLEVBQUUsZUFEeUI7QUFFL0JDLElB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QUFDdEJqQixJQUFBQSxJQUFJLEVBQUUsVUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLE9BQUQsRUFBVUwsY0FBVixFQUEwQixrQkFBMUIsRUFBOEMsYUFBOUMsRUFBNkQsa0JBQTdEO0FBRlMsR0FqRUY7QUFxRXRCLEdBQUNDLFlBQVksQ0FBQ3FCLFNBQWQsR0FBMEI7QUFDeEJsQixJQUFBQSxJQUFJLEVBQUUsV0FEa0I7QUFFeEJDLElBQUFBLFdBQVcsRUFBRSxDQUFDLElBQUQsRUFBT0wsY0FBUDtBQUZXO0FBckVKLENBQWpCOztJQTJFS3VCLG9COzs7V0FBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7QUFBQUEsRUFBQUEsb0I7R0FBQUEsb0Isb0NBQUFBLG9CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTk9USUNFOiBhdm9pZCBjaGFuZ2luZyBleHBvcnRlZCBrZXlzIGFzIHRoZXkgYXJlIHBhcnQgb2YgdGhlIHB1YmxpYyBhcGlcblxuZXhwb3J0IGNvbnN0IFBBU1NXT1JEX0ZJRUxEID0gJ3Bhc3N3b3JkJztcblxuZXhwb3J0IGVudW0gQ29tcGFueVR5cGVzIHtcbiAgaGFwb2FsaW0gPSAnaGFwb2FsaW0nLFxuICBoYXBvYWxpbUJlT25saW5lID0gJ2hhcG9hbGltQmVPbmxpbmUnLFxuICBiZWlubGV1bWkgPSAnYmVpbmxldW1pJyxcbiAgdW5pb24gPSAndW5pb24nLFxuICBhbWV4ID0gJ2FtZXgnLFxuICBpc3JhY2FyZCA9ICdpc3JhY2FyZCcsXG4gIHZpc2FDYWwgPSAndmlzYUNhbCcsXG4gIG1heCA9ICdtYXgnLFxuICBsZXVtaUNhcmQgPSAnbGV1bWlDYXJkJyxcbiAgb3RzYXJIYWhheWFsID0gJ290c2FySGFoYXlhbCcsXG4gIGRpc2NvdW50ID0gJ2Rpc2NvdW50JyxcbiAgbWl6cmFoaSA9ICdtaXpyYWhpJyxcbiAgbGV1bWkgPSAnbGV1bWknLFxuICBtYXNzYWQgPSAnbWFzc2FkJyxcbiAgeWFoYXYgPSAneWFoYXYnLFxuICBiZWhhdHNkYWEgPSAnYmVoYXRzZGFhJyxcbiAgYmV5YWhhZEJpc2h2aWxoYSA9ICdiZXlhaGFkQmlzaHZpbGhhJyxcbiAgb25lWmVybyA9ICdvbmVaZXJvJ1xufVxuXG5leHBvcnQgY29uc3QgU0NSQVBFUlMgPSB7XG4gIFtDb21wYW55VHlwZXMuaGFwb2FsaW1dOiB7XG4gICAgbmFtZTogJ0JhbmsgSGFwb2FsaW0nLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJDb2RlJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLmhhcG9hbGltQmVPbmxpbmVdOiB7IC8vIFRPRE8gcmVtb3ZlIGluIE1ham9yIHZlcnNpb25cbiAgICBuYW1lOiAnQmFuayBIYXBvYWxpbScsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlckNvZGUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubGV1bWldOiB7XG4gICAgbmFtZTogJ0JhbmsgTGV1bWknLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm1penJhaGldOiB7XG4gICAgbmFtZTogJ01penJhaGkgQmFuaycsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuZGlzY291bnRdOiB7XG4gICAgbmFtZTogJ0Rpc2NvdW50IEJhbmsnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgUEFTU1dPUkRfRklFTEQsICdudW0nXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5vdHNhckhhaGF5YWxdOiB7XG4gICAgbmFtZTogJ0JhbmsgT3RzYXIgSGFoYXlhbCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMubGV1bWlDYXJkXTogeyAvLyBUT0RPIHJlbW92ZSBpbiBNYWpvciB2ZXJzaW9uXG4gICAgbmFtZTogJ0xldW1pIENhcmQnLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm1heF06IHtcbiAgICBuYW1lOiAnTWF4JyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy52aXNhQ2FsXToge1xuICAgIG5hbWU6ICdWaXNhIENhbCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuaXNyYWNhcmRdOiB7XG4gICAgbmFtZTogJ0lzcmFjYXJkJyxcbiAgICBsb2dpbkZpZWxkczogWydpZCcsICdjYXJkNkRpZ2l0cycsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5hbWV4XToge1xuICAgIG5hbWU6ICdBbWV4JyxcbiAgICBsb2dpbkZpZWxkczogWydpZCcsICdjYXJkNkRpZ2l0cycsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy51bmlvbl06IHtcbiAgICBuYW1lOiAnVW5pb24nLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLmJlaW5sZXVtaV06IHtcbiAgICBuYW1lOiAnQmVpbmxldW1pJyxcbiAgICBsb2dpbkZpZWxkczogWyd1c2VybmFtZScsIFBBU1NXT1JEX0ZJRUxEXSxcbiAgfSxcbiAgW0NvbXBhbnlUeXBlcy5tYXNzYWRdOiB7XG4gICAgbmFtZTogJ01hc3NhZCcsXG4gICAgbG9naW5GaWVsZHM6IFsndXNlcm5hbWUnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMueWFoYXZdOiB7XG4gICAgbmFtZTogJ0JhbmsgWWFoYXYnLFxuICAgIGxvZ2luRmllbGRzOiBbJ3VzZXJuYW1lJywgJ25hdGlvbmFsSUQnLCBQQVNTV09SRF9GSUVMRF0sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuYmV5YWhhZEJpc2h2aWxoYV06IHtcbiAgICBuYW1lOiAnQmV5YWhhZCBCaXNodmlsaGEnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxuICBbQ29tcGFueVR5cGVzLm9uZVplcm9dOiB7XG4gICAgbmFtZTogJ09uZSBaZXJvJyxcbiAgICBsb2dpbkZpZWxkczogWydlbWFpbCcsIFBBU1NXT1JEX0ZJRUxELCAnb3RwQ29kZVJldHJpZXZlcicsICdwaG9uZU51bWJlcicsICdvdHBMb25nVGVybVRva2VuJ10sXG4gIH0sXG4gIFtDb21wYW55VHlwZXMuYmVoYXRzZGFhXToge1xuICAgIG5hbWU6ICdCZWhhdHNkYWEnLFxuICAgIGxvZ2luRmllbGRzOiBbJ2lkJywgUEFTU1dPUkRfRklFTERdLFxuICB9LFxufTtcblxuZXhwb3J0IGVudW0gU2NyYXBlclByb2dyZXNzVHlwZXMge1xuICBJbml0aWFsaXppbmcgPSAnSU5JVElBTElaSU5HJyxcbiAgU3RhcnRTY3JhcGluZyA9ICdTVEFSVF9TQ1JBUElORycsXG4gIExvZ2dpbmdJbiA9ICdMT0dHSU5HX0lOJyxcbiAgTG9naW5TdWNjZXNzID0gJ0xPR0lOX1NVQ0NFU1MnLFxuICBMb2dpbkZhaWxlZCA9ICdMT0dJTl9GQUlMRUQnLFxuICBDaGFuZ2VQYXNzd29yZCA9ICdDSEFOR0VfUEFTU1dPUkQnLFxuICBFbmRTY3JhcGluZyA9ICdFTkRfU0NSQVBJTkcnLFxuICBUZXJtaW5hdGluZyA9ICdURVJNSU5BVElORycsXG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Browser, Frame, Page } from 'puppeteer';
1
+ import { Browser, Frame, Page, LoadEvent } from 'puppeteer';
2
2
  import { BaseScraper } from './base-scraper';
3
3
  import { ScraperErrorTypes } from './errors';
4
4
  import { ScraperScrapingResult, ScraperCredentials } from './interface';
@@ -32,6 +32,7 @@ export interface LoginOptions {
32
32
  postAction?: () => Promise<void>;
33
33
  possibleResults: PossibleLoginResults;
34
34
  userAgent?: string;
35
+ waitUntil?: LoadEvent;
35
36
  }
36
37
  declare class BaseScraperWithBrowser<TCredentials extends ScraperCredentials> extends BaseScraper<TCredentials> {
37
38
  protected browser: Browser;
@@ -41,7 +42,7 @@ declare class BaseScraperWithBrowser<TCredentials extends ScraperCredentials> ex
41
42
  height: number;
42
43
  };
43
44
  initialize(): Promise<void>;
44
- navigateTo(url: string, page?: Page, timeout?: number): Promise<void>;
45
+ navigateTo(url: string, page?: Page, timeout?: number, waitUntil?: LoadEvent | undefined): Promise<void>;
45
46
  getLoginOptions(_credentials: ScraperCredentials): LoginOptions;
46
47
  fillInputs(pageOrFrame: Page | Frame, fields: {
47
48
  selector: string;
@@ -185,7 +185,7 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
185
185
  });
186
186
  }
187
187
 
188
- async navigateTo(url, page, timeout) {
188
+ async navigateTo(url, page, timeout, waitUntil = 'load') {
189
189
  const pageToUse = page || this.page;
190
190
 
191
191
  if (!pageToUse) {
@@ -194,6 +194,8 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
194
194
 
195
195
  const options = _objectSpread({}, timeout === null ? null : {
196
196
  timeout
197
+ }, {
198
+ waitUntil
197
199
  });
198
200
 
199
201
  const response = await pageToUse.goto(url, options); // note: response will be null when navigating to same url while changing the hash part. the condition below will always accept null as valid result.
@@ -237,7 +239,7 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
237
239
  }
238
240
 
239
241
  debug('navigate to login url');
240
- await this.navigateTo(loginOptions.loginUrl);
242
+ await this.navigateTo(loginOptions.loginUrl, undefined, undefined, loginOptions.waitUntil);
241
243
 
242
244
  if (loginOptions.checkReadiness) {
243
245
  debug('execute \'checkReadiness\' interceptor provided in login options');
@@ -332,4 +334,4 @@ class BaseScraperWithBrowser extends _baseScraper.BaseScraper {
332
334
  }
333
335
 
334
336
  exports.BaseScraperWithBrowser = BaseScraperWithBrowser;
335
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyLnRzIl0sIm5hbWVzIjpbIlZJRVdQT1JUX1dJRFRIIiwiVklFV1BPUlRfSEVJR0hUIiwiT0tfU1RBVFVTIiwiZGVidWciLCJMb2dpbkJhc2VSZXN1bHRzIiwiVGltZW91dCIsIkdlbmVyaWMiLCJHZW5lcmFsIiwiU2NyYXBlckVycm9yVHlwZXMiLCJyZXN0IiwiTG9naW5SZXN1bHRzIiwiZ2V0S2V5QnlWYWx1ZSIsIm9iamVjdCIsInZhbHVlIiwicGFnZSIsImtleXMiLCJPYmplY3QiLCJrZXkiLCJjb25kaXRpb25zIiwiY29uZGl0aW9uIiwicmVzdWx0IiwiUmVnRXhwIiwidGVzdCIsInRvTG93ZXJDYXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJVbmtub3duRXJyb3IiLCJjcmVhdGVHZW5lcmFsRXJyb3IiLCJzdWNjZXNzIiwiZXJyb3JUeXBlIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsIkJhc2VTY3JhcGVyIiwiZ2V0Vmlld1BvcnQiLCJ3aWR0aCIsImhlaWdodCIsImluaXRpYWxpemUiLCJlbWl0UHJvZ3Jlc3MiLCJTY3JhcGVyUHJvZ3Jlc3NUeXBlcyIsIkluaXRpYWxpemluZyIsImVudiIsIm9wdGlvbnMiLCJ2ZXJib3NlIiwiREVCVUciLCJwcm9jZXNzIiwiYnJvd3NlciIsImV4ZWN1dGFibGVQYXRoIiwidW5kZWZpbmVkIiwiYXJncyIsInRpbWVvdXQiLCJoZWFkbGVzcyIsInNob3dCcm93c2VyIiwicHVwcGV0ZWVyIiwibGF1bmNoIiwicHJlcGFyZUJyb3dzZXIiLCJwYWdlcyIsImxlbmd0aCIsIm5ld1BhZ2UiLCJkZWZhdWx0VGltZW91dCIsInNldERlZmF1bHRUaW1lb3V0IiwicHJlcGFyZVBhZ2UiLCJ2aWV3cG9ydCIsInNldFZpZXdwb3J0Iiwib24iLCJyZXF1ZXN0IiwiZmFpbHVyZSIsImVycm9yVGV4dCIsInVybCIsIm5hdmlnYXRlVG8iLCJwYWdlVG9Vc2UiLCJyZXNwb25zZSIsImdvdG8iLCJzdGF0dXMiLCJFcnJvciIsImdldExvZ2luT3B0aW9ucyIsIl9jcmVkZW50aWFscyIsImNvbXBhbnlJZCIsImZpbGxJbnB1dHMiLCJwYWdlT3JGcmFtZSIsImZpZWxkcyIsIm1vZGlmaWVkIiwiaW5wdXQiLCJzaGlmdCIsInNlbGVjdG9yIiwibG9naW4iLCJjcmVkZW50aWFscyIsImxvZ2luT3B0aW9ucyIsInVzZXJBZ2VudCIsInNldFVzZXJBZ2VudCIsImxvZ2luVXJsIiwiY2hlY2tSZWFkaW5lc3MiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImxvZ2luRnJhbWVPclBhZ2UiLCJwcmVBY3Rpb24iLCJMb2dnaW5nSW4iLCJwb3N0QWN0aW9uIiwiY3VycmVudCIsImxvZ2luUmVzdWx0IiwicG9zc2libGVSZXN1bHRzIiwiaGFuZGxlTG9naW5SZXN1bHQiLCJ0ZXJtaW5hdGUiLCJfc3VjY2VzcyIsIlRlcm1pbmF0aW5nIiwic3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGgiLCJzY3JlZW5zaG90IiwicGF0aCIsImZ1bGxQYWdlIiwiY2xvc2UiLCJTdWNjZXNzIiwiTG9naW5TdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwiTG9naW5GYWlsZWQiLCJlcnJvck1lc3NhZ2UiLCJDaGFuZ2VQYXNzd29yZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSxjQUFjLEdBQUcsSUFBdkI7QUFDQSxNQUFNQyxlQUFlLEdBQUcsR0FBeEI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsR0FBbEI7QUFFQSxNQUFNQyxLQUFLLEdBQUcscUJBQVMsMkJBQVQsQ0FBZDtJQUVLQyxnQjs7V0FBQUEsZ0I7QUFBQUEsRUFBQUEsZ0I7QUFBQUEsRUFBQUEsZ0I7R0FBQUEsZ0IsS0FBQUEsZ0I7O0FBS0wsTUFBTTtBQUNKQyxFQUFBQSxPQURJO0FBQ0tDLEVBQUFBLE9BREw7QUFDY0Ms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QUFFT1IsRUFBQUEsaUJBQVIsQ0FBMEJGLFdBQTFCLEVBQXFEO0FBQ25ELFlBQVFBLFdBQVI7QUFDRSxXQUFLdEYsWUFBWSxDQUFDaUcsT0FBbEI7QUFDRSxhQUFLdkUsWUFBTCxDQUFrQkMsa0NBQXFCdUUsWUFBdkM7QUFDQSxlQUFPO0FBQUVoRixVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUFQOztBQUNGLFdBQUtsQixZQUFZLENBQUNtRyxlQUFsQjtBQUNBLFdBQUtuRyxZQUFZLENBQUNnQixZQUFsQjtBQUNFLGFBQUtVLFlBQUwsQ0FBa0JDLGtDQUFxQnlFLFdBQXZDO0FBQ0EsZUFBTztBQUNMbEYsVUFBQUEsT0FBTyxFQUFFLEtBREo7QUFFTEMsVUFBQUEsU0FBUyxFQUFFbUUsV0FBVyxLQUFLdEYsWUFBWSxDQUFDbUcsZUFBN0IsR0FBK0NyRywwQkFBa0JxRyxlQUFqRSxHQUNUckcsMEJBQWtCRCxPQUhmO0FBSUx3RyxVQUFBQSxZQUFZLEVBQUcscUJBQW9CZixXQUFZO0FBSjFDLFNBQVA7O0FBTUYsV0FBS3RGLFlBQVksQ0FBQ3NHLGNBQWxCO0FBQ0UsYUFBSzVFLFlBQUwsQ0FBa0JDLGtDQUFxQjJFLGNBQXZDO0FBQ0EsZUFBTztBQUNMcEYsVUFBQUEsT0FBTyxFQUFFLEtBREo7QUFFTEMsVUFBQUEsU0FBUyxFQUFFckIsMEJBQWtCd0c7QUFGeEIsU0FBUDs7QUFJRjtBQUNFLGNBQU0sSUFBSXhDLEtBQUosQ0FBVyw0QkFBMkJ3QixXQUFZLEdBQWxELENBQU47QUFwQko7QUFzQkQ7O0FBdk5xRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwdXBwZXRlZXIsIHsgQnJvd3NlciwgRnJhbWUsIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuXG5pbXBvcnQge1xuICBCYXNlU2NyYXBlcixcblxufSBmcm9tICcuL2Jhc2Utc2NyYXBlcic7XG5pbXBvcnQgeyBnZXRDdXJyZW50VXJsLCB3YWl0Rm9yTmF2aWdhdGlvbiB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBjbGlja0J1dHRvbiwgZmlsbElucHV0LCB3YWl0VW50aWxFbGVtZW50Rm91bmQgfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHsgU2NyYXBlckVycm9yVHlwZXMgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyBTY3JhcGVyU2NyYXBpbmdSZXN1bHQsIFNjcmFwZXJDcmVkZW50aWFscyB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IFNjcmFwZXJQcm9ncmVzc1R5cGVzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuXG5jb25zdCBWSUVXUE9SVF9XSURUSCA9IDEwMjQ7XG5jb25zdCBWSUVXUE9SVF9IRUlHSFQgPSA3Njg7XG5jb25zdCBPS19TVEFUVVMgPSAyMDA7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInKTtcblxuZW51bSBMb2dpbkJhc2VSZXN1bHRzIHtcbiAgU3VjY2VzcyA9ICdTVUNDRVNTJyxcbiAgVW5rbm93bkVycm9yID0gJ1VOS05PV05fRVJST1InXG59XG5cbmNvbnN0IHtcbiAgVGltZW91dCwgR2VuZXJpYywgR2VuZXJhbCwgLi4ucmVzdFxufSA9IFNjcmFwZXJFcnJvclR5cGVzO1xuZXhwb3J0IGNvbnN0IExvZ2luUmVzdWx0cyA9IHtcbiAgLi4ucmVzdCxcbiAgLi4uTG9naW5CYXNlUmVzdWx0cyxcbn07XG5cbmV4cG9ydCB0eXBlIExvZ2luUmVzdWx0cyA9IEV4Y2x1ZGU8U2NyYXBlckVycm9yVHlwZXMsXG5TY3JhcGVyRXJyb3JUeXBlcy5UaW1lb3V0XG58IFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyaWNcbnwgU2NyYXBlckVycm9yVHlwZXMuR2VuZXJhbD4gfCBMb2dpbkJhc2VSZXN1bHRzO1xuXG5leHBvcnQgdHlwZSBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHtcbiAgW2tleSBpbiBMb2dpblJlc3VsdHNdPzogKHN0cmluZyB8IFJlZ0V4cCB8ICgob3B0aW9ucz86IHsgcGFnZT86IFBhZ2V9KSA9PiBQcm9taXNlPGJvb2xlYW4+KSlbXVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBMb2dpbk9wdGlvbnMge1xuICBsb2dpblVybDogc3RyaW5nO1xuICBjaGVja1JlYWRpbmVzcz86ICgpID0+IFByb21pc2U8dm9pZD47XG4gIGZpZWxkczoge3NlbGVjdG9yOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmd9W107XG4gIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiBzdHJpbmcgfCAoKCkgPT4gUHJvbWlzZTx2b2lkPik7XG4gIHByZUFjdGlvbj86ICgpID0+IFByb21pc2U8RnJhbWUgfCB2b2lkPjtcbiAgcG9zdEFjdGlvbj86ICgpID0+IFByb21pc2U8dm9pZD47XG4gIHBvc3NpYmxlUmVzdWx0czogUG9zc2libGVMb2dpblJlc3VsdHM7XG4gIHVzZXJBZ2VudD86IHN0cmluZztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0S2V5QnlWYWx1ZShvYmplY3Q6IFBvc3NpYmxlTG9naW5SZXN1bHRzLCB2YWx1ZTogc3RyaW5nLCBwYWdlOiBQYWdlKTogUHJvbWlzZTxMb2dpblJlc3VsdHM+IHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgY29uZGl0aW9ucyA9IG9iamVjdFtrZXldO1xuXG4gICAgZm9yIChjb25zdCBjb25kaXRpb24gb2YgY29uZGl0aW9ucykge1xuICAgICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgICBpZiAoY29uZGl0aW9uIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgIHJlc3VsdCA9IGNvbmRpdGlvbi50ZXN0KHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCBjb25kaXRpb24oeyBwYWdlLCB2YWx1ZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09IGNvbmRpdGlvbi50b0xvd2VyQ2FzZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoTG9naW5SZXN1bHRzLlVua25vd25FcnJvcik7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUdlbmVyYWxFcnJvcigpOiBTY3JhcGVyU2NyYXBpbmdSZXN1bHQge1xuICByZXR1cm4ge1xuICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuR2VuZXJhbCxcbiAgfTtcbn1cblxuY2xhc3MgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxUQ3JlZGVudGlhbHMgZXh0ZW5kcyBTY3JhcGVyQ3JlZGVudGlhbHM+IGV4dGVuZHMgQmFzZVNjcmFwZXI8VENyZWRlbnRpYWxzPiB7XG4gIC8vIE5PVElDRSAtIGl0IGlzIGRpc2NvdXJhZ2VkIHRvIHVzZSBiYW5nICghKSBpbiBnZW5lcmFsLiBJdCBpcyB1c2VkIGhlcmUgYmVjYXVzZVxuICAvLyBhbGwgdGhlIGNsYXNzZXMgdGhhdCBpbmhlcml0IGZyb20gdGhpcyBiYXNlIGFzc3VtZSBpcyBpdCBtYW5kYXRvcnkuXG4gIHByb3RlY3RlZCBicm93c2VyITogQnJvd3NlcjtcblxuICAvLyBOT1RJQ0UgLSBpdCBpcyBkaXNjb3VyYWdlZCB0byB1c2UgYmFuZyAoISkgaW4gZ2VuZXJhbC4gSXQgaXMgdXNlZCBoZXJlIGJlY2F1c2VcbiAgLy8gYWxsIHRoZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIHRoaXMgYmFzZSBhc3N1bWUgaXMgaXQgbWFuZGF0b3J5LlxuICBwcm90ZWN0ZWQgcGFnZSE6IFBhZ2U7XG5cbiAgcHJvdGVjdGVkIGdldFZpZXdQb3J0KCkge1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogVklFV1BPUlRfV0lEVEgsXG4gICAgICBoZWlnaHQ6IFZJRVdQT1JUX0hFSUdIVCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICBhd2FpdCBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgZGVidWcoJ2luaXRpYWxpemUgc2NyYXBlcicpO1xuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjcmFwZXJQcm9ncmVzc1R5cGVzLkluaXRpYWxpemluZyk7XG5cbiAgICBsZXQgZW52OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgZW52ID0geyBERUJVRzogJyonLCAuLi5wcm9jZXNzLmVudiB9O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLmJyb3dzZXIgIT09ICd1bmRlZmluZWQnICYmIHRoaXMub3B0aW9ucy5icm93c2VyICE9PSBudWxsKSB7XG4gICAgICBkZWJ1ZygndXNlIGN1c3RvbSBicm93c2VyIGluc3RhbmNlIHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIHRoaXMuYnJvd3NlciA9IHRoaXMub3B0aW9ucy5icm93c2VyO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBleGVjdXRhYmxlUGF0aCA9IHRoaXMub3B0aW9ucy5leGVjdXRhYmxlUGF0aCB8fCB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBhcmdzID0gdGhpcy5vcHRpb25zLmFyZ3MgfHwgW107XG4gICAgICBjb25zdCB7IHRpbWVvdXQgfSA9IHRoaXMub3B0aW9ucztcblxuICAgICAgY29uc3QgaGVhZGxlc3MgPSAhdGhpcy5vcHRpb25zLnNob3dCcm93c2VyO1xuICAgICAgZGVidWcoYGxhdW5jaCBhIGJyb3dzZXIgd2l0aCBoZWFkbGVzcyBtb2RlID0gJHtoZWFkbGVzc31gKTtcbiAgICAgIHRoaXMuYnJvd3NlciA9IGF3YWl0IHB1cHBldGVlci5sYXVuY2goe1xuICAgICAgICBlbnYsXG4gICAgICAgIGhlYWRsZXNzLFxuICAgICAgICBleGVjdXRhYmxlUGF0aCxcbiAgICAgICAgYXJncyxcbiAgICAgICAgdGltZW91dCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMucHJlcGFyZUJyb3dzZXIpIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ3ByZXBhcmVCcm93c2VyXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IHRoaXMub3B0aW9ucy5wcmVwYXJlQnJvd3Nlcih0aGlzLmJyb3dzZXIpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5icm93c2VyKSB7XG4gICAgICBkZWJ1ZygnZmFpbGVkIHRvIGluaXRpYXRlIGEgYnJvd3NlciwgZXhpdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhZ2VzID0gYXdhaXQgdGhpcy5icm93c2VyLnBhZ2VzKCk7XG4gICAgaWYgKHBhZ2VzLmxlbmd0aCkge1xuICAgICAgZGVidWcoJ2Jyb3dzZXIgaGFzIGFscmVhZHkgcGFnZXMgb3BlbiwgdXNlIHRoZSBmaXJzdCBvbmUnKTtcbiAgICAgIFt0aGlzLnBhZ2VdID0gcGFnZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCdjcmVhdGUgYSBuZXcgYnJvd3NlciBwYWdlJyk7XG4gICAgICB0aGlzLnBhZ2UgPSBhd2FpdCB0aGlzLmJyb3dzZXIubmV3UGFnZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuZGVmYXVsdFRpbWVvdXQpIHtcbiAgICAgIHRoaXMucGFnZS5zZXREZWZhdWx0VGltZW91dCh0aGlzLm9wdGlvbnMuZGVmYXVsdFRpbWVvdXQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMucHJlcGFyZVBhZ2UpIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ3ByZXBhcmVQYWdlXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IHRoaXMub3B0aW9ucy5wcmVwYXJlUGFnZSh0aGlzLnBhZ2UpO1xuICAgIH1cblxuICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy5nZXRWaWV3UG9ydCgpO1xuICAgIGRlYnVnKGBzZXQgdmlld3BvcnQgdG8gd2lkdGggJHt2aWV3cG9ydC53aWR0aH0sIGhlaWdodCAke3ZpZXdwb3J0LmhlaWdodH1gKTtcbiAgICBhd2FpdCB0aGlzLnBhZ2Uuc2V0Vmlld3BvcnQoe1xuICAgICAgd2lkdGg6IHZpZXdwb3J0LndpZHRoLFxuICAgICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgfSk7XG5cbiAgICB0aGlzLnBhZ2Uub24oJ3JlcXVlc3RmYWlsZWQnLCAocmVxdWVzdCkgPT4ge1xuICAgICAgZGVidWcoJ1JlcXVlc3QgZmFpbGVkOiAlcyAlcycsIHJlcXVlc3QuZmFpbHVyZSgpPy5lcnJvclRleHQsIHJlcXVlc3QudXJsKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbmF2aWdhdGVUbyh1cmw6IHN0cmluZywgcGFnZT86IFBhZ2UsIHRpbWVvdXQ/OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYWdlVG9Vc2UgPSBwYWdlIHx8IHRoaXMucGFnZTtcblxuICAgIGlmICghcGFnZVRvVXNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgLi4uKHRpbWVvdXQgPT09IG51bGwgPyBudWxsIDogeyB0aW1lb3V0IH0pIH07XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBwYWdlVG9Vc2UuZ290byh1cmwsIG9wdGlvbnMpO1xuXG4gICAgLy8gbm90ZTogcmVzcG9uc2Ugd2lsbCBiZSBudWxsIHdoZW4gbmF2aWdhdGluZyB0byBzYW1lIHVybCB3aGlsZSBjaGFuZ2luZyB0aGUgaGFzaCBwYXJ0LiB0aGUgY29uZGl0aW9uIGJlbG93IHdpbGwgYWx3YXlzIGFjY2VwdCBudWxsIGFzIHZhbGlkIHJlc3VsdC5cbiAgICBpZiAocmVzcG9uc2UgIT09IG51bGwgJiYgKHJlc3BvbnNlID09PSB1bmRlZmluZWQgfHwgcmVzcG9uc2Uuc3RhdHVzKCkgIT09IE9LX1NUQVRVUykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3Igd2hpbGUgdHJ5aW5nIHRvIG5hdmlnYXRlIHRvIHVybCAke3VybH1gKTtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGdldExvZ2luT3B0aW9ucyhfY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscyk6IExvZ2luT3B0aW9ucyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBnZXRMb2dpbk9wdGlvbnMoKSBpcyBub3QgY3JlYXRlZCBpbiAke3RoaXMub3B0aW9ucy5jb21wYW55SWR9YCk7XG4gIH1cblxuICBhc3luYyBmaWxsSW5wdXRzKHBhZ2VPckZyYW1lOiBQYWdlIHwgRnJhbWUsIGZpZWxkczogeyBzZWxlY3Rvcjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbW9kaWZpZWQgPSBbLi4uZmllbGRzXTtcbiAgICBjb25zdCBpbnB1dCA9IG1vZGlmaWVkLnNoaWZ0KCk7XG5cbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IGZpbGxJbnB1dChwYWdlT3JGcmFtZSwgaW5wdXQuc2VsZWN0b3IsIGlucHV0LnZhbHVlKTtcbiAgICBpZiAobW9kaWZpZWQubGVuZ3RoKSB7XG4gICAgICBhd2FpdCB0aGlzLmZpbGxJbnB1dHMocGFnZU9yRnJhbWUsIG1vZGlmaWVkKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2dpbihjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKTogUHJvbWlzZTxTY3JhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBpZiAoIWNyZWRlbnRpYWxzIHx8ICF0aGlzLnBhZ2UpIHtcbiAgICAgIHJldHVybiBjcmVhdGVHZW5lcmFsRXJyb3IoKTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnZXhlY3V0ZSBsb2dpbiBwcm9jZXNzJyk7XG4gICAgY29uc3QgbG9naW5PcHRpb25zID0gdGhpcy5nZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHMpO1xuXG4gICAgaWYgKGxvZ2luT3B0aW9ucy51c2VyQWdlbnQpIHtcbiAgICAgIGRlYnVnKCdzZXQgY3VzdG9tIHVzZXIgYWdlbnQgcHJvdmlkZWQgaW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgdGhpcy5wYWdlLnNldFVzZXJBZ2VudChsb2dpbk9wdGlvbnMudXNlckFnZW50KTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gdXJsJyk7XG4gICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvKGxvZ2luT3B0aW9ucy5sb2dpblVybCk7XG4gICAgaWYgKGxvZ2luT3B0aW9ucy5jaGVja1JlYWRpbmVzcykge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwnY2hlY2tSZWFkaW5lc3NcXCcgaW50ZXJjZXB0b3IgcHJvdmlkZWQgaW4gbG9naW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgbG9naW5PcHRpb25zLmNoZWNrUmVhZGluZXNzKCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbG9naW5PcHRpb25zLnN1Ym1pdEJ1dHRvblNlbGVjdG9yID09PSAnc3RyaW5nJykge1xuICAgICAgZGVidWcoJ3dhaXQgdW50aWwgc3VibWl0IGJ1dHRvbiBpcyBhdmFpbGFibGUnKTtcbiAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3Rvcik7XG4gICAgfVxuXG4gICAgbGV0IGxvZ2luRnJhbWVPclBhZ2U6IChQYWdlIHwgRnJhbWUgfCBudWxsKSA9IHRoaXMucGFnZTtcbiAgICBpZiAobG9naW5PcHRpb25zLnByZUFjdGlvbikge1xuICAgICAgZGVidWcoJ2V4ZWN1dGUgXFwncHJlQWN0aW9uXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIGxvZ2luIG9wdGlvbnMnKTtcbiAgICAgIGxvZ2luRnJhbWVPclBhZ2UgPSBhd2FpdCBsb2dpbk9wdGlvbnMucHJlQWN0aW9uKCkgfHwgdGhpcy5wYWdlO1xuICAgIH1cblxuICAgIGRlYnVnKCdmaWxsIGxvZ2luIGNvbXBvbmVudHMgaW5wdXQgd2l0aCByZWxldmFudCB2YWx1ZXMnKTtcbiAgICBhd2FpdCB0aGlzLmZpbGxJbnB1dHMobG9naW5GcmFtZU9yUGFnZSwgbG9naW5PcHRpb25zLmZpZWxkcyk7XG4gICAgZGVidWcoJ2NsaWNrIG9uIGxvZ2luIHN1Ym1pdCBidXR0b24nKTtcbiAgICBpZiAodHlwZW9mIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3RvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKGxvZ2luRnJhbWVPclBhZ2UsIGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3Rvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGxvZ2luT3B0aW9ucy5zdWJtaXRCdXR0b25TZWxlY3RvcigpO1xuICAgIH1cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dnaW5nSW4pO1xuXG4gICAgaWYgKGxvZ2luT3B0aW9ucy5wb3N0QWN0aW9uKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdwb3N0QWN0aW9uXFwnIGludGVyY2VwdG9yIHByb3ZpZGVkIGluIGxvZ2luIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IGxvZ2luT3B0aW9ucy5wb3N0QWN0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCd3YWl0IGZvciBwYWdlIG5hdmlnYXRpb24nKTtcbiAgICAgIGF3YWl0IHdhaXRGb3JOYXZpZ2F0aW9uKHRoaXMucGFnZSk7XG4gICAgfVxuXG4gICAgZGVidWcoJ2NoZWNrIGxvZ2luIHJlc3VsdCcpO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCBnZXRDdXJyZW50VXJsKHRoaXMucGFnZSwgdHJ1ZSk7XG4gICAgY29uc3QgbG9naW5SZXN1bHQgPSBhd2FpdCBnZXRLZXlCeVZhbHVlKGxvZ2luT3B0aW9ucy5wb3NzaWJsZVJlc3VsdHMsIGN1cnJlbnQsIHRoaXMucGFnZSk7XG4gICAgZGVidWcoYGhhbmRsZSBsb2dpbiByZXN1bHRzICR7bG9naW5SZXN1bHR9YCk7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlTG9naW5SZXN1bHQobG9naW5SZXN1bHQpO1xuICB9XG5cbiAgYXN5bmMgdGVybWluYXRlKF9zdWNjZXNzOiBib29sZWFuKSB7XG4gICAgZGVidWcoYHRlcm1pbmF0aW5nIGJyb3dzZXIgd2l0aCBzdWNjZXNzID0gJHtfc3VjY2Vzc31gKTtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5UZXJtaW5hdGluZyk7XG5cbiAgICBpZiAoIV9zdWNjZXNzICYmICEhdGhpcy5vcHRpb25zLnN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoKSB7XG4gICAgICBkZWJ1ZyhgY3JlYXRlIGEgc25hcHNob3QgYmVmb3JlIHRlcm1pbmF0ZWQgaW4gJHt0aGlzLm9wdGlvbnMuc3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGh9YCk7XG4gICAgICBhd2FpdCB0aGlzLnBhZ2Uuc2NyZWVuc2hvdCh7XG4gICAgICAgIHBhdGg6IHRoaXMub3B0aW9ucy5zdG9yZUZhaWx1cmVTY3JlZW5TaG90UGF0aCxcbiAgICAgICAgZnVsbFBhZ2U6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuYnJvd3Nlci5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVMb2dpblJlc3VsdChsb2dpblJlc3VsdDogTG9naW5SZXN1bHRzKSB7XG4gICAgc3dpdGNoIChsb2dpblJlc3VsdCkge1xuICAgICAgY2FzZSBMb2dpblJlc3VsdHMuU3VjY2VzczpcbiAgICAgICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NyYXBlclByb2dyZXNzVHlwZXMuTG9naW5TdWNjZXNzKTtcbiAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xuICAgICAgY2FzZSBMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkOlxuICAgICAgY2FzZSBMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yOlxuICAgICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpbkZhaWxlZCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgZXJyb3JUeXBlOiBsb2dpblJlc3VsdCA9PT0gTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZCA/IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCA6XG4gICAgICAgICAgICBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmFsLFxuICAgICAgICAgIGVycm9yTWVzc2FnZTogYExvZ2luIGZhaWxlZCB3aXRoICR7bG9naW5SZXN1bHR9IGVycm9yYCxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkOlxuICAgICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5DaGFuZ2VQYXNzd29yZCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5DaGFuZ2VQYXNzd29yZCxcbiAgICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBsb2dpbiByZXN1bHQgXCIke2xvZ2luUmVzdWx0fVwiYCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIgfTtcbiJdfQ==
337
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyLnRzIl0sIm5hbWVzIjpbIlZJRVdQT1JUX1dJRFRIIiwiVklFV1BPUlRfSEVJR0hUIiwiT0tfU1RBVFVTIiwiZGVidWciLCJMb2dpbkJhc2VSZXN1bHRzIiwiVGltZW91dCIsIkdlbmVyaWMiLCJHZW5lcmFsIiwiU2NyYXBlckVycm9yVHlwZXMiLCJyZXN0IiwiTG9naW5SZXN1bHRzIiwiZ2V0S2V5QnlWYWx1ZSIsIm9iamVjdCIsInZhbHVlIiwicGFnZSIsImtleXMiLCJPYmplY3QiLCJrZXkiLCJjb25kaXRpb25zIiwiY29uZGl0aW9uIiwicmVzdWx0IiwiUmVnRXhwIiwidGVzdCIsInRvTG93ZXJDYXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJVbmtub3duRXJyb3IiLCJjcmVhdGVHZW5lcmFsRXJyb3IiLCJzdWNjZXNzIiwiZXJyb3JUeXBlIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsIkJhc2VTY3JhcGVyIiwiZ2V0Vmlld1BvcnQiLCJ3aWR0aCIsImhlaWdodCIsImluaXRpYWxpemUiLCJlbWl0UHJvZ3Jlc3MiLCJTY3JhcGVyUHJvZ3Jlc3NUeXBlcyIsIkluaXRpYWxpemluZyIsImVudiIsIm9wdGlvbnMiLCJ2ZXJib3NlIiwiREVCVUciLCJwcm9jZXNzIiwiYnJvd3NlciIsImV4ZWN1dGFibGVQYXRoIiwidW5kZWZpbmVkIiwiYXJncyIsInRpbWVvdXQiLCJoZWFkbGVzcyIsInNob3dCcm93c2VyIiwicHVwcGV0ZWVyIiwibGF1bmNoIiwicHJlcGFyZUJyb3dzZXIiLCJwYWdlcyIsImxlbmd0aCIsIm5ld1BhZ2UiLCJkZWZhdWx0VGltZW91dCIsInNldERlZmF1bHRUaW1lb3V0IiwicHJlcGFyZVBhZ2UiLCJ2aWV3cG9ydCIsInNldFZpZXdwb3J0Iiwib24iLCJyZXF1ZXN0IiwiZmFpbHVyZSIsImVycm9yVGV4dCIsInVybCIsIm5hdmlnYXRlVG8iLCJ3YWl0VW50aWwiLCJwYWdlVG9Vc2UiLCJyZXNwb25zZSIsImdvdG8iLCJzdGF0dXMiLCJFcnJvciIsImdldExvZ2luT3B0aW9ucyIsIl9jcmVkZW50aWFscyIsImNvbXBhbnlJZCIsImZpbGxJbnB1dHMiLCJwYWdlT3JGcmFtZSIsImZpZWxkcyIsIm1vZGlmaWVkIiwiaW5wdXQiLCJzaGlmdCIsInNlbGVjdG9yIiwibG9naW4iLCJjcmVkZW50aWFscyIsImxvZ2luT3B0aW9ucyIsInVzZXJBZ2VudCIsInNldFVzZXJBZ2VudCIsImxvZ2luVXJsIiwiY2hlY2tSZWFkaW5lc3MiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImxvZ2luRnJhbWVPclBhZ2UiLCJwcmVBY3Rpb24iLCJMb2dnaW5nSW4iLCJwb3N0QWN0aW9uIiwiY3VycmVudCIsImxvZ2luUmVzdWx0IiwicG9zc2libGVSZXN1bHRzIiwiaGFuZGxlTG9naW5SZXN1bHQiLCJ0ZXJtaW5hdGUiLCJfc3VjY2VzcyIsIlRlcm1pbmF0aW5nIiwic3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGgiLCJzY3JlZW5zaG90IiwicGF0aCIsImZ1bGxQYWdlIiwiY2xvc2UiLCJTdWNjZXNzIiwiTG9naW5TdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwiTG9naW5GYWlsZWQiLCJlcnJvck1lc3NhZ2UiLCJDaGFuZ2VQYXNzd29yZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFJQTs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7QUFFQSxNQUFNQSxjQUFjLEdBQUcsSUFBdkI7QUFDQSxNQUFNQyxlQUFlLEdBQUcsR0FBeEI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsR0FBbEI7QUFFQSxNQUFNQyxLQUFLLEdBQUcscUJBQVMsMkJBQVQsQ0FBZDtJQUVLQyxnQjs7V0FBQUEsZ0I7QUFBQUEsRUFBQUEsZ0I7QUFBQUEsRUFBQUEsZ0I7R0FBQUEsZ0IsS0FBQUEsZ0I7O0FBS0wsTUFBTTtBQUNKQyxFQUFBQSxPQURJO0FBQ0tDLEVBQUFB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RmUsT0FBckIsQ0FBTjtBQUlEOztBQUVELFFBQUksQ0FBQyxLQUFLOUQsT0FBVixFQUFtQjtBQUNqQjtBQUNEOztBQUVELFVBQU0sS0FBS0EsT0FBTCxDQUFhK0QsS0FBYixFQUFOO0FBQ0Q7O0FBRU9SLEVBQUFBLGlCQUFSLENBQTBCRixXQUExQixFQUFxRDtBQUNuRCxZQUFRQSxXQUFSO0FBQ0UsV0FBS3ZGLFlBQVksQ0FBQ2tHLE9BQWxCO0FBQ0UsYUFBS3hFLFlBQUwsQ0FBa0JDLGtDQUFxQndFLFlBQXZDO0FBQ0EsZUFBTztBQUFFakYsVUFBQUEsT0FBTyxFQUFFO0FBQVgsU0FBUDs7QUFDRixXQUFLbEIsWUFBWSxDQUFDb0csZUFBbEI7QUFDQSxXQUFLcEcsWUFBWSxDQUFDZ0IsWUFBbEI7QUFDRSxhQUFLVSxZQUFMLENBQWtCQyxrQ0FBcUIwRSxXQUF2QztBQUNBLGVBQU87QUFDTG5GLFVBQUFBLE9BQU8sRUFBRSxLQURKO0FBRUxDLFVBQUFBLFNBQVMsRUFBRW9FLFdBQVcsS0FBS3ZGLFlBQVksQ0FBQ29HLGVBQTdCLEdBQStDdEcsMEJBQWtCc0csZUFBakUsR0FDVHRHLDBCQUFrQkQsT0FIZjtBQUlMeUcsVUFBQUEsWUFBWSxFQUFHLHFCQUFvQmYsV0FBWTtBQUoxQyxTQUFQOztBQU1GLFdBQUt2RixZQUFZLENBQUN1RyxjQUFsQjtBQUNFLGFBQUs3RSxZQUFMLENBQWtCQyxrQ0FBcUI0RSxjQUF2QztBQUNBLGVBQU87QUFDTHJGLFVBQUFBLE9BQU8sRUFBRSxLQURKO0FBRUxDLFVBQUFBLFNBQVMsRUFBRXJCLDBCQUFrQnlHO0FBRnhCLFNBQVA7O0FBSUY7QUFDRSxjQUFNLElBQUl4QyxLQUFKLENBQVcsNEJBQTJCd0IsV0FBWSxHQUFsRCxDQUFOO0FBcEJKO0FBc0JEOztBQXZOcUciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcHVwcGV0ZWVyLCB7XG4gIEJyb3dzZXIsIEZyYW1lLCBQYWdlLCBMb2FkRXZlbnQsXG59IGZyb20gJ3B1cHBldGVlcic7XG5cbmltcG9ydCB7XG4gIEJhc2VTY3JhcGVyLFxuXG59IGZyb20gJy4vYmFzZS1zY3JhcGVyJztcbmltcG9ydCB7IGdldEN1cnJlbnRVcmwsIHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IGNsaWNrQnV0dG9uLCBmaWxsSW5wdXQsIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCB9IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5pbXBvcnQgeyBTY3JhcGVyRXJyb3JUeXBlcyB9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCB7IFNjcmFwZXJTY3JhcGluZ1Jlc3VsdCwgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2NyYXBlclByb2dyZXNzVHlwZXMgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5cbmNvbnN0IFZJRVdQT1JUX1dJRFRIID0gMTAyNDtcbmNvbnN0IFZJRVdQT1JUX0hFSUdIVCA9IDc2ODtcbmNvbnN0IE9LX1NUQVRVUyA9IDIwMDtcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3NlcicpO1xuXG5lbnVtIExvZ2luQmFzZVJlc3VsdHMge1xuICBTdWNjZXNzID0gJ1NVQ0NFU1MnLFxuICBVbmtub3duRXJyb3IgPSAnVU5LTk9XTl9FUlJPUidcbn1cblxuY29uc3Qge1xuICBUaW1lb3V0LCBHZW5lcmljLCBHZW5lcmFsLCAuLi5yZXN0XG59ID0gU2NyYXBlckVycm9yVHlwZXM7XG5leHBvcnQgY29uc3QgTG9naW5SZXN1bHRzID0ge1xuICAuLi5yZXN0LFxuICAuLi5Mb2dpbkJhc2VSZXN1bHRzLFxufTtcblxuZXhwb3J0IHR5cGUgTG9naW5SZXN1bHRzID0gRXhjbHVkZTxTY3JhcGVyRXJyb3JUeXBlcyxcblNjcmFwZXJFcnJvclR5cGVzLlRpbWVvdXRcbnwgU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpY1xufCBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmFsPiB8IExvZ2luQmFzZVJlc3VsdHM7XG5cbmV4cG9ydCB0eXBlIFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge1xuICBba2V5IGluIExvZ2luUmVzdWx0c10/OiAoc3RyaW5nIHwgUmVnRXhwIHwgKChvcHRpb25zPzogeyBwYWdlPzogUGFnZX0pID0+IFByb21pc2U8Ym9vbGVhbj4pKVtdXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luT3B0aW9ucyB7XG4gIGxvZ2luVXJsOiBzdHJpbmc7XG4gIGNoZWNrUmVhZGluZXNzPzogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZmllbGRzOiB7c2VsZWN0b3I6IHN0cmluZywgdmFsdWU6IHN0cmluZ31bXTtcbiAgc3VibWl0QnV0dG9uU2VsZWN0b3I6IHN0cmluZyB8ICgoKSA9PiBQcm9taXNlPHZvaWQ+KTtcbiAgcHJlQWN0aW9uPzogKCkgPT4gUHJvbWlzZTxGcmFtZSB8IHZvaWQ+O1xuICBwb3N0QWN0aW9uPzogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcG9zc2libGVSZXN1bHRzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cztcbiAgdXNlckFnZW50Pzogc3RyaW5nO1xuICB3YWl0VW50aWw/OiBMb2FkRXZlbnQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEtleUJ5VmFsdWUob2JqZWN0OiBQb3NzaWJsZUxvZ2luUmVzdWx0cywgdmFsdWU6IHN0cmluZywgcGFnZTogUGFnZSk6IFByb21pc2U8TG9naW5SZXN1bHRzPiB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBvYmplY3Rba2V5XTtcblxuICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGNvbmRpdGlvbnMpIHtcbiAgICAgIGxldCByZXN1bHQgPSBmYWxzZTtcblxuICAgICAgaWYgKGNvbmRpdGlvbiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXN1bHQgPSBjb25kaXRpb24udGVzdCh2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb25kaXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgY29uZGl0aW9uKHsgcGFnZSwgdmFsdWUgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBjb25kaXRpb24udG9Mb3dlckNhc2UoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKExvZ2luUmVzdWx0cy5Vbmtub3duRXJyb3IpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVHZW5lcmFsRXJyb3IoKTogU2NyYXBlclNjcmFwaW5nUmVzdWx0IHtcbiAgcmV0dXJuIHtcbiAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyYWwsXG4gIH07XG59XG5cbmNsYXNzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXI8VENyZWRlbnRpYWxzIGV4dGVuZHMgU2NyYXBlckNyZWRlbnRpYWxzPiBleHRlbmRzIEJhc2VTY3JhcGVyPFRDcmVkZW50aWFscz4ge1xuICAvLyBOT1RJQ0UgLSBpdCBpcyBkaXNjb3VyYWdlZCB0byB1c2UgYmFuZyAoISkgaW4gZ2VuZXJhbC4gSXQgaXMgdXNlZCBoZXJlIGJlY2F1c2VcbiAgLy8gYWxsIHRoZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIHRoaXMgYmFzZSBhc3N1bWUgaXMgaXQgbWFuZGF0b3J5LlxuICBwcm90ZWN0ZWQgYnJvd3NlciE6IEJyb3dzZXI7XG5cbiAgLy8gTk9USUNFIC0gaXQgaXMgZGlzY291cmFnZWQgdG8gdXNlIGJhbmcgKCEpIGluIGdlbmVyYWwuIEl0IGlzIHVzZWQgaGVyZSBiZWNhdXNlXG4gIC8vIGFsbCB0aGUgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbSB0aGlzIGJhc2UgYXNzdW1lIGlzIGl0IG1hbmRhdG9yeS5cbiAgcHJvdGVjdGVkIHBhZ2UhOiBQYWdlO1xuXG4gIHByb3RlY3RlZCBnZXRWaWV3UG9ydCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IFZJRVdQT1JUX1dJRFRILFxuICAgICAgaGVpZ2h0OiBWSUVXUE9SVF9IRUlHSFQsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgYXdhaXQgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgIGRlYnVnKCdpbml0aWFsaXplIHNjcmFwZXInKTtcbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5Jbml0aWFsaXppbmcpO1xuXG4gICAgbGV0IGVudjogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgIGVudiA9IHsgREVCVUc6ICcqJywgLi4ucHJvY2Vzcy5lbnYgfTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5icm93c2VyICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm9wdGlvbnMuYnJvd3NlciAhPT0gbnVsbCkge1xuICAgICAgZGVidWcoJ3VzZSBjdXN0b20gYnJvd3NlciBpbnN0YW5jZSBwcm92aWRlZCBpbiBvcHRpb25zJyk7XG4gICAgICB0aGlzLmJyb3dzZXIgPSB0aGlzLm9wdGlvbnMuYnJvd3NlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXhlY3V0YWJsZVBhdGggPSB0aGlzLm9wdGlvbnMuZXhlY3V0YWJsZVBhdGggfHwgdW5kZWZpbmVkO1xuICAgICAgY29uc3QgYXJncyA9IHRoaXMub3B0aW9ucy5hcmdzIHx8IFtdO1xuICAgICAgY29uc3QgeyB0aW1lb3V0IH0gPSB0aGlzLm9wdGlvbnM7XG5cbiAgICAgIGNvbnN0IGhlYWRsZXNzID0gIXRoaXMub3B0aW9ucy5zaG93QnJvd3NlcjtcbiAgICAgIGRlYnVnKGBsYXVuY2ggYSBicm93c2VyIHdpdGggaGVhZGxlc3MgbW9kZSA9ICR7aGVhZGxlc3N9YCk7XG4gICAgICB0aGlzLmJyb3dzZXIgPSBhd2FpdCBwdXBwZXRlZXIubGF1bmNoKHtcbiAgICAgICAgZW52LFxuICAgICAgICBoZWFkbGVzcyxcbiAgICAgICAgZXhlY3V0YWJsZVBhdGgsXG4gICAgICAgIGFyZ3MsXG4gICAgICAgIHRpbWVvdXQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnByZXBhcmVCcm93c2VyKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdwcmVwYXJlQnJvd3NlclxcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCB0aGlzLm9wdGlvbnMucHJlcGFyZUJyb3dzZXIodGhpcy5icm93c2VyKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYnJvd3Nlcikge1xuICAgICAgZGVidWcoJ2ZhaWxlZCB0byBpbml0aWF0ZSBhIGJyb3dzZXIsIGV4aXQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYWdlcyA9IGF3YWl0IHRoaXMuYnJvd3Nlci5wYWdlcygpO1xuICAgIGlmIChwYWdlcy5sZW5ndGgpIHtcbiAgICAgIGRlYnVnKCdicm93c2VyIGhhcyBhbHJlYWR5IHBhZ2VzIG9wZW4sIHVzZSB0aGUgZmlyc3Qgb25lJyk7XG4gICAgICBbdGhpcy5wYWdlXSA9IHBhZ2VzO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWJ1ZygnY3JlYXRlIGEgbmV3IGJyb3dzZXIgcGFnZScpO1xuICAgICAgdGhpcy5wYWdlID0gYXdhaXQgdGhpcy5icm93c2VyLm5ld1BhZ2UoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmRlZmF1bHRUaW1lb3V0KSB7XG4gICAgICB0aGlzLnBhZ2Uuc2V0RGVmYXVsdFRpbWVvdXQodGhpcy5vcHRpb25zLmRlZmF1bHRUaW1lb3V0KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnByZXBhcmVQYWdlKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdwcmVwYXJlUGFnZVxcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCB0aGlzLm9wdGlvbnMucHJlcGFyZVBhZ2UodGhpcy5wYWdlKTtcbiAgICB9XG5cbiAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuZ2V0Vmlld1BvcnQoKTtcbiAgICBkZWJ1Zyhgc2V0IHZpZXdwb3J0IHRvIHdpZHRoICR7dmlld3BvcnQud2lkdGh9LCBoZWlnaHQgJHt2aWV3cG9ydC5oZWlnaHR9YCk7XG4gICAgYXdhaXQgdGhpcy5wYWdlLnNldFZpZXdwb3J0KHtcbiAgICAgIHdpZHRoOiB2aWV3cG9ydC53aWR0aCxcbiAgICAgIGhlaWdodDogdmlld3BvcnQuaGVpZ2h0LFxuICAgIH0pO1xuXG4gICAgdGhpcy5wYWdlLm9uKCdyZXF1ZXN0ZmFpbGVkJywgKHJlcXVlc3QpID0+IHtcbiAgICAgIGRlYnVnKCdSZXF1ZXN0IGZhaWxlZDogJXMgJXMnLCByZXF1ZXN0LmZhaWx1cmUoKT8uZXJyb3JUZXh0LCByZXF1ZXN0LnVybCgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG5hdmlnYXRlVG8odXJsOiBzdHJpbmcsIHBhZ2U/OiBQYWdlLCB0aW1lb3V0PzogbnVtYmVyLCB3YWl0VW50aWw6IExvYWRFdmVudCB8IHVuZGVmaW5lZCA9ICdsb2FkJyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBhZ2VUb1VzZSA9IHBhZ2UgfHwgdGhpcy5wYWdlO1xuXG4gICAgaWYgKCFwYWdlVG9Vc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zID0geyAuLi4odGltZW91dCA9PT0gbnVsbCA/IG51bGwgOiB7IHRpbWVvdXQgfSksIHdhaXRVbnRpbCB9O1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcGFnZVRvVXNlLmdvdG8odXJsLCBvcHRpb25zKTtcblxuICAgIC8vIG5vdGU6IHJlc3BvbnNlIHdpbGwgYmUgbnVsbCB3aGVuIG5hdmlnYXRpbmcgdG8gc2FtZSB1cmwgd2hpbGUgY2hhbmdpbmcgdGhlIGhhc2ggcGFydC4gdGhlIGNvbmRpdGlvbiBiZWxvdyB3aWxsIGFsd2F5cyBhY2NlcHQgbnVsbCBhcyB2YWxpZCByZXN1bHQuXG4gICAgaWYgKHJlc3BvbnNlICE9PSBudWxsICYmIChyZXNwb25zZSA9PT0gdW5kZWZpbmVkIHx8IHJlc3BvbnNlLnN0YXR1cygpICE9PSBPS19TVEFUVVMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIHdoaWxlIHRyeWluZyB0byBuYXZpZ2F0ZSB0byB1cmwgJHt1cmx9YCk7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBnZXRMb2dpbk9wdGlvbnMoX2NyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpOiBMb2dpbk9wdGlvbnMge1xuICAgIHRocm93IG5ldyBFcnJvcihgZ2V0TG9naW5PcHRpb25zKCkgaXMgbm90IGNyZWF0ZWQgaW4gJHt0aGlzLm9wdGlvbnMuY29tcGFueUlkfWApO1xuICB9XG5cbiAgYXN5bmMgZmlsbElucHV0cyhwYWdlT3JGcmFtZTogUGFnZSB8IEZyYW1lLCBmaWVsZHM6IHsgc2VsZWN0b3I6IHN0cmluZywgdmFsdWU6IHN0cmluZ31bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1vZGlmaWVkID0gWy4uLmZpZWxkc107XG4gICAgY29uc3QgaW5wdXQgPSBtb2RpZmllZC5zaGlmdCgpO1xuXG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCBmaWxsSW5wdXQocGFnZU9yRnJhbWUsIGlucHV0LnNlbGVjdG9yLCBpbnB1dC52YWx1ZSk7XG4gICAgaWYgKG1vZGlmaWVkLmxlbmd0aCkge1xuICAgICAgYXdhaXQgdGhpcy5maWxsSW5wdXRzKHBhZ2VPckZyYW1lLCBtb2RpZmllZCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbG9naW4oY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscyk6IFByb21pc2U8U2NyYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgaWYgKCFjcmVkZW50aWFscyB8fCAhdGhpcy5wYWdlKSB7XG4gICAgICByZXR1cm4gY3JlYXRlR2VuZXJhbEVycm9yKCk7XG4gICAgfVxuXG4gICAgZGVidWcoJ2V4ZWN1dGUgbG9naW4gcHJvY2VzcycpO1xuICAgIGNvbnN0IGxvZ2luT3B0aW9ucyA9IHRoaXMuZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzKTtcblxuICAgIGlmIChsb2dpbk9wdGlvbnMudXNlckFnZW50KSB7XG4gICAgICBkZWJ1Zygnc2V0IGN1c3RvbSB1c2VyIGFnZW50IHByb3ZpZGVkIGluIG9wdGlvbnMnKTtcbiAgICAgIGF3YWl0IHRoaXMucGFnZS5zZXRVc2VyQWdlbnQobG9naW5PcHRpb25zLnVzZXJBZ2VudCk7XG4gICAgfVxuXG4gICAgZGVidWcoJ25hdmlnYXRlIHRvIGxvZ2luIHVybCcpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhsb2dpbk9wdGlvbnMubG9naW5VcmwsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBsb2dpbk9wdGlvbnMud2FpdFVudGlsKTtcbiAgICBpZiAobG9naW5PcHRpb25zLmNoZWNrUmVhZGluZXNzKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdjaGVja1JlYWRpbmVzc1xcJyBpbnRlcmNlcHRvciBwcm92aWRlZCBpbiBsb2dpbiBvcHRpb25zJyk7XG4gICAgICBhd2FpdCBsb2dpbk9wdGlvbnMuY2hlY2tSZWFkaW5lc3MoKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBsb2dpbk9wdGlvbnMuc3VibWl0QnV0dG9uU2VsZWN0b3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBkZWJ1Zygnd2FpdCB1bnRpbCBzdWJtaXQgYnV0dG9uIGlzIGF2YWlsYWJsZScpO1xuICAgICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgbG9naW5PcHRpb25zLnN1Ym1pdEJ1dHRvblNlbGVjdG9yKTtcbiAgICB9XG5cbiAgICBsZXQgbG9naW5GcmFtZU9yUGFnZTogKFBhZ2UgfCBGcmFtZSB8IG51bGwpID0gdGhpcy5wYWdlO1xuICAgIGlmIChsb2dpbk9wdGlvbnMucHJlQWN0aW9uKSB7XG4gICAgICBkZWJ1ZygnZXhlY3V0ZSBcXCdwcmVBY3Rpb25cXCcgaW50ZXJjZXB0b3IgcHJvdmlkZWQgaW4gbG9naW4gb3B0aW9ucycpO1xuICAgICAgbG9naW5GcmFtZU9yUGFnZSA9IGF3YWl0IGxvZ2luT3B0aW9ucy5wcmVBY3Rpb24oKSB8fCB0aGlzLnBhZ2U7XG4gICAgfVxuXG4gICAgZGVidWcoJ2ZpbGwgbG9naW4gY29tcG9uZW50cyBpbnB1dCB3aXRoIHJlbGV2YW50IHZhbHVlcycpO1xuICAgIGF3YWl0IHRoaXMuZmlsbElucHV0cyhsb2dpbkZyYW1lT3JQYWdlLCBsb2dpbk9wdGlvbnMuZmllbGRzKTtcbiAgICBkZWJ1ZygnY2xpY2sgb24gbG9naW4gc3VibWl0IGJ1dHRvbicpO1xuICAgIGlmICh0eXBlb2YgbG9naW5PcHRpb25zLnN1Ym1pdEJ1dHRvblNlbGVjdG9yID09PSAnc3RyaW5nJykge1xuICAgICAgYXdhaXQgY2xpY2tCdXR0b24obG9naW5GcmFtZU9yUGFnZSwgbG9naW5PcHRpb25zLnN1Ym1pdEJ1dHRvblNlbGVjdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgbG9naW5PcHRpb25zLnN1Ym1pdEJ1dHRvblNlbGVjdG9yKCk7XG4gICAgfVxuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjcmFwZXJQcm9ncmVzc1R5cGVzLkxvZ2dpbmdJbik7XG5cbiAgICBpZiAobG9naW5PcHRpb25zLnBvc3RBY3Rpb24pIHtcbiAgICAgIGRlYnVnKCdleGVjdXRlIFxcJ3Bvc3RBY3Rpb25cXCcgaW50ZXJjZXB0b3IgcHJvdmlkZWQgaW4gbG9naW4gb3B0aW9ucycpO1xuICAgICAgYXdhaXQgbG9naW5PcHRpb25zLnBvc3RBY3Rpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWcoJ3dhaXQgZm9yIHBhZ2UgbmF2aWdhdGlvbicpO1xuICAgICAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24odGhpcy5wYWdlKTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnY2hlY2sgbG9naW4gcmVzdWx0Jyk7XG4gICAgY29uc3QgY3VycmVudCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlLCB0cnVlKTtcbiAgICBjb25zdCBsb2dpblJlc3VsdCA9IGF3YWl0IGdldEtleUJ5VmFsdWUobG9naW5PcHRpb25zLnBvc3NpYmxlUmVzdWx0cywgY3VycmVudCwgdGhpcy5wYWdlKTtcbiAgICBkZWJ1ZyhgaGFuZGxlIGxvZ2luIHJlc3VsdHMgJHtsb2dpblJlc3VsdH1gKTtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVMb2dpblJlc3VsdChsb2dpblJlc3VsdCk7XG4gIH1cblxuICBhc3luYyB0ZXJtaW5hdGUoX3N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICBkZWJ1ZyhgdGVybWluYXRpbmcgYnJvd3NlciB3aXRoIHN1Y2Nlc3MgPSAke19zdWNjZXNzfWApO1xuICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjcmFwZXJQcm9ncmVzc1R5cGVzLlRlcm1pbmF0aW5nKTtcblxuICAgIGlmICghX3N1Y2Nlc3MgJiYgISF0aGlzLm9wdGlvbnMuc3RvcmVGYWlsdXJlU2NyZWVuU2hvdFBhdGgpIHtcbiAgICAgIGRlYnVnKGBjcmVhdGUgYSBzbmFwc2hvdCBiZWZvcmUgdGVybWluYXRlZCBpbiAke3RoaXMub3B0aW9ucy5zdG9yZUZhaWx1cmVTY3JlZW5TaG90UGF0aH1gKTtcbiAgICAgIGF3YWl0IHRoaXMucGFnZS5zY3JlZW5zaG90KHtcbiAgICAgICAgcGF0aDogdGhpcy5vcHRpb25zLnN0b3JlRmFpbHVyZVNjcmVlblNob3RQYXRoLFxuICAgICAgICBmdWxsUGFnZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5icm93c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5icm93c2VyLmNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUxvZ2luUmVzdWx0KGxvZ2luUmVzdWx0OiBMb2dpblJlc3VsdHMpIHtcbiAgICBzd2l0Y2ggKGxvZ2luUmVzdWx0KSB7XG4gICAgICBjYXNlIExvZ2luUmVzdWx0cy5TdWNjZXNzOlxuICAgICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpblN1Y2Nlc3MpO1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgICBjYXNlIExvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmQ6XG4gICAgICBjYXNlIExvZ2luUmVzdWx0cy5Vbmtub3duRXJyb3I6XG4gICAgICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjcmFwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICBlcnJvclR5cGU6IGxvZ2luUmVzdWx0ID09PSBMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkID8gU2NyYXBlckVycm9yVHlwZXMuSW52YWxpZFBhc3N3b3JkIDpcbiAgICAgICAgICAgIFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyYWwsXG4gICAgICAgICAgZXJyb3JNZXNzYWdlOiBgTG9naW4gZmFpbGVkIHdpdGggJHtsb2dpblJlc3VsdH0gZXJyb3JgLFxuICAgICAgICB9O1xuICAgICAgY2FzZSBMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmQ6XG4gICAgICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjcmFwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgICB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIGxvZ2luIHJlc3VsdCBcIiR7bG9naW5SZXN1bHR9XCJgKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB9O1xuIl19
@@ -0,0 +1,11 @@
1
+ import { BaseScraperWithBrowser, LoginOptions } from './base-scraper-with-browser';
2
+ import { ScraperScrapingResult } from './interface';
3
+ declare type ScraperSpecificCredentials = {
4
+ id: string;
5
+ password: string;
6
+ };
7
+ declare class BehatsdaaScraper extends BaseScraperWithBrowser<ScraperSpecificCredentials> {
8
+ getLoginOptions(credentials: ScraperSpecificCredentials): LoginOptions;
9
+ fetchData(): Promise<ScraperScrapingResult>;
10
+ }
11
+ export default BehatsdaaScraper;
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.iterator");
4
+
5
+ require("core-js/modules/es.promise");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _moment = _interopRequireDefault(require("moment"));
13
+
14
+ var _debug = require("../helpers/debug");
15
+
16
+ var _fetch = require("../helpers/fetch");
17
+
18
+ var _transactions = require("../transactions");
19
+
20
+ var _baseScraperWithBrowser = require("./base-scraper-with-browser");
21
+
22
+ var _elementsInteractions = require("../helpers/elements-interactions");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ const BASE_URL = 'https://www.behatsdaa.org.il';
27
+ const LOGIN_URL = `${BASE_URL}/login`;
28
+ const PURCHASE_HISTORY_URL = 'https://back.behatsdaa.org.il/api/purchases/purchaseHistory';
29
+ const debug = (0, _debug.getDebug)('behatsdaa');
30
+
31
+ function variantToTransaction(variant) {
32
+ return {
33
+ type: _transactions.TransactionTypes.Normal,
34
+ identifier: variant.tTransactionID,
35
+ date: (0, _moment.default)(variant.orderDate).format('YYYY-MM-DD'),
36
+ processedDate: (0, _moment.default)(variant.orderDate).format('YYYY-MM-DD'),
37
+ originalAmount: variant.customerPrice,
38
+ originalCurrency: 'ILS',
39
+ chargedAmount: variant.customerPrice,
40
+ chargedCurrency: 'ILS',
41
+ description: variant.name,
42
+ status: _transactions.TransactionStatuses.Completed,
43
+ memo: variant.variantName
44
+ };
45
+ }
46
+
47
+ class BehatsdaaScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
48
+ getLoginOptions(credentials) {
49
+ return {
50
+ loginUrl: LOGIN_URL,
51
+ fields: [{
52
+ selector: '#loginId',
53
+ value: credentials.id
54
+ }, {
55
+ selector: '#loginPassword',
56
+ value: credentials.password
57
+ }],
58
+ checkReadiness: async () => {
59
+ await Promise.all([(0, _elementsInteractions.waitUntilElementFound)(this.page, '#loginPassword'), (0, _elementsInteractions.waitUntilElementFound)(this.page, '#loginId')]);
60
+ },
61
+ possibleResults: {
62
+ [_baseScraperWithBrowser.LoginResults.Success]: [`${BASE_URL}/`],
63
+ [_baseScraperWithBrowser.LoginResults.InvalidPassword]: ['.custom-input-error-label']
64
+ },
65
+ submitButtonSelector: async () => {
66
+ await this.page.waitForTimeout(1000);
67
+ debug('Trying to find submit button');
68
+ const [button] = await this.page.$x("//button[contains(., 'התחברות')]");
69
+
70
+ if (button) {
71
+ debug('Submit button found');
72
+ await button.click();
73
+ } else {
74
+ debug('Submit button not found');
75
+ }
76
+ }
77
+ };
78
+ }
79
+
80
+ async fetchData() {
81
+ var _res$data;
82
+
83
+ const token = await this.page.evaluate(() => window.localStorage.getItem('userToken'));
84
+
85
+ if (!token) {
86
+ debug('Token not found in local storage');
87
+ return {
88
+ success: false,
89
+ errorMessage: 'TokenNotFound'
90
+ };
91
+ }
92
+
93
+ const body = {
94
+ FromDate: (0, _moment.default)(this.options.startDate).format('YYYY-MM-DDTHH:mm:ss'),
95
+ ToDate: (0, _moment.default)().format('YYYY-MM-DDTHH:mm:ss'),
96
+ BenefitStatusId: null
97
+ };
98
+ debug('Fetching data');
99
+ const res = await (0, _fetch.fetchPostWithinPage)(this.page, PURCHASE_HISTORY_URL, body, {
100
+ authorization: `Bearer ${token}`,
101
+ 'Content-Type': 'application/json',
102
+ organizationid: '20'
103
+ });
104
+ debug('Data fetched');
105
+
106
+ if ((res === null || res === void 0 ? void 0 : res.errorDescription) || (res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.errorDescription)) {
107
+ var _res$data2;
108
+
109
+ debug('Error fetching data', res.errorDescription || ((_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.errorDescription));
110
+ return {
111
+ success: false,
112
+ errorMessage: res.errorDescription
113
+ };
114
+ }
115
+
116
+ if (!(res === null || res === void 0 ? void 0 : res.data)) {
117
+ debug('No data found');
118
+ return {
119
+ success: false,
120
+ errorMessage: 'NoData'
121
+ };
122
+ }
123
+
124
+ debug('Data fetched successfully');
125
+ return {
126
+ success: true,
127
+ accounts: [{
128
+ accountNumber: res.data.memberId,
129
+ txns: res.data.variants.map(variantToTransaction)
130
+ }]
131
+ };
132
+ }
133
+
134
+ }
135
+
136
+ var _default = BehatsdaaScraper;
137
+ exports.default = _default;
138
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iZWhhdHNkYWEudHMiXSwibmFtZXMiOlsiQkFTRV9VUkwiLCJMT0dJTl9VUkwiLCJQVVJDSEFTRV9ISVNUT1JZX1VSTCIsImRlYnVnIiwidmFyaWFudFRvVHJhbnNhY3Rpb24iLCJ2YXJpYW50IiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwidFRyYW5zYWN0aW9uSUQiLCJkYXRlIiwib3JkZXJEYXRlIiwiZm9ybWF0IiwicHJvY2Vzc2VkRGF0ZSIsIm9yaWdpbmFsQW1vdW50IiwiY3VzdG9tZXJQcmljZSIsIm9yaWdpbmFsQ3VycmVuY3kiLCJjaGFyZ2VkQW1vdW50IiwiY2hhcmdlZEN1cnJlbmN5IiwiZGVzY3JpcHRpb24iLCJuYW1lIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsIm1lbW8iLCJ2YXJpYW50TmFtZSIsIkJlaGF0c2RhYVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwiY3JlZGVudGlhbHMiLCJsb2dpblVybCIsImZpZWxkcyIsInNlbGVjdG9yIiwidmFsdWUiLCJpZCIsInBhc3N3b3JkIiwiY2hlY2tSZWFkaW5lc3MiLCJQcm9taXNlIiwiYWxsIiwicGFnZSIsInBvc3NpYmxlUmVzdWx0cyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsIndhaXRGb3JUaW1lb3V0IiwiYnV0dG9uIiwiJHgiLCJjbGljayIsImZldGNoRGF0YSIsInRva2VuIiwiZXZhbHVhdGUiLCJ3aW5kb3ciLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwic3VjY2VzcyIsImVycm9yTWVzc2FnZSIsImJvZHkiLCJGcm9tRGF0ZSIsIm9wdGlvbnMiLCJzdGFydERhdGUiLCJUb0RhdGUiLCJCZW5lZml0U3RhdHVzSWQiLCJyZXMiLCJhdXRob3JpemF0aW9uIiwib3JnYW5pemF0aW9uaWQiLCJlcnJvckRlc2NyaXB0aW9uIiwiZGF0YSIsImFjY291bnRzIiwiYWNjb3VudE51bWJlciIsIm1lbWJlcklkIiwidHhucyIsInZhcmlhbnRzIiwibWFwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLDhCQUFqQjtBQUNBLE1BQU1DLFNBQVMsR0FBSSxHQUFFRCxRQUFTLFFBQTlCO0FBQ0EsTUFBTUUsb0JBQW9CLEdBQUcsNkRBQTdCO0FBRUEsTUFBTUMsS0FBSyxHQUFHLHFCQUFTLFdBQVQsQ0FBZDs7QUFxQkEsU0FBU0Msb0JBQVQsQ0FBOEJDLE9BQTlCLEVBQTZEO0FBQzNELFNBQU87QUFDTEMsSUFBQUEsSUFBSSxFQUFFQywrQkFBaUJDLE1BRGxCO0FBRUxDLElBQUFBLFVBQVUsRUFBRUosT0FBTyxDQUFDSyxjQUZmO0FBR0xDLElBQUFBLElBQUksRUFBRSxxQkFBT04sT0FBTyxDQUFDTyxTQUFmLEVBQTBCQyxNQUExQixDQUFpQyxZQUFqQyxDQUhEO0FBSUxDLElBQUFBLGFBQWEsRUFBRSxxQkFBT1QsT0FBTyxDQUFDTyxTQUFmLEVBQTBCQyxNQUExQixDQUFpQyxZQUFqQyxDQUpWO0FBS0xFLElBQUFBLGNBQWMsRUFBRVYsT0FBTyxDQUFDVyxhQUxuQjtBQU1MQyxJQUFBQSxnQkFBZ0IsRUFBRSxLQU5iO0FBT0xDLElBQUFBLGFBQWEsRUFBRWIsT0FBTyxDQUFDVyxhQVBsQjtBQVFMRyxJQUFBQSxlQUFlLEVBQUUsS0FSWjtBQVNMQyxJQUFBQSxXQUFXLEVBQUVmLE9BQU8sQ0FBQ2dCLElBVGhCO0FBVUxDLElBQUFBLE1BQU0sRUFBRUMsa0NBQW9CQyxTQVZ2QjtBQVdMQyxJQUFBQSxJQUFJLEVBQUVwQixPQUFPLENBQUNxQjtBQVhULEdBQVA7QUFhRDs7QUFFRCxNQUFNQyxnQkFBTixTQUErQkMsOENBQS9CLENBQWtGO0FBQ3pFQyxFQUFBQSxl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RCxFQUF3QjZELEdBQUcsQ0FBQ0csZ0JBQUosbUJBQXdCSCxHQUFHLENBQUNJLElBQTVCLCtDQUF3QixXQUFVRCxnQkFBbEMsQ0FBeEIsQ0FBTDtBQUNBLGFBQU87QUFBRVgsUUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JDLFFBQUFBLFlBQVksRUFBRU8sR0FBRyxDQUFDRztBQUFwQyxPQUFQO0FBQ0Q7O0FBRUQsUUFBSSxFQUFDSCxHQUFELGFBQUNBLEdBQUQsdUJBQUNBLEdBQUcsQ0FBRUksSUFBTixDQUFKLEVBQWdCO0FBQ2RqRSxNQUFBQSxLQUFLLENBQUMsZUFBRCxDQUFMO0FBQ0EsYUFBTztBQUFFcUQsUUFBQUEsT0FBTyxFQUFFLEtBQVg7QUFBa0JDLFFBQUFBLFlBQVksRUFBRTtBQUFoQyxPQUFQO0FBQ0Q7O0FBRUR0RCxJQUFBQSxLQUFLLENBQUMsMkJBQUQsQ0FBTDtBQUNBLFdBQU87QUFDTHFELE1BQUFBLE9BQU8sRUFBRSxJQURKO0FBRUxhLE1BQUFBLFFBQVEsRUFBRSxDQUFDO0FBQ1RDLFFBQUFBLGFBQWEsRUFBRU4sR0FBRyxDQUFDSSxJQUFKLENBQVNHLFFBRGY7QUFFVEMsUUFBQUEsSUFBSSxFQUFFUixHQUFHLENBQUNJLElBQUosQ0FBU0ssUUFBVCxDQUFrQkMsR0FBbEIsQ0FBc0J0RSxvQkFBdEI7QUFGRyxPQUFEO0FBRkwsS0FBUDtBQU9EOztBQTVFK0U7O2VBK0VuRXVCLGdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcbmltcG9ydCB7IGZldGNoUG9zdFdpdGhpblBhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL2ZldGNoJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luT3B0aW9ucywgTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IFNjcmFwZXJTY3JhcGluZ1Jlc3VsdCB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCB9IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcblxuY29uc3QgQkFTRV9VUkwgPSAnaHR0cHM6Ly93d3cuYmVoYXRzZGFhLm9yZy5pbCc7XG5jb25zdCBMT0dJTl9VUkwgPSBgJHtCQVNFX1VSTH0vbG9naW5gO1xuY29uc3QgUFVSQ0hBU0VfSElTVE9SWV9VUkwgPSAnaHR0cHM6Ly9iYWNrLmJlaGF0c2RhYS5vcmcuaWwvYXBpL3B1cmNoYXNlcy9wdXJjaGFzZUhpc3RvcnknO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCdiZWhhdHNkYWEnKTtcblxudHlwZSBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyA9IHsgaWQ6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyB9O1xuXG50eXBlIFZhcmlhbnQgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFyaWFudE5hbWU6IHN0cmluZztcbiAgY3VzdG9tZXJQcmljZTogbnVtYmVyO1xuICBvcmRlckRhdGU6IHN0cmluZzsgLy8gSVNPIHRpbWVzdGFtcCB3aXRoIG5vIHRpbWV6b25lXG4gIHRUcmFuc2FjdGlvbklEOiBzdHJpbmc7XG59O1xuXG50eXBlIFB1cmNoYXNlSGlzdG9yeVJlc3BvbnNlID0ge1xuICBkYXRhPzoge1xuICAgIGVycm9yRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgbWVtYmVySWQ6IHN0cmluZztcbiAgICB2YXJpYW50czogVmFyaWFudFtdO1xuICB9O1xuICBlcnJvckRlc2NyaXB0aW9uPzogc3RyaW5nO1xufTtcblxuZnVuY3Rpb24gdmFyaWFudFRvVHJhbnNhY3Rpb24odmFyaWFudDogVmFyaWFudCk6IFRyYW5zYWN0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICBpZGVudGlmaWVyOiB2YXJpYW50LnRUcmFuc2FjdGlvbklELFxuICAgIGRhdGU6IG1vbWVudCh2YXJpYW50Lm9yZGVyRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyksXG4gICAgcHJvY2Vzc2VkRGF0ZTogbW9tZW50KHZhcmlhbnQub3JkZXJEYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKSxcbiAgICBvcmlnaW5hbEFtb3VudDogdmFyaWFudC5jdXN0b21lclByaWNlLFxuICAgIG9yaWdpbmFsQ3VycmVuY3k6ICdJTFMnLFxuICAgIGNoYXJnZWRBbW91bnQ6IHZhcmlhbnQuY3VzdG9tZXJQcmljZSxcbiAgICBjaGFyZ2VkQ3VycmVuY3k6ICdJTFMnLFxuICAgIGRlc2NyaXB0aW9uOiB2YXJpYW50Lm5hbWUsXG4gICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICBtZW1vOiB2YXJpYW50LnZhcmlhbnROYW1lLFxuICB9O1xufVxuXG5jbGFzcyBCZWhhdHNkYWFTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBwdWJsaWMgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyk6IExvZ2luT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBMT0dJTl9VUkwsXG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAgeyBzZWxlY3RvcjogJyNsb2dpbklkJywgdmFsdWU6IGNyZWRlbnRpYWxzLmlkIH0sXG4gICAgICAgIHsgc2VsZWN0b3I6ICcjbG9naW5QYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICAgICAgXSxcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2xvZ2luUGFzc3dvcmQnKSxcbiAgICAgICAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2xvZ2luSWQnKSxcbiAgICAgICAgXSk7XG4gICAgICB9LFxuICAgICAgcG9zc2libGVSZXN1bHRzOiB7XG4gICAgICAgIFtMb2dpblJlc3VsdHMuU3VjY2Vzc106IFtgJHtCQVNFX1VSTH0vYF0sXG4gICAgICAgIFtMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXTogWycuY3VzdG9tLWlucHV0LWVycm9yLWxhYmVsJ10sXG4gICAgICB9LFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wYWdlLndhaXRGb3JUaW1lb3V0KDEwMDApO1xuICAgICAgICBkZWJ1ZygnVHJ5aW5nIHRvIGZpbmQgc3VibWl0IGJ1dHRvbicpO1xuICAgICAgICBjb25zdCBbYnV0dG9uXSA9IGF3YWl0IHRoaXMucGFnZS4keChcIi8vYnV0dG9uW2NvbnRhaW5zKC4sICfXlNeq15fXkdeo15XXqicpXVwiKTtcbiAgICAgICAgaWYgKGJ1dHRvbikge1xuICAgICAgICAgIGRlYnVnKCdTdWJtaXQgYnV0dG9uIGZvdW5kJyk7XG4gICAgICAgICAgYXdhaXQgYnV0dG9uLmNsaWNrKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVidWcoJ1N1Ym1pdCBidXR0b24gbm90IGZvdW5kJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpOiBQcm9taXNlPFNjcmFwZXJTY3JhcGluZ1Jlc3VsdD4ge1xuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgdGhpcy5wYWdlLmV2YWx1YXRlKCgpID0+IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlclRva2VuJykpO1xuICAgIGlmICghdG9rZW4pIHtcbiAgICAgIGRlYnVnKCdUb2tlbiBub3QgZm91bmQgaW4gbG9jYWwgc3RvcmFnZScpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1Rva2VuTm90Rm91bmQnLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgRnJvbURhdGU6IG1vbWVudCh0aGlzLm9wdGlvbnMuc3RhcnREYXRlKS5mb3JtYXQoJ1lZWVktTU0tRERUSEg6bW06c3MnKSxcbiAgICAgIFRvRGF0ZTogbW9tZW50KCkuZm9ybWF0KCdZWVlZLU1NLUREVEhIOm1tOnNzJyksXG4gICAgICBCZW5lZml0U3RhdHVzSWQ6IG51bGwsXG4gICAgfTtcblxuICAgIGRlYnVnKCdGZXRjaGluZyBkYXRhJyk7XG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaFBvc3RXaXRoaW5QYWdlPFB1cmNoYXNlSGlzdG9yeVJlc3BvbnNlPih0aGlzLnBhZ2UsIFBVUkNIQVNFX0hJU1RPUllfVVJMLCBib2R5LCB7XG4gICAgICBhdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCxcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICBvcmdhbml6YXRpb25pZDogJzIwJyxcbiAgICB9KTtcblxuICAgIGRlYnVnKCdEYXRhIGZldGNoZWQnKTtcblxuICAgIGlmIChyZXM/LmVycm9yRGVzY3JpcHRpb24gfHwgcmVzPy5kYXRhPy5lcnJvckRlc2NyaXB0aW9uKSB7XG4gICAgICBkZWJ1ZygnRXJyb3IgZmV0Y2hpbmcgZGF0YScsIHJlcy5lcnJvckRlc2NyaXB0aW9uIHx8IHJlcy5kYXRhPy5lcnJvckRlc2NyaXB0aW9uKTtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvck1lc3NhZ2U6IHJlcy5lcnJvckRlc2NyaXB0aW9uIH07XG4gICAgfVxuXG4gICAgaWYgKCFyZXM/LmRhdGEpIHtcbiAgICAgIGRlYnVnKCdObyBkYXRhIGZvdW5kJyk7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3JNZXNzYWdlOiAnTm9EYXRhJyB9O1xuICAgIH1cblxuICAgIGRlYnVnKCdEYXRhIGZldGNoZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBhY2NvdW50czogW3tcbiAgICAgICAgYWNjb3VudE51bWJlcjogcmVzLmRhdGEubWVtYmVySWQsXG4gICAgICAgIHR4bnM6IHJlcy5kYXRhLnZhcmlhbnRzLm1hcCh2YXJpYW50VG9UcmFuc2FjdGlvbiksXG4gICAgICB9XSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJlaGF0c2RhYVNjcmFwZXI7XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.promise");
4
+
5
+ var _definitions = require("../definitions");
6
+
7
+ var _testsUtils = require("../tests/tests-utils");
8
+
9
+ var _baseScraperWithBrowser = require("./base-scraper-with-browser");
10
+
11
+ var _behatsdaa = _interopRequireDefault(require("./behatsdaa"));
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
15
+ 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; }
16
+
17
+ 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; }
18
+
19
+ 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; }
20
+
21
+ const testsConfig = (0, _testsUtils.getTestsConfig)();
22
+ describe('Behatsdaa scraper', () => {
23
+ beforeAll(() => {
24
+ (0, _testsUtils.extendAsyncTimeout)();
25
+ });
26
+ it('should expose login fields in scrapers constant', () => {
27
+ expect(_definitions.SCRAPERS[_definitions.CompanyTypes.behatsdaa]).toBeDefined();
28
+ expect(_definitions.SCRAPERS[_definitions.CompanyTypes.behatsdaa].loginFields).toContain('id');
29
+ expect(_definitions.SCRAPERS[_definitions.CompanyTypes.behatsdaa].loginFields).toContain('password');
30
+ });
31
+ (0, _testsUtils.maybeTestCompanyAPI)(_definitions.CompanyTypes.behatsdaa, config => config.companyAPI.invalidPassword)('should fail on invalid user/password"', async () => {
32
+ const scraper = new _behatsdaa.default(_objectSpread({}, testsConfig.options, {
33
+ companyId: _definitions.CompanyTypes.behatsdaa
34
+ }));
35
+ const result = await scraper.scrape({
36
+ id: 'foofoofoo',
37
+ password: 'barbarbar'
38
+ });
39
+ expect(result).toBeDefined();
40
+ expect(result.success).toBeFalsy();
41
+ expect(result.errorType).toBe(_baseScraperWithBrowser.LoginResults.InvalidPassword);
42
+ });
43
+ (0, _testsUtils.maybeTestCompanyAPI)(_definitions.CompanyTypes.behatsdaa)('should scrape transactions', async () => {
44
+ const scraper = new _behatsdaa.default(_objectSpread({}, testsConfig.options, {
45
+ companyId: _definitions.CompanyTypes.behatsdaa
46
+ }));
47
+ const result = await scraper.scrape(testsConfig.credentials[_definitions.CompanyTypes.behatsdaa]);
48
+ expect(result).toBeDefined();
49
+ expect(result.errorMessage).toBeFalsy();
50
+ expect(result.errorType).toBeFalsy();
51
+ expect(result.success).toBeTruthy();
52
+ expect(result.accounts).toBeDefined();
53
+ expect(result.accounts).toHaveLength(1);
54
+ (0, _testsUtils.exportTransactions)(_definitions.CompanyTypes.behatsdaa, result.accounts || []);
55
+ });
56
+ });
57
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iZWhhdHNkYWEudGVzdC50cyJdLCJuYW1lcyI6WyJ0ZXN0c0NvbmZpZyIsImRlc2NyaWJlIiwiYmVmb3JlQWxsIiwiaXQiLCJleHBlY3QiLCJTQ1JBUEVSUyIsIkNvbXBhbnlUeXBlcyIsImJlaGF0c2RhYSIsInRvQmVEZWZpbmVkIiwibG9naW5GaWVsZHMiLCJ0b0NvbnRhaW4iLCJjb25maWciLCJjb21wYW55QVBJIiwiaW52YWxpZFBhc3N3b3JkIiwic2NyYXBlciIsIkJlaGF0c2RhYVNjcmFwZXIiLCJvcHRpb25zIiwiY29tcGFueUlkIiwicmVzdWx0Iiwic2NyYXBlIiwiaWQiLCJwYXNzd29yZCIsInN1Y2Nlc3MiLCJ0b0JlRmFsc3kiLCJlcnJvclR5cGUiLCJ0b0JlIiwiTG9naW5SZXN1bHRzIiwiSW52YWxpZFBhc3N3b3JkIiwiY3JlZGVudGlhbHMiLCJlcnJvck1lc3NhZ2UiLCJ0b0JlVHJ1dGh5IiwiYWNjb3VudHMiLCJ0b0hhdmVMZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLE1BQU1BLFdBQVcsR0FBRyxpQ0FBcEI7QUFFQUMsUUFBUSxDQUFDLG1CQUFELEVBQXNCLE1BQU07QUFDbENDLEVBQUFBLFNBQVMsQ0FBQyxNQUFNO0FBQ2Q7QUFDRCxHQUZRLENBQVQ7QUFJQUMsRUFBQUEsRUFBRSxDQUFDLGlEQUFELEVBQW9ELE1BQU07QUFDMURDLElBQUFBLE1BQU0sQ0FBQ0Msc0JBQVNDLDBCQUFhQyxTQUF0QixDQUFELENBQU4sQ0FBeUNDLFdBQXpDO0FBQ0FKLElBQUFBLE1BQU0sQ0FBQ0Msc0JBQVNDLDBCQUFhQyxTQUF0QixFQUFpQ0UsV0FBbEMsQ0FBTixDQUFxREMsU0FBckQsQ0FBK0QsSUFBL0Q7QUFDQU4sSUFBQUEsTUFBTSxDQUFDQyxzQkFBU0MsMEJBQWFDLFNBQXRCLEVBQWlDRSxXQUFsQyxDQUFOLENBQXFEQyxTQUFyRCxDQUErRCxVQUEvRDtBQUNELEdBSkMsQ0FBRjtBQU1BLHVDQUFvQkosMEJBQWFDLFNBQWpDLEVBQTZDSSxNQUFELElBQVlBLE1BQU0sQ0FBQ0MsVUFBUCxDQUFrQkMsZUFBMUUsRUFBMkYsdUNBQTNGLEVBQW9JLFlBQVk7QUFDOUksVUFBTUMsT0FBTyxHQUFHLElBQUlDLGtCQUFKLG1CQUNYZixXQUFXLENBQUNnQixPQUREO0FBRWRDLE1BQUFBLFNBQVMsRUFBRVgsMEJBQWFDO0FBRlYsT0FBaEI7QUFLQSxVQUFNVyxNQUFNLEdBQUcsTUFBTUosT0FBTyxDQUFDSyxNQUFSLENBQWU7QUFBRUMsTUFBQUEsRUFBRSxFQUFFLFdBQU47QUFBbUJDLE1BQUFBLFFBQVEsRUFBRTtBQUE3QixLQUFmLENBQXJCO0FBRUFqQixJQUFBQSxNQUFNLENBQUNjLE1BQUQsQ0FBTixDQUFlVixXQUFmO0FBQ0FKLElBQUFBLE1BQU0sQ0FBQ2MsTUFBTSxDQUFDSSxPQUFSLENBQU4sQ0FBdUJDLFNBQXZCO0FBQ0FuQixJQUFBQSxNQUFNLENBQUNjLE1BQU0sQ0FBQ00sU0FBUixDQUFOLENBQXlCQyxJQUF6QixDQUE4QkMscUNBQWFDLGVBQTNDO0FBQ0QsR0FYRDtBQWFBLHVDQUFvQnJCLDBCQUFhQyxTQUFqQyxFQUE0Qyw0QkFBNUMsRUFBMEUsWUFBWTtBQUNwRixVQUFNTyxPQUFPLEdBQUcsSUFBSUMsa0JBQUosbUJBQ1hmLFdBQVcsQ0FBQ2dCLE9BREQ7QUFFZEMsTUFBQUEsU0FBUyxFQUFFWCwwQkFBYUM7QUFGVixPQUFoQjtBQUtBLFVBQU1XLE1BQU0sR0FBRyxNQUFNSixPQUFPLENBQUNLLE1BQVIsQ0FBZW5CLFdBQVcsQ0FBQzRCLFdBQVosQ0FBd0J0QiwwQkFBYUMsU0FBckMsQ0FBZixDQUFyQjtBQUNBSCxJQUFBQSxNQUFNLENBQUNjLE1BQUQsQ0FBTixDQUFlVixXQUFmO0FBQ0FKLElBQUFBLE1BQU0sQ0FBQ2MsTUFBTSxDQUFDVyxZQUFSLENBQU4sQ0FBNEJOLFNBQTVCO0FBQ0FuQixJQUFBQSxNQUFNLENBQUNjLE1BQU0sQ0FBQ00sU0FBUixDQUFOLENBQXlCRCxTQUF6QjtBQUNBbkIsSUFBQUEsTUFBTSxDQUFDYyxNQUFNLENBQUNJLE9BQVIsQ0FBTixDQUF1QlEsVUFBdkI7QUFDQTFCLElBQUFBLE1BQU0sQ0FBQ2MsTUFBTSxDQUFDYSxRQUFSLENBQU4sQ0FBd0J2QixXQUF4QjtBQUNBSixJQUFBQSxNQUFNLENBQUNjLE1BQU0sQ0FBQ2EsUUFBUixDQUFOLENBQXdCQyxZQUF4QixDQUFxQyxDQUFyQztBQUNBLHdDQUFtQjFCLDBCQUFhQyxTQUFoQyxFQUEyQ1csTUFBTSxDQUFDYSxRQUFQLElBQW1CLEVBQTlEO0FBQ0QsR0FkRDtBQWVELENBdkNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wYW55VHlwZXMsIFNDUkFQRVJTIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHtcbiAgZXhwb3J0VHJhbnNhY3Rpb25zLCBleHRlbmRBc3luY1RpbWVvdXQsIGdldFRlc3RzQ29uZmlnLCBtYXliZVRlc3RDb21wYW55QVBJLFxufSBmcm9tICcuLi90ZXN0cy90ZXN0cy11dGlscyc7XG5pbXBvcnQgeyBMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IEJlaGF0c2RhYVNjcmFwZXIgZnJvbSAnLi9iZWhhdHNkYWEnO1xuXG5jb25zdCB0ZXN0c0NvbmZpZyA9IGdldFRlc3RzQ29uZmlnKCk7XG5cbmRlc2NyaWJlKCdCZWhhdHNkYWEgc2NyYXBlcicsICgpID0+IHtcbiAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICBleHRlbmRBc3luY1RpbWVvdXQoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBleHBvc2UgbG9naW4gZmllbGRzIGluIHNjcmFwZXJzIGNvbnN0YW50JywgKCkgPT4ge1xuICAgIGV4cGVjdChTQ1JBUEVSU1tDb21wYW55VHlwZXMuYmVoYXRzZGFhXSkudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoU0NSQVBFUlNbQ29tcGFueVR5cGVzLmJlaGF0c2RhYV0ubG9naW5GaWVsZHMpLnRvQ29udGFpbignaWQnKTtcbiAgICBleHBlY3QoU0NSQVBFUlNbQ29tcGFueVR5cGVzLmJlaGF0c2RhYV0ubG9naW5GaWVsZHMpLnRvQ29udGFpbigncGFzc3dvcmQnKTtcbiAgfSk7XG5cbiAgbWF5YmVUZXN0Q29tcGFueUFQSShDb21wYW55VHlwZXMuYmVoYXRzZGFhLCAoY29uZmlnKSA9PiBjb25maWcuY29tcGFueUFQSS5pbnZhbGlkUGFzc3dvcmQpKCdzaG91bGQgZmFpbCBvbiBpbnZhbGlkIHVzZXIvcGFzc3dvcmRcIicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBzY3JhcGVyID0gbmV3IEJlaGF0c2RhYVNjcmFwZXIoe1xuICAgICAgLi4udGVzdHNDb25maWcub3B0aW9ucyxcbiAgICAgIGNvbXBhbnlJZDogQ29tcGFueVR5cGVzLmJlaGF0c2RhYSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNjcmFwZXIuc2NyYXBlKHsgaWQ6ICdmb29mb29mb28nLCBwYXNzd29yZDogJ2JhcmJhcmJhcicgfSk7XG5cbiAgICBleHBlY3QocmVzdWx0KS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChyZXN1bHQuc3VjY2VzcykudG9CZUZhbHN5KCk7XG4gICAgZXhwZWN0KHJlc3VsdC5lcnJvclR5cGUpLnRvQmUoTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZCk7XG4gIH0pO1xuXG4gIG1heWJlVGVzdENvbXBhbnlBUEkoQ29tcGFueVR5cGVzLmJlaGF0c2RhYSkoJ3Nob3VsZCBzY3JhcGUgdHJhbnNhY3Rpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHNjcmFwZXIgPSBuZXcgQmVoYXRzZGFhU2NyYXBlcih7XG4gICAgICAuLi50ZXN0c0NvbmZpZy5vcHRpb25zLFxuICAgICAgY29tcGFueUlkOiBDb21wYW55VHlwZXMuYmVoYXRzZGFhLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2NyYXBlci5zY3JhcGUodGVzdHNDb25maWcuY3JlZGVudGlhbHNbQ29tcGFueVR5cGVzLmJlaGF0c2RhYV0pO1xuICAgIGV4cGVjdChyZXN1bHQpLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KHJlc3VsdC5lcnJvck1lc3NhZ2UpLnRvQmVGYWxzeSgpO1xuICAgIGV4cGVjdChyZXN1bHQuZXJyb3JUeXBlKS50b0JlRmFsc3koKTtcbiAgICBleHBlY3QocmVzdWx0LnN1Y2Nlc3MpLnRvQmVUcnV0aHkoKTtcbiAgICBleHBlY3QocmVzdWx0LmFjY291bnRzKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChyZXN1bHQuYWNjb3VudHMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICBleHBvcnRUcmFuc2FjdGlvbnMoQ29tcGFueVR5cGVzLmJlaGF0c2RhYSwgcmVzdWx0LmFjY291bnRzIHx8IFtdKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -37,6 +37,10 @@ var _beyahadBishvilha = _interopRequireDefault(require("./beyahad-bishvilha"));
37
37
 
38
38
  var _oneZero = _interopRequireDefault(require("./one-zero"));
39
39
 
40
+ var _behatsdaa = _interopRequireDefault(require("./behatsdaa"));
41
+
42
+ var _assertNever = require("../assertNever");
43
+
40
44
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
45
 
42
46
  function createScraper(options) {
@@ -96,8 +100,11 @@ function createScraper(options) {
96
100
  case _definitions.CompanyTypes.oneZero:
97
101
  return new _oneZero.default(options);
98
102
 
103
+ case _definitions.CompanyTypes.behatsdaa:
104
+ return new _behatsdaa.default(options);
105
+
99
106
  default:
100
- throw new Error(`unknown company id ${options.companyId}`);
107
+ return (0, _assertNever.assertNever)(options.companyId, `unknown company id ${options.companyId}`);
101
108
  }
102
109
  }
103
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbImNyZWF0ZVNjcmFwZXIiLCJvcHRpb25zIiwiY29tcGFueUlkIiwiQ29tcGFueVR5cGVzIiwiaGFwb2FsaW0iLCJIYXBvYWxpbVNjcmFwZXIiLCJoYXBvYWxpbUJlT25saW5lIiwiY29uc29sZSIsIndhcm4iLCJsZXVtaSIsIkxldW1pU2NyYXBlciIsImJleWFoYWRCaXNodmlsaGEiLCJCZXlhaGFkQmlzaHZpbGhhU2NyYXBlciIsIm1penJhaGkiLCJNaXpyYWhpU2NyYXBlciIsImRpc2NvdW50IiwiRGlzY291bnRTY3JhcGVyIiwib3RzYXJIYWhheWFsIiwiT3RzYXJIYWhheWFsU2NyYXBlciIsInZpc2FDYWwiLCJWaXNhQ2FsU2NyYXBlciIsImxldW1pQ2FyZCIsIk1heFNjcmFwZXIiLCJtYXgiLCJpc3JhY2FyZCIsIklzcmFjYXJkU2NyYXBlciIsImFtZXgiLCJBbWV4U2NyYXBlciIsInVuaW9uIiwiVW5pb25CYW5rU2NyYXBlciIsImJlaW5sZXVtaSIsIkJlaW5sZXVtaVNjcmFwZXIiLCJtYXNzYWQiLCJNYXNzYWRTY3JhcGVyIiwieWFoYXYiLCJZYWhhdlNjcmFwZXIiLCJvbmVaZXJvIiwiT25lWmVyb1NjcmFwZXIiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7O0FBRWUsU0FBU0EsYUFBVCxDQUF1QkMsT0FBdkIsRUFBNkU7QUFDMUYsVUFBUUEsT0FBTyxDQUFDQyxTQUFoQjtBQUNFLFNBQUtDLDBCQUFhQyxRQUFsQjtBQUNFLGFBQU8sSUFBSUMsaUJBQUosQ0FBb0JKLE9BQXBCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFHLGdCQUFsQjtBQUNFO0FBQ0FDLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLHdEQUFiO0FBQ0EsYUFBTyxJQUFJSCxpQkFBSixDQUFvQkosT0FBcEIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYU0sS0FBbEI7QUFDRSxhQUFPLElBQUlDLGNBQUosQ0FBaUJULE9BQWpCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFRLGdCQUFsQjtBQUNFLGFBQU8sSUFBSUMseUJBQUosQ0FBNEJYLE9BQTVCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFVLE9BQWxCO0FBQ0UsYUFBTyxJQUFJQyxnQkFBSixDQUFtQmIsT0FBbkIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYVksUUFBbEI7QUFDRSxhQUFPLElBQUlDLGlCQUFKLENBQW9CZixPQUFwQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhYyxZQUFsQjtBQUNFLGFBQU8sSUFBSUMscUJBQUosQ0FBd0JqQixPQUF4QixDQUFQOztBQUNGLFNBQUtFLDBCQUFhZ0IsT0FBbEI7QUFDRSxhQUFPLElBQUlDLGdCQUFKLENBQW1CbkIsT0FBbkIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYWtCLFNBQWxCO0FBQ0U7QUFDQWQsTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsNENBQWI7QUFDQSxhQUFPLElBQUljLFlBQUosQ0FBZXJCLE9BQWYsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYW9CLEdBQWxCO0FBQ0UsYUFBTyxJQUFJRCxZQUFKLENBQWVyQixPQUFmLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFxQixRQUFsQjtBQUNFLGFBQU8sSUFBSUMsaUJBQUosQ0FBb0J4QixPQUFwQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhdUIsSUFBbEI7QUFDRSxhQUFPLElBQUlDLGFBQUosQ0FBZ0IxQixPQUFoQixDQUFQOztBQUNGLFNBQUtFLDBCQUFheUIsS0FBbEI7QUFDRSxhQUFPLElBQUlDLGtCQUFKLENBQXFCNUIsT0FBckIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYTJCLFNBQWxCO0FBQ0UsYUFBTyxJQUFJQyxrQkFBSixDQUFxQjlCLE9BQXJCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWE2QixNQUFsQjtBQUNFLGFBQU8sSUFBSUMsZUFBSixDQUFrQmhDLE9BQWxCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWErQixLQUFsQjtBQUNFLGFBQU8sSUFBSUMsY0FBSixDQUFpQmxDLE9BQWpCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFpQyxPQUFsQjtBQUNFLGFBQU8sSUFBSUMsZ0JBQUosQ0FBbUJwQyxPQUFuQixDQUFQOztBQUNGO0FBQ0UsWUFBTSxJQUFJcUMsS0FBSixDQUFXLHNCQUFxQnJDLE9BQU8sQ0FBQ0MsU0FBVSxFQUFsRCxDQUFOO0FBeENKO0FBMENEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEhhcG9hbGltU2NyYXBlciBmcm9tICcuL2hhcG9hbGltJztcbmltcG9ydCBPdHNhckhhaGF5YWxTY3JhcGVyIGZyb20gJy4vb3RzYXItaGFoYXlhbCc7XG5pbXBvcnQgTGV1bWlTY3JhcGVyIGZyb20gJy4vbGV1bWknO1xuaW1wb3J0IERpc2NvdW50U2NyYXBlciBmcm9tICcuL2Rpc2NvdW50JztcbmltcG9ydCBNYXhTY3JhcGVyIGZyb20gJy4vbWF4JztcbmltcG9ydCBWaXNhQ2FsU2NyYXBlciBmcm9tICcuL3Zpc2EtY2FsJztcbmltcG9ydCBJc3JhY2FyZFNjcmFwZXIgZnJvbSAnLi9pc3JhY2FyZCc7XG5pbXBvcnQgQW1leFNjcmFwZXIgZnJvbSAnLi9hbWV4JztcbmltcG9ydCBNaXpyYWhpU2NyYXBlciBmcm9tICcuL21penJhaGknO1xuaW1wb3J0IFVuaW9uQmFua1NjcmFwZXIgZnJvbSAnLi91bmlvbi1iYW5rJztcbmltcG9ydCBCZWlubGV1bWlTY3JhcGVyIGZyb20gJy4vYmVpbmxldW1pJztcbmltcG9ydCBNYXNzYWRTY3JhcGVyIGZyb20gJy4vbWFzc2FkJztcbmltcG9ydCBZYWhhdlNjcmFwZXIgZnJvbSAnLi95YWhhdic7XG5pbXBvcnQgeyBTY3JhcGVyLCBTY3JhcGVyQ3JlZGVudGlhbHMsIFNjcmFwZXJPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tcGFueVR5cGVzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IEJleWFoYWRCaXNodmlsaGFTY3JhcGVyIGZyb20gJy4vYmV5YWhhZC1iaXNodmlsaGEnO1xuaW1wb3J0IE9uZVplcm9TY3JhcGVyIGZyb20gJy4vb25lLXplcm8nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTY3JhcGVyKG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zKTogU2NyYXBlcjxTY3JhcGVyQ3JlZGVudGlhbHM+IHtcbiAgc3dpdGNoIChvcHRpb25zLmNvbXBhbnlJZCkge1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmhhcG9hbGltOlxuICAgICAgcmV0dXJuIG5ldyBIYXBvYWxpbVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuaGFwb2FsaW1CZU9ubGluZTpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXCJoYXBvYWxpbUJlT25saW5lIGlzIGRlcHJlY2F0ZWQsIHVzZSAnaGFwb2FsaW0nIGluc3RlYWRcIik7XG4gICAgICByZXR1cm4gbmV3IEhhcG9hbGltU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5sZXVtaTpcbiAgICAgIHJldHVybiBuZXcgTGV1bWlTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmJleWFoYWRCaXNodmlsaGE6XG4gICAgICByZXR1cm4gbmV3IEJleWFoYWRCaXNodmlsaGFTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLm1penJhaGk6XG4gICAgICByZXR1cm4gbmV3IE1penJhaGlTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmRpc2NvdW50OlxuICAgICAgcmV0dXJuIG5ldyBEaXNjb3VudFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMub3RzYXJIYWhheWFsOlxuICAgICAgcmV0dXJuIG5ldyBPdHNhckhhaGF5YWxTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLnZpc2FDYWw6XG4gICAgICByZXR1cm4gbmV3IFZpc2FDYWxTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmxldW1pQ2FyZDpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXCJsZXVtaUNhcmQgaXMgZGVwcmVjYXRlZCwgdXNlICdtYXgnIGluc3RlYWRcIik7XG4gICAgICByZXR1cm4gbmV3IE1heFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubWF4OlxuICAgICAgcmV0dXJuIG5ldyBNYXhTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmlzcmFjYXJkOlxuICAgICAgcmV0dXJuIG5ldyBJc3JhY2FyZFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuYW1leDpcbiAgICAgIHJldHVybiBuZXcgQW1leFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMudW5pb246XG4gICAgICByZXR1cm4gbmV3IFVuaW9uQmFua1NjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuYmVpbmxldW1pOlxuICAgICAgcmV0dXJuIG5ldyBCZWlubGV1bWlTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLm1hc3NhZDpcbiAgICAgIHJldHVybiBuZXcgTWFzc2FkU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy55YWhhdjpcbiAgICAgIHJldHVybiBuZXcgWWFoYXZTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLm9uZVplcm86XG4gICAgICByZXR1cm4gbmV3IE9uZVplcm9TY3JhcGVyKG9wdGlvbnMpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gY29tcGFueSBpZCAke29wdGlvbnMuY29tcGFueUlkfWApO1xuICB9XG59XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbImNyZWF0ZVNjcmFwZXIiLCJvcHRpb25zIiwiY29tcGFueUlkIiwiQ29tcGFueVR5cGVzIiwiaGFwb2FsaW0iLCJIYXBvYWxpbVNjcmFwZXIiLCJoYXBvYWxpbUJlT25saW5lIiwiY29uc29sZSIsIndhcm4iLCJsZXVtaSIsIkxldW1pU2NyYXBlciIsImJleWFoYWRCaXNodmlsaGEiLCJCZXlhaGFkQmlzaHZpbGhhU2NyYXBlciIsIm1penJhaGkiLCJNaXpyYWhpU2NyYXBlciIsImRpc2NvdW50IiwiRGlzY291bnRTY3JhcGVyIiwib3RzYXJIYWhheWFsIiwiT3RzYXJIYWhheWFsU2NyYXBlciIsInZpc2FDYWwiLCJWaXNhQ2FsU2NyYXBlciIsImxldW1pQ2FyZCIsIk1heFNjcmFwZXIiLCJtYXgiLCJpc3JhY2FyZCIsIklzcmFjYXJkU2NyYXBlciIsImFtZXgiLCJBbWV4U2NyYXBlciIsInVuaW9uIiwiVW5pb25CYW5rU2NyYXBlciIsImJlaW5sZXVtaSIsIkJlaW5sZXVtaVNjcmFwZXIiLCJtYXNzYWQiLCJNYXNzYWRTY3JhcGVyIiwieWFoYXYiLCJZYWhhdlNjcmFwZXIiLCJvbmVaZXJvIiwiT25lWmVyb1NjcmFwZXIiLCJiZWhhdHNkYWEiLCJCZWhhdHNkYWFTY3JhcGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFZSxTQUFTQSxhQUFULENBQXVCQyxPQUF2QixFQUE2RTtBQUMxRixVQUFRQSxPQUFPLENBQUNDLFNBQWhCO0FBQ0UsU0FBS0MsMEJBQWFDLFFBQWxCO0FBQ0UsYUFBTyxJQUFJQyxpQkFBSixDQUFvQkosT0FBcEIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYUcsZ0JBQWxCO0FBQ0U7QUFDQUMsTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWEsd0RBQWI7QUFDQSxhQUFPLElBQUlILGlCQUFKLENBQW9CSixPQUFwQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhTSxLQUFsQjtBQUNFLGFBQU8sSUFBSUMsY0FBSixDQUFpQlQsT0FBakIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYVEsZ0JBQWxCO0FBQ0UsYUFBTyxJQUFJQyx5QkFBSixDQUE0QlgsT0FBNUIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYVUsT0FBbEI7QUFDRSxhQUFPLElBQUlDLGdCQUFKLENBQW1CYixPQUFuQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhWSxRQUFsQjtBQUNFLGFBQU8sSUFBSUMsaUJBQUosQ0FBb0JmLE9BQXBCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFjLFlBQWxCO0FBQ0UsYUFBTyxJQUFJQyxxQkFBSixDQUF3QmpCLE9BQXhCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFnQixPQUFsQjtBQUNFLGFBQU8sSUFBSUMsZ0JBQUosQ0FBbUJuQixPQUFuQixDQUFQOztBQUNGLFNBQUtFLDBCQUFha0IsU0FBbEI7QUFDRTtBQUNBZCxNQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYSw0Q0FBYjtBQUNBLGFBQU8sSUFBSWMsWUFBSixDQUFlckIsT0FBZixDQUFQOztBQUNGLFNBQUtFLDBCQUFhb0IsR0FBbEI7QUFDRSxhQUFPLElBQUlELFlBQUosQ0FBZXJCLE9BQWYsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYXFCLFFBQWxCO0FBQ0UsYUFBTyxJQUFJQyxpQkFBSixDQUFvQnhCLE9BQXBCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWF1QixJQUFsQjtBQUNFLGFBQU8sSUFBSUMsYUFBSixDQUFnQjFCLE9BQWhCLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWF5QixLQUFsQjtBQUNFLGFBQU8sSUFBSUMsa0JBQUosQ0FBcUI1QixPQUFyQixDQUFQOztBQUNGLFNBQUtFLDBCQUFhMkIsU0FBbEI7QUFDRSxhQUFPLElBQUlDLGtCQUFKLENBQXFCOUIsT0FBckIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYTZCLE1BQWxCO0FBQ0UsYUFBTyxJQUFJQyxlQUFKLENBQWtCaEMsT0FBbEIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYStCLEtBQWxCO0FBQ0UsYUFBTyxJQUFJQyxjQUFKLENBQWlCbEMsT0FBakIsQ0FBUDs7QUFDRixTQUFLRSwwQkFBYWlDLE9BQWxCO0FBQ0UsYUFBTyxJQUFJQyxnQkFBSixDQUFtQnBDLE9BQW5CLENBQVA7O0FBQ0YsU0FBS0UsMEJBQWFtQyxTQUFsQjtBQUNFLGFBQU8sSUFBSUMsa0JBQUosQ0FBcUJ0QyxPQUFyQixDQUFQOztBQUNGO0FBQ0UsYUFBTyw4QkFBWUEsT0FBTyxDQUFDQyxTQUFwQixFQUFnQyxzQkFBcUJELE9BQU8sQ0FBQ0MsU0FBVSxFQUF2RSxDQUFQO0FBMUNKO0FBNENEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEhhcG9hbGltU2NyYXBlciBmcm9tICcuL2hhcG9hbGltJztcbmltcG9ydCBPdHNhckhhaGF5YWxTY3JhcGVyIGZyb20gJy4vb3RzYXItaGFoYXlhbCc7XG5pbXBvcnQgTGV1bWlTY3JhcGVyIGZyb20gJy4vbGV1bWknO1xuaW1wb3J0IERpc2NvdW50U2NyYXBlciBmcm9tICcuL2Rpc2NvdW50JztcbmltcG9ydCBNYXhTY3JhcGVyIGZyb20gJy4vbWF4JztcbmltcG9ydCBWaXNhQ2FsU2NyYXBlciBmcm9tICcuL3Zpc2EtY2FsJztcbmltcG9ydCBJc3JhY2FyZFNjcmFwZXIgZnJvbSAnLi9pc3JhY2FyZCc7XG5pbXBvcnQgQW1leFNjcmFwZXIgZnJvbSAnLi9hbWV4JztcbmltcG9ydCBNaXpyYWhpU2NyYXBlciBmcm9tICcuL21penJhaGknO1xuaW1wb3J0IFVuaW9uQmFua1NjcmFwZXIgZnJvbSAnLi91bmlvbi1iYW5rJztcbmltcG9ydCBCZWlubGV1bWlTY3JhcGVyIGZyb20gJy4vYmVpbmxldW1pJztcbmltcG9ydCBNYXNzYWRTY3JhcGVyIGZyb20gJy4vbWFzc2FkJztcbmltcG9ydCBZYWhhdlNjcmFwZXIgZnJvbSAnLi95YWhhdic7XG5pbXBvcnQgeyBTY3JhcGVyLCBTY3JhcGVyQ3JlZGVudGlhbHMsIFNjcmFwZXJPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tcGFueVR5cGVzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IEJleWFoYWRCaXNodmlsaGFTY3JhcGVyIGZyb20gJy4vYmV5YWhhZC1iaXNodmlsaGEnO1xuaW1wb3J0IE9uZVplcm9TY3JhcGVyIGZyb20gJy4vb25lLXplcm8nO1xuaW1wb3J0IEJlaGF0c2RhYVNjcmFwZXIgZnJvbSAnLi9iZWhhdHNkYWEnO1xuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIgfSBmcm9tICcuLi9hc3NlcnROZXZlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNjcmFwZXIob3B0aW9uczogU2NyYXBlck9wdGlvbnMpOiBTY3JhcGVyPFNjcmFwZXJDcmVkZW50aWFscz4ge1xuICBzd2l0Y2ggKG9wdGlvbnMuY29tcGFueUlkKSB7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuaGFwb2FsaW06XG4gICAgICByZXR1cm4gbmV3IEhhcG9hbGltU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5oYXBvYWxpbUJlT25saW5lOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcImhhcG9hbGltQmVPbmxpbmUgaXMgZGVwcmVjYXRlZCwgdXNlICdoYXBvYWxpbScgaW5zdGVhZFwiKTtcbiAgICAgIHJldHVybiBuZXcgSGFwb2FsaW1TY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLmxldW1pOlxuICAgICAgcmV0dXJuIG5ldyBMZXVtaVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuYmV5YWhhZEJpc2h2aWxoYTpcbiAgICAgIHJldHVybiBuZXcgQmV5YWhhZEJpc2h2aWxoYVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubWl6cmFoaTpcbiAgICAgIHJldHVybiBuZXcgTWl6cmFoaVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuZGlzY291bnQ6XG4gICAgICByZXR1cm4gbmV3IERpc2NvdW50U2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5vdHNhckhhaGF5YWw6XG4gICAgICByZXR1cm4gbmV3IE90c2FySGFoYXlhbFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMudmlzYUNhbDpcbiAgICAgIHJldHVybiBuZXcgVmlzYUNhbFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubGV1bWlDYXJkOlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcImxldW1pQ2FyZCBpcyBkZXByZWNhdGVkLCB1c2UgJ21heCcgaW5zdGVhZFwiKTtcbiAgICAgIHJldHVybiBuZXcgTWF4U2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5tYXg6XG4gICAgICByZXR1cm4gbmV3IE1heFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuaXNyYWNhcmQ6XG4gICAgICByZXR1cm4gbmV3IElzcmFjYXJkU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5hbWV4OlxuICAgICAgcmV0dXJuIG5ldyBBbWV4U2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy51bmlvbjpcbiAgICAgIHJldHVybiBuZXcgVW5pb25CYW5rU2NyYXBlcihvcHRpb25zKTtcbiAgICBjYXNlIENvbXBhbnlUeXBlcy5iZWlubGV1bWk6XG4gICAgICByZXR1cm4gbmV3IEJlaW5sZXVtaVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMubWFzc2FkOlxuICAgICAgcmV0dXJuIG5ldyBNYXNzYWRTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGNhc2UgQ29tcGFueVR5cGVzLnlhaGF2OlxuICAgICAgcmV0dXJuIG5ldyBZYWhhdlNjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMub25lWmVybzpcbiAgICAgIHJldHVybiBuZXcgT25lWmVyb1NjcmFwZXIob3B0aW9ucyk7XG4gICAgY2FzZSBDb21wYW55VHlwZXMuYmVoYXRzZGFhOlxuICAgICAgcmV0dXJuIG5ldyBCZWhhdHNkYWFTY3JhcGVyKG9wdGlvbnMpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gYXNzZXJ0TmV2ZXIob3B0aW9ucy5jb21wYW55SWQsIGB1bmtub3duIGNvbXBhbnkgaWQgJHtvcHRpb25zLmNvbXBhbnlJZH1gKTtcbiAgfVxufVxuIl19
@@ -1,3 +1,4 @@
1
+ import { LoadEvent } from 'puppeteer';
1
2
  import { BaseScraperWithBrowser, PossibleLoginResults } from './base-scraper-with-browser';
2
3
  import { Transaction } from '../transactions';
3
4
  declare type ScraperSpecificCredentials = {
@@ -16,6 +17,7 @@ declare class MaxScraper extends BaseScraperWithBrowser<ScraperSpecificCredentia
16
17
  checkReadiness: () => Promise<void>;
17
18
  postAction: () => Promise<void>;
18
19
  possibleResults: PossibleLoginResults;
20
+ waitUntil: LoadEvent;
19
21
  };
20
22
  fetchData(): Promise<{
21
23
  success: boolean;
@@ -60,8 +60,10 @@ const FUTURE_PURCHASE_FINANCING = 'מימון לרכישה עתידית';
60
60
  const MONTHLY_POSTPONED_INSTALLMENTS_TYPE_NAME = 'דחוי חודש תשלומים';
61
61
  const THIRTY_DAYS_PLUS_TYPE_NAME = 'עסקת 30 פלוס';
62
62
  const TWO_MONTHS_POSTPONED_TYPE_NAME = 'דחוי חודשיים';
63
+ const TWO_MONTHS_POSTPONED_TYPE_NAME2 = 'דחוי 2 ח\' תשלומים';
63
64
  const MONTHLY_CHARGE_PLUS_INTEREST_TYPE_NAME = 'חודשי + ריבית';
64
65
  const CREDIT_TYPE_NAME = 'קרדיט';
66
+ const CREDIT_OUTSIDE_THE_LIMIT = 'קרדיט-מחוץ למסגרת';
65
67
  const ACCUMULATING_BASKET = 'סל מצטבר';
66
68
  const POSTPONED_TRANSACTION_INSTALLMENTS = 'פריסת העסקה הדחויה';
67
69
  const REPLACEMENT_CARD = 'כרטיס חליפי';
@@ -120,6 +122,7 @@ function getTransactionType(txnTypeStr) {
120
122
  case MONTHLY_POSTPONED_INSTALLMENTS_TYPE_NAME:
121
123
  case THIRTY_DAYS_PLUS_TYPE_NAME:
122
124
  case TWO_MONTHS_POSTPONED_TYPE_NAME:
125
+ case TWO_MONTHS_POSTPONED_TYPE_NAME2:
123
126
  case ACCUMULATING_BASKET:
124
127
  case INTERNET_SHOPPING_TYPE_NAME:
125
128
  case MONTHLY_CHARGE_PLUS_INTEREST_TYPE_NAME:
@@ -131,6 +134,7 @@ function getTransactionType(txnTypeStr) {
131
134
 
132
135
  case INSTALLMENTS_TYPE_NAME:
133
136
  case CREDIT_TYPE_NAME:
137
+ case CREDIT_OUTSIDE_THE_LIMIT:
134
138
  return _transactions2.TransactionTypes.Installments;
135
139
 
136
140
  default:
@@ -292,7 +296,8 @@ class MaxScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
292
296
  await (0, _elementsInteractions.waitUntilElementFound)(this.page, '.personal-area > a.go-to-personal-area', true);
293
297
  },
294
298
  postAction: async () => redirectOrDialog(this.page),
295
- possibleResults: getPossibleLoginResults(this.page)
299
+ possibleResults: getPossibleLoginResults(this.page),
300
+ waitUntil: 'domcontentloaded'
296
301
  };
297
302
  }
298
303
 
@@ -314,4 +319,4 @@ class MaxScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
314
319
 
315
320
  var _default = MaxScraper;
316
321
  exports.default = _default;
317
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9tYXgudHMiXSwibmFtZXMiOlsiZGVidWciLCJCQVNFX0FDVElPTlNfVVJMIiwiQkFTRV9BUElfQUNUSU9OU19VUkwiLCJCQVNFX1dFTENPTUVfVVJMIiwiTE9HSU5fVVJMIiwiUEFTU1dPUkRfRVhQSVJFRF9VUkwiLCJTVUNDRVNTX1VSTCIsIk5PUk1BTF9UWVBFX05BTUUiLCJBVE1fVFlQRV9OQU1FIiwiSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FIiwiSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSIsIk1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSIsIk9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRSIsIkZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkciLCJNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FIiwiVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUUiLCJUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUiLCJNT05USExZX0NIQVJHRV9QTFVTX0lOVEVSRVNUX1RZUEVfTkFNRSIsIkNSRURJVF9UWVBFX05BTUUiLCJBQ0NVTVVMQVRJTkdfQkFTS0VUIiwiUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUyIsIlJFUExBQ0VNRU5UX0NBUkQiLCJFQVJMWV9SRVBBWU1FTlQiLCJNT05USExZX0NBUkRfRkVFIiwiSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SIiwiTE9HSU5fRVJST1JfU0VMRUNUT1IiLCJjYXRlZ29yaWVzIiwiTWFwIiwicmVkaXJlY3RPckRpYWxvZyIsInBhZ2UiLCJQcm9taXNlIiwicmFjZSIsImdldFRyYW5zYWN0aW9uc1VybCIsIm1vbnRoTW9tZW50IiwibW9udGgiLCJ5ZWFyIiwiZGF0ZSIsInBhdGgiLCJsb2FkQ2F0ZWdvcmllcyIsInJlcyIsIkFycmF5IiwiaXNBcnJheSIsInJlc3VsdCIsImxlbmd0aCIsImZvckVhY2giLCJpZCIsIm5hbWUiLCJzZXQiLCJnZXRUcmFuc2FjdGlvblR5cGUiLCJ0eG5UeXBlU3RyIiwiY2xlYW5lZFVwVHhuVHlwZVN0ciIsInJlcGxhY2UiLCJ0cmltIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsIkluc3RhbGxtZW50cyIsIkVycm9yIiwiZ2V0SW5zdGFsbG1lbnRzSW5mbyIsImNvbW1lbnRzIiwidW5kZWZpbmVkIiwibWF0Y2hlcyIsIm1hdGNoIiwibnVtYmVyIiwicGFyc2VJbnQiLCJ0b3RhbCIsIm1hcFRyYW5zYWN0aW9uIiwicmF3VHJhbnNhY3Rpb24iLCJpc1BlbmRpbmciLCJwYXltZW50RGF0ZSIsInByb2Nlc3NlZERhdGUiLCJwdXJjaGFzZURhdGUiLCJ0b0lTT1N0cmluZyIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJQZW5kaW5nIiwiQ29tcGxldGVkIiwiaW5zdGFsbG1lbnRzIiwiaWRlbnRpZmllciIsImRlYWxEYXRhIiwiYXJuIiwidHlwZSIsInBsYW5OYW1lIiwib3JpZ2luYWxBbW91bnQiLCJvcmlnaW5hbEN1cnJlbmN5IiwiY2hhcmdlZEFtb3VudCIsImFjdHVhbFBheW1lbnRBbW91bnQiLCJkZXNjcmlwdGlvbiIsIm1lcmNoYW50TmFtZSIsIm1lbW8iLCJjYXRlZ29yeSIsImdldCIsImNhdGVnb3J5SWQiLCJmZXRjaFRyYW5zYWN0aW9uc0Zvck1vbnRoIiwidXJsIiwiZGF0YSIsInRyYW5zYWN0aW9uc0J5QWNjb3VudCIsInRyYW5zYWN0aW9ucyIsImZpbHRlciIsInRyYW5zYWN0aW9uIiwic2hvcnRDYXJkTnVtYmVyIiwibWFwcGVkVHJhbnNhY3Rpb24iLCJwdXNoIiwiYWRkUmVzdWx0IiwiYWxsUmVzdWx0cyIsImNsb25lZFJlc3VsdHMiLCJPYmplY3QiLCJrZXlzIiwiYWNjb3VudE51bWJlciIsInByZXBhcmVUcmFuc2FjdGlvbnMiLCJ0eG5zIiwic3RhcnRNb21lbnQiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlIiwiY2xvbmVkVHhucyIsImZyb20iLCJmZXRjaFRyYW5zYWN0aW9ucyIsIm9wdGlvbnMiLCJmdXR1cmVNb250aHNUb1NjcmFwZSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwibW9tZW50IiwibWF4IiwiYWxsTW9udGhzIiwiaSIsIm91dHB1dERhdGEiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiQ2hhbmdlUGFzc3dvcmQiLCJJbnZhbGlkUGFzc3dvcmQiLCJVbmtub3duRXJyb3IiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJNYXhTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwcmVBY3Rpb24iLCJjaGVja1JlYWRpbmVzcyIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJyZXN1bHRzIiwiYWNjb3VudHMiLCJtYXAiLCJzdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUdBLE1BQU1BLEtBQUssR0FBRyxxQkFBUyxLQUFULENBQWQ7QUFrQkEsTUFBTUMsZ0JBQWdCLEdBQUcsMEJBQXpCO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUcsK0JBQTdCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsdUJBQXpCO0FBRUEsTUFBTUMsU0FBUyxHQUFJLEdBQUVELGdCQUFpQixtQkFBdEM7QUFDQSxNQUFNRSxvQkFBb0IsR0FB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Q0Q7O0FBQ0QsY0FBTSx1Q0FBWSxLQUFLQSxJQUFqQixFQUF1Qix3Q0FBdkIsQ0FBTjtBQUNBLGNBQU0saURBQXNCLEtBQUtBLElBQTNCLEVBQWlDLHNCQUFqQyxFQUF5RCxJQUF6RCxDQUFOO0FBQ0EsY0FBTSx1Q0FBWSxLQUFLQSxJQUFqQixFQUF1QixzQkFBdkIsQ0FBTjtBQUNBLGNBQU0saURBQXNCLEtBQUtBLElBQTNCLEVBQWlDLHFEQUFqQyxFQUF3RixJQUF4RixDQUFOO0FBQ0QsT0FaSTtBQWFMc0gsTUFBQUEsY0FBYyxFQUFFLFlBQVk7QUFDMUIsY0FBTSxpREFBc0IsS0FBS3RILElBQTNCLEVBQWlDLHdDQUFqQyxFQUEyRSxJQUEzRSxDQUFOO0FBQ0QsT0FmSTtBQWdCTHVILE1BQUFBLFVBQVUsRUFBRSxZQUFZeEgsZ0JBQWdCLENBQUMsS0FBS0MsSUFBTixDQWhCbkM7QUFpQkx3SCxNQUFBQSxlQUFlLEVBQUV0Qix1QkFBdUIsQ0FBQyxLQUFLbEcsSUFBTjtBQWpCbkMsS0FBUDtBQW1CRDs7QUFFRCxRQUFNeUgsU0FBTixHQUFrQjtBQUNoQixVQUFNQyxPQUFPLEdBQUcsTUFBTXBDLGlCQUFpQixDQUFDLEtBQUt0RixJQUFOLEVBQVksS0FBS3VGLE9BQWpCLENBQXZDO0FBQ0EsVUFBTW9DLFFBQVEsR0FBRy9DLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZNkMsT0FBWixFQUFxQkUsR0FBckIsQ0FBMEI5QyxhQUFELElBQW1CO0FBQzNELGFBQU87QUFDTEEsUUFBQUEsYUFESztBQUVMRSxRQUFBQSxJQUFJLEVBQUUwQyxPQUFPLENBQUM1QyxhQUFEO0FBRlIsT0FBUDtBQUlELEtBTGdCLENBQWpCO0FBT0EsV0FBTztBQUNMK0MsTUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTEYsTUFBQUE7QUFGSyxLQUFQO0FBSUQ7O0FBcEN5RTs7ZUF1QzdEWixVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkVXJsIGZyb20gJ2J1aWxkLXVybCc7XG5pbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyB3YWl0Rm9yUmVkaXJlY3QgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgd2FpdFVudGlsRWxlbWVudEZvdW5kLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgY2xpY2tCdXR0b24gfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgZ2V0QWxsTW9udGhNb21lbnRzIGZyb20gJy4uL2hlbHBlcnMvZGF0ZXMnO1xuaW1wb3J0IHsgZml4SW5zdGFsbG1lbnRzLCBzb3J0VHJhbnNhY3Rpb25zQnlEYXRlLCBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHsgU2NyYXBlck9wdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ21heCcpO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgc2hvcnRDYXJkTnVtYmVyOiBzdHJpbmc7XG4gIHBheW1lbnREYXRlPzogc3RyaW5nO1xuICBwdXJjaGFzZURhdGU6IHN0cmluZztcbiAgYWN0dWFsUGF5bWVudEFtb3VudDogc3RyaW5nO1xuICBvcmlnaW5hbEN1cnJlbmN5OiBzdHJpbmc7XG4gIG9yaWdpbmFsQW1vdW50OiBudW1iZXI7XG4gIHBsYW5OYW1lOiBzdHJpbmc7XG4gIGNvbW1lbnRzOiBzdHJpbmc7XG4gIG1lcmNoYW50TmFtZTogc3RyaW5nO1xuICBjYXRlZ29yeUlkOiBudW1iZXI7XG4gIGRlYWxEYXRhPzoge1xuICAgIGFybjogc3RyaW5nO1xuICB9O1xufVxuXG5jb25zdCBCQVNFX0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vb25saW5lLm1heC5jby5pbCc7XG5jb25zdCBCQVNFX0FQSV9BQ1RJT05TX1VSTCA9ICdodHRwczovL29ubGluZWxjYXBpLm1heC5jby5pbCc7XG5jb25zdCBCQVNFX1dFTENPTUVfVVJMID0gJ2h0dHBzOi8vd3d3Lm1heC5jby5pbCc7XG5cbmNvbnN0IExPR0lOX1VSTCA9IGAke0JBU0VfV0VMQ09NRV9VUkx9L2hvbWVwYWdlL3dlbGNvbWVgO1xuY29uc3QgUEFTU1dPUkRfRVhQSVJFRF9VUkwgPSBgJHtCQVNFX0FDVElPTlNfVVJMfS9Bbm9ueW1vdXMvTG9naW4vUGFzc3dvcmRFeHBpcmVkLmFzcHhgO1xuY29uc3QgU1VDQ0VTU19VUkwgPSBgJHtCQVNFX1dFTENPTUVfVVJMfS9ob21lcGFnZS9wZXJzb25hbGA7XG5cbmNvbnN0IE5PUk1BTF9UWVBFX05BTUUgPSAn16jXkteZ15zXlCc7XG5jb25zdCBBVE1fVFlQRV9OQU1FID0gJ9eX15nXldeRINei16HXp9eV16og157XmdeZ15PXmSc7XG5jb25zdCBJTlRFUk5FVF9TSE9QUElOR19UWVBFX05BTUUgPSAn15DXmdeg15jXqNeg15gv15fXlVwi15wnO1xuY29uc3QgSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSA9ICfXqtep15zXldee15nXnSc7XG5jb25zdCBNT05USExZX0NIQVJHRV9UWVBFX05BTUUgPSAn15fXmdeV15Eg15fXldeT16nXmSc7XG5jb25zdCBPTkVfTU9OVEhfUE9TVFBPTkVEX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXl9eV15PXqSc7XG5jb25zdCBNT05USExZX1BPU1RQT05FRF9UWVBFX05BTUUgPSAn15PXl9eV15kg15zXl9eZ15XXkSDXlNeX15XXk9ep15knO1xuY29uc3QgTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRSA9ICfXqtep15zXldedINeX15XXk9ep15knO1xuY29uc3QgRlVUVVJFX1BVUkNIQVNFX0ZJTkFOQ0lORyA9ICfXnteZ157XldefINec16jXm9eZ16nXlCDXoteq15nXk9eZ16onO1xuY29uc3QgTU9OVEhMWV9QT1NUUE9ORURfSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXl9eV15PXqSDXqtep15zXldee15nXnSc7XG5jb25zdCBUSElSVFlfREFZU19QTFVTX1RZUEVfTkFNRSA9ICfXoteh16fXqiAzMCDXpNec15XXoSc7XG5jb25zdCBUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUgPSAn15PXl9eV15kg15fXldeT16nXmdeZ150nO1xuY29uc3QgTU9OVEhMWV9DSEFSR0VfUExVU19JTlRFUkVTVF9UWVBFX05BTUUgPSAn15fXldeT16nXmSArINeo15nXkdeZ16onO1xuY29uc3QgQ1JFRElUX1RZUEVfTkFNRSA9ICfXp9eo15PXmdeYJztcbmNvbnN0IEFDQ1VNVUxBVElOR19CQVNLRVQgPSAn16HXnCDXntem15jXkdeoJztcbmNvbnN0IFBPU1RQT05FRF9UUkFOU0FDVElPTl9JTlNUQUxMTUVOVFMgPSAn16TXqNeZ16HXqiDXlNei16HXp9eUINeU15PXl9eV15nXlCc7XG5jb25zdCBSRVBMQUNFTUVOVF9DQVJEID0gJ9eb16jXmNeZ16Eg15fXnNeZ16TXmSc7XG5jb25zdCBFQVJMWV9SRVBBWU1FTlQgPSAn16TXqNei15XXnyDXnteV16fXk9edJztcbmNvbnN0IE1PTlRITFlfQ0FSRF9GRUUgPSAn15PXnteZINeb16jXmNeZ16EnO1xuXG5jb25zdCBJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IgPSAnI3BvcHVwV3JvbmdEZXRhaWxzJztcbmNvbnN0IExPR0lOX0VSUk9SX1NFTEVDVE9SID0gJyNwb3B1cENhcmRIb2xkZXJzTG9naW5FcnJvcic7XG5cbmNvbnN0IGNhdGVnb3JpZXMgPSBuZXcgTWFwPG51bWJlciwgc3RyaW5nPigpO1xuXG5mdW5jdGlvbiByZWRpcmVjdE9yRGlhbG9nKHBhZ2U6IFBhZ2UpIHtcbiAgcmV0dXJuIFByb21pc2UucmFjZShbXG4gICAgd2FpdEZvclJlZGlyZWN0KHBhZ2UsIDIwMDAwLCBmYWxzZSwgW0JBU0VfV0VMQ09NRV9VUkwsIGAke0JBU0VfV0VMQ09NRV9VUkx9L2BdKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgTE9HSU5fRVJST1JfU0VMRUNUT1IsIHRydWUpLFxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25zVXJsKG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgbW9udGggPSBtb250aE1vbWVudC5tb250aCgpICsgMTtcbiAgY29uc3QgeWVhciA9IG1vbnRoTW9tZW50LnllYXIoKTtcbiAgY29uc3QgZGF0ZSA9IGAke3llYXJ9LSR7bW9udGh9LTAxYDtcblxuICAvKipcbiAgICAgKiB1cmwgZXhwbGFuYXRpb246XG4gICAgICogdXNlckluZGV4OiAtMSBmb3IgYWxsIGFjY291bnQgb3duZXJzXG4gICAgICogY2FyZEluZGV4OiAtMSBmb3IgYWxsIGNhcmRzIHVuZGVyIHRoZSBhY2NvdW50XG4gICAgICogYWxsIG90aGVyIHF1ZXJ5IHBhcmFtcyBhcmUgc3RhdGljLCBiZXNpZGUgdGhlIGRhdGUgd2hpY2ggY2hhbmdlcyBmb3IgcmVxdWVzdCBwZXIgbW9udGhcbiAgICAgKi9cbiAgcmV0dXJuIGJ1aWxkVXJsKEJBU0VfQVBJX0FDVElPTlNfVVJMLCB7XG4gICAgcGF0aDogYC9hcGkvcmVnaXN0ZXJlZC90cmFuc2FjdGlvbkRldGFpbHMvZ2V0VHJhbnNhY3Rpb25zQW5kR3JhcGhzP2ZpbHRlckRhdGE9e1widXNlckluZGV4XCI6LTEsXCJjYXJkSW5kZXhcIjotMSxcIm1vbnRoVmlld1wiOnRydWUsXCJkYXRlXCI6XCIke2RhdGV9XCIsXCJkYXRlc1wiOntcInN0YXJ0RGF0ZVwiOlwiMFwiLFwiZW5kRGF0ZVwiOlwiMFwifSxcImJhbmtBY2NvdW50XCI6e1wiYmFua0FjY291bnRJbmRleFwiOi0xLFwiY2FyZHNcIjpudWxsfX0mZmlyc3RDYWxsQ2FyZEluZGV4PS0xYCxcbiAgfSk7XG59XG5cbmludGVyZmFjZSBGZXRjaENhdGVnb3J5UmVzdWx0IHtcbiAgcmVzdWx0PyA6IEFycmF5PHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfT47XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRDYXRlZ29yaWVzKHBhZ2U6IFBhZ2UpIHtcbiAgZGVidWcoJ0xvYWRpbmcgY2F0ZWdvcmllcycpO1xuICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8RmV0Y2hDYXRlZ29yeVJlc3VsdD4ocGFnZSwgYCR7QkFTRV9BUElfQUNUSU9OU19VUkx9L2FwaS9jb250ZW50cy9nZXRDYXRlZ29yaWVzYCk7XG4gIGlmIChyZXMgJiYgQXJyYXkuaXNBcnJheShyZXMucmVzdWx0KSkge1xuICAgIGRlYnVnKGAke3Jlcy5yZXN1bHQubGVuZ3RofSBjYXRlZ29yaWVzIGxvYWRlZGApO1xuICAgICAgcmVzLnJlc3VsdD8uZm9yRWFjaCgoeyBpZCwgbmFtZSB9KSA9PiBjYXRlZ29yaWVzLnNldChpZCwgbmFtZSkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uVHlwZSh0eG5UeXBlU3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgY2xlYW5lZFVwVHhuVHlwZVN0ciA9IHR4blR5cGVTdHIucmVwbGFjZSgnXFx0JywgJyAnKS50cmltKCk7XG4gIHN3aXRjaCAoY2xlYW5lZFVwVHhuVHlwZVN0cikge1xuICAgIGNhc2UgQVRNX1RZUEVfTkFNRTpcbiAgICBjYXNlIE5PUk1BTF9UWVBFX05BTUU6XG4gICAgY2FzZSBNT05USExZX0NIQVJHRV9UWVBFX05BTUU6XG4gICAgY2FzZSBPTkVfTU9OVEhfUE9TVFBPTkVEX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfUE9TVFBPTkVEX1RZUEVfTkFNRTpcbiAgICBjYXNlIEZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkc6XG4gICAgY2FzZSBNT05USExZX1BBWU1FTlRfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9QT1NUUE9ORURfSU5TVEFMTE1FTlRTX1RZUEVfTkFNRTpcbiAgICBjYXNlIFRISVJUWV9EQVlTX1BMVVNfVFlQRV9OQU1FOlxuICAgIGNhc2UgVFdPX01PTlRIU19QT1NUUE9ORURfVFlQRV9OQU1FOlxuICAgIGNhc2UgQUNDVU1VTEFUSU5HX0JBU0tFVDpcbiAgICBjYXNlIElOVEVSTkVUX1NIT1BQSU5HX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfQ0hBUkdFX1BMVVNfSU5URVJFU1RfVFlQRV9OQU1FOlxuICAgIGNhc2UgUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUzpcbiAgICBjYXNlIFJFUExBQ0VNRU5UX0NBUkQ6XG4gICAgY2FzZSBFQVJMWV9SRVBBWU1FTlQ6XG4gICAgY2FzZSBNT05USExZX0NBUkRfRkVFOlxuICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsO1xuICAgIGNhc2UgSU5TVEFMTE1FTlRTX1RZUEVfTkFNRTpcbiAgICBjYXNlIENSRURJVF9UWVBFX05BTUU6XG4gICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlcy5JbnN0YWxsbWVudHM7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0cmFuc2FjdGlvbiB0eXBlICR7Y2xlYW5lZFVwVHhuVHlwZVN0cn1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRJbnN0YWxsbWVudHNJbmZvKGNvbW1lbnRzOiBzdHJpbmcpIHtcbiAgaWYgKCFjb21tZW50cykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgbWF0Y2hlcyA9IGNvbW1lbnRzLm1hdGNoKC9cXGQrL2cpO1xuICBpZiAoIW1hdGNoZXMgfHwgbWF0Y2hlcy5sZW5ndGggPCAyKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbnVtYmVyOiBwYXJzZUludChtYXRjaGVzWzBdLCAxMCksXG4gICAgdG90YWw6IHBhcnNlSW50KG1hdGNoZXNbMV0sIDEwKSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG1hcFRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBTY3JhcGVkVHJhbnNhY3Rpb24pOiBUcmFuc2FjdGlvbiB7XG4gIGNvbnN0IGlzUGVuZGluZyA9IHJhd1RyYW5zYWN0aW9uLnBheW1lbnREYXRlID09PSBudWxsO1xuICBjb25zdCBwcm9jZXNzZWREYXRlID0gbW9tZW50KGlzUGVuZGluZyA/XG4gICAgcmF3VHJhbnNhY3Rpb24ucHVyY2hhc2VEYXRlIDpcbiAgICByYXdUcmFuc2FjdGlvbi5wYXltZW50RGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgY29uc3Qgc3RhdHVzID0gaXNQZW5kaW5nID8gVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nIDogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQ7XG5cbiAgY29uc3QgaW5zdGFsbG1lbnRzID0gZ2V0SW5zdGFsbG1lbnRzSW5mbyhyYXdUcmFuc2FjdGlvbi5jb21tZW50cyk7XG4gIGNvbnN0IGlkZW50aWZpZXIgPSBpbnN0YWxsbWVudHMgP1xuICAgIGAke3Jhd1RyYW5zYWN0aW9uLmRlYWxEYXRhPy5hcm59XyR7aW5zdGFsbG1lbnRzLm51bWJlcn1gIDpcbiAgICByYXdUcmFuc2FjdGlvbi5kZWFsRGF0YT8uYXJuO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogZ2V0VHJhbnNhY3Rpb25UeXBlKHJhd1RyYW5zYWN0aW9uLnBsYW5OYW1lKSxcbiAgICBkYXRlOiBtb21lbnQocmF3VHJhbnNhY3Rpb24ucHVyY2hhc2VEYXRlKS50b0lTT1N0cmluZygpLFxuICAgIHByb2Nlc3NlZERhdGUsXG4gICAgb3JpZ2luYWxBbW91bnQ6IC1yYXdUcmFuc2FjdGlvbi5vcmlnaW5hbEFtb3VudCxcbiAgICBvcmlnaW5hbEN1cnJlbmN5OiByYXdUcmFuc2FjdGlvbi5vcmlnaW5hbEN1cnJlbmN5LFxuICAgIGNoYXJnZWRBbW91bnQ6IC1yYXdUcmFuc2FjdGlvbi5hY3R1YWxQYXltZW50QW1vdW50LFxuICAgIGRlc2NyaXB0aW9uOiByYXdUcmFuc2FjdGlvbi5tZXJjaGFudE5hbWUudHJpbSgpLFxuICAgIG1lbW86IHJhd1RyYW5zYWN0aW9uLmNvbW1lbnRzLFxuICAgIGNhdGVnb3J5OiBjYXRlZ29yaWVzLmdldChyYXdUcmFuc2FjdGlvbj8uY2F0ZWdvcnlJZCksXG4gICAgaW5zdGFsbG1lbnRzLFxuICAgIGlkZW50aWZpZXIsXG4gICAgc3RhdHVzLFxuICB9O1xufVxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHR7XG4gIHJlc3VsdD86IHtcbiAgICB0cmFuc2FjdGlvbnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0Zvck1vbnRoKHBhZ2U6IFBhZ2UsIG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgdXJsID0gZ2V0VHJhbnNhY3Rpb25zVXJsKG1vbnRoTW9tZW50KTtcblxuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHQ+KHBhZ2UsIHVybCk7XG4gIGNvbnN0IHRyYW5zYWN0aW9uc0J5QWNjb3VudDogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7fTtcblxuICBpZiAoIWRhdGEgfHwgIWRhdGEucmVzdWx0KSByZXR1cm4gdHJhbnNhY3Rpb25zQnlBY2NvdW50O1xuXG4gIGRhdGEucmVzdWx0LnRyYW5zYWN0aW9uc1xuICAgIC8vIEZpbHRlciBvdXQgbm9uLXRyYW5zYWN0aW9ucyB3aXRob3V0IGEgcGxhbiB0eXBlLCBlLmcuIHN1bW1hcnkgcm93c1xuICAgIC5maWx0ZXIoKHRyYW5zYWN0aW9uKSA9PiAhIXRyYW5zYWN0aW9uLnBsYW5OYW1lKVxuICAgIC5mb3JFYWNoKCh0cmFuc2FjdGlvbjogU2NyYXBlZFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICBpZiAoIXRyYW5zYWN0aW9uc0J5QWNjb3VudFt0cmFuc2FjdGlvbi5zaG9ydENhcmROdW1iZXJdKSB7XG4gICAgICAgIHRyYW5zYWN0aW9uc0J5QWNjb3VudFt0cmFuc2FjdGlvbi5zaG9ydENhcmROdW1iZXJdID0gW107XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1hcHBlZFRyYW5zYWN0aW9uID0gbWFwVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xuICAgICAgdHJhbnNhY3Rpb25zQnlBY2NvdW50W3RyYW5zYWN0aW9uLnNob3J0Q2FyZE51bWJlcl0ucHVzaChtYXBwZWRUcmFuc2FjdGlvbik7XG4gICAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zYWN0aW9uc0J5QWNjb3VudDtcbn1cblxuZnVuY3Rpb24gYWRkUmVzdWx0KGFsbFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+LCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+KSB7XG4gIGNvbnN0IGNsb25lZFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0geyAuLi5hbGxSZXN1bHRzIH07XG4gIE9iamVjdC5rZXlzKHJlc3VsdCkuZm9yRWFjaCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIGlmICghY2xvbmVkUmVzdWx0c1thY2NvdW50TnVtYmVyXSkge1xuICAgICAgY2xvbmVkUmVzdWx0c1thY2NvdW50TnVtYmVyXSA9IFtdO1xuICAgIH1cbiAgICBjbG9uZWRSZXN1bHRzW2FjY291bnROdW1iZXJdLnB1c2goLi4ucmVzdWx0W2FjY291bnROdW1iZXJdKTtcbiAgfSk7XG4gIHJldHVybiBjbG9uZWRSZXN1bHRzO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlVHJhbnNhY3Rpb25zKHR4bnM6IFRyYW5zYWN0aW9uW10sIHN0YXJ0TW9tZW50OiBtb21lbnQuTW9tZW50LCBjb21iaW5lSW5zdGFsbG1lbnRzOiBib29sZWFuLCBlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGU6IGJvb2xlYW4pIHtcbiAgbGV0IGNsb25lZFR4bnMgPSBBcnJheS5mcm9tKHR4bnMpO1xuICBpZiAoIWNvbWJpbmVJbnN0YWxsbWVudHMpIHtcbiAgICBjbG9uZWRUeG5zID0gZml4SW5zdGFsbG1lbnRzKGNsb25lZFR4bnMpO1xuICB9XG4gIGNsb25lZFR4bnMgPSBzb3J0VHJhbnNhY3Rpb25zQnlEYXRlKGNsb25lZFR4bnMpO1xuICBjbG9uZWRUeG5zID0gZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlID9cbiAgICBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMoY2xvbmVkVHhucywgc3RhcnRNb21lbnQsIGNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpIDpcbiAgICBjbG9uZWRUeG5zO1xuICByZXR1cm4gY2xvbmVkVHhucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgb3B0aW9uczogU2NyYXBlck9wdGlvbnMpIHtcbiAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSBvcHRpb25zLmZ1dHVyZU1vbnRoc1RvU2NyYXBlID8/IDE7XG4gIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpO1xuICBjb25zdCBzdGFydERhdGUgPSBvcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcbiAgY29uc3QgYWxsTW9udGhzID0gZ2V0QWxsTW9udGhNb21lbnRzKHN0YXJ0TW9tZW50LCBmdXR1cmVNb250aHNUb1NjcmFwZSk7XG5cbiAgYXdhaXQgbG9hZENhdGVnb3JpZXMocGFnZSk7XG5cbiAgbGV0IGFsbFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsTW9udGhzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnNGb3JNb250aChwYWdlLCBhbGxNb250aHNbaV0pO1xuICAgIGFsbFJlc3VsdHMgPSBhZGRSZXN1bHQoYWxsUmVzdWx0cywgcmVzdWx0KTtcbiAgfVxuXG4gIE9iamVjdC5rZXlzKGFsbFJlc3VsdHMpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICBsZXQgdHhucyA9IGFsbFJlc3VsdHNbYWNjb3VudE51bWJlcl07XG4gICAgdHhucyA9IHByZXBhcmVUcmFuc2FjdGlvbnModHhucywgc3RhcnRNb21lbnQsIG9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSxcbiAgICAgIChvcHRpb25zLm91dHB1dERhdGE/LmVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSA/PyB0cnVlKSk7XG4gICAgYWxsUmVzdWx0c1thY2NvdW50TnVtYmVyXSA9IHR4bnM7XG4gIH0pO1xuXG4gIHJldHVybiBhbGxSZXN1bHRzO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyhwYWdlOiBQYWdlKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICBjb25zdCB1cmxzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHt9O1xuICB1cmxzW0xvZ2luUmVzdWx0cy5TdWNjZXNzXSA9IFtTVUNDRVNTX1VSTF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXSA9IFtQQVNTV09SRF9FWFBJUkVEX1VSTF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF0gPSBbYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IpO1xuICB9XTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yXSA9IFthc3luYyAoKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIExPR0lOX0VSUk9SX1NFTEVDVE9SKTtcbiAgfV07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnI3VzZXItbmFtZScsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6ICcjcGFzc3dvcmQnLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxudHlwZSBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyA9IHt1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nfTtcblxuY2xhc3MgTWF4U2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXI8U2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHM+IHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogTE9HSU5fVVJMLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJyNsb2dpbi1wYXNzd29yZCAjc2VuZC1jb2RlJyxcbiAgICAgIHByZUFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UodGhpcy5wYWdlLCAnI2Nsb3NlUG9wdXAnKSkge1xuICAgICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNjbG9zZVBvcHVwJyk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnLnBlcnNvbmFsLWFyZWEgPiBhLmdvLXRvLXBlcnNvbmFsLWFyZWEnKTtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNsb2dpbi1wYXNzd29yZC1saW5rJywgdHJ1ZSk7XG4gICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNsb2dpbi1wYXNzd29yZC1saW5rJyk7XG4gICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjbG9naW4tcGFzc3dvcmQudGFiLXBhbmUuYWN0aXZlIGFwcC11c2VyLWxvZ2luLWZvcm0nLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnLnBlcnNvbmFsLWFyZWEgPiBhLmdvLXRvLXBlcnNvbmFsLWFyZWEnLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiByZWRpcmVjdE9yRGlhbG9nKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHRoaXMucGFnZSksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCB0aGlzLm9wdGlvbnMpO1xuICAgIGNvbnN0IGFjY291bnRzID0gT2JqZWN0LmtleXMocmVzdWx0cykubWFwKChhY2NvdW50TnVtYmVyKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgICB0eG5zOiByZXN1bHRzW2FjY291bnROdW1iZXJdLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYXhTY3JhcGVyO1xuIl19
322
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9tYXgudHMiXSwibmFtZXMiOlsiZGVidWciLCJCQVNFX0FDVElPTlNfVVJMIiwiQkFTRV9BUElfQUNUSU9OU19VUkwiLCJCQVNFX1dFTENPTUVfVVJMIiwiTE9HSU5fVVJMIiwiUEFTU1dPUkRfRVhQSVJFRF9VUkwiLCJTVUNDRVNTX1VSTCIsIk5PUk1BTF9UWVBFX05BTUUiLCJBVE1fVFlQRV9OQU1FIiwiSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FIiwiSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSIsIk1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSIsIk9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRSIsIkZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkciLCJNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FIiwiVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUUiLCJUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUiLCJUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUyIiwiTU9OVEhMWV9DSEFSR0VfUExVU19JTlRFUkVTVF9UWVBFX05BTUUiLCJDUkVESVRfVFlQRV9OQU1FIiwiQ1JFRElUX09VVFNJREVfVEhFX0xJTUlUIiwiQUNDVU1VTEFUSU5HX0JBU0tFVCIsIlBPU1RQT05FRF9UUkFOU0FDVElPTl9JTlNUQUxMTUVOVFMiLCJSRVBMQUNFTUVOVF9DQVJEIiwiRUFSTFlfUkVQQVlNRU5UIiwiTU9OVEhMWV9DQVJEX0ZFRSIsIklOVkFMSURfREVUQUlMU19TRUxFQ1RPUiIsIkxPR0lOX0VSUk9SX1NFTEVDVE9SIiwiY2F0ZWdvcmllcyIsIk1hcCIsInJlZGlyZWN0T3JEaWFsb2ciLCJwYWdlIiwiUHJvbWlzZSIsInJhY2UiLCJnZXRUcmFuc2FjdGlvbnNVcmwiLCJtb250aE1vbWVudCIsIm1vbnRoIiwieWVhciIsImRhdGUiLCJwYXRoIiwibG9hZENhdGVnb3JpZXMiLCJyZXMiLCJBcnJheSIsImlzQXJyYXkiLCJyZXN1bHQiLCJsZW5ndGgiLCJmb3JFYWNoIiwiaWQiLCJuYW1lIiwic2V0IiwiZ2V0VHJhbnNhY3Rpb25UeXBlIiwidHhuVHlwZVN0ciIsImNsZWFuZWRVcFR4blR5cGVTdHIiLCJyZXBsYWNlIiwidHJpbSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJJbnN0YWxsbWVudHMiLCJFcnJvciIsImdldEluc3RhbGxtZW50c0luZm8iLCJjb21tZW50cyIsInVuZGVmaW5lZCIsIm1hdGNoZXMiLCJtYXRjaCIsIm51bWJlciIsInBhcnNlSW50IiwidG90YWwiLCJtYXBUcmFuc2FjdGlvbiIsInJhd1RyYW5zYWN0aW9uIiwiaXNQZW5kaW5nIiwicGF5bWVudERhdGUiLCJwcm9jZXNzZWREYXRlIiwicHVyY2hhc2VEYXRlIiwidG9JU09TdHJpbmciLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsIkNvbXBsZXRlZCIsImluc3RhbGxtZW50cyIsImlkZW50aWZpZXIiLCJkZWFsRGF0YSIsImFybiIsInR5cGUiLCJwbGFuTmFtZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRBbW91bnQiLCJhY3R1YWxQYXltZW50QW1vdW50IiwiZGVzY3JpcHRpb24iLCJtZXJjaGFudE5hbWUiLCJtZW1vIiwiY2F0ZWdvcnkiLCJnZXQiLCJjYXRlZ29yeUlkIiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JNb250aCIsInVybCIsImRhdGEiLCJ0cmFuc2FjdGlvbnNCeUFjY291bnQiLCJ0cmFuc2FjdGlvbnMiLCJmaWx0ZXIiLCJ0cmFuc2FjdGlvbiIsInNob3J0Q2FyZE51bWJlciIsIm1hcHBlZFRyYW5zYWN0aW9uIiwicHVzaCIsImFkZFJlc3VsdCIsImFsbFJlc3VsdHMiLCJjbG9uZWRSZXN1bHRzIiwiT2JqZWN0Iiwia2V5cyIsImFjY291bnROdW1iZXIiLCJwcmVwYXJlVHJhbnNhY3Rpb25zIiwidHhucyIsInN0YXJ0TW9tZW50IiwiY29tYmluZUluc3RhbGxtZW50cyIsImVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSIsImNsb25lZFR4bnMiLCJmcm9tIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJvcHRpb25zIiwiZnV0dXJlTW9udGhzVG9TY3JhcGUiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsIm1vbWVudCIsIm1heCIsImFsbE1vbnRocyIsImkiLCJvdXRwdXREYXRhIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJ1cmxzIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIkNoYW5nZVBhc3N3b3JkIiwiSW52YWxpZFBhc3N3b3JkIiwiVW5rbm93bkVycm9yIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiTWF4U2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwicHJlQWN0aW9uIiwiY2hlY2tSZWFkaW5lc3MiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwid2FpdFVudGlsIiwiZmV0Y2hEYXRhIiwicmVzdWx0cyIsImFjY291bnRzIiwibWFwIiwic3VjY2VzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFHQSxNQUFNQSxLQUFLLEdBQUcscUJBQVMsS0FBVCxDQUFkO0FBa0JBLE1BQU1DLGdCQUFnQixHQUFHLDBCQUF6QjtBQUNBLE1BQU1DLG9CQUFvQixHQUFHLCtCQUE3QjtBQUNBLE1BQU1DLGdCQUFnQixHQUFHLHVCQUF6QjtBQUVBLE1BQU1DLFNBQVMsR0FBSSxHQUFFRCxnQkFBaUIsbUJBQXRDO0FBQ0EsTUFBTUUsb0JBQW9CLEdBQUksR0FBRUosZ0JBQWlCLHVDQUFqRDtBQUNBLE1BQU1LLFdBQVcsR0FBSSxHQUFFSCxnQkFBaUIsb0JBQXhDO0FBRUEsTUFBTUksZ0JBQWdCLEdBQUcsT0FBekI7QUFDQSxNQUFNQyxhQUFhLEdBQUcsa0JBQXRCO0FBQ0EsTUFBTUMsMkJBQTJCLEdBQUcsY0FBcEM7QUFDQSxNQUFNQyxzQkFBc0IsR0FBRyxTQUEvQjtBQUNBLE1BQU1DLHdCQUF3QixHQUFHLFlBQWpDO0FBQ0EsTUFBTUMsNkJBQTZCLEdBQUcsV0FBdEM7QUFDQSxNQUFNQywyQkFBMkIsR0FBRyxtQkFBcEM7QUFDQSxNQUFNQyx5QkFBeUIsR0FBRyxhQUFsQztBQUNBLE1BQU1DLHlCQUF5QixHQUFHLHFCQUFsQztBQUNBLE1BQU1DLHdDQUF3QyxHQUFHLG1CQUFqRDtBQUNBLE1BQU1DLDBCQUEwQixHQUFHLGNBQW5DO0FBQ0EsTUFBTUMsOEJBQThCLEdBQUcsY0FBdkM7QUFDQSxNQUFNQywrQkFBK0IsR0FBRyxvQkFBeEM7QUFDQSxNQUFNQyxzQ0FBc0MsR0FBRyxlQUEvQztBQUNBLE1BQU1DLGdCQUFnQixHQUFHLE9BQXpCO0FBQ0EsTUFBTUMsd0JBQXdCLEdBQUcsbUJBQWpDO0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUcsVUFBNUI7QUFDQSxNQUFNQyxrQ0FBa0MsR0FBRyxvQkFBM0M7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyxhQUF6QjtBQUNBLE1BQU1DLGVBQWUsR0FBRyxhQUF4QjtBQUNBLE1BQU1DLGdCQUFnQixHQUFHLFdBQXpCO0FBRUEsTUFBTUMsd0JBQXdCLEdBQUcsb0JBQWpDO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUcsNkJBQTdCO0FBRUEsTUFBTUMsVUFBVSxHQUFHLElBQUlDLEdBQUosRUFBbkI7O0FBRUEsU0FBU0MsZ0JBQVQsQ0FBMEJDLElBQTFCLEVBQXNDO0FBQ3BDLFNBQU9DLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLENBQ2xCLGlDQUFnQkYsSUFBaEIsRUFBc0IsS0FBdEIsRUFBNkIsS0FBN0IsRUFBb0MsQ0FBQzlCLGdCQUFELEVBQW9CLEdBQUVBLGdCQUFpQixHQUF2QyxDQUFwQyxDQURrQixFQUVsQixpREFBc0I4QixJQUF0QixFQUE0Qkwsd0JBQTVCLEVBQXNELElBQXRELENBRmtCLEVBR2xCLGlEQUFzQkssSUFBdEIsRUFBNEJKLG9CQUE1QixFQUFrRCxJQUFsRCxDQUhrQixDQUFiLENBQVA7QUFLRDs7QUFFRCxTQUFTTyxrQkFBVCxDQUE0QkMsV0FBNUIsRUFBaUQ7QUFDL0MsUUFBTUMsS0FBSyxHQUFHRCxXQUFXLENBQUNDLEtBQVosS0FBc0IsQ0FBcEM7QUFDQSxRQUFNQyxJQUFJLEdBQUdGLFdBQVcsQ0FBQ0UsSUFBWixFQUFiO0FBQ0EsUUFBTUMsSUFBSSxHQUFJLEdBQUVELElBQUssSUFBR0QsS0FBTSxLQUE5QjtBQUVBOzs7Ozs7O0FBTUEsU0FBTyx1QkFBU3BDLG9CQUFULEVBQStCO0FBQ3BDdUMsSUFBQUEsSUFBSSxFQUFHLGtJQUFpSUQsSUFBSztBQUR6RyxHQUEvQixDQUFQO0FBR0Q7O0FBU0QsZUFBZUUsY0FBZixDQUE4QlQsSUFBOUIsRUFBMEM7QUFDeENqQyxFQUFBQSxLQUFLLENBQUMsb0JBQUQsQ0FBTDtBQUNBLFFBQU0yQyxHQUFHLEdBQUcsTUFBTSwrQkFBd0NWLElBQXhDLEVBQStDLEdBQUUvQixvQkFBcUIsNkJBQXRFLENBQWxCOztBQUNBLE1BQUl5QyxHQUFHLElBQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjRixHQUFHLENBQUNHLE1BQWxCLENBQVgsRUFBc0M7QUFBQTs7QUFDcEM5QyxJQUFBQSxLQUFLLENBQUUsR0FBRTJDLEdBQUcsQ0FBQ0csTUFBSixDQUFXQyxNQUFPLG9CQUF0QixDQUFMO0FBQ0UsbUJBQUFKLEdBQUcsQ0FBQ0csTUFBSiw0REFBWUUsT0FBWixDQUFvQixDQUFDO0FBQUVDLE1BQUFBLEVBQUY7QUFBTUMsTUFBQUE7QUFBTixLQUFELEtBQWtCcEIsVUFBVSxDQUFDcUIsR0FBWCxDQUFlRixFQUFmLEVBQW1CQyxJQUFuQixDQUF0QztBQUNIO0FBQ0Y7O0FBRUQsU0FBU0Usa0JBQVQsQ0FBNEJDLFVBQTVCLEVBQWdEO0FBQzlDLFFBQU1DLG1CQUFtQixHQUFHRCxVQUFVLENBQUNFLE9BQVgsQ0FBbUIsSUFBbkIsRUFBeUIsR0FBekIsRUFBOEJDLElBQTlCLEVBQTVCOztBQUNBLFVBQVFGLG1CQUFSO0FBQ0UsU0FBSzlDLGFBQUw7QUFDQSxTQUFLRCxnQkFBTDtBQUNBLFNBQUtJLHdCQUFMO0FBQ0EsU0FBS0MsNkJBQUw7QUFDQSxTQUFLQywyQkFBTDtBQUNBLFNBQUtFLHlCQUFMO0FBQ0EsU0FBS0QseUJBQUw7QUFDQSxTQUFLRSx3Q0FBTDtBQUNBLFNBQUtDLDBCQUFMO0FBQ0EsU0FBS0MsOEJBQUw7QUFDQSxTQUFLQywrQkFBTDtBQUNBLFNBQUtJLG1CQUFMO0FBQ0EsU0FBS2QsMkJBQUw7QUFDQSxTQUFLVyxzQ0FBTDtBQUNBLFNBQUtJLGtDQUFMO0FBQ0EsU0FBS0MsZ0JBQUw7QUFDQSxTQUFLQyxlQUFMO0FBQ0EsU0FBS0MsZ0JBQUw7QUFDRSxhQUFPOEIsZ0NBQWlCQyxNQUF4Qjs7QUFDRixTQUFLaEQsc0JBQUw7QUFDQSxTQUFLVyxnQkFBTDtBQUNBLFNBQUtDLHdCQUFMO0FBQ0UsYUFBT21DLGdDQUFpQkUsWUFBeEI7O0FBQ0Y7QUFDRSxZQUFNLElBQUlDLEtBQUosQ0FBVyw0QkFBMkJOLG1CQUFvQixFQUExRCxDQUFOO0FBekJKO0FBMkJEOztBQUVELFNBQVNPLG1CQUFULENBQTZCQyxRQUE3QixFQUErQztBQUM3QyxNQUFJLENBQUNBLFFBQUwsRUFBZTtBQUNiLFdBQU9DLFNBQVA7QUFDRDs7QUFDRCxRQUFNQyxPQUFPLEdBQUdGLFFBQVEsQ0FBQ0csS0FBVCxDQUFlLE1BQWYsQ0FBaEI7O0FBQ0EsTUFBSSxDQUFDRCxPQUFELElBQVlBLE9BQU8sQ0FBQ2pCLE1BQVIsR0FBaUIsQ0FBakMsRUFBb0M7QUFDbEMsV0FBT2dCLFNBQVA7QUFDRDs7QUFFRCxTQUFPO0FBQ0xHLElBQUFBLE1BQU0sRUFBRUMsUUFBUSxDQUFDSCxPQUFPLENBQUMsQ0FBRCxDQUFSLEVBQWEsRUFBYixDQURYO0FBRUxJLElBQUFBLEtBQUssRUFBRUQsUUFBUSxDQUFDSCxPQUFPLENBQUMsQ0FBRCxDQUFSLEVBQWEsRUFBYjtBQUZWLEdBQVA7QUFJRDs7QUFDRCxTQUFTSyxjQUFULENBQXdCQyxjQUF4QixFQUF5RTtBQUFBOztBQUN2RSxRQUFNQyxTQUFTLEdBQUdELGNBQWMsQ0FBQ0UsV0FBZixLQUErQixJQUFqRDtBQUNBLFFBQU1DLGFBQWEsR0FBRyxxQkFBT0YsU0FBUyxHQUNwQ0QsY0FBYyxDQUFDSSxZQURxQixHQUVwQ0osY0FBYyxDQUFDRSxXQUZLLEVBRVFHLFdBRlIsRUFBdEI7QUFHQSxRQUFNQyxNQUFNLEdBQUdMLFNBQVMsR0FBR00sbUNBQW9CQyxPQUF2QixHQUFpQ0QsbUNBQW9CRSxTQUE3RTtBQUVBLFFBQU1DLFlBQVksR0FBR25CLG1CQUFtQixDQUFDUyxjQUFjLENBQUNSLFFBQWhCLENBQXhDO0FBQ0EsUUFBTW1CLFVBQVUsR0FBR0QsWUFBWSxHQUM1QixHQUFELHlCQUFHVixjQUFjLENBQUNZLFFBQWxCLDBEQUFHLHNCQUF5QkMsR0FBSSxJQUFHSCxZQUFZLENBQUNkLE1BQU8sRUFEMUIsNkJBRTdCSSxjQUFjLENBQUNZLFFBRmMsMkRBRTdCLHVCQUF5QkMsR0FGM0I7QUFJQSxTQUFPO0FBQ0xDLElBQUFBLElBQUksRUFBRWhDLGtCQUFrQixDQUFDa0IsY0FBYyxDQUFDZSxRQUFoQixDQURuQjtBQUVMN0MsSUFBQUEsSUFBSSxFQUFFLHFCQUFPOEIsY0FBYyxDQUFDSSxZQUF0QixFQUFvQ0MsV0FBcEMsRUFGRDtBQUdMRixJQUFBQSxhQUhLO0FBSUxhLElBQUFBLGNBQWMsRUFBRSxDQUFDaEIsY0FBYyxDQUFDZ0IsY0FKM0I7QUFLTEMsSUFBQUEsZ0JBQWdCLEVBQUVqQixjQUFjLENBQUNpQixnQkFMNUI7QUFNTEMsSUFBQUEsYUFBYSxFQUFFLENBQUNsQixjQUFjLENBQUNtQixtQkFOMUI7QUFPTEMsSUFBQUEsV0FBVyxFQUFFcEIsY0FBYyxDQUFDcUIsWUFBZixDQUE0Qm5DLElBQTVCLEVBUFI7QUFRTG9DLElBQUFBLElBQUksRUFBRXRCLGNBQWMsQ0FBQ1IsUUFSaEI7QUFTTCtCLElBQUFBLFFBQVEsRUFBRS9ELFVBQVUsQ0FBQ2dFLEdBQVgsQ0FBZXhCLGNBQWYsYUFBZUEsY0FBZix1QkFBZUEsY0FBYyxDQUFFeUIsVUFBL0IsQ0FUTDtBQVVMZixJQUFBQSxZQVZLO0FBV0xDLElBQUFBLFVBWEs7QUFZTEwsSUFBQUE7QUFaSyxHQUFQO0FBY0Q7O0FBT0QsZUFBZW9CLHlCQUFmLENBQXlDL0QsSUFBekMsRUFBcURJLFdBQXJELEVBQTBFO0FBQ3hFLFFBQU00RCxHQUFHLEdBQUc3RCxrQkFBa0IsQ0FBQ0MsV0FBRCxDQUE5QjtBQUVBLFFBQU02RCxJQUFJLEdBQUcsTUFBTSwrQkFBOENqRSxJQUE5QyxFQUFvRGdFLEdBQXBELENBQW5CO0FBQ0EsUUFBTUUscUJBQW9ELEdBQUcsRUFBN0Q7QUFFQSxNQUFJLENBQUNELElBQUQsSUFBUyxDQUFDQSxJQUFJLENBQUNwRCxNQUFuQixFQUEyQixPQUFPcUQscUJBQVA7QUFFM0JELEVBQUFBLElBQUksQ0FBQ3BELE1BQUwsQ0FBWXNELFlBQVosQ0FDRTtBQURGLEdBRUdDLE1BRkgsQ0FFV0MsV0FBRCxJQUFpQixDQUFDLENBQUNBLFdBQVcsQ0FBQ2pCLFFBRnpDLEVBR0dyQyxPQUhILENBR1lzRCxXQUFELElBQXFDO0FBQzVDLFFBQUksQ0FBQ0gscUJBQXFCLENBQUNHLFdBQVcsQ0FBQ0MsZUFBYixDQUExQixFQUF5RDtBQUN2REosTUFBQUEscUJBQXFCLENBQUNHLFdBQVcsQ0FBQ0MsZUFBYixDQUFyQixHQUFxRCxFQUFyRDtBQUNEOztBQUVELFVBQU1DLGlCQUFpQixHQUFHbkMsY0FBYyxDQUFDaUMsV0FBRCxDQUF4QztBQUNBSCxJQUFBQSxxQkFBcUIsQ0FBQ0csV0FBVyxDQUFDQyxlQUFiLENBQXJCLENBQW1ERSxJQUFuRCxDQUF3REQsaUJBQXhEO0FBQ0QsR0FWSDtBQVlBLFNBQU9MLHFCQUFQO0FBQ0Q7O0FBRUQsU0FBU08sU0FBVCxDQUFtQkMsVUFBbkIsRUFBOEQ3RCxNQUE5RCxFQUFxRztBQUNuRyxRQUFNOEQsYUFBNEMscUJBQVFELFVBQVIsQ0FBbEQ7O0FBQ0FFLEVBQUFBLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZaEUsTUFBWixFQUFvQkUsT0FBcEIsQ0FBNkIrRCxhQUFELElBQW1CO0FBQzdDLFFBQUksQ0FBQ0gsYUFBYSxDQUFDRyxhQUFELENBQWxCLEVBQW1DO0FBQ2pDSCxNQUFBQSxhQUFhLENBQUNHLGFBQUQsQ0FBYixHQUErQixFQUEvQjtBQUNEOztBQUNESCxJQUFBQSxhQUFhLENBQUNHLGFBQUQsQ0FBYixDQUE2Qk4sSUFBN0IsQ0FBa0MsR0FBRzNELE1BQU0sQ0FBQ2lFLGFBQUQsQ0FBM0M7QUFDRCxHQUxEO0FBTUEsU0FBT0gsYUFBUDtBQUNEOztBQUVELFNBQVNJLG1CQUFULENBQTZCQyxJQUE3QixFQUFrREMsV0FBbEQsRUFBOEVDLG1CQUE5RSxFQUE0R0MsOEJBQTVHLEVBQXFKO0FBQ25KLE1BQUlDLFVBQVUsR0FBR3pFLEtBQUssQ0FBQzBFLElBQU4sQ0FBV0wsSUFBWCxDQUFqQjs7QUFDQSxNQUFJLENBQUNFLG1CQUFMLEVBQTBCO0FBQ3hCRSxJQUFBQSxVQUFVLEdBQUcsbUNBQWdCQSxVQUFoQixDQUFiO0FBQ0Q7O0FBQ0RBLEVBQUFBLFVBQVUsR0FBRywwQ0FBdUJBLFVBQXZCLENBQWI7QUFDQUEsRUFBQUEsVUFBVSxHQUFHRCw4QkFBOEIsR0FDekMseUNBQXNCQyxVQUF0QixFQUFrQ0gsV0FBbEMsRUFBK0NDLG1CQUFtQixJQUFJLEtBQXRFLENBRHlDLEdBRXpDRSxVQUZGO0FBR0EsU0FBT0EsVUFBUDtBQUNEOztBQUVELGVBQWVFLGlCQUFmLENBQWlDdEYsSUFBakMsRUFBNkN1RixPQUE3QyxFQUFzRTtBQUFBOztBQUNwRSxRQUFNQyxvQkFBb0IsNEJBQUdELE9BQU8sQ0FBQ0Msb0JBQVgseUVBQW1DLENBQTdEO0FBQ0EsUUFBTUMsa0JBQWtCLEdBQUcsdUJBQVNDLFFBQVQsQ0FBa0IsQ0FBbEIsRUFBcUIsT0FBckIsQ0FBM0I7QUFDQSxRQUFNQyxTQUFTLEdBQUdKLE9BQU8sQ0FBQ0ksU0FBUixJQUFxQkYsa0JBQWtCLENBQUNHLE1BQW5CLEVBQXZDOztBQUNBLFFBQU1YLFdBQVcsR0FBR1ksZ0JBQU9DLEdBQVAsQ0FBV0wsa0JBQVgsRUFBK0IscUJBQU9FLFNBQVAsQ0FBL0IsQ0FBcEI7O0FBQ0EsUUFBTUksU0FBUyxHQUFHLG9CQUFtQmQsV0FBbkIsRUFBZ0NPLG9CQUFoQyxDQUFsQjtBQUVBLFFBQU0vRSxjQUFjLENBQUNULElBQUQsQ0FBcEI7QUFFQSxNQUFJMEUsVUFBeUMsR0FBRyxFQUFoRDs7QUFDQSxPQUFLLElBQUlzQixDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHRCxTQUFTLENBQUNqRixNQUE5QixFQUFzQ2tGLENBQUMsSUFBSSxDQUEzQyxFQUE4QztBQUM1QyxVQUFNbkYsTUFBTSxHQUFHLE1BQU1rRCx5QkFBeUIsQ0FBQy9ELElBQUQsRUFBTytGLFNBQVMsQ0FBQ0MsQ0FBRCxDQUFoQixDQUE5QztBQUNBdEIsSUFBQUEsVUFBVSxHQUFHRCxTQUFTLENBQUNDLFVBQUQsRUFBYTdELE1BQWIsQ0FBdEI7QUFDRDs7QUFFRCtELEVBQUFBLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSCxVQUFaLEVBQXdCM0QsT0FBeEIsQ0FBaUMrRCxhQUFELElBQW1CO0FBQUE7O0FBQ2pELFFBQUlFLElBQUksR0FBR04sVUFBVSxDQUFDSSxhQUFELENBQXJCO0FBQ0FFLElBQUFBLElBQUksR0FBR0QsbUJBQW1CLENBQUNDLElBQUQsRUFBT0MsV0FBUCxFQUFvQk0sT0FBTyxDQUFDTCxtQkFBUixJQUErQixLQUFuRCxrREFDdkJLLE9BQU8sQ0FBQ1UsVUFEZSx3REFDdkIsb0JBQW9CZCw4QkFERyx5RUFDK0IsSUFEL0IsQ0FBMUI7QUFFQVQsSUFBQUEsVUFBVSxDQUFDSSxhQUFELENBQVYsR0FBNEJFLElBQTVCO0FBQ0QsR0FMRDtBQU9BLFNBQU9OLFVBQVA7QUFDRDs7QUFFRCxTQUFTd0IsdUJBQVQsQ0FBaUNsRyxJQUFqQyxFQUFtRTtBQUNqRSxRQUFNbUcsSUFBMEIsR0FBRyxFQUFuQztBQUNBQSxFQUFBQSxJQUFJLENBQUNDLHFDQUFhQyxPQUFkLENBQUosR0FBNkIsQ0FBQ2hJLFdBQUQsQ0FBN0I7QUFDQThILEVBQUFBLElBQUksQ0FBQ0MscUNBQWFFLGNBQWQsQ0FBSixHQUFvQyxDQUFDbEksb0JBQUQsQ0FBcEM7QUFDQStILEVBQUFBLElBQUksQ0FBQ0MscUNBQWFHLGVBQWQsQ0FBSixHQUFxQyxDQUFDLFlBQVk7QUFDaEQsV0FBTyxnREFBcUJ2RyxJQUFyQixFQUEyQkwsd0JBQTNCLENBQVA7QUFDRCxHQUZvQyxDQUFyQztBQUdBd0csRUFBQUEsSUFBSSxDQUFDQyxxQ0FBYUksWUFBZCxDQUFKLEdBQWtDLENBQUMsWUFBWTtBQUM3QyxXQUFPLGdEQUFxQnhHLElBQXJCLEVBQTJCSixvQkFBM0IsQ0FBUDtBQUNELEdBRmlDLENBQWxDO0FBR0EsU0FBT3VHLElBQVA7QUFDRDs7QUFFRCxTQUFTTSxpQkFBVCxDQUEyQkMsV0FBM0IsRUFBb0U7QUFDbEUsU0FBTyxDQUNMO0FBQUVDLElBQUFBLFFBQVEsRUFBRSxZQUFaO0FBQTBCQyxJQUFBQSxLQUFLLEVBQUVGLFdBQVcsQ0FBQ0c7QUFBN0MsR0FESyxFQUVMO0FBQUVGLElBQUFBLFFBQVEsRUFBRSxXQUFaO0FBQXlCQyxJQUFBQSxLQUFLLEVBQUVGLFdBQVcsQ0FBQ0k7QUFBNUMsR0FGSyxDQUFQO0FBSUQ7O0FBSUQsTUFBTUMsVUFBTixTQUF5QkMsOENBQXpCLENBQTRFO0FBQzFFQyxFQUFBQSxlQUFlLENBQUNQLFdBQUQsRUFBMEM7QUFDdkQsV0FBTztBQUNMUSxNQUFBQSxRQUFRLEVBQUUvSSxTQURMO0FBRUxnSixNQUFBQSxNQUFNLEVBQUVWLGlCQUFpQixDQUFDQyxXQUFELENBRnBCO0FBR0xVLE1BQUFBLG9CQUFvQixFQUFFLDRCQUhqQjtBQUlMQyxNQUFBQSxTQUFTLEVBQUUsWUFBWTtBQUNyQixZQUFJLE1BQU0sZ0RBQXFCLEtBQUtySCxJQUExQixFQUFnQyxhQUFoQyxDQUFWLEVBQTBEO0FBQ3hELGdCQUFNLHVDQUFZLEtBQUtBLElBQWpCLEVBQXVCLGFBQXZCLENBQU47QUFDRDs7QUFDRCxjQUFNLHVDQUFZLEtBQUtBLElBQWpCLEVBQXVCLHdDQUF2QixDQUFOO0FBQ0EsY0FBTSxpREFBc0IsS0FBS0EsSUFBM0IsRUFBaUMsc0JBQWpDLEVBQXlELElBQXpELENBQU47QUFDQSxjQUFNLHVDQUFZLEtBQUtBLElBQWpCLEVBQXVCLHNCQUF2QixDQUFOO0FBQ0EsY0FBTSxpREFBc0IsS0FBS0EsSUFBM0IsRUFBaUMscURBQWpDLEVBQXdGLElBQXhGLENBQU47QUFDRCxPQVpJO0FBYUxzSCxNQUFBQSxjQUFjLEVBQUUsWUFBWTtBQUMxQixjQUFNLGlEQUFzQixLQUFLdEgsSUFBM0IsRUFBaUMsd0NBQWpDLEVBQTJFLElBQTNFLENBQU47QUFDRCxPQWZJO0FBZ0JMdUgsTUFBQUEsVUFBVSxFQUFFLFlBQVl4SCxnQkFBZ0IsQ0FBQyxLQUFLQyxJQUFOLENBaEJuQztBQWlCTHdILE1BQUFBLGVBQWUsRUFBRXRCLHVCQUF1QixDQUFDLEtBQUtsRyxJQUFOLENBakJuQztBQWtCTHlILE1BQUFBLFNBQVMsRUFBRTtBQWxCTixLQUFQO0FBb0JEOztBQUVELFFBQU1DLFNBQU4sR0FBa0I7QUFDaEIsVUFBTUMsT0FBTyxHQUFHLE1BQU1yQyxpQkFBaUIsQ0FBQyxLQUFLdEYsSUFBTixFQUFZLEtBQUt1RixPQUFqQixDQUF2QztBQUNBLFVBQU1xQyxRQUFRLEdBQUdoRCxNQUFNLENBQUNDLElBQVAsQ0FBWThDLE9BQVosRUFBcUJFLEdBQXJCLENBQTBCL0MsYUFBRCxJQUFtQjtBQUMzRCxhQUFPO0FBQ0xBLFFBQUFBLGFBREs7QUFFTEUsUUFBQUEsSUFBSSxFQUFFMkMsT0FBTyxDQUFDN0MsYUFBRDtBQUZSLE9BQVA7QUFJRCxLQUxnQixDQUFqQjtBQU9BLFdBQU87QUFDTGdELE1BQUFBLE9BQU8sRUFBRSxJQURKO0FBRUxGLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQXJDeUU7O2VBd0M3RGIsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZFVybCBmcm9tICdidWlsZC11cmwnO1xuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgUGFnZSwgTG9hZEV2ZW50IH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyB3YWl0Rm9yUmVkaXJlY3QgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgd2FpdFVudGlsRWxlbWVudEZvdW5kLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgY2xpY2tCdXR0b24gfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgZ2V0QWxsTW9udGhNb21lbnRzIGZyb20gJy4uL2hlbHBlcnMvZGF0ZXMnO1xuaW1wb3J0IHsgZml4SW5zdGFsbG1lbnRzLCBzb3J0VHJhbnNhY3Rpb25zQnlEYXRlLCBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHsgU2NyYXBlck9wdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ21heCcpO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgc2hvcnRDYXJkTnVtYmVyOiBzdHJpbmc7XG4gIHBheW1lbnREYXRlPzogc3RyaW5nO1xuICBwdXJjaGFzZURhdGU6IHN0cmluZztcbiAgYWN0dWFsUGF5bWVudEFtb3VudDogc3RyaW5nO1xuICBvcmlnaW5hbEN1cnJlbmN5OiBzdHJpbmc7XG4gIG9yaWdpbmFsQW1vdW50OiBudW1iZXI7XG4gIHBsYW5OYW1lOiBzdHJpbmc7XG4gIGNvbW1lbnRzOiBzdHJpbmc7XG4gIG1lcmNoYW50TmFtZTogc3RyaW5nO1xuICBjYXRlZ29yeUlkOiBudW1iZXI7XG4gIGRlYWxEYXRhPzoge1xuICAgIGFybjogc3RyaW5nO1xuICB9O1xufVxuXG5jb25zdCBCQVNFX0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vb25saW5lLm1heC5jby5pbCc7XG5jb25zdCBCQVNFX0FQSV9BQ1RJT05TX1VSTCA9ICdodHRwczovL29ubGluZWxjYXBpLm1heC5jby5pbCc7XG5jb25zdCBCQVNFX1dFTENPTUVfVVJMID0gJ2h0dHBzOi8vd3d3Lm1heC5jby5pbCc7XG5cbmNvbnN0IExPR0lOX1VSTCA9IGAke0JBU0VfV0VMQ09NRV9VUkx9L2hvbWVwYWdlL3dlbGNvbWVgO1xuY29uc3QgUEFTU1dPUkRfRVhQSVJFRF9VUkwgPSBgJHtCQVNFX0FDVElPTlNfVVJMfS9Bbm9ueW1vdXMvTG9naW4vUGFzc3dvcmRFeHBpcmVkLmFzcHhgO1xuY29uc3QgU1VDQ0VTU19VUkwgPSBgJHtCQVNFX1dFTENPTUVfVVJMfS9ob21lcGFnZS9wZXJzb25hbGA7XG5cbmNvbnN0IE5PUk1BTF9UWVBFX05BTUUgPSAn16jXkteZ15zXlCc7XG5jb25zdCBBVE1fVFlQRV9OQU1FID0gJ9eX15nXldeRINei16HXp9eV16og157XmdeZ15PXmSc7XG5jb25zdCBJTlRFUk5FVF9TSE9QUElOR19UWVBFX05BTUUgPSAn15DXmdeg15jXqNeg15gv15fXlVwi15wnO1xuY29uc3QgSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSA9ICfXqtep15zXldee15nXnSc7XG5jb25zdCBNT05USExZX0NIQVJHRV9UWVBFX05BTUUgPSAn15fXmdeV15Eg15fXldeT16nXmSc7XG5jb25zdCBPTkVfTU9OVEhfUE9TVFBPTkVEX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXl9eV15PXqSc7XG5jb25zdCBNT05USExZX1BPU1RQT05FRF9UWVBFX05BTUUgPSAn15PXl9eV15kg15zXl9eZ15XXkSDXlNeX15XXk9ep15knO1xuY29uc3QgTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRSA9ICfXqtep15zXldedINeX15XXk9ep15knO1xuY29uc3QgRlVUVVJFX1BVUkNIQVNFX0ZJTkFOQ0lORyA9ICfXnteZ157XldefINec16jXm9eZ16nXlCDXoteq15nXk9eZ16onO1xuY29uc3QgTU9OVEhMWV9QT1NUUE9ORURfSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXl9eV15PXqSDXqtep15zXldee15nXnSc7XG5jb25zdCBUSElSVFlfREFZU19QTFVTX1RZUEVfTkFNRSA9ICfXoteh16fXqiAzMCDXpNec15XXoSc7XG5jb25zdCBUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUgPSAn15PXl9eV15kg15fXldeT16nXmdeZ150nO1xuY29uc3QgVFdPX01PTlRIU19QT1NUUE9ORURfVFlQRV9OQU1FMiA9ICfXk9eX15XXmSAyINeXXFwnINeq16nXnNeV157XmdedJztcbmNvbnN0IE1PTlRITFlfQ0hBUkdFX1BMVVNfSU5URVJFU1RfVFlQRV9OQU1FID0gJ9eX15XXk9ep15kgKyDXqNeZ15HXmdeqJztcbmNvbnN0IENSRURJVF9UWVBFX05BTUUgPSAn16fXqNeT15nXmCc7XG5jb25zdCBDUkVESVRfT1VUU0lERV9USEVfTElNSVQgPSAn16fXqNeT15nXmC3XnteX15XXpSDXnNee16HXkteo16onO1xuY29uc3QgQUNDVU1VTEFUSU5HX0JBU0tFVCA9ICfXodecINee16bXmNeR16gnO1xuY29uc3QgUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUyA9ICfXpNeo15nXodeqINeU16LXoden15Qg15TXk9eX15XXmdeUJztcbmNvbnN0IFJFUExBQ0VNRU5UX0NBUkQgPSAn15vXqNeY15nXoSDXl9ec15nXpNeZJztcbmNvbnN0IEVBUkxZX1JFUEFZTUVOVCA9ICfXpNeo16LXldefINee15XXp9eT150nO1xuY29uc3QgTU9OVEhMWV9DQVJEX0ZFRSA9ICfXk9ee15kg15vXqNeY15nXoSc7XG5cbmNvbnN0IElOVkFMSURfREVUQUlMU19TRUxFQ1RPUiA9ICcjcG9wdXBXcm9uZ0RldGFpbHMnO1xuY29uc3QgTE9HSU5fRVJST1JfU0VMRUNUT1IgPSAnI3BvcHVwQ2FyZEhvbGRlcnNMb2dpbkVycm9yJztcblxuY29uc3QgY2F0ZWdvcmllcyA9IG5ldyBNYXA8bnVtYmVyLCBzdHJpbmc+KCk7XG5cbmZ1bmN0aW9uIHJlZGlyZWN0T3JEaWFsb2cocGFnZTogUGFnZSkge1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0Rm9yUmVkaXJlY3QocGFnZSwgMjAwMDAsIGZhbHNlLCBbQkFTRV9XRUxDT01FX1VSTCwgYCR7QkFTRV9XRUxDT01FX1VSTH0vYF0pLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBMT0dJTl9FUlJPUl9TRUxFQ1RPUiwgdHJ1ZSksXG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbnNVcmwobW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCBtb250aCA9IG1vbnRoTW9tZW50Lm1vbnRoKCkgKyAxO1xuICBjb25zdCB5ZWFyID0gbW9udGhNb21lbnQueWVhcigpO1xuICBjb25zdCBkYXRlID0gYCR7eWVhcn0tJHttb250aH0tMDFgO1xuXG4gIC8qKlxuICAgICAqIHVybCBleHBsYW5hdGlvbjpcbiAgICAgKiB1c2VySW5kZXg6IC0xIGZvciBhbGwgYWNjb3VudCBvd25lcnNcbiAgICAgKiBjYXJkSW5kZXg6IC0xIGZvciBhbGwgY2FyZHMgdW5kZXIgdGhlIGFjY291bnRcbiAgICAgKiBhbGwgb3RoZXIgcXVlcnkgcGFyYW1zIGFyZSBzdGF0aWMsIGJlc2lkZSB0aGUgZGF0ZSB3aGljaCBjaGFuZ2VzIGZvciByZXF1ZXN0IHBlciBtb250aFxuICAgICAqL1xuICByZXR1cm4gYnVpbGRVcmwoQkFTRV9BUElfQUNUSU9OU19VUkwsIHtcbiAgICBwYXRoOiBgL2FwaS9yZWdpc3RlcmVkL3RyYW5zYWN0aW9uRGV0YWlscy9nZXRUcmFuc2FjdGlvbnNBbmRHcmFwaHM/ZmlsdGVyRGF0YT17XCJ1c2VySW5kZXhcIjotMSxcImNhcmRJbmRleFwiOi0xLFwibW9udGhWaWV3XCI6dHJ1ZSxcImRhdGVcIjpcIiR7ZGF0ZX1cIixcImRhdGVzXCI6e1wic3RhcnREYXRlXCI6XCIwXCIsXCJlbmREYXRlXCI6XCIwXCJ9LFwiYmFua0FjY291bnRcIjp7XCJiYW5rQWNjb3VudEluZGV4XCI6LTEsXCJjYXJkc1wiOm51bGx9fSZmaXJzdENhbGxDYXJkSW5kZXg9LTFgLFxuICB9KTtcbn1cblxuaW50ZXJmYWNlIEZldGNoQ2F0ZWdvcnlSZXN1bHQge1xuICByZXN1bHQ/IDogQXJyYXk8e1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9Pjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZENhdGVnb3JpZXMocGFnZTogUGFnZSkge1xuICBkZWJ1ZygnTG9hZGluZyBjYXRlZ29yaWVzJyk7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxGZXRjaENhdGVnb3J5UmVzdWx0PihwYWdlLCBgJHtCQVNFX0FQSV9BQ1RJT05TX1VSTH0vYXBpL2NvbnRlbnRzL2dldENhdGVnb3JpZXNgKTtcbiAgaWYgKHJlcyAmJiBBcnJheS5pc0FycmF5KHJlcy5yZXN1bHQpKSB7XG4gICAgZGVidWcoYCR7cmVzLnJlc3VsdC5sZW5ndGh9IGNhdGVnb3JpZXMgbG9hZGVkYCk7XG4gICAgICByZXMucmVzdWx0Py5mb3JFYWNoKCh7IGlkLCBuYW1lIH0pID0+IGNhdGVnb3JpZXMuc2V0KGlkLCBuYW1lKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25UeXBlKHR4blR5cGVTdHI6IHN0cmluZykge1xuICBjb25zdCBjbGVhbmVkVXBUeG5UeXBlU3RyID0gdHhuVHlwZVN0ci5yZXBsYWNlKCdcXHQnLCAnICcpLnRyaW0oKTtcbiAgc3dpdGNoIChjbGVhbmVkVXBUeG5UeXBlU3RyKSB7XG4gICAgY2FzZSBBVE1fVFlQRV9OQU1FOlxuICAgIGNhc2UgTk9STUFMX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRTpcbiAgICBjYXNlIE9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FOlxuICAgIGNhc2UgRlVUVVJFX1BVUkNIQVNFX0ZJTkFOQ0lORzpcbiAgICBjYXNlIE1PTlRITFlfUEFZTUVOVF9UWVBFX05BTUU6XG4gICAgY2FzZSBNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FOlxuICAgIGNhc2UgVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUU6XG4gICAgY2FzZSBUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUU6XG4gICAgY2FzZSBUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUyOlxuICAgIGNhc2UgQUNDVU1VTEFUSU5HX0JBU0tFVDpcbiAgICBjYXNlIElOVEVSTkVUX1NIT1BQSU5HX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfQ0hBUkdFX1BMVVNfSU5URVJFU1RfVFlQRV9OQU1FOlxuICAgIGNhc2UgUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUzpcbiAgICBjYXNlIFJFUExBQ0VNRU5UX0NBUkQ6XG4gICAgY2FzZSBFQVJMWV9SRVBBWU1FTlQ6XG4gICAgY2FzZSBNT05USExZX0NBUkRfRkVFOlxuICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsO1xuICAgIGNhc2UgSU5TVEFMTE1FTlRTX1RZUEVfTkFNRTpcbiAgICBjYXNlIENSRURJVF9UWVBFX05BTUU6XG4gICAgY2FzZSBDUkVESVRfT1VUU0lERV9USEVfTElNSVQ6XG4gICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlcy5JbnN0YWxsbWVudHM7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0cmFuc2FjdGlvbiB0eXBlICR7Y2xlYW5lZFVwVHhuVHlwZVN0cn1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRJbnN0YWxsbWVudHNJbmZvKGNvbW1lbnRzOiBzdHJpbmcpIHtcbiAgaWYgKCFjb21tZW50cykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgbWF0Y2hlcyA9IGNvbW1lbnRzLm1hdGNoKC9cXGQrL2cpO1xuICBpZiAoIW1hdGNoZXMgfHwgbWF0Y2hlcy5sZW5ndGggPCAyKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbnVtYmVyOiBwYXJzZUludChtYXRjaGVzWzBdLCAxMCksXG4gICAgdG90YWw6IHBhcnNlSW50KG1hdGNoZXNbMV0sIDEwKSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG1hcFRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBTY3JhcGVkVHJhbnNhY3Rpb24pOiBUcmFuc2FjdGlvbiB7XG4gIGNvbnN0IGlzUGVuZGluZyA9IHJhd1RyYW5zYWN0aW9uLnBheW1lbnREYXRlID09PSBudWxsO1xuICBjb25zdCBwcm9jZXNzZWREYXRlID0gbW9tZW50KGlzUGVuZGluZyA/XG4gICAgcmF3VHJhbnNhY3Rpb24ucHVyY2hhc2VEYXRlIDpcbiAgICByYXdUcmFuc2FjdGlvbi5wYXltZW50RGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgY29uc3Qgc3RhdHVzID0gaXNQZW5kaW5nID8gVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nIDogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQ7XG5cbiAgY29uc3QgaW5zdGFsbG1lbnRzID0gZ2V0SW5zdGFsbG1lbnRzSW5mbyhyYXdUcmFuc2FjdGlvbi5jb21tZW50cyk7XG4gIGNvbnN0IGlkZW50aWZpZXIgPSBpbnN0YWxsbWVudHMgP1xuICAgIGAke3Jhd1RyYW5zYWN0aW9uLmRlYWxEYXRhPy5hcm59XyR7aW5zdGFsbG1lbnRzLm51bWJlcn1gIDpcbiAgICByYXdUcmFuc2FjdGlvbi5kZWFsRGF0YT8uYXJuO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogZ2V0VHJhbnNhY3Rpb25UeXBlKHJhd1RyYW5zYWN0aW9uLnBsYW5OYW1lKSxcbiAgICBkYXRlOiBtb21lbnQocmF3VHJhbnNhY3Rpb24ucHVyY2hhc2VEYXRlKS50b0lTT1N0cmluZygpLFxuICAgIHByb2Nlc3NlZERhdGUsXG4gICAgb3JpZ2luYWxBbW91bnQ6IC1yYXdUcmFuc2FjdGlvbi5vcmlnaW5hbEFtb3VudCxcbiAgICBvcmlnaW5hbEN1cnJlbmN5OiByYXdUcmFuc2FjdGlvbi5vcmlnaW5hbEN1cnJlbmN5LFxuICAgIGNoYXJnZWRBbW91bnQ6IC1yYXdUcmFuc2FjdGlvbi5hY3R1YWxQYXltZW50QW1vdW50LFxuICAgIGRlc2NyaXB0aW9uOiByYXdUcmFuc2FjdGlvbi5tZXJjaGFudE5hbWUudHJpbSgpLFxuICAgIG1lbW86IHJhd1RyYW5zYWN0aW9uLmNvbW1lbnRzLFxuICAgIGNhdGVnb3J5OiBjYXRlZ29yaWVzLmdldChyYXdUcmFuc2FjdGlvbj8uY2F0ZWdvcnlJZCksXG4gICAgaW5zdGFsbG1lbnRzLFxuICAgIGlkZW50aWZpZXIsXG4gICAgc3RhdHVzLFxuICB9O1xufVxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHR7XG4gIHJlc3VsdD86IHtcbiAgICB0cmFuc2FjdGlvbnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0Zvck1vbnRoKHBhZ2U6IFBhZ2UsIG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgdXJsID0gZ2V0VHJhbnNhY3Rpb25zVXJsKG1vbnRoTW9tZW50KTtcblxuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHQ+KHBhZ2UsIHVybCk7XG4gIGNvbnN0IHRyYW5zYWN0aW9uc0J5QWNjb3VudDogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7fTtcblxuICBpZiAoIWRhdGEgfHwgIWRhdGEucmVzdWx0KSByZXR1cm4gdHJhbnNhY3Rpb25zQnlBY2NvdW50O1xuXG4gIGRhdGEucmVzdWx0LnRyYW5zYWN0aW9uc1xuICAgIC8vIEZpbHRlciBvdXQgbm9uLXRyYW5zYWN0aW9ucyB3aXRob3V0IGEgcGxhbiB0eXBlLCBlLmcuIHN1bW1hcnkgcm93c1xuICAgIC5maWx0ZXIoKHRyYW5zYWN0aW9uKSA9PiAhIXRyYW5zYWN0aW9uLnBsYW5OYW1lKVxuICAgIC5mb3JFYWNoKCh0cmFuc2FjdGlvbjogU2NyYXBlZFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICBpZiAoIXRyYW5zYWN0aW9uc0J5QWNjb3VudFt0cmFuc2FjdGlvbi5zaG9ydENhcmROdW1iZXJdKSB7XG4gICAgICAgIHRyYW5zYWN0aW9uc0J5QWNjb3VudFt0cmFuc2FjdGlvbi5zaG9ydENhcmROdW1iZXJdID0gW107XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1hcHBlZFRyYW5zYWN0aW9uID0gbWFwVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xuICAgICAgdHJhbnNhY3Rpb25zQnlBY2NvdW50W3RyYW5zYWN0aW9uLnNob3J0Q2FyZE51bWJlcl0ucHVzaChtYXBwZWRUcmFuc2FjdGlvbik7XG4gICAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zYWN0aW9uc0J5QWNjb3VudDtcbn1cblxuZnVuY3Rpb24gYWRkUmVzdWx0KGFsbFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+LCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+KSB7XG4gIGNvbnN0IGNsb25lZFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0geyAuLi5hbGxSZXN1bHRzIH07XG4gIE9iamVjdC5rZXlzKHJlc3VsdCkuZm9yRWFjaCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIGlmICghY2xvbmVkUmVzdWx0c1thY2NvdW50TnVtYmVyXSkge1xuICAgICAgY2xvbmVkUmVzdWx0c1thY2NvdW50TnVtYmVyXSA9IFtdO1xuICAgIH1cbiAgICBjbG9uZWRSZXN1bHRzW2FjY291bnROdW1iZXJdLnB1c2goLi4ucmVzdWx0W2FjY291bnROdW1iZXJdKTtcbiAgfSk7XG4gIHJldHVybiBjbG9uZWRSZXN1bHRzO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlVHJhbnNhY3Rpb25zKHR4bnM6IFRyYW5zYWN0aW9uW10sIHN0YXJ0TW9tZW50OiBtb21lbnQuTW9tZW50LCBjb21iaW5lSW5zdGFsbG1lbnRzOiBib29sZWFuLCBlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGU6IGJvb2xlYW4pIHtcbiAgbGV0IGNsb25lZFR4bnMgPSBBcnJheS5mcm9tKHR4bnMpO1xuICBpZiAoIWNvbWJpbmVJbnN0YWxsbWVudHMpIHtcbiAgICBjbG9uZWRUeG5zID0gZml4SW5zdGFsbG1lbnRzKGNsb25lZFR4bnMpO1xuICB9XG4gIGNsb25lZFR4bnMgPSBzb3J0VHJhbnNhY3Rpb25zQnlEYXRlKGNsb25lZFR4bnMpO1xuICBjbG9uZWRUeG5zID0gZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlID9cbiAgICBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMoY2xvbmVkVHhucywgc3RhcnRNb21lbnQsIGNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpIDpcbiAgICBjbG9uZWRUeG5zO1xuICByZXR1cm4gY2xvbmVkVHhucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgb3B0aW9uczogU2NyYXBlck9wdGlvbnMpIHtcbiAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSBvcHRpb25zLmZ1dHVyZU1vbnRoc1RvU2NyYXBlID8/IDE7XG4gIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpO1xuICBjb25zdCBzdGFydERhdGUgPSBvcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcbiAgY29uc3QgYWxsTW9udGhzID0gZ2V0QWxsTW9udGhNb21lbnRzKHN0YXJ0TW9tZW50LCBmdXR1cmVNb250aHNUb1NjcmFwZSk7XG5cbiAgYXdhaXQgbG9hZENhdGVnb3JpZXMocGFnZSk7XG5cbiAgbGV0IGFsbFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsTW9udGhzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnNGb3JNb250aChwYWdlLCBhbGxNb250aHNbaV0pO1xuICAgIGFsbFJlc3VsdHMgPSBhZGRSZXN1bHQoYWxsUmVzdWx0cywgcmVzdWx0KTtcbiAgfVxuXG4gIE9iamVjdC5rZXlzKGFsbFJlc3VsdHMpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICBsZXQgdHhucyA9IGFsbFJlc3VsdHNbYWNjb3VudE51bWJlcl07XG4gICAgdHhucyA9IHByZXBhcmVUcmFuc2FjdGlvbnModHhucywgc3RhcnRNb21lbnQsIG9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSxcbiAgICAgIChvcHRpb25zLm91dHB1dERhdGE/LmVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSA/PyB0cnVlKSk7XG4gICAgYWxsUmVzdWx0c1thY2NvdW50TnVtYmVyXSA9IHR4bnM7XG4gIH0pO1xuXG4gIHJldHVybiBhbGxSZXN1bHRzO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyhwYWdlOiBQYWdlKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICBjb25zdCB1cmxzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHt9O1xuICB1cmxzW0xvZ2luUmVzdWx0cy5TdWNjZXNzXSA9IFtTVUNDRVNTX1VSTF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXSA9IFtQQVNTV09SRF9FWFBJUkVEX1VSTF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF0gPSBbYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IpO1xuICB9XTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yXSA9IFthc3luYyAoKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIExPR0lOX0VSUk9SX1NFTEVDVE9SKTtcbiAgfV07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnI3VzZXItbmFtZScsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6ICcjcGFzc3dvcmQnLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxudHlwZSBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyA9IHt1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nfTtcblxuY2xhc3MgTWF4U2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXI8U2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHM+IHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogTE9HSU5fVVJMLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJyNsb2dpbi1wYXNzd29yZCAjc2VuZC1jb2RlJyxcbiAgICAgIHByZUFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UodGhpcy5wYWdlLCAnI2Nsb3NlUG9wdXAnKSkge1xuICAgICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNjbG9zZVBvcHVwJyk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnLnBlcnNvbmFsLWFyZWEgPiBhLmdvLXRvLXBlcnNvbmFsLWFyZWEnKTtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNsb2dpbi1wYXNzd29yZC1saW5rJywgdHJ1ZSk7XG4gICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNsb2dpbi1wYXNzd29yZC1saW5rJyk7XG4gICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjbG9naW4tcGFzc3dvcmQudGFiLXBhbmUuYWN0aXZlIGFwcC11c2VyLWxvZ2luLWZvcm0nLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnLnBlcnNvbmFsLWFyZWEgPiBhLmdvLXRvLXBlcnNvbmFsLWFyZWEnLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiByZWRpcmVjdE9yRGlhbG9nKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHRoaXMucGFnZSksXG4gICAgICB3YWl0VW50aWw6ICdkb21jb250ZW50bG9hZGVkJyBhcyBMb2FkRXZlbnQsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCB0aGlzLm9wdGlvbnMpO1xuICAgIGNvbnN0IGFjY291bnRzID0gT2JqZWN0LmtleXMocmVzdWx0cykubWFwKChhY2NvdW50TnVtYmVyKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgICB0eG5zOiByZXN1bHRzW2FjY291bnROdW1iZXJdLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYXhTY3JhcGVyO1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "israeli-bank-scrapers",
3
- "version": "4.0.2",
3
+ "version": "4.1.0",
4
4
  "private": false,
5
5
  "description": "Provide scrapers for all major Israeli banks and credit card companies",
6
6
  "engines": {