taxtank-core 0.30.67 → 0.30.69

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.
Files changed (139) hide show
  1. package/esm2020/lib/forms/sole/sole-invoice-item.form.mjs +7 -1
  2. package/esm2020/lib/interceptors/basiq-client-id.interceptor.mjs +3 -3
  3. package/esm2020/lib/interceptors/basiq-token.interceptor.mjs +3 -3
  4. package/esm2020/lib/interceptors/corelogic-interceptor.mjs +3 -3
  5. package/esm2020/lib/interceptors/financial-year-interceptor.mjs +3 -3
  6. package/esm2020/lib/interceptors/interceptors.module.mjs +4 -4
  7. package/esm2020/lib/interceptors/jwt-interceptor.mjs +3 -3
  8. package/esm2020/lib/interceptors/preloader.interceptor.mjs +3 -3
  9. package/esm2020/lib/interceptors/user-switcher-interceptor.mjs +3 -3
  10. package/esm2020/lib/models/bank/bank-connection.mjs +1 -1
  11. package/esm2020/lib/models/bank/basiq/basiq-job-response.mjs +4 -1
  12. package/esm2020/lib/models/bank/basiq/basiq-job-step.mjs +7 -1
  13. package/esm2020/lib/models/event/app-event-type.enum.mjs +61 -60
  14. package/esm2020/lib/models/sole/sole-invoice-item.mjs +3 -3
  15. package/esm2020/lib/models/sole/sole-invoice.mjs +1 -1
  16. package/esm2020/lib/services/account-setup/account-setup.service.mjs +17 -5
  17. package/esm2020/lib/services/affiliate/rewardful/rewardful.service.mjs +3 -3
  18. package/esm2020/lib/services/asset/assets.service.mjs +3 -3
  19. package/esm2020/lib/services/auth/auth.service.mjs +3 -3
  20. package/esm2020/lib/services/auth/jwt.service.mjs +3 -3
  21. package/esm2020/lib/services/bank/bank-account-calculation.service.mjs +3 -3
  22. package/esm2020/lib/services/bank/bank-transaction-calculation.service.mjs +3 -3
  23. package/esm2020/lib/services/data.service.mjs +3 -3
  24. package/esm2020/lib/services/event/event-dispatcher.service.mjs +3 -3
  25. package/esm2020/lib/services/event/sse.service.mjs +3 -3
  26. package/esm2020/lib/services/export/export-formatter.service.mjs +3 -3
  27. package/esm2020/lib/services/header-title/header-title.service.mjs +3 -3
  28. package/esm2020/lib/services/http/address/address.service.mjs +3 -3
  29. package/esm2020/lib/services/http/bank/bank-account/bank-account.service.mjs +3 -3
  30. package/esm2020/lib/services/http/bank/bank-connection/bank-connection.service.mjs +5 -22
  31. package/esm2020/lib/services/http/bank/bank-transaction/bank-transaction.service.mjs +3 -3
  32. package/esm2020/lib/services/http/bank/bank.service.mjs +3 -3
  33. package/esm2020/lib/services/http/bank/basiq/basiq-token.service.mjs +7 -5
  34. package/esm2020/lib/services/http/bank/basiq/basiq.service.mjs +61 -53
  35. package/esm2020/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.mjs +3 -3
  36. package/esm2020/lib/services/http/chart-accounts/chart-accounts.service.mjs +3 -3
  37. package/esm2020/lib/services/http/chat/chat.service.mjs +3 -3
  38. package/esm2020/lib/services/http/chat/message-document.service.mjs +3 -3
  39. package/esm2020/lib/services/http/chat/message.service.mjs +3 -3
  40. package/esm2020/lib/services/http/client/capital-gain/annual-client-details.service.mjs +3 -3
  41. package/esm2020/lib/services/http/client/occupation/occupation.service.mjs +3 -3
  42. package/esm2020/lib/services/http/depreciation/depreciation-capital-project/depreciation-capital-project.service.mjs +3 -3
  43. package/esm2020/lib/services/http/depreciation/depreciation-receipt/depreciation-receipt.service.mjs +3 -3
  44. package/esm2020/lib/services/http/depreciation/depreciation.service.mjs +3 -3
  45. package/esm2020/lib/services/http/document/document-folder/document-folder.service.mjs +3 -3
  46. package/esm2020/lib/services/http/document/document.service.mjs +3 -3
  47. package/esm2020/lib/services/http/facebook/facebook.service.mjs +3 -3
  48. package/esm2020/lib/services/http/file/file.service.mjs +3 -3
  49. package/esm2020/lib/services/http/firm/client-income/client-income-types.service.mjs +3 -3
  50. package/esm2020/lib/services/http/firm/client-invite/client-invite.service.mjs +3 -3
  51. package/esm2020/lib/services/http/firm/client-movement/client-movement.service.mjs +3 -3
  52. package/esm2020/lib/services/http/firm/employee/employee.service.mjs +3 -3
  53. package/esm2020/lib/services/http/firm/employee-invite/employee-invite.service.mjs +3 -3
  54. package/esm2020/lib/services/http/firm/firm.service.mjs +3 -3
  55. package/esm2020/lib/services/http/firm/portfolio-report/client-portfolio-report.service.mjs +3 -3
  56. package/esm2020/lib/services/http/google/google.service.mjs +3 -3
  57. package/esm2020/lib/services/http/holding/holding-sale.service.mjs +3 -3
  58. package/esm2020/lib/services/http/holding/holding-type.service.mjs +3 -3
  59. package/esm2020/lib/services/http/holding/holding.service.mjs +3 -3
  60. package/esm2020/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.mjs +3 -3
  61. package/esm2020/lib/services/http/income-source/income-source.service.mjs +3 -3
  62. package/esm2020/lib/services/http/income-source/salary-forecast/salary-forecast.service.mjs +3 -3
  63. package/esm2020/lib/services/http/income-source/sole-forecast/sole-forecast.service.mjs +3 -3
  64. package/esm2020/lib/services/http/loan/borrowing-expense/borrowing-expense.service.mjs +3 -3
  65. package/esm2020/lib/services/http/loan/loan.service.mjs +3 -3
  66. package/esm2020/lib/services/http/property/property-category/property-category.service.mjs +3 -3
  67. package/esm2020/lib/services/http/property/property-category-movement/property-category-movement.service.mjs +3 -3
  68. package/esm2020/lib/services/http/property/property-document/property-document.service.mjs +3 -3
  69. package/esm2020/lib/services/http/property/property-sale/property-sale.service.mjs +3 -3
  70. package/esm2020/lib/services/http/property/property-share/property-share.service.mjs +3 -3
  71. package/esm2020/lib/services/http/property/property.service.mjs +3 -3
  72. package/esm2020/lib/services/http/receipt/receipt.service.mjs +3 -3
  73. package/esm2020/lib/services/http/rest/rest-old.service.mjs +3 -3
  74. package/esm2020/lib/services/http/rest/rest.service.mjs +8 -6
  75. package/esm2020/lib/services/http/service-notification/service-notification.service.mjs +3 -3
  76. package/esm2020/lib/services/http/sole/bas-report/bas-report.service.mjs +3 -3
  77. package/esm2020/lib/services/http/sole/sole-business/sole-business.service.mjs +3 -3
  78. package/esm2020/lib/services/http/sole/sole-business-activity/sole-business-activity.service.mjs +3 -3
  79. package/esm2020/lib/services/http/sole/sole-business-loss/sole-business-loss-rules/sole-business-loss-offset-rule.service.mjs +3 -3
  80. package/esm2020/lib/services/http/sole/sole-business-loss/sole-business-loss.service.mjs +3 -3
  81. package/esm2020/lib/services/http/sole/sole-contact/sole-contact.service.mjs +3 -3
  82. package/esm2020/lib/services/http/sole/sole-depreciation-method/sole-depreciation-method.service.mjs +3 -3
  83. package/esm2020/lib/services/http/sole/sole-details/sole-details.service.mjs +3 -3
  84. package/esm2020/lib/services/http/sole/sole-invoice/sole-invoice.service.mjs +3 -3
  85. package/esm2020/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.mjs +3 -3
  86. package/esm2020/lib/services/http/subscription/service-payment/service-payment.service.mjs +3 -3
  87. package/esm2020/lib/services/http/subscription/service-payment-method/service-payment-method.service.mjs +3 -3
  88. package/esm2020/lib/services/http/subscription/service-price/service-price.service.mjs +3 -3
  89. package/esm2020/lib/services/http/subscription/service-product/service-product.service.mjs +3 -3
  90. package/esm2020/lib/services/http/subscription/service-subscription/subscription.service.mjs +3 -3
  91. package/esm2020/lib/services/http/tax-review/tax-review-history/tax-review-history.service.mjs +3 -3
  92. package/esm2020/lib/services/http/tax-review/tax-review.service.mjs +3 -3
  93. package/esm2020/lib/services/http/tax-summary/tax-summary.service.mjs +3 -3
  94. package/esm2020/lib/services/http/transaction/transaction-allocation/allocation-rule/allocation-rule.service.mjs +3 -3
  95. package/esm2020/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.mjs +3 -3
  96. package/esm2020/lib/services/http/transaction/transaction-receipt/transaction-receipt.service.mjs +3 -3
  97. package/esm2020/lib/services/http/transaction/transaction.service.mjs +3 -3
  98. package/esm2020/lib/services/http/tutorial-video/tutorial-video.service.mjs +3 -3
  99. package/esm2020/lib/services/http/user/user-event-setting/user-event-setting.service.mjs +3 -3
  100. package/esm2020/lib/services/http/user/user-event-type/user-event-type.service.mjs +3 -3
  101. package/esm2020/lib/services/http/user/user.service.mjs +11 -4
  102. package/esm2020/lib/services/http/user/users-invite/users-invite.service.mjs +3 -3
  103. package/esm2020/lib/services/http/vehicle/vehicle-claim-details.service.mjs +3 -3
  104. package/esm2020/lib/services/http/vehicle/vehicle-claim.service.mjs +3 -3
  105. package/esm2020/lib/services/http/vehicle/vehicle-logbook.service.mjs +3 -3
  106. package/esm2020/lib/services/http/vehicle/vehicle.service.mjs +3 -3
  107. package/esm2020/lib/services/intercom/intercom.service.mjs +3 -3
  108. package/esm2020/lib/services/json/holding/holding-type-exchange.service.mjs +3 -3
  109. package/esm2020/lib/services/json/income-source/income-source-type.service.mjs +3 -3
  110. package/esm2020/lib/services/json/tax-exemption/tax-exemption.service.mjs +3 -3
  111. package/esm2020/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.mjs +3 -3
  112. package/esm2020/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.mjs +3 -3
  113. package/esm2020/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.mjs +3 -3
  114. package/esm2020/lib/services/pdf/pdf-from-table/pdf-from-table.service.mjs +3 -3
  115. package/esm2020/lib/services/preloader/preloader.service.mjs +3 -3
  116. package/esm2020/lib/services/property/corelogic/corelogic.service.mjs +3 -3
  117. package/esm2020/lib/services/property/equity-position-chart/equity-position-chart.service.mjs +3 -3
  118. package/esm2020/lib/services/property/property-calculation/property-calculation.service.mjs +3 -3
  119. package/esm2020/lib/services/report/property/property-transaction-report.service.mjs +3 -3
  120. package/esm2020/lib/services/toast/toast.service.mjs +3 -3
  121. package/esm2020/lib/services/transaction/transaction-calculation.service.mjs +3 -3
  122. package/esm2020/lib/services/user/user-switcher.service.mjs +3 -3
  123. package/esm2020/lib/services/vehicle/logbook-best-period.service.mjs +3 -3
  124. package/esm2020/lib/services/xlsx/xlsx.service.mjs +3 -3
  125. package/esm2020/lib/tt-core.module.mjs +4 -4
  126. package/fesm2015/taxtank-core.mjs +514 -485
  127. package/fesm2015/taxtank-core.mjs.map +1 -1
  128. package/fesm2020/taxtank-core.mjs +514 -485
  129. package/fesm2020/taxtank-core.mjs.map +1 -1
  130. package/lib/models/bank/basiq/basiq-job-response.d.ts +1 -0
  131. package/lib/models/bank/basiq/basiq-job-step.d.ts +2 -0
  132. package/lib/models/event/app-event-type.enum.d.ts +60 -59
  133. package/lib/models/sole/sole-invoice-item.d.ts +2 -2
  134. package/lib/services/account-setup/account-setup.service.d.ts +4 -0
  135. package/lib/services/http/bank/bank-connection/bank-connection.service.d.ts +0 -4
  136. package/lib/services/http/bank/basiq/basiq.service.d.ts +35 -20
  137. package/lib/services/http/rest/rest.service.d.ts +4 -0
  138. package/lib/services/http/user/user.service.d.ts +4 -0
  139. package/package.json +1 -1
