taxtank-core 0.32.24 → 0.32.26

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 (155) hide show
  1. package/esm2022/lib/db/Models/document/document-folder.mjs +1 -1
  2. package/esm2022/lib/db/Models/document/folder-document.mjs +4 -0
  3. package/esm2022/lib/db/Models/index.mjs +2 -3
  4. package/esm2022/lib/interfaces/index.mjs +1 -2
  5. package/esm2022/lib/models/budget/budget.mjs +1 -4
  6. package/esm2022/lib/models/client/annual-client-details.mjs +1 -13
  7. package/esm2022/lib/models/client/client-income-types.mjs +1 -4
  8. package/esm2022/lib/models/depreciation/depreciation-capital-project.mjs +1 -7
  9. package/esm2022/lib/models/document/document-folder.mjs +1 -4
  10. package/esm2022/lib/models/document/document.mjs +3 -6
  11. package/esm2022/lib/models/holding/holding-sale.mjs +1 -4
  12. package/esm2022/lib/models/holding/holding-type.mjs +1 -4
  13. package/esm2022/lib/models/holding/holding.mjs +1 -4
  14. package/esm2022/lib/models/property/property-category-movement.mjs +1 -7
  15. package/esm2022/lib/models/property/property-category.mjs +1 -6
  16. package/esm2022/lib/models/property/property-document.mjs +1 -6
  17. package/esm2022/lib/models/property/property-forecast.mjs +1 -7
  18. package/esm2022/lib/models/property/property-sale/property-sale.mjs +1 -8
  19. package/esm2022/lib/models/property/property-share.mjs +1 -7
  20. package/esm2022/lib/models/property/property-subscription.mjs +1 -1
  21. package/esm2022/lib/models/property/property-valuation.mjs +1 -7
  22. package/esm2022/lib/models/property/property.mjs +1 -9
  23. package/esm2022/lib/models/user/user.mjs +1 -6
  24. package/esm2022/lib/models/user-event/user-event-setting.mjs +1 -4
  25. package/esm2022/lib/services/auth/auth.service.mjs +3 -8
  26. package/esm2022/lib/services/auth/jwt.service.mjs +1 -1
  27. package/esm2022/lib/services/http/bank/bank-connection/bank-connection.service.mjs +3 -3
  28. package/esm2022/lib/services/http/document/document.service.mjs +1 -1
  29. package/esm2022/lib/services/http/facebook/facebook.service.mjs +4 -7
  30. package/esm2022/lib/services/http/firm/client-invite/client-invite.service.mjs +3 -3
  31. package/esm2022/lib/services/http/google/google.service.mjs +1 -2
  32. package/esm2022/lib/services/http/property/property-category-movement/property-category-movement.service.mjs +2 -7
  33. package/esm2022/lib/services/http/property/property-share/property-share.service.mjs +2 -10
  34. package/esm2022/lib/services/http/property/property-valuation/property-valuation.service.mjs +2 -7
  35. package/esm2022/lib/services/http/property/property.service.mjs +2 -19
  36. package/esm2022/lib/services/http/rest/rest-old.service.mjs +1 -3
  37. package/esm2022/lib/services/http/rest/rest.service.mjs +9 -47
  38. package/esm2022/lib/services/http/subscription/service-subscription/subscription.service.mjs +2 -2
  39. package/esm2022/lib/services/http/user/financial-year/financial-year.service.mjs +4 -7
  40. package/esm2022/lib/services/http/user/user.service.mjs +11 -41
  41. package/fesm2022/taxtank-core.mjs +96 -300
  42. package/fesm2022/taxtank-core.mjs.map +1 -1
  43. package/lib/db/Models/document/document-folder.d.ts.map +1 -0
  44. package/lib/db/Models/document/{document.d.ts → folder-document.d.ts} +1 -1
  45. package/lib/db/Models/document/folder-document.d.ts.map +1 -0
  46. package/lib/db/Models/index.d.ts +1 -2
  47. package/lib/db/Models/index.d.ts.map +1 -0
  48. package/lib/interfaces/index.d.ts +0 -1
  49. package/lib/interfaces/index.d.ts.map +1 -0
  50. package/lib/models/budget/budget.d.ts +1 -3
  51. package/lib/models/budget/budget.d.ts.map +1 -0
  52. package/lib/models/client/annual-client-details.d.ts +1 -12
  53. package/lib/models/client/annual-client-details.d.ts.map +1 -0
  54. package/lib/models/client/client-income-types.d.ts +1 -8
  55. package/lib/models/client/client-income-types.d.ts.map +1 -0
  56. package/lib/models/depreciation/depreciation-capital-project.d.ts +1 -7
  57. package/lib/models/depreciation/depreciation-capital-project.d.ts.map +1 -0
  58. package/lib/models/document/document-folder.d.ts +1 -5
  59. package/lib/models/document/document-folder.d.ts.map +1 -0
  60. package/lib/models/document/document.d.ts +2 -4
  61. package/lib/models/document/document.d.ts.map +1 -0
  62. package/lib/models/holding/holding-sale.d.ts +1 -7
  63. package/lib/models/holding/holding-sale.d.ts.map +1 -0
  64. package/lib/models/holding/holding-type.d.ts +1 -6
  65. package/lib/models/holding/holding-type.d.ts.map +1 -0
  66. package/lib/models/holding/holding.d.ts +1 -6
  67. package/lib/models/holding/holding.d.ts.map +1 -0
  68. package/lib/models/property/property-category-movement.d.ts +1 -6
  69. package/lib/models/property/property-category-movement.d.ts.map +1 -0
  70. package/lib/models/property/property-category.d.ts +1 -5
  71. package/lib/models/property/property-category.d.ts.map +1 -0
  72. package/lib/models/property/property-document.d.ts +1 -5
  73. package/lib/models/property/property-document.d.ts.map +1 -0
  74. package/lib/models/property/property-forecast.d.ts +1 -7
  75. package/lib/models/property/property-forecast.d.ts.map +1 -0
  76. package/lib/models/property/property-sale/property-sale.d.ts +1 -7
  77. package/lib/models/property/property-sale/property-sale.d.ts.map +1 -0
  78. package/lib/models/property/property-share.d.ts +1 -6
  79. package/lib/models/property/property-share.d.ts.map +1 -0
  80. package/lib/models/property/property-subscription.d.ts.map +1 -0
  81. package/lib/models/property/property-valuation.d.ts +1 -7
  82. package/lib/models/property/property-valuation.d.ts.map +1 -0
  83. package/lib/models/property/property.d.ts +1 -8
  84. package/lib/models/property/property.d.ts.map +1 -0
  85. package/lib/models/user/user.d.ts +1 -5
  86. package/lib/models/user/user.d.ts.map +1 -0
  87. package/lib/models/user-event/user-event-setting.d.ts +1 -8
  88. package/lib/models/user-event/user-event-setting.d.ts.map +1 -0
  89. package/lib/services/auth/auth.service.d.ts.map +1 -0
  90. package/lib/services/auth/jwt.service.d.ts.map +1 -0
  91. package/lib/services/http/bank/bank-connection/bank-connection.service.d.ts.map +1 -0
  92. package/lib/services/http/bank/bank.service.d.ts.map +1 -0
  93. package/lib/services/http/bank/basiq/basiq-token.service.d.ts.map +1 -0
  94. package/lib/services/http/budget/budget.service.d.ts.map +1 -0
  95. package/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.d.ts.map +1 -0
  96. package/lib/services/http/chart-accounts/chart-accounts.service.d.ts.map +1 -0
  97. package/lib/services/http/client/capital-gain/annual-client-details.service.d.ts.map +1 -0
  98. package/lib/services/http/depreciation/depreciation-capital-project/depreciation-capital-project.service.d.ts.map +1 -0
  99. package/lib/services/http/document/document-folder/document-folder.service.d.ts.map +1 -0
  100. package/lib/services/http/document/document.service.d.ts +2 -2
  101. package/lib/services/http/document/document.service.d.ts.map +1 -0
  102. package/lib/services/http/facebook/facebook.service.d.ts +1 -3
  103. package/lib/services/http/facebook/facebook.service.d.ts.map +1 -0
  104. package/lib/services/http/file/file.service.d.ts.map +1 -0
  105. package/lib/services/http/firm/client-income/client-income-types.service.d.ts.map +1 -0
  106. package/lib/services/http/firm/client-invite/client-invite.service.d.ts.map +1 -0
  107. package/lib/services/http/firm/employee/employee.service.d.ts.map +1 -0
  108. package/lib/services/http/firm/employee-invite/employee-invite.service.d.ts.map +1 -0
  109. package/lib/services/http/google/google.service.d.ts.map +1 -0
  110. package/lib/services/http/holding/holding-sale.service.d.ts.map +1 -0
  111. package/lib/services/http/holding/holding-type.service.d.ts.map +1 -0
  112. package/lib/services/http/property/borrowing-report/borrowing-report.service.d.ts.map +1 -0
  113. package/lib/services/http/property/property-category/property-category.service.d.ts.map +1 -0
  114. package/lib/services/http/property/property-category-movement/property-category-movement.service.d.ts +1 -3
  115. package/lib/services/http/property/property-category-movement/property-category-movement.service.d.ts.map +1 -0
  116. package/lib/services/http/property/property-document/property-document.service.d.ts.map +1 -0
  117. package/lib/services/http/property/property-sale/property-sale.service.d.ts.map +1 -0
  118. package/lib/services/http/property/property-share/property-share.service.d.ts +1 -1
  119. package/lib/services/http/property/property-share/property-share.service.d.ts.map +1 -0
  120. package/lib/services/http/property/property-valuation/property-valuation.service.d.ts +1 -3
  121. package/lib/services/http/property/property-valuation/property-valuation.service.d.ts.map +1 -0
  122. package/lib/services/http/property/property.service.d.ts.map +1 -0
  123. package/lib/services/http/rest/rest-old.service.d.ts +0 -2
  124. package/lib/services/http/rest/rest-old.service.d.ts.map +1 -0
  125. package/lib/services/http/rest/rest.service.d.ts +4 -8
  126. package/lib/services/http/rest/rest.service.d.ts.map +1 -0
  127. package/lib/services/http/setup-item/setup-item.service.d.ts.map +1 -0
  128. package/lib/services/http/sole/bas-report/bas-report.service.d.ts.map +1 -0
  129. package/lib/services/http/sole/sole-business/sole-business.service.d.ts.map +1 -0
  130. package/lib/services/http/sole/sole-business-activity/sole-business-activity.service.d.ts.map +1 -0
  131. package/lib/services/http/sole/sole-business-loss/sole-business-loss-rules/sole-business-loss-offset-rule.service.d.ts.map +1 -0
  132. package/lib/services/http/sole/sole-contact/sole-contact.service.d.ts.map +1 -0
  133. package/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.d.ts.map +1 -0
  134. package/lib/services/http/subscription/service-payment/service-payment.service.d.ts.map +1 -0
  135. package/lib/services/http/subscription/service-price/service-price.service.d.ts.map +1 -0
  136. package/lib/services/http/subscription/service-product/service-product.service.d.ts.map +1 -0
  137. package/lib/services/http/subscription/service-subscription/subscription.service.d.ts.map +1 -0
  138. package/lib/services/http/transaction/transaction-allocation/allocation-rule/allocation-rule.service.d.ts.map +1 -0
  139. package/lib/services/http/user/financial-year/financial-year.service.d.ts +1 -3
  140. package/lib/services/http/user/financial-year/financial-year.service.d.ts.map +1 -0
  141. package/lib/services/http/user/user-event-setting/user-event-setting.service.d.ts.map +1 -0
  142. package/lib/services/http/user/user-event-type/user-event-type.service.d.ts.map +1 -0
  143. package/lib/services/http/user/user.service.d.ts +2 -0
  144. package/lib/services/http/user/user.service.d.ts.map +1 -0
  145. package/lib/services/http/user/users-invite/users-invite.service.d.ts.map +1 -0
  146. package/lib/services/http/vehicle/vehicle-claim.service.d.ts.map +1 -0
  147. package/lib/services/http/vehicle/vehicle-logbook/vehicle-logbook.service.d.ts.map +1 -0
  148. package/lib/services/http/vehicle/vehicle.service.d.ts.map +1 -0
  149. package/package.json +1 -1
  150. package/taxtank-core.d.ts.map +1 -0
  151. package/esm2022/lib/db/Models/document/document-base.mjs +0 -4
  152. package/esm2022/lib/db/Models/document/document.mjs +0 -4
  153. package/esm2022/lib/interfaces/mp-trackable.interface.mjs +0 -2
  154. package/lib/db/Models/document/document-base.d.ts +0 -10
  155. package/lib/interfaces/mp-trackable.interface.d.ts +0 -6
@@ -1,9 +1,7 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { throwError as observableThrowError } from 'rxjs';
3
2
  import { PropertySale, PropertyShare, User } from '../../../../models';
4
3
  import { RestService } from '../../rest';
5
4
  import { PropertyShareCollection } from '../../../../collections';
6
- import { catchError, map } from 'rxjs/operators';
7
5
  import { PropertyShareStatusEnum } from '../../../../db/Enums/property/property-share-status.enum';
8
6
  import clone from 'lodash/clone';
9
7
  import * as i0 from "@angular/core";
