israeli-bank-scrapers 3.6.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -0
- package/lib/definitions.d.ts +6 -1
- package/lib/definitions.js +6 -1
- package/lib/helpers/fetch.d.ts +2 -1
- package/lib/helpers/fetch.js +26 -9
- package/lib/helpers/storage.d.ts +2 -0
- package/lib/helpers/storage.js +17 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +47 -3
- package/lib/scrapers/amex.d.ts +1 -1
- package/lib/scrapers/amex.js +1 -1
- package/lib/scrapers/amex.test.js +3 -2
- package/lib/scrapers/base-beinleumi-group.d.ts +7 -4
- package/lib/scrapers/base-beinleumi-group.js +1 -1
- package/lib/scrapers/base-isracard-amex.d.ts +8 -3
- package/lib/scrapers/base-isracard-amex.js +13 -11
- package/lib/scrapers/base-scraper-with-browser.d.ts +6 -3
- package/lib/scrapers/base-scraper-with-browser.js +14 -11
- package/lib/scrapers/base-scraper.d.ts +9 -119
- package/lib/scrapers/base-scraper.js +34 -50
- package/lib/scrapers/beyahad-bishvilha.d.ts +6 -3
- package/lib/scrapers/beyahad-bishvilha.js +1 -1
- package/lib/scrapers/discount.d.ts +9 -4
- package/lib/scrapers/discount.js +4 -4
- package/lib/scrapers/discount.test.js +4 -3
- package/lib/scrapers/errors.d.ts +16 -0
- package/lib/scrapers/errors.js +37 -0
- package/lib/scrapers/factory.d.ts +2 -16
- package/lib/scrapers/factory.js +6 -1
- package/lib/scrapers/hapoalim.d.ts +6 -3
- package/lib/scrapers/hapoalim.js +1 -1
- package/lib/scrapers/hapoalim.test.js +2 -2
- package/lib/scrapers/interface.d.ts +146 -0
- package/lib/scrapers/interface.js +2 -0
- package/lib/scrapers/isracard.d.ts +1 -1
- package/lib/scrapers/isracard.js +1 -1
- package/lib/scrapers/isracard.test.js +4 -3
- package/lib/scrapers/leumi.d.ts +8 -4
- package/lib/scrapers/leumi.js +1 -1
- package/lib/scrapers/max.d.ts +6 -3
- package/lib/scrapers/max.js +1 -1
- package/lib/scrapers/mizrahi.d.ts +7 -3
- package/lib/scrapers/mizrahi.js +4 -4
- package/lib/scrapers/one-zero-queries.d.ts +2 -0
- package/lib/scrapers/one-zero-queries.js +562 -0
- package/lib/scrapers/one-zero.d.ts +36 -0
- package/lib/scrapers/one-zero.js +304 -0
- package/lib/scrapers/one-zero.test.d.ts +1 -0
- package/lib/scrapers/one-zero.test.js +67 -0
- package/lib/scrapers/otsar-hahayal.d.ts +6 -3
- package/lib/scrapers/otsar-hahayal.js +1 -1
- package/lib/scrapers/union-bank.d.ts +6 -3
- package/lib/scrapers/union-bank.js +1 -1
- package/lib/scrapers/visa-cal.d.ts +103 -15
- package/lib/scrapers/visa-cal.js +154 -343
- package/lib/scrapers/yahav.d.ts +7 -3
- package/lib/scrapers/yahav.js +1 -1
- package/package.json +1 -1
package/lib/scrapers/max.js
CHANGED
|
@@ -314,4 +314,4 @@ class MaxScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
314
314
|
|
|
315
315
|
var _default = MaxScraper;
|
|
316
316
|
exports.default = _default;
|
|
317
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9tYXgudHMiXSwibmFtZXMiOlsiZGVidWciLCJCQVNFX0FDVElPTlNfVVJMIiwiQkFTRV9BUElfQUNUSU9OU19VUkwiLCJCQVNFX1dFTENPTUVfVVJMIiwiTE9HSU5fVVJMIiwiUEFTU1dPUkRfRVhQSVJFRF9VUkwiLCJTVUNDRVNTX1VSTCIsIk5PUk1BTF9UWVBFX05BTUUiLCJBVE1fVFlQRV9OQU1FIiwiSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FIiwiSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSIsIk1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSIsIk9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRSIsIkZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkciLCJNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FIiwiVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUUiLCJUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUiLCJNT05USExZX0NIQVJHRV9QTFVTX0lOVEVSRVNUX1RZUEVfTkFNRSIsIkNSRURJVF9UWVBFX05BTUUiLCJBQ0NVTVVMQVRJTkdfQkFTS0VUIiwiUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUyIsIlJFUExBQ0VNRU5UX0NBUkQiLCJFQVJMWV9SRVBBWU1FTlQiLCJNT05USExZX0NBUkRfRkVFIiwiSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SIiwiTE9HSU5fRVJST1JfU0VMRUNUT1IiLCJjYXRlZ29yaWVzIiwiTWFwIiwicmVkaXJlY3RPckRpYWxvZyIsInBhZ2UiLCJQcm9taXNlIiwicmFjZSIsImdldFRyYW5zYWN0aW9uc1VybCIsIm1vbnRoTW9tZW50IiwibW9udGgiLCJ5ZWFyIiwiZGF0ZSIsInBhdGgiLCJsb2FkQ2F0ZWdvcmllcyIsInJlcyIsIkFycmF5IiwiaXNBcnJheSIsInJlc3VsdCIsImxlbmd0aCIsImZvckVhY2giLCJpZCIsIm5hbWUiLCJzZXQiLCJnZXRUcmFuc2FjdGlvblR5cGUiLCJ0eG5UeXBlU3RyIiwiY2xlYW5lZFVwVHhuVHlwZVN0ciIsInJlcGxhY2UiLCJ0cmltIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsIkluc3RhbGxtZW50cyIsIkVycm9yIiwiZ2V0SW5zdGFsbG1lbnRzSW5mbyIsImNvbW1lbnRzIiwidW5kZWZpbmVkIiwibWF0Y2hlcyIsIm1hdGNoIiwibnVtYmVyIiwicGFyc2VJbnQiLCJ0b3RhbCIsIm1hcFRyYW5zYWN0aW9uIiwicmF3VHJhbnNhY3Rpb24iLCJpc1BlbmRpbmciLCJwYXltZW50RGF0ZSIsInByb2Nlc3NlZERhdGUiLCJwdXJjaGFzZURhdGUiLCJ0b0lTT1N0cmluZyIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJQZW5kaW5nIiwiQ29tcGxldGVkIiwiaW5zdGFsbG1lbnRzIiwiaWRlbnRpZmllciIsImRlYWxEYXRhIiwiYXJuIiwidHlwZSIsInBsYW5OYW1lIiwib3JpZ2luYWxBbW91bnQiLCJvcmlnaW5hbEN1cnJlbmN5IiwiY2hhcmdlZEFtb3VudCIsImFjdHVhbFBheW1lbnRBbW91bnQiLCJkZXNjcmlwdGlvbiIsIm1lcmNoYW50TmFtZSIsIm1lbW8iLCJjYXRlZ29yeSIsImdldCIsImNhdGVnb3J5SWQiLCJmZXRjaFRyYW5zYWN0aW9uc0Zvck1vbnRoIiwidXJsIiwiZGF0YSIsInRyYW5zYWN0aW9uc0J5QWNjb3VudCIsInRyYW5zYWN0aW9ucyIsImZpbHRlciIsInRyYW5zYWN0aW9uIiwic2hvcnRDYXJkTnVtYmVyIiwibWFwcGVkVHJhbnNhY3Rpb24iLCJwdXNoIiwiYWRkUmVzdWx0IiwiYWxsUmVzdWx0cyIsImNsb25lZFJlc3VsdHMiLCJPYmplY3QiLCJrZXlzIiwiYWNjb3VudE51bWJlciIsInByZXBhcmVUcmFuc2FjdGlvbnMiLCJ0eG5zIiwic3RhcnRNb21lbnQiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlIiwiY2xvbmVkVHhucyIsImZyb20iLCJmZXRjaFRyYW5zYWN0aW9ucyIsIm9wdGlvbnMiLCJmdXR1cmVNb250aHNUb1NjcmFwZSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwibW9tZW50IiwibWF4IiwiYWxsTW9udGhzIiwiaSIsIm91dHB1dERhdGEiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiQ2hhbmdlUGFzc3dvcmQiLCJJbnZhbGlkUGFzc3dvcmQiLCJVbmtub3duRXJyb3IiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJNYXhTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwcmVBY3Rpb24iLCJjaGVja1JlYWRpbmVzcyIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJyZXN1bHRzIiwiYWNjb3VudHMiLCJtYXAiLCJzdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7OztBQUVBLE1BQU1BLEtBQUssR0FBRyxxQkFBUyxLQUFULENBQWQ7QUFrQkEsTUFBTUMsZ0JBQWdCLEdBQUcsMEJBQXpCO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUcsK0JBQTdCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsdUJBQXpCO0FBRUEsTUFBTUMsU0FBUyxHQUFJLEdBQUVELGdCQUFpQixtQkFBdEM7QUFDQSxNQUFNRSxvQkFBb0IsR0FB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Q0Q7O0FBQ0QsY0FBTSx1Q0FBWSxLQUFLQSxJQUFqQixFQUF1Qix3Q0FBdkIsQ0FBTjtBQUNBLGNBQU0saURBQXNCLEtBQUtBLElBQTNCLEVBQWlDLHNCQUFqQyxFQUF5RCxJQUF6RCxDQUFOO0FBQ0EsY0FBTSx1Q0FBWSxLQUFLQSxJQUFqQixFQUF1QixzQkFBdkIsQ0FBTjtBQUNBLGNBQU0saURBQXNCLEtBQUtBLElBQTNCLEVBQWlDLHFEQUFqQyxFQUF3RixJQUF4RixDQUFOO0FBQ0QsT0FaSTtBQWFMc0gsTUFBQUEsY0FBYyxFQUFFLFlBQVk7QUFDMUIsY0FBTSxpREFBc0IsS0FBS3RILElBQTNCLEVBQWlDLHdDQUFqQyxFQUEyRSxJQUEzRSxDQUFOO0FBQ0QsT0FmSTtBQWdCTHVILE1BQUFBLFVBQVUsRUFBRSxZQUFZeEgsZ0JBQWdCLENBQUMsS0FBS0MsSUFBTixDQWhCbkM7QUFpQkx3SCxNQUFBQSxlQUFlLEVBQUV0Qix1QkFBdUIsQ0FBQyxLQUFLbEcsSUFBTjtBQWpCbkMsS0FBUDtBQW1CRDs7QUFFRCxRQUFNeUgsU0FBTixHQUFrQjtBQUNoQixVQUFNQyxPQUFPLEdBQUcsTUFBTXBDLGlCQUFpQixDQUFDLEtBQUt0RixJQUFOLEVBQVksS0FBS3VGLE9BQWpCLENBQXZDO0FBQ0EsVUFBTW9DLFFBQVEsR0FBRy9DLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZNkMsT0FBWixFQUFxQkUsR0FBckIsQ0FBMEI5QyxhQUFELElBQW1CO0FBQzNELGFBQU87QUFDTEEsUUFBQUEsYUFESztBQUVMRSxRQUFBQSxJQUFJLEVBQUUwQyxPQUFPLENBQUM1QyxhQUFEO0FBRlIsT0FBUDtBQUlELEtBTGdCLENBQWpCO0FBT0EsV0FBTztBQUNMK0MsTUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTEYsTUFBQUE7QUFGSyxLQUFQO0FBSUQ7O0FBcEM2Qzs7ZUF1Q2pDWixVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkVXJsIGZyb20gJ2J1aWxkLXVybCc7XG5pbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyB3YWl0Rm9yUmVkaXJlY3QgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgd2FpdFVudGlsRWxlbWVudEZvdW5kLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgY2xpY2tCdXR0b24gfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgZ2V0QWxsTW9udGhNb21lbnRzIGZyb20gJy4uL2hlbHBlcnMvZGF0ZXMnO1xuaW1wb3J0IHsgZml4SW5zdGFsbG1lbnRzLCBzb3J0VHJhbnNhY3Rpb25zQnlEYXRlLCBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBTY3JhcGVyT3B0aW9ucywgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnbWF4Jyk7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBzaG9ydENhcmROdW1iZXI6IHN0cmluZztcbiAgcGF5bWVudERhdGU/OiBzdHJpbmc7XG4gIHB1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICBhY3R1YWxQYXltZW50QW1vdW50OiBzdHJpbmc7XG4gIG9yaWdpbmFsQ3VycmVuY3k6IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IG51bWJlcjtcbiAgcGxhbk5hbWU6IHN0cmluZztcbiAgY29tbWVudHM6IHN0cmluZztcbiAgbWVyY2hhbnROYW1lOiBzdHJpbmc7XG4gIGNhdGVnb3J5SWQ6IG51bWJlcjtcbiAgZGVhbERhdGE/OiB7XG4gICAgYXJuOiBzdHJpbmc7XG4gIH07XG59XG5cbmNvbnN0IEJBU0VfQUNUSU9OU19VUkwgPSAnaHR0cHM6Ly9vbmxpbmUubWF4LmNvLmlsJztcbmNvbnN0IEJBU0VfQVBJX0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vb25saW5lbGNhcGkubWF4LmNvLmlsJztcbmNvbnN0IEJBU0VfV0VMQ09NRV9VUkwgPSAnaHR0cHM6Ly93d3cubWF4LmNvLmlsJztcblxuY29uc3QgTE9HSU5fVVJMID0gYCR7QkFTRV9XRUxDT01FX1VSTH0vaG9tZXBhZ2Uvd2VsY29tZWA7XG5jb25zdCBQQVNTV09SRF9FWFBJUkVEX1VSTCA9IGAke0JBU0VfQUNUSU9OU19VUkx9L0Fub255bW91cy9Mb2dpbi9QYXNzd29yZEV4cGlyZWQuYXNweGA7XG5jb25zdCBTVUNDRVNTX1VSTCA9IGAke0JBU0VfV0VMQ09NRV9VUkx9L2hvbWVwYWdlL3BlcnNvbmFsYDtcblxuY29uc3QgTk9STUFMX1RZUEVfTkFNRSA9ICfXqNeS15nXnNeUJztcbmNvbnN0IEFUTV9UWVBFX05BTUUgPSAn15fXmdeV15Eg16LXoden15XXqiDXnteZ15nXk9eZJztcbmNvbnN0IElOVEVSTkVUX1NIT1BQSU5HX1RZUEVfTkFNRSA9ICfXkNeZ16DXmNeo16DXmC/Xl9eVXCLXnCc7XG5jb25zdCBJTlNUQUxMTUVOVFNfVFlQRV9OQU1FID0gJ9eq16nXnNeV157XmdedJztcbmNvbnN0IE1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSA9ICfXl9eZ15XXkSDXl9eV15PXqdeZJztcbmNvbnN0IE9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FID0gJ9eT15fXldeZINeX15XXk9epJztcbmNvbnN0IE1PTlRITFlfUE9TVFBPTkVEX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXnNeX15nXldeRINeU15fXldeT16nXmSc7XG5jb25zdCBNT05USExZX1BBWU1FTlRfVFlQRV9OQU1FID0gJ9eq16nXnNeV150g15fXldeT16nXmSc7XG5jb25zdCBGVVRVUkVfUFVSQ0hBU0VfRklOQU5DSU5HID0gJ9ee15nXnteV158g15zXqNeb15nXqdeUINei16rXmdeT15nXqic7XG5jb25zdCBNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FID0gJ9eT15fXldeZINeX15XXk9epINeq16nXnNeV157XmdedJztcbmNvbnN0IFRISVJUWV9EQVlTX1BMVVNfVFlQRV9OQU1FID0gJ9ei16HXp9eqIDMwINek15zXldehJztcbmNvbnN0IFRXT19NT05USFNfUE9TVFBPTkVEX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXl9eV15PXqdeZ15nXnSc7XG5jb25zdCBNT05USExZX0NIQVJHRV9QTFVTX0lOVEVSRVNUX1RZUEVfTkFNRSA9ICfXl9eV15PXqdeZICsg16jXmdeR15nXqic7XG5jb25zdCBDUkVESVRfVFlQRV9OQU1FID0gJ9en16jXk9eZ15gnO1xuY29uc3QgQUNDVU1VTEFUSU5HX0JBU0tFVCA9ICfXodecINee16bXmNeR16gnO1xuY29uc3QgUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUyA9ICfXpNeo15nXodeqINeU16LXoden15Qg15TXk9eX15XXmdeUJztcbmNvbnN0IFJFUExBQ0VNRU5UX0NBUkQgPSAn15vXqNeY15nXoSDXl9ec15nXpNeZJztcbmNvbnN0IEVBUkxZX1JFUEFZTUVOVCA9ICfXpNeo16LXldefINee15XXp9eT150nO1xuY29uc3QgTU9OVEhMWV9DQVJEX0ZFRSA9ICfXk9ee15kg15vXqNeY15nXoSc7XG5cbmNvbnN0IElOVkFMSURfREVUQUlMU19TRUxFQ1RPUiA9ICcjcG9wdXBXcm9uZ0RldGFpbHMnO1xuY29uc3QgTE9HSU5fRVJST1JfU0VMRUNUT1IgPSAnI3BvcHVwQ2FyZEhvbGRlcnNMb2dpbkVycm9yJztcblxuY29uc3QgY2F0ZWdvcmllcyA9IG5ldyBNYXA8bnVtYmVyLCBzdHJpbmc+KCk7XG5cbmZ1bmN0aW9uIHJlZGlyZWN0T3JEaWFsb2cocGFnZTogUGFnZSkge1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0Rm9yUmVkaXJlY3QocGFnZSwgMjAwMDAsIGZhbHNlLCBbQkFTRV9XRUxDT01FX1VSTCwgYCR7QkFTRV9XRUxDT01FX1VSTH0vYF0pLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBMT0dJTl9FUlJPUl9TRUxFQ1RPUiwgdHJ1ZSksXG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbnNVcmwobW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCBtb250aCA9IG1vbnRoTW9tZW50Lm1vbnRoKCkgKyAxO1xuICBjb25zdCB5ZWFyID0gbW9udGhNb21lbnQueWVhcigpO1xuICBjb25zdCBkYXRlID0gYCR7eWVhcn0tJHttb250aH0tMDFgO1xuXG4gIC8qKlxuICAgICAqIHVybCBleHBsYW5hdGlvbjpcbiAgICAgKiB1c2VySW5kZXg6IC0xIGZvciBhbGwgYWNjb3VudCBvd25lcnNcbiAgICAgKiBjYXJkSW5kZXg6IC0xIGZvciBhbGwgY2FyZHMgdW5kZXIgdGhlIGFjY291bnRcbiAgICAgKiBhbGwgb3RoZXIgcXVlcnkgcGFyYW1zIGFyZSBzdGF0aWMsIGJlc2lkZSB0aGUgZGF0ZSB3aGljaCBjaGFuZ2VzIGZvciByZXF1ZXN0IHBlciBtb250aFxuICAgICAqL1xuICByZXR1cm4gYnVpbGRVcmwoQkFTRV9BUElfQUNUSU9OU19VUkwsIHtcbiAgICBwYXRoOiBgL2FwaS9yZWdpc3RlcmVkL3RyYW5zYWN0aW9uRGV0YWlscy9nZXRUcmFuc2FjdGlvbnNBbmRHcmFwaHM/ZmlsdGVyRGF0YT17XCJ1c2VySW5kZXhcIjotMSxcImNhcmRJbmRleFwiOi0xLFwibW9udGhWaWV3XCI6dHJ1ZSxcImRhdGVcIjpcIiR7ZGF0ZX1cIixcImRhdGVzXCI6e1wic3RhcnREYXRlXCI6XCIwXCIsXCJlbmREYXRlXCI6XCIwXCJ9LFwiYmFua0FjY291bnRcIjp7XCJiYW5rQWNjb3VudEluZGV4XCI6LTEsXCJjYXJkc1wiOm51bGx9fSZmaXJzdENhbGxDYXJkSW5kZXg9LTFgLFxuICB9KTtcbn1cblxuaW50ZXJmYWNlIEZldGNoQ2F0ZWdvcnlSZXN1bHQge1xuICByZXN1bHQ/IDogQXJyYXk8e1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9Pjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZENhdGVnb3JpZXMocGFnZTogUGFnZSkge1xuICBkZWJ1ZygnTG9hZGluZyBjYXRlZ29yaWVzJyk7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxGZXRjaENhdGVnb3J5UmVzdWx0PihwYWdlLCBgJHtCQVNFX0FQSV9BQ1RJT05TX1VSTH0vYXBpL2NvbnRlbnRzL2dldENhdGVnb3JpZXNgKTtcbiAgaWYgKHJlcyAmJiBBcnJheS5pc0FycmF5KHJlcy5yZXN1bHQpKSB7XG4gICAgZGVidWcoYCR7cmVzLnJlc3VsdC5sZW5ndGh9IGNhdGVnb3JpZXMgbG9hZGVkYCk7XG4gICAgICByZXMucmVzdWx0Py5mb3JFYWNoKCh7IGlkLCBuYW1lIH0pID0+IGNhdGVnb3JpZXMuc2V0KGlkLCBuYW1lKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25UeXBlKHR4blR5cGVTdHI6IHN0cmluZykge1xuICBjb25zdCBjbGVhbmVkVXBUeG5UeXBlU3RyID0gdHhuVHlwZVN0ci5yZXBsYWNlKCdcXHQnLCAnICcpLnRyaW0oKTtcbiAgc3dpdGNoIChjbGVhbmVkVXBUeG5UeXBlU3RyKSB7XG4gICAgY2FzZSBBVE1fVFlQRV9OQU1FOlxuICAgIGNhc2UgTk9STUFMX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRTpcbiAgICBjYXNlIE9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FOlxuICAgIGNhc2UgRlVUVVJFX1BVUkNIQVNFX0ZJTkFOQ0lORzpcbiAgICBjYXNlIE1PTlRITFlfUEFZTUVOVF9UWVBFX05BTUU6XG4gICAgY2FzZSBNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FOlxuICAgIGNhc2UgVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUU6XG4gICAgY2FzZSBUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUU6XG4gICAgY2FzZSBBQ0NVTVVMQVRJTkdfQkFTS0VUOlxuICAgIGNhc2UgSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9DSEFSR0VfUExVU19JTlRFUkVTVF9UWVBFX05BTUU6XG4gICAgY2FzZSBQT1NUUE9ORURfVFJBTlNBQ1RJT05fSU5TVEFMTE1FTlRTOlxuICAgIGNhc2UgUkVQTEFDRU1FTlRfQ0FSRDpcbiAgICBjYXNlIEVBUkxZX1JFUEFZTUVOVDpcbiAgICBjYXNlIE1PTlRITFlfQ0FSRF9GRUU6XG4gICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWw7XG4gICAgY2FzZSBJTlNUQUxMTUVOVFNfVFlQRV9OQU1FOlxuICAgIGNhc2UgQ1JFRElUX1RZUEVfTkFNRTpcbiAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGVzLkluc3RhbGxtZW50cztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHRyYW5zYWN0aW9uIHR5cGUgJHtjbGVhbmVkVXBUeG5UeXBlU3RyfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEluc3RhbGxtZW50c0luZm8oY29tbWVudHM6IHN0cmluZykge1xuICBpZiAoIWNvbW1lbnRzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gY29tbWVudHMubWF0Y2goL1xcZCsvZyk7XG4gIGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzLmxlbmd0aCA8IDIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBudW1iZXI6IHBhcnNlSW50KG1hdGNoZXNbMF0sIDEwKSxcbiAgICB0b3RhbDogcGFyc2VJbnQobWF0Y2hlc1sxXSwgMTApLFxuICB9O1xufVxuZnVuY3Rpb24gbWFwVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IFNjcmFwZWRUcmFuc2FjdGlvbik6IFRyYW5zYWN0aW9uIHtcbiAgY29uc3QgaXNQZW5kaW5nID0gcmF3VHJhbnNhY3Rpb24ucGF5bWVudERhdGUgPT09IG51bGw7XG4gIGNvbnN0IHByb2Nlc3NlZERhdGUgPSBtb21lbnQoaXNQZW5kaW5nID9cbiAgICByYXdUcmFuc2FjdGlvbi5wdXJjaGFzZURhdGUgOlxuICAgIHJhd1RyYW5zYWN0aW9uLnBheW1lbnREYXRlKS50b0lTT1N0cmluZygpO1xuICBjb25zdCBzdGF0dXMgPSBpc1BlbmRpbmcgPyBUcmFuc2FjdGlvblN0YXR1c2VzLlBlbmRpbmcgOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZDtcblxuICBjb25zdCBpbnN0YWxsbWVudHMgPSBnZXRJbnN0YWxsbWVudHNJbmZvKHJhd1RyYW5zYWN0aW9uLmNvbW1lbnRzKTtcbiAgY29uc3QgaWRlbnRpZmllciA9IGluc3RhbGxtZW50cyA/XG4gICAgYCR7cmF3VHJhbnNhY3Rpb24uZGVhbERhdGE/LmFybn1fJHtpbnN0YWxsbWVudHMubnVtYmVyfWAgOlxuICAgIHJhd1RyYW5zYWN0aW9uLmRlYWxEYXRhPy5hcm47XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBnZXRUcmFuc2FjdGlvblR5cGUocmF3VHJhbnNhY3Rpb24ucGxhbk5hbWUpLFxuICAgIGRhdGU6IG1vbWVudChyYXdUcmFuc2FjdGlvbi5wdXJjaGFzZURhdGUpLnRvSVNPU3RyaW5nKCksXG4gICAgcHJvY2Vzc2VkRGF0ZSxcbiAgICBvcmlnaW5hbEFtb3VudDogLXJhd1RyYW5zYWN0aW9uLm9yaWdpbmFsQW1vdW50LFxuICAgIG9yaWdpbmFsQ3VycmVuY3k6IHJhd1RyYW5zYWN0aW9uLm9yaWdpbmFsQ3VycmVuY3ksXG4gICAgY2hhcmdlZEFtb3VudDogLXJhd1RyYW5zYWN0aW9uLmFjdHVhbFBheW1lbnRBbW91bnQsXG4gICAgZGVzY3JpcHRpb246IHJhd1RyYW5zYWN0aW9uLm1lcmNoYW50TmFtZS50cmltKCksXG4gICAgbWVtbzogcmF3VHJhbnNhY3Rpb24uY29tbWVudHMsXG4gICAgY2F0ZWdvcnk6IGNhdGVnb3JpZXMuZ2V0KHJhd1RyYW5zYWN0aW9uPy5jYXRlZ29yeUlkKSxcbiAgICBpbnN0YWxsbWVudHMsXG4gICAgaWRlbnRpZmllcixcbiAgICBzdGF0dXMsXG4gIH07XG59XG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdHtcbiAgcmVzdWx0Pzoge1xuICAgIHRyYW5zYWN0aW9uczogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zRm9yTW9udGgocGFnZTogUGFnZSwgbW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCB1cmwgPSBnZXRUcmFuc2FjdGlvbnNVcmwobW9udGhNb21lbnQpO1xuXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8U2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdD4ocGFnZSwgdXJsKTtcbiAgY29uc3QgdHJhbnNhY3Rpb25zQnlBY2NvdW50OiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbltdPiA9IHt9O1xuXG4gIGlmICghZGF0YSB8fCAhZGF0YS5yZXN1bHQpIHJldHVybiB0cmFuc2FjdGlvbnNCeUFjY291bnQ7XG5cbiAgZGF0YS5yZXN1bHQudHJhbnNhY3Rpb25zXG4gICAgLy8gRmlsdGVyIG91dCBub24tdHJhbnNhY3Rpb25zIHdpdGhvdXQgYSBwbGFuIHR5cGUsIGUuZy4gc3VtbWFyeSByb3dzXG4gICAgLmZpbHRlcigodHJhbnNhY3Rpb24pID0+ICEhdHJhbnNhY3Rpb24ucGxhbk5hbWUpXG4gICAgLmZvckVhY2goKHRyYW5zYWN0aW9uOiBTY3JhcGVkVHJhbnNhY3Rpb24pID0+IHtcbiAgICAgIGlmICghdHJhbnNhY3Rpb25zQnlBY2NvdW50W3RyYW5zYWN0aW9uLnNob3J0Q2FyZE51bWJlcl0pIHtcbiAgICAgICAgdHJhbnNhY3Rpb25zQnlBY2NvdW50W3RyYW5zYWN0aW9uLnNob3J0Q2FyZE51bWJlcl0gPSBbXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWFwcGVkVHJhbnNhY3Rpb24gPSBtYXBUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICB0cmFuc2FjdGlvbnNCeUFjY291bnRbdHJhbnNhY3Rpb24uc2hvcnRDYXJkTnVtYmVyXS5wdXNoKG1hcHBlZFRyYW5zYWN0aW9uKTtcbiAgICB9KTtcblxuICByZXR1cm4gdHJhbnNhY3Rpb25zQnlBY2NvdW50O1xufVxuXG5mdW5jdGlvbiBhZGRSZXN1bHQoYWxsUmVzdWx0czogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4sIHJlc3VsdDogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4pIHtcbiAgY29uc3QgY2xvbmVkUmVzdWx0czogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7IC4uLmFsbFJlc3VsdHMgfTtcbiAgT2JqZWN0LmtleXMocmVzdWx0KS5mb3JFYWNoKChhY2NvdW50TnVtYmVyKSA9PiB7XG4gICAgaWYgKCFjbG9uZWRSZXN1bHRzW2FjY291bnROdW1iZXJdKSB7XG4gICAgICBjbG9uZWRSZXN1bHRzW2FjY291bnROdW1iZXJdID0gW107XG4gICAgfVxuICAgIGNsb25lZFJlc3VsdHNbYWNjb3VudE51bWJlcl0ucHVzaCguLi5yZXN1bHRbYWNjb3VudE51bWJlcl0pO1xuICB9KTtcbiAgcmV0dXJuIGNsb25lZFJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVUcmFuc2FjdGlvbnModHhuczogVHJhbnNhY3Rpb25bXSwgc3RhcnRNb21lbnQ6IG1vbWVudC5Nb21lbnQsIGNvbWJpbmVJbnN0YWxsbWVudHM6IGJvb2xlYW4sIGVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZTogYm9vbGVhbikge1xuICBsZXQgY2xvbmVkVHhucyA9IEFycmF5LmZyb20odHhucyk7XG4gIGlmICghY29tYmluZUluc3RhbGxtZW50cykge1xuICAgIGNsb25lZFR4bnMgPSBmaXhJbnN0YWxsbWVudHMoY2xvbmVkVHhucyk7XG4gIH1cbiAgY2xvbmVkVHhucyA9IHNvcnRUcmFuc2FjdGlvbnNCeURhdGUoY2xvbmVkVHhucyk7XG4gIGNsb25lZFR4bnMgPSBlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUgP1xuICAgIGZpbHRlck9sZFRyYW5zYWN0aW9ucyhjbG9uZWRUeG5zLCBzdGFydE1vbWVudCwgY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSkgOlxuICAgIGNsb25lZFR4bnM7XG4gIHJldHVybiBjbG9uZWRUeG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBvcHRpb25zOiBTY3JhcGVyT3B0aW9ucykge1xuICBjb25zdCBmdXR1cmVNb250aHNUb1NjcmFwZSA9IG9wdGlvbnMuZnV0dXJlTW9udGhzVG9TY3JhcGUgPz8gMTtcbiAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJyk7XG4gIGNvbnN0IHN0YXJ0RGF0ZSA9IG9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuICBjb25zdCBhbGxNb250aHMgPSBnZXRBbGxNb250aE1vbWVudHMoc3RhcnRNb21lbnQsIGZ1dHVyZU1vbnRoc1RvU2NyYXBlKTtcblxuICBhd2FpdCBsb2FkQ2F0ZWdvcmllcyhwYWdlKTtcblxuICBsZXQgYWxsUmVzdWx0czogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7fTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbGxNb250aHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmZXRjaFRyYW5zYWN0aW9uc0Zvck1vbnRoKHBhZ2UsIGFsbE1vbnRoc1tpXSk7XG4gICAgYWxsUmVzdWx0cyA9IGFkZFJlc3VsdChhbGxSZXN1bHRzLCByZXN1bHQpO1xuICB9XG5cbiAgT2JqZWN0LmtleXMoYWxsUmVzdWx0cykuZm9yRWFjaCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIGxldCB0eG5zID0gYWxsUmVzdWx0c1thY2NvdW50TnVtYmVyXTtcbiAgICB0eG5zID0gcHJlcGFyZVRyYW5zYWN0aW9ucyh0eG5zLCBzdGFydE1vbWVudCwgb3B0aW9ucy5jb21iaW5lSW5zdGFsbG1lbnRzIHx8IGZhbHNlLFxuICAgICAgKG9wdGlvbnMub3V0cHV0RGF0YT8uZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlID8/IHRydWUpKTtcbiAgICBhbGxSZXN1bHRzW2FjY291bnROdW1iZXJdID0gdHhucztcbiAgfSk7XG5cbiAgcmV0dXJuIGFsbFJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHBhZ2U6IFBhZ2UpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIGNvbnN0IHVybHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge307XG4gIHVybHNbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdID0gW1NVQ0NFU1NfVVJMXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdID0gW1BBU1NXT1JEX0VYUElSRURfVVJMXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFthc3luYyAoKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIElOVkFMSURfREVUQUlMU19TRUxFQ1RPUik7XG4gIH1dO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5Vbmtub3duRXJyb3JdID0gW2FzeW5jICgpID0+IHtcbiAgICByZXR1cm4gZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZSwgTE9HSU5fRVJST1JfU0VMRUNUT1IpO1xuICB9XTtcbiAgcmV0dXJuIHVybHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnI3VzZXItbmFtZScsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6ICcjcGFzc3dvcmQnLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxuY2xhc3MgTWF4U2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogTE9HSU5fVVJMLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJyNsb2dpbi1wYXNzd29yZCAjc2VuZC1jb2RlJyxcbiAgICAgIHByZUFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UodGhpcy5wYWdlLCAnI2Nsb3NlUG9wdXAnKSkge1xuICAgICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNjbG9zZVBvcHVwJyk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnLnBlcnNvbmFsLWFyZWEgPiBhLmdvLXRvLXBlcnNvbmFsLWFyZWEnKTtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNsb2dpbi1wYXNzd29yZC1saW5rJywgdHJ1ZSk7XG4gICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNsb2dpbi1wYXNzd29yZC1saW5rJyk7XG4gICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjbG9naW4tcGFzc3dvcmQudGFiLXBhbmUuYWN0aXZlIGFwcC11c2VyLWxvZ2luLWZvcm0nLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnLnBlcnNvbmFsLWFyZWEgPiBhLmdvLXRvLXBlcnNvbmFsLWFyZWEnLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiByZWRpcmVjdE9yRGlhbG9nKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHRoaXMucGFnZSksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCB0aGlzLm9wdGlvbnMpO1xuICAgIGNvbnN0IGFjY291bnRzID0gT2JqZWN0LmtleXMocmVzdWx0cykubWFwKChhY2NvdW50TnVtYmVyKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgICB0eG5zOiByZXN1bHRzW2FjY291bnROdW1iZXJdLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYXhTY3JhcGVyO1xuIl19
|
|
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
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { TransactionsAccount } from '../transactions';
|
|
2
|
-
import { ScraperCredentials, ScraperErrorTypes } from './base-scraper';
|
|
3
2
|
import { BaseScraperWithBrowser, PossibleLoginResults } from './base-scraper-with-browser';
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { ScraperErrorTypes } from './errors';
|
|
4
|
+
declare type ScraperSpecificCredentials = {
|
|
5
|
+
username: string;
|
|
6
|
+
password: string;
|
|
7
|
+
};
|
|
8
|
+
declare class MizrahiScraper extends BaseScraperWithBrowser<ScraperSpecificCredentials> {
|
|
9
|
+
getLoginOptions(credentials: ScraperSpecificCredentials): {
|
|
6
10
|
loginUrl: string;
|
|
7
11
|
fields: {
|
|
8
12
|
selector: string;
|
package/lib/scrapers/mizrahi.js
CHANGED
|
@@ -21,10 +21,10 @@ var _navigation = require("../helpers/navigation");
|
|
|
21
21
|
|
|
22
22
|
var _transactions = require("../transactions");
|
|
23
23
|
|
|
24
|
-
var _baseScraper = require("./base-scraper");
|
|
25
|
-
|
|
26
24
|
var _baseScraperWithBrowser = require("./base-scraper-with-browser");
|
|
27
25
|
|
|
26
|
+
var _errors = require("./errors");
|
|
27
|
+
|
|
28
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
29
|
|
|
30
30
|
const BASE_WEBSITE_URL = 'https://www.mizrahi-tefahot.co.il';
|
|
@@ -165,7 +165,7 @@ class MizrahiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
165
165
|
} catch (e) {
|
|
166
166
|
return {
|
|
167
167
|
success: false,
|
|
168
|
-
errorType:
|
|
168
|
+
errorType: _errors.ScraperErrorTypes.Generic,
|
|
169
169
|
errorMessage: e.message
|
|
170
170
|
};
|
|
171
171
|
}
|
|
@@ -207,4 +207,4 @@ class MizrahiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
207
207
|
|
|
208
208
|
var _default = MizrahiScraper;
|
|
209
209
|
exports.default = _default;
|
|
210
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9taXpyYWhpLnRzIl0sIm5hbWVzIjpbIkJBU0VfV0VCU0lURV9VUkwiLCJMT0dJTl9VUkwiLCJCQVNFX0FQUF9VUkwiLCJBRlRFUl9MT0dJTl9CQVNFX1VSTCIsIk9TSF9QQUdFIiwiVFJBTlNBQ1RJT05TX1BBR0UiLCJUUkFOU0FDVElPTlNfUkVRVUVTVF9VUkxTIiwiUEVORElOR19UUkFOU0FDVElPTlNfUEFHRSIsIlBFTkRJTkdfVFJBTlNBQ1RJT05TX0lGUkFNRSIsIkNIQU5HRV9QQVNTV09SRF9VUkwiLCJEQVRFX0ZPUk1BVCIsIk1BWF9ST1dTX1BFUl9SRVFVRVNUIiwidXNlcm5hbWVTZWxlY3RvciIsInBhc3N3b3JkU2VsZWN0b3IiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImludmFsaWRQYXNzd29yZFNlbGVjdG9yIiwiYWZ0ZXJMb2dpblNlbGVjdG9yIiwibG9naW5TcGlubmVyU2VsZWN0b3IiLCJhY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3IiLCJwZW5kaW5nVHJ4SWRlbnRpZmllcklkIiwiY2hlY2tpbmdBY2NvdW50VGFiSGVicmV3TmFtZSIsImNoZWNraW5nQWNjb3VudFRhYkVuZ2xpc2hOYW1lIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJwYWdlIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIiR4IiwiSW52YWxpZFBhc3N3b3JkIiwiJCIsIkNoYW5nZVBhc3N3b3JkIiwiZ2V0U3RhcnRNb21lbnQiLCJvcHRpb25zU3RhcnREYXRlIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJtb21lbnQiLCJtYXgiLCJjcmVhdGVEYXRhRnJvbVJlcXVlc3QiLCJyZXF1ZXN0IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsInBvc3REYXRhIiwiaW5Gcm9tRGF0ZSIsImZvcm1hdCIsImluVG9EYXRlIiwidGFibGUiLCJtYXhSb3ciLCJjcmVhdGVIZWFkZXJzRnJvbVJlcXVlc3QiLCJtaXpyYWhpeHNyZnRva2VuIiwiaGVhZGVycyIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwibWFwIiwicm93IiwidHhuRGF0ZSIsIk1DMDJQZXVsYVRhYUVaIiwiSFRNTDVfRk1UIiwiREFURVRJTUVfTE9DQUxfU0VDT05EUyIsInRvSVNPU3RyaW5nIiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwiTUMwMkFzbWFodGFNZWtvcml0RVoiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsImRhdGUiLCJwcm9jZXNzZWREYXRlIiwib3JpZ2luYWxBbW91bnQiLCJNQzAyU2NodW1FWiIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50IiwiZGVzY3JpcHRpb24iLCJNQzAyVG51YVRldXJFWiIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyIsInBlbmRpbmdUeG4iLCJ0cnMiLCJ0ciIsIkFycmF5IiwiZnJvbSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJ0ZCIsInRleHRDb250ZW50IiwidHhuIiwiYW1vdW50IiwiUGVuZGluZyIsInBvc3RMb2dpbiIsIlByb21pc2UiLCJyYWNlIiwiTWl6cmFoaVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJjaGVja1JlYWRpbmVzcyIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCIkZXZhbCIsImVsIiwiY2xpY2siLCJudW1PZkFjY291bnRzIiwiJCQiLCJsZW5ndGgiLCJyZXN1bHRzIiwiaSIsInB1c2giLCJmZXRjaEFjY291bnQiLCJzdWNjZXNzIiwiYWNjb3VudHMiLCJlIiwiZXJyb3JUeXBlIiwiU2NyYXBlckVycm9yVHlwZXMiLCJHZW5lcmljIiwiZXJyb3JNZXNzYWdlIiwibWVzc2FnZSIsInJlc3BvbnNlIiwiYW55IiwidXJsIiwid2FpdEZvclJlcXVlc3QiLCJvcHRpb25zIiwiaGVhZGVyIiwiRXJyb3IiLCJtZXNzYWdlcyIsInRleHQiLCJyZWxldmFudFJvd3MiLCJib2R5Iiwicm93cyIsImZpbHRlciIsIlJlY1R5cGVTcGVjaWZpZWQiLCJvc2hUeG4iLCJzdGFydE1vbWVudCIsIm9zaFR4bkFmdGVyU3RhcnREYXRlIiwiaXNTYW1lT3JBZnRlciIsImZyYW1lIiwiZiIsImluY2x1ZGVzIiwiYWxsVHhuIiwiY29uY2F0IiwiYWNjb3VudE51bWJlciIsIkFjY291bnROdW1iZXIiLCJiYWxhbmNlIiwiWWl0cmFMZWxvQ2hla2ltIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOzs7O0FBMEJBLE1BQU1BLGdCQUFnQixHQUFHLG1DQUF6QjtBQUNBLE1BQU1DLFNBQVMsR0FBSSxHQUFFRCxnQkFBaUIsaUNBQXRDO0FBQ0EsTUFBTUUsWUFBWSxHQUFHLG1DQUFyQjtBQUNBLE1BQU1DLG9CQUFvQixHQUFHLHVEQUE3QjtBQUNBLE1BQU1DLFFBQVEsR0FBRyw2QkFBakI7QUFDQSxNQUFNQyxpQkFBaUIsR0FBRyxtQ0FBMUI7QUFDQSxNQUFNQyx5QkFBeUIsR0FBRyxDQUMvQixHQUFFSixZQUFhLHFDQURnQixFQUUvQixHQUFFQSxZQUFhLGdDQUZnQixDQUFsQztBQUlBLE1BQU1LLHlCQUF5QixHQUFHLDZCQUFsQztBQUNBLE1BQU1DLDJCQUEyQixHQUFHLFdBQXBDO0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUcsK0VBQTVCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLFlBQXBCO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUcsV0FBN0I7QUFFQSxNQUFNQyxnQkFBZ0IsR0FBRyxr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LGMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBGcmFtZSwgUGFnZSwgUmVxdWVzdCB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBTSEVLRUxfQ1VSUkVOQ1kgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgcGFnZUV2YWxBbGwsIHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIsIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCwgd2FpdFVudGlsSWZyYW1lRm91bmQsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IGZldGNoUG9zdFdpdGhpblBhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL2ZldGNoJztcbmltcG9ydCB7IHdhaXRGb3JVcmwgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uc0FjY291bnQsIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBTY3JhcGVyQ3JlZGVudGlhbHMsIFNjcmFwZXJFcnJvclR5cGVzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBSZWNUeXBlU3BlY2lmaWVkOiBib29sZWFuO1xuICBNQzAyUGV1bGFUYWFFWjogc3RyaW5nO1xuICBNQzAyU2NodW1FWjogbnVtYmVyO1xuICBNQzAyQXNtYWh0YU1la29yaXRFWjogc3RyaW5nO1xuICBNQzAyVG51YVRldXJFWjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdCB7XG4gIGhlYWRlcjoge1xuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgbWVzc2FnZXM6IHsgdGV4dDogc3RyaW5nIH1bXTtcbiAgfTtcbiAgYm9keToge1xuICAgIGZpZWxkczoge1xuICAgICAgQWNjb3VudE51bWJlcjogc3RyaW5nO1xuICAgICAgWWl0cmFMZWxvQ2hla2ltOiBzdHJpbmc7XG4gICAgfTtcbiAgICB0YWJsZToge1xuICAgICAgcm93czogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gICAgfTtcbiAgfTtcbn1cblxuY29uc3QgQkFTRV9XRUJTSVRFX1VSTCA9ICdodHRwczovL3d3dy5taXpyYWhpLXRlZmFob3QuY28uaWwnO1xuY29uc3QgTE9HSU5fVVJMID0gYCR7QkFTRV9XRUJTSVRFX1VSTH0vbG9naW4vaW5kZXguaHRtbCMvYXV0aC1wYWdlLWhlYDtcbmNvbnN0IEJBU0VfQVBQX1VSTCA9ICdodHRwczovL210by5taXpyYWhpLXRlZmFob3QuY28uaWwnO1xuY29uc3QgQUZURVJfTE9HSU5fQkFTRV9VUkwgPSAvaHR0cHM6XFwvXFwvbXRvXFwubWl6cmFoaS10ZWZhaG90XFwuY29cXC5pbFxcL09ubGluZUFwcFxcLy4qLztcbmNvbnN0IE9TSF9QQUdFID0gJy9vc2gvbGVnYWN5L2xlZ2FjeS1Pc2gtTWFpbic7XG5jb25zdCBUUkFOU0FDVElPTlNfUEFHRSA9ICcvb3NoL2xlZ2FjeS9yb290LW1haW4tb3NoLXA0MjhOZXcnO1xuY29uc3QgVFJBTlNBQ1RJT05TX1JFUVVFU1RfVVJMUyA9IFtcbiAgYCR7QkFTRV9BUFBfVVJMfS9PbmxpbmVQaWxvdC9hcGkvU2t5T1NIL2dldDQyOEluZGV4YCxcbiAgYCR7QkFTRV9BUFBfVVJMfS9PbmxpbmUvYXBpL1NreU9TSC9nZXQ0MjhJbmRleGAsXG5dO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfUEFHRSA9ICcvb3NoL2xlZ2FjeS9sZWdhY3ktT3NoLXA0MjAnO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfSUZSQU1FID0gJ3A0MjAuYXNweCc7XG5jb25zdCBDSEFOR0VfUEFTU1dPUkRfVVJMID0gL2h0dHBzOlxcL1xcL3d3d1xcLm1penJhaGktdGVmYWhvdFxcLmNvXFwuaWxcXC9sb2dpblxcL1xcdytcXC9pbmRleFxcLmh0bWwjXFwvY2hhbmdlLXBhc3MvO1xuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVlZWSc7XG5jb25zdCBNQVhfUk9XU19QRVJfUkVRVUVTVCA9IDEwMDAwMDAwMDAwO1xuXG5jb25zdCB1c2VybmFtZVNlbGVjdG9yID0gJyNlbWFpbERlc2t0b3BIZWInO1xuY29uc3QgcGFzc3dvcmRTZWxlY3RvciA9ICcjcGFzc3dvcmRJRERlc2t0b3BIRUInO1xuY29uc3Qgc3VibWl0QnV0dG9uU2VsZWN0b3IgPSAnLmZvcm0tZGVza3RvcCBidXR0b24nO1xuY29uc3QgaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IgPSAnYVtocmVmKj1cImh0dHBzOi8vc2MubWl6cmFoaS10ZWZhaG90LmNvLmlsL1NDU2VydmljZXMvU0MvUDAxMC5hc3B4XCJdJztcbmNvbnN0IGFmdGVyTG9naW5TZWxlY3RvciA9ICcjZHJvcGRvd25CYXNpYyc7XG5jb25zdCBsb2dpblNwaW5uZXJTZWxlY3RvciA9ICdkaXYubmd4LW92ZXJsYXkubG9hZGluZy1mb3JlZ3JvdW5kJztcbmNvbnN0IGFjY291bnREcm9wRG93bkl0ZW1TZWxlY3RvciA9ICcjQWNjb3VudFBpY2tlciAuaXRlbSc7XG5jb25zdCBwZW5kaW5nVHJ4SWRlbnRpZmllcklkID0gJyNjdGwwMF9Db250ZW50UGxhY2VIb2xkZXIyX3BhbmVsMSc7XG5jb25zdCBjaGVja2luZ0FjY291bnRUYWJIZWJyZXdOYW1lID0gJ9ei15XXkdeoINeV16nXkSc7XG5jb25zdCBjaGVja2luZ0FjY291bnRUYWJFbmdsaXNoTmFtZSA9ICdDaGVja2luZyBBY2NvdW50JztcblxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogdXNlcm5hbWVTZWxlY3RvciwgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogcGFzc3dvcmRTZWxlY3RvciwgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHBhZ2U6IFBhZ2UpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIHJldHVybiB7XG4gICAgW0xvZ2luUmVzdWx0cy5TdWNjZXNzXTogW0FGVEVSX0xPR0lOX0JBU0VfVVJMLCBhc3luYyAoKSA9PiAhIShhd2FpdCBwYWdlLiR4KGAvL2EvL3NwYW5bY29udGFpbnMoLiwgXCIke2NoZWNraW5nQWNjb3VudFRhYkhlYnJld05hbWV9XCIpIG9yIGNvbnRhaW5zKC4sIFwiJHtjaGVja2luZ0FjY291bnRUYWJFbmdsaXNoTmFtZX1cIildYCkpXSxcbiAgICBbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF06IFthc3luYyAoKSA9PiAhIShhd2FpdCBwYWdlLiQoaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IpKV0sXG4gICAgW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF06IFtDSEFOR0VfUEFTU1dPUkRfVVJMXSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhcnRNb21lbnQob3B0aW9uc1N0YXJ0RGF0ZTogRGF0ZSkge1xuICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9uc1N0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIHJldHVybiBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEYXRhRnJvbVJlcXVlc3QocmVxdWVzdDogUmVxdWVzdCwgb3B0aW9uc1N0YXJ0RGF0ZTogRGF0ZSkge1xuICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShyZXF1ZXN0LnBvc3REYXRhKCkgfHwgJ3t9Jyk7XG5cbiAgZGF0YS5pbkZyb21EYXRlID0gZ2V0U3RhcnRNb21lbnQob3B0aW9uc1N0YXJ0RGF0ZSkuZm9ybWF0KERBVEVfRk9STUFUKTtcbiAgZGF0YS5pblRvRGF0ZSA9IG1vbWVudCgpLmZvcm1hdChEQVRFX0ZPUk1BVCk7XG4gIGRhdGEudGFibGUubWF4Um93ID0gTUFYX1JPV1NfUEVSX1JFUVVFU1Q7XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUhlYWRlcnNGcm9tUmVxdWVzdChyZXF1ZXN0OiBSZXF1ZXN0KSB7XG4gIHJldHVybiB7XG4gICAgbWl6cmFoaXhzcmZ0b2tlbjogcmVxdWVzdC5oZWFkZXJzKCkubWl6cmFoaXhzcmZ0b2tlbixcbiAgICAnQ29udGVudC1UeXBlJzogcmVxdWVzdC5oZWFkZXJzKClbJ2NvbnRlbnQtdHlwZSddLFxuICB9O1xufVxuXG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHR4bnMubWFwKChyb3cpID0+IHtcbiAgICBjb25zdCB0eG5EYXRlID0gbW9tZW50KHJvdy5NQzAyUGV1bGFUYWFFWiwgbW9tZW50LkhUTUw1X0ZNVC5EQVRFVElNRV9MT0NBTF9TRUNPTkRTKVxuICAgICAgLnRvSVNPU3RyaW5nKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiByb3cuTUMwMkFzbWFodGFNZWtvcml0RVogPyBwYXJzZUludChyb3cuTUMwMkFzbWFodGFNZWtvcml0RVosIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGRhdGU6IHR4bkRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5EYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIGRlc2NyaXB0aW9uOiByb3cuTUMwMlRudWFUZXVyRVosXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyhwYWdlOiBGcmFtZSk6IFByb21pc2U8VHJhbnNhY3Rpb25bXT4ge1xuICBjb25zdCBwZW5kaW5nVHhuID0gYXdhaXQgcGFnZUV2YWxBbGwocGFnZSwgJ3RyLnJnUm93JywgW10sICh0cnMpID0+IHtcbiAgICByZXR1cm4gdHJzLm1hcCgodHIpID0+IEFycmF5LmZyb20odHIucXVlcnlTZWxlY3RvckFsbCgndGQnKSwgKHRkOiBIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQpID0+IHRkLnRleHRDb250ZW50IHx8ICcnKSk7XG4gIH0pO1xuXG4gIHJldHVybiBwZW5kaW5nVHhuLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudCh0eG5bMF0sICdERC9NTS9ZWScpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgYW1vdW50ID0gcGFyc2VJbnQodHhuWzNdLCAxMCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgZGF0ZSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGRhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogYW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogYW1vdW50LFxuICAgICAgZGVzY3JpcHRpb246IHR4blsxXSxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwb3N0TG9naW4ocGFnZTogUGFnZSkge1xuICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBhZnRlckxvZ2luU2VsZWN0b3IpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBpbnZhbGlkUGFzc3dvcmRTZWxlY3RvciksXG4gICAgd2FpdEZvclVybChwYWdlLCBDSEFOR0VfUEFTU1dPUkRfVVJMKSxcbiAgXSk7XG59XG5cbmNsYXNzIE1penJhaGlTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBMT0dJTl9VUkwsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yLFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIodGhpcy5wYWdlLCBsb2dpblNwaW5uZXJTZWxlY3RvciksXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiBwb3N0TG9naW4odGhpcy5wYWdlKSxcbiAgICAgIHBvc3NpYmxlUmVzdWx0czogZ2V0UG9zc2libGVMb2dpblJlc3VsdHModGhpcy5wYWdlKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCkge1xuICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbCgnI2Ryb3Bkb3duQmFzaWMsIC5pdGVtJywgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuXG4gICAgY29uc3QgbnVtT2ZBY2NvdW50cyA9IChhd2FpdCB0aGlzLnBhZ2UuJCQoYWNjb3VudERyb3BEb3duSXRlbVNlbGVjdG9yKSkubGVuZ3RoO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdHM6IFRyYW5zYWN0aW9uc0FjY291bnRbXSA9IFtdO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bU9mQWNjb3VudHM7IGkgKz0gMSkge1xuICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoJyNkcm9wZG93bkJhc2ljLCAuaXRlbScsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbChgJHthY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3J9Om50aC1jaGlsZCgke2kgKyAxfSlgLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG4gICAgICAgIHJlc3VsdHMucHVzaCgoYXdhaXQgdGhpcy5mZXRjaEFjY291bnQoKSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBhY2NvdW50czogcmVzdWx0cyxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpYyxcbiAgICAgICAgZXJyb3JNZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hBY2NvdW50KCkge1xuICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbChgYVtocmVmKj1cIiR7T1NIX1BBR0V9XCJdYCwgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsIGBhW2hyZWYqPVwiJHtUUkFOU0FDVElPTlNfUEFHRX1cIl1gKTtcbiAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoYGFbaHJlZio9XCIke1RSQU5TQUNUSU9OU19QQUdFfVwiXWAsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgUHJvbWlzZS5hbnkoVFJBTlNBQ1RJT05TX1JFUVVFU1RfVVJMUy5tYXAoYXN5bmMgKHVybCkgPT4ge1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHRoaXMucGFnZS53YWl0Rm9yUmVxdWVzdCh1cmwpO1xuICAgICAgY29uc3QgZGF0YSA9IGNyZWF0ZURhdGFGcm9tUmVxdWVzdChyZXF1ZXN0LCB0aGlzLm9wdGlvbnMuc3RhcnREYXRlKTtcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBjcmVhdGVIZWFkZXJzRnJvbVJlcXVlc3QocmVxdWVzdCk7XG5cbiAgICAgIHJldHVybiBmZXRjaFBvc3RXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHQ+KHRoaXMucGFnZSwgdXJsLCBkYXRhLCBoZWFkZXJzKTtcbiAgICB9KSk7XG5cblxuICAgIGlmICghcmVzcG9uc2UgfHwgcmVzcG9uc2UuaGVhZGVyLnN1Y2Nlc3MgPT09IGZhbHNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIGZldGNoaW5nIHRyYW5zYWN0aW9uLiBSZXNwb25zZSBtZXNzYWdlOiAke3Jlc3BvbnNlID8gcmVzcG9uc2UuaGVhZGVyLm1lc3NhZ2VzWzBdLnRleHQgOiAnJ31gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZWxldmFudFJvd3MgPSByZXNwb25zZS5ib2R5LnRhYmxlLnJvd3MuZmlsdGVyKChyb3cpID0+IHJvdy5SZWNUeXBlU3BlY2lmaWVkKTtcbiAgICBjb25zdCBvc2hUeG4gPSBjb252ZXJ0VHJhbnNhY3Rpb25zKHJlbGV2YW50Um93cyk7XG5cbiAgICAvLyB3b3JrYXJvdW5kIGZvciBhIGJ1ZyB3aGljaCB0aGUgYmFuaydzIEFQSSByZXR1cm5zIHRyYW5zYWN0aW9ucyBiZWZvcmUgdGhlIHJlcXVlc3RlZCBzdGFydCBkYXRlXG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBnZXRTdGFydE1vbWVudCh0aGlzLm9wdGlvbnMuc3RhcnREYXRlKTtcbiAgICBjb25zdCBvc2hUeG5BZnRlclN0YXJ0RGF0ZSA9IG9zaFR4bi5maWx0ZXIoKHR4bikgPT4gbW9tZW50KHR4bi5kYXRlKS5pc1NhbWVPckFmdGVyKHN0YXJ0TW9tZW50KSk7XG5cbiAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoYGFbaHJlZio9XCIke1BFTkRJTkdfVFJBTlNBQ1RJT05TX1BBR0V9XCJdYCwgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuICAgIGNvbnN0IGZyYW1lID0gYXdhaXQgd2FpdFVudGlsSWZyYW1lRm91bmQodGhpcy5wYWdlLCAoZikgPT4gZi51cmwoKS5pbmNsdWRlcyhQRU5ESU5HX1RSQU5TQUNUSU9OU19JRlJBTUUpKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsIHBlbmRpbmdUcnhJZGVudGlmaWVySWQpO1xuICAgIGNvbnN0IHBlbmRpbmdUeG4gPSBhd2FpdCBleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyhmcmFtZSk7XG5cbiAgICBjb25zdCBhbGxUeG4gPSBvc2hUeG5BZnRlclN0YXJ0RGF0ZS5jb25jYXQocGVuZGluZ1R4bik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudE51bWJlcjogcmVzcG9uc2UuYm9keS5maWVsZHMuQWNjb3VudE51bWJlcixcbiAgICAgIHR4bnM6IGFsbFR4bixcbiAgICAgIGJhbGFuY2U6ICtyZXNwb25zZS5ib2R5LmZpZWxkcy5ZaXRyYUxlbG9DaGVraW0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNaXpyYWhpU2NyYXBlcjtcbiJdfQ==
|
|
210
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9taXpyYWhpLnRzIl0sIm5hbWVzIjpbIkJBU0VfV0VCU0lURV9VUkwiLCJMT0dJTl9VUkwiLCJCQVNFX0FQUF9VUkwiLCJBRlRFUl9MT0dJTl9CQVNFX1VSTCIsIk9TSF9QQUdFIiwiVFJBTlNBQ1RJT05TX1BBR0UiLCJUUkFOU0FDVElPTlNfUkVRVUVTVF9VUkxTIiwiUEVORElOR19UUkFOU0FDVElPTlNfUEFHRSIsIlBFTkRJTkdfVFJBTlNBQ1RJT05TX0lGUkFNRSIsIkNIQU5HRV9QQVNTV09SRF9VUkwiLCJEQVRFX0ZPUk1BVCIsIk1BWF9ST1dTX1BFUl9SRVFVRVNUIiwidXNlcm5hbWVTZWxlY3RvciIsInBhc3N3b3JkU2VsZWN0b3IiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImludmFsaWRQYXNzd29yZFNlbGVjdG9yIiwiYWZ0ZXJMb2dpblNlbGVjdG9yIiwibG9naW5TcGlubmVyU2VsZWN0b3IiLCJhY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3IiLCJwZW5kaW5nVHJ4SWRlbnRpZmllcklkIiwiY2hlY2tpbmdBY2NvdW50VGFiSGVicmV3TmFtZSIsImNoZWNraW5nQWNjb3VudFRhYkVuZ2xpc2hOYW1lIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJwYWdlIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIiR4IiwiSW52YWxpZFBhc3N3b3JkIiwiJCIsIkNoYW5nZVBhc3N3b3JkIiwiZ2V0U3RhcnRNb21lbnQiLCJvcHRpb25zU3RhcnREYXRlIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJtb21lbnQiLCJtYXgiLCJjcmVhdGVEYXRhRnJvbVJlcXVlc3QiLCJyZXF1ZXN0IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsInBvc3REYXRhIiwiaW5Gcm9tRGF0ZSIsImZvcm1hdCIsImluVG9EYXRlIiwidGFibGUiLCJtYXhSb3ciLCJjcmVhdGVIZWFkZXJzRnJvbVJlcXVlc3QiLCJtaXpyYWhpeHNyZnRva2VuIiwiaGVhZGVycyIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwibWFwIiwicm93IiwidHhuRGF0ZSIsIk1DMDJQZXVsYVRhYUVaIiwiSFRNTDVfRk1UIiwiREFURVRJTUVfTE9DQUxfU0VDT05EUyIsInRvSVNPU3RyaW5nIiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwiTUMwMkFzbWFodGFNZWtvcml0RVoiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsImRhdGUiLCJwcm9jZXNzZWREYXRlIiwib3JpZ2luYWxBbW91bnQiLCJNQzAyU2NodW1FWiIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50IiwiZGVzY3JpcHRpb24iLCJNQzAyVG51YVRldXJFWiIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyIsInBlbmRpbmdUeG4iLCJ0cnMiLCJ0ciIsIkFycmF5IiwiZnJvbSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJ0ZCIsInRleHRDb250ZW50IiwidHhuIiwiYW1vdW50IiwiUGVuZGluZyIsInBvc3RMb2dpbiIsIlByb21pc2UiLCJyYWNlIiwiTWl6cmFoaVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJjaGVja1JlYWRpbmVzcyIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCIkZXZhbCIsImVsIiwiY2xpY2siLCJudW1PZkFjY291bnRzIiwiJCQiLCJsZW5ndGgiLCJyZXN1bHRzIiwiaSIsInB1c2giLCJmZXRjaEFjY291bnQiLCJzdWNjZXNzIiwiYWNjb3VudHMiLCJlIiwiZXJyb3JUeXBlIiwiU2NyYXBlckVycm9yVHlwZXMiLCJHZW5lcmljIiwiZXJyb3JNZXNzYWdlIiwibWVzc2FnZSIsInJlc3BvbnNlIiwiYW55IiwidXJsIiwid2FpdEZvclJlcXVlc3QiLCJvcHRpb25zIiwiaGVhZGVyIiwiRXJyb3IiLCJtZXNzYWdlcyIsInRleHQiLCJyZWxldmFudFJvd3MiLCJib2R5Iiwicm93cyIsImZpbHRlciIsIlJlY1R5cGVTcGVjaWZpZWQiLCJvc2hUeG4iLCJzdGFydE1vbWVudCIsIm9zaFR4bkFmdGVyU3RhcnREYXRlIiwiaXNTYW1lT3JBZnRlciIsImZyYW1lIiwiZiIsImluY2x1ZGVzIiwiYWxsVHhuIiwiY29uY2F0IiwiYWNjb3VudE51bWJlciIsIkFjY291bnROdW1iZXIiLCJiYWxhbmNlIiwiWWl0cmFMZWxvQ2hla2ltIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOzs7O0FBMEJBLE1BQU1BLGdCQUFnQixHQUFHLG1DQUF6QjtBQUNBLE1BQU1DLFNBQVMsR0FBSSxHQUFFRCxnQkFBaUIsaUNBQXRDO0FBQ0EsTUFBTUUsWUFBWSxHQUFHLG1DQUFyQjtBQUNBLE1BQU1DLG9CQUFvQixHQUFHLHVEQUE3QjtBQUNBLE1BQU1DLFFBQVEsR0FBRyw2QkFBakI7QUFDQSxNQUFNQyxpQkFBaUIsR0FBRyxtQ0FBMUI7QUFDQSxNQUFNQyx5QkFBeUIsR0FBRyxDQUMvQixHQUFFSixZQUFhLHFDQURnQixFQUUvQixHQUFFQSxZQUFhLGdDQUZnQixDQUFsQztBQUlBLE1BQU1LLHlCQUF5QixHQUFHLDZCQUFsQztBQUNBLE1BQU1DLDJCQUEyQixHQUFHLFdBQXBDO0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUcsK0VBQTVCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHLFlBQXBCO0FBQ0EsTUFBTUMsb0JBQW9CLEdBQUcsV0FBN0I7QUFFQSxNQUFNQyxnQkFBZ0IsR0FBRyxrQkFBekI7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyx1QkFBekI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyxzQkFBN0I7QUFDQSxNQUFNQyx1QkFBdUIsR0FBRyxxRUFBaEM7QUFDQSxNQUFNQyxrQkFBa0IsR0FBRyxnQkFBM0I7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyxvQ0FBN0I7QUFDQSxNQUFNQywyQkFBMkIsR0FBRyxzQkFBcEM7QUFDQSxNQUFNQyxzQkFBc0IsR0FBRyxtQ0FBL0I7QUFDQSxNQUFNQyw0QkFBNEIsR0FBRyxVQUFyQztBQUNBLE1BQU1DLDZCQUE2QixHQUFHLGtCQUF0Qzs7QUFHQSxTQUFTQyxpQkFBVCxDQUEyQkMsV0FBM0IsRUFBb0U7QUFDbEUsU0FBTyxDQUNMO0FBQUVDLElBQUFBLFFBQVEsRUFBRVosZ0JBQVo7QUFBOEJhLElBQUFBLEtBQUssRUFBRUYsV0FBVyxDQUFDRztBQUFqRCxHQURLLEVBRUw7QUFBRUYsSUFBQUEsUUFBUSxFQUFFWCxnQkFBWjtBQUE4QlksSUFBQUEsS0FBSyxFQUFFRixXQUFXLENBQUNJO0FBQWpELEdBRkssQ0FBUDtBQUlEOztBQUVELFNBQVNDLHVCQUFULENBQWlDQyxJQUFqQyxFQUFtRTtBQUNqRSxTQUFPO0FBQ0wsS0FBQ0MscUNBQWFDLE9BQWQsR0FBd0IsQ0FBQzVCLG9CQUFELEVBQXVCLFlBQVksQ0FBQyxFQUFFLE1BQU0wQixJQUFJLENBQUNHLEVBQUwsQ0FBUywwQkFBeUJaLDRCQUE2QixzQkFBcUJDLDZCQUE4QixLQUFsSCxDQUFSLENBQXBDLENBRG5CO0FBRUwsS0FBQ1MscUNBQWFHLGVBQWQsR0FBZ0MsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNSixJQUFJLENBQUNLLENBQUwsQ0FBT25CLHVCQUFQLENBQVIsQ0FBZCxDQUYzQjtBQUdMLEtBQUNlLHFDQUFhSyxjQUFkLEdBQStCLENBQUMxQixtQkFBRDtBQUgxQixHQUFQO0FBS0Q7O0FBRUQsU0FBUzJCLGNBQVQsQ0FBd0JDLGdCQUF4QixFQUFnRDtBQUM5QyxRQUFNQyxrQkFBa0IsR0FBRyx1QkFBU0MsUUFBVCxDQUFrQixDQUFsQixFQUFxQixPQUFyQixDQUEzQjtBQUNBLFFBQU1DLFNBQVMsR0FBR0gsZ0JBQWdCLElBQUlDLGtCQUFrQixDQUFDRyxNQUFuQixFQUF0QztBQUNBLFNBQU9DLGdCQUFPQyxHQUFQLENBQVdMLGtCQUFYLEVBQStCLHFCQUFPRSxTQUFQLENBQS9CLENBQVA7QUFDRDs7QUFFRCxTQUFTSSxxQkFBVCxDQUErQkMsT0FBL0IsRUFBaURSLGdCQUFqRCxFQUF5RTtBQUN2RSxRQUFNUyxJQUFJLEdBQUdDLElBQUksQ0FBQ0MsS0FBTCxDQUFXSCxPQUFPLENBQUNJLFFBQVIsTUFBc0IsSUFBakMsQ0FBYjtBQUVBSCxFQUFBQSxJQUFJLENBQUNJLFVBQUwsR0FBa0JkLGNBQWMsQ0FBQ0MsZ0JBQUQsQ0FBZCxDQUFpQ2MsTUFBakMsQ0FBd0N6QyxXQUF4QyxDQUFsQjtBQUNBb0MsRUFBQUEsSUFBSSxDQUFDTSxRQUFMLEdBQWdCLHVCQUFTRCxNQUFULENBQWdCekMsV0FBaEIsQ0FBaEI7QUFDQW9DLEVBQUFBLElBQUksQ0FBQ08sS0FBTCxDQUFXQyxNQUFYLEdBQW9CM0Msb0JBQXBCO0FBRUEsU0FBT21DLElBQVA7QUFDRDs7QUFFRCxTQUFTUyx3QkFBVCxDQUFrQ1YsT0FBbEMsRUFBb0Q7QUFDbEQsU0FBTztBQUNMVyxJQUFBQSxnQkFBZ0IsRUFBRVgsT0FBTyxDQUFDWSxPQUFSLEdBQWtCRCxnQkFEL0I7QUFFTCxvQkFBZ0JYLE9BQU8sQ0FBQ1ksT0FBUixHQUFrQixjQUFsQjtBQUZYLEdBQVA7QUFJRDs7QUFHRCxTQUFTQyxtQkFBVCxDQUE2QkMsSUFBN0IsRUFBd0U7QUFDdEUsU0FBT0EsSUFBSSxDQUFDQyxHQUFMLENBQVVDLEdBQUQsSUFBUztBQUN2QixVQUFNQyxPQUFPLEdBQUcscUJBQU9ELEdBQUcsQ0FBQ0UsY0FBWCxFQUEyQnJCLGdCQUFPc0IsU0FBUCxDQUFpQkMsc0JBQTVDLEVBQ2JDLFdBRGEsRUFBaEI7QUFHQSxXQUFPO0FBQ0xDLE1BQUFBLElBQUksRUFBRUMsK0JBQWlCQyxNQURsQjtBQUVMQyxNQUFBQSxVQUFVLEVBQUVULEdBQUcsQ0FBQ1Usb0JBQUosR0FBMkJDLFFBQVEsQ0FBQ1gsR0FBRyxDQUFDVSxvQkFBTCxFQUEyQixFQUEzQixDQUFuQyxHQUFvRUUsU0FGM0U7QUFHTEMsTUFBQUEsSUFBSSxFQUFFWixPQUhEO0FBSUxhLE1BQUFBLGFBQWEsRUFBRWIsT0FKVjtBQUtMYyxNQUFBQSxjQUFjLEVBQUVmLEdBQUcsQ0FBQ2dCLFdBTGY7QUFNTEMsTUFBQUEsZ0JBQWdCLEVBQUVDLDBCQU5iO0FBT0xDLE1BQUFBLGFBQWEsRUFBRW5CLEdBQUcsQ0FBQ2dCLFdBUGQ7QUFRTEksTUFBQUEsV0FBVyxFQUFFcEIsR0FBRyxDQUFDcUIsY0FSWjtBQVNMQyxNQUFBQSxNQUFNLEVBQUVDLGtDQUFvQkM7QUFUdkIsS0FBUDtBQVdELEdBZk0sQ0FBUDtBQWdCRDs7QUFFRCxlQUFlQywwQkFBZixDQUEwQ3pELElBQTFDLEVBQStFO0FBQzdFLFFBQU0wRCxVQUFVLEdBQUcsTUFBTSx1Q0FBWTFELElBQVosRUFBa0IsVUFBbEIsRUFBOEIsRUFBOUIsRUFBbUMyRCxHQUFELElBQVM7QUFDbEUsV0FBT0EsR0FBRyxDQUFDNUIsR0FBSixDQUFTNkIsRUFBRCxJQUFRQyxLQUFLLENBQUNDLElBQU4sQ0FBV0YsRUFBRSxDQUFDRyxnQkFBSCxDQUFvQixJQUFwQixDQUFYLEVBQXVDQyxFQUFELElBQWtDQSxFQUFFLENBQUNDLFdBQUgsSUFBa0IsRUFBMUYsQ0FBaEIsQ0FBUDtBQUNELEdBRndCLENBQXpCO0FBSUEsU0FBT1AsVUFBVSxDQUFDM0IsR0FBWCxDQUFnQm1DLEdBQUQsSUFBUztBQUM3QixVQUFNckIsSUFBSSxHQUFHLHFCQUFPcUIsR0FBRyxDQUFDLENBQUQsQ0FBVixFQUFlLFVBQWYsRUFBMkI3QixXQUEzQixFQUFiO0FBQ0EsVUFBTThCLE1BQU0sR0FBR3hCLFFBQVEsQ0FBQ3VCLEdBQUcsQ0FBQyxDQUFELENBQUosRUFBUyxFQUFULENBQXZCO0FBQ0EsV0FBTztBQUNMNUIsTUFBQUEsSUFBSSxFQUFFQywrQkFBaUJDLE1BRGxCO0FBRUxLLE1BQUFBLElBRks7QUFHTEMsTUFBQUEsYUFBYSxFQUFFRCxJQUhWO0FBSUxFLE1BQUFBLGNBQWMsRUFBRW9CLE1BSlg7QUFLTGxCLE1BQUFBLGdCQUFnQixFQUFFQywwQkFMYjtBQU1MQyxNQUFBQSxhQUFhLEVBQUVnQixNQU5WO0FBT0xmLE1BQUFBLFdBQVcsRUFBRWMsR0FBRyxDQUFDLENBQUQsQ0FQWDtBQVFMWixNQUFBQSxNQUFNLEVBQUVDLGtDQUFvQmE7QUFSdkIsS0FBUDtBQVVELEdBYk0sQ0FBUDtBQWNEOztBQUVELGVBQWVDLFNBQWYsQ0FBeUJyRSxJQUF6QixFQUFxQztBQUNuQyxRQUFNc0UsT0FBTyxDQUFDQyxJQUFSLENBQWEsQ0FDakIsaURBQXNCdkUsSUFBdEIsRUFBNEJiLGtCQUE1QixDQURpQixFQUVqQixpREFBc0JhLElBQXRCLEVBQTRCZCx1QkFBNUIsQ0FGaUIsRUFHakIsNEJBQVdjLElBQVgsRUFBaUJwQixtQkFBakIsQ0FIaUIsQ0FBYixDQUFOO0FBS0Q7O0FBSUQsTUFBTTRGLGNBQU4sU0FBNkJDLDhDQUE3QixDQUFnRjtBQUM5RUMsRUFBQUEsZUFBZSxDQUFDaEYsV0FBRCxFQUEwQztBQUN2RCxXQUFPO0FBQ0xpRixNQUFBQSxRQUFRLEVBQUV2RyxTQURMO0FBRUx3RyxNQUFBQSxNQUFNLEVBQUVuRixpQkFBaUIsQ0FBQ0MsV0FBRCxDQUZwQjtBQUdMVCxNQUFBQSxvQkFISztBQUlMNEYsTUFBQUEsY0FBYyxFQUFFLFlBQVkscURBQTBCLEtBQUs3RSxJQUEvQixFQUFxQ1osb0JBQXJDLENBSnZCO0FBS0wwRixNQUFBQSxVQUFVLEVBQUUsWUFBWVQsU0FBUyxDQUFDLEtBQUtyRSxJQUFOLENBTDVCO0FBTUwrRSxNQUFBQSxlQUFlLEVBQUVoRix1QkFBdUIsQ0FBQyxLQUFLQyxJQUFOO0FBTm5DLEtBQVA7QUFRRDs7QUFFRCxRQUFNZ0YsU0FBTixHQUFrQjtBQUNoQixVQUFNLEtBQUtoRixJQUFMLENBQVVpRixLQUFWLENBQWdCLHVCQUFoQixFQUEwQ0MsRUFBRCxJQUFTQSxFQUFELENBQW9CQyxLQUFwQixFQUFqRCxDQUFOO0FBRUEsVUFBTUMsYUFBYSxHQUFHLENBQUMsTUFBTSxLQUFLcEYsSUFBTCxDQUFVcUYsRUFBVixDQUFhaEcsMkJBQWIsQ0FBUCxFQUFrRGlHLE1BQXhFOztBQUVBLFFBQUk7QUFDRixZQUFNQyxPQUE4QixHQUFHLEVBQXZDOztBQUVBLFdBQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0osYUFBcEIsRUFBbUNJLENBQUMsSUFBSSxDQUF4QyxFQUEyQztBQUN6QyxZQUFJQSxDQUFDLEdBQUcsQ0FBUixFQUFXO0FBQ1QsZ0JBQU0sS0FBS3hGLElBQUwsQ0FBVWlGLEtBQVYsQ0FBZ0IsdUJBQWhCLEVBQTBDQyxFQUFELElBQVNBLEVBQUQsQ0FBb0JDLEtBQXBCLEVBQWpELENBQU47QUFDRDs7QUFFRCxjQUFNLEtBQUtuRixJQUFMLENBQVVpRixLQUFWLENBQWlCLEdBQUU1RiwyQkFBNEIsY0FBYW1HLENBQUMsR0FBRyxDQUFFLEdBQWxFLEVBQXVFTixFQUFELElBQVNBLEVBQUQsQ0FBb0JDLEtBQXBCLEVBQTlFLENBQU47QUFDQUksUUFBQUEsT0FBTyxDQUFDRSxJQUFSLEVBQWMsTUFBTSxLQUFLQyxZQUFMLEVBQXBCO0FBQ0Q7O0FBRUQsYUFBTztBQUNMQyxRQUFBQSxPQUFPLEVBQUUsSUFESjtBQUVMQyxRQUFBQSxRQUFRLEVBQUVMO0FBRkwsT0FBUDtBQUlELEtBaEJELENBZ0JFLE9BQU9NLENBQVAsRUFBVTtBQUNWLGFBQU87QUFDTEYsUUFBQUEsT0FBTyxFQUFFLEtBREo7QUFFTEcsUUFBQUEsU0FBUyxFQUFFQywwQkFBa0JDLE9BRnhCO0FBR0xDLFFBQUFBLFlBQVksRUFBRUosQ0FBQyxDQUFDSztBQUhYLE9BQVA7QUFLRDtBQUNGOztBQUVELFFBQWNSLFlBQWQsR0FBNkI7QUFDM0IsVUFBTSxLQUFLMUYsSUFBTCxDQUFVaUYsS0FBVixDQUFpQixZQUFXMUcsUUFBUyxJQUFyQyxFQUEyQzJHLEVBQUQsSUFBU0EsRUFBRCxDQUFvQkMsS0FBcEIsRUFBbEQsQ0FBTjtBQUNBLFVBQU0saURBQXNCLEtBQUtuRixJQUEzQixFQUFrQyxZQUFXeEIsaUJBQWtCLElBQS9ELENBQU47QUFDQSxVQUFNLEtBQUt3QixJQUFMLENBQVVpRixLQUFWLENBQWlCLFlBQVd6RyxpQkFBa0IsSUFBOUMsRUFBb0QwRyxFQUFELElBQVNBLEVBQUQsQ0FBb0JDLEtBQXBCLEVBQTNELENBQU47QUFFQSxVQUFNZ0IsUUFBUSxHQUFHLE1BQU03QixPQUFPLENBQUM4QixHQUFSLENBQVkzSCx5QkFBeUIsQ0FBQ3NELEdBQTFCLENBQThCLE1BQU9zRSxHQUFQLElBQWU7QUFDOUUsWUFBTXJGLE9BQU8sR0FBRyxNQUFNLEtBQUtoQixJQUFMLENBQVVzRyxjQUFWLENBQXlCRCxHQUF6QixDQUF0QjtBQUNBLFlBQU1wRixJQUFJLEdBQUdGLHFCQUFxQixDQUFDQyxPQUFELEVBQVUsS0FBS3VGLE9BQUwsQ0FBYTVGLFNBQXZCLENBQWxDO0FBQ0EsWUFBTWlCLE9BQU8sR0FBR0Ysd0JBQXdCLENBQUNWLE9BQUQsQ0FBeEM7QUFFQSxhQUFPLGdDQUErQyxLQUFLaEIsSUFBcEQsRUFBMERxRyxHQUExRCxFQUErRHBGLElBQS9ELEVBQXFFVyxPQUFyRSxDQUFQO0FBQ0QsS0FOa0MsQ0FBWixDQUF2Qjs7QUFTQSxRQUFJLENBQUN1RSxRQUFELElBQWFBLFFBQVEsQ0FBQ0ssTUFBVCxDQUFnQmIsT0FBaEIsS0FBNEIsS0FBN0MsRUFBb0Q7QUFDbEQsWUFBTSxJQUFJYyxLQUFKLENBQVcsaURBQWdETixRQUFRLEdBQUdBLFFBQVEsQ0FBQ0ssTUFBVCxDQUFnQkUsUUFBaEIsQ0FBeUIsQ0FBekIsRUFBNEJDLElBQS9CLEdBQXNDLEVBQUcsRUFBNUcsQ0FBTjtBQUNEOztBQUVELFVBQU1DLFlBQVksR0FBR1QsUUFBUSxDQUFDVSxJQUFULENBQWNyRixLQUFkLENBQW9Cc0YsSUFBcEIsQ0FBeUJDLE1BQXpCLENBQWlDL0UsR0FBRCxJQUFTQSxHQUFHLENBQUNnRixnQkFBN0MsQ0FBckI7QUFDQSxVQUFNQyxNQUFNLEdBQUdwRixtQkFBbUIsQ0FBQytFLFlBQUQsQ0FBbEMsQ0FuQjJCLENBcUIzQjs7QUFDQSxVQUFNTSxXQUFXLEdBQUczRyxjQUFjLENBQUMsS0FBS2dHLE9BQUwsQ0FBYTVGLFNBQWQsQ0FBbEM7QUFDQSxVQUFNd0csb0JBQW9CLEdBQUdGLE1BQU0sQ0FBQ0YsTUFBUCxDQUFlN0MsR0FBRCxJQUFTLHFCQUFPQSxHQUFHLENBQUNyQixJQUFYLEVBQWlCdUUsYUFBakIsQ0FBK0JGLFdBQS9CLENBQXZCLENBQTdCO0FBRUEsVUFBTSxLQUFLbEgsSUFBTCxDQUFVaUYsS0FBVixDQUFpQixZQUFXdkcseUJBQTBCLElBQXRELEVBQTREd0csRUFBRCxJQUFTQSxFQUFELENBQW9CQyxLQUFwQixFQUFuRSxDQUFOO0FBQ0EsVUFBTWtDLEtBQUssR0FBRyxNQUFNLGdEQUFxQixLQUFLckgsSUFBMUIsRUFBaUNzSCxDQUFELElBQU9BLENBQUMsQ0FBQ2pCLEdBQUYsR0FBUWtCLFFBQVIsQ0FBaUI1SSwyQkFBakIsQ0FBdkMsQ0FBcEI7QUFDQSxVQUFNLGlEQUFzQjBJLEtBQXRCLEVBQTZCL0gsc0JBQTdCLENBQU47QUFDQSxVQUFNb0UsVUFBVSxHQUFHLE1BQU1ELDBCQUEwQixDQUFDNEQsS0FBRCxDQUFuRDtBQUVBLFVBQU1HLE1BQU0sR0FBR0wsb0JBQW9CLENBQUNNLE1BQXJCLENBQTRCL0QsVUFBNUIsQ0FBZjtBQUVBLFdBQU87QUFDTGdFLE1BQUFBLGFBQWEsRUFBRXZCLFFBQVEsQ0FBQ1UsSUFBVCxDQUFjakMsTUFBZCxDQUFxQitDLGFBRC9CO0FBRUw3RixNQUFBQSxJQUFJLEVBQUUwRixNQUZEO0FBR0xJLE1BQUFBLE9BQU8sRUFBRSxDQUFDekIsUUFBUSxDQUFDVSxJQUFULENBQWNqQyxNQUFkLENBQXFCaUQ7QUFIMUIsS0FBUDtBQUtEOztBQS9FNkU7O2VBa0ZqRXJELGMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBGcmFtZSwgUGFnZSwgUmVxdWVzdCB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQgeyBTSEVLRUxfQ1VSUkVOQ1kgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgcGFnZUV2YWxBbGwsIHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIsIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCwgd2FpdFVudGlsSWZyYW1lRm91bmQsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IGZldGNoUG9zdFdpdGhpblBhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL2ZldGNoJztcbmltcG9ydCB7IHdhaXRGb3JVcmwgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uc0FjY291bnQsIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIFBvc3NpYmxlTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IFNjcmFwZXJFcnJvclR5cGVzIH0gZnJvbSAnLi9lcnJvcnMnO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgUmVjVHlwZVNwZWNpZmllZDogYm9vbGVhbjtcbiAgTUMwMlBldWxhVGFhRVo6IHN0cmluZztcbiAgTUMwMlNjaHVtRVo6IG51bWJlcjtcbiAgTUMwMkFzbWFodGFNZWtvcml0RVo6IHN0cmluZztcbiAgTUMwMlRudWFUZXVyRVo6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHQge1xuICBoZWFkZXI6IHtcbiAgICBzdWNjZXNzOiBib29sZWFuO1xuICAgIG1lc3NhZ2VzOiB7IHRleHQ6IHN0cmluZyB9W107XG4gIH07XG4gIGJvZHk6IHtcbiAgICBmaWVsZHM6IHtcbiAgICAgIEFjY291bnROdW1iZXI6IHN0cmluZztcbiAgICAgIFlpdHJhTGVsb0NoZWtpbTogc3RyaW5nO1xuICAgIH07XG4gICAgdGFibGU6IHtcbiAgICAgIHJvd3M6IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICAgIH07XG4gIH07XG59XG5cbmNvbnN0IEJBU0VfV0VCU0lURV9VUkwgPSAnaHR0cHM6Ly93d3cubWl6cmFoaS10ZWZhaG90LmNvLmlsJztcbmNvbnN0IExPR0lOX1VSTCA9IGAke0JBU0VfV0VCU0lURV9VUkx9L2xvZ2luL2luZGV4Lmh0bWwjL2F1dGgtcGFnZS1oZWA7XG5jb25zdCBCQVNFX0FQUF9VUkwgPSAnaHR0cHM6Ly9tdG8ubWl6cmFoaS10ZWZhaG90LmNvLmlsJztcbmNvbnN0IEFGVEVSX0xPR0lOX0JBU0VfVVJMID0gL2h0dHBzOlxcL1xcL210b1xcLm1penJhaGktdGVmYWhvdFxcLmNvXFwuaWxcXC9PbmxpbmVBcHBcXC8uKi87XG5jb25zdCBPU0hfUEFHRSA9ICcvb3NoL2xlZ2FjeS9sZWdhY3ktT3NoLU1haW4nO1xuY29uc3QgVFJBTlNBQ1RJT05TX1BBR0UgPSAnL29zaC9sZWdhY3kvcm9vdC1tYWluLW9zaC1wNDI4TmV3JztcbmNvbnN0IFRSQU5TQUNUSU9OU19SRVFVRVNUX1VSTFMgPSBbXG4gIGAke0JBU0VfQVBQX1VSTH0vT25saW5lUGlsb3QvYXBpL1NreU9TSC9nZXQ0MjhJbmRleGAsXG4gIGAke0JBU0VfQVBQX1VSTH0vT25saW5lL2FwaS9Ta3lPU0gvZ2V0NDI4SW5kZXhgLFxuXTtcbmNvbnN0IFBFTkRJTkdfVFJBTlNBQ1RJT05TX1BBR0UgPSAnL29zaC9sZWdhY3kvbGVnYWN5LU9zaC1wNDIwJztcbmNvbnN0IFBFTkRJTkdfVFJBTlNBQ1RJT05TX0lGUkFNRSA9ICdwNDIwLmFzcHgnO1xuY29uc3QgQ0hBTkdFX1BBU1NXT1JEX1VSTCA9IC9odHRwczpcXC9cXC93d3dcXC5taXpyYWhpLXRlZmFob3RcXC5jb1xcLmlsXFwvbG9naW5cXC9cXHcrXFwvaW5kZXhcXC5odG1sI1xcL2NoYW5nZS1wYXNzLztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuY29uc3QgTUFYX1JPV1NfUEVSX1JFUVVFU1QgPSAxMDAwMDAwMDAwMDtcblxuY29uc3QgdXNlcm5hbWVTZWxlY3RvciA9ICcjZW1haWxEZXNrdG9wSGViJztcbmNvbnN0IHBhc3N3b3JkU2VsZWN0b3IgPSAnI3Bhc3N3b3JkSUREZXNrdG9wSEVCJztcbmNvbnN0IHN1Ym1pdEJ1dHRvblNlbGVjdG9yID0gJy5mb3JtLWRlc2t0b3AgYnV0dG9uJztcbmNvbnN0IGludmFsaWRQYXNzd29yZFNlbGVjdG9yID0gJ2FbaHJlZio9XCJodHRwczovL3NjLm1penJhaGktdGVmYWhvdC5jby5pbC9TQ1NlcnZpY2VzL1NDL1AwMTAuYXNweFwiXSc7XG5jb25zdCBhZnRlckxvZ2luU2VsZWN0b3IgPSAnI2Ryb3Bkb3duQmFzaWMnO1xuY29uc3QgbG9naW5TcGlubmVyU2VsZWN0b3IgPSAnZGl2Lm5neC1vdmVybGF5LmxvYWRpbmctZm9yZWdyb3VuZCc7XG5jb25zdCBhY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3IgPSAnI0FjY291bnRQaWNrZXIgLml0ZW0nO1xuY29uc3QgcGVuZGluZ1RyeElkZW50aWZpZXJJZCA9ICcjY3RsMDBfQ29udGVudFBsYWNlSG9sZGVyMl9wYW5lbDEnO1xuY29uc3QgY2hlY2tpbmdBY2NvdW50VGFiSGVicmV3TmFtZSA9ICfXoteV15HXqCDXldep15EnO1xuY29uc3QgY2hlY2tpbmdBY2NvdW50VGFiRW5nbGlzaE5hbWUgPSAnQ2hlY2tpbmcgQWNjb3VudCc7XG5cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogdXNlcm5hbWVTZWxlY3RvciwgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogcGFzc3dvcmRTZWxlY3RvciwgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHBhZ2U6IFBhZ2UpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIHJldHVybiB7XG4gICAgW0xvZ2luUmVzdWx0cy5TdWNjZXNzXTogW0FGVEVSX0xPR0lOX0JBU0VfVVJMLCBhc3luYyAoKSA9PiAhIShhd2FpdCBwYWdlLiR4KGAvL2EvL3NwYW5bY29udGFpbnMoLiwgXCIke2NoZWNraW5nQWNjb3VudFRhYkhlYnJld05hbWV9XCIpIG9yIGNvbnRhaW5zKC4sIFwiJHtjaGVja2luZ0FjY291bnRUYWJFbmdsaXNoTmFtZX1cIildYCkpXSxcbiAgICBbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF06IFthc3luYyAoKSA9PiAhIShhd2FpdCBwYWdlLiQoaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IpKV0sXG4gICAgW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF06IFtDSEFOR0VfUEFTU1dPUkRfVVJMXSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhcnRNb21lbnQob3B0aW9uc1N0YXJ0RGF0ZTogRGF0ZSkge1xuICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9uc1N0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIHJldHVybiBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEYXRhRnJvbVJlcXVlc3QocmVxdWVzdDogUmVxdWVzdCwgb3B0aW9uc1N0YXJ0RGF0ZTogRGF0ZSkge1xuICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShyZXF1ZXN0LnBvc3REYXRhKCkgfHwgJ3t9Jyk7XG5cbiAgZGF0YS5pbkZyb21EYXRlID0gZ2V0U3RhcnRNb21lbnQob3B0aW9uc1N0YXJ0RGF0ZSkuZm9ybWF0KERBVEVfRk9STUFUKTtcbiAgZGF0YS5pblRvRGF0ZSA9IG1vbWVudCgpLmZvcm1hdChEQVRFX0ZPUk1BVCk7XG4gIGRhdGEudGFibGUubWF4Um93ID0gTUFYX1JPV1NfUEVSX1JFUVVFU1Q7XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUhlYWRlcnNGcm9tUmVxdWVzdChyZXF1ZXN0OiBSZXF1ZXN0KSB7XG4gIHJldHVybiB7XG4gICAgbWl6cmFoaXhzcmZ0b2tlbjogcmVxdWVzdC5oZWFkZXJzKCkubWl6cmFoaXhzcmZ0b2tlbixcbiAgICAnQ29udGVudC1UeXBlJzogcmVxdWVzdC5oZWFkZXJzKClbJ2NvbnRlbnQtdHlwZSddLFxuICB9O1xufVxuXG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHR4bnMubWFwKChyb3cpID0+IHtcbiAgICBjb25zdCB0eG5EYXRlID0gbW9tZW50KHJvdy5NQzAyUGV1bGFUYWFFWiwgbW9tZW50LkhUTUw1X0ZNVC5EQVRFVElNRV9MT0NBTF9TRUNPTkRTKVxuICAgICAgLnRvSVNPU3RyaW5nKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiByb3cuTUMwMkFzbWFodGFNZWtvcml0RVogPyBwYXJzZUludChyb3cuTUMwMkFzbWFodGFNZWtvcml0RVosIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGRhdGU6IHR4bkRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5EYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIGRlc2NyaXB0aW9uOiByb3cuTUMwMlRudWFUZXVyRVosXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyhwYWdlOiBGcmFtZSk6IFByb21pc2U8VHJhbnNhY3Rpb25bXT4ge1xuICBjb25zdCBwZW5kaW5nVHhuID0gYXdhaXQgcGFnZUV2YWxBbGwocGFnZSwgJ3RyLnJnUm93JywgW10sICh0cnMpID0+IHtcbiAgICByZXR1cm4gdHJzLm1hcCgodHIpID0+IEFycmF5LmZyb20odHIucXVlcnlTZWxlY3RvckFsbCgndGQnKSwgKHRkOiBIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQpID0+IHRkLnRleHRDb250ZW50IHx8ICcnKSk7XG4gIH0pO1xuXG4gIHJldHVybiBwZW5kaW5nVHhuLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudCh0eG5bMF0sICdERC9NTS9ZWScpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgYW1vdW50ID0gcGFyc2VJbnQodHhuWzNdLCAxMCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgZGF0ZSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGRhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogYW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogYW1vdW50LFxuICAgICAgZGVzY3JpcHRpb246IHR4blsxXSxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwb3N0TG9naW4ocGFnZTogUGFnZSkge1xuICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBhZnRlckxvZ2luU2VsZWN0b3IpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBpbnZhbGlkUGFzc3dvcmRTZWxlY3RvciksXG4gICAgd2FpdEZvclVybChwYWdlLCBDSEFOR0VfUEFTU1dPUkRfVVJMKSxcbiAgXSk7XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcgfTtcblxuY2xhc3MgTWl6cmFoaVNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IExPR0lOX1VSTCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3IsXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4gd2FpdFVudGlsRWxlbWVudERpc2FwcGVhcih0aGlzLnBhZ2UsIGxvZ2luU3Bpbm5lclNlbGVjdG9yKSxcbiAgICAgIHBvc3RBY3Rpb246IGFzeW5jICgpID0+IHBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyh0aGlzLnBhZ2UpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKCcjZHJvcGRvd25CYXNpYywgLml0ZW0nLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG5cbiAgICBjb25zdCBudW1PZkFjY291bnRzID0gKGF3YWl0IHRoaXMucGFnZS4kJChhY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3IpKS5sZW5ndGg7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtT2ZBY2NvdW50czsgaSArPSAxKSB7XG4gICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbCgnI2Ryb3Bkb3duQmFzaWMsIC5pdGVtJywgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGAke2FjY291bnREcm9wRG93bkl0ZW1TZWxlY3Rvcn06bnRoLWNoaWxkKCR7aSArIDF9KWAsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbiAgICAgICAgcmVzdWx0cy5wdXNoKChhd2FpdCB0aGlzLmZldGNoQWNjb3VudCgpKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIGFjY291bnRzOiByZXN1bHRzLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmljLFxuICAgICAgICBlcnJvck1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmZXRjaEFjY291bnQoKSB7XG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGBhW2hyZWYqPVwiJHtPU0hfUEFHRX1cIl1gLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgYGFbaHJlZio9XCIke1RSQU5TQUNUSU9OU19QQUdFfVwiXWApO1xuICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbChgYVtocmVmKj1cIiR7VFJBTlNBQ1RJT05TX1BBR0V9XCJdYCwgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBQcm9taXNlLmFueShUUkFOU0FDVElPTlNfUkVRVUVTVF9VUkxTLm1hcChhc3luYyAodXJsKSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgdGhpcy5wYWdlLndhaXRGb3JSZXF1ZXN0KHVybCk7XG4gICAgICBjb25zdCBkYXRhID0gY3JlYXRlRGF0YUZyb21SZXF1ZXN0KHJlcXVlc3QsIHRoaXMub3B0aW9ucy5zdGFydERhdGUpO1xuICAgICAgY29uc3QgaGVhZGVycyA9IGNyZWF0ZUhlYWRlcnNGcm9tUmVxdWVzdChyZXF1ZXN0KTtcblxuICAgICAgcmV0dXJuIGZldGNoUG9zdFdpdGhpblBhZ2U8U2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdD4odGhpcy5wYWdlLCB1cmwsIGRhdGEsIGhlYWRlcnMpO1xuICAgIH0pKTtcblxuXG4gICAgaWYgKCFyZXNwb25zZSB8fCByZXNwb25zZS5oZWFkZXIuc3VjY2VzcyA9PT0gZmFsc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgZmV0Y2hpbmcgdHJhbnNhY3Rpb24uIFJlc3BvbnNlIG1lc3NhZ2U6ICR7cmVzcG9uc2UgPyByZXNwb25zZS5oZWFkZXIubWVzc2FnZXNbMF0udGV4dCA6ICcnfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGV2YW50Um93cyA9IHJlc3BvbnNlLmJvZHkudGFibGUucm93cy5maWx0ZXIoKHJvdykgPT4gcm93LlJlY1R5cGVTcGVjaWZpZWQpO1xuICAgIGNvbnN0IG9zaFR4biA9IGNvbnZlcnRUcmFuc2FjdGlvbnMocmVsZXZhbnRSb3dzKTtcblxuICAgIC8vIHdvcmthcm91bmQgZm9yIGEgYnVnIHdoaWNoIHRoZSBiYW5rJ3MgQVBJIHJldHVybnMgdHJhbnNhY3Rpb25zIGJlZm9yZSB0aGUgcmVxdWVzdGVkIHN0YXJ0IGRhdGVcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IGdldFN0YXJ0TW9tZW50KHRoaXMub3B0aW9ucy5zdGFydERhdGUpO1xuICAgIGNvbnN0IG9zaFR4bkFmdGVyU3RhcnREYXRlID0gb3NoVHhuLmZpbHRlcigodHhuKSA9PiBtb21lbnQodHhuLmRhdGUpLmlzU2FtZU9yQWZ0ZXIoc3RhcnRNb21lbnQpKTtcblxuICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbChgYVtocmVmKj1cIiR7UEVORElOR19UUkFOU0FDVElPTlNfUEFHRX1cIl1gLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG4gICAgY29uc3QgZnJhbWUgPSBhd2FpdCB3YWl0VW50aWxJZnJhbWVGb3VuZCh0aGlzLnBhZ2UsIChmKSA9PiBmLnVybCgpLmluY2x1ZGVzKFBFTkRJTkdfVFJBTlNBQ1RJT05TX0lGUkFNRSkpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChmcmFtZSwgcGVuZGluZ1RyeElkZW50aWZpZXJJZCk7XG4gICAgY29uc3QgcGVuZGluZ1R4biA9IGF3YWl0IGV4dHJhY3RQZW5kaW5nVHJhbnNhY3Rpb25zKGZyYW1lKTtcblxuICAgIGNvbnN0IGFsbFR4biA9IG9zaFR4bkFmdGVyU3RhcnREYXRlLmNvbmNhdChwZW5kaW5nVHhuKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50TnVtYmVyOiByZXNwb25zZS5ib2R5LmZpZWxkcy5BY2NvdW50TnVtYmVyLFxuICAgICAgdHhuczogYWxsVHhuLFxuICAgICAgYmFsYW5jZTogK3Jlc3BvbnNlLmJvZHkuZmllbGRzLllpdHJhTGVsb0NoZWtpbSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1penJhaGlTY3JhcGVyO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const GET_CUSTOMER = "\nquery GetCustomer {\n customer {\n __typename\n customerId\n userId\n idType\n idNumber\n hebrewFirstName\n hebrewLastName\n latinFirstName\n latinLastName\n dateOfBirth\n lastLoginDate\n userEmail\n gender\n portfolioRelations {\n __typename\n customerId\n customerRole\n portfolioId\n initiator\n relationToInitiator\n status\n }\n portfolios {\n __typename\n ...Portfolio\n }\n status\n }\n}\nfragment Portfolio on Portfolio {\n __typename\n accounts {\n __typename\n accountId\n accountType\n closingDate\n currency\n openingDate\n status\n subType\n }\n activationDate\n bank\n baseCurrency\n branch\n club\n clubDescription\n iban\n imageURL\n isJointAccount\n partnerName {\n __typename\n partnerFirstName\n partnerLastName\n }\n portfolioId\n portfolioNum\n portfolioType\n status\n subType\n onboardingCompleted\n}\n";
|
|
2
|
+
export declare const GET_MOVEMENTS = "query GetMovements(\n $portfolioId: String!\n $accountId: String!\n $pagination: PaginationInput!\n $language: BffLanguage!\n) {\n movements(\n portfolioId: $portfolioId\n accountId: $accountId\n pagination: $pagination\n language: $language\n ) {\n __typename\n ...MovementsFragment\n }\n}\nfragment TransactionInstrumentAmountFragment on TransactionInstrumentAmount {\n __typename\n instrumentAmount\n instrumentSymbol\n instrumentType\n}\nfragment CounterPartyReferenceFragment on CounterPartyReference {\n __typename\n bankId\n bic\n branchCode\n id\n name\n type\n}\nfragment BaseTransactionFragment on BaseTransaction {\n __typename\n accountId\n betweenOwnAccounts\n bookDate\n calculatedStatus\n chargeAmount {\n __typename\n ...TransactionInstrumentAmountFragment\n }\n clearingSystem\n counterParty {\n __typename\n ...CounterPartyReferenceFragment\n }\n currentPaymentNumber\n direction\n domainType\n isReversal\n method\n originalAmount {\n __typename\n ...TransactionInstrumentAmountFragment\n }\n portfolioId\n totalPaymentsCount\n transactionId\n transactionType\n valueDate\n}\nfragment CategoryFragment on Category {\n __typename\n categoryId\n dataSource\n subCategoryId\n}\nfragment RecurrenceFragment on Recurrence {\n __typename\n dataSource\n isRecurrent\n}\nfragment TransactionEnrichmentFragment on TransactionEnrichment {\n __typename\n categories {\n __typename\n ...CategoryFragment\n }\n recurrences {\n __typename\n ...RecurrenceFragment\n }\n}\nfragment TransactionEventMetadataFragment on TransactionEventMetadata {\n __typename\n correlationId\n processingOrder\n}\nfragment CounterPartyTransferData on CounterPartyTransfer {\n __typename\n accountId\n bank_id\n branch_code\n counter_party_name\n}\nfragment BankTransferDetailsData on BankTransferDetails {\n __typename\n ... on CashBlockTransfer {\n counterParty {\n __typename\n ...CounterPartyTransferData\n }\n transferDescriptionKey\n }\n ... on RTGSReturnTransfer {\n transferDescriptionKey\n }\n ... on RTGSTransfer {\n transferDescriptionKey\n }\n ... on SwiftReturnTransfer {\n transferConversionRate\n transferDescriptionKey\n }\n ... on SwiftTransfer {\n transferConversionRate\n transferDescriptionKey\n }\n ... on Transfer {\n counterParty {\n __typename\n ...CounterPartyTransferData\n }\n transferDescriptionKey\n }\n}\nfragment CategoryData on Category {\n __typename\n categoryId\n dataSource\n subCategoryId\n}\nfragment RecurrenceData on Recurrence {\n __typename\n dataSource\n isRecurrent\n}\nfragment CardDetailsData on CardDetails {\n __typename\n ... on CardCharge {\n book_date\n cardDescriptionKey\n }\n ... on CardChargeFCY {\n book_date\n cardConversionRate\n cardDescriptionKey\n cardFCYAmount\n cardFCYCurrency\n }\n ... on CardMonthlySettlement {\n cardDescriptionKey\n }\n ... on CardRefund {\n cardDescriptionKey\n }\n ... on CashBlockCardCharge {\n cardDescriptionKey\n }\n}\nfragment CashDetailsData on CashDetails {\n __typename\n ... on CashWithdrawal {\n cashDescriptionKey\n }\n ... on CashWithdrawalFCY {\n FCYAmount\n FCYCurrency\n cashDescriptionKey\n conversionRate\n }\n}\nfragment ChequesDetailsData on ChequesDetails {\n __typename\n ... on CashBlockChequeDeposit {\n bookDate\n chequesDescriptionKey\n }\n ... on ChequeDeposit {\n bookDate\n chequesDescriptionKey\n }\n ... on ChequeReturn {\n bookDate\n chequeReturnReason\n chequesDescriptionKey\n }\n ... on ChequeWithdrawal {\n chequesDescriptionKey\n }\n}\nfragment DefaultDetailsData on DefaultDetails {\n __typename\n ... on DefaultWithTransaction {\n defaultDescriptionKey\n }\n ... on DefaultWithoutTransaction {\n categories {\n __typename\n ...CategoryData\n }\n defaultDescriptionKey\n }\n}\nfragment FeeDetailsData on FeeDetails {\n __typename\n ... on GeneralFee {\n feeDescriptionKey\n }\n}\nfragment LoanDetailsData on LoanDetails {\n __typename\n ... on FullPrePayment {\n loanDescriptionKey\n }\n ... on Initiate {\n loanDescriptionKey\n }\n ... on MonthlyPayment {\n loanDescriptionKey\n loanPaymentNumber\n loanTotalPaymentsCount\n }\n ... on PartialPrePayment {\n loanDescriptionKey\n }\n}\nfragment MandateDetailsData on MandateDetails {\n __typename\n ... on MandatePayment {\n mandateDescriptionKey\n }\n ... on MandateReturnPayment {\n mandateDescriptionKey\n }\n}\nfragment SavingsDetailsData on SavingsDetails {\n __typename\n ... on FullSavingsWithdrawal {\n savingsDescriptionKey\n }\n ... on MonthlySavingsDeposit {\n savingsDepositNumber\n savingsDescriptionKey\n savingsTotalDepositCount\n }\n ... on PartialSavingsWithdrawal {\n savingsDescriptionKey\n }\n ... on SavingsClosing {\n savingsDescriptionKey\n }\n ... on SavingsDeposit {\n savingsDescriptionKey\n }\n ... on SavingsInterest {\n savingsDescriptionKey\n }\n ... on SavingsPenalty {\n savingsDescriptionKey\n }\n ... on SavingsTax {\n savingsDescriptionKey\n }\n}\nfragment SubscriptionDetailsData on SubscriptionDetails {\n __typename\n ... on SubscriptionPayment {\n subscriptionDescriptionKey\n }\n ... on SubscriptionReturnPayment {\n subscriptionDescriptionKey\n }\n}\nfragment TransactionsDetailsData on TransactionDetails {\n __typename\n ... on BankTransfer {\n bank_transfer_details {\n __typename\n ...BankTransferDetailsData\n }\n book_date\n categories {\n __typename\n ...CategoryData\n }\n recurrences {\n __typename\n ...RecurrenceData\n }\n value_date\n }\n ... on Card {\n card_details {\n __typename\n ...CardDetailsData\n }\n categories {\n __typename\n ...CategoryData\n }\n recurrences {\n __typename\n ...RecurrenceData\n }\n value_date\n }\n ... on Cash {\n cash_details {\n __typename\n ...CashDetailsData\n }\n categories {\n __typename\n ...CategoryData\n }\n recurrences {\n __typename\n ...RecurrenceData\n }\n value_date\n }\n ... on Cheques {\n categories {\n __typename\n ...CategoryData\n }\n chequesDetails {\n __typename\n ...ChequesDetailsData\n }\n recurrences {\n __typename\n ...RecurrenceData\n }\n valueDate\n referenceNumber\n frontImageUrl\n backImageUrl\n }\n ... on Default {\n default_details {\n __typename\n ...DefaultDetailsData\n }\n recurrences {\n __typename\n ...RecurrenceData\n }\n value_date\n }\n ... on Fee {\n categories {\n __typename\n ...CategoryData\n }\n fee_details {\n __typename\n ...FeeDetailsData\n }\n value_date\n }\n ... on Loans {\n categories {\n __typename\n ...CategoryData\n }\n loan_details {\n __typename\n ...LoanDetailsData\n }\n recurrences {\n __typename\n ...RecurrenceData\n }\n value_date\n }\n ... on Mandate {\n categories {\n __typename\n ...CategoryData\n }\n mandate_details {\n __typename\n ...MandateDetailsData\n }\n recurrences {\n __typename\n ...RecurrenceData\n }\n value_date\n }\n ... on Savings {\n categories {\n __typename\n ...CategoryData\n }\n recurrences {\n __typename\n ...RecurrenceData\n }\n savings_details {\n __typename\n ...SavingsDetailsData\n }\n value_date\n }\n ... on SubscriptionTransaction {\n categories {\n __typename\n ...CategoryData\n }\n recurrences {\n __typename\n ...RecurrenceData\n }\n subscription_details {\n __typename\n ...SubscriptionDetailsData\n }\n value_date\n }\n}\nfragment TransactionFragment on Transaction {\n __typename\n baseTransaction {\n __typename\n ...BaseTransactionFragment\n }\n enrichment {\n __typename\n ...TransactionEnrichmentFragment\n }\n metadata {\n __typename\n ...TransactionEventMetadataFragment\n }\n referenceNumber\n transactionDetails {\n __typename\n ...TransactionsDetailsData\n }\n}\nfragment MovementFragment on Movement {\n __typename\n accountId\n bankCurrencyAmount\n bookingDate\n conversionRate\n creditDebit\n description\n isReversed\n linkTransaction {\n __typename\n ...TransactionFragment\n }\n movementAmount\n movementCurrency\n movementId\n movementReversedId\n movementTimestamp\n movementType\n portfolioId\n runningBalance\n transaction {\n __typename\n ...TransactionFragment\n }\n valueDate\n}\nfragment PaginationFragment on Pagination {\n __typename\n cursor\n hasMore\n}\nfragment MovementsFragment on Movements {\n __typename\n isRunningBalanceInSync\n movements {\n __typename\n ...MovementFragment\n }\n pagination {\n __typename\n ...PaginationFragment\n }\n}";
|