@@ -8,6 +8,7 @@ import { map, mergeMap } from 'rxjs/operators';
8
8
  import { AccountSetupItemCollection } from '../../collections/account-setup-item.collection';
9
9
  import fromPairs from 'lodash/fromPairs';
10
10
  import cloneDeep from 'lodash/cloneDeep';
11
+ import intersection from 'lodash/intersection';
11
12
  import { plainToClass } from 'class-transformer';
12
13
  import { TransactionCollection } from '../../collections/transaction/transaction.collection';
13
14
  import { UserRolesEnum } from '../../db/Enums/user-roles.enum';
@@ -109,7 +110,7 @@ export class AccountSetupService {
109
110
  }
110
111
  if (incomeTypes.sole || incomeTypes.property || incomeTypes.work || incomeTypes.holdings) {
111
112
  // Bank feeds item is completed when user added at least one bank account (basiq or manual)
112
- batch.push(this.create(AccountSetupItemsEnum.BANK_FEEDS, this.bankAccountsService.getArray()));
113
+ batch.push(this.getBankFeedsItem());
113
114
  // Logbook item is completed when user has at least one vehicle claim with any method (kms or logbook)
114
115
  batch.push(this.getLogbookItem());
115
116
  // Allocation item is completed when user added at least one transaction allocation
@@ -144,13 +145,24 @@ export class AccountSetupService {
144
145
  return of(null);
145
146
  }));
146
147
  }
148
+ /**
149
+ * Show bank feeds item when user has only holding tank
150
+ */
151
+ getBankFeedsItem() {
152
+ const userRoles = this.userService.getCache().roles;
153
+ const bankFeedsRoles = [UserRolesEnum.PROPERTY_TANK, UserRolesEnum.WORK_TANK, UserRolesEnum.SOLE_TANK];
154
+ if (!intersection(bankFeedsRoles, userRoles).length) {
155
+ return of(null);
156
+ }
157
+ return this.create(AccountSetupItemsEnum.BANK_FEEDS, this.bankAccountsService.getArray());
158
+ }
147
159
  }