@@ -37,13 +35,7 @@ export class PropertyShareService extends RestService {
37
35
  * @param share user to share property
38
36
  */
39
37
  reinvite(share) {
40
- return this.http.post(`${this.apiUrl}/${share.id}/reinvite`, {})
41
- .pipe(map(() => {
42
- this.mpService.track('reinvitePropertyShare', share.getMpData());
43
- }), catchError((error) => {
44
- this.mpService.track('reinvitePropertyShareError', share.getMpData());
45
- return observableThrowError(error);
46
- }));
38
+ return this.http.post(`${this.apiUrl}/${share.id}/reinvite`, {});
47
39
  }
48
40
  /**
49
41
  * Listen to User updated event
@@ -71,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
71
63
  type: Inject,
72
64
  args: ['environment']
73
65
  }] }]; } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktc2hhcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LXNoYXJlL3Byb3BlcnR5LXNoYXJlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXJELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbkcsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDOztBQUVqQyxtREFBbUQ7QUFJbkQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFdBQXNFO0lBTzlHLFlBQTZDLFdBQWdCO1FBQzNELEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUR3QixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQU43RCwwQ0FBMEM7UUFDMUMsZ0JBQVcsR0FBRyxtQkFBbUIsQ0FBQztRQUNsQyxlQUFVLEdBQXlCLGFBQWEsQ0FBQztRQUNqRCxvQkFBZSxHQUFtQyx1QkFBdUIsQ0FBQztRQUMxRSxvQkFBZSxHQUFpQixDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFJdkUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFvQjtRQUN6QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsS0FBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQzthQUM3RCxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUV0RSxPQUFPLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQVMsRUFBRTtZQUM3RSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7K0dBNURVLG9CQUFvQixrQkFPWCxhQUFhO21IQVB0QixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBUWMsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIGFzIG9ic2VydmFibGVUaHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNoYXJlIGFzIFByb3BlcnR5U2hhcmVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IFByb3BlcnR5U2FsZSwgUHJvcGVydHlTaGFyZSwgVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kLCBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFByb3BlcnR5U2hhcmVDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNoYXJlU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LXNoYXJlLXN0YXR1cy5lbnVtJztcbmltcG9ydCBjbG9uZSBmcm9tICdsb2Rhc2gvY2xvbmUnO1xuXG4vLyBAVE9ETyBjaGVjayBhbmQgaW1wcm92ZSBsb2dpYyBkdXJpbmcgcmVmYWN0b3JpbmdcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5U2hhcmVTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8UHJvcGVydHlTaGFyZUJhc2UsIFByb3BlcnR5U2hhcmUsIFByb3BlcnR5U2hhcmVDb2xsZWN0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgLy8gYXBpIHVybCBwYXJhbWV0ZXIgZm9yIHByb3BlcnRpZXMgc2hhcmVzXG4gIGVuZHBvaW50VXJpID0gJ3Byb3BlcnRpZXMvc2hhcmVzJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIFByb3BlcnR5U2hhcmUgPSBQcm9wZXJ0eVNoYXJlO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eVNoYXJlQ29sbGVjdGlvbiA9IFByb3BlcnR5U2hhcmVDb2xsZWN0aW9uO1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsnZGVsZXRlQmF0Y2gnLCAncHV0QmF0Y2gnLCAncG9zdEJhdGNoJ107XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSkge1xuICAgIHN1cGVyKGVudmlyb25tZW50KTtcbiAgICB0aGlzLmxpc3RlbkV2ZW50cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBFdmVudCBEaXNwYXRjaGVyIGV2ZW50c1xuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVXNlclVwZGF0ZWQoKTtcbiAgICB0aGlzLmxpc3RlblNhbGVzQ2hhbmdlcygpO1xuICB9XG5cbiAgYWNjZXB0KHNoYXJlOiBQcm9wZXJ0eVNoYXJlKTogT2JzZXJ2YWJsZTxQcm9wZXJ0eVNoYXJlPiB7XG4gICAgcmV0dXJuIHRoaXMucHV0KE9iamVjdC5hc3NpZ24oY2xvbmUoc2hhcmUpLCB7IHN0YXR1czogUHJvcGVydHlTaGFyZVN0YXR1c0VudW0uQVBQUk9WRUQgfSkpO1xuICB9XG5cbiAgcmVqZWN0KHNoYXJlOiBQcm9wZXJ0eVNoYXJlKTogT2JzZXJ2YWJsZTxQcm9wZXJ0eVNoYXJlPiB7XG4gICAgcmV0dXJuIHRoaXMucHV0KE9iamVjdC5hc3NpZ24oY2xvbmUoc2hhcmUpLCB7IHN0YXR1czogUHJvcGVydHlTaGFyZVN0YXR1c0VudW0uUkVKRUNURUQgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlLWludml0ZSBwcm9wZXJ0eSBzaGFyZVxuICAgKiBAcGFyYW0gc2hhcmUgdXNlciB0byBzaGFyZSBwcm9wZXJ0eVxuICAgKi9cbiAgcmVpbnZpdGUoc2hhcmU6IFByb3BlcnR5U2hhcmUpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hcGlVcmx9LyR7c2hhcmUuaWR9L3JlaW52aXRlYCwge30pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm1wU2VydmljZS50cmFjaygncmVpbnZpdGVQcm9wZXJ0eVNoYXJlJywgc2hhcmUuZ2V0TXBEYXRhKCkpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5tcFNlcnZpY2UudHJhY2soJ3JlaW52aXRlUHJvcGVydHlTaGFyZUVycm9yJywgc2hhcmUuZ2V0TXBEYXRhKCkpO1xuXG4gICAgICAgICAgcmV0dXJuIG9ic2VydmFibGVUaHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIFVzZXIgdXBkYXRlZCBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5Vc2VyVXBkYXRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2Uub24yKFVzZXIuZ2V0RXZlbnROYW1lKCdwdXQnKSkuc3Vic2NyaWJlKCgpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQFRvZG8gQWxleCByZWZhY3RvciBhZnRlciBQcm9wZXJ0eVNoYXJlIGZ1bmN0aW9uYWxpdHkgaW4gUHJvcGVydHlTZXJ2aWNlIHdpbGwgYmUgY2xlYXJlZCB1cFxuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5TYWxlc0NoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5DU0UoUHJvcGVydHlTYWxlLCB0aGlzLnJlZnJlc2hDYWNoZSwgWydwb3N0JywgJ2RlbGV0ZSddKTtcbiAgfVxufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktc2hhcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LXNoYXJlL3Byb3BlcnR5LXNoYXJlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNuRyxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7O0FBRWpDLG1EQUFtRDtBQUluRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsV0FBc0U7SUFPOUcsWUFBNkMsV0FBZ0I7UUFDM0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRHdCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTjdELDBDQUEwQztRQUMxQyxnQkFBVyxHQUFHLG1CQUFtQixDQUFDO1FBQ2xDLGVBQVUsR0FBeUIsYUFBYSxDQUFDO1FBQ2pELG9CQUFlLEdBQW1DLHVCQUF1QixDQUFDO1FBQzFFLG9CQUFlLEdBQWlCLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUl2RSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUNiLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FDYixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUMxRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFvQjtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssaUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFTLEVBQUU7WUFDN0UsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDOytHQXREVSxvQkFBb0Isa0JBT1gsYUFBYTttSEFQdEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVFjLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJvcGVydHlTaGFyZSBhcyBQcm9wZXJ0eVNoYXJlQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNhbGUsIFByb3BlcnR5U2hhcmUsIFVzZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVzdE1ldGhvZCwgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXN0JztcbmltcG9ydCB7IElFdmVudExpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNoYXJlQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgUHJvcGVydHlTaGFyZVN0YXR1c0VudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1zaGFyZS1zdGF0dXMuZW51bSc7XG5pbXBvcnQgY2xvbmUgZnJvbSAnbG9kYXNoL2Nsb25lJztcblxuLy8gQFRPRE8gY2hlY2sgYW5kIGltcHJvdmUgbG9naWMgZHVyaW5nIHJlZmFjdG9yaW5nXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVNoYXJlU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFByb3BlcnR5U2hhcmVCYXNlLCBQcm9wZXJ0eVNoYXJlLCBQcm9wZXJ0eVNoYXJlQ29sbGVjdGlvbj4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIC8vIGFwaSB1cmwgcGFyYW1ldGVyIGZvciBwcm9wZXJ0aWVzIHNoYXJlc1xuICBlbmRwb2ludFVyaSA9ICdwcm9wZXJ0aWVzL3NoYXJlcyc7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eVNoYXJlID0gUHJvcGVydHlTaGFyZTtcbiAgY29sbGVjdGlvbkNsYXNzOiB0eXBlb2YgUHJvcGVydHlTaGFyZUNvbGxlY3Rpb24gPSBQcm9wZXJ0eVNoYXJlQ29sbGVjdGlvbjtcbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbJ2RlbGV0ZUJhdGNoJywgJ3B1dEJhdGNoJywgJ3Bvc3RCYXRjaCddO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnkpIHtcbiAgICBzdXBlcihlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRXZlbnQgRGlzcGF0Y2hlciBldmVudHNcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlblVzZXJVcGRhdGVkKCk7XG4gICAgdGhpcy5saXN0ZW5TYWxlc0NoYW5nZXMoKTtcbiAgfVxuXG4gIGFjY2VwdChzaGFyZTogUHJvcGVydHlTaGFyZSk6IE9ic2VydmFibGU8UHJvcGVydHlTaGFyZT4ge1xuICAgIHJldHVybiB0aGlzLnB1dChcbiAgICAgIE9iamVjdC5hc3NpZ24oY2xvbmUoc2hhcmUpLCB7IHN0YXR1czogUHJvcGVydHlTaGFyZVN0YXR1c0VudW0uQVBQUk9WRUQgfSlcbiAgICApO1xuICB9XG5cbiAgcmVqZWN0KHNoYXJlOiBQcm9wZXJ0eVNoYXJlKTogT2JzZXJ2YWJsZTxQcm9wZXJ0eVNoYXJlPiB7XG4gICAgcmV0dXJuIHRoaXMucHV0KFxuICAgICAgT2JqZWN0LmFzc2lnbihjbG9uZShzaGFyZSksIHsgc3RhdHVzOiBQcm9wZXJ0eVNoYXJlU3RhdHVzRW51bS5SRUpFQ1RFRCB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmUtaW52aXRlIHByb3BlcnR5IHNoYXJlXG4gICAqIEBwYXJhbSBzaGFyZSB1c2VyIHRvIHNoYXJlIHByb3BlcnR5XG4gICAqL1xuICByZWludml0ZShzaGFyZTogUHJvcGVydHlTaGFyZSk6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXBpVXJsfS8ke3NoYXJlLmlkfS9yZWludml0ZWAsIHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gVXNlciB1cGRhdGVkIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIGxpc3RlblVzZXJVcGRhdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIoVXNlci5nZXRFdmVudE5hbWUoJ3B1dCcpKS5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ2FjaGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVG9kbyBBbGV4IHJlZmFjdG9yIGFmdGVyIFByb3BlcnR5U2hhcmUgZnVuY3Rpb25hbGl0eSBpbiBQcm9wZXJ0eVNlcnZpY2Ugd2lsbCBiZSBjbGVhcmVkIHVwXG4gICAqL1xuICBwcml2YXRlIGxpc3RlblNhbGVzQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbkNTRShQcm9wZXJ0eVNhbGUsIHRoaXMucmVmcmVzaENhY2hlLCBbJ3Bvc3QnLCAnZGVsZXRlJ10pO1xuICB9XG59XG4iXX0=
@@ -1,8 +1,7 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { RestService } from '../../rest';
3
- import { Property, PropertyValuation } from '../../../../models';
3
+ import { PropertyValuation } from '../../../../models';
4
4
  import { Collection } from '../../../../collections';
5
- import { plainToClass } from 'class-transformer';
6
5
  import * as i0 from "@angular/core";
7
6
  export class PropertyValuationService extends RestService {
8
7
  constructor() {
@@ -12,10 +11,6 @@ export class PropertyValuationService extends RestService {
12
11
  this.collectionClass = (Collection);
13
12
  this.disabledMethods = ['postBatch', 'putBatch'];
14
13
  }
15
- post(valuation, property) {
16
- valuation.property = plainToClass(Property, { id: property.id });
17
- return super.post(valuation, property);
18
- }
19
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PropertyValuationService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
20
15
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PropertyValuationService, providedIn: 'root' }); }
21
16
  }
@@ -25,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
25
20
  providedIn: 'root'
26
21
  }]
27
22
  }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmFsdWF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9wcm9wZXJ0eS9wcm9wZXJ0eS12YWx1YXRpb24vcHJvcGVydHktdmFsdWF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXJELE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU1qRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsV0FBa0Y7SUFIaEk7O1FBSVksZ0JBQVcsR0FBRyxxQkFBcUIsQ0FBQztRQUM5QyxlQUFVLEdBQTZCLGlCQUFpQixDQUFDO1FBQ3pELG9CQUFlLElBQXlDLFVBQTZCLEVBQUM7UUFDdEYsb0JBQWUsR0FBaUIsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7S0FPM0Q7SUFMQyxJQUFJLENBQUMsU0FBNEIsRUFBRSxRQUFrQjtRQUNuRCxTQUFTLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQVZVLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kLCBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QnO1xuaW1wb3J0IHsgUHJvcGVydHlWYWx1YXRpb24gYXMgUHJvcGVydHlWYWx1YXRpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IFByb3BlcnR5LCBQcm9wZXJ0eVZhbHVhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgUHJvcGVydHlWYWx1YXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVZhbHVhdGlvblNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxQcm9wZXJ0eVZhbHVhdGlvbkJhc2UsIFByb3BlcnR5VmFsdWF0aW9uLCBQcm9wZXJ0eVZhbHVhdGlvbkNvbGxlY3Rpb24+IHtcbiAgcHJvdGVjdGVkIGVuZHBvaW50VXJpID0gJ3Byb3BlcnR5LXZhbHVhdGlvbnMnO1xuICBtb2RlbENsYXNzOiB0eXBlb2YgUHJvcGVydHlWYWx1YXRpb24gPSBQcm9wZXJ0eVZhbHVhdGlvbjtcbiAgY29sbGVjdGlvbkNsYXNzOiB0eXBlb2YgQ29sbGVjdGlvbjxQcm9wZXJ0eVZhbHVhdGlvbj4gPSBDb2xsZWN0aW9uPFByb3BlcnR5VmFsdWF0aW9uPjtcbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbJ3Bvc3RCYXRjaCcsICdwdXRCYXRjaCddO1xuXG4gIHBvc3QodmFsdWF0aW9uOiBQcm9wZXJ0eVZhbHVhdGlvbiwgcHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eVZhbHVhdGlvbj4ge1xuICAgIHZhbHVhdGlvbi5wcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgeyBpZDogcHJvcGVydHkuaWQgfSk7XG5cbiAgICByZXR1cm4gc3VwZXIucG9zdCh2YWx1YXRpb24sIHByb3BlcnR5KTtcbiAgfVxufVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdmFsdWF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9wcm9wZXJ0eS9wcm9wZXJ0eS12YWx1YXRpb24vcHJvcGVydHktdmFsdWF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXJELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNckQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFdBQWtGO0lBSGhJOztRQUlZLGdCQUFXLEdBQUcscUJBQXFCLENBQUM7UUFDOUMsZUFBVSxHQUE2QixpQkFBaUIsQ0FBQztRQUN6RCxvQkFBZSxJQUF5QyxVQUE2QixFQUFDO1FBQ3RGLG9CQUFlLEdBQWlCLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0tBQzNEOytHQUxZLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kLCBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QnO1xuaW1wb3J0IHsgUHJvcGVydHlWYWx1YXRpb24gYXMgUHJvcGVydHlWYWx1YXRpb25CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IFByb3BlcnR5VmFsdWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBQcm9wZXJ0eVZhbHVhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5VmFsdWF0aW9uU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFByb3BlcnR5VmFsdWF0aW9uQmFzZSwgUHJvcGVydHlWYWx1YXRpb24sIFByb3BlcnR5VmFsdWF0aW9uQ29sbGVjdGlvbj4ge1xuICBwcm90ZWN0ZWQgZW5kcG9pbnRVcmkgPSAncHJvcGVydHktdmFsdWF0aW9ucyc7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eVZhbHVhdGlvbiA9IFByb3BlcnR5VmFsdWF0aW9uO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBDb2xsZWN0aW9uPFByb3BlcnR5VmFsdWF0aW9uPiA9IENvbGxlY3Rpb248UHJvcGVydHlWYWx1YXRpb24+O1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsncG9zdEJhdGNoJywgJ3B1dEJhdGNoJ107XG59XG4iXX0=
@@ -1,6 +1,5 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { throwError as observableThrowError } from 'rxjs';
3
- import { catchError, map } from 'rxjs/operators';
2
+ import { map } from 'rxjs/operators';
4
3
  import { plainToClass } from 'class-transformer';
5
4
  import { AppEvent, AppEventTypeEnum, Property, PropertyCategoryMovement, PropertySale, PropertyShare, PropertySubscription, PropertyValuation } from '../../../models';
6
5
  import { RestService } from '../rest';
@@ -59,15 +58,7 @@ export class PropertyService extends RestService {
59
58
  .pipe(map((propertySubscriptionBase) => {
60
59
  const newPropertySubscription = plainToClass(PropertySubscription, propertySubscriptionBase);
61
60
  const activatedProperty = plainToClass(Property, Object.assign({}, property, { subscriptions: [newPropertySubscription] }));
62
- this.mpService.track(`postPropertySubscription`, {
63
- 'Property': property.name,
64
- });
65
61
  this.updateCache([activatedProperty], 'put');
66
- }), catchError((error) => {
67
- this.mpService.track('postPropertySubscriptionError', {
68
- 'Property': property.name,
69
- });
70
- return observableThrowError(error);
71
62
  }));
72
63
  }
73
64
  /**
@@ -78,15 +69,7 @@ export class PropertyService extends RestService {
78
69
  return this.http.delete(`${this.environment.apiV2}/property-subscriptions/${property.getCurrentSubscription().id}`)
79
70
  .pipe(map(() => {
80
71
  const deactivatedProperty = plainToClass(Property, Object.assign({}, property, { subscriptions: [] }));
81
- this.mpService.track(`deletePropertySubscription`, {
82
- 'Property': property.name,
83
- });
84
72
  this.updateCache([deactivatedProperty], 'put');
85
- }), catchError((error) => {
86
- this.mpService.track('deletePropertySubscriptionError', {
87
- 'Property': property.name,
88
- });
89
- return observableThrowError(error);
90
73
  }));
91
74
  }
92
75
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PropertyService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -101,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
101
84
  type: Inject,
102
85
  args: ['environment']
103
86
  }] }]; } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLbkQsT0FBTyxFQUFjLFVBQVUsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixRQUFRLEVBQUUsd0JBQXdCLEVBQ2xDLFlBQVksRUFDWixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRzFEOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUF1RDtJQU0xRixZQUE2QyxXQUFnQjtRQUMzRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFEd0IsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFMN0QsZUFBVSxHQUFvQixRQUFRLENBQUM7UUFDdkMsb0JBQWUsR0FBOEIsa0JBQWtCLENBQUM7UUFDaEUsZ0JBQVcsR0FBRyxZQUFZLENBQUM7UUFDM0Isb0JBQWUsR0FBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUk5QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FB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LE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssMkJBQTJCLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ2hILElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsTUFBTSxtQkFBbUIsR0FBYSxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFakgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEVBQUU7Z0JBQ2pELFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSTthQUMxQixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEVBQUU7Z0JBQ3RELFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSTthQUMxQixDQUFDLENBQUM7WUFFSCxPQUFPLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOytHQXBHVSxlQUFlLGtCQU1OLGFBQWE7bUhBTnRCLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT2MsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBQcm9wZXJ0eSBhcyBQcm9wZXJ0eUJhc2UsXG4gIFByb3BlcnR5U3Vic2NyaXB0aW9uIGFzIFByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZVxufSBmcm9tICcuLi8uLi8uLi9kYi9Nb2RlbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHtcbiAgQXBwRXZlbnQsXG4gIEFwcEV2ZW50VHlwZUVudW0sXG4gIFByb3BlcnR5LCBQcm9wZXJ0eUNhdGVnb3J5TW92ZW1lbnQsXG4gIFByb3BlcnR5U2FsZSxcbiAgUHJvcGVydHlTaGFyZSxcbiAgUHJvcGVydHlTdWJzY3JpcHRpb24sXG4gIFByb3BlcnR5VmFsdWF0aW9uXG59IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBJRXZlbnRMaXN0ZW5lciB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUmVzdE1ldGhvZCwgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi9yZXN0JztcbmltcG9ydCB7IFByb3BlcnR5Q29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG4vKipcbiAqIEBUb2RvIEFsZXggcmVtb3ZlIGZ1bmN0aW9uYWxpdHkgcmVsYXRlZCB0byBQcm9wZXJ0eVNoYXJlXG4gKiBAVE9ETyBBbGV4IChUVC0xNzc3KTogcmVwbGFjZSBhbGwgZXZlbnQgbGlzdGVuZXJzIHdpdGggdGhlIG5ldyB0aGlzLmxpc3RlbigpXG4gKiBTZXJ2aWNlIGZvciB3b3JrIHdpdGggUHJvcGVydHlcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8UHJvcGVydHlCYXNlLCBQcm9wZXJ0eSwgUHJvcGVydHlDb2xsZWN0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgbW9kZWxDbGFzczogdHlwZW9mIFByb3BlcnR5ID0gUHJvcGVydHk7XG4gIGNvbGxlY3Rpb25DbGFzczogdHlwZW9mIFByb3BlcnR5Q29sbGVjdGlvbiA9IFByb3BlcnR5Q29sbGVjdGlvbjtcbiAgZW5kcG9pbnRVcmkgPSAncHJvcGVydGllcyc7XG4gIGRpc2FibGVkTWV0aG9kczogUmVzdE1ldGhvZFtdID0gWydkZWxldGVCYXRjaCddO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnkpIHtcbiAgICBzdXBlcihlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyByZW1vdmUgd2hlbiBmb3JlY2FzdCBtb3ZlZCB0byBzZXBhcmF0ZWQgYXBpXG4gICAqL1xuICBwdXQocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eT4ge1xuICAgIHJldHVybiBzdXBlci5wdXQocHJvcGVydHkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1cGRhdGVkUHJvcGVydHk6IFByb3BlcnR5KTogUHJvcGVydHkgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9VUERBVEVELCBwcm9wZXJ0eSkpO1xuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRQcm9wZXJ0eTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbm8gcmVmcmVzaCBjYWNoZSB3aXRoIHRoaXMudXBkYXRlQ2FjaGUoW3RoaXMuZ2V0Q2FjaGUoKS5maW5kQnkoJ2lkJywgY2hhbmdlLm1vZGVsLnByb3BlcnR5LmlkKV0sICdwdXQnKTtcbiAgICovXG4gIGxpc3RlbkV2ZW50cygpOiB2b2lkIHtcbiAgICAvLyBzaGFyZSBpbnZpdGUgYWNjZXB0ZWQgZXZlbnQgZ2l2ZXMgYWNjZXNzIHRvIG5ldyBwcm9wZXJ0eVxuICAgIHRoaXMubGlzdGVuQ1NFKFByb3BlcnR5U2hhcmUsIHRoaXMucmVmcmVzaENhY2hlLCBbJ3B1dCddKTtcbiAgICAvLyBAVE9ETyBnZXQgZnJvbSBzZXBhcmF0ZWQgYXBpP1xuICAgIHRoaXMubGlzdGVuQ1NFKFByb3BlcnR5U2FsZSwgdGhpcy5yZWZyZXNoQ2FjaGUsIFsncG9zdCcsICdwdXQnLCAnZGVsZXRlJ10pO1xuICAgIC8vIHByb3BlcnR5IGNhY2hlcyBjaGlsZCBlbnRpdGllcyB0byBpbXByb3ZlIHBlcmZvcm1hbmNlXG4gICAgdGhpcy5saXN0ZW5DU0UoUHJvcGVydHlWYWx1YXRpb24sIHRoaXMucmVmcmVzaENhY2hlKTtcbiAgICB0aGlzLmxpc3RlbkNTRShQcm9wZXJ0eUNhdGVnb3J5TW92ZW1lbnQsIHRoaXMucmVmcmVzaENhY2hlKTtcbiAgfVxuXG4gIHVwZGF0ZURlcHJlY2lhdGlvbkNhbGN1bGF0aW9uKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHByb3BlcnR5VG9VcGRhdGU6IFByb3BlcnR5ID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5LCB7IGlkOiBwcm9wZXJ0eS5pZCwgZGVwcmVjaWF0aW9uQ2FsY3VsYXRpb246IHByb3BlcnR5LmRlcHJlY2lhdGlvbkNhbGN1bGF0aW9uIH0pXG5cbiAgICByZXR1cm4gdGhpcy5wdXQocHJvcGVydHlUb1VwZGF0ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRQcm9wZXJ0eTogUHJvcGVydHkpID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfREVQUkVDSUFUSU9OX0NBTENVTEFUSU9OX1VQREFURUQsIHVwZGF0ZWRQcm9wZXJ0eSkpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBtb3ZlIHRvIHNlcGFyYXRlZCBhcGlcbiAgICogQWN0aXZhdGUgZGVhY3RpdmF0ZWQgcHJvcGVydHlcbiAgICovXG4gIGFjdGl2YXRlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0eS1zdWJzY3JpcHRpb25zYCwgeyBwcm9wZXJ0eSB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocHJvcGVydHlTdWJzY3JpcHRpb25CYXNlOiBQcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdQcm9wZXJ0eVN1YnNjcmlwdGlvbjogUHJvcGVydHlTdWJzY3JpcHRpb24gPSBwbGFpblRvQ2xhc3MoUHJvcGVydHlTdWJzY3JpcHRpb24sIHByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZSk7XG4gICAgICAgICAgY29uc3QgYWN0aXZhdGVkUHJvcGVydHk6IFByb3BlcnR5ID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5LCBPYmplY3QuYXNzaWduKHt9LCBwcm9wZXJ0eSwgeyBzdWJzY3JpcHRpb25zOiBbbmV3UHJvcGVydHlTdWJzY3JpcHRpb25dIH0pKTtcblxuICAgICAgICAgIHRoaXMubXBTZXJ2aWNlLnRyYWNrKGBwb3N0UHJvcGVydHlTdWJzY3JpcHRpb25gLCB7XG4gICAgICAgICAgICAnUHJvcGVydHknOiBwcm9wZXJ0eS5uYW1lLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZShbYWN0aXZhdGVkUHJvcGVydHldLCAncHV0Jyk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLm1wU2VydmljZS50cmFjaygncG9zdFByb3BlcnR5U3Vic2NyaXB0aW9uRXJyb3InLCB7XG4gICAgICAgICAgICAnUHJvcGVydHknOiBwcm9wZXJ0eS5uYW1lLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmV0dXJuIG9ic2VydmFibGVUaHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBzZXBhcmF0ZWQgYXBpXG4gICAqIERlYWN0aXZhdGUgYWN0aXZhdGVkIHByb3BlcnR5XG4gICAqL1xuICBkZWFjdGl2YXRlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3Byb3BlcnR5LXN1YnNjcmlwdGlvbnMvJHtwcm9wZXJ0eS5nZXRDdXJyZW50U3Vic2NyaXB0aW9uKCkuaWR9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlYWN0aXZhdGVkUHJvcGVydHk6IFByb3BlcnR5ID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5LCBPYmplY3QuYXNzaWduKHt9LCBwcm9wZXJ0eSwgeyBzdWJzY3JpcHRpb25zOiBbXSB9KSk7XG5cbiAgICAgICAgICB0aGlzLm1wU2VydmljZS50cmFjayhgZGVsZXRlUHJvcGVydHlTdWJzY3JpcHRpb25gLCB7XG4gICAgICAgICAgICAnUHJvcGVydHknOiBwcm9wZXJ0eS5uYW1lLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZShbZGVhY3RpdmF0ZWRQcm9wZXJ0eV0sICdwdXQnKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMubXBTZXJ2aWNlLnRyYWNrKCdkZWxldGVQcm9wZXJ0eVN1YnNjcmlwdGlvbkVycm9yJywge1xuICAgICAgICAgICAgJ1Byb3BlcnR5JzogcHJvcGVydHkubmFtZSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG59XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNbkQsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixRQUFRLEVBQUUsd0JBQXdCLEVBQ2xDLFlBQVksRUFDWixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRzFEOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUF1RDtJQU0xRixZQUE2QyxXQUFnQjtRQUMzRCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFEd0IsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFMN0QsZUFBVSxHQUFvQixRQUFRLENBQUM7UUFDdkMsb0JBQWUsR0FBOEIsa0JBQWtCLENBQUM7UUFDaEUsZ0JBQVcsR0FBRyxZQUFZLENBQUM7UUFDM0Isb0JBQWUsR0FBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUk5QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLFFBQWtCO1FBQ3BCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7YUFDdkIsSUFB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QUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzsrR0E5RVUsZUFBZSxrQkFNTixhQUFhO21IQU50QixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9jLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUHJvcGVydHkgYXMgUHJvcGVydHlCYXNlLFxuICBQcm9wZXJ0eVN1YnNjcmlwdGlvbiBhcyBQcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2Vcbn0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgYXMgb2JzZXJ2YWJsZVRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHBsYWluVG9DbGFzcyB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7XG4gIEFwcEV2ZW50LFxuICBBcHBFdmVudFR5cGVFbnVtLFxuICBQcm9wZXJ0eSwgUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50LFxuICBQcm9wZXJ0eVNhbGUsXG4gIFByb3BlcnR5U2hhcmUsXG4gIFByb3BlcnR5U3Vic2NyaXB0aW9uLFxuICBQcm9wZXJ0eVZhbHVhdGlvblxufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFJlc3RNZXRob2QsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuLyoqXG4gKiBAVG9kbyBBbGV4IHJlbW92ZSBmdW5jdGlvbmFsaXR5IHJlbGF0ZWQgdG8gUHJvcGVydHlTaGFyZVxuICogQFRPRE8gQWxleCAoVFQtMTc3Nyk6IHJlcGxhY2UgYWxsIGV2ZW50IGxpc3RlbmVycyB3aXRoIHRoZSBuZXcgdGhpcy5saXN0ZW4oKVxuICogU2VydmljZSBmb3Igd29yayB3aXRoIFByb3BlcnR5XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5U2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFByb3BlcnR5QmFzZSwgUHJvcGVydHksIFByb3BlcnR5Q29sbGVjdGlvbj4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eSA9IFByb3BlcnR5O1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eUNvbGxlY3Rpb24gPSBQcm9wZXJ0eUNvbGxlY3Rpb247XG4gIGVuZHBvaW50VXJpID0gJ3Byb3BlcnRpZXMnO1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsnZGVsZXRlQmF0Y2gnXTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gcmVtb3ZlIHdoZW4gZm9yZWNhc3QgbW92ZWQgdG8gc2VwYXJhdGVkIGFwaVxuICAgKi9cbiAgcHV0KHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8UHJvcGVydHk+IHtcbiAgICByZXR1cm4gc3VwZXIucHV0KHByb3BlcnR5KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZFByb3BlcnR5OiBQcm9wZXJ0eSk6IFByb3BlcnR5ID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gobmV3IEFwcEV2ZW50KEFwcEV2ZW50VHlwZUVudW0uUFJPUEVSVFlfVVBEQVRFRCwgcHJvcGVydHkpKTtcblxuICAgICAgICAgIHJldHVybiB1cGRhdGVkUHJvcGVydHk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG5vIHJlZnJlc2ggY2FjaGUgd2l0aCB0aGlzLnVwZGF0ZUNhY2hlKFt0aGlzLmdldENhY2hlKCkuZmluZEJ5KCdpZCcsIGNoYW5nZS5tb2RlbC5wcm9wZXJ0eS5pZCldLCAncHV0Jyk7XG4gICAqL1xuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgLy8gc2hhcmUgaW52aXRlIGFjY2VwdGVkIGV2ZW50IGdpdmVzIGFjY2VzcyB0byBuZXcgcHJvcGVydHlcbiAgICB0aGlzLmxpc3RlbkNTRShQcm9wZXJ0eVNoYXJlLCB0aGlzLnJlZnJlc2hDYWNoZSwgWydwdXQnXSk7XG4gICAgLy8gQFRPRE8gZ2V0IGZyb20gc2VwYXJhdGVkIGFwaT9cbiAgICB0aGlzLmxpc3RlbkNTRShQcm9wZXJ0eVNhbGUsIHRoaXMucmVmcmVzaENhY2hlLCBbJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZSddKTtcbiAgICAvLyBwcm9wZXJ0eSBjYWNoZXMgY2hpbGQgZW50aXRpZXMgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZVxuICAgIHRoaXMubGlzdGVuQ1NFKFByb3BlcnR5VmFsdWF0aW9uLCB0aGlzLnJlZnJlc2hDYWNoZSk7XG4gICAgdGhpcy5saXN0ZW5DU0UoUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50LCB0aGlzLnJlZnJlc2hDYWNoZSk7XG4gIH1cblxuICB1cGRhdGVEZXByZWNpYXRpb25DYWxjdWxhdGlvbihwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBwcm9wZXJ0eVRvVXBkYXRlOiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgeyBpZDogcHJvcGVydHkuaWQsIGRlcHJlY2lhdGlvbkNhbGN1bGF0aW9uOiBwcm9wZXJ0eS5kZXByZWNpYXRpb25DYWxjdWxhdGlvbiB9KVxuXG4gICAgcmV0dXJuIHRoaXMucHV0KHByb3BlcnR5VG9VcGRhdGUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1cGRhdGVkUHJvcGVydHk6IFByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlBST1BFUlRZX0RFUFJFQ0lBVElPTl9DQUxDVUxBVElPTl9VUERBVEVELCB1cGRhdGVkUHJvcGVydHkpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBzZXBhcmF0ZWQgYXBpXG4gICAqIEFjdGl2YXRlIGRlYWN0aXZhdGVkIHByb3BlcnR5XG4gICAqL1xuICBhY3RpdmF0ZShwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vcHJvcGVydHktc3Vic2NyaXB0aW9uc2AsIHsgcHJvcGVydHkgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZTogUHJvcGVydHlTdWJzY3JpcHRpb25CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3UHJvcGVydHlTdWJzY3JpcHRpb246IFByb3BlcnR5U3Vic2NyaXB0aW9uID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5U3Vic2NyaXB0aW9uLCBwcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2UpO1xuICAgICAgICAgIGNvbnN0IGFjdGl2YXRlZFByb3BlcnR5OiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcGVydHksIHsgc3Vic2NyaXB0aW9uczogW25ld1Byb3BlcnR5U3Vic2NyaXB0aW9uXSB9KSk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKFthY3RpdmF0ZWRQcm9wZXJ0eV0sICdwdXQnKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBzZXBhcmF0ZWQgYXBpXG4gICAqIERlYWN0aXZhdGUgYWN0aXZhdGVkIHByb3BlcnR5XG4gICAqL1xuICBkZWFjdGl2YXRlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3Byb3BlcnR5LXN1YnNjcmlwdGlvbnMvJHtwcm9wZXJ0eS5nZXRDdXJyZW50U3Vic2NyaXB0aW9uKCkuaWR9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlYWN0aXZhdGVkUHJvcGVydHk6IFByb3BlcnR5ID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5LCBPYmplY3QuYXNzaWduKHt9LCBwcm9wZXJ0eSwgeyBzdWJzY3JpcHRpb25zOiBbXSB9KSk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKFtkZWFjdGl2YXRlZFByb3BlcnR5XSwgJ3B1dCcpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
@@ -6,7 +6,6 @@ import { HttpClient } from '@angular/common/http';
6
6
  import { EventDispatcherService } from '../../event';
7
7
  import { classToPlain, plainToClass } from 'class-transformer';
8
8
  import { ToastService } from '../../toast';
9
- import { MixpanelService } from '../../mixpanel/mixpanel.service';
10
9
  import * as i0 from "@angular/core";
11
10
  /**
12
11
  * Abstract base service that implements common services functionality
@@ -23,7 +22,6 @@ export class RestService {
23
22
  this.eventDispatcherService = inject(EventDispatcherService);
24
23
  // subject for service cache
25
24
  this.cacheSubject = new ReplaySubject(1);
26
- this.mpService = inject(MixpanelService);
27
25
  this.roles = [];
28
26
  }
29
27
  get apiUrl() {
@@ -233,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
233
231
  type: Inject,
234
232
  args: ['environment']
235
233
  }] }]; } });
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1vbGQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Jlc3QvcmVzdC1vbGQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBRWxFOzs7Ozs7R0FNRztBQUlILE1BQU0sT0FBZ0IsV0FBVztJQXNCL0IsWUFBNkMsV0FBZ0I7UUFBaEIsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFyQm5ELGlCQUFZLEdBQWlCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRCxTQUFJLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLDJCQUFzQixHQUEyQixNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQVExRiw0QkFBNEI7UUFDbEIsaUJBQVksR0FBMkIsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFPckUsY0FBUyxHQUFvQixNQUFNLENB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UUFBUSxDQUFDLElBQVcsRUFBRSxJQUFJLEdBQUcsS0FBSztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLFdBQVc7UUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sbUJBQW1CLENBQUMsS0FBeUI7UUFDckQsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDOytHQTFRbUIsV0FBVyxrQkFzQlgsYUFBYTttSEF0QmIsV0FBVyxjQUZuQixNQUFNOzs0RkFFRSxXQUFXO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBdUJjLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcmVwbGFjZSB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRXZlbnREaXNwYXRjaGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2V2ZW50JztcbmltcG9ydCB7IGNsYXNzVG9QbGFpbiwgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3QnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5pbXBvcnQgeyBNaXhwYW5lbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9taXhwYW5lbC9taXhwYW5lbC5zZXJ2aWNlJztcblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIHNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIGNvbW1vbiBzZXJ2aWNlcyBmdW5jdGlvbmFsaXR5XG4gKiBhbmQgZGVzY3JpYmUgYWJzdHJhY3QgbWV0aG9kcy9wcm9wZXJ0aWVzIHRoYXQgaGF2ZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBjaGlsZCBzZXJ2aWNlc1xuICogTW9kZWwgLSBlbnRpdHkgc2VydmljZSBpcyB3b3JraW5nIHdpdGhcbiAqIEJhc2VNb2RlbCAtIGJhc2UgZW50aXR5IG1vZGVsIHRoYXQgZXh0ZW5kcyBieSBNb2RlbFxuICogQFRPRE8gVFQtMTc3NyBBbGV4OiByZW1vdmUgd2hlbiBhbGwgc2VydmljZXMgcmVmYWN0b3JlZFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXN0U2VydmljZTxCYXNlTW9kZWwsIE1vZGVsIGV4dGVuZHMgQmFzZU1vZGVsPiB7XG4gIHByb3RlY3RlZCB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgPSBpbmplY3QoRXZlbnREaXNwYXRjaGVyU2VydmljZSk7XG4gIC8vIHVybCBwYXJ0IGZvciBzZXJ2aWNlIGVudGl0eSBBUEkuIEhhdmUgdG8gYmUgZGVmaW5lZCBpbiBleHRlbmRlZCBjbGFzc2VzXG4gIGFic3RyYWN0IHVybDogc3RyaW5nO1xuICAvLyBNb2RlbCBjbGFzcyBmb3IgaW5zdGFuY2VzIGNyZWF0aW5nXG4gIGFic3RyYWN0IG1vZGVsQ2xhc3M7XG4gIC8vIEBUT0RPIE1ha2UgY2FjaGUgUmVhZG9ubHlcbiAgLy8gY2FjaGVkIGFycmF5IG9mIHNlcnZpY2UgY2xhc3MgaW5zdGFuY2VzXG4gIHByb3RlY3RlZCBjYWNoZTogTW9kZWxbXTtcbiAgLy8gc3ViamVjdCBmb3Igc2VydmljZSBjYWNoZVxuICBwcm90ZWN0ZWQgY2FjaGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PE1vZGVsW10+ID0gbmV3IFJlcGxheVN1YmplY3Q8TW9kZWxbXT4oMSk7XG4gIG1lc3NhZ2VDcmVhdGVkOiBzdHJpbmc7XG4gIG1lc3NhZ2VDcmVhdGVkQmF0Y2g6IHN0cmluZztcbiAgbWVzc2FnZVVwZGF0ZWQ6IHN0cmluZztcbiAgbWVzc2FnZVVwZGF0ZWRCYXRjaDogc3RyaW5nO1xuICBtZXNzYWdlRGVsZXRlZDogc3RyaW5nO1xuICBtZXNzYWdlRGVsZXRlZEJhdGNoOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBtcFNlcnZpY2U6IE1peHBhbmVsU2VydmljZSA9IGluamVjdChNaXhwYW5lbFNlcnZpY2UpO1xuICByb2xlczogVXNlclJvbGVzRW51bVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueSkge31cblxuICBwcm90ZWN0ZWQgZ2V0IGFwaVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWA7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGxpc3Qgb2YgYmFzZSBjbGFzcyBpbnN0YW5jZXMgZGlyZWN0bHkgZnJvbSBiYWNrZW5kXG4gICAqL1xuICBwcm90ZWN0ZWQgZmV0Y2gocGF0aCA9IHRoaXMuYXBpVXJsLCBjYWNoZSA9IHRydWUpOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgIHRoaXMuc2V0Q2FjaGUoW10pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHBhdGgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogQmFzZU1vZGVsW10pOiBNb2RlbFtdID0+IHtcbiAgICAgICAgICBjb25zdCBpdGVtczogTW9kZWxbXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogQmFzZU1vZGVsKTogTW9kZWwgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcbiAgICAgICAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FjaGUoaXRlbXMsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCBjYWNoZWQgbGlzdCBvZiBhbGwgaW5zdGFuY2VzXG4gICAqL1xuICBnZXQocGF0aDogc3RyaW5nID0gdGhpcy5hcGlVcmwpOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuZmV0Y2gocGF0aCkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGluc3RhbmNlIGJ5IGlkIGZyb20gY2FjaGVcbiAgICogQHBhcmFtIGlkIElEIG9mIHJlcXVpcmVkIGl0ZW1cbiAgICovXG4gIGZpbmRCeUlkKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGl0ZW1zOiBNb2RlbFtdKSA9PiBpdGVtcy5maW5kKChpdGVtOiBNb2RlbCkgPT4gaXRlbVsnaWQnXSA9PT0gaWQpKVxuICAgICAgKTtcbiAgfVxuXG4gIGZpbmQoaWQ6IG51bWJlcik6IE1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZS5maW5kKChpdGVtOiBNb2RlbCkgPT4gaXRlbVsnaWQnXSA9PT0gaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFkZCBuZXcgaW5zdGFuY2UgYW5kIHVwZGF0ZSBjYWNoZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGUoZGF0YTogb2JqZWN0LCBzaG91bGRVcGRhdGVDYWNoZSA9IHRydWUpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKGRhdGEpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgobmV3SXRlbTogQmFzZU1vZGVsKSA9PiB7XG4gICAgICAgICAgaWYgKCFzaG91bGRVcGRhdGVDYWNoZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBuZXdJbnN0YW5jZTogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UobmV3SXRlbSk7XG4gICAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUucHVzaChuZXdJbnN0YW5jZSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZUNyZWF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlQ3JlYXRlZCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG5ld0luc3RhbmNlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBBbGV4IFRULTE3NzcgcmVuYW1lIHRvIHBvc3RcbiAgICovXG4gIGFkZChtb2RlbDogTW9kZWwsIHNob3VsZFVwZGF0ZUNhY2hlID0gdHJ1ZSk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoY2xhc3NUb1BsYWluKG1vZGVsKSwgc2hvdWxkVXBkYXRlQ2FjaGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIEFsZXggVFQtMTc3NyByZW5hbWUgdG8gdXBsb2FkXG4gICAqL1xuICBwb3N0Rm9ybShmaWxlOiBGaWxlLCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwYXJhbXMpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIHBhcmFtc1trZXldKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoZm9ybURhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBzZXZlcmFsIG5ldyBpdGVtc1xuICAgKiBAcGFyYW0gbW9kZWxzIEFycmF5IG9mIG5ldyBpdGVtcyBmb3Igc2F2aW5nXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBxdWVyeSBwYXJhbWV0ZXJzIGZvciByZXF1ZXN0XG4gICAqIEBUT0RPIEFsZXggVFQtMTc3NyByZW5hbWUgdG8gcG9zdEJhdGNoXG4gICAqL1xuICBhZGRCYXRjaChtb2RlbHM6IE1vZGVsW10sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbihtb2RlbHMpLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG5ld0l0ZW1zOiBCYXNlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld0luc3RhbmNlczogTW9kZWxbXSA9IG5ld0l0ZW1zLm1hcCgoaXRlbTogQmFzZU1vZGVsKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuICAgICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnB1c2goLi4ubmV3SW5zdGFuY2VzKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlQ3JlYXRlZEJhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZUNyZWF0ZWRCYXRjaCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG5ld0luc3RhbmNlcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGl0ZW1cbiAgICogQHBhcmFtIG1vZGVsIEV4aXN0aW5nIGluc3RhbmNlIGZvciB1cGRhdGluZ1xuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgcXVlcnkgcGFyYW1ldGVycyBmb3IgcmVxdWVzdFxuICAgKiBAVE9ETyBBbGV4IFRULTE3NzcgcmVuYW1lIHRvIHB1dFxuICAgKi9cbiAgdXBkYXRlKG1vZGVsOiBNb2RlbCwgcXVlcnlQYXJhbXM6IG9iamVjdCA9IHt9KTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9LyR7bW9kZWxbJ2lkJ119YCwgY2xhc3NUb1BsYWluKG1vZGVsKSwgcXVlcnlQYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1cGRhdGVkSXRlbTogQmFzZU1vZGVsKSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZEluc3RhbmNlOiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZSh1cGRhdGVkSXRlbSk7XG4gICAgICAgICAgcmVwbGFjZSh0aGlzLmNhY2hlLCB1cGRhdGVkSW5zdGFuY2UpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VVcGRhdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZVVwZGF0ZWQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cGRhdGVkSW5zdGFuY2U7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzZXZlcmFsIGl0ZW1zXG4gICAqIEBwYXJhbSBtb2RlbHMgQXJyYXkgb2YgaXRlbXMgZm9yIHVwZGF0aW5nXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBxdWVyeSBwYXJhbWV0ZXJzIGZvciByZXF1ZXN0XG4gICAqIFRPRE8gQWxleCBUVC0xNzc3IHJlbmFtZSB0byBwdXRCYXRjaFxuICAgKi9cbiAgdXBkYXRlQmF0Y2gobW9kZWxzOiBNb2RlbFtdLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfWAsIGNsYXNzVG9QbGFpbihtb2RlbHMpLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRJdGVtczogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkSW5zdGFuY2VzOiBNb2RlbFtdID0gdXBkYXRlZEl0ZW1zLm1hcCgoaXRlbTogQmFzZU1vZGVsKSA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuICAgICAgICAgIHVwZGF0ZWRJbnN0YW5jZXMuZm9yRWFjaCgoaW5zdGFuY2U6IE1vZGVsKSA9PiB7XG4gICAgICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIGluc3RhbmNlKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VVcGRhdGVkQmF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlVXBkYXRlZEJhdGNoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnN0YW5jZXM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlbGV0ZSBpbnN0YW5jZSBvZiBjbGFzc1xuICAgKiBAcGFyYW0gbW9kZWwgQ2xhc3MgaW5zdGFuY2UgZm9yIGRlbGV0aW5nXG4gICAqL1xuICBkZWxldGUobW9kZWw6IE1vZGVsKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHttb2RlbFsnaWQnXX1gKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRDYWNoZSh0aGlzLmNhY2hlLmZpbHRlcigoaXRlbTogTW9kZWwpID0+IGl0ZW1bJ2lkJ10gIT09IG1vZGVsWydpZCddKSwgdHJ1ZSk7XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlRGVsZXRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VEZWxldGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSByZW1vdmVCYXRjaFxuICAgKiBkZWxldGUgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbHMgQ2xhc3MgaW5zdGFuY2VzIGFycmF5IGZvciBkZWxldGluZ1xuICAgKi9cbiAgZGVsZXRlQmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9L2RlbGV0ZWAsIGNsYXNzVG9QbGFpbihtb2RlbHMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaWRzOiBudW1iZXJbXSA9IG1vZGVscy5tYXAoKG1vZGVsOiBNb2RlbCk6IG51bWJlciA9PiBtb2RlbFsnaWQnXSk7XG4gICAgICAgICAgdGhpcy5zZXRDYWNoZSh0aGlzLmNhY2hlLmZpbHRlcigoaXRlbTogTW9kZWwpID0+ICFpZHMuaW5jbHVkZXMoaXRlbVsnaWQnXSkpLCB0cnVlKTtcblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VEZWxldGVkQmF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlRGVsZXRlZEJhdGNoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIGNvbGxlY3QgYXJyYXkgb2YgcmVkbyB0cmFuc2FjdGlvbnMgcmVxdWVzdHMgb2JzZXJ2YWJsZVxuICAgKi9cbiAgcmVtb3ZlQmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTx2b2lkPltdIHtcbiAgICByZXR1cm4gbW9kZWxzLm1hcChtb2RlbCA9PiB0aGlzLmRlbGV0ZShtb2RlbCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNsZWFyIHNlcnZpY2UgY2FjaGVcbiAgICovXG4gIHJlZnJlc2hDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldENhY2hlKHVuZGVmaW5lZCk7XG4gICAgdGhpcy5nZXQoKTtcbiAgfVxuXG4gIHNldENhY2hlKGRhdGE6IGFueVtdLCBuZXh0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlID0gZGF0YTtcblxuICAgIGlmIChuZXh0KSB7XG4gICAgICB0aGlzLnVwZGF0ZUNhY2hlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSBzdWJqZWN0IHdpdGggY3VycmVudCBjYWNoZSBhcnJheSB2YWx1ZVxuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZUNhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZS5zbGljZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyB1c2UgZXhjbHVkZUV4dHJhbmVvdXNWYWx1ZXMgd2hlbiBhbGwgbW9kZWxzIHJlZmFjdG9yZWQgKGV4cG9zZWQgYWxsIG5lZWRlZCBwcm9wZXJ0aWVzKVxuICAgKiBDcmVhdGUgbmV3IGluc3RhbmNlIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbCBpbnN0YW5jZSB0aGF0IHdlIHdpbGwgdXNlIGFzIGNvbnN0cnVjdG9yIG9wdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVNb2RlbEluc3RhbmNlKG1vZGVsOiBCYXNlTW9kZWwgfCBvYmplY3QpOiBNb2RlbCB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyh0aGlzLm1vZGVsQ2xhc3MsIG1vZGVsKTtcbiAgfVxufVxuIl19
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1vbGQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Jlc3QvcmVzdC1vbGQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFHM0M7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFnQixXQUFXO0lBcUIvQixZQUE2QyxXQUFnQjtRQUFoQixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQXBCbkQsaUJBQVksR0FBaUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELFNBQUksR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsMkJBQXNCLEdBQTJCLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBUTFGLDRCQUE0QjtRQUNsQixpQkFBWSxHQUEyQixJQUFJLGFBQWEsQ0FBVSxDQUFDLENBQUMsQ0FBQztRQU8vRSxVQUFLLEdBQW9CLEVBQUUsQ0FBQztJQUVvQyxDQUFDO0lBRWpFLElBQWMsTUFBTTtRQUNsQixPQUFPLEdB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SSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ08sV0FBVztRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxtQkFBbUIsQ0FBQyxLQUF5QjtRQUNyRCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBelFtQixXQUFXLGtCQXFCWCxhQUFhO21IQXJCYixXQUFXLGNBRm5CLE1BQU07OzRGQUVFLFdBQVc7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFzQmMsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyByZXBsYWNlIH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXZlbnQnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluLCBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdCc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcblxuLyoqXG4gKiBBYnN0cmFjdCBiYXNlIHNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIGNvbW1vbiBzZXJ2aWNlcyBmdW5jdGlvbmFsaXR5XG4gKiBhbmQgZGVzY3JpYmUgYWJzdHJhY3QgbWV0aG9kcy9wcm9wZXJ0aWVzIHRoYXQgaGF2ZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBjaGlsZCBzZXJ2aWNlc1xuICogTW9kZWwgLSBlbnRpdHkgc2VydmljZSBpcyB3b3JraW5nIHdpdGhcbiAqIEJhc2VNb2RlbCAtIGJhc2UgZW50aXR5IG1vZGVsIHRoYXQgZXh0ZW5kcyBieSBNb2RlbFxuICogQFRPRE8gVFQtMTc3NyBBbGV4OiByZW1vdmUgd2hlbiBhbGwgc2VydmljZXMgcmVmYWN0b3JlZFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXN0U2VydmljZTxCYXNlTW9kZWwsIE1vZGVsIGV4dGVuZHMgQmFzZU1vZGVsPiB7XG4gIHByb3RlY3RlZCB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgPSBpbmplY3QoRXZlbnREaXNwYXRjaGVyU2VydmljZSk7XG4gIC8vIHVybCBwYXJ0IGZvciBzZXJ2aWNlIGVudGl0eSBBUEkuIEhhdmUgdG8gYmUgZGVmaW5lZCBpbiBleHRlbmRlZCBjbGFzc2VzXG4gIGFic3RyYWN0IHVybDogc3RyaW5nO1xuICAvLyBNb2RlbCBjbGFzcyBmb3IgaW5zdGFuY2VzIGNyZWF0aW5nXG4gIGFic3RyYWN0IG1vZGVsQ2xhc3M7XG4gIC8vIEBUT0RPIE1ha2UgY2FjaGUgUmVhZG9ubHlcbiAgLy8gY2FjaGVkIGFycmF5IG9mIHNlcnZpY2UgY2xhc3MgaW5zdGFuY2VzXG4gIHByb3RlY3RlZCBjYWNoZTogTW9kZWxbXTtcbiAgLy8gc3ViamVjdCBmb3Igc2VydmljZSBjYWNoZVxuICBwcm90ZWN0ZWQgY2FjaGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PE1vZGVsW10+ID0gbmV3IFJlcGxheVN1YmplY3Q8TW9kZWxbXT4oMSk7XG4gIG1lc3NhZ2VDcmVhdGVkOiBzdHJpbmc7XG4gIG1lc3NhZ2VDcmVhdGVkQmF0Y2g6IHN0cmluZztcbiAgbWVzc2FnZVVwZGF0ZWQ6IHN0cmluZztcbiAgbWVzc2FnZVVwZGF0ZWRCYXRjaDogc3RyaW5nO1xuICBtZXNzYWdlRGVsZXRlZDogc3RyaW5nO1xuICBtZXNzYWdlRGVsZXRlZEJhdGNoOiBzdHJpbmc7XG4gIHJvbGVzOiBVc2VyUm9sZXNFbnVtW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7fVxuXG4gIHByb3RlY3RlZCBnZXQgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgbGlzdCBvZiBiYXNlIGNsYXNzIGluc3RhbmNlcyBkaXJlY3RseSBmcm9tIGJhY2tlbmRcbiAgICovXG4gIHByb3RlY3RlZCBmZXRjaChwYXRoID0gdGhpcy5hcGlVcmwsIGNhY2hlID0gdHJ1ZSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgdGhpcy5zZXRDYWNoZShbXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQocGF0aClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNlTW9kZWxbXSk6IE1vZGVsW10gPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW1zOiBNb2RlbFtdID0gcmVzcG9uc2UubWFwKChpdGVtOiBCYXNlTW9kZWwpOiBNb2RlbCA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuICAgICAgICAgIGlmIChjYWNoZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRDYWNoZShpdGVtcywgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IGNhY2hlZCBsaXN0IG9mIGFsbCBpbnN0YW5jZXNcbiAgICovXG4gIGdldChwYXRoOiBzdHJpbmcgPSB0aGlzLmFwaVVybCk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgdGhpcy5mZXRjaChwYXRoKS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgaW5zdGFuY2UgYnkgaWQgZnJvbSBjYWNoZVxuICAgKiBAcGFyYW0gaWQgSUQgb2YgcmVxdWlyZWQgaXRlbVxuICAgKi9cbiAgZmluZEJ5SWQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoaXRlbXM6IE1vZGVsW10pID0+IGl0ZW1zLmZpbmQoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddID09PSBpZCkpXG4gICAgICApO1xuICB9XG5cbiAgZmluZChpZDogbnVtYmVyKTogTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmNhY2hlLmZpbmQoKGl0ZW06IE1vZGVsKSA9PiBpdGVtWydpZCddID09PSBpZCk7XG4gIH1cblxuICAvKipcbiAgICogYWRkIG5ldyBpbnN0YW5jZSBhbmQgdXBkYXRlIGNhY2hlXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZShkYXRhOiBvYmplY3QsIHNob3VsZFVwZGF0ZUNhY2hlID0gdHJ1ZSk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH1gLCBjbGFzc1RvUGxhaW4oZGF0YSkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChuZXdJdGVtOiBCYXNlTW9kZWwpID0+IHtcbiAgICAgICAgICBpZiAoIXNob3VsZFVwZGF0ZUNhY2hlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5ld0luc3RhbmNlOiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShuZXdJdGVtKTtcbiAgICAgICAgICBpZiAodGhpcy5jYWNoZSkge1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5wdXNoKG5ld0luc3RhbmNlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlQ3JlYXRlZCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VDcmVhdGVkKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV3SW5zdGFuY2U7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIEFsZXggVFQtMTc3NyByZW5hbWUgdG8gcG9zdFxuICAgKi9cbiAgYWRkKG1vZGVsOiBNb2RlbCwgc2hvdWxkVXBkYXRlQ2FjaGUgPSB0cnVlKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShjbGFzc1RvUGxhaW4obW9kZWwpLCBzaG91bGRVcGRhdGVDYWNoZSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gQWxleCBUVC0xNzc3IHJlbmFtZSB0byB1cGxvYWRcbiAgICovXG4gIHBvc3RGb3JtKGZpbGU6IEZpbGUsIHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9KTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHBhcmFtcykge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSwgcGFyYW1zW2tleV0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZShmb3JtRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHNldmVyYWwgbmV3IGl0ZW1zXG4gICAqIEBwYXJhbSBtb2RlbHMgQXJyYXkgb2YgbmV3IGl0ZW1zIGZvciBzYXZpbmdcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHJlcXVlc3RcbiAgICogQFRPRE8gQWxleCBUVC0xNzc3IHJlbmFtZSB0byBwb3N0QmF0Y2hcbiAgICovXG4gIGFkZEJhdGNoKG1vZGVsczogTW9kZWxbXSwgcXVlcnlQYXJhbXM6IG9iamVjdCA9IHt9KTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKG1vZGVscyksIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgobmV3SXRlbXM6IEJhc2VNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3SW5zdGFuY2VzOiBNb2RlbFtdID0gbmV3SXRlbXMubWFwKChpdGVtOiBCYXNlTW9kZWwpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUucHVzaCguLi5uZXdJbnN0YW5jZXMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VDcmVhdGVkQmF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlQ3JlYXRlZEJhdGNoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV3SW5zdGFuY2VzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgaXRlbVxuICAgKiBAcGFyYW0gbW9kZWwgRXhpc3RpbmcgaW5zdGFuY2UgZm9yIHVwZGF0aW5nXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBxdWVyeSBwYXJhbWV0ZXJzIGZvciByZXF1ZXN0XG4gICAqIEBUT0RPIEFsZXggVFQtMTc3NyByZW5hbWUgdG8gcHV0XG4gICAqL1xuICB1cGRhdGUobW9kZWw6IE1vZGVsLCBxdWVyeVBhcmFtczogb2JqZWN0ID0ge30pOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vJHttb2RlbFsnaWQnXX1gLCBjbGFzc1RvUGxhaW4obW9kZWwpLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRJdGVtOiBCYXNlTW9kZWwpID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkSW5zdGFuY2U6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHVwZGF0ZWRJdGVtKTtcbiAgICAgICAgICByZXBsYWNlKHRoaXMuY2FjaGUsIHVwZGF0ZWRJbnN0YW5jZSk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZVVwZGF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5tZXNzYWdlVXBkYXRlZCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRJbnN0YW5jZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHNldmVyYWwgaXRlbXNcbiAgICogQHBhcmFtIG1vZGVscyBBcnJheSBvZiBpdGVtcyBmb3IgdXBkYXRpbmdcbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHJlcXVlc3RcbiAgICogVE9ETyBBbGV4IFRULTE3NzcgcmVuYW1lIHRvIHB1dEJhdGNoXG4gICAqL1xuICB1cGRhdGVCYXRjaChtb2RlbHM6IE1vZGVsW10sIHF1ZXJ5UGFyYW1zOiBvYmplY3QgPSB7fSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy51cmx9YCwgY2xhc3NUb1BsYWluKG1vZGVscyksIHF1ZXJ5UGFyYW1zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZEl0ZW1zOiBCYXNlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRJbnN0YW5jZXM6IE1vZGVsW10gPSB1cGRhdGVkSXRlbXMubWFwKChpdGVtOiBCYXNlTW9kZWwpID0+IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShpdGVtKSk7XG4gICAgICAgICAgdXBkYXRlZEluc3RhbmNlcy5mb3JFYWNoKChpbnN0YW5jZTogTW9kZWwpID0+IHtcbiAgICAgICAgICAgIHJlcGxhY2UodGhpcy5jYWNoZSwgaW5zdGFuY2UpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZVVwZGF0ZWRCYXRjaCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VVcGRhdGVkQmF0Y2gpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZEluc3RhbmNlcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogZGVsZXRlIGluc3RhbmNlIG9mIGNsYXNzXG4gICAqIEBwYXJhbSBtb2RlbCBDbGFzcyBpbnN0YW5jZSBmb3IgZGVsZXRpbmdcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogTW9kZWwpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS8ke3RoaXMudXJsfS8ke21vZGVsWydpZCddfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNldENhY2hlKHRoaXMuY2FjaGUuZmlsdGVyKChpdGVtOiBNb2RlbCkgPT4gaXRlbVsnaWQnXSAhPT0gbW9kZWxbJ2lkJ10pLCB0cnVlKTtcblxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VEZWxldGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMubWVzc2FnZURlbGV0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHJlbW92ZUJhdGNoXG4gICAqIGRlbGV0ZSBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgY2xhc3NcbiAgICogQHBhcmFtIG1vZGVscyBDbGFzcyBpbnN0YW5jZXMgYXJyYXkgZm9yIGRlbGV0aW5nXG4gICAqL1xuICBkZWxldGVCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vJHt0aGlzLnVybH0vZGVsZXRlYCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBpZHM6IG51bWJlcltdID0gbW9kZWxzLm1hcCgobW9kZWw6IE1vZGVsKTogbnVtYmVyID0+IG1vZGVsWydpZCddKTtcbiAgICAgICAgICB0aGlzLnNldENhY2hlKHRoaXMuY2FjaGUuZmlsdGVyKChpdGVtOiBNb2RlbCkgPT4gIWlkcy5pbmNsdWRlcyhpdGVtWydpZCddKSksIHRydWUpO1xuXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZURlbGV0ZWRCYXRjaCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLm1lc3NhZ2VEZWxldGVkQmF0Y2gpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogY29sbGVjdCBhcnJheSBvZiByZWRvIHRyYW5zYWN0aW9ucyByZXF1ZXN0cyBvYnNlcnZhYmxlXG4gICAqL1xuICByZW1vdmVCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPHZvaWQ+W10ge1xuICAgIHJldHVybiBtb2RlbHMubWFwKG1vZGVsID0+IHRoaXMuZGVsZXRlKG1vZGVsKSk7XG4gIH1cblxuICAvKipcbiAgICogY2xlYXIgc2VydmljZSBjYWNoZVxuICAgKi9cbiAgcmVmcmVzaENhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Q2FjaGUodW5kZWZpbmVkKTtcbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgc2V0Q2FjaGUoZGF0YTogYW55W10sIG5leHQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuY2FjaGUgPSBkYXRhO1xuXG4gICAgaWYgKG5leHQpIHtcbiAgICAgIHRoaXMudXBkYXRlQ2FjaGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHN1YmplY3Qgd2l0aCBjdXJyZW50IGNhY2hlIGFycmF5IHZhbHVlXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZVN1YmplY3QubmV4dCh0aGlzLmNhY2hlLnNsaWNlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHVzZSBleGNsdWRlRXh0cmFuZW91c1ZhbHVlcyB3aGVuIGFsbCBtb2RlbHMgcmVmYWN0b3JlZCAoZXhwb3NlZCBhbGwgbmVlZGVkIHByb3BlcnRpZXMpXG4gICAqIENyZWF0ZSBuZXcgaW5zdGFuY2Ugb2YgY2xhc3NcbiAgICogQHBhcmFtIG1vZGVsIGluc3RhbmNlIHRoYXQgd2Ugd2lsbCB1c2UgYXMgY29uc3RydWN0b3Igb3B0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZU1vZGVsSW5zdGFuY2UobW9kZWw6IEJhc2VNb2RlbCB8IG9iamVjdCk6IE1vZGVsIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKHRoaXMubW9kZWxDbGFzcywgbW9kZWwpO1xuICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { Inject, Injectable, inject } from '@angular/core';
2
2
  import { ReplaySubject } from 'rxjs';
3
- import { catchError, first, map } from 'rxjs/operators';
3
+ import { first, map } from 'rxjs/operators';
4
4
  import { HttpClient } from '@angular/common/http';
5
5
  import { EventDispatcherService, SseService } from '../../event';
6
6
  import { classToPlain } from 'class-transformer';
@@ -8,8 +8,6 @@ import { ObservableModel } from '../../../db/Models';
8
8
  import { AppEvent2 } from '../../../models';
9
9
  import { toArray } from '../../../functions/array';
10
10
  import { DataService } from '../../data.service';
11
- import { MixpanelService } from '../../mixpanel/mixpanel.service';
12
- import { throwError as observableThrowError } from 'rxjs';
13
11
  import { ToastService } from '../../toast';
14
12
  import merge from 'lodash/merge';
15
13
  import intersection from 'lodash/intersection';
@@ -37,7 +35,6 @@ export class RestService extends DataService {
37
35
  * @TODO Alex: disable batch by default
38
36
  */
39
37
  this.disabledMethods = [];
40
- this.mpService = inject(MixpanelService);
41
38
  this.sseService = inject(SseService);
42
39
  this.toastService = inject(ToastService);
43
40
  this.http = inject(HttpClient);
@@ -96,18 +93,15 @@ export class RestService extends DataService {
96
93
  /**
97
94
  * Create a new Model instance in database
98
95
  */
99
- post(model, mpData, path = this.apiUrl) {
96
+ post(model, path = this.apiUrl) {
100
97
  this.handleAccessError('post');
101
98
  return this.http.post(path, classToPlain(model))
102
99
  .pipe(map((response) => {
103
100
  const result = this.createModelInstance(response);
104
101
  if (!this.mercureTopic) {
105
- this.handleResponse([result], 'post', mpData);
102
+ this.handleResponse([result], 'post');
106
103
  }
107
104
  return result;
108
- }), catchError((error) => {
109
- this.handleResponseError([model], 'post', mpData);
110
- return observableThrowError(error);
111
105
  }));
112
106
  }
113
107
  /**
@@ -122,26 +116,20 @@ export class RestService extends DataService {
122
116
  this.handleResponse(result, 'post');
123
117
  }
124
118
  return result;
125
- }), catchError((error) => {
126
- this.handleResponseError(models, 'post');
127
- return observableThrowError(error);
128
119
  }));
129
120
  }
130
121
  /**
131
122
  * Change an existing Model instance in database
132
123
  */
133
- put(model, mpData, path = `${this.apiUrl}/${model.id}`) {
124
+ put(model, path = `${this.apiUrl}/${model.id}`) {
134
125
  this.handleAccessError('put');
135
126
  return this.http.put(path, classToPlain(model))
136
127
  .pipe(map((response) => {
137
128
  const result = this.createModelInstance(response);
138
129
  if (!this.mercureTopic) {
139
- this.handleResponse([result], 'put', mpData);
130
+ this.handleResponse([result], 'put');
140
131
  }
141
132
  return result;
142
- }), catchError((error) => {
143
- this.handleResponseError([model], 'put', mpData);
144
- return observableThrowError(error);
145
133
  }));
146
134
  }
147
135
  /**
@@ -156,24 +144,18 @@ export class RestService extends DataService {
156
144
  this.handleResponse(result, 'put');
157
145
  }
158
146
  return result;
159
- }), catchError((error) => {
160
- this.handleResponseError(models, 'put');
161
- return observableThrowError(error);
162
147
  }));
163
148
  }
164
149
  /**
165
150
  * Remove a Model instance from database
166
151
  */
167
- delete(model, mpData) {
152
+ delete(model) {
168
153
  this.handleAccessError('delete');
169
154
  return this.http.delete(`${this.apiUrl}/${model.id}`)
170
155
  .pipe(map(() => {
171
156
  if (!this.mercureTopic) {
172
- this.handleResponse([model], 'delete', mpData);
157
+ this.handleResponse([model], 'delete');
173
158
  }
174
- }), catchError((error) => {
175
- this.handleResponseError([model], 'delete', mpData);
176
- return observableThrowError(error);
177
159
  }));
178
160
  }
179
161
  /**
@@ -186,32 +168,12 @@ export class RestService extends DataService {
186
168
  if (!this.mercureTopic) {
187
169
  this.handleResponse(models, 'delete');
188
170
  }
189
- }), catchError((error) => {
190
- this.handleResponseError(models, 'delete');
191
- return observableThrowError(error);
192
171
  }));
193
172
  }
194
- track(response, method, mpData, postfix = '') {
195
- // check if result exist, sometimes response may be empty (for example ClientInvite accept/reject/etc)
196
- if (!response[0]) {
197
- return;
198
- }
199
- // no other way to check interface
200
- if ('getMpData' in response[0]) {
201
- response.forEach((model) => {
202
- this.mpService.track(`${method}${this.modelClass.name}${postfix}`, model['getMpData'](mpData));
203
- });
204
- }
205
- }
206
- handleResponseError(response, method, mpData) {
207
- // @TODO error notification?
208
- this.track(response, method, mpData, 'Error');
209
- }
210
173
  /**
211
174
  * Handle response data - update cache and dispatch event if it is needed
212
175
  */
213
- handleResponse(response, method, mpData) {
214
- this.track(response, method, mpData);
176
+ handleResponse(response, method) {
215
177
  if (this.getCache()) {
216
178
  this.updateCache(response, method);
217
179
  }
@@ -319,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
319
281
  type: Inject,
320
282
  args: ['environment']
321
283
  }] }]; } });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQWlCLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxJQUFJLG9CQUFvQixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBQ2pDLE9BQU8sWUFBWSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RCxP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QTtRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBdlhtQixXQUFXLGtCQTRCWCxhQUFhO21IQTVCYixXQUFXLGNBRm5CLE1BQU07OzRGQUVFLFdBQVc7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkE2QmMsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpcnN0LCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIFNzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudCc7XG5pbXBvcnQgeyBjbGFzc1RvUGxhaW4gfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCwgT2JzZXJ2YWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IEFwcEV2ZW50MiB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IFJlc3RNZXRob2QgfSBmcm9tICcuL3Jlc3QtbWV0aG9kLnR5cGUnO1xuaW1wb3J0IHsgSHR0cE1ldGhvZCB9IGZyb20gJy4vaHR0cC1tZXRob2QudHlwZSc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcbmltcG9ydCB7IE1peHBhbmVsU2VydmljZSB9IGZyb20gJy4uLy4uL21peHBhbmVsL21peHBhbmVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3QnO1xuaW1wb3J0IG1lcmdlIGZyb20gJ2xvZGFzaC9tZXJnZSc7XG5pbXBvcnQgaW50ZXJzZWN0aW9uIGZyb20gJ2xvZGFzaC9pbnRlcnNlY3Rpb24nO1xuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJ3J4anMvaW50ZXJuYWwtY29tcGF0aWJpbGl0eSc7XG5pbXBvcnQgbGFzdCBmcm9tICdsb2Rhc2gvbGFzdCc7XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBzZXJ2aWNlIHRoYXQgaW1wbGVtZW50cyBjb21tb24gc2VydmljZXMgZnVuY3Rpb25hbGl0eVxuICogYW5kIGRlc2NyaWJlIGFic3RyYWN0IG1ldGhvZHMvcHJvcGVydGllcyB0aGF0IGhhdmUgdG8gYmUgaW1wbGVtZW50ZWQgaW4gY2hpbGQgc2VydmljZXNcbiAqIE1vZGVsIC0gZW50aXR5IHNlcnZpY2UgaXMgd29ya2luZyB3aXRoXG4gKiBCYXNlTW9kZWwgLSBiYXNlIGVudGl0eSBtb2RlbCB0aGF0IGV4dGVuZHMgYnkgTW9kZWxcbiAqIENvbGxlY3Rpb25Nb2RlbCAtIGVudGl0eSBjb2xsZWN0aW9uIGNsYXNzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3RTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsLCBDb2xsZWN0aW9uTW9kZWwgZXh0ZW5kcyBDb2xsZWN0aW9uPE1vZGVsPj5cbiAgZXh0ZW5kcyBEYXRhU2VydmljZTxCYXNlTW9kZWwsIE1vZGVsLCBDb2xsZWN0aW9uTW9kZWw+IHtcblxuICAvKipcbiAgICogVXJsIHBhcnQgZm9yIHNlcnZpY2UgZW50aXR5IEFQSVxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGVuZHBvaW50VXJpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIHNlcnZpY2UgY2FjaGVcbiAgICovXG4gIHByb3RlY3RlZCBjYWNoZVN1YmplY3Q6IFJlcGxheVN1YmplY3Q8Q29sbGVjdGlvbk1vZGVsPiA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG1ldGhvZHMgdW5hdmFpbGFibGUgZm9yIGN1cnJlbnQgQVBJXG4gICAqIEBUT0RPIEFsZXg6IGFkZCBhbmQgaGFuZGxlIGVuYWJsZWQgbWV0aG9kcyB0b29cbiAgICogQFRPRE8gQWxleDogZGlzYWJsZSBiYXRjaCBieSBkZWZhdWx0XG4gICAqL1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFtdO1xuICBwcm90ZWN0ZWQgbXBTZXJ2aWNlOiBNaXhwYW5lbFNlcnZpY2UgPSBpbmplY3QoTWl4cGFuZWxTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHNzZVNlcnZpY2U6IFNzZVNlcnZpY2UgPSBpbmplY3QoU3NlU2VydmljZSk7XG4gIHByb3RlY3RlZCB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgPSBpbmplY3QoRXZlbnREaXNwYXRjaGVyU2VydmljZSk7XG5cbiAgcm9sZXM6IFVzZXJSb2xlc0VudW1bXSA9IFtdO1xuICBtZXJjdXJlVG9waWM6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy5lbmRwb2ludFVyaX1gO1xuICB9XG5cbiAgc2V0Q2FjaGUoZGF0YTogYW55W10sIG5leHQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHN1cGVyLnNldENhY2hlKGRhdGEpO1xuXG4gICAgaWYgKG5leHQpIHtcbiAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggY2FjaGUgd2l0aCBhY3R1YWwgYmFja2VuZCBkYXRhXG4gICAqL1xuICByZWZyZXNoQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkYXRhIGZyb20gYmFja2VuZCBhbmQgZmlsbCB0aGUgY2FjaGVcbiAgICovXG4gIHByb3RlY3RlZCBmZXRjaChwYXRoID0gdGhpcy5hcGlVcmwpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ2dldCcpO1xuXG4gICAgaWYgKCF0aGlzLmhhc1JvbGVzKCkpIHtcbiAgICAgIHRoaXMuc2V0Q2FjaGUoW10sIHRydWUpO1xuICAgICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8vIFNldCBjYWNoZSBhcyBlbXB0eSBjb2xsZWN0aW9uIHRvIGF2b2lkIG11bHRpcGxlIHJlcXVlc3RzIGJlZm9yZSBjYWNoZSBmaWxsZWRcbiAgICB0aGlzLnNldENhY2hlKFtdKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChwYXRoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCB8IG9iamVjdFtdKSA9PiBpc0FycmF5KHJlc3BvbnNlKSA/IHJlc3BvbnNlIDogdG9BcnJheShyZXNwb25zZSkpLFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0Q2FjaGUocmVzcG9uc2UsIHRydWUpO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0KHBhdGg6IHN0cmluZyA9IHRoaXMuYXBpVXJsKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uTW9kZWw+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuZmV0Y2gocGF0aCkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXRGaXJzdCgpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZ2V0Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24uZmlyc3QpXG4gICAgKTtcbiAgfVxuXG4gIGhhc0luQ2FjaGUoaWQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Q2FjaGUoKS5maW5kQnkoJ2lkJywgaWQpO1xuICB9XG5cbiAgZ2V0QXJyYXkoKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCkucGlwZShtYXAoKGNvbGxlY3Rpb246IENvbGxlY3Rpb25Nb2RlbCkgPT4gY29sbGVjdGlvbi50b0FycmF5KCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgTW9kZWwgaW5zdGFuY2UgaW4gZGF0YWJhc2VcbiAgICovXG4gIHBvc3QobW9kZWw6IE1vZGVsLCBtcERhdGE/OiBBYnN0cmFjdE1vZGVsLCBwYXRoOiBzdHJpbmcgPSB0aGlzLmFwaVVybCk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwb3N0Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QocGF0aCwgY2xhc3NUb1BsYWluKG1vZGVsKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtyZXN1bHRdLCAncG9zdCcsIG1wRGF0YSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2VFcnJvcihbbW9kZWxdLCAncG9zdCcsIG1wRGF0YSk7XG5cbiAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZVRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbXVsdGlwbGUgbmV3IE1vZGVsIGluc3RhbmNlcyBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcG9zdEJhdGNoKG1vZGVsczogTW9kZWxbXSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3Bvc3RCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuYXBpVXJsLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3RbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWxbXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogb2JqZWN0KTogTW9kZWwgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlc3VsdCwgJ3Bvc3QnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZUVycm9yKG1vZGVscywgJ3Bvc3QnKTtcblxuICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBhbiBleGlzdGluZyBNb2RlbCBpbnN0YW5jZSBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcHV0KG1vZGVsOiBNb2RlbCwgbXBEYXRhPzogQWJzdHJhY3RNb2RlbCwgcGF0aCA9IGAke3RoaXMuYXBpVXJsfS8ke21vZGVsLmlkfWApOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncHV0Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChwYXRoLCBjbGFzc1RvUGxhaW4obW9kZWwpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3Jlc3VsdF0sICdwdXQnLCBtcERhdGEpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlRXJyb3IoW21vZGVsXSwgJ3B1dCcsIG1wRGF0YSk7XG5cbiAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZVRocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgbXVsdGlwbGUgZXhpc3RpbmcgTW9kZWwgaW5zdGFuY2VzIGluIGRhdGFiYXNlXG4gICAqL1xuICBwdXRCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwdXRCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5hcGlVcmwsIGNsYXNzVG9QbGFpbihtb2RlbHMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdFtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBNb2RlbFtdID0gcmVzcG9uc2UubWFwKChpdGVtOiBvYmplY3QpOiBNb2RlbCA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzdWx0LCAncHV0Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2VFcnJvcihtb2RlbHMsICdwdXQnKTtcblxuICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIE1vZGVsIGluc3RhbmNlIGZyb20gZGF0YWJhc2VcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogTW9kZWwsIG1wRGF0YT86IEFic3RyYWN0TW9kZWwpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdkZWxldGUnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuYXBpVXJsfS8ke21vZGVsLmlkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFttb2RlbF0sICdkZWxldGUnLCBtcERhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2VFcnJvcihbbW9kZWxdLCAnZGVsZXRlJywgbXBEYXRhKTtcblxuICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBtdWx0aXBsZSBNb2RlbCBpbnN0YW5jZXMgZnJvbSBkYXRhYmFzZVxuICAgKi9cbiAgZGVsZXRlQmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZGVsZXRlQmF0Y2gnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFwaVVybH0vZGVsZXRlYCwgY2xhc3NUb1BsYWluKG1vZGVscykpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKG1vZGVscywgJ2RlbGV0ZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2VFcnJvcihtb2RlbHMsICdkZWxldGUnKTtcblxuICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYWNrKHJlc3BvbnNlOiBNb2RlbFtdLCBtZXRob2Q6IEh0dHBNZXRob2QsIG1wRGF0YT86IEFic3RyYWN0TW9kZWwsIHBvc3RmaXggPSAnJykge1xuICAgIC8vIGNoZWNrIGlmIHJlc3VsdCBleGlzdCwgc29tZXRpbWVzIHJlc3BvbnNlIG1heSBiZSBlbXB0eSAoZm9yIGV4YW1wbGUgQ2xpZW50SW52aXRlIGFjY2VwdC9yZWplY3QvZXRjKVxuICAgIGlmICghcmVzcG9uc2VbMF0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBubyBvdGhlciB3YXkgdG8gY2hlY2sgaW50ZXJmYWNlXG4gICAgaWYgKCdnZXRNcERhdGEnIGluIHJlc3BvbnNlWzBdKSB7XG4gICAgICByZXNwb25zZS5mb3JFYWNoKChtb2RlbCkgPT4ge1xuICAgICAgICB0aGlzLm1wU2VydmljZS50cmFjayhgJHttZXRob2R9JHt0aGlzLm1vZGVsQ2xhc3MubmFtZX0ke3Bvc3RmaXh9YCwgbW9kZWxbJ2dldE1wRGF0YSddKG1wRGF0YSkpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUmVzcG9uc2VFcnJvcihyZXNwb25zZTogTW9kZWxbXSwgbWV0aG9kOiBIdHRwTWV0aG9kLCBtcERhdGE/OiBBYnN0cmFjdE1vZGVsKSB7XG4gICAgLy8gQFRPRE8gZXJyb3Igbm90aWZpY2F0aW9uP1xuICAgIHRoaXMudHJhY2socmVzcG9uc2UsIG1ldGhvZCwgbXBEYXRhLCAnRXJyb3InKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgcmVzcG9uc2UgZGF0YSAtIHVwZGF0ZSBjYWNoZSBhbmQgZGlzcGF0Y2ggZXZlbnQgaWYgaXQgaXMgbmVlZGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmVzcG9uc2UocmVzcG9uc2U6IE1vZGVsW10sIG1ldGhvZDogSHR0cE1ldGhvZCwgbXBEYXRhPzogQWJzdHJhY3RNb2RlbCkge1xuICAgIHRoaXMudHJhY2socmVzcG9uc2UsIG1ldGhvZCwgbXBEYXRhKTtcblxuICAgIGlmICh0aGlzLmdldENhY2hlKCkpIHtcbiAgICAgIHRoaXMudXBkYXRlQ2FjaGUocmVzcG9uc2UsIG1ldGhvZCk7XG4gICAgfVxuXG4gICAgLy8gZGlzcGF0Y2ggZXZlbnQgZm9yIGludGVyZXN0ZWQgc2VydmljZXNcbiAgICBpZiAocmVzcG9uc2VbMF0gaW5zdGFuY2VvZiBPYnNlcnZhYmxlTW9kZWwpIHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChtZXRob2QsIHJlc3BvbnNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHdpdGggcGFzc2VkIGl0ZW1zLiBBZGQvVXBkYXRlIGRldGVjdHMgYXV0b21hdGljYWxseSwgRGVsZXRlIHZpYSBvcHRpb25hbCBmbGFnXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlQ2FjaGUoaXRlbXM6IE1vZGVsW10sIG1ldGhvZDogSHR0cE1ldGhvZCk6IHZvaWQge1xuICAgIGxldCBjYWNoZTogQ29sbGVjdGlvbk1vZGVsO1xuXG4gICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgIGNhc2UgJ3Bvc3QnOlxuICAgICAgICBjYWNoZSA9IHRoaXMuY2FjaGUucHVzaCguLi5pdGVtcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdwdXQnOlxuICAgICAgICAvLyBAVE9ETyBBbGV4IG9sZCBpbnN0YW5jZVxuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtOiBNb2RlbCkgPT4ge1xuICAgICAgICAgIGNhY2hlID0gdGhpcy5jYWNoZS5yZXBsYWNlQnkoJ2lkJywgaXRlbS5pZCwgaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgY2FjaGUgPSB0aGlzLmNhY2hlLnJlbW92ZUJ5KCdpZCcsIGl0ZW1zLm1hcCgoaXRlbTogTW9kZWwpID0+IGl0ZW0uaWQpKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2dldCc6XG4gICAgICAgIGNhY2hlID0gdGhpcy5jcmVhdGVDb2xsZWN0aW9uSW5zdGFuY2UodGhpcy5jb2xsZWN0aW9uQ2xhc3MsIGl0ZW1zKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldENhY2hlKGNhY2hlLnRvQXJyYXkoKSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYW5kIGRpc3BhdGNoIHJlc3QgZXZlbnRcbiAgICovXG4gIHByb3RlY3RlZCBkaXNwYXRjaEV2ZW50KG1ldGhvZDogSHR0cE1ldGhvZCwgaXRlbXM6IE1vZGVsW10pOiB2b2lkIHtcbiAgICBjb25zdCBldmVudE5hbWU6IHN0cmluZyA9ICh0aGlzLm1vZGVsQ2xhc3MgYXMgdHlwZW9mIE9ic2VydmFibGVNb2RlbCkuZ2V0RXZlbnROYW1lKG1ldGhvZCk7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoMihuZXcgQXBwRXZlbnQyKGV2ZW50TmFtZSwgaXRlbXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBtZXRob2QgaXMgbm90IGRpc2FibGVkLiBUaHJvdyBleGNlcHRpb24gb3RoZXJ3aXNlLlxuICAgKiBTb21lIGVudGl0aWVzIGRvZXMgbm90IGhhdmUgZW5kcG9pbnRzIGZvciBhbGwgbWV0aG9kcy5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlQWNjZXNzRXJyb3IobWV0aG9kOiBSZXN0TWV0aG9kKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkTWV0aG9kcy5pbmNsdWRlcyhtZXRob2QpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgJHttZXRob2R9KCkgaXMgbm90IGFsbG93ZWQgZm9yICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBodHRwIGV2ZW50cyBhbmQgcnVuIGNhbGxiYWNrLlxuICAgKiBDU0UgLSBDbGVpbnQgU2VudCBFdmVudHNcbiAgICogQHBhcmFtIG1vZGVsQ2xhc3NcbiAgICogQHBhcmFtIG1ldGhvZHMgVGhlIGxpc3Qgb2YgaHR0cCBtZXRob2RzIHNob3VsZCBiZSBsaXN0ZW5lZCBmb3JcbiAgICogQHBhcmFtIGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBldmVudCB0cmlnZ2VyZWRcbiAgICovXG4gIHByb3RlY3RlZCBsaXN0ZW5DU0UobW9kZWxDbGFzczogdHlwZW9mIE9ic2VydmFibGVNb2RlbCwgY2FsbGJhY2s6IEZ1bmN0aW9uLCBtZXRob2RzOiBIdHRwTWV0aG9kW10gPSBbJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZSddKTogdm9pZCB7XG4gICAgY2FsbGJhY2sgPSBjYWxsYmFjay5iaW5kKHRoaXMpO1xuXG4gICAgbWV0aG9kcy5mb3JFYWNoKChtZXRob2Q6IEh0dHBNZXRob2QpID0+IHtcbiAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIobW9kZWxDbGFzcy5nZXRFdmVudE5hbWUobWV0aG9kKSkuc3Vic2NyaWJlKChkYXRhOiBPYnNlcnZhYmxlTW9kZWxbXSkgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgaWYgdXNlciBoYXMgc3Vic2NyaXB0aW9uIHJvbGUgdG8gYWNjZXNzIGFwaVxuICAgKi9cbiAgaGFzUm9sZXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnJvbGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhaW50ZXJzZWN0aW9uKEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvbGVzJykpLCB0aGlzLnJvbGVzKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBTZXJ2ZXItU2VudCBFdmVudHMgKFNTRSkgb24gdGhlIHNwZWNpZmllZCBNZXJjdXJlIHRvcGljXG4gICAqL1xuICBsaXN0ZW5TU0UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3NlU2VydmljZS5vbih0aGlzLm1lcmN1cmVUb3BpYykucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICBsZXQgbWV0aG9kOiBIdHRwTWV0aG9kO1xuICAgICAgICBpZiAobW9kZWwuaWQpIHtcbiAgICAgICAgICBtZXRob2QgPSB0aGlzLmhhc0luQ2FjaGUobW9kZWwuaWQpID8gJ3B1dCcgOiAncG9zdCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWV0aG9kID0gJ2RlbGV0ZSc7XG4gICAgICAgICAgLy8gd2UgZ290IGVtcHR5IGJvZHkgd2hlbiBpdGVtIGRlbGV0ZWQsIHNvIHdlIHNob3VsZCBnZXQgaWQgZnJvbSBBcGkgUGxhdGZvcm0gZGF0YSAoQGlkKVxuICAgICAgICAgIG1vZGVsID0gbWVyZ2UobW9kZWwsIHsgaWQ6ICtsYXN0KG1vZGVsWydAaWQnXS5zcGxpdCgnLycpKSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IG1ldGhvZCwgbW9kZWwgfTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbY2hhbmdlLm1vZGVsXSwgY2hhbmdlLm1ldGhvZClcbiAgICB9KTtcbiAgfVxufVxuIl19
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLFlBQVksTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEQsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDOztBQUUvQjs7Ozs7O0dBTUc7QUFJSCxNQUFNLE9BQWdCLFdBQ3BCLFNBQVEsV0FBOEM7SUEwQnRELFlBQTZDLFdBQWdCO1FBQzNELEtBQUssRUFB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Q0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQW5VbUIsV0FBVyxrQkEyQlgsYUFBYTttSEEzQmIsV0FBVyxjQUZuQixNQUFNOzs0RkFFRSxXQUFXO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBNEJjLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIFNzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9ldmVudCc7XG5pbXBvcnQgeyBjbGFzc1RvUGxhaW4gfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgQWJzdHJhY3RNb2RlbCwgT2JzZXJ2YWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IEFwcEV2ZW50MiB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnLi4vLi4vLi4vZnVuY3Rpb25zL2FycmF5JztcbmltcG9ydCB7IFJlc3RNZXRob2QgfSBmcm9tICcuL3Jlc3QtbWV0aG9kLnR5cGUnO1xuaW1wb3J0IHsgSHR0cE1ldGhvZCB9IGZyb20gJy4vaHR0cC1tZXRob2QudHlwZSc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3RvYXN0JztcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gvbWVyZ2UnO1xuaW1wb3J0IGludGVyc2VjdGlvbiBmcm9tICdsb2Rhc2gvaW50ZXJzZWN0aW9uJztcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdyeGpzL2ludGVybmFsLWNvbXBhdGliaWxpdHknO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuXG4vKipcbiAqIEFic3RyYWN0IGJhc2Ugc2VydmljZSB0aGF0IGltcGxlbWVudHMgY29tbW9uIHNlcnZpY2VzIGZ1bmN0aW9uYWxpdHlcbiAqIGFuZCBkZXNjcmliZSBhYnN0cmFjdCBtZXRob2RzL3Byb3BlcnRpZXMgdGhhdCBoYXZlIHRvIGJlIGltcGxlbWVudGVkIGluIGNoaWxkIHNlcnZpY2VzXG4gKiBNb2RlbCAtIGVudGl0eSBzZXJ2aWNlIGlzIHdvcmtpbmcgd2l0aFxuICogQmFzZU1vZGVsIC0gYmFzZSBlbnRpdHkgbW9kZWwgdGhhdCBleHRlbmRzIGJ5IE1vZGVsXG4gKiBDb2xsZWN0aW9uTW9kZWwgLSBlbnRpdHkgY29sbGVjdGlvbiBjbGFzc1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXN0U2VydmljZTxCYXNlTW9kZWwsIE1vZGVsIGV4dGVuZHMgQWJzdHJhY3RNb2RlbCwgQ29sbGVjdGlvbk1vZGVsIGV4dGVuZHMgQ29sbGVjdGlvbjxNb2RlbD4+XG4gIGV4dGVuZHMgRGF0YVNlcnZpY2U8QmFzZU1vZGVsLCBNb2RlbCwgQ29sbGVjdGlvbk1vZGVsPiB7XG5cbiAgLyoqXG4gICAqIFVybCBwYXJ0IGZvciBzZXJ2aWNlIGVudGl0eSBBUElcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBlbmRwb2ludFVyaTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdWJqZWN0IGZvciBzZXJ2aWNlIGNhY2hlXG4gICAqL1xuICBwcm90ZWN0ZWQgY2FjaGVTdWJqZWN0OiBSZXBsYXlTdWJqZWN0PENvbGxlY3Rpb25Nb2RlbD4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcblxuICAvKipcbiAgICogTGlzdCBvZiBtZXRob2RzIHVuYXZhaWxhYmxlIGZvciBjdXJyZW50IEFQSVxuICAgKiBAVE9ETyBBbGV4OiBhZGQgYW5kIGhhbmRsZSBlbmFibGVkIG1ldGhvZHMgdG9vXG4gICAqIEBUT0RPIEFsZXg6IGRpc2FibGUgYmF0Y2ggYnkgZGVmYXVsdFxuICAgKi9cbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbXTtcbiAgcHJvdGVjdGVkIHNzZVNlcnZpY2U6IFNzZVNlcnZpY2UgPSBpbmplY3QoU3NlU2VydmljZSk7XG4gIHByb3RlY3RlZCB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UgPSBpbmplY3QoRXZlbnREaXNwYXRjaGVyU2VydmljZSk7XG5cbiAgcm9sZXM6IFVzZXJSb2xlc0VudW1bXSA9IFtdO1xuICBtZXJjdXJlVG9waWM6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy5lbmRwb2ludFVyaX1gO1xuICB9XG5cbiAgc2V0Q2FjaGUoZGF0YTogYW55W10sIG5leHQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHN1cGVyLnNldENhY2hlKGRhdGEpO1xuXG4gICAgaWYgKG5leHQpIHtcbiAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggY2FjaGUgd2l0aCBhY3R1YWwgYmFja2VuZCBkYXRhXG4gICAqL1xuICByZWZyZXNoQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkYXRhIGZyb20gYmFja2VuZCBhbmQgZmlsbCB0aGUgY2FjaGVcbiAgICovXG4gIHByb3RlY3RlZCBmZXRjaChwYXRoID0gdGhpcy5hcGlVcmwpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ2dldCcpO1xuXG4gICAgaWYgKCF0aGlzLmhhc1JvbGVzKCkpIHtcbiAgICAgIHRoaXMuc2V0Q2FjaGUoW10sIHRydWUpO1xuICAgICAgcmV0dXJuIHRoaXMuY2FjaGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8vIFNldCBjYWNoZSBhcyBlbXB0eSBjb2xsZWN0aW9uIHRvIGF2b2lkIG11bHRpcGxlIHJlcXVlc3RzIGJlZm9yZSBjYWNoZSBmaWxsZWRcbiAgICB0aGlzLnNldENhY2hlKFtdKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChwYXRoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCB8IG9iamVjdFtdKSA9PiBpc0FycmF5KHJlc3BvbnNlKSA/IHJlc3BvbnNlIDogdG9BcnJheShyZXNwb25zZSkpLFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBCYXNlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0Q2FjaGUocmVzcG9uc2UsIHRydWUpO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgZ2V0KHBhdGg6IHN0cmluZyA9IHRoaXMuYXBpVXJsKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uTW9kZWw+IHtcbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuZmV0Y2gocGF0aCkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWNoZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXRGaXJzdCgpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZ2V0Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgbWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24uZmlyc3QpXG4gICAgKTtcbiAgfVxuXG4gIGhhc0luQ2FjaGUoaWQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Q2FjaGUoKS5maW5kQnkoJ2lkJywgaWQpO1xuICB9XG5cbiAgZ2V0QXJyYXkoKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KCkucGlwZShtYXAoKGNvbGxlY3Rpb246IENvbGxlY3Rpb25Nb2RlbCkgPT4gY29sbGVjdGlvbi50b0FycmF5KCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgTW9kZWwgaW5zdGFuY2UgaW4gZGF0YWJhc2VcbiAgICovXG4gIHBvc3QobW9kZWw6IE1vZGVsLCBwYXRoOiBzdHJpbmcgPSB0aGlzLmFwaVVybCk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwb3N0Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QocGF0aCwgY2xhc3NUb1BsYWluKG1vZGVsKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtyZXN1bHRdLCAncG9zdCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBtdWx0aXBsZSBuZXcgTW9kZWwgaW5zdGFuY2VzIGluIGRhdGFiYXNlXG4gICAqL1xuICBwb3N0QmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncG9zdEJhdGNoJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5hcGlVcmwsIGNsYXNzVG9QbGFpbihtb2RlbHMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdFtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBNb2RlbFtdID0gcmVzcG9uc2UubWFwKChpdGVtOiBvYmplY3QpOiBNb2RlbCA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzdWx0LCAncG9zdCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBhbiBleGlzdGluZyBNb2RlbCBpbnN0YW5jZSBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcHV0KG1vZGVsOiBNb2RlbCwgcGF0aCA9IGAke3RoaXMuYXBpVXJsfS8ke21vZGVsLmlkfWApOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncHV0Jyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChwYXRoLCBjbGFzc1RvUGxhaW4obW9kZWwpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3Jlc3VsdF0sICdwdXQnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgbXVsdGlwbGUgZXhpc3RpbmcgTW9kZWwgaW5zdGFuY2VzIGluIGRhdGFiYXNlXG4gICAqL1xuICBwdXRCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdwdXRCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodGhpcy5hcGlVcmwsIGNsYXNzVG9QbGFpbihtb2RlbHMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdFtdKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBNb2RlbFtdID0gcmVzcG9uc2UubWFwKChpdGVtOiBvYmplY3QpOiBNb2RlbCA9PiB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UoaXRlbSkpO1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzdWx0LCAncHV0Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgTW9kZWwgaW5zdGFuY2UgZnJvbSBkYXRhYmFzZVxuICAgKi9cbiAgZGVsZXRlKG1vZGVsOiBNb2RlbCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ2RlbGV0ZScpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hcGlVcmx9LyR7bW9kZWwuaWR9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW21vZGVsXSwgJ2RlbGV0ZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIG11bHRpcGxlIE1vZGVsIGluc3RhbmNlcyBmcm9tIGRhdGFiYXNlXG4gICAqL1xuICBkZWxldGVCYXRjaChtb2RlbHM6IE1vZGVsW10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdkZWxldGVCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXBpVXJsfS9kZWxldGVgLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5tZXJjdXJlVG9waWMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UobW9kZWxzLCAnZGVsZXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgcmVzcG9uc2UgZGF0YSAtIHVwZGF0ZSBjYWNoZSBhbmQgZGlzcGF0Y2ggZXZlbnQgaWYgaXQgaXMgbmVlZGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmVzcG9uc2UocmVzcG9uc2U6IE1vZGVsW10sIG1ldGhvZDogSHR0cE1ldGhvZCkge1xuICAgIGlmICh0aGlzLmdldENhY2hlKCkpIHtcbiAgICAgIHRoaXMudXBkYXRlQ2FjaGUocmVzcG9uc2UsIG1ldGhvZCk7XG4gICAgfVxuXG4gICAgLy8gZGlzcGF0Y2ggZXZlbnQgZm9yIGludGVyZXN0ZWQgc2VydmljZXNcbiAgICBpZiAocmVzcG9uc2VbMF0gaW5zdGFuY2VvZiBPYnNlcnZhYmxlTW9kZWwpIHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChtZXRob2QsIHJlc3BvbnNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHdpdGggcGFzc2VkIGl0ZW1zLiBBZGQvVXBkYXRlIGRldGVjdHMgYXV0b21hdGljYWxseSwgRGVsZXRlIHZpYSBvcHRpb25hbCBmbGFnXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlQ2FjaGUoaXRlbXM6IE1vZGVsW10sIG1ldGhvZDogSHR0cE1ldGhvZCk6IHZvaWQge1xuICAgIGxldCBjYWNoZTogQ29sbGVjdGlvbk1vZGVsO1xuXG4gICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgIGNhc2UgJ3Bvc3QnOlxuICAgICAgICBjYWNoZSA9IHRoaXMuY2FjaGUucHVzaCguLi5pdGVtcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdwdXQnOlxuICAgICAgICAvLyBAVE9ETyBBbGV4IG9sZCBpbnN0YW5jZVxuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtOiBNb2RlbCkgPT4ge1xuICAgICAgICAgIGNhY2hlID0gdGhpcy5jYWNoZS5yZXBsYWNlQnkoJ2lkJywgaXRlbS5pZCwgaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgY2FjaGUgPSB0aGlzLmNhY2hlLnJlbW92ZUJ5KCdpZCcsIGl0ZW1zLm1hcCgoaXRlbTogTW9kZWwpID0+IGl0ZW0uaWQpKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2dldCc6XG4gICAgICAgIGNhY2hlID0gdGhpcy5jcmVhdGVDb2xsZWN0aW9uSW5zdGFuY2UodGhpcy5jb2xsZWN0aW9uQ2xhc3MsIGl0ZW1zKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldENhY2hlKGNhY2hlLnRvQXJyYXkoKSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYW5kIGRpc3BhdGNoIHJlc3QgZXZlbnRcbiAgICovXG4gIHByb3RlY3RlZCBkaXNwYXRjaEV2ZW50KG1ldGhvZDogSHR0cE1ldGhvZCwgaXRlbXM6IE1vZGVsW10pOiB2b2lkIHtcbiAgICBjb25zdCBldmVudE5hbWU6IHN0cmluZyA9ICh0aGlzLm1vZGVsQ2xhc3MgYXMgdHlwZW9mIE9ic2VydmFibGVNb2RlbCkuZ2V0RXZlbnROYW1lKG1ldGhvZCk7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoMihuZXcgQXBwRXZlbnQyKGV2ZW50TmFtZSwgaXRlbXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBtZXRob2QgaXMgbm90IGRpc2FibGVkLiBUaHJvdyBleGNlcHRpb24gb3RoZXJ3aXNlLlxuICAgKiBTb21lIGVudGl0aWVzIGRvZXMgbm90IGhhdmUgZW5kcG9pbnRzIGZvciBhbGwgbWV0aG9kcy5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlQWNjZXNzRXJyb3IobWV0aG9kOiBSZXN0TWV0aG9kKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkTWV0aG9kcy5pbmNsdWRlcyhtZXRob2QpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgJHttZXRob2R9KCkgaXMgbm90IGFsbG93ZWQgZm9yICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBodHRwIGV2ZW50cyBhbmQgcnVuIGNhbGxiYWNrLlxuICAgKiBDU0UgLSBDbGVpbnQgU2VudCBFdmVudHNcbiAgICogQHBhcmFtIG1vZGVsQ2xhc3NcbiAgICogQHBhcmFtIG1ldGhvZHMgVGhlIGxpc3Qgb2YgaHR0cCBtZXRob2RzIHNob3VsZCBiZSBsaXN0ZW5lZCBmb3JcbiAgICogQHBhcmFtIGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBldmVudCB0cmlnZ2VyZWRcbiAgICovXG4gIHByb3RlY3RlZCBsaXN0ZW5DU0UobW9kZWxDbGFzczogdHlwZW9mIE9ic2VydmFibGVNb2RlbCwgY2FsbGJhY2s6IEZ1bmN0aW9uLCBtZXRob2RzOiBIdHRwTWV0aG9kW10gPSBbJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZSddKTogdm9pZCB7XG4gICAgY2FsbGJhY2sgPSBjYWxsYmFjay5iaW5kKHRoaXMpO1xuXG4gICAgbWV0aG9kcy5mb3JFYWNoKChtZXRob2Q6IEh0dHBNZXRob2QpID0+IHtcbiAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIobW9kZWxDbGFzcy5nZXRFdmVudE5hbWUobWV0aG9kKSkuc3Vic2NyaWJlKChkYXRhOiBPYnNlcnZhYmxlTW9kZWxbXSkgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgaWYgdXNlciBoYXMgc3Vic2NyaXB0aW9uIHJvbGUgdG8gYWNjZXNzIGFwaVxuICAgKi9cbiAgaGFzUm9sZXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnJvbGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhaW50ZXJzZWN0aW9uKEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvbGVzJykpLCB0aGlzLnJvbGVzKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBTZXJ2ZXItU2VudCBFdmVudHMgKFNTRSkgb24gdGhlIHNwZWNpZmllZCBNZXJjdXJlIHRvcGljXG4gICAqL1xuICBsaXN0ZW5TU0UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3NlU2VydmljZS5vbih0aGlzLm1lcmN1cmVUb3BpYykucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICBsZXQgbWV0aG9kOiBIdHRwTWV0aG9kO1xuICAgICAgICBpZiAobW9kZWwuaWQpIHtcbiAgICAgICAgICBtZXRob2QgPSB0aGlzLmhhc0luQ2FjaGUobW9kZWwuaWQpID8gJ3B1dCcgOiAncG9zdCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWV0aG9kID0gJ2RlbGV0ZSc7XG4gICAgICAgICAgLy8gd2UgZ290IGVtcHR5IGJvZHkgd2hlbiBpdGVtIGRlbGV0ZWQsIHNvIHdlIHNob3VsZCBnZXQgaWQgZnJvbSBBcGkgUGxhdGZvcm0gZGF0YSAoQGlkKVxuICAgICAgICAgIG1vZGVsID0gbWVyZ2UobW9kZWwsIHsgaWQ6ICtsYXN0KG1vZGVsWydAaWQnXS5zcGxpdCgnLycpKSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IG1ldGhvZCwgbW9kZWwgfTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbY2hhbmdlLm1vZGVsXSwgY2hhbmdlLm1ldGhvZClcbiAgICB9KTtcbiAgfVxufVxuIl19