148
- AccountSetupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AccountSetupService, deps: [{ token: i1.ClientIncomeTypesService }, { token: i2.PropertyService }, { token: i3.IncomeSourceService }, { token: i4.BankAccountService }, { token: i5.TransactionAllocationService }, { token: i6.VehicleClaimService }, { token: i7.TransactionService }, { token: i8.SoleBusinessService }, { token: i8.HoldingService }, { token: i8.UserService }], target: i0.ɵɵFactoryTarget.Injectable });
149
- AccountSetupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AccountSetupService, providedIn: 'root' });
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AccountSetupService, decorators: [{
160
+ AccountSetupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AccountSetupService, deps: [{ token: i1.ClientIncomeTypesService }, { token: i2.PropertyService }, { token: i3.IncomeSourceService }, { token: i4.BankAccountService }, { token: i5.TransactionAllocationService }, { token: i6.VehicleClaimService }, { token: i7.TransactionService }, { token: i8.SoleBusinessService }, { token: i8.HoldingService }, { token: i8.UserService }], target: i0.ɵɵFactoryTarget.Injectable });
161
+ AccountSetupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AccountSetupService, providedIn: 'root' });
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AccountSetupService, decorators: [{
151
163
  type: Injectable,
152
164
  args: [{
153
165
  providedIn: 'root'
154
166
  }]
155
167
  }], ctorParameters: function () { return [{ type: i1.ClientIncomeTypesService }, { type: i2.PropertyService }, { type: i3.IncomeSourceService }, { type: i4.BankAccountService }, { type: i5.TransactionAllocationService }, { type: i6.VehicleClaimService }, { type: i7.TransactionService }, { type: i8.SoleBusinessService }, { type: i8.HoldingService }, { type: i8.UserService }]; } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZXR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFFekYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFFMUYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHMUUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFJbEYsT0FBTyxFQUFDLGFBQWEsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFFM0YsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRy9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBRTNGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7OztBQUU3RDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBSzlCLFlBQ1Usd0JBQWtELEVBQ2xELGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxtQkFBdUMsRUFDdkMsNEJBQTBELEVBQzFELG1CQUF3QyxFQUN4Qyxr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QUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQy9CO1lBRUQsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQy9GLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRTthQUNqQyxJQUFJO1FBQ0gsbUVBQW1FO1FBQ25FLEdBQUcsQ0FBQyxDQUFDLFlBQTJCLEVBQUUsRUFBRSxDQUFDLElBQUkscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUMsRUFDN0UsUUFBUSxDQUFDLENBQUMsWUFBbUMsRUFBRSxFQUFFO1lBQy9DLElBQUksWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUMsTUFBTSxFQUFFO2dCQUNoRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2FBQ3hGO1lBRUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7O2dIQWxLVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBQ0NPVU5UX1NFVFVQX0lURU1TfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW1zLmNvbnN0JztcbmltcG9ydCB7QWNjb3VudFNldHVwSXRlbX0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC1pdGVtJztcbmltcG9ydCB7QWNjb3VudFNldHVwSXRlbXNFbnVtfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjb3VudC1zZXR1cC9hY2NvdW50LXNldHVwLWl0ZW1zLmVudW0nO1xuaW1wb3J0IHtCYW5rQWNjb3VudFNlcnZpY2V9IGZyb20gJy4uL2h0dHAvYmFuay9iYW5rLWFjY291bnQvYmFuay1hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHtDbGllbnRJbmNvbWVUeXBlc30gZnJvbSAnLi4vLi4vbW9kZWxzL2NsaWVudC9jbGllbnQtaW5jb21lLXR5cGVzJztcbmltcG9ydCB7Q2xpZW50SW5jb21lVHlwZXNTZXJ2aWNlfSBmcm9tICcuLi9odHRwL2Zpcm0vY2xpZW50LWluY29tZS9jbGllbnQtaW5jb21lLXR5cGVzLnNlcnZpY2UnO1xuaW1wb3J0IHtJbmNvbWVTb3VyY2V9IGZyb20gJy4uLy4uL21vZGVscy9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHtJbmNvbWVTb3VyY2VDb2xsZWN0aW9ufSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9pbmNvbWUtc291cmNlLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHtJbmNvbWVTb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi9odHRwL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7UHJvcGVydHlTZXJ2aWNlfSBmcm9tICcuLi9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UnO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkFsbG9jYXRpb25TZXJ2aWNlfSBmcm9tICcuLi9odHRwL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIG1lcmdlTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0FjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9ufSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9hY2NvdW50LXNldHVwLWl0ZW0uY29sbGVjdGlvbic7XG5pbXBvcnQge1ZlaGljbGVDbGFpbVNlcnZpY2V9IGZyb20gJy4uL2h0dHAvdmVoaWNsZS92ZWhpY2xlLWNsYWltLnNlcnZpY2UnO1xuaW1wb3J0IGZyb21QYWlycyBmcm9tICdsb2Rhc2gvZnJvbVBhaXJzJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5pbXBvcnQge3BsYWluVG9DbGFzc30gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uL2h0dHAvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1RyYW5zYWN0aW9ufSBmcm9tICcuLi8uLi9tb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkNvbGxlY3Rpb259IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHtIb2xkaW5nU2VydmljZSwgU29sZUJ1c2luZXNzU2VydmljZSwgVXNlclNlcnZpY2V9IGZyb20gJy4uL2h0dHAnO1xuaW1wb3J0IHtVc2VyUm9sZXNFbnVtfSBmcm9tICcuLi8uLi9kYi9FbnVtcy91c2VyLXJvbGVzLmVudW0nO1xuXG4vKipcbiAqIFNlcnZpY2UgaGFuZGxpbmcgdXNlcidzIGFjY291bnQgc2V0dXAgcHJvY2Vzcy5cbiAqIENoZWNrcyByZXF1aXJlZCBzdGVwcyBhbmQgdGhlaXIgY29tcGxldGlvblxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50U2V0dXBTZXJ2aWNlIHtcbiAgY2FjaGU6IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uO1xuICBjYWNoZVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8QWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24+ID0gbmV3IFJlcGxheVN1YmplY3Q8QWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24+KDEpO1xuICBjbGllbnRJbmNvbWVUeXBlc0lkOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjbGllbnRJbmNvbWVUeXBlc1NlcnZpY2U6IENsaWVudEluY29tZVR5cGVzU2VydmljZSxcbiAgICBwcml2YXRlIHByb3BlcnR5U2VydmljZTogUHJvcGVydHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5jb21lU291cmNlU2VydmljZTogSW5jb21lU291cmNlU2VydmljZSxcbiAgICBwcml2YXRlIGJhbmtBY2NvdW50c1NlcnZpY2U6IEJhbmtBY2NvdW50U2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zYWN0aW9uQWxsb2NhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uQWxsb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB2ZWhpY2xlQ2xhaW1TZXJ2aWNlOiBWZWhpY2xlQ2xhaW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzb2xlQnVzaW5lc3NTZXJ2aWNlOiBTb2xlQnVzaW5lc3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgaG9sZGluZ1NlcnZpY2U6IEhvbGRpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBhY2NvdW50IHNldHVwIGl0ZW1zIGZvciBjdXJyZW50IHVzZXJcbiAgICovXG4gIGdldCgpOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPiB7XG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICB0aGlzLmNhY2hlID0gbmV3IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uKFtdKTtcblxuICAgICAgdGhpcy5jbGllbnRJbmNvbWVUeXBlc1NlcnZpY2UuZ2V0U2luZ2xlKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKGluY29tZVR5cGVzOiBDbGllbnRJbmNvbWVUeXBlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbGllbnRJbmNvbWVUeXBlc0lkID0gaW5jb21lVHlwZXMuaWQ7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJhdGNoKGluY29tZVR5cGVzKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGl0ZW1zOiBBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbikgPT4ge1xuICAgICAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgY2FzZSAhdGhpcy5jYWNoZTpcbiAgICAgICAgICAgIGNhc2UgdGhpcy5jYWNoZS5maWx0ZXJCeSgnaXNDb21wbGV0ZWQnLCB0cnVlKS5sZW5ndGggIT09IGl0ZW1zLmZpbHRlckJ5KCdpc0NvbXBsZXRlZCcsIHRydWUpLmxlbmd0aDpcbiAgICAgICAgICAgIGNhc2UgdGhpcy5jYWNoZS5sZW5ndGggIT09IGl0ZW1zLmxlbmd0aDpcbiAgICAgICAgICAgICAgdGhpcy5jYWNoZSA9IGNsb25lRGVlcChpdGVtcyk7XG4gICAgICAgICAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZSBjbGllbnQgaW5jb21lIHR5cGVzIHRvIHVwZGF0ZSB0byBoaWRlIGRlcGVuZGVkIGFjY291bnQgc2V0dXAgaXRlbXNcbiAgICovXG4gIHByZXBhcmVJbmNvbWVUeXBlcyhpdGVtOiBBY2NvdW50U2V0dXBJdGVtKTogQ2xpZW50SW5jb21lVHlwZXMge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3MoXG4gICAgICBDbGllbnRJbmNvbWVUeXBlcyxcbiAgICAgIE9iamVjdC5hc3NpZ24oe2lkOiB0aGlzLmNsaWVudEluY29tZVR5cGVzSWR9LCBmcm9tUGFpcnMoaXRlbS5jbGllbnRJbmNvbWVUeXBlcy5tYXAoKHR5cGU6IHN0cmluZykgPT4gW3R5cGUsIGZhbHNlXSkpKVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzaW5nbGUgQWNjb3VudFNldHVwSXRlbSBhbmQgY2hlY2sgaXQncyBjb21wbGV0aW9uXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZShpdGVtVHlwZTogQWNjb3VudFNldHVwSXRlbXNFbnVtLCByZXF1ZXN0OiBPYnNlcnZhYmxlPG9iamVjdFtdPik6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbT4ge1xuICAgIHJldHVybiByZXF1ZXN0LnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDogb2JqZWN0W10pOiBBY2NvdW50U2V0dXBJdGVtID0+IHtcbiAgICAgICAgY29uc3QgaXRlbTogQWNjb3VudFNldHVwSXRlbSA9IEFDQ09VTlRfU0VUVVBfSVRFTVNbaXRlbVR5cGVdO1xuXG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgICAgaXRlbS5pc0NvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbS5pc0NvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGJhdGNoIG9mIHJlcXVlc3RzIHRvIGdldCBsaXN0IG9mIHJlcXVpcmVkIEFjY291bnRTZXR1cEl0ZW0ncy5cbiAgICogU29tZSBpdGVtcyBhcmUgb3B0aW9uYWwgYW5kIGRlcGVuZHMgb2YgdXNlcidzIGNsaWVudCBpbmNvbWUgdHlwZXNcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQmF0Y2goaW5jb21lVHlwZXM6IENsaWVudEluY29tZVR5cGVzKTogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbj4ge1xuICAgIGNvbnN0IGJhdGNoOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW0+W10gPSBbXTtcbiAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyU2VydmljZS5nZXRDYWNoZSgpO1xuXG4gICAgLy8gU2FsYXJ5IGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBzYWxhcnkgaW5jb21lIHNvdXJjZVxuICAgIGlmIChpbmNvbWVUeXBlcy53b3JrICYmIHVzZXIuaGFzUm9sZXMoVXNlclJvbGVzRW51bS5XT1JLX1RBTkspKSB7XG4gICAgICBiYXRjaC5wdXNoKFxuICAgICAgICB0aGlzLmNyZWF0ZShcbiAgICAgICAgICBBY2NvdW50U2V0dXBJdGVtc0VudW0uU0FMQVJZLFxuICAgICAgICAgIHRoaXMuZ2V0SW5jb21lU291cmNlcyh0cnVlKVxuICAgICAgICApLFxuICAgICAgICAvLyBPdGhlciBpbmNvbWUgaXMgYSBwYXJ0IG9mIHdvcmsgdGFuaywgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgb3RoZXIgaW5jb21lIHNvdXJjZVxuICAgICAgICB0aGlzLmNyZWF0ZShcbiAgICAgICAgICBBY2NvdW50U2V0dXBJdGVtc0VudW0uT1RIRVJfSU5DT01FLFxuICAgICAgICAgIHRoaXMuZ2V0SW5jb21lU291cmNlcygpXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUmVudGFsIGluY29tZSBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgYXQgbGVhc3Qgb25lIHByb3BlcnR5XG4gICAgaWYgKGluY29tZVR5cGVzLnByb3BlcnR5ICYmIHVzZXIuaGFzUm9sZXMoVXNlclJvbGVzRW51bS5QUk9QRVJUWV9UQU5LKSkge1xuICAgICAgYmF0Y2gucHVzaCh0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uUFJPUEVSVFksIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldEFycmF5KCkpKTtcbiAgICB9XG5cbiAgICAvLyBTb2xlIGJ1c2luZXNzIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgYnVzaW5lc3NcbiAgICBpZiAoaW5jb21lVHlwZXMuc29sZSAmJiB1c2VyLmhhc1JvbGVzKFVzZXJSb2xlc0VudW0uU09MRV9UQU5LKSkge1xuICAgICAgYmF0Y2gucHVzaCh0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uU09MRV9CVVNJTkVTUywgdGhpcy5zb2xlQnVzaW5lc3NTZXJ2aWNlLmdldCgpKSk7XG4gICAgfVxuXG4gICAgLy8gaG9sZGluZ3MgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBob2xkaW5nXG4gICAgaWYgKGluY29tZVR5cGVzLmhvbGRpbmdzICAmJiB1c2VyLmhhc1JvbGVzKFVzZXJSb2xlc0VudW0uSE9MRElOR19UQU5LKSkge1xuICAgICAgYmF0Y2gucHVzaCh0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uSE9MRElOR1MsIHRoaXMuaG9sZGluZ1NlcnZpY2UuZ2V0QXJyYXkoKSkpO1xuICAgIH1cblxuICAgIGlmIChpbmNvbWVUeXBlcy5zb2xlIHx8IGluY29tZVR5cGVzLnByb3BlcnR5IHx8IGluY29tZVR5cGVzLndvcmsgfHwgaW5jb21lVHlwZXMuaG9sZGluZ3MpIHtcbiAgICAgIC8vIEJhbmsgZmVlZHMgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBiYW5rIGFjY291bnQgKGJhc2lxIG9yIG1hbnVhbClcbiAgICAgIGJhdGNoLnB1c2godGhpcy5jcmVhdGUoQWNjb3VudFNldHVwSXRlbXNFbnVtLkJBTktfRkVFRFMsIHRoaXMuYmFua0FjY291bnRzU2VydmljZS5nZXRBcnJheSgpKSk7XG5cbiAgICAgIC8vIExvZ2Jvb2sgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGhhcyBhdCBsZWFzdCBvbmUgdmVoaWNsZSBjbGFpbSB3aXRoIGFueSBtZXRob2QgKGttcyBvciBsb2dib29rKVxuICAgICAgYmF0Y2gucHVzaCh0aGlzLmdldExvZ2Jvb2tJdGVtKCkpO1xuXG4gICAgICAvLyBBbGxvY2F0aW9uIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgdHJhbnNhY3Rpb24gYWxsb2NhdGlvblxuICAgICAgYmF0Y2gucHVzaCh0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uVFJBTlNBQ1RJT04sIHRoaXMudHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZS5nZXQoKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KGJhdGNoKS5waXBlKG1hcCgoaXRlbXM6IEFjY291bnRTZXR1cEl0ZW1bXSkgPT4gbmV3IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uKGl0ZW1zKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIEFsZXg6IHdvcmsgd2l0aCBjb2xsZWN0aW9uIHdoZW4gc2VydmljZXMgcmVmYWN0b3JlZFxuICAgKiBAVE9ETyBWaWs6IHdhaXRpbmcgZm9yIGluY29tZSBzb3VyY2VzIHJlZmFjdG9yaW5nXG4gICAqL1xuICBwcml2YXRlIGdldEluY29tZVNvdXJjZXMoaXNTYWxhcnkgPSBmYWxzZSk6IE9ic2VydmFibGU8SW5jb21lU291cmNlW10+IHtcbiAgICByZXR1cm4gdGhpcy5pbmNvbWVTb3VyY2VTZXJ2aWNlLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKGluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdKTogSW5jb21lU291cmNlW10gPT4ge1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9uOiBJbmNvbWVTb3VyY2VDb2xsZWN0aW9uID0gbmV3IEluY29tZVNvdXJjZUNvbGxlY3Rpb24oaW5jb21lU291cmNlcyk7XG4gICAgICAgIGlmIChpc1NhbGFyeSkge1xuICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uLmdldFNhbGFyeSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb24uaXRlbXMuZmlsdGVyKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSkgPT4gaW5jb21lU291cmNlLmlzT3RoZXJJbmNvbWUoKSk7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IGxvZ2Jvb2sgaXRlbSB3aGVuIHVzZXIgaGFzIGF0IGxlYXN0IDEgdmVoaWNsZSB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRMb2dib29rSXRlbSgpOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBAVE9ETyBBbGV4OiByZW1vdmUgbWFwIHdoZW4gc2VydmljZXMgc3RhcnQgd29yayB3aXRoIGNvbGxlY3Rpb25zXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKSA9PiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKHRyYW5zYWN0aW9ucykpLFxuICAgICAgICBtZXJnZU1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb25zLmdldFZlaGljbGVUcmFuc2FjdGlvbnMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uV09SS19MT0dCT09LLCB0aGlzLnZlaGljbGVDbGFpbVNlcnZpY2UuZ2V0KCkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1zZXR1cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFFekYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFFMUYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHMUUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFJbEYsT0FBTyxFQUFDLGFBQWEsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFFM0YsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxZQUFZLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRy9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBRTNGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7OztBQUU3RDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBSzlCLFlBQ1Usd0JBQWtELEVBQ2xELGVBQWdDLEVBQ2hDLG1CQUF3QyxFQUN4QyxtQkFBdUMsRUFDdkMsNEJBQTBELEVBQzFELG1CQUF3QyxFQUN4QyxrQkFBc0MsRUFDdEMsbUJBQXdDLEVBQ3hDLGNBQThCLEVBQzlCLFdBQXdCO1FBVHhCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBQzFELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWJsQyxpQkFBWSxHQUE4QyxJQUFJLGFBQWEsQ0FBNkIsQ0FBQyxDQUFDLENBQUM7SUFlM0csQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWhELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLEVBQUU7aUJBQ3RDLElBQUksQ0FDSCxRQUFRLENBQUMsQ0FBQyxXQUE4QixFQUFFLEVBQUU7Z0JBQzFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUUxQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQ0g7aUJBQ0EsU0FBUyxDQUFDLENBQUMsS0FBaUMsRUFBRSxFQUFFO2dCQUMvQyxRQUFRLElBQUksRUFBRTtvQkFDWixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDakIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFDcEcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTTt3QkFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDdEM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLElBQXNCO1FBQ3ZDLE9BQU8sWUFBWSxDQUNqQixpQkFBaUIsRUFDakIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3RILENBQUE7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxNQUFNLENBQUMsUUFBK0IsRUFBRSxPQUE2QjtRQUMzRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEdBQUcsQ0FBQyxDQUFDLE1BQWdCLEVBQW9CLEVBQUU7WUFDekMsTUFBTSxJQUFJLEdBQXFCLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTdELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7YUFDMUI7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssV0FBVyxDQUFDLFdBQThCO1FBQ2hELE1BQU0sS0FBSyxHQUFtQyxFQUFFLENBQUM7UUFDakQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV6QyxnRUFBZ0U7UUFDaEUsSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzlELEtBQUssQ0FBQyxJQUFJLENBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FDVCxxQkFBcUIsQ0FBQyxNQUFNLEVBQzVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FDNUI7WUFDRCxrR0FBa0c7WUFDbEcsSUFBSSxDQUFDLE1BQU0sQ0FDVCxxQkFBcUIsQ0FBQyxZQUFZLEVBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUN4QixDQUNGLENBQUM7U0FDSDtRQUVELHdFQUF3RTtRQUN4RSxJQUFJLFdBQVcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDdEUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMxRjtRQUVELHdFQUF3RTtRQUN4RSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzlGO1FBRUQsa0VBQWtFO1FBQ2xFLElBQUksV0FBVyxDQUFDLFFBQVEsSUFBSyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN0RSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3pGO1FBRUQsSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFO1lBQ3hGLDJGQUEyRjtZQUMzRixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFFcEMsc0dBQXNHO1lBQ3RHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFFbEMsbUZBQW1GO1lBQ25GLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNyRztRQUVELE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUF5QixFQUFFLEVBQUUsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZ0JBQWdCLENBQUMsUUFBUSxHQUFHLEtBQUs7UUFDdkMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUN4QyxHQUFHLENBQUMsQ0FBQyxhQUE2QixFQUFrQixFQUFFO1lBQ3BELE1BQU0sVUFBVSxHQUEyQixJQUFJLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JGLElBQUksUUFBUSxFQUFFO2dCQUNaLE9BQU8sVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQy9CO1lBRUQsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQy9GLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRTthQUNqQyxJQUFJO1FBQ0gsbUVBQW1FO1FBQ25FLEdBQUcsQ0FBQyxDQUFDLFlBQTJCLEVBQUUsRUFBRSxDQUFDLElBQUkscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUMsRUFDN0UsUUFBUSxDQUFDLENBQUMsWUFBbUMsRUFBRSxFQUFFO1lBQy9DLElBQUksWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUMsTUFBTSxFQUFFO2dCQUNoRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2FBQ3hGO1lBRUQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQjtRQUN0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNwRCxNQUFNLGNBQWMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ25ELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDOztnSEFoTFUsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QUNDT1VOVF9TRVRVUF9JVEVNU30gZnJvbSAnLi4vLi4vbW9kZWxzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC1pdGVtcy5jb25zdCc7XG5pbXBvcnQge0FjY291bnRTZXR1cEl0ZW19IGZyb20gJy4uLy4uL21vZGVscy9hY2NvdW50LXNldHVwL2FjY291bnQtc2V0dXAtaXRlbSc7XG5pbXBvcnQge0FjY291bnRTZXR1cEl0ZW1zRW51bX0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjY291bnQtc2V0dXAvYWNjb3VudC1zZXR1cC1pdGVtcy5lbnVtJztcbmltcG9ydCB7QmFua0FjY291bnRTZXJ2aWNlfSBmcm9tICcuLi9odHRwL2JhbmsvYmFuay1hY2NvdW50L2JhbmstYWNjb3VudC5zZXJ2aWNlJztcbmltcG9ydCB7Q2xpZW50SW5jb21lVHlwZXN9IGZyb20gJy4uLy4uL21vZGVscy9jbGllbnQvY2xpZW50LWluY29tZS10eXBlcyc7XG5pbXBvcnQge0NsaWVudEluY29tZVR5cGVzU2VydmljZX0gZnJvbSAnLi4vaHR0cC9maXJtL2NsaWVudC1pbmNvbWUvY2xpZW50LWluY29tZS10eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7SW5jb21lU291cmNlfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5jb21lLXNvdXJjZS9pbmNvbWUtc291cmNlJztcbmltcG9ydCB7SW5jb21lU291cmNlQ29sbGVjdGlvbn0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvaW5jb21lLXNvdXJjZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7SW5jb21lU291cmNlU2VydmljZX0gZnJvbSAnLi4vaHR0cC9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge1Byb3BlcnR5U2VydmljZX0gZnJvbSAnLi4vaHR0cC9wcm9wZXJ0eS9wcm9wZXJ0eS5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vaHR0cC90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBtZXJnZU1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbn0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvYWNjb3VudC1zZXR1cC1pdGVtLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHtWZWhpY2xlQ2xhaW1TZXJ2aWNlfSBmcm9tICcuLi9odHRwL3ZlaGljbGUvdmVoaWNsZS1jbGFpbS5zZXJ2aWNlJztcbmltcG9ydCBmcm9tUGFpcnMgZnJvbSAnbG9kYXNoL2Zyb21QYWlycyc7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC9jbG9uZURlZXAnO1xuaW1wb3J0IGludGVyc2VjdGlvbiBmcm9tICdsb2Rhc2gvaW50ZXJzZWN0aW9uJztcbmltcG9ydCB7cGxhaW5Ub0NsYXNzfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vaHR0cC90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNhY3Rpb259IGZyb20gJy4uLy4uL21vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQge1RyYW5zYWN0aW9uQ29sbGVjdGlvbn0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24uY29sbGVjdGlvbic7XG5pbXBvcnQge0hvbGRpbmdTZXJ2aWNlLCBTb2xlQnVzaW5lc3NTZXJ2aWNlLCBVc2VyU2VydmljZX0gZnJvbSAnLi4vaHR0cCc7XG5pbXBvcnQge1VzZXJSb2xlc0VudW19IGZyb20gJy4uLy4uL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5cbi8qKlxuICogU2VydmljZSBoYW5kbGluZyB1c2VyJ3MgYWNjb3VudCBzZXR1cCBwcm9jZXNzLlxuICogQ2hlY2tzIHJlcXVpcmVkIHN0ZXBzIGFuZCB0aGVpciBjb21wbGV0aW9uXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRTZXR1cFNlcnZpY2Uge1xuICBjYWNoZTogQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb247XG4gIGNhY2hlU3ViamVjdDogUmVwbGF5U3ViamVjdDxBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbj4gPSBuZXcgUmVwbGF5U3ViamVjdDxBY2NvdW50U2V0dXBJdGVtQ29sbGVjdGlvbj4oMSk7XG4gIGNsaWVudEluY29tZVR5cGVzSWQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNsaWVudEluY29tZVR5cGVzU2VydmljZTogQ2xpZW50SW5jb21lVHlwZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJvcGVydHlTZXJ2aWNlOiBQcm9wZXJ0eVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmNvbWVTb3VyY2VTZXJ2aWNlOiBJbmNvbWVTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFua0FjY291bnRzU2VydmljZTogQmFua0FjY291bnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZTogVHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHZlaGljbGVDbGFpbVNlcnZpY2U6IFZlaGljbGVDbGFpbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHNvbGVCdXNpbmVzc1NlcnZpY2U6IFNvbGVCdXNpbmVzc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBob2xkaW5nU2VydmljZTogSG9sZGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIGFjY291bnQgc2V0dXAgaXRlbXMgZm9yIGN1cnJlbnQgdXNlclxuICAgKi9cbiAgZ2V0KCk6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuY2FjaGUgPSBuZXcgQWNjb3VudFNldHVwSXRlbUNvbGxlY3Rpb24oW10pO1xuXG4gICAgICB0aGlzLmNsaWVudEluY29tZVR5cGVzU2VydmljZS5nZXRTaW5nbGUoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgoaW5jb21lVHlwZXM6IENsaWVudEluY29tZVR5cGVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsaWVudEluY29tZVR5cGVzSWQgPSBpbmNvbWVUeXBlcy5pZDtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQmF0Y2goaW5jb21lVHlwZXMpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoaXRlbXM6IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICBjYXNlICF0aGlzLmNhY2hlOlxuICAgICAgICAgICAgY2FzZSB0aGlzLmNhY2hlLmZpbHRlckJ5KCdpc0NvbXBsZXRlZCcsIHRydWUpLmxlbmd0aCAhPT0gaXRlbXMuZmlsdGVyQnkoJ2lzQ29tcGxldGVkJywgdHJ1ZSkubGVuZ3RoOlxuICAgICAgICAgICAgY2FzZSB0aGlzLmNhY2hlLmxlbmd0aCAhPT0gaXRlbXMubGVuZ3RoOlxuICAgICAgICAgICAgICB0aGlzLmNhY2hlID0gY2xvbmVEZWVwKGl0ZW1zKTtcbiAgICAgICAgICAgICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGNsaWVudCBpbmNvbWUgdHlwZXMgdG8gdXBkYXRlIHRvIGhpZGUgZGVwZW5kZWQgYWNjb3VudCBzZXR1cCBpdGVtc1xuICAgKi9cbiAgcHJlcGFyZUluY29tZVR5cGVzKGl0ZW06IEFjY291bnRTZXR1cEl0ZW0pOiBDbGllbnRJbmNvbWVUeXBlcyB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyhcbiAgICAgIENsaWVudEluY29tZVR5cGVzLFxuICAgICAgT2JqZWN0LmFzc2lnbih7aWQ6IHRoaXMuY2xpZW50SW5jb21lVHlwZXNJZH0sIGZyb21QYWlycyhpdGVtLmNsaWVudEluY29tZVR5cGVzLm1hcCgodHlwZTogc3RyaW5nKSA9PiBbdHlwZSwgZmFsc2VdKSkpXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHNpbmdsZSBBY2NvdW50U2V0dXBJdGVtIGFuZCBjaGVjayBpdCdzIGNvbXBsZXRpb25cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlKGl0ZW1UeXBlOiBBY2NvdW50U2V0dXBJdGVtc0VudW0sIHJlcXVlc3Q6IE9ic2VydmFibGU8b2JqZWN0W10+KTogT2JzZXJ2YWJsZTxBY2NvdW50U2V0dXBJdGVtPiB7XG4gICAgcmV0dXJuIHJlcXVlc3QucGlwZShcbiAgICAgIG1hcCgocmVzdWx0OiBvYmplY3RbXSk6IEFjY291bnRTZXR1cEl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBpdGVtOiBBY2NvdW50U2V0dXBJdGVtID0gQUNDT1VOVF9TRVRVUF9JVEVNU1tpdGVtVHlwZV07XG5cbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgICAgICBpdGVtLmlzQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtLmlzQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYmF0Y2ggb2YgcmVxdWVzdHMgdG8gZ2V0IGxpc3Qgb2YgcmVxdWlyZWQgQWNjb3VudFNldHVwSXRlbSdzLlxuICAgKiBTb21lIGl0ZW1zIGFyZSBvcHRpb25hbCBhbmQgZGVwZW5kcyBvZiB1c2VyJ3MgY2xpZW50IGluY29tZSB0eXBlc1xuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVCYXRjaChpbmNvbWVUeXBlczogQ2xpZW50SW5jb21lVHlwZXMpOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uPiB7XG4gICAgY29uc3QgYmF0Y2g6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbT5bXSA9IFtdO1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVzZXJTZXJ2aWNlLmdldENhY2hlKCk7XG5cbiAgICAvLyBTYWxhcnkgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIHNhbGFyeSBpbmNvbWUgc291cmNlXG4gICAgaWYgKGluY29tZVR5cGVzLndvcmsgJiYgdXNlci5oYXNSb2xlcyhVc2VyUm9sZXNFbnVtLldPUktfVEFOSykpIHtcbiAgICAgIGJhdGNoLnB1c2goXG4gICAgICAgIHRoaXMuY3JlYXRlKFxuICAgICAgICAgIEFjY291bnRTZXR1cEl0ZW1zRW51bS5TQUxBUlksXG4gICAgICAgICAgdGhpcy5nZXRJbmNvbWVTb3VyY2VzKHRydWUpXG4gICAgICAgICksXG4gICAgICAgIC8vIE90aGVyIGluY29tZSBpcyBhIHBhcnQgb2Ygd29yayB0YW5rLCBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBvdGhlciBpbmNvbWUgc291cmNlXG4gICAgICAgIHRoaXMuY3JlYXRlKFxuICAgICAgICAgIEFjY291bnRTZXR1cEl0ZW1zRW51bS5PVEhFUl9JTkNPTUUsXG4gICAgICAgICAgdGhpcy5nZXRJbmNvbWVTb3VyY2VzKClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBSZW50YWwgaW5jb21lIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgcHJvcGVydHlcbiAgICBpZiAoaW5jb21lVHlwZXMucHJvcGVydHkgJiYgdXNlci5oYXNSb2xlcyhVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTkspKSB7XG4gICAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5QUk9QRVJUWSwgdGhpcy5wcm9wZXJ0eVNlcnZpY2UuZ2V0QXJyYXkoKSkpO1xuICAgIH1cblxuICAgIC8vIFNvbGUgYnVzaW5lc3MgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGFkZGVkIGF0IGxlYXN0IG9uZSBidXNpbmVzc1xuICAgIGlmIChpbmNvbWVUeXBlcy5zb2xlICYmIHVzZXIuaGFzUm9sZXMoVXNlclJvbGVzRW51bS5TT0xFX1RBTkspKSB7XG4gICAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5TT0xFX0JVU0lORVNTLCB0aGlzLnNvbGVCdXNpbmVzc1NlcnZpY2UuZ2V0KCkpKTtcbiAgICB9XG5cbiAgICAvLyBob2xkaW5ncyBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgYXQgbGVhc3Qgb25lIGhvbGRpbmdcbiAgICBpZiAoaW5jb21lVHlwZXMuaG9sZGluZ3MgICYmIHVzZXIuaGFzUm9sZXMoVXNlclJvbGVzRW51bS5IT0xESU5HX1RBTkspKSB7XG4gICAgICBiYXRjaC5wdXNoKHRoaXMuY3JlYXRlKEFjY291bnRTZXR1cEl0ZW1zRW51bS5IT0xESU5HUywgdGhpcy5ob2xkaW5nU2VydmljZS5nZXRBcnJheSgpKSk7XG4gICAgfVxuXG4gICAgaWYgKGluY29tZVR5cGVzLnNvbGUgfHwgaW5jb21lVHlwZXMucHJvcGVydHkgfHwgaW5jb21lVHlwZXMud29yayB8fCBpbmNvbWVUeXBlcy5ob2xkaW5ncykge1xuICAgICAgLy8gQmFuayBmZWVkcyBpdGVtIGlzIGNvbXBsZXRlZCB3aGVuIHVzZXIgYWRkZWQgYXQgbGVhc3Qgb25lIGJhbmsgYWNjb3VudCAoYmFzaXEgb3IgbWFudWFsKVxuICAgICAgYmF0Y2gucHVzaCh0aGlzLmdldEJhbmtGZWVkc0l0ZW0oKSk7XG5cbiAgICAgIC8vIExvZ2Jvb2sgaXRlbSBpcyBjb21wbGV0ZWQgd2hlbiB1c2VyIGhhcyBhdCBsZWFzdCBvbmUgdmVoaWNsZSBjbGFpbSB3aXRoIGFueSBtZXRob2QgKGttcyBvciBsb2dib29rKVxuICAgICAgYmF0Y2gucHVzaCh0aGlzLmdldExvZ2Jvb2tJdGVtKCkpO1xuXG4gICAgICAvLyBBbGxvY2F0aW9uIGl0ZW0gaXMgY29tcGxldGVkIHdoZW4gdXNlciBhZGRlZCBhdCBsZWFzdCBvbmUgdHJhbnNhY3Rpb24gYWxsb2NhdGlvblxuICAgICAgYmF0Y2gucHVzaCh0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uVFJBTlNBQ1RJT04sIHRoaXMudHJhbnNhY3Rpb25BbGxvY2F0aW9uU2VydmljZS5nZXQoKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KGJhdGNoKS5waXBlKG1hcCgoaXRlbXM6IEFjY291bnRTZXR1cEl0ZW1bXSkgPT4gbmV3IEFjY291bnRTZXR1cEl0ZW1Db2xsZWN0aW9uKGl0ZW1zKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIEFsZXg6IHdvcmsgd2l0aCBjb2xsZWN0aW9uIHdoZW4gc2VydmljZXMgcmVmYWN0b3JlZFxuICAgKiBAVE9ETyBWaWs6IHdhaXRpbmcgZm9yIGluY29tZSBzb3VyY2VzIHJlZmFjdG9yaW5nXG4gICAqL1xuICBwcml2YXRlIGdldEluY29tZVNvdXJjZXMoaXNTYWxhcnkgPSBmYWxzZSk6IE9ic2VydmFibGU8SW5jb21lU291cmNlW10+IHtcbiAgICByZXR1cm4gdGhpcy5pbmNvbWVTb3VyY2VTZXJ2aWNlLmdldCgpLnBpcGUoXG4gICAgICBtYXAoKGluY29tZVNvdXJjZXM6IEluY29tZVNvdXJjZVtdKTogSW5jb21lU291cmNlW10gPT4ge1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9uOiBJbmNvbWVTb3VyY2VDb2xsZWN0aW9uID0gbmV3IEluY29tZVNvdXJjZUNvbGxlY3Rpb24oaW5jb21lU291cmNlcyk7XG4gICAgICAgIGlmIChpc1NhbGFyeSkge1xuICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uLmdldFNhbGFyeSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb24uaXRlbXMuZmlsdGVyKChpbmNvbWVTb3VyY2U6IEluY29tZVNvdXJjZSkgPT4gaW5jb21lU291cmNlLmlzT3RoZXJJbmNvbWUoKSk7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IGxvZ2Jvb2sgaXRlbSB3aGVuIHVzZXIgaGFzIGF0IGxlYXN0IDEgdmVoaWNsZSB0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRMb2dib29rSXRlbSgpOiBPYnNlcnZhYmxlPEFjY291bnRTZXR1cEl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBAVE9ETyBBbGV4OiByZW1vdmUgbWFwIHdoZW4gc2VydmljZXMgc3RhcnQgd29yayB3aXRoIGNvbGxlY3Rpb25zXG4gICAgICAgIG1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdKSA9PiBuZXcgVHJhbnNhY3Rpb25Db2xsZWN0aW9uKHRyYW5zYWN0aW9ucykpLFxuICAgICAgICBtZXJnZU1hcCgodHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb25zLmdldFZlaGljbGVUcmFuc2FjdGlvbnMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShBY2NvdW50U2V0dXBJdGVtc0VudW0uV09SS19MT0dCT09LLCB0aGlzLnZlaGljbGVDbGFpbVNlcnZpY2UuZ2V0KCkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdyBiYW5rIGZlZWRzIGl0ZW0gd2hlbiB1c2VyIGhhcyBvbmx5IGhvbGRpbmcgdGFua1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRCYW5rRmVlZHNJdGVtKCk6IE9ic2VydmFibGU8QWNjb3VudFNldHVwSXRlbT4ge1xuICAgIGNvbnN0IHVzZXJSb2xlcyA9IHRoaXMudXNlclNlcnZpY2UuZ2V0Q2FjaGUoKS5yb2xlcztcbiAgICBjb25zdCBiYW5rRmVlZHNSb2xlcyA9IFtVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTkssIFVzZXJSb2xlc0VudW0uV09SS19UQU5LLCBVc2VyUm9sZXNFbnVtLlNPTEVfVEFOS107XG5cbiAgICBpZiAoIWludGVyc2VjdGlvbihiYW5rRmVlZHNSb2xlcywgdXNlclJvbGVzKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoQWNjb3VudFNldHVwSXRlbXNFbnVtLkJBTktfRkVFRFMsIHRoaXMuYmFua0FjY291bnRzU2VydmljZS5nZXRBcnJheSgpKTtcbiAgfVxufVxuIl19
@@ -20,9 +20,9 @@ export class RewardfulService {
20
20
  });
21
21
  }
22
22
  }
23
- RewardfulService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RewardfulService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
24
- RewardfulService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RewardfulService, providedIn: 'root' });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RewardfulService, decorators: [{
23
+ RewardfulService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RewardfulService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
24
+ RewardfulService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RewardfulService, providedIn: 'root' });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: RewardfulService, decorators: [{
26
26
  type: Injectable,
27
27
  args: [{
28
28
  providedIn: 'root'
@@ -37,9 +37,9 @@ export class AssetsService {
37
37
  return this.http.delete(`${this.environment.apiV2}/${asset.entityType}/${entityId}/${asset.type}/${asset.id}`);
38
38
  }
39
39
  }
40
- AssetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AssetsService, deps: [{ token: i1.HttpClient }, { token: i2.UserSwitcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
41
- AssetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AssetsService, providedIn: 'root' });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AssetsService, decorators: [{
40
+ AssetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AssetsService, deps: [{ token: i1.HttpClient }, { token: i2.UserSwitcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
41
+ AssetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AssetsService, providedIn: 'root' });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AssetsService, decorators: [{
43
43
  type: Injectable,
44
44
  args: [{
45
45
  providedIn: 'root'
@@ -48,9 +48,9 @@ export class AuthService {
48
48
  location.replace(url);
49
49
  }
50
50
  }
51
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i2.JwtService }, { token: i3.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
52
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AuthService, providedIn: 'root' });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AuthService, decorators: [{
51
+ AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AuthService, deps: [{ token: i1.HttpClient }, { token: i2.JwtService }, { token: i3.EventDispatcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
52
+ AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AuthService, providedIn: 'root' });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AuthService, decorators: [{
54
54
  type: Injectable,
55
55
  args: [{
56
56
  providedIn: 'root'
@@ -31,9 +31,9 @@ export class JwtService extends JwtHelperService {
31
31
  return this.getUser().id === userId;
32
32
  }
33
33
  }
34
- JwtService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: JwtService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
35
- JwtService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: JwtService, providedIn: 'root' });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: JwtService, decorators: [{
34
+ JwtService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
35
+ JwtService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, providedIn: 'root' });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: JwtService, decorators: [{
37
37
  type: Injectable,
38
38
  args: [{
39
39
  providedIn: 'root'
@@ -25,9 +25,9 @@ export class BankAccountCalculationService {
25
25
  return bankAccounts.currentBalance - this.getTaxTankBalance(bankAccounts.getLoanAccounts(), bankTransactions, allocations);
26
26
  }
27
27
  }
28
- BankAccountCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankAccountCalculationService, deps: [{ token: i1.BankTransactionCalculationService }], target: i0.ɵɵFactoryTarget.Injectable });
29
- BankAccountCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankAccountCalculationService, providedIn: 'root' });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankAccountCalculationService, decorators: [{
28
+ BankAccountCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountCalculationService, deps: [{ token: i1.BankTransactionCalculationService }], target: i0.ɵɵFactoryTarget.Injectable });
29
+ BankAccountCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountCalculationService, providedIn: 'root' });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountCalculationService, decorators: [{
31
31
  type: Injectable,
32
32
  args: [{
33
33
  providedIn: 'root'
@@ -50,9 +50,9 @@ export class BankTransactionCalculationService {
50
50
  return allocations.getByBankTransactionsIds(bankTransactions.debitTransactions.getIds()).amount;
51
51
  }
52
52
  }
53
- BankTransactionCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankTransactionCalculationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
54
- BankTransactionCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankTransactionCalculationService, providedIn: 'root' });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankTransactionCalculationService, decorators: [{
53
+ BankTransactionCalculationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionCalculationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
54
+ BankTransactionCalculationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionCalculationService, providedIn: 'root' });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionCalculationService, decorators: [{
56
56
  type: Injectable,
57
57
  args: [{
58
58
  providedIn: 'root'
@@ -28,9 +28,9 @@ export class DataService {
28
28
  this.cache = this.createCollectionInstance(this.collectionClass, data.map((item) => this.createModelInstance(item)));
29
29
  }
30
30
  }
31
- DataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
- DataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DataService, providedIn: 'root' });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DataService, decorators: [{
31
+ DataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
+ DataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DataService, providedIn: 'root' });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: DataService, decorators: [{
34
34
  type: Injectable,
35
35
  args: [{
36
36
  providedIn: 'root'
@@ -30,9 +30,9 @@ export class EventDispatcherService {
30
30
  this.eventSubject2.next(event);
31
31
  }
32
32
  }
33
- EventDispatcherService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: EventDispatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34
- EventDispatcherService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: EventDispatcherService, providedIn: 'root' });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: EventDispatcherService, decorators: [{
33
+ EventDispatcherService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: EventDispatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34
+ EventDispatcherService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: EventDispatcherService, providedIn: 'root' });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: EventDispatcherService, decorators: [{
36
36
  type: Injectable,
37
37
  args: [{
38
38
  providedIn: 'root'
@@ -34,9 +34,9 @@ export class SseService {
34
34
  .pipe(map((messageEvent) => JSON.parse(messageEvent.data)));
35
35
  }
36
36
  }
37
- SseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SseService, deps: [{ token: i0.NgZone }, { token: i1.JwtService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
38
- SseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SseService, providedIn: 'root' });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SseService, decorators: [{
37
+ SseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: SseService, deps: [{ token: i0.NgZone }, { token: i1.JwtService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
38
+ SseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: SseService, providedIn: 'root' });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: SseService, decorators: [{
40
40
  type: Injectable,
41
41
  args: [{
42
42
  providedIn: 'root'
@@ -23,9 +23,9 @@ export class ExportFormatterService {
23
23
  }));
24
24
  }
25
25
  }
26
- ExportFormatterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ExportFormatterService, deps: [{ token: i1.CurrencyPipe }, { token: i1.PercentPipe }, { token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
27
- ExportFormatterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ExportFormatterService, providedIn: 'root' });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ExportFormatterService, decorators: [{
26
+ ExportFormatterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: ExportFormatterService, deps: [{ token: i1.CurrencyPipe }, { token: i1.PercentPipe }, { token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ ExportFormatterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: ExportFormatterService, providedIn: 'root' });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: ExportFormatterService, decorators: [{
29
29
  type: Injectable,
30
30
  args: [{
31
31
  providedIn: 'root'
@@ -17,9 +17,9 @@ export class HeaderTitleService {
17
17
  }), filter((route) => route.outlet === 'primary'), mergeMap((route) => route.data));
18
18
  }
19
19
  }
20
- HeaderTitleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: HeaderTitleService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
21
- HeaderTitleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: HeaderTitleService, providedIn: 'root' });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: HeaderTitleService, decorators: [{
20
+ HeaderTitleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: HeaderTitleService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ HeaderTitleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: HeaderTitleService, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: HeaderTitleService, decorators: [{
23
23
  type: Injectable,
24
24
  args: [{
25
25
  providedIn: 'root'
@@ -23,9 +23,9 @@ export class AddressService {
23
23
  return this.countriesSubject.asObservable();
24
24
  }
25
25
  }
26
- AddressService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AddressService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
27
- AddressService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AddressService, providedIn: 'root' });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: AddressService, decorators: [{
26
+ AddressService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AddressService, deps: [{ token: i1.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ AddressService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AddressService, providedIn: 'root' });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: AddressService, decorators: [{
29
29
  type: Injectable,
30
30
  args: [{
31
31
  providedIn: 'root'
@@ -49,9 +49,9 @@ export class BankAccountService extends RestService {
49
49
  });
50
50
  }
51
51
  }
52
- BankAccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankAccountService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
53
- BankAccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankAccountService, providedIn: 'root' });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankAccountService, decorators: [{
52
+ BankAccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
53
+ BankAccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountService, providedIn: 'root' });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankAccountService, decorators: [{
55
55
  type: Injectable,
56
56
  args: [{
57
57
  providedIn: 'root'
@@ -2,7 +2,7 @@ import { Inject, Injectable } from '@angular/core';
2
2
  import { catchError, map } from 'rxjs/operators';
3
3
  import { plainToClass } from 'class-transformer';
4
4
  import { RestService } from '../../rest';
5
- import { AppEvent, AppEventTypeEnum, BankAccount, BankConnection } from '../../../../models';
5
+ import { AppEventTypeEnum, BankAccount, BankConnection } from '../../../../models';
6
6
  import { UserEventTypeTypeEnum } from '../../../../db/Enums/user-event-type-type.enum';
7
7
  import { throwError as observableThrowError } from 'rxjs';
8
8
  import { Collection } from '../../../../collections';
@@ -29,7 +29,6 @@ export class BankConnectionService extends RestService {
29
29
  listenEvents() {
30
30
  this.listenCSE(BankAccount, ['post'], this.resetCache);
31
31
  this.listenNotifications();
32
- this.listenBasiqLogin();
33
32
  }
34
33
  /**
35
34
  * POST endpoint is using for create and for update.
@@ -72,30 +71,14 @@ export class BankConnectionService extends RestService {
72
71
  }
73
72
  });
74
73
  }
75
- /**
76
- * Create/reconnect bank connection when user successfully logged in to basiq
77
- */
78
- listenBasiqLogin() {
79
- this.eventDispatcherService.on(AppEventTypeEnum.BASIQ_LOGIN_SUCCESS).subscribe((data) => {
80
- this.post(plainToClass(BankConnection, { id: data.connectionId, basiqJob: { externalId: data.jobId } }))
81
- .subscribe((connection) => {
82
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BANK_CONNECTION_ADDED, connection));
83
- },
84
- // When user already has some bank accounts in handling connection and trying to login with different credentials, backend can not save this connection.
85
- // So we should handle this case as failed login
86
- () => {
87
- this.eventDispatcherService.dispatch(new AppEvent(AppEventTypeEnum.BASIQ_LOGIN_FAILED, null));
88
- });
89
- });
90
- }
91
74
  }
92
75
  BankConnectionService.userEventTypes = [
93
76
  UserEventTypeTypeEnum.BASIQ_NEW_ACCOUNTS,
94
77
  UserEventTypeTypeEnum.BASIQ_AUTHORIZATION_FAIL
95
78
  ];
96
- BankConnectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankConnectionService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }, { token: i3.ToastService }], target: i0.ɵɵFactoryTarget.Injectable });
97
- BankConnectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankConnectionService, providedIn: 'root' });
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankConnectionService, decorators: [{
79
+ BankConnectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankConnectionService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }, { token: i3.ToastService }], target: i0.ɵɵFactoryTarget.Injectable });
80
+ BankConnectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankConnectionService, providedIn: 'root' });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankConnectionService, decorators: [{
99
82
  type: Injectable,
100
83
  args: [{
101
84
  providedIn: 'root'
@@ -104,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
104
87
  type: Inject,
105
88
  args: ['environment']
106
89
  }] }, { type: i3.ToastService }]; } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1jb25uZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstY29ubmVjdGlvbi9iYW5rLWNvbm5lY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBcUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVoSSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUV2RixPQUFPLEVBQUUsVUFBVSxJQUFJLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFJckQ7OztHQUdHO0FBSUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQTJFO0lBV3BILFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCLEVBQ3pDLFlBQTBCO1FBRWxDLEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFMdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ3pDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBVHBDLGVBQVUsR0FB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QUFDLENBQUM7WUFDekcsQ0FBQztZQUNELHdKQUF3SjtZQUN4SixnREFBZ0Q7WUFDaEQsR0FBRyxFQUFFO2dCQUNILElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNoRyxDQUFDLENBQ0YsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7QUE1Rk0sb0NBQWMsR0FBNEI7SUFDL0MscUJBQXFCLENBQUMsa0JBQWtCO0lBQ3hDLHFCQUFxQixDQUFDLHdCQUF3QjtDQUMvQyxDQUFDO2tIQUpTLHFCQUFxQixrRkFjdEIsYUFBYTtzSEFkWixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFlSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhbmtDb25uZWN0aW9uIGFzIEJhbmtDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBSZXN0TWV0aG9kLCBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QnO1xuaW1wb3J0IHsgQXBwRXZlbnQsIEFwcEV2ZW50VHlwZUVudW0sIEJhbmtBY2NvdW50LCBCYW5rQ29ubmVjdGlvbiwgQmFzaXFDb25uZWN0aW9uRGF0YSwgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdHlwZS5lbnVtJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RvYXN0JztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9ldmVudCc7XG5cbi8qKlxuICogQmFua0Nvbm5lY3Rpb24gbWVhbnMgdXNlciBhY2NvdW50IGF0IHNwZWNpZmljIGJhbmsgKHVzdWFsbHkgZWFjaCB1c2VyIGhhcyBvbmx5IG9uZSBhdCB0aGUgc2FtZSBiYW5rKVxuICogc2VydmljZSBoYW5kbGVzIEJhbmtDb25uZWN0aW9uIG1hbmFnZW1lbnRcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFua0Nvbm5lY3Rpb25TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QmFua0Nvbm5lY3Rpb25CYXNlLCBCYW5rQ29ubmVjdGlvbiwgQ29sbGVjdGlvbjxCYW5rQ29ubmVjdGlvbj4+IGltcGxlbWVudHMgSUV2ZW50TGlzdGVuZXIge1xuICBzdGF0aWMgdXNlckV2ZW50VHlwZXM6IFVzZXJFdmVudFR5cGVUeXBlRW51bVtdID0gW1xuICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5CQVNJUV9ORVdfQUNDT1VOVFMsXG4gICAgVXNlckV2ZW50VHlwZVR5cGVFbnVtLkJBU0lRX0FVVEhPUklaQVRJT05fRkFJTFxuICBdO1xuXG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBCYW5rQ29ubmVjdGlvbiA9IEJhbmtDb25uZWN0aW9uO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBDb2xsZWN0aW9uID0gQ29sbGVjdGlvbjtcbiAgZW5kcG9pbnRVcmkgPSAnYmFuay1jb25uZWN0aW9ucyc7XG4gIGRpc2FibGVkTWV0aG9kczogUmVzdE1ldGhvZFtdID0gWydwb3N0QmF0Y2gnLCAncHV0JywgJ3B1dEJhdGNoJywgJ2RlbGV0ZScsICdkZWxldGVCYXRjaCddO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnksXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCk7XG4gIH1cblxuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5DU0UoQmFua0FjY291bnQsIFsncG9zdCddLCB0aGlzLnJlc2V0Q2FjaGUpO1xuICAgIHRoaXMubGlzdGVuTm90aWZpY2F0aW9ucygpO1xuICAgIHRoaXMubGlzdGVuQmFzaXFMb2dpbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBPU1QgZW5kcG9pbnQgaXMgdXNpbmcgZm9yIGNyZWF0ZSBhbmQgZm9yIHVwZGF0ZS5cbiAgICovXG4gIHBvc3QoYmFua0Nvbm5lY3Rpb246IEJhbmtDb25uZWN0aW9uKTogT2JzZXJ2YWJsZTxCYW5rQ29ubmVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmFwaVVybCwgYmFua0Nvbm5lY3Rpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogQmFua0Nvbm5lY3Rpb25CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBCYW5rQ29ubmVjdGlvbiA9IHBsYWluVG9DbGFzcyhCYW5rQ29ubmVjdGlvbiwgcmVzcG9uc2UpO1xuICAgICAgICAgIGlmIChiYW5rQ29ubmVjdGlvbi5pZCkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbcmVzdWx0XSwgJ3B1dCcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtyZXN1bHRdLCAncG9zdCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAvLyBTaG93IGVycm9yIHdoZW4gdXNlciBwcm92aWRlZCB3cm9uZyBsb2dpbiBkYXRhXG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcignSW52YWxpZCBjcmVkZW50aWFscycpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFNob3cgZXJyb3Igd2hlbiB1c2VyIHByb3ZpZGVkIGFub3RoZXIgbG9naW4gKG5vdCBsb2dpbiBoZSB1c2VkIGJlZm9yZSlcbiAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmVycm9yKCdQbGVhc2UgZW50ZXIgdGhlIGxvZ2luIHlvdSB1c2VkIGJlZm9yZScpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHdoZW4gYmFzaXEgYWNjb3VudHMgd2VyZSByZXRyaWV2ZWQgb3IgbG9naW4gdG8gYmFzaWMgd2FzIGZhaWxlZCB0byBnZXQgYWN0dWFsIGNvbm5lY3Rpb25zIHN0YXR1c2VzXG4gICAqL1xuICBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIC8vIEBUT0RPIHZpayBsaXN0ZW4gc3NlIHdoZW4gYmFja2VuZCB1cGRhdGVkXG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uTk9USUZJQ0FUSU9OX0FEREVEKS5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKSA9PiB7XG4gICAgICAvLyBAVG9kbyBUVC0yMjgwIEFsZXggcmVmYWN0b3IgU2VydmljZU5vdGlmaWNhdGlvbiBpc1JlYWQgbG9naWMuIFdlIGRvbid0IG5lZWQgdG8ga25vdyBoZXJlIHdoZXRoZXIgbm90aWZpY2F0aW9uIHdhcyByZWFkIG9yIG5vdFxuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKEJhbmtDb25uZWN0aW9uU2VydmljZS51c2VyRXZlbnRUeXBlcy5pbmNsdWRlcyhub3RpZmljYXRpb24uZXZlbnRUeXBlKSkge1xuICAgICAgICB0aGlzLnJlc2V0Q2FjaGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUvcmVjb25uZWN0IGJhbmsgY29ubmVjdGlvbiB3aGVuIHVzZXIgc3VjY2Vzc2Z1bGx5IGxvZ2dlZCBpbiB0byBiYXNpcVxuICAgKi9cbiAgbGlzdGVuQmFzaXFMb2dpbigpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24oQXBwRXZlbnRUeXBlRW51bS5CQVNJUV9MT0dJTl9TVUNDRVNTKS5zdWJzY3JpYmUoKGRhdGE6IEJhc2lxQ29ubmVjdGlvbkRhdGEpID0+IHtcblxuICAgICAgdGhpcy5wb3N0KHBsYWluVG9DbGFzcyhCYW5rQ29ubmVjdGlvbiwgeyBpZDogZGF0YS5jb25uZWN0aW9uSWQsIGJhc2lxSm9iOiB7IGV4dGVybmFsSWQ6IGRhdGEuam9iSWQgfSB9KSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAoY29ubmVjdGlvbjogQmFua0Nvbm5lY3Rpb24pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5CQU5LX0NPTk5FQ1RJT05fQURERUQsIGNvbm5lY3Rpb24pKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vIFdoZW4gdXNlciBhbHJlYWR5IGhhcyBzb21lIGJhbmsgYWNjb3VudHMgaW4gaGFuZGxpbmcgY29ubmVjdGlvbiBhbmQgdHJ5aW5nIHRvIGxvZ2luIHdpdGggZGlmZmVyZW50IGNyZWRlbnRpYWxzLCBiYWNrZW5kIGNhbiBub3Qgc2F2ZSB0aGlzIGNvbm5lY3Rpb24uXG4gICAgICAgICAgLy8gU28gd2Ugc2hvdWxkIGhhbmRsZSB0aGlzIGNhc2UgYXMgZmFpbGVkIGxvZ2luXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLkJBU0lRX0xPR0lOX0ZBSUxFRCwgbnVsbCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9KVxuICB9XG59XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1jb25uZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9iYW5rL2JhbmstY29ubmVjdGlvbi9iYW5rLWNvbm5lY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBRWpHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXZGLE9BQU8sRUFBRSxVQUFVLElBQUksb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQUlyRDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsV0FBMkU7SUFXcEgsWUFDWSxJQUFnQixFQUNoQixzQkFBOEMsRUFDdkIsV0FBZ0IsRUFDekMsWUFBMEI7UUFFbEMsS0FBSyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUx2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDdkIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFDekMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFUcEMsZUFBVSxHQUEwQixjQUFjLENBQUM7UUFDbkQsb0JBQWUsR0FBc0IsVUFBVSxDQUFDO1FBQ2hELGdCQUFXLEdBQUcsa0JBQWtCLENBQUM7UUFDakMsb0JBQWUsR0FBaUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFTMUYsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLENBQUMsY0FBOEI7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQzthQUMvQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBNEIsRUFBRSxFQUFFO1lBQ25DLE1BQU0sTUFBTSxHQUFtQixZQUFZLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3RFLElBQUksY0FBYyxDQUFDLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN2QztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRTtZQUN0QyxpREFBaUQ7WUFDakQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQzthQUNoRDtZQUVELHlFQUF5RTtZQUN6RSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO2dCQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO2FBQ25FO1lBRUQsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQzNHLGdJQUFnSTtZQUNoSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtnQkFDeEIsT0FBTzthQUNSO1lBRUQsSUFBSSxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDekUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXZFTSxvQ0FBYyxHQUE0QjtJQUMvQyxxQkFBcUIsQ0FBQyxrQkFBa0I7SUFDeEMscUJBQXFCLENBQUMsd0JBQXdCO0NBQy9DLENBQUM7a0hBSlMscUJBQXFCLGtGQWN0QixhQUFhO3NIQWRaLHFCQUFxQixjQUZwQixNQUFNOzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWVJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFua0Nvbm5lY3Rpb24gYXMgQmFua0Nvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFJlc3RNZXRob2QsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdCc7XG5pbXBvcnQgeyBBcHBFdmVudFR5cGVFbnVtLCBCYW5rQWNjb3VudCwgQmFua0Nvbm5lY3Rpb24sIE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVXNlckV2ZW50VHlwZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvRW51bXMvdXNlci1ldmVudC10eXBlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHRocm93RXJyb3IgYXMgb2JzZXJ2YWJsZVRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90b2FzdCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZXZlbnQnO1xuXG4vKipcbiAqIEJhbmtDb25uZWN0aW9uIG1lYW5zIHVzZXIgYWNjb3VudCBhdCBzcGVjaWZpYyBiYW5rICh1c3VhbGx5IGVhY2ggdXNlciBoYXMgb25seSBvbmUgYXQgdGhlIHNhbWUgYmFuaylcbiAqIHNlcnZpY2UgaGFuZGxlcyBCYW5rQ29ubmVjdGlvbiBtYW5hZ2VtZW50XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhbmtDb25uZWN0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPEJhbmtDb25uZWN0aW9uQmFzZSwgQmFua0Nvbm5lY3Rpb24sIENvbGxlY3Rpb248QmFua0Nvbm5lY3Rpb24+PiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgc3RhdGljIHVzZXJFdmVudFR5cGVzOiBVc2VyRXZlbnRUeXBlVHlwZUVudW1bXSA9IFtcbiAgICBVc2VyRXZlbnRUeXBlVHlwZUVudW0uQkFTSVFfTkVXX0FDQ09VTlRTLFxuICAgIFVzZXJFdmVudFR5cGVUeXBlRW51bS5CQVNJUV9BVVRIT1JJWkFUSU9OX0ZBSUxcbiAgXTtcblxuICBtb2RlbENsYXNzOiB0eXBlb2YgQmFua0Nvbm5lY3Rpb24gPSBCYW5rQ29ubmVjdGlvbjtcbiAgY29sbGVjdGlvbkNsYXNzOiB0eXBlb2YgQ29sbGVjdGlvbiA9IENvbGxlY3Rpb247XG4gIGVuZHBvaW50VXJpID0gJ2JhbmstY29ubmVjdGlvbnMnO1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsncG9zdEJhdGNoJywgJ3B1dCcsICdwdXRCYXRjaCcsICdkZWxldGUnLCAnZGVsZXRlQmF0Y2gnXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55LFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoaHR0cCwgZXZlbnREaXNwYXRjaGVyU2VydmljZSwgZW52aXJvbm1lbnQpO1xuICB9XG5cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuQ1NFKEJhbmtBY2NvdW50LCBbJ3Bvc3QnXSwgdGhpcy5yZXNldENhY2hlKTtcbiAgICB0aGlzLmxpc3Rlbk5vdGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQT1NUIGVuZHBvaW50IGlzIHVzaW5nIGZvciBjcmVhdGUgYW5kIGZvciB1cGRhdGUuXG4gICAqL1xuICBwb3N0KGJhbmtDb25uZWN0aW9uOiBCYW5rQ29ubmVjdGlvbik6IE9ic2VydmFibGU8QmFua0Nvbm5lY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5hcGlVcmwsIGJhbmtDb25uZWN0aW9uKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IEJhbmtDb25uZWN0aW9uQmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQmFua0Nvbm5lY3Rpb24gPSBwbGFpblRvQ2xhc3MoQmFua0Nvbm5lY3Rpb24sIHJlc3BvbnNlKTtcbiAgICAgICAgICBpZiAoYmFua0Nvbm5lY3Rpb24uaWQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3Jlc3VsdF0sICdwdXQnKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbcmVzdWx0XSwgJ3Bvc3QnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgLy8gU2hvdyBlcnJvciB3aGVuIHVzZXIgcHJvdmlkZWQgd3JvbmcgbG9naW4gZGF0YVxuICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoJ0ludmFsaWQgY3JlZGVudGlhbHMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTaG93IGVycm9yIHdoZW4gdXNlciBwcm92aWRlZCBhbm90aGVyIGxvZ2luIChub3QgbG9naW4gaGUgdXNlZCBiZWZvcmUpXG4gICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcignUGxlYXNlIGVudGVyIHRoZSBsb2dpbiB5b3UgdXNlZCBiZWZvcmUnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZVRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aGVuIGJhc2lxIGFjY291bnRzIHdlcmUgcmV0cmlldmVkIG9yIGxvZ2luIHRvIGJhc2ljIHdhcyBmYWlsZWQgdG8gZ2V0IGFjdHVhbCBjb25uZWN0aW9ucyBzdGF0dXNlc1xuICAgKi9cbiAgbGlzdGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICAvLyBAVE9ETyB2aWsgbGlzdGVuIHNzZSB3aGVuIGJhY2tlbmQgdXBkYXRlZFxuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikgPT4ge1xuICAgICAgLy8gQFRvZG8gVFQtMjI4MCBBbGV4IHJlZmFjdG9yIFNlcnZpY2VOb3RpZmljYXRpb24gaXNSZWFkIGxvZ2ljLiBXZSBkb24ndCBuZWVkIHRvIGtub3cgaGVyZSB3aGV0aGVyIG5vdGlmaWNhdGlvbiB3YXMgcmVhZCBvciBub3RcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmlzUmVhZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChCYW5rQ29ubmVjdGlvblNlcnZpY2UudXNlckV2ZW50VHlwZXMuaW5jbHVkZXMobm90aWZpY2F0aW9uLmV2ZW50VHlwZSkpIHtcbiAgICAgICAgdGhpcy5yZXNldENhY2hlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -61,9 +61,9 @@ export class BankTransactionService extends RestService {
61
61
  });
62
62
  }
63
63
  }
64
- BankTransactionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankTransactionService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
65
- BankTransactionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankTransactionService, providedIn: 'root' });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankTransactionService, decorators: [{
64
+ BankTransactionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
65
+ BankTransactionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionService, providedIn: 'root' });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankTransactionService, decorators: [{
67
67
  type: Injectable,
68
68
  args: [{
69
69
  providedIn: 'root'
@@ -24,9 +24,9 @@ export class BankService extends RestService {
24
24
  banks.filter((bank) => bank.isManual || (!!bank.externalId && !!bank.loginFields))));
25
25
  }
26
26
  }
27
- BankService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
28
- BankService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankService, providedIn: 'root' });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BankService, decorators: [{
27
+ BankService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
28
+ BankService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankService, providedIn: 'root' });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BankService, decorators: [{
30
30
  type: Injectable,
31
31
  args: [{
32
32
  providedIn: 'root'
@@ -16,25 +16,27 @@ export class BasiqTokenService extends RestService {
16
16
  * Access token to use basiq flow
17
17
  */
18
18
  get() {
19
- if (!this.cache || this.cache.first.isExpired()) {
19
+ if ((!this.cache || this.cache.first.isExpired()) && !this.isPending) {
20
+ this.isPending = true;
20
21
  this.http.get(this.apiUrl)
21
22
  .pipe(map((response) => {
22
23
  const now = new Date().getTime();
23
24
  return new BasiqToken(response.access_token, new Date(now + response.expires_in * 1000));
24
25
  }))
25
26
  .subscribe((token) => {
27
+ this.isPending = false;
26
28
  this.updateCache([token], 'get');
27
29
  });
28
30
  }
29
31
  return this.cacheSubject.asObservable();
30
32
  }
31
33
  }
32
- BasiqTokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BasiqTokenService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
33
- BasiqTokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BasiqTokenService, providedIn: 'root' });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BasiqTokenService, decorators: [{
34
+ BasiqTokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqTokenService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
35
+ BasiqTokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqTokenService, providedIn: 'root' });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BasiqTokenService, decorators: [{
35
37
  type: Injectable,
36
38
  args: [{
37
39
  providedIn: 'root'
38
40
  }]
39
41
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtdG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEtdG9rZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFzQixNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUtyRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBOEQ7SUFIckc7O1FBSVksZ0JBQVcsR0FBRyxjQUFjLENBQUM7UUFDdkMsZUFBVSxHQUFzQixVQUFVLENBQUM7UUFDM0Msb0JBQWUsR0FBc0IsVUFBVSxDQUFDO1FBQ2hELG9CQUFlLEdBQWlCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztLQXFCbkc7SUFuQkM7O09BRUc7SUFDSCxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztpQkFDdkIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQTRCLEVBQWMsRUFBRTtnQkFDL0MsTUFBTSxHQUFHLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDekMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0YsQ0FBQyxDQUFDLENBQ0g7aUJBQ0EsU0FBUyxDQUFDLENBQUMsS0FBaUIsRUFBRSxFQUFFO2dCQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzs4R0F4QlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYXNpcVRva2VuLCBCYXNpcVRva2VuUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVzdE1ldGhvZCwgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0JztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhc2lxVG9rZW5TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QWJzdHJhY3RNb2RlbCwgQmFzaXFUb2tlbiwgQ29sbGVjdGlvbjxCYXNpcVRva2VuPj4ge1xuICBwcm90ZWN0ZWQgZW5kcG9pbnRVcmkgPSAnYmFzaXEvdG9rZW5zJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIEJhc2lxVG9rZW4gPSBCYXNpcVRva2VuO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBDb2xsZWN0aW9uID0gQ29sbGVjdGlvbjtcbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbJ3Bvc3QnLCAncG9zdEJhdGNoJywgJ3B1dCcsICdwdXRCYXRjaCcsICdkZWxldGUnLCAnZGVsZXRlQmF0Y2gnXTtcblxuICAvKipcbiAgICogQWNjZXNzIHRva2VuIHRvIHVzZSBiYXNpcSBmbG93XG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uPEJhc2lxVG9rZW4+PiB7XG4gICAgaWYgKCF0aGlzLmNhY2hlIHx8IHRoaXMuY2FjaGUuZmlyc3QuaXNFeHBpcmVkKCkpIHtcbiAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy5hcGlVcmwpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IEJhc2lxVG9rZW5SZXNwb25zZSk6IEJhc2lxVG9rZW4gPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFzaXFUb2tlbihyZXNwb25zZS5hY2Nlc3NfdG9rZW4sIG5ldyBEYXRlKG5vdyArIHJlc3BvbnNlLmV4cGlyZXNfaW4gKiAxMDAwKSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh0b2tlbjogQmFzaXFUb2tlbikgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoW3Rva2VuXSwgJ2dldCcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtdG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEtdG9rZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFzQixNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUtyRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBOEQ7SUFIckc7O1FBSVksZ0JBQVcsR0FBRyxjQUFjLENBQUM7UUFDdkMsZUFBVSxHQUFzQixVQUFVLENBQUM7UUFDM0Msb0JBQWUsR0FBc0IsVUFBVSxDQUFDO1FBQ2hELG9CQUFlLEdBQWlCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztLQXVCbkc7SUFyQkM7O09BRUc7SUFDSCxHQUFHO1FBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNwRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2lCQUN2QixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBNEIsRUFBYyxFQUFFO2dCQUMvQyxNQUFNLEdBQUcsR0FBVyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN6QyxPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRixDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzs4R0ExQlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYXNpcVRva2VuLCBCYXNpcVRva2VuUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVzdE1ldGhvZCwgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0JztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhc2lxVG9rZW5TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8QWJzdHJhY3RNb2RlbCwgQmFzaXFUb2tlbiwgQ29sbGVjdGlvbjxCYXNpcVRva2VuPj4ge1xuICBwcm90ZWN0ZWQgZW5kcG9pbnRVcmkgPSAnYmFzaXEvdG9rZW5zJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIEJhc2lxVG9rZW4gPSBCYXNpcVRva2VuO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBDb2xsZWN0aW9uID0gQ29sbGVjdGlvbjtcbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbJ3Bvc3QnLCAncG9zdEJhdGNoJywgJ3B1dCcsICdwdXRCYXRjaCcsICdkZWxldGUnLCAnZGVsZXRlQmF0Y2gnXTtcblxuICAvKipcbiAgICogQWNjZXNzIHRva2VuIHRvIHVzZSBiYXNpcSBmbG93XG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uPEJhc2lxVG9rZW4+PiB7XG4gICAgaWYgKCghdGhpcy5jYWNoZSB8fCB0aGlzLmNhY2hlLmZpcnN0LmlzRXhwaXJlZCgpKSAmJiAhdGhpcy5pc1BlbmRpbmcpIHtcbiAgICAgIHRoaXMuaXNQZW5kaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuaHR0cC5nZXQodGhpcy5hcGlVcmwpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IEJhc2lxVG9rZW5SZXNwb25zZSk6IEJhc2lxVG9rZW4gPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFzaXFUb2tlbihyZXNwb25zZS5hY2Nlc3NfdG9rZW4sIG5ldyBEYXRlKG5vdyArIHJlc3BvbnNlLmV4cGlyZXNfaW4gKiAxMDAwKSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh0b2tlbjogQmFzaXFUb2tlbikgPT4ge1xuICAgICAgICAgIHRoaXMuaXNQZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZShbdG9rZW5dLCAnZ2V0Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuIl19