@smarterplan/ngx-smarterplan-core 1.2.10 → 1.2.11

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 (161) hide show
  1. package/README.md +24 -24
  2. package/esm2020/lib/components/csv-export/csv-export.component.mjs +3 -3
  3. package/esm2020/lib/components/loader/loader.component.mjs +3 -3
  4. package/esm2020/lib/components/menu-bar/avatar/avatar.component.mjs +1 -1
  5. package/esm2020/lib/components/menu-bar/menu-bar.component.mjs +3 -3
  6. package/esm2020/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +3 -3
  7. package/esm2020/lib/components/menu-bar/range-date-picker/range-date-picker.component.mjs +1 -1
  8. package/esm2020/lib/components/modal-switch-visit/modal-switch-visit.component.mjs +3 -3
  9. package/esm2020/lib/components/search-bar/search-bar.component.mjs +3 -3
  10. package/esm2020/lib/components/support-modal/support-modal.component.mjs +3 -3
  11. package/esm2020/lib/config.mjs +1 -1
  12. package/esm2020/lib/helpers.service.mjs +1 -1
  13. package/esm2020/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +1 -1
  14. package/esm2020/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +1 -1
  15. package/esm2020/lib/matterport-extensions/scene-component/SceneComponent.mjs +1 -1
  16. package/esm2020/lib/matterport-extensions/tv-player/TvPlayer.mjs +1 -1
  17. package/esm2020/lib/mattertagData.mjs +1 -1
  18. package/esm2020/lib/ngx-smarterplan-core.module.mjs +1 -1
  19. package/esm2020/lib/ngx-smarterplan-core.service.mjs +1 -1
  20. package/esm2020/lib/pipes/duration-to-string.pipe.mjs +1 -1
  21. package/esm2020/lib/pipes/format-date-number-to-digits.pipe.mjs +1 -1
  22. package/esm2020/lib/pipes/hashtag-from-id.pipe.mjs +1 -1
  23. package/esm2020/lib/pipes/safe-url.pipe.mjs +1 -1
  24. package/esm2020/lib/pipes/time-date-to-local-string.pipe.mjs +1 -1
  25. package/esm2020/lib/pipes/username-from-id.pipe.mjs +1 -1
  26. package/esm2020/lib/services/amplify-cache.service.mjs +1 -1
  27. package/esm2020/lib/services/base-tab.service.mjs +1 -1
  28. package/esm2020/lib/services/baseVisibility.service.mjs +1 -1
  29. package/esm2020/lib/services/content.service.mjs +1 -1
  30. package/esm2020/lib/services/filter.service.mjs +1 -1
  31. package/esm2020/lib/services/intervention.service.mjs +1 -1
  32. package/esm2020/lib/services/locale.service.mjs +1 -1
  33. package/esm2020/lib/services/matterport-import.service.mjs +1 -1
  34. package/esm2020/lib/services/matterport.service.mjs +56 -1
  35. package/esm2020/lib/services/models/affectation.service.mjs +1 -1
  36. package/esm2020/lib/services/models/base-object.service.mjs +1 -1
  37. package/esm2020/lib/services/models/capture.service.mjs +1 -1
  38. package/esm2020/lib/services/models/comment.service.mjs +1 -1
  39. package/esm2020/lib/services/models/domain.service.mjs +1 -1
  40. package/esm2020/lib/services/models/equipment.service.mjs +1 -1
  41. package/esm2020/lib/services/models/event.service.mjs +1 -1
  42. package/esm2020/lib/services/models/feature.service.mjs +1 -1
  43. package/esm2020/lib/services/models/hashtag.service.mjs +1 -1
  44. package/esm2020/lib/services/models/layer.service.mjs +1 -1
  45. package/esm2020/lib/services/models/measurement.service.mjs +1 -1
  46. package/esm2020/lib/services/models/mission.service.mjs +1 -1
  47. package/esm2020/lib/services/models/navigation.service.mjs +1 -1
  48. package/esm2020/lib/services/models/node.service.mjs +1 -1
  49. package/esm2020/lib/services/models/object3D.service.mjs +1 -1
  50. package/esm2020/lib/services/models/operation.service.mjs +1 -1
  51. package/esm2020/lib/services/models/organisation.service.mjs +1 -1
  52. package/esm2020/lib/services/models/plan.service.mjs +1 -1
  53. package/esm2020/lib/services/models/poi.service.mjs +1 -1
  54. package/esm2020/lib/services/models/profile.service.mjs +1 -1
  55. package/esm2020/lib/services/models/property.service.mjs +1 -1
  56. package/esm2020/lib/services/models/space.service.mjs +1 -1
  57. package/esm2020/lib/services/models/template.service.mjs +1 -1
  58. package/esm2020/lib/services/models/ticket.service.mjs +1 -1
  59. package/esm2020/lib/services/models/visit.service.mjs +1 -1
  60. package/esm2020/lib/services/models/zone.service.mjs +1 -1
  61. package/esm2020/lib/services/navigator.service.mjs +1 -1
  62. package/esm2020/lib/services/s3.service.mjs +1 -1
  63. package/esm2020/lib/services/search.service.mjs +1 -1
  64. package/esm2020/lib/services/support.service.mjs +1 -1
  65. package/esm2020/lib/services/tag.service.mjs +18 -18
  66. package/esm2020/lib/services/user.service.mjs +1 -1
  67. package/esm2020/lib/services/validators.service.mjs +1 -1
  68. package/esm2020/lib/services/zone-drawer.service.mjs +1 -1
  69. package/esm2020/lib/services/zoneChange.service.mjs +1 -1
  70. package/esm2020/lib/validators/email.directive.mjs +1 -1
  71. package/esm2020/lib/validators/no-empty.directive.mjs +1 -1
  72. package/esm2020/lib/validators/number.directive.mjs +1 -1
  73. package/esm2020/lib/validators/text.directive.mjs +1 -1
  74. package/esm2020/public-api.mjs +1 -1
  75. package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +88 -31
  76. package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
  77. package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +86 -31
  78. package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
  79. package/lib/components/csv-export/csv-export.component.d.ts.map +1 -0
  80. package/lib/components/loader/loader.component.d.ts.map +1 -0
  81. package/lib/components/menu-bar/avatar/avatar.component.d.ts.map +1 -0
  82. package/lib/components/menu-bar/menu-bar.component.d.ts.map +1 -0
  83. package/lib/components/menu-bar/navigation-bar/navigation-bar.component.d.ts.map +1 -0
  84. package/lib/components/menu-bar/range-date-picker/range-date-picker.component.d.ts.map +1 -0
  85. package/lib/components/modal-switch-visit/modal-switch-visit.component.d.ts.map +1 -0
  86. package/lib/components/search-bar/search-bar.component.d.ts.map +1 -0
  87. package/lib/components/support-modal/support-modal.component.d.ts.map +1 -0
  88. package/lib/config.d.ts.map +1 -0
  89. package/lib/helpers.service.d.ts.map +1 -0
  90. package/lib/matterport-extensions/hsl-loader/HlsLoader.d.ts.map +1 -0
  91. package/lib/matterport-extensions/nest-thermostat/CanvasImage.d.ts.map +1 -0
  92. package/lib/matterport-extensions/nest-thermostat/CanvasRenderer.d.ts.map +1 -0
  93. package/lib/matterport-extensions/nest-thermostat/NestThermostat.d.ts.map +1 -0
  94. package/lib/matterport-extensions/nest-thermostat/PlaneRenderer.d.ts.map +1 -0
  95. package/lib/matterport-extensions/scene-component/SceneComponent.d.ts.map +1 -0
  96. package/lib/matterport-extensions/security-camera/SecurityCamera.d.ts.map +1 -0
  97. package/lib/matterport-extensions/tv-player/TvPlayer.d.ts.map +1 -0
  98. package/lib/matterport-extensions/video-renderer/VideoRenderer.d.ts.map +1 -0
  99. package/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.d.ts.map +1 -0
  100. package/lib/mattertagData.d.ts.map +1 -0
  101. package/lib/ngx-smarterplan-core.module.d.ts.map +1 -0
  102. package/lib/ngx-smarterplan-core.service.d.ts.map +1 -0
  103. package/lib/pipes/duration-to-string.pipe.d.ts.map +1 -0
  104. package/lib/pipes/format-date-number-to-digits.pipe.d.ts.map +1 -0
  105. package/lib/pipes/hashtag-from-id.pipe.d.ts.map +1 -0
  106. package/lib/pipes/safe-url.pipe.d.ts.map +1 -0
  107. package/lib/pipes/time-date-to-local-string.pipe.d.ts.map +1 -0
  108. package/lib/pipes/username-from-id.pipe.d.ts.map +1 -0
  109. package/lib/services/amplify-cache.service.d.ts.map +1 -0
  110. package/lib/services/base-tab.service.d.ts.map +1 -0
  111. package/lib/services/baseVisibility.service.d.ts.map +1 -0
  112. package/lib/services/content.service.d.ts.map +1 -0
  113. package/lib/services/filter.service.d.ts.map +1 -0
  114. package/lib/services/intervention.service.d.ts.map +1 -0
  115. package/lib/services/locale.service.d.ts.map +1 -0
  116. package/lib/services/matterport-import.service.d.ts.map +1 -0
  117. package/lib/services/matterport.service.d.ts.map +1 -0
  118. package/lib/services/models/affectation.service.d.ts.map +1 -0
  119. package/lib/services/models/base-object.service.d.ts.map +1 -0
  120. package/lib/services/models/capture.service.d.ts.map +1 -0
  121. package/lib/services/models/comment.service.d.ts.map +1 -0
  122. package/lib/services/models/domain.service.d.ts.map +1 -0
  123. package/lib/services/models/equipment.service.d.ts.map +1 -0
  124. package/lib/services/models/event.service.d.ts.map +1 -0
  125. package/lib/services/models/feature.service.d.ts.map +1 -0
  126. package/lib/services/models/hashtag.service.d.ts.map +1 -0
  127. package/lib/services/models/layer.service.d.ts.map +1 -0
  128. package/lib/services/models/measurement.service.d.ts.map +1 -0
  129. package/lib/services/models/mission.service.d.ts.map +1 -0
  130. package/lib/services/models/navigation.service.d.ts.map +1 -0
  131. package/lib/services/models/node.service.d.ts.map +1 -0
  132. package/lib/services/models/object3D.service.d.ts.map +1 -0
  133. package/lib/services/models/operation.service.d.ts.map +1 -0
  134. package/lib/services/models/organisation.service.d.ts.map +1 -0
  135. package/lib/services/models/plan.service.d.ts.map +1 -0
  136. package/lib/services/models/poi.service.d.ts.map +1 -0
  137. package/lib/services/models/profile.service.d.ts.map +1 -0
  138. package/lib/services/models/property.service.d.ts.map +1 -0
  139. package/lib/services/models/space.service.d.ts.map +1 -0
  140. package/lib/services/models/template.service.d.ts.map +1 -0
  141. package/lib/services/models/ticket.service.d.ts.map +1 -0
  142. package/lib/services/models/visit.service.d.ts.map +1 -0
  143. package/lib/services/models/zone.service.d.ts.map +1 -0
  144. package/lib/services/navigator.service.d.ts.map +1 -0
  145. package/lib/services/s3.service.d.ts.map +1 -0
  146. package/lib/services/search.service.d.ts.map +1 -0
  147. package/lib/services/support.service.d.ts.map +1 -0
  148. package/lib/services/tag.service.d.ts.map +1 -0
  149. package/lib/services/user.service.d.ts.map +1 -0
  150. package/lib/services/validators.service.d.ts.map +1 -0
  151. package/lib/services/viewer.service.d.ts.map +1 -0
  152. package/lib/services/zone-drawer.service.d.ts.map +1 -0
  153. package/lib/services/zoneChange.service.d.ts.map +1 -0
  154. package/lib/types.service.d.ts.map +1 -0
  155. package/lib/validators/email.directive.d.ts.map +1 -0
  156. package/lib/validators/no-empty.directive.d.ts.map +1 -0
  157. package/lib/validators/number.directive.d.ts.map +1 -0
  158. package/lib/validators/text.directive.d.ts.map +1 -0
  159. package/package.json +1 -1
  160. package/public-api.d.ts.map +1 -0
  161. package/smarterplan-ngx-smarterplan-core.d.ts.map +1 -0
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
57
57
  type: Inject,
58
58
  args: ['currentAPIService']
59
59
  }] }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmZWN0YXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL2FmZmVjdGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT25ELE1BQU0sT0FBTyxrQkFBa0I7SUFHM0IsWUFDaUMsV0FBZ0I7UUFDN0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7SUFDM0IsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FDN0IsUUFBZ0I7UUFFaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN2QyxRQUFRLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLFFBQVE7YUFDZjtTQUNKLENBQUM7YUFDRyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNkLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQ1AsNENBQTRDLFFBQVEsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ3BGLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxLQUFLLENBQUMsNEJBQTRCLENBQzlCLFNBQWlCO1FBRWpCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELEtBQUssQ0FBQyxzQ0FBc0MsQ0FDeEMsUUFBZ0IsRUFDaEIsU0FBaUI7UUFFakIsTUFBTSxZQUFZLEdBQ2QsTUFBTSxJQUFJLENBQUMsaUNBQWlDLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDYixZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUNuQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDO2dCQUN2RCxFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ2xCLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ3hCLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNGLE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsaUNBQWlDLENBQ25DLFFBQWdCLEVBQ2hCLFNBQWlCO1FBRWpCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsU0FBUyxFQUFFO1lBQy9ELEVBQUUsRUFBRSxRQUFRO1NBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMseUJBQXlCLENBQzNCLGFBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7WUFDeEMsRUFBRSxFQUFFLGFBQWE7WUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7U0FDeEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFrQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OytHQXRFUSxrQkFBa0Isa0JBSWYsbUJBQW1CO21IQUp0QixrQkFBa0IsY0FGZixNQUFNOzJGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUtRLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWZmZWN0YXRpb24gfSBmcm9tIFwiLi4vLi4vdHlwZXMuc2VydmljZVwiO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWZmZWN0YXRpb25TZXJ2aWNlICB7XHJcbiAgICBBUEk6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KCdjdXJyZW50QVBJU2VydmljZScpIGFwaUluamVjdGVkOiBhbnkpIHtcclxuICAgICAgICB0aGlzLkFQSSA9IGFwaUluamVjdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEFmZmVjdGF0aW9uc0Zyb21UaWNrZXRJRChcclxuICAgICAgICB0aWNrZXRJRDogc3RyaW5nLFxyXG4gICAgKTogUHJvbWlzZTxBZmZlY3RhdGlvbltdIHwgdm9pZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uTGlzdEFmZmVjdGF0aW9ucyh7XHJcbiAgICAgICAgICAgIHRpY2tldElEOiB7XHJcbiAgICAgICAgICAgICAgICBlcTogdGlja2V0SUQsXHJcbiAgICAgICAgICAgIH0gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAgIC50aGVuKChyZXN1bHRzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cy5pdGVtcztcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgICAgICAgYCBFcnJvciB3aGlsZSByZXRyaWV2aW5nIGFmZmVjdGF0aW9ucyBmb3IgJHt0aWNrZXRJRH0gOiAke0pTT04uc3RyaW5naWZ5KGVycm9yKX1gLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0QWZmZWN0YXRpb25zRnJvbU1pc3Npb25JRChcclxuICAgICAgICBtaXNzaW9uSUQ6IHN0cmluZyxcclxuICAgICk6IFByb21pc2U8QWZmZWN0YXRpb25bXSB8IHZvaWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkFmZmVjdGF0aW9uc0J5TWlzc2lvbihtaXNzaW9uSUQpLnRoZW4oKHJlc3Bvc25lKSA9PiByZXNwb3NuZS5pdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgc29mdERlbGV0ZUFmZmVjdGF0aW9uQnlNaXNzaW9uQnlUaWNrZXQoXHJcbiAgICAgICAgdGlja2V0SUQ6IHN0cmluZyxcclxuICAgICAgICBtaXNzaW9uSUQ6IHN0cmluZyxcclxuICAgICk6IFByb21pc2U8QWZmZWN0YXRpb25bXT4ge1xyXG4gICAgICAgIGNvbnN0IGFmZmVjdGF0aW9uczogQWZmZWN0YXRpb25bXSA9XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0QWZmZWNhdGlvbnNGb3JUaWNrZXRGb3JNaXNzaW9uKG1pc3Npb25JRCwgdGlja2V0SUQpO1xyXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICBhZmZlY3RhdGlvbnMubWFwKGFzeW5jIChhZmZlY3RhdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGVsZXRlZCA9IGF3YWl0IHRoaXMuQVBJLl9fcHJvdG9fXy5VcGRhdGVBZmZlY3RhdGlvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGFmZmVjdGF0aW9uLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZWRBdDogRGF0ZS5ub3coKSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJzb2Z0IGRlbGV0ZWQgYWZmZWN0YXRpb25cIiwgZGVsZXRlZCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGFmZmVjdGF0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRBZmZlY2F0aW9uc0ZvclRpY2tldEZvck1pc3Npb24oXHJcbiAgICAgICAgdGlja2V0SUQ6IHN0cmluZyxcclxuICAgICAgICBtaXNzaW9uSUQ6IHN0cmluZyxcclxuICAgICk6IFByb21pc2U8QWZmZWN0YXRpb25bXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uQWZmZWN0YXRpb25zQnlNaXNzaW9uQnlUaWNrZXQobWlzc2lvbklELCB7XHJcbiAgICAgICAgICAgIGVxOiB0aWNrZXRJRCxcclxuICAgICAgICB9KS50aGVuKChyZXNwb3NuZSkgPT4gcmVzcG9zbmUuaXRlbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNvZnREZWxldGVBZmZlY3RhdGlvbkJ5SUQoXHJcbiAgICAgICAgYWZmZWN0YXRpb25JRDogc3RyaW5nLFxyXG4gICAgKTogUHJvbWlzZTxBZmZlY3RhdGlvbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uVXBkYXRlQWZmZWN0YXRpb24oe1xyXG4gICAgICAgICAgICBpZDogYWZmZWN0YXRpb25JRCxcclxuICAgICAgICAgICAgZGVsZXRlZEF0OiBEYXRlLm5vdygpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNyZWF0ZUFmZmVjdGF0aW9uKGlucHV0OiBBZmZlY3RhdGlvbik6IFByb21pc2U8QWZmZWN0YXRpb24+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkNyZWF0ZUFmZmVjdGF0aW9uKGlucHV0KTtcclxuICAgIH1cclxufVxyXG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmZWN0YXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL2FmZmVjdGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT25ELE1BQU0sT0FBTyxrQkFBa0I7SUFHM0IsWUFDaUMsV0FBZ0I7UUFDN0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7SUFDM0IsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FDN0IsUUFBZ0I7UUFFaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN2QyxRQUFRLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLFFBQVE7YUFDZjtTQUNKLENBQUM7YUFDRyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNkLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQ1AsNENBQTRDLFFBQVEsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ3BGLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxLQUFLLENBQUMsNEJBQTRCLENBQzlCLFNBQWlCO1FBRWpCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELEtBQUssQ0FBQyxzQ0FBc0MsQ0FDeEMsUUFBZ0IsRUFDaEIsU0FBaUI7UUFFakIsTUFBTSxZQUFZLEdBQ2QsTUFBTSxJQUFJLENBQUMsaUNBQWlDLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDYixZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUNuQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDO2dCQUN2RCxFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ2xCLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ3hCLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNGLE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsaUNBQWlDLENBQ25DLFFBQWdCLEVBQ2hCLFNBQWlCO1FBRWpCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsU0FBUyxFQUFFO1lBQy9ELEVBQUUsRUFBRSxRQUFRO1NBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMseUJBQXlCLENBQzNCLGFBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUM7WUFDeEMsRUFBRSxFQUFFLGFBQWE7WUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7U0FDeEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFrQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OytHQXRFUSxrQkFBa0Isa0JBSWYsbUJBQW1CO21IQUp0QixrQkFBa0IsY0FGZixNQUFNOzJGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUtRLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFmZmVjdGF0aW9uIH0gZnJvbSBcIi4uLy4uL3R5cGVzLnNlcnZpY2VcIjtcblxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIEFmZmVjdGF0aW9uU2VydmljZSAge1xuICAgIEFQSTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueSkge1xuICAgICAgICB0aGlzLkFQSSA9IGFwaUluamVjdGVkO1xuICAgIH1cblxuICAgIGFzeW5jIGdldEFmZmVjdGF0aW9uc0Zyb21UaWNrZXRJRChcbiAgICAgICAgdGlja2V0SUQ6IHN0cmluZyxcbiAgICApOiBQcm9taXNlPEFmZmVjdGF0aW9uW10gfCB2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uTGlzdEFmZmVjdGF0aW9ucyh7XG4gICAgICAgICAgICB0aWNrZXRJRDoge1xuICAgICAgICAgICAgICAgIGVxOiB0aWNrZXRJRCxcbiAgICAgICAgICAgIH0gLFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cy5pdGVtcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgIGAgRXJyb3Igd2hpbGUgcmV0cmlldmluZyBhZmZlY3RhdGlvbnMgZm9yICR7dGlja2V0SUR9IDogJHtKU09OLnN0cmluZ2lmeShlcnJvcil9YCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0QWZmZWN0YXRpb25zRnJvbU1pc3Npb25JRChcbiAgICAgICAgbWlzc2lvbklEOiBzdHJpbmcsXG4gICAgKTogUHJvbWlzZTxBZmZlY3RhdGlvbltdIHwgdm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkFmZmVjdGF0aW9uc0J5TWlzc2lvbihtaXNzaW9uSUQpLnRoZW4oKHJlc3Bvc25lKSA9PiByZXNwb3NuZS5pdGVtcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgc29mdERlbGV0ZUFmZmVjdGF0aW9uQnlNaXNzaW9uQnlUaWNrZXQoXG4gICAgICAgIHRpY2tldElEOiBzdHJpbmcsXG4gICAgICAgIG1pc3Npb25JRDogc3RyaW5nLFxuICAgICk6IFByb21pc2U8QWZmZWN0YXRpb25bXT4ge1xuICAgICAgICBjb25zdCBhZmZlY3RhdGlvbnM6IEFmZmVjdGF0aW9uW10gPVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRBZmZlY2F0aW9uc0ZvclRpY2tldEZvck1pc3Npb24obWlzc2lvbklELCB0aWNrZXRJRCk7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgYWZmZWN0YXRpb25zLm1hcChhc3luYyAoYWZmZWN0YXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWxldGVkID0gYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLlVwZGF0ZUFmZmVjdGF0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGFmZmVjdGF0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICBkZWxldGVkQXQ6IERhdGUubm93KCksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJzb2Z0IGRlbGV0ZWQgYWZmZWN0YXRpb25cIiwgZGVsZXRlZCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGFmZmVjdGF0aW9ucztcbiAgICB9XG5cbiAgICBhc3luYyBnZXRBZmZlY2F0aW9uc0ZvclRpY2tldEZvck1pc3Npb24oXG4gICAgICAgIHRpY2tldElEOiBzdHJpbmcsXG4gICAgICAgIG1pc3Npb25JRDogc3RyaW5nLFxuICAgICk6IFByb21pc2U8QWZmZWN0YXRpb25bXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkFmZmVjdGF0aW9uc0J5TWlzc2lvbkJ5VGlja2V0KG1pc3Npb25JRCwge1xuICAgICAgICAgICAgZXE6IHRpY2tldElELFxuICAgICAgICB9KS50aGVuKChyZXNwb3NuZSkgPT4gcmVzcG9zbmUuaXRlbXMpO1xuICAgIH1cblxuICAgIGFzeW5jIHNvZnREZWxldGVBZmZlY3RhdGlvbkJ5SUQoXG4gICAgICAgIGFmZmVjdGF0aW9uSUQ6IHN0cmluZyxcbiAgICApOiBQcm9taXNlPEFmZmVjdGF0aW9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uVXBkYXRlQWZmZWN0YXRpb24oe1xuICAgICAgICAgICAgaWQ6IGFmZmVjdGF0aW9uSUQsXG4gICAgICAgICAgICBkZWxldGVkQXQ6IERhdGUubm93KCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFzeW5jIGNyZWF0ZUFmZmVjdGF0aW9uKGlucHV0OiBBZmZlY3RhdGlvbik6IFByb21pc2U8QWZmZWN0YXRpb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5DcmVhdGVBZmZlY3RhdGlvbihpbnB1dCk7XG4gICAgfVxufVxuIl19
@@ -67,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
67
67
  providedIn: "root",
68
68
  }]
69
69
  }], ctorParameters: function () { return [{ type: i1.PoiService }, { type: i2.NavigationService }]; } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1vYmplY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL2Jhc2Utb2JqZWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVEzQyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQ2MsVUFBc0IsRUFDeEIsaUJBQW9DO1FBRGxDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUM3QyxDQUFDO0lBRUosS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQW9DO1FBS3pELE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDakIsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQzthQUM1QixJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2hCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDOUIsTUFBTSxXQUFXLEdBQ2IsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMscUNBQXFDLENBQzlELEdBQUcsQ0FBQyxpQkFBaUIsRUFDckIsTUFBTSxDQUFDLE9BQU8sQ0FDakIsQ0FBQztnQkFDTixNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsV0FBVyxDQUFDO2dCQUNwQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNuQyxPQUFPO3dCQUNILE9BQU8sRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU87d0JBQ25DLEtBQUssRUFBRSxJQUFJO3dCQUNYLFFBQVEsRUFBRSxJQUFJO3FCQUNqQixDQUFDO2lCQUNMO2dCQUNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRTtvQkFDdEIsUUFBUSxHQUFHO3dCQUNQLENBQUMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQzt3QkFDL0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO3FCQUNsQyxDQUFDO2lCQUNMO2dCQUNELE9BQU87b0JBQ0gsT0FBTyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTztvQkFDbkMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxpQkFBaUI7b0JBQzVCLFFBQVE7aUJBQ1gsQ0FBQzthQUNMO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDYixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQ3pCLE9BQTJDLEVBQzNDLE9BQWU7UUFFZixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtZQUMxQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN2QjtRQUNELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDakIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQzVDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDVixPQUFPO2FBQ1YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzhHQXRFUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBFcXVpcG1lbnQsIEZlYXR1cmUsIFBPSSwgVGlja2V0IH0gZnJvbSBcIi4uLy4uL3R5cGVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9uYXZpZ2F0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUG9pU2VydmljZSB9IGZyb20gXCIuL3BvaS5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VPYmplY3RTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBwb2lTZXJ2aWNlOiBQb2lTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIGFzeW5jIGdldE1vZGVsM2RBbmRTd2VlcChvYmplY3Q6IEZlYXR1cmUgfCBUaWNrZXQgfCBFcXVpcG1lbnQpOiBQcm9taXNlPHtcclxuICAgICAgICBtb2RlbDNEOiBzdHJpbmc7XHJcbiAgICAgICAgc3dlZXA6IHN0cmluZztcclxuICAgICAgICByb3RhdGlvbjogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xyXG4gICAgfSB8IHZvaWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb2lTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRQb2lCeUVsZW1lbnRJZChvYmplY3QuaWQpXHJcbiAgICAgICAgICAgIC50aGVuKGFzeW5jIChwb2kpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChwb2kgJiYgcG9pLm1hdHRlcnBvcnRTd2VlcElEKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmF2aWdhdGlvbnMgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldE5hdmlnYXRpb25zRm9yTWF0dGVycG9ydElERm9yU3BhY2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2kubWF0dGVycG9ydFN3ZWVwSUQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Quc3BhY2VJRCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBbcG9pTmF2aWdhdGlvbl0gPSBuYXZpZ2F0aW9ucztcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wb2lTZXJ2aWNlLnBvaUlzVmlydHVhbChwb2kpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbDNEOiBwb2lOYXZpZ2F0aW9uLm5vZGUubW9kZWwzRCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3ZWVwOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvb3JkaW5hdGUgPSBKU09OLnBhcnNlKHBvaS5jb29yZGluYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcm90YXRpb24gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb29yZGluYXRlLnhSb3RhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbiA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHg6IE51bWJlcihjb29yZGluYXRlLnhSb3RhdGlvbiksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5OiBOdW1iZXIoY29vcmRpbmF0ZS55Um90YXRpb24pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlbDNEOiBwb2lOYXZpZ2F0aW9uLm5vZGUubW9kZWwzRCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3dlZXA6IHBvaS5tYXR0ZXJwb3J0U3dlZXBJRCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB1cGRhdGVJY29uRm9yQWxsT2JqZWN0cyhcclxuICAgICAgICBvYmplY3RzOiBUaWNrZXRbXSB8IEZlYXR1cmVbXSB8IEVxdWlwbWVudFtdLFxyXG4gICAgICAgIHRhZ0ljb246IHN0cmluZyxcclxuICAgICk6IFByb21pc2U8UE9JW10+IHtcclxuICAgICAgICBjb25zdCBJRHMgPSBbXTtcclxuICAgICAgICBmb3IgKGNvbnN0IG9iamVjdCBvZiBvYmplY3RzKSB7XHJcbiAgICAgICAgICAgIElEcy5wdXNoKG9iamVjdC5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHBvaXMgPSBbXTtcclxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICAgICAgSURzLm1hcChhc3luYyAoaWQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBvaSA9IGF3YWl0IHRoaXMucG9pU2VydmljZS5nZXRQb2lCeUVsZW1lbnRJZChpZCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLnVwZGF0ZVBvaSh7XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHBvaS5pZCxcclxuICAgICAgICAgICAgICAgICAgICB0YWdJY29uLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBwb2lzLnB1c2godXBkYXRlZCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJ1cGRhdGVkXCIsIHBvaXMubGVuZ3RoLCBcInBvaXMgd2l0aCBuZXcgaWNvbnNcIik7XHJcbiAgICAgICAgcmV0dXJuIHBvaXM7XHJcbiAgICB9XHJcbn1cclxuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1vYmplY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL2Jhc2Utb2JqZWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVEzQyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQ2MsVUFBc0IsRUFDeEIsaUJBQW9DO1FBRGxDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUM3QyxDQUFDO0lBRUosS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQW9DO1FBS3pELE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDakIsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQzthQUM1QixJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2hCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDOUIsTUFBTSxXQUFXLEdBQ2IsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMscUNBQXFDLENBQzlELEdBQUcsQ0FBQyxpQkFBaUIsRUFDckIsTUFBTSxDQUFDLE9BQU8sQ0FDakIsQ0FBQztnQkFDTixNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsV0FBVyxDQUFDO2dCQUNwQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNuQyxPQUFPO3dCQUNILE9BQU8sRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU87d0JBQ25DLEtBQUssRUFBRSxJQUFJO3dCQUNYLFFBQVEsRUFBRSxJQUFJO3FCQUNqQixDQUFDO2lCQUNMO2dCQUNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRTtvQkFDdEIsUUFBUSxHQUFHO3dCQUNQLENBQUMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQzt3QkFDL0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO3FCQUNsQyxDQUFDO2lCQUNMO2dCQUNELE9BQU87b0JBQ0gsT0FBTyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTztvQkFDbkMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxpQkFBaUI7b0JBQzVCLFFBQVE7aUJBQ1gsQ0FBQzthQUNMO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDYixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFFRCxLQUFLLENBQUMsdUJBQXVCLENBQ3pCLE9BQTJDLEVBQzNDLE9BQWU7UUFFZixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtZQUMxQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN2QjtRQUNELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDakIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQzVDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDVixPQUFPO2FBQ1YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzhHQXRFUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRXF1aXBtZW50LCBGZWF0dXJlLCBQT0ksIFRpY2tldCB9IGZyb20gXCIuLi8uLi90eXBlcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gXCIuL25hdmlnYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgUG9pU2VydmljZSB9IGZyb20gXCIuL3BvaS5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgQmFzZU9iamVjdFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgcG9pU2VydmljZTogUG9pU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgYXN5bmMgZ2V0TW9kZWwzZEFuZFN3ZWVwKG9iamVjdDogRmVhdHVyZSB8IFRpY2tldCB8IEVxdWlwbWVudCk6IFByb21pc2U8e1xuICAgICAgICBtb2RlbDNEOiBzdHJpbmc7XG4gICAgICAgIHN3ZWVwOiBzdHJpbmc7XG4gICAgICAgIHJvdGF0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gICAgfSB8IHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9pU2VydmljZVxuICAgICAgICAgICAgLmdldFBvaUJ5RWxlbWVudElkKG9iamVjdC5pZClcbiAgICAgICAgICAgIC50aGVuKGFzeW5jIChwb2kpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocG9pICYmIHBvaS5tYXR0ZXJwb3J0U3dlZXBJRCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuYXZpZ2F0aW9ucyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldE5hdmlnYXRpb25zRm9yTWF0dGVycG9ydElERm9yU3BhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pLm1hdHRlcnBvcnRTd2VlcElELFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC5zcGFjZUlELFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW3BvaU5hdmlnYXRpb25dID0gbmF2aWdhdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBvaVNlcnZpY2UucG9pSXNWaXJ0dWFsKHBvaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWwzRDogcG9pTmF2aWdhdGlvbi5ub2RlLm1vZGVsM0QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dlZXA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvb3JkaW5hdGUgPSBKU09OLnBhcnNlKHBvaS5jb29yZGluYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJvdGF0aW9uID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvb3JkaW5hdGUueFJvdGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4OiBOdW1iZXIoY29vcmRpbmF0ZS54Um90YXRpb24pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHk6IE51bWJlcihjb29yZGluYXRlLnlSb3RhdGlvbiksXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlbDNEOiBwb2lOYXZpZ2F0aW9uLm5vZGUubW9kZWwzRCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3ZWVwOiBwb2kubWF0dGVycG9ydFN3ZWVwSUQsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSlcbiAgICB9XG5cbiAgICBhc3luYyB1cGRhdGVJY29uRm9yQWxsT2JqZWN0cyhcbiAgICAgICAgb2JqZWN0czogVGlja2V0W10gfCBGZWF0dXJlW10gfCBFcXVpcG1lbnRbXSxcbiAgICAgICAgdGFnSWNvbjogc3RyaW5nLFxuICAgICk6IFByb21pc2U8UE9JW10+IHtcbiAgICAgICAgY29uc3QgSURzID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgb2JqZWN0IG9mIG9iamVjdHMpIHtcbiAgICAgICAgICAgIElEcy5wdXNoKG9iamVjdC5pZCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9pcyA9IFtdO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIElEcy5tYXAoYXN5bmMgKGlkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9pID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLmdldFBvaUJ5RWxlbWVudElkKGlkKTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLnVwZGF0ZVBvaSh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBwb2kuaWQsXG4gICAgICAgICAgICAgICAgICAgIHRhZ0ljb24sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcG9pcy5wdXNoKHVwZGF0ZWQpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnNvbGUubG9nKFwidXBkYXRlZFwiLCBwb2lzLmxlbmd0aCwgXCJwb2lzIHdpdGggbmV3IGljb25zXCIpO1xuICAgICAgICByZXR1cm4gcG9pcztcbiAgICB9XG59XG4iXX0=
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
31
31
  type: Inject,
32
32
  args: ['currentAPIService']
33
33
  }] }]; } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9tb2RlbHMvY2FwdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1uRCxNQUFNLE9BQU8sY0FBYztJQUd2QixZQUF5QyxXQUFnQjtRQUNyRCxJQUFJLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQTtJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE9BQWU7UUFDcEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFpQjtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFpQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBZ0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7MkdBekJRLGNBQWMsa0JBR0gsbUJBQW1COytHQUg5QixjQUFjLGNBRlgsTUFBTTsyRkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBSWdCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ2FwdHVyZSB9IGZyb20gXCIuLi8uLi90eXBlcy5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIENhcHR1cmVTZXJ2aWNlIHtcclxuICAgIEFQSTogYW55OyAvL0FXU1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMuQVBJID0gYXBpSW5qZWN0ZWRcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRDYXB0dXJlc0J5U3BhY2Uoc3BhY2VJRDogc3RyaW5nKTogUHJvbWlzZTxDYXB0dXJlW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuQ2FwdHVyZXNCeVNwYWNlKHNwYWNlSUQpLnRoZW4oKGNhcCkgPT4gY2FwLml0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRDYXB0dXJlKGNhcHR1cmVJRDogc3RyaW5nKTogUHJvbWlzZTxDYXB0dXJlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5HZXRDYXB0dXJlKGNhcHR1cmVJRCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZGVsZXRlQ2FwdHVyZShjYXB0dXJlSUQ6IHN0cmluZyk6IFByb21pc2U8Q2FwdHVyZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uRGVsZXRlQ2FwdHVyZSh7aWQ6IGNhcHR1cmVJRH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHVwZGF0ZUNhcHR1cmUoY2FwdHVyZTogYW55KTogUHJvbWlzZTxDYXB0dXJlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5VcGRhdGVDYXB0dXJlKGNhcHR1cmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNyZWF0ZUNhcHR1cmUoY2FwdHVyZTogQ2FwdHVyZSk6IFByb21pc2U8Q2FwdHVyZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlQ2FwdHVyZShjYXB0dXJlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9tb2RlbHMvY2FwdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1uRCxNQUFNLE9BQU8sY0FBYztJQUd2QixZQUF5QyxXQUFnQjtRQUNyRCxJQUFJLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQTtJQUMxQixDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE9BQWU7UUFDcEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFpQjtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFpQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBZ0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7MkdBekJRLGNBQWMsa0JBR0gsbUJBQW1COytHQUg5QixjQUFjLGNBRlgsTUFBTTsyRkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBSWdCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENhcHR1cmUgfSBmcm9tIFwiLi4vLi4vdHlwZXMuc2VydmljZVwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIENhcHR1cmVTZXJ2aWNlIHtcbiAgICBBUEk6IGFueTsgLy9BV1NcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueSkge1xuICAgICAgICB0aGlzLkFQSSA9IGFwaUluamVjdGVkXG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0Q2FwdHVyZXNCeVNwYWNlKHNwYWNlSUQ6IHN0cmluZyk6IFByb21pc2U8Q2FwdHVyZVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5DYXB0dXJlc0J5U3BhY2Uoc3BhY2VJRCkudGhlbigoY2FwKSA9PiBjYXAuaXRlbXMpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldENhcHR1cmUoY2FwdHVyZUlEOiBzdHJpbmcpOiBQcm9taXNlPENhcHR1cmU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5HZXRDYXB0dXJlKGNhcHR1cmVJRCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZGVsZXRlQ2FwdHVyZShjYXB0dXJlSUQ6IHN0cmluZyk6IFByb21pc2U8Q2FwdHVyZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkRlbGV0ZUNhcHR1cmUoe2lkOiBjYXB0dXJlSUR9KTtcbiAgICB9XG5cbiAgICBhc3luYyB1cGRhdGVDYXB0dXJlKGNhcHR1cmU6IGFueSk6IFByb21pc2U8Q2FwdHVyZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLlVwZGF0ZUNhcHR1cmUoY2FwdHVyZSk7XG4gICAgfVxuXG4gICAgYXN5bmMgY3JlYXRlQ2FwdHVyZShjYXB0dXJlOiBDYXB0dXJlKTogUHJvbWlzZTxDYXB0dXJlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlQ2FwdHVyZShjYXB0dXJlKTtcbiAgICB9XG59XG4iXX0=
@@ -95,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
95
95
  type: Inject,
96
96
  args: ['currentAPIService']
97
97
  }] }, { type: i1.PoiService }]; } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9tb2RlbHMvY29tbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBMEMsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTS9DLE1BQU0sT0FBTyxjQUFjO0lBR3ZCLFlBQXlDLFdBQWdCLEVBQzdDLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDOUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7SUFDM0IsQ0FBQztJQUVELHVCQUF1QixDQUFDLFFBQWdCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxPQUFlO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDbkQsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQy9CLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLHdCQUF3QixDQUFDLFNBQWlCO1FBQzVDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLElB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Q0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEtBQUs7Z0JBQ2hDLEtBQUssQ0FBQyxFQUFFLEtBQUssU0FBUyxFQUN4QjtnQkFDRSxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUM7b0JBQ3JCLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtvQkFDWixZQUFZLEVBQUUsS0FBSztpQkFDdEIsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsT0FBTyxjQUFjLENBQUM7SUFDMUIsQ0FBQzs7MkdBaEhRLGNBQWMsa0JBR0gsbUJBQW1COytHQUg5QixjQUFjLGNBRlgsTUFBTTsyRkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBSWdCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWVhc3VyZW1lbnQsIEZlYXR1cmUsIENvbW1lbnQsIElVcGRhdGUsIENvbW1lbnRUeXBlIH0gZnJvbSBcIi4uLy4uL3R5cGVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgdXBsb2FkRmlsZVRvUzMgfSBmcm9tIFwiLi4vczMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQb2lTZXJ2aWNlIH0gZnJvbSBcIi4vcG9pLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbWVudFNlcnZpY2Uge1xyXG5cclxuICAgIEFQSTogYW55OyAvLyBBV1NcclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueSxcclxuICAgICAgICBwcml2YXRlIHBvaVNlcnZpY2U6IFBvaVNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLkFQSSA9IGFwaUluamVjdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENvbW1lbnRzRnJvbVRpY2tldElEKHRpY2tldElEOiBzdHJpbmcpOiBQcm9taXNlPENvbW1lbnRbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uQ29tbWVudHNCeVRpY2tldCh0aWNrZXRJRCkudGhlbigocmVzKSA9PiByZXMuaXRlbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldENvbW1lbnRzQnlTcGFjZUlEKHNwYWNlSUQ6IHN0cmluZyk6IFByb21pc2U8Q29tbWVudFtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5Db21tZW50c0J5U3BhY2Uoc3BhY2VJRCkudGhlbihcclxuICAgICAgICAgICAgKGNvbW1lbnRzKSA9PiBjb21tZW50cy5pdGVtcyxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHJlYWRDb21tZW50QXNNZWFzdXJlbWVudChjb21tZW50SUQ6IHN0cmluZyk6IFByb21pc2U8TWVhc3VyZW1lbnQ+IHtcclxuICAgICAgICBjb25zdCBjb21tZW50ID0gYXdhaXQgdGhpcy5nZXRDb21tZW50KGNvbW1lbnRJRCk7XHJcbiAgICAgICAgaWYgKGNvbW1lbnQudGlja2V0SUQgJiYgIWNvbW1lbnQudGlja2V0KSB7XHJcbiAgICAgICAgICAgIGNvbW1lbnQudGlja2V0ID0gYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLkdldFRpY2tldChjb21tZW50LnRpY2tldElEKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdmFsdWVzID0gY29tbWVudC5kaW1lbnNpb25zO1xyXG4gICAgICAgIGNvbnN0IG51bWJlclBvaW50cyA9IHZhbHVlcy5sZW5ndGggKyAxO1xyXG4gICAgICAgIGNvbnN0IHBvaSA9IGF3YWl0IHRoaXMucG9pU2VydmljZS5nZXRQb2lCeUVsZW1lbnRJZChjb21tZW50SUQpO1xyXG4gICAgICAgIGNvbnN0IG1lYXN1cmUgPSB7XHJcbiAgICAgICAgICAgIGlkOiBjb21tZW50LmlkLFxyXG4gICAgICAgICAgICBjb21tZW50LFxyXG4gICAgICAgICAgICBwb2ksXHJcbiAgICAgICAgICAgIG51bWJlclBvaW50cyxcclxuICAgICAgICAgICAgdmFsdWVzLFxyXG4gICAgICAgIH0gYXMgTWVhc3VyZW1lbnQ7XHJcbiAgICAgICAgcmV0dXJuIG1lYXN1cmU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDUlVEXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBhc3luYyBnZXRDb21tZW50KGNvbW1lbnRJRDogc3RyaW5nKTogUHJvbWlzZTxDb21tZW50PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5HZXRDb21tZW50KGNvbW1lbnRJRCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZGVsZXRlQ29tbWVudChjb21tZW50SUQ6IHN0cmluZyk6IFByb21pc2U8Q29tbWVudD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uRGVsZXRlQ29tbWVudCh7IGlkOiBjb21tZW50SUQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY3JlYXRlQ29tbWVudChjb21tZW50OiBDb21tZW50KTogUHJvbWlzZTxDb21tZW50PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5DcmVhdGVDb21tZW50KGNvbW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHVwZGF0ZUNvbW1lbnQoaW5wdXQ6IGFueSk6IFByb21pc2U8Q29tbWVudD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uVXBkYXRlQ29tbWVudChpbnB1dCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgdXBsb2FkRmlsZUZvckNvbW1lbnQoZmlsZTogRmlsZSwgaWQ6IHN0cmluZyA9IG51bGwpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB1cGxvYWRGaWxlVG9TMyhcImNvbW1lbnRzL1wiLCBmaWxlLCBpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIENyZWF0ZSBhIG5ldyBjb21tZW50IHdpdGggYW4gZXhpc3RpbmcgQW5uZXhlICovXHJcbiAgICBhc3luYyBjcmVhdGVDb21tZW50V2l0aEZpbGVVUkwoXHJcbiAgICAgICAgY29tbWVudDogQ29tbWVudCxcclxuICAgICAgICB1cmw6IHN0cmluZyxcclxuICAgICk6IFByb21pc2U8Q29tbWVudD4ge1xyXG4gICAgICAgIGNvbnN0IG5ld0NvbW1lbnQgPSBjb21tZW50O1xyXG4gICAgICAgIG5ld0NvbW1lbnQuYW5uZXhlID0gdXJsO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbW1lbnQobmV3Q29tbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY3JlYXRlQ29tbWVudFdpdGhGaWxlKFxyXG4gICAgICAgIGNvbW1lbnQ6IENvbW1lbnQsXHJcbiAgICAgICAgZmlsZTogRmlsZSxcclxuICAgICk6IFByb21pc2U8Q29tbWVudD4ge1xyXG4gICAgICAgIGxldCBjcmVhdGVkQ29tbWVudCA9IGF3YWl0IHRoaXMuY3JlYXRlQ29tbWVudChjb21tZW50KTtcclxuICAgICAgICBpZiAoZmlsZSkge1xyXG4gICAgICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLnVwbG9hZEZpbGVGb3JDb21tZW50KFxyXG4gICAgICAgICAgICAgICAgZmlsZSxcclxuICAgICAgICAgICAgICAgIGNyZWF0ZWRDb21tZW50LmlkLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjcmVhdGVkQ29tbWVudCA9IGF3YWl0IHRoaXMudXBkYXRlQ29tbWVudCh7XHJcbiAgICAgICAgICAgICAgICBpZDogY3JlYXRlZENvbW1lbnQuaWQsXHJcbiAgICAgICAgICAgICAgICBhbm5leGU6IHVybCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjcmVhdGVkQ29tbWVudDtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGFzeW5jIHNldENvbW1lbnRBc0NvdmVyRm9yRmVhdHVyZShcclxuICAgICAgICBjb21tZW50SUQ6IHN0cmluZyxcclxuICAgICAgICBmZWF0dXJlOiBGZWF0dXJlLFxyXG4gICAgKTogUHJvbWlzZTxDb21tZW50PiB7XHJcbiAgICAgICAgY29uc3QgdXBkYXRlZENvbW1lbnQgPSBhd2FpdCB0aGlzLnVwZGF0ZUNvbW1lbnQoe1xyXG4gICAgICAgICAgICBpZDogY29tbWVudElELFxyXG4gICAgICAgICAgICBpc0NvdmVySW1hZ2U6IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgIGZlYXR1cmUuY29tbWVudHMuaXRlbXMubWFwKGFzeW5jIChpbWFnZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlLnR5cGUgPT09IENvbW1lbnRUeXBlLklNQUdFICYmXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2UuaWQgIT09IGNvbW1lbnRJRFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVDb21tZW50KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGltYWdlLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0NvdmVySW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB1cGRhdGVkQ29tbWVudDtcclxuICAgIH1cclxufVxyXG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9tb2RlbHMvY29tbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBMEMsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTS9DLE1BQU0sT0FBTyxjQUFjO0lBR3ZCLFlBQXlDLFdBQWdCLEVBQzdDLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDOUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7SUFDM0IsQ0FBQztJQUVELHVCQUF1QixDQUFDLFFBQWdCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxPQUFlO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDbkQsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQy9CLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLHdCQUF3QixDQUFDLFNBQWlCO1FBQzVDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLElB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Q0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEtBQUs7Z0JBQ2hDLEtBQUssQ0FBQyxFQUFFLEtBQUssU0FBUyxFQUN4QjtnQkFDRSxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUM7b0JBQ3JCLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtvQkFDWixZQUFZLEVBQUUsS0FBSztpQkFDdEIsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsT0FBTyxjQUFjLENBQUM7SUFDMUIsQ0FBQzs7MkdBaEhRLGNBQWMsa0JBR0gsbUJBQW1COytHQUg5QixjQUFjLGNBRlgsTUFBTTsyRkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBSWdCLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1lYXN1cmVtZW50LCBGZWF0dXJlLCBDb21tZW50LCBJVXBkYXRlLCBDb21tZW50VHlwZSB9IGZyb20gXCIuLi8uLi90eXBlcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyB1cGxvYWRGaWxlVG9TMyB9IGZyb20gXCIuLi9zMy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBQb2lTZXJ2aWNlIH0gZnJvbSBcIi4vcG9pLnNlcnZpY2VcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxufSlcbmV4cG9ydCBjbGFzcyBDb21tZW50U2VydmljZSB7XG5cbiAgICBBUEk6IGFueTsgLy8gQVdTXG4gICAgY29uc3RydWN0b3IoQEluamVjdCgnY3VycmVudEFQSVNlcnZpY2UnKSBhcGlJbmplY3RlZDogYW55LFxuICAgICAgICBwcml2YXRlIHBvaVNlcnZpY2U6IFBvaVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5BUEkgPSBhcGlJbmplY3RlZDtcbiAgICB9XG5cbiAgICBnZXRDb21tZW50c0Zyb21UaWNrZXRJRCh0aWNrZXRJRDogc3RyaW5nKTogUHJvbWlzZTxDb21tZW50W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5Db21tZW50c0J5VGlja2V0KHRpY2tldElEKS50aGVuKChyZXMpID0+IHJlcy5pdGVtcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0Q29tbWVudHNCeVNwYWNlSUQoc3BhY2VJRDogc3RyaW5nKTogUHJvbWlzZTxDb21tZW50W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5Db21tZW50c0J5U3BhY2Uoc3BhY2VJRCkudGhlbihcbiAgICAgICAgICAgIChjb21tZW50cykgPT4gY29tbWVudHMuaXRlbXMsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYXN5bmMgcmVhZENvbW1lbnRBc01lYXN1cmVtZW50KGNvbW1lbnRJRDogc3RyaW5nKTogUHJvbWlzZTxNZWFzdXJlbWVudD4ge1xuICAgICAgICBjb25zdCBjb21tZW50ID0gYXdhaXQgdGhpcy5nZXRDb21tZW50KGNvbW1lbnRJRCk7XG4gICAgICAgIGlmIChjb21tZW50LnRpY2tldElEICYmICFjb21tZW50LnRpY2tldCkge1xuICAgICAgICAgICAgY29tbWVudC50aWNrZXQgPSBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uR2V0VGlja2V0KGNvbW1lbnQudGlja2V0SUQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IGNvbW1lbnQuZGltZW5zaW9ucztcbiAgICAgICAgY29uc3QgbnVtYmVyUG9pbnRzID0gdmFsdWVzLmxlbmd0aCArIDE7XG4gICAgICAgIGNvbnN0IHBvaSA9IGF3YWl0IHRoaXMucG9pU2VydmljZS5nZXRQb2lCeUVsZW1lbnRJZChjb21tZW50SUQpO1xuICAgICAgICBjb25zdCBtZWFzdXJlID0ge1xuICAgICAgICAgICAgaWQ6IGNvbW1lbnQuaWQsXG4gICAgICAgICAgICBjb21tZW50LFxuICAgICAgICAgICAgcG9pLFxuICAgICAgICAgICAgbnVtYmVyUG9pbnRzLFxuICAgICAgICAgICAgdmFsdWVzLFxuICAgICAgICB9IGFzIE1lYXN1cmVtZW50O1xuICAgICAgICByZXR1cm4gbWVhc3VyZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDUlVEXG4gICAgICpcbiAgICAgKi9cbiAgICBhc3luYyBnZXRDb21tZW50KGNvbW1lbnRJRDogc3RyaW5nKTogUHJvbWlzZTxDb21tZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uR2V0Q29tbWVudChjb21tZW50SUQpO1xuICAgIH1cblxuICAgIGFzeW5jIGRlbGV0ZUNvbW1lbnQoY29tbWVudElEOiBzdHJpbmcpOiBQcm9taXNlPENvbW1lbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5EZWxldGVDb21tZW50KHsgaWQ6IGNvbW1lbnRJRCB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBjcmVhdGVDb21tZW50KGNvbW1lbnQ6IENvbW1lbnQpOiBQcm9taXNlPENvbW1lbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5DcmVhdGVDb21tZW50KGNvbW1lbnQpO1xuICAgIH1cblxuICAgIGFzeW5jIHVwZGF0ZUNvbW1lbnQoaW5wdXQ6IGFueSk6IFByb21pc2U8Q29tbWVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLlVwZGF0ZUNvbW1lbnQoaW5wdXQpO1xuICAgIH1cblxuICAgIGFzeW5jIHVwbG9hZEZpbGVGb3JDb21tZW50KGZpbGU6IEZpbGUsIGlkOiBzdHJpbmcgPSBudWxsKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHVwbG9hZEZpbGVUb1MzKFwiY29tbWVudHMvXCIsIGZpbGUsIGlkKTtcbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIGEgbmV3IGNvbW1lbnQgd2l0aCBhbiBleGlzdGluZyBBbm5leGUgKi9cbiAgICBhc3luYyBjcmVhdGVDb21tZW50V2l0aEZpbGVVUkwoXG4gICAgICAgIGNvbW1lbnQ6IENvbW1lbnQsXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICk6IFByb21pc2U8Q29tbWVudD4ge1xuICAgICAgICBjb25zdCBuZXdDb21tZW50ID0gY29tbWVudDtcbiAgICAgICAgbmV3Q29tbWVudC5hbm5leGUgPSB1cmw7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbW1lbnQobmV3Q29tbWVudCk7XG4gICAgfVxuXG4gICAgYXN5bmMgY3JlYXRlQ29tbWVudFdpdGhGaWxlKFxuICAgICAgICBjb21tZW50OiBDb21tZW50LFxuICAgICAgICBmaWxlOiBGaWxlLFxuICAgICk6IFByb21pc2U8Q29tbWVudD4ge1xuICAgICAgICBsZXQgY3JlYXRlZENvbW1lbnQgPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbW1lbnQoY29tbWVudCk7XG4gICAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLnVwbG9hZEZpbGVGb3JDb21tZW50KFxuICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgY3JlYXRlZENvbW1lbnQuaWQsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY3JlYXRlZENvbW1lbnQgPSBhd2FpdCB0aGlzLnVwZGF0ZUNvbW1lbnQoe1xuICAgICAgICAgICAgICAgIGlkOiBjcmVhdGVkQ29tbWVudC5pZCxcbiAgICAgICAgICAgICAgICBhbm5leGU6IHVybCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjcmVhdGVkQ29tbWVudDtcbiAgICB9XG5cblxuXG4gICAgYXN5bmMgc2V0Q29tbWVudEFzQ292ZXJGb3JGZWF0dXJlKFxuICAgICAgICBjb21tZW50SUQ6IHN0cmluZyxcbiAgICAgICAgZmVhdHVyZTogRmVhdHVyZSxcbiAgICApOiBQcm9taXNlPENvbW1lbnQ+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZENvbW1lbnQgPSBhd2FpdCB0aGlzLnVwZGF0ZUNvbW1lbnQoe1xuICAgICAgICAgICAgaWQ6IGNvbW1lbnRJRCxcbiAgICAgICAgICAgIGlzQ292ZXJJbWFnZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgZmVhdHVyZS5jb21tZW50cy5pdGVtcy5tYXAoYXN5bmMgKGltYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBpbWFnZS50eXBlID09PSBDb21tZW50VHlwZS5JTUFHRSAmJlxuICAgICAgICAgICAgICAgICAgICBpbWFnZS5pZCAhPT0gY29tbWVudElEXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tbWVudCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogaW1hZ2UuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0NvdmVySW1hZ2U6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRDb21tZW50O1xuICAgIH1cbn1cbiJdfQ==
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
75
75
  type: Inject,
76
76
  args: ['currentAPIService']
77
77
  }] }]; } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL21vZGVscy9kb21haW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBSXpELE1BQU0sT0FBTyxhQUFhO0lBR3RCLFlBQXlDLFdBQWdCO1FBQ3JELElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsbUNBQW1DLENBQ3JDLGNBQXNCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNoQyxPQUFPLENBQ0gsR0FBRyxDQUFDLGNBQWMsS0FBSyxjQUFjLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUMvRCxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLLENBQUMsdUNBQXVDLENBQ3pDLEtBQWEsRUFDYixlQUF1QixJQUFJO1FBRTNCLHNEQUFzRDtRQUN0RCxJQUFJLEtBQUssS0FBSyxzQ0FBc0MsRUFBRTtZQUNsRCxrQ0FBa0M7WUFDbEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFR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LENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDZixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxLQUFhO1FBQzNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLDhCQUE4QixDQUNyRCxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQzVELEtBQUssQ0FDUixDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDOzswR0ExR1EsYUFBYSxrQkFHRixtQkFBbUI7OEdBSDlCLGFBQWEsY0FGVixNQUFNOzJGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFJZ0IsTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBmaWx0ZXJVbmlxdWVBcnJheUJ5SUQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERvbWFpbiwgRG9tYWluVHlwZSB9IGZyb20gXCIuLi8uLi90eXBlcy5zZXJ2aWNlXCI7XHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9tYWluU2VydmljZSB7XHJcbiAgICBBUEk6IGFueTsgLy9BV1NcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KCdjdXJyZW50QVBJU2VydmljZScpIGFwaUluamVjdGVkOiBhbnkpIHtcclxuICAgICAgICB0aGlzLkFQSSA9IGFwaUluamVjdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEdlbmVyaWNEb21haW5zQW5kRm9yT3JnYW5pc2F0aW9uKFxyXG4gICAgICAgIG9yZ2FuaXNhdGlvbklEOiBzdHJpbmcsXHJcbiAgICApOiBQcm9taXNlPGFueSB8IHZvaWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkxpc3REb21haW5zKCkudGhlbigoZG9tYWlucykgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZG9tYWlucy5pdGVtcy5maWx0ZXIoKGRvbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICBkb20ub3JnYW5pc2F0aW9uSUQgPT09IG9yZ2FuaXNhdGlvbklEIHx8ICFkb20ub3JnYW5pc2F0aW9uSURcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEdlbmVyaWNEb21haW5zQW5kRm9yT3JnQW5kT3JkZXJlZE9yZyhcclxuICAgICAgICBvcmdJRDogc3RyaW5nLFxyXG4gICAgICAgIG9yZGVyZWRPcmdJRDogc3RyaW5nID0gbnVsbCxcclxuICAgICk6IFByb21pc2U8RG9tYWluW10+IHtcclxuICAgICAgICAvLyBUT0RPOiBDaGFuZ2UgdGhpcyAoVVVJRCBjYW4gY2hhbmdlIGRlcGVuZGluZyBvbiBEQilcclxuICAgICAgICBpZiAob3JnSUQgPT09IFwiNmUyODIwMWYtNDY3OS00YzI5LTlkMmQtOGEzMjVmNTdjZWU5XCIpIHtcclxuICAgICAgICAgICAgLy8gSSBhbSBTbWFydGVyUGxhbiwgaSBjYW4gc2VlIGFsbFxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkxpc3REb21haW5zKCkudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLml0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY3VycmVudE9yZ0RvbWFpbnMgPVxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldEdlbmVyaWNEb21haW5zQW5kRm9yT3JnYW5pc2F0aW9uKG9yZ0lEKTtcclxuICAgICAgICBpZiAoIW9yZGVyZWRPcmdJRCB8fCBvcmdJRCA9PT0gb3JkZXJlZE9yZ0lEKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50T3JnRG9tYWlucztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgb3JkZXJlZE9yZ0RvbWFpbnMgPVxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldEdlbmVyaWNEb21haW5zQW5kRm9yT3JnYW5pc2F0aW9uKG9yZGVyZWRPcmdJRCk7XHJcbiAgICAgICAgY29uc3QgbWVyZ2VkID0gWy4uLmN1cnJlbnRPcmdEb21haW5zLCAuLi5vcmRlcmVkT3JnRG9tYWluc107XHJcbiAgICAgICAgcmV0dXJuIGZpbHRlclVuaXF1ZUFycmF5QnlJRChtZXJnZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldERvbWFpbnNGb3JPcmdFeGNsdWRpbmdUeXBlcyhcclxuICAgICAgICB0eXBlczogRG9tYWluVHlwZVtdLFxyXG4gICAgICAgIG9yZ2FuaXNhdGlvbklEOiBzdHJpbmcsXHJcbiAgICApOiBQcm9taXNlPERvbWFpbltdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R2VuZXJpY0RvbWFpbnNBbmRGb3JPcmdhbmlzYXRpb24ob3JnYW5pc2F0aW9uSUQpLnRoZW4oXHJcbiAgICAgICAgICAgIChkb21haW5zKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9tYWlucy5maWx0ZXIoKGRvbSkgPT4gIXR5cGVzLmluY2x1ZGVzKGRvbS50eXBlKSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXREb21haW4oaWQ6IHN0cmluZyk6IFByb21pc2U8RG9tYWluPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5HZXREb21haW4oaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHVwZGF0ZURvbWFpbihpbnB1dDogYW55KTogUHJvbWlzZTxEb21haW4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLlVwZGF0ZURvbWFpbihpbnB1dCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZGVsZXRlRG9tYWluKGlkOiBzdHJpbmcpOiBQcm9taXNlPERvbWFpbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uRGVsZXRlRG9tYWluKHsgaWQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0Um9vdERvbWFpbnMob3JnSUQ6IHN0cmluZyk6IFByb21pc2U8RG9tYWluW10+IHtcclxuICAgICAgICBjb25zdCBhbGxEb21haW5zID0gYXdhaXQgdGhpcy5nZXRHZW5lcmljRG9tYWluc0FuZEZvck9yZ2FuaXNhdGlvbihcclxuICAgICAgICAgICAgb3JnSUQsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCByb290ID0gYWxsRG9tYWlucy5maWx0ZXIoKGRvbSkgPT4gIWRvbS5wYXJlbnRJRCk7XHJcbiAgICAgICAgcmV0dXJuIHJvb3Quc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY3JlYXRlRG9tYWluKGlucHV0OiBEb21haW4pOiBQcm9taXNlPERvbWFpbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlRG9tYWluKGlucHV0KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXREb21haW5zRm9yT3JnRm9yVHlwZShcclxuICAgICAgICB0eXBlOiBEb21haW5UeXBlLFxyXG4gICAgICAgIG9yZ2FuaXNhdGlvbklEOiBzdHJpbmcsXHJcbiAgICAgICAgb3JkZXJlZE9yZzogc3RyaW5nID0gbnVsbCxcclxuICAgICk6IFByb21pc2U8RG9tYWluW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRHZW5lcmljRG9tYWluc0FuZEZvck9yZ0FuZE9yZGVyZWRPcmcoXHJcbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbklELFxyXG4gICAgICAgICAgICBvcmRlcmVkT3JnLFxyXG4gICAgICAgICkudGhlbigoZG9tYWlucykgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZG9tYWlucy5maWx0ZXIoKGRvbSkgPT4gZG9tLnR5cGUgPT09IHR5cGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldFBhcmVudERvbWFpbnNGb3JPcmdBbmRPcmRlcmVkT3JnRm9yVHlwZShcclxuICAgICAgICB0eXBlOiBEb21haW5UeXBlLFxyXG4gICAgICAgIG9yZ2FuaXNhdGlvbklEOiBzdHJpbmcsXHJcbiAgICAgICAgb3JkZXJlZE9yZzogc3RyaW5nID0gbnVsbCxcclxuICAgICk6IFByb21pc2U8RG9tYWluW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRHZW5lcmljRG9tYWluc0FuZEZvck9yZ0FuZE9yZGVyZWRPcmcoXHJcbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbklELFxyXG4gICAgICAgICAgICBvcmRlcmVkT3JnLFxyXG4gICAgICAgICkudGhlbigoZG9tYWlucykgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZG9tYWlucy5maWx0ZXIoKGRvbSkgPT4gZG9tLnR5cGUgPT09IHR5cGUgJiYgIWRvbS5wYXJlbnRJRCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0RG9tYWluc0Zvck1pc3Npb25zRm9yT3JnKG9yZ0lEOiBzdHJpbmcpOiBQcm9taXNlPERvbWFpbltdPiB7XHJcbiAgICAgICAgY29uc3QgZG9tYWlucyA9IGF3YWl0IHRoaXMuZ2V0RG9tYWluc0Zvck9yZ0V4Y2x1ZGluZ1R5cGVzKFxyXG4gICAgICAgICAgICBbRG9tYWluVHlwZS5CT09LSU5HLCBEb21haW5UeXBlLkZFQVRVUkUsIERvbWFpblR5cGUuTUlTU0lPTl0sXHJcbiAgICAgICAgICAgIG9yZ0lELFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGRvbWFpbnMuZmlsdGVyKChkb20pID0+ICFkb20ucGFyZW50SUQpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL21vZGVscy9kb21haW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBSXpELE1BQU0sT0FBTyxhQUFhO0lBR3RCLFlBQXlDLFdBQWdCO1FBQ3JELElBQUksQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsbUNBQW1DLENBQ3JDLGNBQXNCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNoQyxPQUFPLENBQ0gsR0FBRyxDQUFDLGNBQWMsS0FBSyxjQUFjLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUMvRCxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxLQUFLLENBQUMsdUNBQXVDLENBQ3pDLEtBQWEsRUFDYixlQUF1QixJQUFJO1FBRTNCLHNEQUFzRDtRQUN0RCxJQUFJLEtBQUssS0FBSyxzQ0FBc0MsRUFBRTtZQUNsRCxrQ0FBa0M7WUFDbEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFR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LENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDZixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxLQUFhO1FBQzNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLDhCQUE4QixDQUNyRCxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQzVELEtBQUssQ0FDUixDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDOzswR0ExR1EsYUFBYSxrQkFHRixtQkFBbUI7OEdBSDlCLGFBQWEsY0FGVixNQUFNOzJGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFJZ0IsTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgZmlsdGVyVW5pcXVlQXJyYXlCeUlEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMuc2VydmljZVwiO1xuaW1wb3J0IHsgRG9tYWluLCBEb21haW5UeXBlIH0gZnJvbSBcIi4uLy4uL3R5cGVzLnNlcnZpY2VcIjtcbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgRG9tYWluU2VydmljZSB7XG4gICAgQVBJOiBhbnk7IC8vQVdTXG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KCdjdXJyZW50QVBJU2VydmljZScpIGFwaUluamVjdGVkOiBhbnkpIHtcbiAgICAgICAgdGhpcy5BUEkgPSBhcGlJbmplY3RlZDtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRHZW5lcmljRG9tYWluc0FuZEZvck9yZ2FuaXNhdGlvbihcbiAgICAgICAgb3JnYW5pc2F0aW9uSUQ6IHN0cmluZyxcbiAgICApOiBQcm9taXNlPGFueSB8IHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5MaXN0RG9tYWlucygpLnRoZW4oKGRvbWFpbnMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBkb21haW5zLml0ZW1zLmZpbHRlcigoZG9tKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgZG9tLm9yZ2FuaXNhdGlvbklEID09PSBvcmdhbmlzYXRpb25JRCB8fCAhZG9tLm9yZ2FuaXNhdGlvbklEXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRHZW5lcmljRG9tYWluc0FuZEZvck9yZ0FuZE9yZGVyZWRPcmcoXG4gICAgICAgIG9yZ0lEOiBzdHJpbmcsXG4gICAgICAgIG9yZGVyZWRPcmdJRDogc3RyaW5nID0gbnVsbCxcbiAgICApOiBQcm9taXNlPERvbWFpbltdPiB7XG4gICAgICAgIC8vIFRPRE86IENoYW5nZSB0aGlzIChVVUlEIGNhbiBjaGFuZ2UgZGVwZW5kaW5nIG9uIERCKVxuICAgICAgICBpZiAob3JnSUQgPT09IFwiNmUyODIwMWYtNDY3OS00YzI5LTlkMmQtOGEzMjVmNTdjZWU5XCIpIHtcbiAgICAgICAgICAgIC8vIEkgYW0gU21hcnRlclBsYW4sIGkgY2FuIHNlZSBhbGxcbiAgICAgICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uTGlzdERvbWFpbnMoKS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuaXRlbXMpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPcmdEb21haW5zID1cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0R2VuZXJpY0RvbWFpbnNBbmRGb3JPcmdhbmlzYXRpb24ob3JnSUQpO1xuICAgICAgICBpZiAoIW9yZGVyZWRPcmdJRCB8fCBvcmdJRCA9PT0gb3JkZXJlZE9yZ0lEKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudE9yZ0RvbWFpbnM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JkZXJlZE9yZ0RvbWFpbnMgPVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRHZW5lcmljRG9tYWluc0FuZEZvck9yZ2FuaXNhdGlvbihvcmRlcmVkT3JnSUQpO1xuICAgICAgICBjb25zdCBtZXJnZWQgPSBbLi4uY3VycmVudE9yZ0RvbWFpbnMsIC4uLm9yZGVyZWRPcmdEb21haW5zXTtcbiAgICAgICAgcmV0dXJuIGZpbHRlclVuaXF1ZUFycmF5QnlJRChtZXJnZWQpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldERvbWFpbnNGb3JPcmdFeGNsdWRpbmdUeXBlcyhcbiAgICAgICAgdHlwZXM6IERvbWFpblR5cGVbXSxcbiAgICAgICAgb3JnYW5pc2F0aW9uSUQ6IHN0cmluZyxcbiAgICApOiBQcm9taXNlPERvbWFpbltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEdlbmVyaWNEb21haW5zQW5kRm9yT3JnYW5pc2F0aW9uKG9yZ2FuaXNhdGlvbklEKS50aGVuKFxuICAgICAgICAgICAgKGRvbWFpbnMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9tYWlucy5maWx0ZXIoKGRvbSkgPT4gIXR5cGVzLmluY2x1ZGVzKGRvbS50eXBlKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFzeW5jIGdldERvbWFpbihpZDogc3RyaW5nKTogUHJvbWlzZTxEb21haW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5HZXREb21haW4oaWQpO1xuICAgIH1cblxuICAgIGFzeW5jIHVwZGF0ZURvbWFpbihpbnB1dDogYW55KTogUHJvbWlzZTxEb21haW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5VcGRhdGVEb21haW4oaW5wdXQpO1xuICAgIH1cblxuICAgIGFzeW5jIGRlbGV0ZURvbWFpbihpZDogc3RyaW5nKTogUHJvbWlzZTxEb21haW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5EZWxldGVEb21haW4oeyBpZCB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRSb290RG9tYWlucyhvcmdJRDogc3RyaW5nKTogUHJvbWlzZTxEb21haW5bXT4ge1xuICAgICAgICBjb25zdCBhbGxEb21haW5zID0gYXdhaXQgdGhpcy5nZXRHZW5lcmljRG9tYWluc0FuZEZvck9yZ2FuaXNhdGlvbihcbiAgICAgICAgICAgIG9yZ0lELFxuICAgICAgICApO1xuICAgICAgICBjb25zdCByb290ID0gYWxsRG9tYWlucy5maWx0ZXIoKGRvbSkgPT4gIWRvbS5wYXJlbnRJRCk7XG4gICAgICAgIHJldHVybiByb290LnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpO1xuICAgIH1cblxuICAgIGFzeW5jIGNyZWF0ZURvbWFpbihpbnB1dDogRG9tYWluKTogUHJvbWlzZTxEb21haW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5DcmVhdGVEb21haW4oaW5wdXQpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldERvbWFpbnNGb3JPcmdGb3JUeXBlKFxuICAgICAgICB0eXBlOiBEb21haW5UeXBlLFxuICAgICAgICBvcmdhbmlzYXRpb25JRDogc3RyaW5nLFxuICAgICAgICBvcmRlcmVkT3JnOiBzdHJpbmcgPSBudWxsLFxuICAgICk6IFByb21pc2U8RG9tYWluW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R2VuZXJpY0RvbWFpbnNBbmRGb3JPcmdBbmRPcmRlcmVkT3JnKFxuICAgICAgICAgICAgb3JnYW5pc2F0aW9uSUQsXG4gICAgICAgICAgICBvcmRlcmVkT3JnLFxuICAgICAgICApLnRoZW4oKGRvbWFpbnMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBkb21haW5zLmZpbHRlcigoZG9tKSA9PiBkb20udHlwZSA9PT0gdHlwZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFzeW5jIGdldFBhcmVudERvbWFpbnNGb3JPcmdBbmRPcmRlcmVkT3JnRm9yVHlwZShcbiAgICAgICAgdHlwZTogRG9tYWluVHlwZSxcbiAgICAgICAgb3JnYW5pc2F0aW9uSUQ6IHN0cmluZyxcbiAgICAgICAgb3JkZXJlZE9yZzogc3RyaW5nID0gbnVsbCxcbiAgICApOiBQcm9taXNlPERvbWFpbltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEdlbmVyaWNEb21haW5zQW5kRm9yT3JnQW5kT3JkZXJlZE9yZyhcbiAgICAgICAgICAgIG9yZ2FuaXNhdGlvbklELFxuICAgICAgICAgICAgb3JkZXJlZE9yZyxcbiAgICAgICAgKS50aGVuKChkb21haW5zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZG9tYWlucy5maWx0ZXIoKGRvbSkgPT4gZG9tLnR5cGUgPT09IHR5cGUgJiYgIWRvbS5wYXJlbnRJRCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFzeW5jIGdldERvbWFpbnNGb3JNaXNzaW9uc0Zvck9yZyhvcmdJRDogc3RyaW5nKTogUHJvbWlzZTxEb21haW5bXT4ge1xuICAgICAgICBjb25zdCBkb21haW5zID0gYXdhaXQgdGhpcy5nZXREb21haW5zRm9yT3JnRXhjbHVkaW5nVHlwZXMoXG4gICAgICAgICAgICBbRG9tYWluVHlwZS5CT09LSU5HLCBEb21haW5UeXBlLkZFQVRVUkUsIERvbWFpblR5cGUuTUlTU0lPTl0sXG4gICAgICAgICAgICBvcmdJRCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGRvbWFpbnMuZmlsdGVyKChkb20pID0+ICFkb20ucGFyZW50SUQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -678,4 +678,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
678
678
  type: Inject,
679
679
  args: ['currentAwsKinesisAnalyticsService']
680
680
  }] }, { type: i1.PoiService }, { type: i2.NavigationService }, { type: i3.OperationService }, { type: i4.TicketsService }, { type: i5.NavigatorService }, { type: i6.FilterService }, { type: i7.BaseUserService }, { type: i8.ViewerService }, { type: i9.NgbModal }, { type: i10.ZoneChangeService }]; } });
681
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1aXBtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL21vZGVscy9lcXVpcG1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHdCQUF3QixHQUV6QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFNTCxRQUFRLEVBRVIsV0FBVyxFQUNYLFNBQVMsRUFHVCxPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFHN0IsT0FBTyxFQUNMLFlBQVksRUFDWixhQUFhLEVBQ2IsNkJBQTZCLEVBQzdCLGNBQWMsR0FDZixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBVXhELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxpQkFBaUI7SUF5RHJELFlBQytCLFdBQWdCLEVBRTNDLDJCQUFnQyxFQUNsQyxVQUFzQixFQUN0QixpQkFBb0MsRUFDNUIsZ0JBQWtDLEVBQ2xDLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixXQUE0QixFQUM1QixhQUE0QixFQUM1QixZQUFzQixFQUN0QixpQkFBb0M7UUFFNUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBVDdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEs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LEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDbkM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVMLElBQUksQ0FBQyxnQkFBZ0I7aUJBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUM5QixTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDdkIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO29CQUN2QixJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs2R0FsMEJVLGdCQUFnQixrQkEwRGpCLG1CQUFtQixhQUNuQixtQ0FBbUM7aUhBM0RsQyxnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQTJESSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge05nYk1vZGFsfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7U3ViamVjdCwgdGFrZVVudGlsfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBvcGVuTW9kYWxGb3JWaXNpdFN3aXRjaCxcclxuICByZW1vdmVOdWxsS2V5c0Zyb21PYmplY3QsXHJcbiAgd2FpdFVudGlsLFxyXG59IGZyb20gJy4uLy4uL2hlbHBlcnMuc2VydmljZSc7XHJcbmltcG9ydCB7TWF0dGVydGFnRGF0YX0gZnJvbSAnLi4vLi4vbWF0dGVydGFnRGF0YSc7XHJcbmltcG9ydCB7XHJcbiAgTm90ZSxcclxuICBab25lLFxyXG4gIEVxdWlwbWVudCxcclxuICBFcXVpcG1lbnREb2N1bWVudCxcclxuICBUaWNrZXQsXHJcbiAgVHlwZU5vdGUsXHJcbiAgTWlzc2lvbixcclxuICBFdmVudFN0YXR1cyxcclxuICBFdmVudFR5cGUsXHJcbiAgT3BlcmF0aW9uLFxyXG4gIFBPSSxcclxuICBQb2lUeXBlLFxyXG4gIFJvbGVTdGF0dXMsXHJcbn0gZnJvbSAnLi4vLi4vdHlwZXMuc2VydmljZSc7XHJcbmltcG9ydCB7RmlsdGVyU2VydmljZX0gZnJvbSAnLi4vZmlsdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge05hdmlnYXRvclNlcnZpY2V9IGZyb20gJy4uL25hdmlnYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBkZWxldGVGcm9tUzMsXHJcbiAgZ2V0U2lnbmVkRmlsZSxcclxuICBnZXRTaWduZWRJbWFnZVVybEZvckVxdWlwbWVudCxcclxuICB1cGxvYWRGaWxlVG9TMyxcclxufSBmcm9tICcuLi9zMy5zZXJ2aWNlJztcclxuaW1wb3J0IHtCYXNlVXNlclNlcnZpY2V9IGZyb20gJy4uL3VzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7Vmlld2VyU2VydmljZX0gZnJvbSAnLi4vdmlld2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Jhc2VPYmplY3RTZXJ2aWNlfSBmcm9tICcuL2Jhc2Utb2JqZWN0LnNlcnZpY2UnO1xyXG5pbXBvcnQge05hdmlnYXRpb25TZXJ2aWNlfSBmcm9tICcuL25hdmlnYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7T3BlcmF0aW9uU2VydmljZX0gZnJvbSAnLi9vcGVyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7UG9pU2VydmljZX0gZnJvbSAnLi9wb2kuc2VydmljZSc7XHJcbmltcG9ydCB7VGlja2V0c1NlcnZpY2V9IGZyb20gJy4vdGlja2V0LnNlcnZpY2UnO1xyXG5pbXBvcnQge1pvbmVDaGFuZ2VTZXJ2aWNlfSBmcm9tIFwiLi4vem9uZUNoYW5nZS5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXF1aXBtZW50U2VydmljZSBleHRlbmRzIEJhc2VPYmplY3RTZXJ2aWNlIHtcclxuICBwcml2YXRlIHByZWZpeCA9IHtcclxuICAgIHRlY2huaWNhbDogJ2VxdWlwbWVudHMvbm90ZS90ZWNobmljYWwvJyxcclxuICAgIGltYWdlOiAnZXF1aXBtZW50cy9ub3RlL2ltYWdlLycsXHJcbiAgICBmaW5hbmNpYWw6ICdlcXVpcG1lbnRzL25vdGUvZmluYW5jaWFsLycsXHJcbiAgICBpbmZvcm1hdGlvbjogJ2VxdWlwbWVudHMvbm90ZS9pbmZvcm1hdGlvbi8nLFxyXG4gICAgb3RoZXI6ICdlcXVpcG1lbnRzL25vdGUvb3RoZXIvJyxcclxuICAgIGNvbnRyYWN0dWFsOiAnZXF1aXBtZW50cy9ub3RlL2NvbnRyYWN0dWFsLycsXHJcbiAgfTtcclxuXHJcbiAgZXF1aXBtZW50c1VwZGF0ZWQ6IFN1YmplY3Q8e1xyXG4gICAgc3BhY2U6IEVxdWlwbWVudFtdO1xyXG4gICAgem9uZTogRXF1aXBtZW50W107XHJcbiAgfT4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjdXJyZW50RXF1aXBtZW50czoge1xyXG4gICAgc3BhY2U6IEVxdWlwbWVudFtdO1xyXG4gICAgem9uZXNNYXA6IE1hcDxzdHJpbmcsIEVxdWlwbWVudFtdPjtcclxuICB9ID0ge1xyXG4gICAgc3BhY2U6IFtdLFxyXG4gICAgem9uZXNNYXA6IG5ldyBNYXAoKSxcclxuICB9O1xyXG5cclxuICBlcXVpcG1lbnRzVGFnczogU3ViamVjdDxFcXVpcG1lbnRbXT4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICB6b25lSURGaWx0ZXI6IHN0cmluZztcclxuXHJcbiAgY3VycmVudFpvbmU6IFpvbmU7XHJcblxyXG4gIGN1cnJlbnRTcGFjZUlEOiBzdHJpbmc7XHJcblxyXG4gIGZsb29yc1BlclNwYWNlOiBab25lW10gPSBudWxsO1xyXG5cclxuICAvKiogTnVsbCBtZWFucyB3ZSBkbyBub3QgYXBwbHkgYSBmaWx0ZXIsIGVtcHR5IGFycmF5IChbXSksIG1lYW5zIHdlIHRoYXQgd2UgaGlkZSBhbGwgZXF1aXBtZW50ICovXHJcbiAgZXF1aXBtZW50RG9tYWluRmlsdGVyOiBzdHJpbmdbXSA9IG51bGw7XHJcblxyXG4gIHVwZGF0aW5nOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY3VycmVudGx5VXBkYXRpbmcgPSBmYWxzZTtcclxuXHJcbiAgY3VycmVudFN3ZWVwOiBzdHJpbmc7XHJcblxyXG4gIGRlbGV0ZU9ic2VydmFibGU6IFN1YmplY3Q8RXF1aXBtZW50PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNyZWF0ZU9ic2VydmFibGU6IFN1YmplY3Q8RXF1aXBtZW50PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHVwZGF0ZU9ic2VydmFibGU6IFN1YmplY3Q8RXF1aXBtZW50PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHNlbGVjdGVkRmxvb3I6IFpvbmUgPSBudWxsO1xyXG5cclxuICBBUEk6IGFueTsgLy9BV1NcclxuICBhd3NLaW5lc2lzQW5hbHl0aWNzOiBhbnk7IC8vQVdTXHJcblxyXG4gIGlzTXVzZXVtVXNlciA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KCdjdXJyZW50QVBJU2VydmljZScpIGFwaUluamVjdGVkOiBhbnksXHJcbiAgICBASW5qZWN0KCdjdXJyZW50QXdzS2luZXNpc0FuYWx5dGljc1NlcnZpY2UnKVxyXG4gICAgICBhd3NLaW5lc2lzQW5hbHl0aWNzSW5qZWN0ZWQ6IGFueSxcclxuICAgIHBvaVNlcnZpY2U6IFBvaVNlcnZpY2UsXHJcbiAgICBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG9wZXJhdGlvblNlcnZpY2U6IE9wZXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRpY2tldHNTZXJ2aWNlOiBUaWNrZXRzU2VydmljZSxcclxuICAgIHByaXZhdGUgbmF2aWdhdG9yU2VydmljZTogTmF2aWdhdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgZmlsdGVyU2VydmljZTogRmlsdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IEJhc2VVc2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgdmlld2VyU2VydmljZTogVmlld2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgem9uZUNoYW5nZVNlcnZpY2U6IFpvbmVDaGFuZ2VTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihwb2lTZXJ2aWNlLCBuYXZpZ2F0aW9uU2VydmljZSk7XHJcblxyXG4gICAgdGhpcy5BUEkgPSBhcGlJbmplY3RlZDtcclxuICAgIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcyA9IGF3c0tpbmVzaXNBbmFseXRpY3NJbmplY3RlZDtcclxuXHJcbiAgICB0aGlzLmlzTXVzZXVtVXNlciA9IHRoaXMudXNlclNlcnZpY2UuaGFzT25seU11c2V1bVJvbGUoKTtcclxuICAgIHRoaXMuaW5pdFN1YnNjcmlwdGlvbnMoKTtcclxuICAgIHRoaXMudXNlclNlcnZpY2UuaXNDaGFuZ2VkLnN1YnNjcmliZSgoaXNDb25uZWN0ZWQpID0+IHtcclxuICAgICAgaWYgKGlzQ29ubmVjdGVkKSB7XHJcbiAgICAgICAgdGhpcy5pc011c2V1bVVzZXIgPSB0aGlzLnVzZXJTZXJ2aWNlLmhhc09ubHlNdXNldW1Sb2xlKCk7XHJcbiAgICAgICAgdGhpcy5pbml0U3Vic2NyaXB0aW9ucygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS5mbG9vckhhc0NoYW5nZWQuc3Vic2NyaWJlKChmbG9vcik9PntcclxuICAgICAgaWYgKGZsb29yKXtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmxvb3IgPSBmbG9vcjtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyByZWFkRXF1aXBtZW50KGlkOiBzdHJpbmcpOiBQcm9taXNlPEVxdWlwbWVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5HZXRFcXVpcG1lbnQoaWQpLnRoZW4oYXN5bmMgKHJlY2VpdmVkRXF1aXApID0+IHtcclxuICAgICAgbGV0IGVxdWlwOiBFcXVpcG1lbnQ7XHJcbiAgICAgIGlmIChyZWNlaXZlZEVxdWlwKSB7XHJcbiAgICAgICAgZXF1aXAgPSByZWNlaXZlZEVxdWlwO1xyXG4gICAgICAgIGVxdWlwID0gYXdhaXQgdGhpcy5nZXRTaWduZWRVcmxzRm9yRXF1aXBtZW50KHJlY2VpdmVkRXF1aXApO1xyXG4gICAgICAgIGlmIChlcXVpcC5kb21haW4pIHtcclxuICAgICAgICAgIGlmIChlcXVpcC5kb21haW4ucGFyZW50SUQpIHtcclxuICAgICAgICAgICAgZXF1aXAuY2hpbGREb21haW4gPSBlcXVpcC5kb21haW47XHJcbiAgICAgICAgICAgIGVxdWlwLnBhcmVudERvbWFpbiA9IGVxdWlwLmRvbWFpbi5wYXJlbnQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBlcXVpcC5wYXJlbnREb21haW4gPSBlcXVpcC5kb21haW47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlcXVpcC5zdWJlcXVpcG1lbnRzSURzKSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJFcXVpcHMgPSBbXTtcclxuICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICBlcXVpcC5zdWJlcXVpcG1lbnRzSURzLm1hcChhc3luYyAoc3ViSWQpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBzdWJFcXVpcCA9IGF3YWl0IHRoaXMuQVBJLkdldEVxdWlwbWVudChzdWJJZCk7XHJcbiAgICAgICAgICAgICAgc3ViRXF1aXBzLnB1c2goc3ViRXF1aXApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGVxdWlwLnN1YkVxdWlwbWVudHMgPSBzdWJFcXVpcHM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBlcXVpcDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgY3JlYXRlRXF1aXBtZW50KFxyXG4gICAgZXF1aXA6IEVxdWlwbWVudCxcclxuICAgIGltYWdlRmlsZTogRmlsZSxcclxuICAgIGRvY3VtZW50RmlsZTogRmlsZVxyXG4gICk6IFByb21pc2U8RXF1aXBtZW50IHwgdm9pZD4ge1xyXG4gICAgcmVtb3ZlTnVsbEtleXNGcm9tT2JqZWN0KGVxdWlwKTtcclxuICAgIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5nZXRJbnN0YW5jZSgpLnJlY29yZChcclxuICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICB7XHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgZXZlbnRUeXBlOiAnT2JqZWN0IENyZWF0aW9uJyxcclxuICAgICAgICAgIG9iamVjdFR5cGU6ICdlcXVpcG1lbnQnLFxyXG4gICAgICAgICAgcG9pOiBlcXVpcCxcclxuICAgICAgICAgIHVzZXI6IHRoaXMudXNlclNlcnZpY2UuY3UsXHJcbiAgICAgICAgICBsb2NhdGlvbklkOiB0aGlzLmN1cnJlbnRTcGFjZUlELFxyXG4gICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxyXG4gICAgICAgICAgem9uZUlkOiB0aGlzLmN1cnJlbnRab25lLmlkLFxyXG4gICAgICAgICAgZmxvb3JJZDogdGhpcy5zZWxlY3RlZEZsb29yPy5pZCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN0cmVhbU5hbWU6ICdzbWFydGVycGxhbktpbmVzaXMtYW5hbHl0aWNzJyxcclxuICAgICAgICAvLyBwYXJ0aXRpb25LZXk6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgICdBV1NLaW5lc2lzJ1xyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLkFQSS5DcmVhdGVFcXVpcG1lbnQoZXF1aXApLnRoZW4oYXN5bmMgKHJlY2VpdmVkRXF1aXBtZW50KSA9PiB7XHJcbiAgICAgIGxldCBlcXVpcG1lbnQgPSByZWNlaXZlZEVxdWlwbWVudCBhcyBFcXVpcG1lbnQ7XHJcbiAgICAgIGlmIChlcXVpcG1lbnQpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnZXF1aXBtZW50IGNyZWF0ZWQ6JywgZXF1aXBtZW50KTtcclxuICAgICAgICBpZiAoZG9jdW1lbnRGaWxlKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnVwbG9hZERvYyhlcXVpcG1lbnQsIGRvY3VtZW50RmlsZSwgVHlwZU5vdGUuVEVDSE5JQ0FMKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGltYWdlRmlsZSkge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy51cGxvYWRJbWFnZShlcXVpcG1lbnQsIGltYWdlRmlsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBlcXVpcG1lbnQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFNpZ25lZFVybHNGb3JFcXVpcG1lbnQoZXF1aXA6IEVxdWlwbWVudCk6IFByb21pc2U8RXF1aXBtZW50PiB7XHJcbiAgICBjb25zdCBlcXVpcG1lbnQgPSB7Li4uZXF1aXB9O1xyXG4gICAgaWYgKGVxdWlwbWVudC5ub3Rlcy5pdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGRvY3MgPSBbXTtcclxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgZXF1aXBtZW50Lm5vdGVzLml0ZW1zLm1hcChhc3luYyAobm90ZSkgPT4ge1xyXG4gICAgICAgICAgZXF1aXBtZW50LmRvY3VtZW50YXRpb25JbWFnZVVybFNpZ25lZCA9XHJcbiAgICAgICAgICAgIGF3YWl0IGdldFNpZ25lZEltYWdlVXJsRm9yRXF1aXBtZW50KGVxdWlwbWVudCk7XHJcbiAgICAgICAgICBpZiAobm90ZS5hdHRhY2htZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHtsZW5ndGh9ID0gbm90ZS5hdHRhY2htZW50LnNwbGl0KCcvJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gbm90ZS5hdHRhY2htZW50LnNwbGl0KCcvJylbbGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnQgPSBhd2FpdCBnZXRTaWduZWRGaWxlKG5vdGUuYXR0YWNobWVudCk7XHJcbiAgICAgICAgICAgIGlmIChhdHRhY2htZW50KSB7XHJcbiAgICAgICAgICAgICAgZG9jcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGZpbGVuYW1lLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBub3RlLmF0dGFjaG1lbnQsXHJcbiAgICAgICAgICAgICAgICB1cmxTaWduZWQ6IGF0dGFjaG1lbnQsXHJcbiAgICAgICAgICAgICAgICBub3RlSUQ6IG5vdGUuaWQsXHJcbiAgICAgICAgICAgICAgfSBhcyBFcXVpcG1lbnREb2N1bWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICBlcXVpcG1lbnQuZG9jdW1lbnRzID0gZG9jcztcclxuICAgICAgcmV0dXJuIGVxdWlwbWVudDtcclxuICAgIH1cclxuICAgIHJldHVybiBlcXVpcG1lbnQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRFcXVpcG1lbnRzRm9yVGlja2V0KHRpY2tldDogVGlja2V0KTogUHJvbWlzZTxFcXVpcG1lbnRbXT4ge1xyXG4gICAgY29uc3Qgb3BlcmF0aW9ucyA9IHRpY2tldC5vcGVyYXRpb25zLml0ZW1zO1xyXG4gICAgaWYgKG9wZXJhdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBvcGVyYXRpb25zLnNvcnQoXHJcbiAgICAgICAgKGEsIGIpID0+XHJcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJldHRpZXIvcHJldHRpZXJcclxuICAgICAgICAgIG5ldyBEYXRlKGIuY3JlYXRlZEF0KSAtIG5ldyBEYXRlKGEuY3JlYXRlZEF0KVxyXG4gICAgICApO1xyXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICBvcGVyYXRpb25zLm1hcChhc3luYyAob3BlcmF0aW9uKSA9PiB7XHJcbiAgICAgICAgICBvcGVyYXRpb24uZXF1aXBtZW50ID0gYXdhaXQgdGhpcy5yZWFkRXF1aXBtZW50KG9wZXJhdGlvbi5lcXVpcG1lbnRJRCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIC8vIHRvIGtlZXAgdGhlIHNvcnRpbmcgYnkgY3JlYXRlZEF0XHJcbiAgICByZXR1cm4gb3BlcmF0aW9ucy5tYXAoKG8pID0+IG8uZXF1aXBtZW50KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldEVxdWlwbWVudHNGb3JTcGFjZShzcGFjZUlEOiBzdHJpbmcpOiBQcm9taXNlPEVxdWlwbWVudFtdPiB7XHJcbiAgICAvLyBzcGxpdCBieSAxMDBcclxuICAgIGNvbnN0IGxpbWl0ID0gMTAwO1xyXG4gICAgbGV0IGVxdWlwc1Rva2VuID0ge2VxdWlwczogW10sIG5leHRUb2tlbjogbnVsbH07XHJcbiAgICBkbyB7XHJcbiAgICAgIGVxdWlwc1Rva2VuID0gYXdhaXQgdGhpcy5tZXJnZUVxdWlwbWVudHNGb3JTcGFjZVdpdGhOZXh0VG9rZW5XaXRoTGltaXQoXHJcbiAgICAgICAgc3BhY2VJRCxcclxuICAgICAgICBsaW1pdCxcclxuICAgICAgICBlcXVpcHNUb2tlblxyXG4gICAgICApO1xyXG4gICAgfSB3aGlsZSAoZXF1aXBzVG9rZW4ubmV4dFRva2VuKTtcclxuICAgIHJldHVybiBlcXVpcHNUb2tlbi5lcXVpcHM7XHJcbiAgfVxyXG5cclxuICBhc3luYyBtZXJnZUVxdWlwbWVudHNGb3JTcGFjZVdpdGhOZXh0VG9rZW5XaXRoTGltaXQoXHJcbiAgICBzcGFjZUlEOiBzdHJpbmcsXHJcbiAgICBsaW1pdDogbnVtYmVyLFxyXG4gICAgZXF1aXBzVG9rZW46IHsgZXF1aXBzOiBFcXVpcG1lbnRbXTsgbmV4dFRva2VuOiBzdHJpbmcgfCBudWxsIH1cclxuICApOiBQcm9taXNlPHsgZXF1aXBzOiBFcXVpcG1lbnRbXTsgbmV4dFRva2VuOiBzdHJpbmcgfCBudWxsIH0+IHtcclxuICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX19cclxuICAgICAgLkVxdWlwbWVudHNCeVNwYWNlKFxyXG4gICAgICAgIHNwYWNlSUQsXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICAnREVTQycsXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICBsaW1pdCxcclxuICAgICAgICBlcXVpcHNUb2tlbi5uZXh0VG9rZW4gLy8gbmV4dFRva2VuXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZXF1aXBzTGltaXQgPSByZXNwb25zZS5pdGVtcztcclxuICAgICAgICBjb25zdCBlcXVpcHNPYmplY3QgPSB7XHJcbiAgICAgICAgICBlcXVpcHM6IFsuLi5lcXVpcHNUb2tlbi5lcXVpcHMsIC4uLmVxdWlwc0xpbWl0XSxcclxuICAgICAgICAgIG5leHRUb2tlbjogcmVzcG9uc2UubmV4dFRva2VuLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIGVxdWlwc09iamVjdDtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGxvYWRJbWFnZUZvckFsbEVxdWlwbWVudHMoXHJcbiAgICBlcXVpcG1lbnRzOiBFcXVpcG1lbnRbXSxcclxuICAgIGltYWdlRmlsZTogRmlsZVxyXG4gICk6IFByb21pc2U8RXF1aXBtZW50W10+IHtcclxuICAgIGlmIChlcXVpcG1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHVwbG9hZEZpbGVUb1MzKHRoaXMucHJlZml4LmltYWdlLCBpbWFnZUZpbGUsICdCQVRDSCcpLnRoZW4oXHJcbiAgICAgIGFzeW5jICh1cmwpID0+IHtcclxuICAgICAgICBpZiAodXJsKSB7XHJcbiAgICAgICAgICBjb25zdCBlcXVpcHMgPSBbXTtcclxuICAgICAgICAgIGZvciAoY29uc3QgZXF1aXAgb2YgZXF1aXBtZW50cykge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TWlzc2lvbiA9IHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb24oXHJcbiAgICAgICAgICAgICAgZXF1aXAuc3BhY2VJRFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlTm90ZSh7XHJcbiAgICAgICAgICAgICAgYXR0YWNobWVudDogdXJsLFxyXG4gICAgICAgICAgICAgIHR5cGU6IFR5cGVOb3RlLklNQUdFLFxyXG4gICAgICAgICAgICAgIGVxdWlwbWVudElEOiBlcXVpcC5pZCxcclxuICAgICAgICAgICAgICBvd25lck1pc3Npb25JRDogY3VycmVudE1pc3Npb24gPyBjdXJyZW50TWlzc2lvbi5pZCA6IG51bGwsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBjb25zdCB1cGRhdGUgPSBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uVXBkYXRlRXF1aXBtZW50KHtcclxuICAgICAgICAgICAgICBpZDogZXF1aXAuaWQsXHJcbiAgICAgICAgICAgICAgcGhvdG86IHVybCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGVxdWlwcy5wdXNoKHVwZGF0ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gZXF1aXBzO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGxvYWRJbWFnZShlcXVpcG1lbnQ6IEVxdWlwbWVudCwgaW1hZ2VGaWxlOiBGaWxlKTogUHJvbWlzZTxOb3RlPiB7XHJcbiAgICByZXR1cm4gdXBsb2FkRmlsZVRvUzModGhpcy5wcmVmaXguaW1hZ2UsIGltYWdlRmlsZSwgZXF1aXBtZW50LmlkKS50aGVuKFxyXG4gICAgICBhc3luYyAodXJsKSA9PiB7XHJcbiAgICAgICAgaWYgKHVybCkge1xyXG4gICAgICAgICAgY29uc3QgY3VycmVudE1pc3Npb24gPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9uKFxyXG4gICAgICAgICAgICBlcXVpcG1lbnQuc3BhY2VJRFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGNvbnN0IG5vdGUgPSBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlTm90ZSh7XHJcbiAgICAgICAgICAgIGF0dGFjaG1lbnQ6IHVybCxcclxuICAgICAgICAgICAgdHlwZTogVHlwZU5vdGUuSU1BR0UsXHJcbiAgICAgICAgICAgIGVxdWlwbWVudElEOiBlcXVpcG1lbnQuaWQsXHJcbiAgICAgICAgICAgIG93bmVyTWlzc2lvbklEOiBjdXJyZW50TWlzc2lvbiA/IGN1cnJlbnRNaXNzaW9uLmlkIDogbnVsbCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLlVwZGF0ZUVxdWlwbWVudCh7XHJcbiAgICAgICAgICAgIGlkOiBlcXVpcG1lbnQuaWQsXHJcbiAgICAgICAgICAgIHBob3RvOiB1cmwsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiBub3RlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHVwZGF0ZUVxdWlwbWVudChcclxuICAgIGVxdWlwOiBhbnksXHJcbiAgICBmaWxlOiBGaWxlID0gbnVsbCxcclxuICAgIG5vdGVUeXBlOiBUeXBlTm90ZSA9IG51bGxcclxuICApOiBQcm9taXNlPEVxdWlwbWVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fX1xyXG4gICAgICAuVXBkYXRlRXF1aXBtZW50KGVxdWlwKVxyXG4gICAgICAudGhlbihhc3luYyAocmVjZWl2ZWRFcXVpcG1lbnQpID0+IHtcclxuICAgICAgICBsZXQgZXF1aXBtZW50ID0gcmVjZWl2ZWRFcXVpcG1lbnQgYXMgRXF1aXBtZW50O1xyXG4gICAgICAgIGlmIChlcXVpcG1lbnQpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcXVpcG1lbnQgdXBkYXRlZDonLCBlcXVpcG1lbnQpO1xyXG4gICAgICAgICAgaWYgKG5vdGVUeXBlKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAobm90ZVR5cGUpIHtcclxuICAgICAgICAgICAgICBjYXNlIFR5cGVOb3RlLklNQUdFOlxyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy51cGxvYWRJbWFnZShlcXVpcG1lbnQsIGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudXBsb2FkRG9jKGVxdWlwbWVudCwgZmlsZSwgbm90ZVR5cGUpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGVxdWlwbWVudDtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQcmVmaXhEb2ModHlwZTogVHlwZU5vdGUpIHtcclxuICAgIGxldCBwcmVmaXg7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSBUeXBlTm90ZS5JTkZPUk1BVElPTjpcclxuICAgICAgICBwcmVmaXggPSB0aGlzLnByZWZpeC5pbmZvcm1hdGlvbjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBUeXBlTm90ZS5GSU5BTkNJQUw6XHJcbiAgICAgICAgcHJlZml4ID0gdGhpcy5wcmVmaXguZmluYW5jaWFsO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFR5cGVOb3RlLkNPTlRSQUNUVUFMOlxyXG4gICAgICAgIHByZWZpeCA9IHRoaXMucHJlZml4LmNvbnRyYWN0dWFsO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFR5cGVOb3RlLk9USEVSOlxyXG4gICAgICAgIHByZWZpeCA9IHRoaXMucHJlZml4Lm90aGVyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFR5cGVOb3RlLklNQUdFOlxyXG4gICAgICAgIHByZWZpeCA9IHRoaXMucHJlZml4LmltYWdlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHByZWZpeCA9IHRoaXMucHJlZml4LnRlY2huaWNhbDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBwcmVmaXg7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGxvYWREb2NGb3JBbGxFcXVpcG1lbnRzKFxyXG4gICAgZXF1aXBtZW50czogRXF1aXBtZW50W10sXHJcbiAgICBkb2N1bWVudEZpbGU6IEZpbGUsXHJcbiAgICB0eXBlOiBUeXBlTm90ZVxyXG4gICkge1xyXG4gICAgaWYgKGVxdWlwbWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2V0UHJlZml4RG9jKHR5cGUpO1xyXG4gICAgY29uc3QgdXJsID0gYXdhaXQgdXBsb2FkRmlsZVRvUzMocHJlZml4LCBkb2N1bWVudEZpbGUsICdCQVRDSCcpO1xyXG4gICAgaWYgKHVybCkge1xyXG4gICAgICBjb25zdCB1cGRhdGVMaXN0ID0gW107XHJcbiAgICAgIGZvciAoY29uc3QgZXF1aXAgb2YgZXF1aXBtZW50cykge1xyXG4gICAgICAgIGNvbnN0IG1pc3Npb24gPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9uKGVxdWlwLnNwYWNlSUQpO1xyXG4gICAgICAgIGNvbnN0IG5ld0VxdWlwID0gYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLkNyZWF0ZU5vdGUoe1xyXG4gICAgICAgICAgYXR0YWNobWVudDogdXJsLFxyXG4gICAgICAgICAgdHlwZSxcclxuICAgICAgICAgIGVxdWlwbWVudElEOiBlcXVpcC5pZCxcclxuICAgICAgICAgIG93bmVyTWlzc2lvbklEOiBtaXNzaW9uID8gbWlzc2lvbi5pZCA6IG51bGwsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdXBkYXRlTGlzdC5wdXNoKG5ld0VxdWlwKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdXBkYXRlTGlzdDtcclxuICAgIH1cclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHVwbG9hZERvYyhcclxuICAgIGVxdWlwbWVudDogRXF1aXBtZW50LFxyXG4gICAgZG9jdW1lbnRGaWxlOiBGaWxlLFxyXG4gICAgdHlwZTogVHlwZU5vdGVcclxuICApOiBQcm9taXNlPE5vdGU+IHtcclxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2V0UHJlZml4RG9jKHR5cGUpO1xyXG4gICAgY29uc3QgbWlzc2lvbiA9IHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb24oZXF1aXBtZW50LnNwYWNlSUQpO1xyXG4gICAgcmV0dXJuIHVwbG9hZEZpbGVUb1MzKHByZWZpeCwgZG9jdW1lbnRGaWxlLCBlcXVpcG1lbnQuaWQpLnRoZW4oXHJcbiAgICAgIGFzeW5jICh1cmwpID0+IHtcclxuICAgICAgICBpZiAodXJsKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkNyZWF0ZU5vdGUoe1xyXG4gICAgICAgICAgICBhdHRhY2htZW50OiB1cmwsXHJcbiAgICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICAgIGVxdWlwbWVudElEOiBlcXVpcG1lbnQuaWQsXHJcbiAgICAgICAgICAgIG93bmVyTWlzc2lvbklEOiBtaXNzaW9uID8gbWlzc2lvbi5pZCA6IG51bGwsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkZWxldGVFcXVpcG1lbnQoZXF1aXA6IEVxdWlwbWVudCk6IFByb21pc2U8RXF1aXBtZW50PiB7XHJcbiAgICBjb25zdCBkZWxldGVkID0gYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLkRlbGV0ZUVxdWlwbWVudCh7aWQ6IGVxdWlwLmlkfSk7XHJcbiAgICBjb25zb2xlLmxvZygnRGVsZXRlZCBlcXVpcG1lbnQnLCBkZWxldGVkKTtcclxuXHJcbiAgICAvLyBkZWxldGUgUE9JXHJcbiAgICBjb25zdCBbcG9pXSA9IGVxdWlwLnBvaXMuaXRlbXM7XHJcbiAgICBpZiAocG9pKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucG9pU2VydmljZS5kZWxldGVQb2kocG9pLmlkKTtcclxuICAgIH1cclxuICAgIC8vIGRlbGV0ZSBub3RlcyByZWxhdGVkXHJcbiAgICBpZiAoZXF1aXAubm90ZXMuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICBlcXVpcC5ub3Rlcy5pdGVtcy5tYXAoYXN5bmMgKG5vdGU6IE5vdGUpID0+IHtcclxuICAgICAgICAgIC8vIGRlbGV0ZSBmaWxlcyBmcm9tIFMzXHJcbiAgICAgICAgICAvKiogTm90IHNoYXJlZCB3aXRoIG90aGVyIGVxdWlwbWVudCAqL1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBub3RlLmF0dGFjaG1lbnQgJiZcclxuICAgICAgICAgICAgIW5vdGUuYXR0YWNobWVudC5zcGxpdCgnLycpLnBvcCgpLnN0YXJ0c1dpdGgoJ0JBVENIXycpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgYXdhaXQgZGVsZXRlRnJvbVMzKG5vdGUuYXR0YWNobWVudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uRGVsZXRlTm90ZSh7aWQ6IG5vdGUuaWR9KTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgLy8gZGVsZXRlIG9wZXJhdGlvbnMgKHJlbW92ZSBmcm9tIGxpbmtlZCB0aWNrZXRzKVxyXG4gICAgYXdhaXQgdGhpcy5vcGVyYXRpb25TZXJ2aWNlLmRlbGV0ZU9wZXJhdGlvbnNGb3JFcXVpcG1lbnQoZXF1aXAuaWQpO1xyXG4gICAgcmV0dXJuIGRlbGV0ZWQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGRhdGVFcXVpcG1lbnRMb2NhdGlvbihcclxuICAgIGVxdWlwOiBFcXVpcG1lbnQsXHJcbiAgICB0YWdEYXRhOiBNYXR0ZXJ0YWdEYXRhXHJcbiAgKTogUHJvbWlzZTxQT0k+IHtcclxuICAgIGNvbnN0IHBvaUlucHV0ID0ge1xyXG4gICAgICBjb29yZGluYXRlOiB0YWdEYXRhLmdldENvb3JkaW5hdGVTdHJpbmcoKSxcclxuICAgICAgdHlwZTogUG9pVHlwZS5FUVVJUE1FTlQsXHJcbiAgICAgIGVsZW1lbnRJRDogZXF1aXAuaWQsXHJcbiAgICAgIG1ldGFkYXRhOiB0YWdEYXRhLmdldE1ldGFkYXRhU3RyaW5nKCksXHJcbiAgICAgIG1hdHRlcnBvcnRTd2VlcElEOiB0YWdEYXRhLmdldFN3ZWVwSUQoKSxcclxuICAgIH0gYXMgUE9JO1xyXG4gICAgY29uc3QgcG9pID0gYXdhaXQgdGhpcy5wb2lTZXJ2aWNlLmNyZWF0ZVBPSUZvclNwYWNlSUQocG9pSW5wdXQpO1xyXG4gICAgcmV0dXJuIHBvaTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHJlbW92ZVRpY2tldEZyb21FcXVpcG1lbnQoXHJcbiAgICB0aWNrZXQ6IFRpY2tldCxcclxuICAgIGVxdWlwOiBFcXVpcG1lbnRcclxuICApOiBQcm9taXNlPE9wZXJhdGlvbj4ge1xyXG4gICAgY29uc3Qgb3BlcmF0aW9uRXF1aXAgPVxyXG4gICAgICBhd2FpdCB0aGlzLm9wZXJhdGlvblNlcnZpY2UuZ2V0T3BlcmF0aW9uc0J5RXF1aXBtZW50SUQoZXF1aXAuaWQpO1xyXG4gICAgY29uc3Qgb3BlcmF0aW9uVG9EZWxldGUgPSBvcGVyYXRpb25FcXVpcC5maW5kKFxyXG4gICAgICAob3ApID0+IG9wLnRpY2tldElEID09PSB0aWNrZXQuaWRcclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb25TZXJ2aWNlXHJcbiAgICAgIC5kZWxldGVPcGVyYXRpb24ob3BlcmF0aW9uVG9EZWxldGUuaWQpXHJcbiAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLnRpY2tldHNTZXJ2aWNlLmFkZEV2ZW50VG9UaWNrZXQodGlja2V0IGFzIFRpY2tldCwge1xyXG4gICAgICAgICAgdGl0bGU6ICdFcXVpcGVtZW50IHJldGlyw6kgZHUgdGlja2V0JyxcclxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgRXF1aXBlbWVudCAke2VxdWlwLm5hbWV9IGEgw6l0w6kgcmV0aXLDqSBkdSB0aWNrZXRgLFxyXG4gICAgICAgICAgc3RhdHVzOiBFdmVudFN0YXR1cy5VTkxJTktFRF9GUk9NX0VRVUlQTUVOVCxcclxuICAgICAgICAgIHR5cGU6IEV2ZW50VHlwZS5USUNLRVQsXHJcbiAgICAgICAgICB0cmFuc2xhdGlvblBhdGg6ICd0aWNrZXRFdmVudC50aWNrZXQudW5saW5rZWRGcm9tRXF1aXBtZW50JyxcclxuICAgICAgICAgIG1ldGFkYXRhOiBKU09OLnN0cmluZ2lmeSh7ZXF1aXBtZW50OiBlcXVpcC5uYW1lfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBpbml0RXF1aXBzKCkge1xyXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRTcGFjZUlEKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRpbmcubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuY3VycmVudGx5VXBkYXRpbmcgPSB0cnVlO1xyXG5cclxuICAgIGxldCBlcUxpc3QgPSBhd2FpdCB0aGlzLmdldEVxdWlwbWVudHNGb3JTcGFjZSh0aGlzLmN1cnJlbnRTcGFjZUlEKTtcclxuICAgIGVxTGlzdCA9IGF3YWl0IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJFcXVpcG1lbnRzRm9yQ3VycmVudFVzZXJJblNwYWNlKFxyXG4gICAgICB0aGlzLmN1cnJlbnRTcGFjZUlELFxyXG4gICAgICBlcUxpc3RcclxuICAgICk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhlcUxpc3QpO1xyXG4gICAgaWYgKGVxTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBmaWx0ZXJlZEVxdWlwcyA9IGVxTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgKGVxdWlwbWVudCkgPT4gIXRoaXMuaXNBcmNoaXZlZChlcXVpcG1lbnQpXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICBmaWx0ZXJlZEVxdWlwcy5tYXAoYXN5bmMgKGVxdWlwKSA9PiB7XHJcbiAgICAgICAgICBlcXVpcC5kb2N1bWVudGF0aW9uSW1hZ2VVcmxTaWduZWQgPVxyXG4gICAgICAgICAgICBhd2FpdCBnZXRTaWduZWRJbWFnZVVybEZvckVxdWlwbWVudChlcXVpcCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgaWYgKHRoaXMuZXF1aXBtZW50RG9tYWluRmlsdGVyKSB7XHJcbiAgICAgICAgZmlsdGVyZWRFcXVpcHMgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyRXF1aXBtZW50c0J5RG9tYWluTGlzdChcclxuICAgICAgICAgIGZpbHRlcmVkRXF1aXBzLFxyXG4gICAgICAgICAgdGhpcy5lcXVpcG1lbnREb21haW5GaWx0ZXJcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2UgPSBmaWx0ZXJlZEVxdWlwcztcclxuICAgICAgaWYgKHRoaXMuem9uZUlERmlsdGVyKSB7XHJcbiAgICAgICAgZmlsdGVyZWRFcXVpcHMgPSAoYXdhaXQgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlck9iamVjdHNGb3Jab25lKFxyXG4gICAgICAgICAgZmlsdGVyZWRFcXVpcHMsXHJcbiAgICAgICAgICB0aGlzLnpvbmVJREZpbHRlcixcclxuICAgICAgICAgIHRoaXMuY3VycmVudFpvbmVcclxuICAgICAgICApKSBhcyBFcXVpcG1lbnRbXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnpvbmVzTWFwLnNldCh0aGlzLnpvbmVJREZpbHRlciwgZmlsdGVyZWRFcXVpcHMpO1xyXG4gICAgICB0aGlzLmVxdWlwbWVudHNUYWdzLm5leHQoZmlsdGVyZWRFcXVpcHMpOyAvLyBhZGRpbmcgdGFncyBvbmx5IGZvciB0aGUgY3VycmVudCB6b25lXHJcbiAgICAgIHRoaXMuZXF1aXBtZW50c1VwZGF0ZWQubmV4dCh7XHJcbiAgICAgICAgc3BhY2U6IHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2UsXHJcbiAgICAgICAgem9uZTogZmlsdGVyZWRFcXVpcHMsXHJcbiAgICAgIH0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy56b25lSURGaWx0ZXIpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnpvbmVzTWFwLnNldCh0aGlzLnpvbmVJREZpbHRlciwgW10pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZXF1aXBtZW50c1VwZGF0ZWQubmV4dCh7c3BhY2U6IFtdLCB6b25lOiBbXX0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XHJcbiAgICB9XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmN1cnJlbnRFcXVpcG1lbnRzKTtcclxuICAgIHRoaXMudXBkYXRpbmcubmV4dChmYWxzZSk7XHJcbiAgICB0aGlzLmN1cnJlbnRseVVwZGF0aW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRFcXVpcG1lbnRzRm9yQ3VycmVudFVzZXJGb3JTcGFjZShcclxuICAgIHNwYWNlSUQsXHJcbiAgICBtaXNzaW9uczogTWlzc2lvbltdXHJcbiAgKTogUHJvbWlzZTxFcXVpcG1lbnRbXT4ge1xyXG4gICAgbGV0IHJlc3VsdHMgPSBbXTtcclxuXHJcbiAgICBjb25zdCBzcGFjZU1pc3Npb25zID0gbWlzc2lvbnMuZmlsdGVyKChtKSA9PiBtLnNwYWNlSUQgPT09IHNwYWNlSUQpO1xyXG4gICAgaWYgKHNwYWNlTWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY2FuU2VlRXF1aXBzID0gc3BhY2VNaXNzaW9ucy5zb21lKFxyXG4gICAgICAobSkgPT5cclxuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLm1hbmFnZXJzLmluY2x1ZGVzKG0ucm9sZSkgfHxcclxuICAgICAgICBtLnJvbGUgPT09IFJvbGVTdGF0dXMuU0VSVklDRVxyXG4gICAgKTtcclxuICAgIGlmICghY2FuU2VlRXF1aXBzKSB7XHJcbiAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfVxyXG4gICAgbGV0IGRvbWFpbnMgPSBbXTtcclxuICAgIGZvciAoY29uc3QgbSBvZiBzcGFjZU1pc3Npb25zKSB7XHJcbiAgICAgIGRvbWFpbnMgPSBbLi4uZG9tYWlucywgbS5kb21haW5zXTtcclxuICAgIH1cclxuICAgIGlmIChkb21haW5zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gcmVzdWx0cztcclxuICAgIH1cclxuICAgIHJlc3VsdHMgPSBhd2FpdCB0aGlzLmdldEVxdWlwbWVudHNGb3JTcGFjZShzcGFjZUlEKTtcclxuICAgIC8vIHJlc3VsdHMgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyRXF1aXBtZW50c0J5RG9tYWluTGlzdChcclxuICAgIC8vICAgICByZXN1bHRzLFxyXG4gICAgLy8gICAgIGRvbWFpbnMsXHJcbiAgICAvLyApO1xyXG4gICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGRhdGVJY29uRm9yQWxsRXF1aXBtZW50c0luU3BhY2UoXHJcbiAgICB0YWdJY29uOiBzdHJpbmcsXHJcbiAgICBzcGFjZUlEOiBzdHJpbmcsXHJcbiAgICBkb21haW5JRDogc3RyaW5nID0gbnVsbFxyXG4gICk6IFByb21pc2U8eyBlcXVpcHM6IEVxdWlwbWVudFtdOyBwb2lzOiBQT0lbXSB9PiB7XHJcbiAgICBsZXQgZXF1aXBzID0gYXdhaXQgdGhpcy5nZXRFcXVpcG1lbnRzRm9yU3BhY2Uoc3BhY2VJRCk7XHJcbiAgICBpZiAoZG9tYWluSUQpIHtcclxuICAgICAgZXF1aXBzID0gZXF1aXBzLmZpbHRlcigoZXF1aXApID0+IGVxdWlwLmRvbWFpbklEID09PSBkb21haW5JRCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwb2lzID0gYXdhaXQgdGhpcy51cGRhdGVJY29uRm9yQWxsT2JqZWN0cyhlcXVpcHMsIHRhZ0ljb24pO1xyXG4gICAgcmV0dXJuIHtlcXVpcHMsIHBvaXN9O1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldHVybiB0cnVlIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIGFyY2hpdmVkIHRoaXMgZXF1aXBtZW50ICovXHJcbiAgaXNBcmNoaXZlZChlcXVpcG1lbnQ6IEVxdWlwbWVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGVxdWlwbWVudC5hcmNoaXZlZEZvck1pc3Npb25JRFxyXG4gICAgICA/IGVxdWlwbWVudC5hcmNoaXZlZEZvck1pc3Npb25JRC5pbmNsdWRlcyhcclxuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9uKGVxdWlwbWVudC5zcGFjZUlEKS5pZFxyXG4gICAgICApXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRBcmNoaXZlZChlcXVpcG1lbnQ6IEVxdWlwbWVudCwgYXJjaGl2ZWQ6IGJvb2xlYW4pIHtcclxuICAgIGxldCBhcmNoaXZlZExpc3QgPSBlcXVpcG1lbnQuYXJjaGl2ZWRGb3JNaXNzaW9uSURcclxuICAgICAgPyBlcXVpcG1lbnQuYXJjaGl2ZWRGb3JNaXNzaW9uSURcclxuICAgICAgOiBbXTtcclxuICAgIGNvbnN0IG1pc3Npb25JRCA9IHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb24oZXF1aXBtZW50LnNwYWNlSUQpLmlkO1xyXG5cclxuICAgIGFyY2hpdmVkTGlzdCA9IGFyY2hpdmVkTGlzdC5maWx0ZXIoKG0pID0+IG0gIT09IG1pc3Npb25JRCk7XHJcblxyXG4gICAgaWYgKGFyY2hpdmVkKSB7XHJcbiAgICAgIGFyY2hpdmVkTGlzdC5wdXNoKG1pc3Npb25JRCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMudXBkYXRlRXF1aXBtZW50KHtcclxuICAgICAgaWQ6IGVxdWlwbWVudC5pZCxcclxuICAgICAgYXJjaGl2ZWRGb3JNaXNzaW9uSUQ6IGFyY2hpdmVkTGlzdCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZGVsZXRlRmlsZShkb2N1bWVudF86IEVxdWlwbWVudERvY3VtZW50KSB7XHJcbiAgICBhd2FpdCBkZWxldGVGcm9tUzMoZG9jdW1lbnRfLnVybCk7XHJcbiAgICBhd2FpdCB0aGlzLkFQSS5EZWxldGVOb3RlKHtpZDogZG9jdW1lbnRfLm5vdGVJRH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmF2aWdhdGVUb0VxdWlwbWVudEluM0QoXHJcbiAgICBlcXVpcG1lbnQ6IEVxdWlwbWVudCxcclxuICAgIGZvcmNlU3dpdGNoVmlzaXQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICkge1xyXG4gICAgbGV0IHVybCA9IGB2aXNpdC8ke2VxdWlwbWVudC5zcGFjZUlEfWA7XHJcbiAgICBpZiAoZm9yY2VTd2l0Y2hWaXNpdCkge1xyXG4gICAgICB1cmwgKz0gYC9lcXVpcC8ke2VxdWlwbWVudC5pZH1gO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY2FuR29Ub1RhZyA9IGF3YWl0IHRoaXMudmlld2VyU2VydmljZS5hY3Rpb25fbW92ZV90b190YWcoXHJcbiAgICAgIGAke2VxdWlwbWVudC5pZH1gXHJcbiAgICApO1xyXG4gICAgaWYgKGNhbkdvVG9UYWcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5nZXRNb2RlbDNkQW5kU3dlZXAoZXF1aXBtZW50KTtcclxuXHJcbiAgICBpZiAoIXJlc3VsdCB8fCAhcmVzdWx0Lm1vZGVsM0QpIHtcclxuICAgICAgYWxlcnQoJ0Vycm9yIHdoaWxlIGdldHRpbmcgdmlydHVhbCB2aXNpdCBtb2RlbCcpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIWZvcmNlU3dpdGNoVmlzaXQpIHtcclxuICAgICAgLy8gY2hlY2sgaWYgd2UgYXJlIG1vdmluZyB3aXRoaW4gdGhlIHNhbWUgM0QgbW9kZWxcclxuICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21vZGVsM0QnKTtcclxuICAgICAgaWYgKGN1cnJlbnRNb2RlbCAmJiBjdXJyZW50TW9kZWwgPT09IHJlc3VsdC5tb2RlbDNEKSB7XHJcbiAgICAgICAgLy8gd2UgYWRkIHRhZyB0byB0aGUgdmlzaXRcclxuICAgICAgICBjb25zdCBwb2kgPSBlcXVpcG1lbnQucG9pcy5pdGVtc1swXTtcclxuICAgICAgICBpZiAocG9pLmNvb3JkaW5hdGUpIHtcclxuICAgICAgICAgIC8vIHdlIGZvcmNlIGFkZCBiZWNhdXNlIHdlIG1pZ2h0IGJlIGluIGFuIGFub3RoZXIgem9uZVxyXG4gICAgICAgICAgYXdhaXQgdGhpcy52aWV3ZXJTZXJ2aWNlLmFjdGlvbkFkZE9iamVjdEZyb21QT0koZXF1aXBtZW50LCBwb2kpO1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy52aWV3ZXJTZXJ2aWNlLmFjdGlvbl9tb3ZlX3RvX3RhZyhlcXVpcG1lbnQuaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvKiogU2kgb24gbmUgZm9yY2UgcGFzIGxhIHZpc2l0ZSwgb24gZGVtYW5kZSBzaSBvbiB2ZXV0IGV0cmUgc3dpdGNoICovXHJcbiAgICAgICAgb3Blbk1vZGFsRm9yVmlzaXRTd2l0Y2goXHJcbiAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZSxcclxuICAgICAgICAgIHJlc3VsdC5tb2RlbDNELFxyXG4gICAgICAgICAgZXF1aXBtZW50LnNwYWNlSUQsXHJcbiAgICAgICAgICB7c3dlZXBUb01vdmU6IHJlc3VsdC5zd2VlcCwgcm90YXRpb246IHJlc3VsdC5yb3RhdGlvbn1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvKiogU2kgb24gZm9yY2UgbGUgc3dpdGNoIGRlIGxhIHZpc2l0ICovXHJcbiAgICAgIHdpbmRvdy5vcGVuKGAke3VybH0/bW9kZWwzRD0ke3Jlc3VsdC5tb2RlbDNEfSZzd2VlcD10cnVlYCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgdXBkYXRlRXF1aXBzRm9yWm9uZSgpIHtcclxuICAgIHRoaXMudXBkYXRpbmcubmV4dCh0cnVlKTtcclxuICAgIGxldCBmaWx0ZXJlZEVxdWlwcyA9IFtdO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2UubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgJiZcclxuICAgICAgICB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnpvbmVzTWFwLmhhcyh0aGlzLnpvbmVJREZpbHRlcilcclxuICAgICAgKSB7XHJcbiAgICAgICAgZmlsdGVyZWRFcXVpcHMgPSB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnpvbmVzTWFwLmdldCh0aGlzLnpvbmVJREZpbHRlcik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJpIGhhdmUgZXF1aXBzIGZvciB0aGlzIHpvbmVcIiwgZmlsdGVyZWRFcXVpcHMpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZpbHRlcmVkRXF1aXBzID0gKGF3YWl0IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJPYmplY3RzRm9yWm9uZShcclxuICAgICAgICAgIHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2UsXHJcbiAgICAgICAgICB0aGlzLnpvbmVJREZpbHRlcixcclxuICAgICAgICAgIHRoaXMuY3VycmVudFpvbmVcclxuICAgICAgICApKSBhcyBFcXVpcG1lbnRbXTtcclxuXHJcbiAgICAgICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcC5zZXQodGhpcy56b25lSURGaWx0ZXIsIFtcclxuICAgICAgICAgIC4uLmZpbHRlcmVkRXF1aXBzLFxyXG4gICAgICAgIF0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmVxdWlwbWVudERvbWFpbkZpbHRlcikge1xyXG4gICAgICAgIGZpbHRlcmVkRXF1aXBzID0gdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlckVxdWlwbWVudHNCeURvbWFpbkxpc3QoXHJcbiAgICAgICAgICBmaWx0ZXJlZEVxdWlwcyxcclxuICAgICAgICAgIHRoaXMuZXF1aXBtZW50RG9tYWluRmlsdGVyXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVxdWlwbWVudHNUYWdzLm5leHQoZmlsdGVyZWRFcXVpcHMpOyAvLyBhZGRpbmcgdGFncyBvbmx5IGZvciB0aGUgY3VycmVudCB6b25lXHJcbiAgICAgIHRoaXMuZXF1aXBtZW50c1VwZGF0ZWQubmV4dCh7XHJcbiAgICAgICAgc3BhY2U6IHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2UsXHJcbiAgICAgICAgem9uZTogZmlsdGVyZWRFcXVpcHMsXHJcbiAgICAgIH0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVxdWlwbWVudHNVcGRhdGVkLm5leHQoe3NwYWNlOiBbXSwgem9uZTogW119KTsgLy8gZm9yIGxhdGVyYWwgbWVudVxyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGluZy5uZXh0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUR1ZVRvRGVsZXRlKGRlbGV0ZWRFcXVpcG1lbnQ6IEVxdWlwbWVudCkge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJ1cGRhdGUgZHVlIHRvIGRlbGV0ZVwiLCBkZWxldGVkRXF1aXBtZW50KTtcclxuICAgIGNvbnN0IGVxdWlwID0gdGhpcy5jdXJyZW50RXF1aXBtZW50cy5zcGFjZS5maW5kKFxyXG4gICAgICAoX2VxdWlwKSA9PiBfZXF1aXAuaWQgPT09IGRlbGV0ZWRFcXVpcG1lbnQuaWRcclxuICAgICk7XHJcbiAgICBpZiAoZXF1aXApIHtcclxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnNwYWNlLmluZGV4T2YoZXF1aXApO1xyXG4gICAgICB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnNwYWNlLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IHpvbmUgb2YgdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcC5rZXlzKCkpIHtcclxuICAgICAgY29uc3QgZXF1aXBUb0RlbGV0ZSA9IHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXBcclxuICAgICAgICAuZ2V0KHpvbmUpXHJcbiAgICAgICAgLmZpbmQoKF9lcXVpcCkgPT4gX2VxdWlwLmlkID09PSBkZWxldGVkRXF1aXBtZW50LmlkKTtcclxuICAgICAgaWYgKGVxdWlwVG9EZWxldGUpIHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXBcclxuICAgICAgICAgIC5nZXQoem9uZSlcclxuICAgICAgICAgIC5pbmRleE9mKGVxdWlwVG9EZWxldGUpO1xyXG4gICAgICAgIHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXAuZ2V0KHpvbmUpLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZXF1aXBtZW50c1VwZGF0ZWQubmV4dCh7XHJcbiAgICAgIHNwYWNlOiB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnNwYWNlLFxyXG4gICAgICB6b25lOiB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnpvbmVzTWFwLmdldCh0aGlzLnpvbmVJREZpbHRlciksXHJcbiAgICB9KTsgLy8gZm9yIGxhdGVyYWwgbWVudVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlRHVlVG9DcmVhdGUoY3JlYXRlZEVxdWlwOiBFcXVpcG1lbnQpIHtcclxuICAgIHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2UudW5zaGlmdChjcmVhdGVkRXF1aXApO1xyXG4gICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcFxyXG4gICAgICAuZ2V0KHRoaXMuem9uZUlERmlsdGVyKVxyXG4gICAgICAudW5zaGlmdChjcmVhdGVkRXF1aXApO1xyXG4gICAgdGhpcy5lcXVpcG1lbnRzVXBkYXRlZC5uZXh0KHtcclxuICAgICAgc3BhY2U6IHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2UsXHJcbiAgICAgIHpvbmU6IHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXAuZ2V0KHRoaXMuem9uZUlERmlsdGVyKSxcclxuICAgIH0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XHJcbiAgfVxyXG5cclxuICB1cGRhdGVEdWVUb0VxdWlwVXBkYXRlZCh1cGRhdGVkRXF1aXA6IEVxdWlwbWVudCkge1xyXG4gICAgY29uc3QgZXF1aXAgPSB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnNwYWNlLmZpbmQoXHJcbiAgICAgIChfZXF1aXApID0+IF9lcXVpcC5pZCA9PT0gdXBkYXRlZEVxdWlwLmlkXHJcbiAgICApO1xyXG4gICAgaWYgKGVxdWlwKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50RXF1aXBtZW50cy5zcGFjZS5pbmRleE9mKGVxdWlwKTtcclxuICAgICAgaWYgKHRoaXMuaXNBcmNoaXZlZChlcXVpcCkpIHtcclxuICAgICAgICAvLyB3ZSByZW1vdmUgYXJjaGl2ZWQgZXF1aXBtZW50XHJcbiAgICAgICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy5zcGFjZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2Uuc3BsaWNlKGluZGV4LCAxLCB1cGRhdGVkRXF1aXApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IHpvbmUgb2YgdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcC5rZXlzKCkpIHtcclxuICAgICAgY29uc3QgZXF1aXBUb1VwZCA9IHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXBcclxuICAgICAgICAuZ2V0KHpvbmUpXHJcbiAgICAgICAgLmZpbmQoKF9lcXVpcCkgPT4gX2VxdWlwLmlkID09PSB1cGRhdGVkRXF1aXAuaWQpO1xyXG4gICAgICBpZiAoZXF1aXBUb1VwZCkge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcFxyXG4gICAgICAgICAgLmdldCh6b25lKVxyXG4gICAgICAgICAgLmluZGV4T2YoZXF1aXBUb1VwZCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNBcmNoaXZlZChlcXVpcCkpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXAuZ2V0KHpvbmUpLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXBcclxuICAgICAgICAgICAgLmdldCh6b25lKVxyXG4gICAgICAgICAgICAuc3BsaWNlKGluZGV4LCAxLCB1cGRhdGVkRXF1aXApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5lcXVpcG1lbnRzVXBkYXRlZC5uZXh0KHtcclxuICAgICAgc3BhY2U6IHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2UsXHJcbiAgICAgIHpvbmU6IHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXAuZ2V0KHRoaXMuem9uZUlERmlsdGVyKSxcclxuICAgIH0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XHJcbiAgfVxyXG5cclxuICBpbml0U3Vic2NyaXB0aW9ucygpIHtcclxuICAgIGlmICghdGhpcy5pc011c2V1bVVzZXIpIHtcclxuICAgICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS56b25lQ2hhbmdlXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHpvbmUpID0+IHtcclxuICAgICAgICAgIGlmICghem9uZSB8fCAhdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnRTcGFjZUlEKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNwYWNlSUQgPSB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY3VycmVudFNwYWNlSUQ7XHJcbiAgICAgICAgICAgIHRoaXMuZXF1aXBtZW50c1RhZ3MubmV4dChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5lcXVpcG1lbnRzVXBkYXRlZC5uZXh0KHtzcGFjZTogW10sIHpvbmU6IG51bGx9KTtcclxuICAgICAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzID0ge1xyXG4gICAgICAgICAgICAgIHNwYWNlOiBbXSxcclxuICAgICAgICAgICAgICB6b25lc01hcDogbmV3IE1hcCgpLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoem9uZS5pZCAhPT0gdGhpcy56b25lSURGaWx0ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSB6b25lLmlkO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRab25lID0gem9uZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNwYWNlSUQgPT09IHRoaXMubmF2aWdhdG9yU2VydmljZS5jdXJyZW50U3BhY2VJRCkge1xyXG4gICAgICAgICAgICAgIC8vIHNhbWUgc3BhY2UsICBvbmx5IHpvbmUgdXBkYXRlXHJcbiAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgLy8gICAgIFwiZ29pbmcgdG8gdXBkYXRlIGVxdWlwcyBmb3Igem9uZSAoc2FtZSBzcGFjZSlcIixcclxuICAgICAgICAgICAgICAvLyAgICAgem9uZSxcclxuICAgICAgICAgICAgICAvLyApO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUVxdWlwc0ZvclpvbmUoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRTcGFjZUlEID0gdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnRTcGFjZUlEO1xyXG4gICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAgIC8vICAgICBcImdvaW5nIHRvIGluaXQgZXF1aXBzIGZvciB6b25lIGZvciBuZXcgc3BhY2VcIixcclxuICAgICAgICAgICAgICAvLyAgICAgdGhpcy5jdXJyZW50U3BhY2VJRCxcclxuICAgICAgICAgICAgICAvLyApO1xyXG4gICAgICAgICAgICAgIHRoaXMuaW5pdEVxdWlwcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmRlbGV0ZU9ic2VydmFibGVcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXF1aXBtZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50U3BhY2VJRCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUR1ZVRvRGVsZXRlKGVxdWlwbWVudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmNyZWF0ZU9ic2VydmFibGVcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXF1aXBtZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50U3BhY2VJRCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUR1ZVRvQ3JlYXRlKGVxdWlwbWVudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZU9ic2VydmFibGVcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZXF1aXBtZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50U3BhY2VJRCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUR1ZVRvRXF1aXBVcGRhdGVkKGVxdWlwbWVudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZSgpIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIl19
681
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1aXBtZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL21vZGVscy9lcXVpcG1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHdCQUF3QixHQUV6QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFNTCxRQUFRLEVBRVIsV0FBVyxFQUNYLFNBQVMsRUFHVCxPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFHN0IsT0FBTyxFQUNMLFlBQVksRUFDWixhQUFhLEVBQ2IsNkJBQTZCLEVBQzdCLGNBQWMsR0FDZixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBVXhELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxpQkFBaUI7SUF5RHJELFlBQytCLFdBQWdCLEVBRTNDLDJCQUFnQyxFQUNsQyxVQUFzQixFQUN0QixpQkFBb0MsRUFDNUIsZ0JBQWtDLEVBQ2xDLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixXQUE0QixFQUM1QixhQUE0QixFQUM1QixZQUFzQixFQUN0QixpQkFBb0M7UUFFNUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBVDdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEs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LEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDbkM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVMLElBQUksQ0FBQyxnQkFBZ0I7aUJBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUM5QixTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDdkIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO29CQUN2QixJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs2R0FsMEJVLGdCQUFnQixrQkEwRGpCLG1CQUFtQixhQUNuQixtQ0FBbUM7aUhBM0RsQyxnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQTJESSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ2JNb2RhbH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHtTdWJqZWN0LCB0YWtlVW50aWx9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgb3Blbk1vZGFsRm9yVmlzaXRTd2l0Y2gsXG4gIHJlbW92ZU51bGxLZXlzRnJvbU9iamVjdCxcbiAgd2FpdFVudGlsLFxufSBmcm9tICcuLi8uLi9oZWxwZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHtNYXR0ZXJ0YWdEYXRhfSBmcm9tICcuLi8uLi9tYXR0ZXJ0YWdEYXRhJztcbmltcG9ydCB7XG4gIE5vdGUsXG4gIFpvbmUsXG4gIEVxdWlwbWVudCxcbiAgRXF1aXBtZW50RG9jdW1lbnQsXG4gIFRpY2tldCxcbiAgVHlwZU5vdGUsXG4gIE1pc3Npb24sXG4gIEV2ZW50U3RhdHVzLFxuICBFdmVudFR5cGUsXG4gIE9wZXJhdGlvbixcbiAgUE9JLFxuICBQb2lUeXBlLFxuICBSb2xlU3RhdHVzLFxufSBmcm9tICcuLi8uLi90eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7RmlsdGVyU2VydmljZX0gZnJvbSAnLi4vZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtOYXZpZ2F0b3JTZXJ2aWNlfSBmcm9tICcuLi9uYXZpZ2F0b3Iuc2VydmljZSc7XG5pbXBvcnQge1xuICBkZWxldGVGcm9tUzMsXG4gIGdldFNpZ25lZEZpbGUsXG4gIGdldFNpZ25lZEltYWdlVXJsRm9yRXF1aXBtZW50LFxuICB1cGxvYWRGaWxlVG9TMyxcbn0gZnJvbSAnLi4vczMuc2VydmljZSc7XG5pbXBvcnQge0Jhc2VVc2VyU2VydmljZX0gZnJvbSAnLi4vdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7Vmlld2VyU2VydmljZX0gZnJvbSAnLi4vdmlld2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtCYXNlT2JqZWN0U2VydmljZX0gZnJvbSAnLi9iYXNlLW9iamVjdC5zZXJ2aWNlJztcbmltcG9ydCB7TmF2aWdhdGlvblNlcnZpY2V9IGZyb20gJy4vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7T3BlcmF0aW9uU2VydmljZX0gZnJvbSAnLi9vcGVyYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1BvaVNlcnZpY2V9IGZyb20gJy4vcG9pLnNlcnZpY2UnO1xuaW1wb3J0IHtUaWNrZXRzU2VydmljZX0gZnJvbSAnLi90aWNrZXQuc2VydmljZSc7XG5pbXBvcnQge1pvbmVDaGFuZ2VTZXJ2aWNlfSBmcm9tIFwiLi4vem9uZUNoYW5nZS5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFcXVpcG1lbnRTZXJ2aWNlIGV4dGVuZHMgQmFzZU9iamVjdFNlcnZpY2Uge1xuICBwcml2YXRlIHByZWZpeCA9IHtcbiAgICB0ZWNobmljYWw6ICdlcXVpcG1lbnRzL25vdGUvdGVjaG5pY2FsLycsXG4gICAgaW1hZ2U6ICdlcXVpcG1lbnRzL25vdGUvaW1hZ2UvJyxcbiAgICBmaW5hbmNpYWw6ICdlcXVpcG1lbnRzL25vdGUvZmluYW5jaWFsLycsXG4gICAgaW5mb3JtYXRpb246ICdlcXVpcG1lbnRzL25vdGUvaW5mb3JtYXRpb24vJyxcbiAgICBvdGhlcjogJ2VxdWlwbWVudHMvbm90ZS9vdGhlci8nLFxuICAgIGNvbnRyYWN0dWFsOiAnZXF1aXBtZW50cy9ub3RlL2NvbnRyYWN0dWFsLycsXG4gIH07XG5cbiAgZXF1aXBtZW50c1VwZGF0ZWQ6IFN1YmplY3Q8e1xuICAgIHNwYWNlOiBFcXVpcG1lbnRbXTtcbiAgICB6b25lOiBFcXVpcG1lbnRbXTtcbiAgfT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGN1cnJlbnRFcXVpcG1lbnRzOiB7XG4gICAgc3BhY2U6IEVxdWlwbWVudFtdO1xuICAgIHpvbmVzTWFwOiBNYXA8c3RyaW5nLCBFcXVpcG1lbnRbXT47XG4gIH0gPSB7XG4gICAgc3BhY2U6IFtdLFxuICAgIHpvbmVzTWFwOiBuZXcgTWFwKCksXG4gIH07XG5cbiAgZXF1aXBtZW50c1RhZ3M6IFN1YmplY3Q8RXF1aXBtZW50W10+ID0gbmV3IFN1YmplY3QoKTtcblxuICB6b25lSURGaWx0ZXI6IHN0cmluZztcblxuICBjdXJyZW50Wm9uZTogWm9uZTtcblxuICBjdXJyZW50U3BhY2VJRDogc3RyaW5nO1xuXG4gIGZsb29yc1BlclNwYWNlOiBab25lW10gPSBudWxsO1xuXG4gIC8qKiBOdWxsIG1lYW5zIHdlIGRvIG5vdCBhcHBseSBhIGZpbHRlciwgZW1wdHkgYXJyYXkgKFtdKSwgbWVhbnMgd2UgdGhhdCB3ZSBoaWRlIGFsbCBlcXVpcG1lbnQgKi9cbiAgZXF1aXBtZW50RG9tYWluRmlsdGVyOiBzdHJpbmdbXSA9IG51bGw7XG5cbiAgdXBkYXRpbmc6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGN1cnJlbnRseVVwZGF0aW5nID0gZmFsc2U7XG5cbiAgY3VycmVudFN3ZWVwOiBzdHJpbmc7XG5cbiAgZGVsZXRlT2JzZXJ2YWJsZTogU3ViamVjdDxFcXVpcG1lbnQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjcmVhdGVPYnNlcnZhYmxlOiBTdWJqZWN0PEVxdWlwbWVudD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHVwZGF0ZU9ic2VydmFibGU6IFN1YmplY3Q8RXF1aXBtZW50PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgc2VsZWN0ZWRGbG9vcjogWm9uZSA9IG51bGw7XG5cbiAgQVBJOiBhbnk7IC8vQVdTXG4gIGF3c0tpbmVzaXNBbmFseXRpY3M6IGFueTsgLy9BV1NcblxuICBpc011c2V1bVVzZXIgPSBmYWxzZTtcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdjdXJyZW50QVBJU2VydmljZScpIGFwaUluamVjdGVkOiBhbnksXG4gICAgQEluamVjdCgnY3VycmVudEF3c0tpbmVzaXNBbmFseXRpY3NTZXJ2aWNlJylcbiAgICAgIGF3c0tpbmVzaXNBbmFseXRpY3NJbmplY3RlZDogYW55LFxuICAgIHBvaVNlcnZpY2U6IFBvaVNlcnZpY2UsXG4gICAgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgb3BlcmF0aW9uU2VydmljZTogT3BlcmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHRpY2tldHNTZXJ2aWNlOiBUaWNrZXRzU2VydmljZSxcbiAgICBwcml2YXRlIG5hdmlnYXRvclNlcnZpY2U6IE5hdmlnYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IEJhc2VVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHZpZXdlclNlcnZpY2U6IFZpZXdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxuICAgIHByaXZhdGUgem9uZUNoYW5nZVNlcnZpY2U6IFpvbmVDaGFuZ2VTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKHBvaVNlcnZpY2UsIG5hdmlnYXRpb25TZXJ2aWNlKTtcblxuICAgIHRoaXMuQVBJID0gYXBpSW5qZWN0ZWQ7XG4gICAgdGhpcy5hd3NLaW5lc2lzQW5hbHl0aWNzID0gYXdzS2luZXNpc0FuYWx5dGljc0luamVjdGVkO1xuXG4gICAgdGhpcy5pc011c2V1bVVzZXIgPSB0aGlzLnVzZXJTZXJ2aWNlLmhhc09ubHlNdXNldW1Sb2xlKCk7XG4gICAgdGhpcy5pbml0U3Vic2NyaXB0aW9ucygpO1xuICAgIHRoaXMudXNlclNlcnZpY2UuaXNDaGFuZ2VkLnN1YnNjcmliZSgoaXNDb25uZWN0ZWQpID0+IHtcbiAgICAgIGlmIChpc0Nvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLmlzTXVzZXVtVXNlciA9IHRoaXMudXNlclNlcnZpY2UuaGFzT25seU11c2V1bVJvbGUoKTtcbiAgICAgICAgdGhpcy5pbml0U3Vic2NyaXB0aW9ucygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS5mbG9vckhhc0NoYW5nZWQuc3Vic2NyaWJlKChmbG9vcik9PntcbiAgICAgIGlmIChmbG9vcil7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGbG9vciA9IGZsb29yO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmVhZEVxdWlwbWVudChpZDogc3RyaW5nKTogUHJvbWlzZTxFcXVpcG1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkdldEVxdWlwbWVudChpZCkudGhlbihhc3luYyAocmVjZWl2ZWRFcXVpcCkgPT4ge1xuICAgICAgbGV0IGVxdWlwOiBFcXVpcG1lbnQ7XG4gICAgICBpZiAocmVjZWl2ZWRFcXVpcCkge1xuICAgICAgICBlcXVpcCA9IHJlY2VpdmVkRXF1aXA7XG4gICAgICAgIGVxdWlwID0gYXdhaXQgdGhpcy5nZXRTaWduZWRVcmxzRm9yRXF1aXBtZW50KHJlY2VpdmVkRXF1aXApO1xuICAgICAgICBpZiAoZXF1aXAuZG9tYWluKSB7XG4gICAgICAgICAgaWYgKGVxdWlwLmRvbWFpbi5wYXJlbnRJRCkge1xuICAgICAgICAgICAgZXF1aXAuY2hpbGREb21haW4gPSBlcXVpcC5kb21haW47XG4gICAgICAgICAgICBlcXVpcC5wYXJlbnREb21haW4gPSBlcXVpcC5kb21haW4ucGFyZW50O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcXVpcC5wYXJlbnREb21haW4gPSBlcXVpcC5kb21haW47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChlcXVpcC5zdWJlcXVpcG1lbnRzSURzKSB7XG4gICAgICAgICAgY29uc3Qgc3ViRXF1aXBzID0gW107XG4gICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBlcXVpcC5zdWJlcXVpcG1lbnRzSURzLm1hcChhc3luYyAoc3ViSWQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc3ViRXF1aXAgPSBhd2FpdCB0aGlzLkFQSS5HZXRFcXVpcG1lbnQoc3ViSWQpO1xuICAgICAgICAgICAgICBzdWJFcXVpcHMucHVzaChzdWJFcXVpcCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgICAgZXF1aXAuc3ViRXF1aXBtZW50cyA9IHN1YkVxdWlwcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVxdWlwO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRXF1aXBtZW50KFxuICAgIGVxdWlwOiBFcXVpcG1lbnQsXG4gICAgaW1hZ2VGaWxlOiBGaWxlLFxuICAgIGRvY3VtZW50RmlsZTogRmlsZVxuICApOiBQcm9taXNlPEVxdWlwbWVudCB8IHZvaWQ+IHtcbiAgICByZW1vdmVOdWxsS2V5c0Zyb21PYmplY3QoZXF1aXApO1xuICAgIHRoaXMuYXdzS2luZXNpc0FuYWx5dGljcy5nZXRJbnN0YW5jZSgpLnJlY29yZChcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGV2ZW50VHlwZTogJ09iamVjdCBDcmVhdGlvbicsXG4gICAgICAgICAgb2JqZWN0VHlwZTogJ2VxdWlwbWVudCcsXG4gICAgICAgICAgcG9pOiBlcXVpcCxcbiAgICAgICAgICB1c2VyOiB0aGlzLnVzZXJTZXJ2aWNlLmN1LFxuICAgICAgICAgIGxvY2F0aW9uSWQ6IHRoaXMuY3VycmVudFNwYWNlSUQsXG4gICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIHpvbmVJZDogdGhpcy5jdXJyZW50Wm9uZS5pZCxcbiAgICAgICAgICBmbG9vcklkOiB0aGlzLnNlbGVjdGVkRmxvb3I/LmlkLFxuICAgICAgICB9LFxuICAgICAgICBzdHJlYW1OYW1lOiAnc21hcnRlcnBsYW5LaW5lc2lzLWFuYWx5dGljcycsXG4gICAgICAgIC8vIHBhcnRpdGlvbktleTogXCJcIixcbiAgICAgIH0sXG4gICAgICAnQVdTS2luZXNpcydcbiAgICApO1xuICAgIHJldHVybiB0aGlzLkFQSS5DcmVhdGVFcXVpcG1lbnQoZXF1aXApLnRoZW4oYXN5bmMgKHJlY2VpdmVkRXF1aXBtZW50KSA9PiB7XG4gICAgICBsZXQgZXF1aXBtZW50ID0gcmVjZWl2ZWRFcXVpcG1lbnQgYXMgRXF1aXBtZW50O1xuICAgICAgaWYgKGVxdWlwbWVudCkge1xuICAgICAgICBjb25zb2xlLmxvZygnZXF1aXBtZW50IGNyZWF0ZWQ6JywgZXF1aXBtZW50KTtcbiAgICAgICAgaWYgKGRvY3VtZW50RmlsZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMudXBsb2FkRG9jKGVxdWlwbWVudCwgZG9jdW1lbnRGaWxlLCBUeXBlTm90ZS5URUNITklDQUwpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbWFnZUZpbGUpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnVwbG9hZEltYWdlKGVxdWlwbWVudCwgaW1hZ2VGaWxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGVxdWlwbWVudDtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldFNpZ25lZFVybHNGb3JFcXVpcG1lbnQoZXF1aXA6IEVxdWlwbWVudCk6IFByb21pc2U8RXF1aXBtZW50PiB7XG4gICAgY29uc3QgZXF1aXBtZW50ID0gey4uLmVxdWlwfTtcbiAgICBpZiAoZXF1aXBtZW50Lm5vdGVzLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGRvY3MgPSBbXTtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBlcXVpcG1lbnQubm90ZXMuaXRlbXMubWFwKGFzeW5jIChub3RlKSA9PiB7XG4gICAgICAgICAgZXF1aXBtZW50LmRvY3VtZW50YXRpb25JbWFnZVVybFNpZ25lZCA9XG4gICAgICAgICAgICBhd2FpdCBnZXRTaWduZWRJbWFnZVVybEZvckVxdWlwbWVudChlcXVpcG1lbnQpO1xuICAgICAgICAgIGlmIChub3RlLmF0dGFjaG1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHtsZW5ndGh9ID0gbm90ZS5hdHRhY2htZW50LnNwbGl0KCcvJyk7XG4gICAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9IG5vdGUuYXR0YWNobWVudC5zcGxpdCgnLycpW2xlbmd0aCAtIDFdO1xuICAgICAgICAgICAgY29uc3QgYXR0YWNobWVudCA9IGF3YWl0IGdldFNpZ25lZEZpbGUobm90ZS5hdHRhY2htZW50KTtcbiAgICAgICAgICAgIGlmIChhdHRhY2htZW50KSB7XG4gICAgICAgICAgICAgIGRvY3MucHVzaCh7XG4gICAgICAgICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgICAgICAgdXJsOiBub3RlLmF0dGFjaG1lbnQsXG4gICAgICAgICAgICAgICAgdXJsU2lnbmVkOiBhdHRhY2htZW50LFxuICAgICAgICAgICAgICAgIG5vdGVJRDogbm90ZS5pZCxcbiAgICAgICAgICAgICAgfSBhcyBFcXVpcG1lbnREb2N1bWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIGVxdWlwbWVudC5kb2N1bWVudHMgPSBkb2NzO1xuICAgICAgcmV0dXJuIGVxdWlwbWVudDtcbiAgICB9XG4gICAgcmV0dXJuIGVxdWlwbWVudDtcbiAgfVxuXG4gIGFzeW5jIGdldEVxdWlwbWVudHNGb3JUaWNrZXQodGlja2V0OiBUaWNrZXQpOiBQcm9taXNlPEVxdWlwbWVudFtdPiB7XG4gICAgY29uc3Qgb3BlcmF0aW9ucyA9IHRpY2tldC5vcGVyYXRpb25zLml0ZW1zO1xuICAgIGlmIChvcGVyYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIG9wZXJhdGlvbnMuc29ydChcbiAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmV0dGllci9wcmV0dGllclxuICAgICAgICAgIG5ldyBEYXRlKGIuY3JlYXRlZEF0KSAtIG5ldyBEYXRlKGEuY3JlYXRlZEF0KVxuICAgICAgKTtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBvcGVyYXRpb25zLm1hcChhc3luYyAob3BlcmF0aW9uKSA9PiB7XG4gICAgICAgICAgb3BlcmF0aW9uLmVxdWlwbWVudCA9IGF3YWl0IHRoaXMucmVhZEVxdWlwbWVudChvcGVyYXRpb24uZXF1aXBtZW50SUQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgLy8gdG8ga2VlcCB0aGUgc29ydGluZyBieSBjcmVhdGVkQXRcbiAgICByZXR1cm4gb3BlcmF0aW9ucy5tYXAoKG8pID0+IG8uZXF1aXBtZW50KTtcbiAgfVxuXG4gIGFzeW5jIGdldEVxdWlwbWVudHNGb3JTcGFjZShzcGFjZUlEOiBzdHJpbmcpOiBQcm9taXNlPEVxdWlwbWVudFtdPiB7XG4gICAgLy8gc3BsaXQgYnkgMTAwXG4gICAgY29uc3QgbGltaXQgPSAxMDA7XG4gICAgbGV0IGVxdWlwc1Rva2VuID0ge2VxdWlwczogW10sIG5leHRUb2tlbjogbnVsbH07XG4gICAgZG8ge1xuICAgICAgZXF1aXBzVG9rZW4gPSBhd2FpdCB0aGlzLm1lcmdlRXF1aXBtZW50c0ZvclNwYWNlV2l0aE5leHRUb2tlbldpdGhMaW1pdChcbiAgICAgICAgc3BhY2VJRCxcbiAgICAgICAgbGltaXQsXG4gICAgICAgIGVxdWlwc1Rva2VuXG4gICAgICApO1xuICAgIH0gd2hpbGUgKGVxdWlwc1Rva2VuLm5leHRUb2tlbik7XG4gICAgcmV0dXJuIGVxdWlwc1Rva2VuLmVxdWlwcztcbiAgfVxuXG4gIGFzeW5jIG1lcmdlRXF1aXBtZW50c0ZvclNwYWNlV2l0aE5leHRUb2tlbldpdGhMaW1pdChcbiAgICBzcGFjZUlEOiBzdHJpbmcsXG4gICAgbGltaXQ6IG51bWJlcixcbiAgICBlcXVpcHNUb2tlbjogeyBlcXVpcHM6IEVxdWlwbWVudFtdOyBuZXh0VG9rZW46IHN0cmluZyB8IG51bGwgfVxuICApOiBQcm9taXNlPHsgZXF1aXBzOiBFcXVpcG1lbnRbXTsgbmV4dFRva2VuOiBzdHJpbmcgfCBudWxsIH0+IHtcbiAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fXG4gICAgICAuRXF1aXBtZW50c0J5U3BhY2UoXG4gICAgICAgIHNwYWNlSUQsXG4gICAgICAgIG51bGwsXG4gICAgICAgICdERVNDJyxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbGltaXQsXG4gICAgICAgIGVxdWlwc1Rva2VuLm5leHRUb2tlbiAvLyBuZXh0VG9rZW5cbiAgICAgIClcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICBjb25zdCBlcXVpcHNMaW1pdCA9IHJlc3BvbnNlLml0ZW1zO1xuICAgICAgICBjb25zdCBlcXVpcHNPYmplY3QgPSB7XG4gICAgICAgICAgZXF1aXBzOiBbLi4uZXF1aXBzVG9rZW4uZXF1aXBzLCAuLi5lcXVpcHNMaW1pdF0sXG4gICAgICAgICAgbmV4dFRva2VuOiByZXNwb25zZS5uZXh0VG9rZW4sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBlcXVpcHNPYmplY3Q7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHVwbG9hZEltYWdlRm9yQWxsRXF1aXBtZW50cyhcbiAgICBlcXVpcG1lbnRzOiBFcXVpcG1lbnRbXSxcbiAgICBpbWFnZUZpbGU6IEZpbGVcbiAgKTogUHJvbWlzZTxFcXVpcG1lbnRbXT4ge1xuICAgIGlmIChlcXVpcG1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB1cGxvYWRGaWxlVG9TMyh0aGlzLnByZWZpeC5pbWFnZSwgaW1hZ2VGaWxlLCAnQkFUQ0gnKS50aGVuKFxuICAgICAgYXN5bmMgKHVybCkgPT4ge1xuICAgICAgICBpZiAodXJsKSB7XG4gICAgICAgICAgY29uc3QgZXF1aXBzID0gW107XG4gICAgICAgICAgZm9yIChjb25zdCBlcXVpcCBvZiBlcXVpcG1lbnRzKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TWlzc2lvbiA9IHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb24oXG4gICAgICAgICAgICAgIGVxdWlwLnNwYWNlSURcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlTm90ZSh7XG4gICAgICAgICAgICAgIGF0dGFjaG1lbnQ6IHVybCxcbiAgICAgICAgICAgICAgdHlwZTogVHlwZU5vdGUuSU1BR0UsXG4gICAgICAgICAgICAgIGVxdWlwbWVudElEOiBlcXVpcC5pZCxcbiAgICAgICAgICAgICAgb3duZXJNaXNzaW9uSUQ6IGN1cnJlbnRNaXNzaW9uID8gY3VycmVudE1pc3Npb24uaWQgOiBudWxsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGUgPSBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uVXBkYXRlRXF1aXBtZW50KHtcbiAgICAgICAgICAgICAgaWQ6IGVxdWlwLmlkLFxuICAgICAgICAgICAgICBwaG90bzogdXJsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBlcXVpcHMucHVzaCh1cGRhdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZXF1aXBzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdXBsb2FkSW1hZ2UoZXF1aXBtZW50OiBFcXVpcG1lbnQsIGltYWdlRmlsZTogRmlsZSk6IFByb21pc2U8Tm90ZT4ge1xuICAgIHJldHVybiB1cGxvYWRGaWxlVG9TMyh0aGlzLnByZWZpeC5pbWFnZSwgaW1hZ2VGaWxlLCBlcXVpcG1lbnQuaWQpLnRoZW4oXG4gICAgICBhc3luYyAodXJsKSA9PiB7XG4gICAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50TWlzc2lvbiA9IHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb24oXG4gICAgICAgICAgICBlcXVpcG1lbnQuc3BhY2VJRFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3Qgbm90ZSA9IGF3YWl0IHRoaXMuQVBJLl9fcHJvdG9fXy5DcmVhdGVOb3RlKHtcbiAgICAgICAgICAgIGF0dGFjaG1lbnQ6IHVybCxcbiAgICAgICAgICAgIHR5cGU6IFR5cGVOb3RlLklNQUdFLFxuICAgICAgICAgICAgZXF1aXBtZW50SUQ6IGVxdWlwbWVudC5pZCxcbiAgICAgICAgICAgIG93bmVyTWlzc2lvbklEOiBjdXJyZW50TWlzc2lvbiA/IGN1cnJlbnRNaXNzaW9uLmlkIDogbnVsbCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBhd2FpdCB0aGlzLkFQSS5fX3Byb3RvX18uVXBkYXRlRXF1aXBtZW50KHtcbiAgICAgICAgICAgIGlkOiBlcXVpcG1lbnQuaWQsXG4gICAgICAgICAgICBwaG90bzogdXJsLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBub3RlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVFcXVpcG1lbnQoXG4gICAgZXF1aXA6IGFueSxcbiAgICBmaWxlOiBGaWxlID0gbnVsbCxcbiAgICBub3RlVHlwZTogVHlwZU5vdGUgPSBudWxsXG4gICk6IFByb21pc2U8RXF1aXBtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fX1xuICAgICAgLlVwZGF0ZUVxdWlwbWVudChlcXVpcClcbiAgICAgIC50aGVuKGFzeW5jIChyZWNlaXZlZEVxdWlwbWVudCkgPT4ge1xuICAgICAgICBsZXQgZXF1aXBtZW50ID0gcmVjZWl2ZWRFcXVpcG1lbnQgYXMgRXF1aXBtZW50O1xuICAgICAgICBpZiAoZXF1aXBtZW50KSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ2VxdWlwbWVudCB1cGRhdGVkOicsIGVxdWlwbWVudCk7XG4gICAgICAgICAgaWYgKG5vdGVUeXBlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKG5vdGVUeXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgVHlwZU5vdGUuSU1BR0U6XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy51cGxvYWRJbWFnZShlcXVpcG1lbnQsIGZpbGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudXBsb2FkRG9jKGVxdWlwbWVudCwgZmlsZSwgbm90ZVR5cGUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXF1aXBtZW50O1xuICAgICAgfSk7XG4gIH1cblxuICBnZXRQcmVmaXhEb2ModHlwZTogVHlwZU5vdGUpIHtcbiAgICBsZXQgcHJlZml4O1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBUeXBlTm90ZS5JTkZPUk1BVElPTjpcbiAgICAgICAgcHJlZml4ID0gdGhpcy5wcmVmaXguaW5mb3JtYXRpb247XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBUeXBlTm90ZS5GSU5BTkNJQUw6XG4gICAgICAgIHByZWZpeCA9IHRoaXMucHJlZml4LmZpbmFuY2lhbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFR5cGVOb3RlLkNPTlRSQUNUVUFMOlxuICAgICAgICBwcmVmaXggPSB0aGlzLnByZWZpeC5jb250cmFjdHVhbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFR5cGVOb3RlLk9USEVSOlxuICAgICAgICBwcmVmaXggPSB0aGlzLnByZWZpeC5vdGhlcjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFR5cGVOb3RlLklNQUdFOlxuICAgICAgICBwcmVmaXggPSB0aGlzLnByZWZpeC5pbWFnZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBwcmVmaXggPSB0aGlzLnByZWZpeC50ZWNobmljYWw7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gcHJlZml4O1xuICB9XG5cbiAgYXN5bmMgdXBsb2FkRG9jRm9yQWxsRXF1aXBtZW50cyhcbiAgICBlcXVpcG1lbnRzOiBFcXVpcG1lbnRbXSxcbiAgICBkb2N1bWVudEZpbGU6IEZpbGUsXG4gICAgdHlwZTogVHlwZU5vdGVcbiAgKSB7XG4gICAgaWYgKGVxdWlwbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2V0UHJlZml4RG9jKHR5cGUpO1xuICAgIGNvbnN0IHVybCA9IGF3YWl0IHVwbG9hZEZpbGVUb1MzKHByZWZpeCwgZG9jdW1lbnRGaWxlLCAnQkFUQ0gnKTtcbiAgICBpZiAodXJsKSB7XG4gICAgICBjb25zdCB1cGRhdGVMaXN0ID0gW107XG4gICAgICBmb3IgKGNvbnN0IGVxdWlwIG9mIGVxdWlwbWVudHMpIHtcbiAgICAgICAgY29uc3QgbWlzc2lvbiA9IHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb24oZXF1aXAuc3BhY2VJRCk7XG4gICAgICAgIGNvbnN0IG5ld0VxdWlwID0gYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLkNyZWF0ZU5vdGUoe1xuICAgICAgICAgIGF0dGFjaG1lbnQ6IHVybCxcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGVxdWlwbWVudElEOiBlcXVpcC5pZCxcbiAgICAgICAgICBvd25lck1pc3Npb25JRDogbWlzc2lvbiA/IG1pc3Npb24uaWQgOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgICAgdXBkYXRlTGlzdC5wdXNoKG5ld0VxdWlwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1cGRhdGVMaXN0O1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBhc3luYyB1cGxvYWREb2MoXG4gICAgZXF1aXBtZW50OiBFcXVpcG1lbnQsXG4gICAgZG9jdW1lbnRGaWxlOiBGaWxlLFxuICAgIHR5cGU6IFR5cGVOb3RlXG4gICk6IFByb21pc2U8Tm90ZT4ge1xuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2V0UHJlZml4RG9jKHR5cGUpO1xuICAgIGNvbnN0IG1pc3Npb24gPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9uKGVxdWlwbWVudC5zcGFjZUlEKTtcbiAgICByZXR1cm4gdXBsb2FkRmlsZVRvUzMocHJlZml4LCBkb2N1bWVudEZpbGUsIGVxdWlwbWVudC5pZCkudGhlbihcbiAgICAgIGFzeW5jICh1cmwpID0+IHtcbiAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uQ3JlYXRlTm90ZSh7XG4gICAgICAgICAgICBhdHRhY2htZW50OiB1cmwsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgZXF1aXBtZW50SUQ6IGVxdWlwbWVudC5pZCxcbiAgICAgICAgICAgIG93bmVyTWlzc2lvbklEOiBtaXNzaW9uID8gbWlzc2lvbi5pZCA6IG51bGwsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUVxdWlwbWVudChlcXVpcDogRXF1aXBtZW50KTogUHJvbWlzZTxFcXVpcG1lbnQ+IHtcbiAgICBjb25zdCBkZWxldGVkID0gYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLkRlbGV0ZUVxdWlwbWVudCh7aWQ6IGVxdWlwLmlkfSk7XG4gICAgY29uc29sZS5sb2coJ0RlbGV0ZWQgZXF1aXBtZW50JywgZGVsZXRlZCk7XG5cbiAgICAvLyBkZWxldGUgUE9JXG4gICAgY29uc3QgW3BvaV0gPSBlcXVpcC5wb2lzLml0ZW1zO1xuICAgIGlmIChwb2kpIHtcbiAgICAgIGF3YWl0IHRoaXMucG9pU2VydmljZS5kZWxldGVQb2kocG9pLmlkKTtcbiAgICB9XG4gICAgLy8gZGVsZXRlIG5vdGVzIHJlbGF0ZWRcbiAgICBpZiAoZXF1aXAubm90ZXMuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGVxdWlwLm5vdGVzLml0ZW1zLm1hcChhc3luYyAobm90ZTogTm90ZSkgPT4ge1xuICAgICAgICAgIC8vIGRlbGV0ZSBmaWxlcyBmcm9tIFMzXG4gICAgICAgICAgLyoqIE5vdCBzaGFyZWQgd2l0aCBvdGhlciBlcXVpcG1lbnQgKi9cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBub3RlLmF0dGFjaG1lbnQgJiZcbiAgICAgICAgICAgICFub3RlLmF0dGFjaG1lbnQuc3BsaXQoJy8nKS5wb3AoKS5zdGFydHNXaXRoKCdCQVRDSF8nKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgYXdhaXQgZGVsZXRlRnJvbVMzKG5vdGUuYXR0YWNobWVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGF3YWl0IHRoaXMuQVBJLl9fcHJvdG9fXy5EZWxldGVOb3RlKHtpZDogbm90ZS5pZH0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgLy8gZGVsZXRlIG9wZXJhdGlvbnMgKHJlbW92ZSBmcm9tIGxpbmtlZCB0aWNrZXRzKVxuICAgIGF3YWl0IHRoaXMub3BlcmF0aW9uU2VydmljZS5kZWxldGVPcGVyYXRpb25zRm9yRXF1aXBtZW50KGVxdWlwLmlkKTtcbiAgICByZXR1cm4gZGVsZXRlZDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUVxdWlwbWVudExvY2F0aW9uKFxuICAgIGVxdWlwOiBFcXVpcG1lbnQsXG4gICAgdGFnRGF0YTogTWF0dGVydGFnRGF0YVxuICApOiBQcm9taXNlPFBPST4ge1xuICAgIGNvbnN0IHBvaUlucHV0ID0ge1xuICAgICAgY29vcmRpbmF0ZTogdGFnRGF0YS5nZXRDb29yZGluYXRlU3RyaW5nKCksXG4gICAgICB0eXBlOiBQb2lUeXBlLkVRVUlQTUVOVCxcbiAgICAgIGVsZW1lbnRJRDogZXF1aXAuaWQsXG4gICAgICBtZXRhZGF0YTogdGFnRGF0YS5nZXRNZXRhZGF0YVN0cmluZygpLFxuICAgICAgbWF0dGVycG9ydFN3ZWVwSUQ6IHRhZ0RhdGEuZ2V0U3dlZXBJRCgpLFxuICAgIH0gYXMgUE9JO1xuICAgIGNvbnN0IHBvaSA9IGF3YWl0IHRoaXMucG9pU2VydmljZS5jcmVhdGVQT0lGb3JTcGFjZUlEKHBvaUlucHV0KTtcbiAgICByZXR1cm4gcG9pO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlVGlja2V0RnJvbUVxdWlwbWVudChcbiAgICB0aWNrZXQ6IFRpY2tldCxcbiAgICBlcXVpcDogRXF1aXBtZW50XG4gICk6IFByb21pc2U8T3BlcmF0aW9uPiB7XG4gICAgY29uc3Qgb3BlcmF0aW9uRXF1aXAgPVxuICAgICAgYXdhaXQgdGhpcy5vcGVyYXRpb25TZXJ2aWNlLmdldE9wZXJhdGlvbnNCeUVxdWlwbWVudElEKGVxdWlwLmlkKTtcbiAgICBjb25zdCBvcGVyYXRpb25Ub0RlbGV0ZSA9IG9wZXJhdGlvbkVxdWlwLmZpbmQoXG4gICAgICAob3ApID0+IG9wLnRpY2tldElEID09PSB0aWNrZXQuaWRcbiAgICApO1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvblNlcnZpY2VcbiAgICAgIC5kZWxldGVPcGVyYXRpb24ob3BlcmF0aW9uVG9EZWxldGUuaWQpXG4gICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgIHRoaXMudGlja2V0c1NlcnZpY2UuYWRkRXZlbnRUb1RpY2tldCh0aWNrZXQgYXMgVGlja2V0LCB7XG4gICAgICAgICAgdGl0bGU6ICdFcXVpcGVtZW50IHJldGlyw6kgZHUgdGlja2V0JyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYEVxdWlwZW1lbnQgJHtlcXVpcC5uYW1lfSBhIMOpdMOpIHJldGlyw6kgZHUgdGlja2V0YCxcbiAgICAgICAgICBzdGF0dXM6IEV2ZW50U3RhdHVzLlVOTElOS0VEX0ZST01fRVFVSVBNRU5ULFxuICAgICAgICAgIHR5cGU6IEV2ZW50VHlwZS5USUNLRVQsXG4gICAgICAgICAgdHJhbnNsYXRpb25QYXRoOiAndGlja2V0RXZlbnQudGlja2V0LnVubGlua2VkRnJvbUVxdWlwbWVudCcsXG4gICAgICAgICAgbWV0YWRhdGE6IEpTT04uc3RyaW5naWZ5KHtlcXVpcG1lbnQ6IGVxdWlwLm5hbWV9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGluaXRFcXVpcHMoKSB7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRTcGFjZUlEKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudXBkYXRpbmcubmV4dCh0cnVlKTtcbiAgICB0aGlzLmN1cnJlbnRseVVwZGF0aW5nID0gdHJ1ZTtcblxuICAgIGxldCBlcUxpc3QgPSBhd2FpdCB0aGlzLmdldEVxdWlwbWVudHNGb3JTcGFjZSh0aGlzLmN1cnJlbnRTcGFjZUlEKTtcbiAgICBlcUxpc3QgPSBhd2FpdCB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyRXF1aXBtZW50c0ZvckN1cnJlbnRVc2VySW5TcGFjZShcbiAgICAgIHRoaXMuY3VycmVudFNwYWNlSUQsXG4gICAgICBlcUxpc3RcbiAgICApO1xuICAgIC8vIGNvbnNvbGUubG9nKGVxTGlzdCk7XG4gICAgaWYgKGVxTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgZmlsdGVyZWRFcXVpcHMgPSBlcUxpc3QuZmlsdGVyKFxuICAgICAgICAoZXF1aXBtZW50KSA9PiAhdGhpcy5pc0FyY2hpdmVkKGVxdWlwbWVudClcbiAgICAgICk7XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBmaWx0ZXJlZEVxdWlwcy5tYXAoYXN5bmMgKGVxdWlwKSA9PiB7XG4gICAgICAgICAgZXF1aXAuZG9jdW1lbnRhdGlvbkltYWdlVXJsU2lnbmVkID1cbiAgICAgICAgICAgIGF3YWl0IGdldFNpZ25lZEltYWdlVXJsRm9yRXF1aXBtZW50KGVxdWlwKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5lcXVpcG1lbnREb21haW5GaWx0ZXIpIHtcbiAgICAgICAgZmlsdGVyZWRFcXVpcHMgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyRXF1aXBtZW50c0J5RG9tYWluTGlzdChcbiAgICAgICAgICBmaWx0ZXJlZEVxdWlwcyxcbiAgICAgICAgICB0aGlzLmVxdWlwbWVudERvbWFpbkZpbHRlclxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy5zcGFjZSA9IGZpbHRlcmVkRXF1aXBzO1xuICAgICAgaWYgKHRoaXMuem9uZUlERmlsdGVyKSB7XG4gICAgICAgIGZpbHRlcmVkRXF1aXBzID0gKGF3YWl0IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJPYmplY3RzRm9yWm9uZShcbiAgICAgICAgICBmaWx0ZXJlZEVxdWlwcyxcbiAgICAgICAgICB0aGlzLnpvbmVJREZpbHRlcixcbiAgICAgICAgICB0aGlzLmN1cnJlbnRab25lXG4gICAgICAgICkpIGFzIEVxdWlwbWVudFtdO1xuICAgICAgfVxuICAgICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcC5zZXQodGhpcy56b25lSURGaWx0ZXIsIGZpbHRlcmVkRXF1aXBzKTtcbiAgICAgIHRoaXMuZXF1aXBtZW50c1RhZ3MubmV4dChmaWx0ZXJlZEVxdWlwcyk7IC8vIGFkZGluZyB0YWdzIG9ubHkgZm9yIHRoZSBjdXJyZW50IHpvbmVcbiAgICAgIHRoaXMuZXF1aXBtZW50c1VwZGF0ZWQubmV4dCh7XG4gICAgICAgIHNwYWNlOiB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnNwYWNlLFxuICAgICAgICB6b25lOiBmaWx0ZXJlZEVxdWlwcyxcbiAgICAgIH0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnpvbmVJREZpbHRlcikge1xuICAgICAgICB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnpvbmVzTWFwLnNldCh0aGlzLnpvbmVJREZpbHRlciwgW10pO1xuICAgICAgfVxuICAgICAgdGhpcy5lcXVpcG1lbnRzVXBkYXRlZC5uZXh0KHtzcGFjZTogW10sIHpvbmU6IFtdfSk7IC8vIGZvciBsYXRlcmFsIG1lbnVcbiAgICB9XG4gICAgLy8gY29uc29sZS5sb2codGhpcy5jdXJyZW50RXF1aXBtZW50cyk7XG4gICAgdGhpcy51cGRhdGluZy5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmN1cnJlbnRseVVwZGF0aW5nID0gZmFsc2U7XG4gIH1cblxuICBhc3luYyBnZXRFcXVpcG1lbnRzRm9yQ3VycmVudFVzZXJGb3JTcGFjZShcbiAgICBzcGFjZUlELFxuICAgIG1pc3Npb25zOiBNaXNzaW9uW11cbiAgKTogUHJvbWlzZTxFcXVpcG1lbnRbXT4ge1xuICAgIGxldCByZXN1bHRzID0gW107XG5cbiAgICBjb25zdCBzcGFjZU1pc3Npb25zID0gbWlzc2lvbnMuZmlsdGVyKChtKSA9PiBtLnNwYWNlSUQgPT09IHNwYWNlSUQpO1xuICAgIGlmIChzcGFjZU1pc3Npb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuICAgIGNvbnN0IGNhblNlZUVxdWlwcyA9IHNwYWNlTWlzc2lvbnMuc29tZShcbiAgICAgIChtKSA9PlxuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLm1hbmFnZXJzLmluY2x1ZGVzKG0ucm9sZSkgfHxcbiAgICAgICAgbS5yb2xlID09PSBSb2xlU3RhdHVzLlNFUlZJQ0VcbiAgICApO1xuICAgIGlmICghY2FuU2VlRXF1aXBzKSB7XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG4gICAgbGV0IGRvbWFpbnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IG0gb2Ygc3BhY2VNaXNzaW9ucykge1xuICAgICAgZG9tYWlucyA9IFsuLi5kb21haW5zLCBtLmRvbWFpbnNdO1xuICAgIH1cbiAgICBpZiAoZG9tYWlucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cbiAgICByZXN1bHRzID0gYXdhaXQgdGhpcy5nZXRFcXVpcG1lbnRzRm9yU3BhY2Uoc3BhY2VJRCk7XG4gICAgLy8gcmVzdWx0cyA9IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJFcXVpcG1lbnRzQnlEb21haW5MaXN0KFxuICAgIC8vICAgICByZXN1bHRzLFxuICAgIC8vICAgICBkb21haW5zLFxuICAgIC8vICk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICBhc3luYyB1cGRhdGVJY29uRm9yQWxsRXF1aXBtZW50c0luU3BhY2UoXG4gICAgdGFnSWNvbjogc3RyaW5nLFxuICAgIHNwYWNlSUQ6IHN0cmluZyxcbiAgICBkb21haW5JRDogc3RyaW5nID0gbnVsbFxuICApOiBQcm9taXNlPHsgZXF1aXBzOiBFcXVpcG1lbnRbXTsgcG9pczogUE9JW10gfT4ge1xuICAgIGxldCBlcXVpcHMgPSBhd2FpdCB0aGlzLmdldEVxdWlwbWVudHNGb3JTcGFjZShzcGFjZUlEKTtcbiAgICBpZiAoZG9tYWluSUQpIHtcbiAgICAgIGVxdWlwcyA9IGVxdWlwcy5maWx0ZXIoKGVxdWlwKSA9PiBlcXVpcC5kb21haW5JRCA9PT0gZG9tYWluSUQpO1xuICAgIH1cbiAgICBjb25zdCBwb2lzID0gYXdhaXQgdGhpcy51cGRhdGVJY29uRm9yQWxsT2JqZWN0cyhlcXVpcHMsIHRhZ0ljb24pO1xuICAgIHJldHVybiB7ZXF1aXBzLCBwb2lzfTtcbiAgfVxuXG4gIC8qKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCB1c2VyIGhhcyBhcmNoaXZlZCB0aGlzIGVxdWlwbWVudCAqL1xuICBpc0FyY2hpdmVkKGVxdWlwbWVudDogRXF1aXBtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGVxdWlwbWVudC5hcmNoaXZlZEZvck1pc3Npb25JRFxuICAgICAgPyBlcXVpcG1lbnQuYXJjaGl2ZWRGb3JNaXNzaW9uSUQuaW5jbHVkZXMoXG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb24oZXF1aXBtZW50LnNwYWNlSUQpLmlkXG4gICAgICApXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgc2V0QXJjaGl2ZWQoZXF1aXBtZW50OiBFcXVpcG1lbnQsIGFyY2hpdmVkOiBib29sZWFuKSB7XG4gICAgbGV0IGFyY2hpdmVkTGlzdCA9IGVxdWlwbWVudC5hcmNoaXZlZEZvck1pc3Npb25JRFxuICAgICAgPyBlcXVpcG1lbnQuYXJjaGl2ZWRGb3JNaXNzaW9uSURcbiAgICAgIDogW107XG4gICAgY29uc3QgbWlzc2lvbklEID0gdGhpcy51c2VyU2VydmljZS5jdXJyZW50TWlzc2lvbihlcXVpcG1lbnQuc3BhY2VJRCkuaWQ7XG5cbiAgICBhcmNoaXZlZExpc3QgPSBhcmNoaXZlZExpc3QuZmlsdGVyKChtKSA9PiBtICE9PSBtaXNzaW9uSUQpO1xuXG4gICAgaWYgKGFyY2hpdmVkKSB7XG4gICAgICBhcmNoaXZlZExpc3QucHVzaChtaXNzaW9uSUQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnVwZGF0ZUVxdWlwbWVudCh7XG4gICAgICBpZDogZXF1aXBtZW50LmlkLFxuICAgICAgYXJjaGl2ZWRGb3JNaXNzaW9uSUQ6IGFyY2hpdmVkTGlzdCxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUZpbGUoZG9jdW1lbnRfOiBFcXVpcG1lbnREb2N1bWVudCkge1xuICAgIGF3YWl0IGRlbGV0ZUZyb21TMyhkb2N1bWVudF8udXJsKTtcbiAgICBhd2FpdCB0aGlzLkFQSS5EZWxldGVOb3RlKHtpZDogZG9jdW1lbnRfLm5vdGVJRH0pO1xuICB9XG5cbiAgYXN5bmMgbmF2aWdhdGVUb0VxdWlwbWVudEluM0QoXG4gICAgZXF1aXBtZW50OiBFcXVpcG1lbnQsXG4gICAgZm9yY2VTd2l0Y2hWaXNpdDogYm9vbGVhbiA9IGZhbHNlXG4gICkge1xuICAgIGxldCB1cmwgPSBgdmlzaXQvJHtlcXVpcG1lbnQuc3BhY2VJRH1gO1xuICAgIGlmIChmb3JjZVN3aXRjaFZpc2l0KSB7XG4gICAgICB1cmwgKz0gYC9lcXVpcC8ke2VxdWlwbWVudC5pZH1gO1xuICAgIH1cbiAgICBjb25zdCBjYW5Hb1RvVGFnID0gYXdhaXQgdGhpcy52aWV3ZXJTZXJ2aWNlLmFjdGlvbl9tb3ZlX3RvX3RhZyhcbiAgICAgIGAke2VxdWlwbWVudC5pZH1gXG4gICAgKTtcbiAgICBpZiAoY2FuR29Ub1RhZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmdldE1vZGVsM2RBbmRTd2VlcChlcXVpcG1lbnQpO1xuXG4gICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC5tb2RlbDNEKSB7XG4gICAgICBhbGVydCgnRXJyb3Igd2hpbGUgZ2V0dGluZyB2aXJ0dWFsIHZpc2l0IG1vZGVsJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghZm9yY2VTd2l0Y2hWaXNpdCkge1xuICAgICAgLy8gY2hlY2sgaWYgd2UgYXJlIG1vdmluZyB3aXRoaW4gdGhlIHNhbWUgM0QgbW9kZWxcbiAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtb2RlbDNEJyk7XG4gICAgICBpZiAoY3VycmVudE1vZGVsICYmIGN1cnJlbnRNb2RlbCA9PT0gcmVzdWx0Lm1vZGVsM0QpIHtcbiAgICAgICAgLy8gd2UgYWRkIHRhZyB0byB0aGUgdmlzaXRcbiAgICAgICAgY29uc3QgcG9pID0gZXF1aXBtZW50LnBvaXMuaXRlbXNbMF07XG4gICAgICAgIGlmIChwb2kuY29vcmRpbmF0ZSkge1xuICAgICAgICAgIC8vIHdlIGZvcmNlIGFkZCBiZWNhdXNlIHdlIG1pZ2h0IGJlIGluIGFuIGFub3RoZXIgem9uZVxuICAgICAgICAgIGF3YWl0IHRoaXMudmlld2VyU2VydmljZS5hY3Rpb25BZGRPYmplY3RGcm9tUE9JKGVxdWlwbWVudCwgcG9pKTtcbiAgICAgICAgICBhd2FpdCB0aGlzLnZpZXdlclNlcnZpY2UuYWN0aW9uX21vdmVfdG9fdGFnKGVxdWlwbWVudC5pZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qKiBTaSBvbiBuZSBmb3JjZSBwYXMgbGEgdmlzaXRlLCBvbiBkZW1hbmRlIHNpIG9uIHZldXQgZXRyZSBzd2l0Y2ggKi9cbiAgICAgICAgb3Blbk1vZGFsRm9yVmlzaXRTd2l0Y2goXG4gICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UsXG4gICAgICAgICAgcmVzdWx0Lm1vZGVsM0QsXG4gICAgICAgICAgZXF1aXBtZW50LnNwYWNlSUQsXG4gICAgICAgICAge3N3ZWVwVG9Nb3ZlOiByZXN1bHQuc3dlZXAsIHJvdGF0aW9uOiByZXN1bHQucm90YXRpb259XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8qKiBTaSBvbiBmb3JjZSBsZSBzd2l0Y2ggZGUgbGEgdmlzaXQgKi9cbiAgICAgIHdpbmRvdy5vcGVuKGAke3VybH0/bW9kZWwzRD0ke3Jlc3VsdC5tb2RlbDNEfSZzd2VlcD10cnVlYCwgJ19ibGFuaycpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUVxdWlwc0ZvclpvbmUoKSB7XG4gICAgdGhpcy51cGRhdGluZy5uZXh0KHRydWUpO1xuICAgIGxldCBmaWx0ZXJlZEVxdWlwcyA9IFtdO1xuICAgIGlmICh0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnNwYWNlLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcC5oYXModGhpcy56b25lSURGaWx0ZXIpXG4gICAgICApIHtcbiAgICAgICAgZmlsdGVyZWRFcXVpcHMgPSB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnpvbmVzTWFwLmdldCh0aGlzLnpvbmVJREZpbHRlcik7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiaSBoYXZlIGVxdWlwcyBmb3IgdGhpcyB6b25lXCIsIGZpbHRlcmVkRXF1aXBzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbHRlcmVkRXF1aXBzID0gKGF3YWl0IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJPYmplY3RzRm9yWm9uZShcbiAgICAgICAgICB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnNwYWNlLFxuICAgICAgICAgIHRoaXMuem9uZUlERmlsdGVyLFxuICAgICAgICAgIHRoaXMuY3VycmVudFpvbmVcbiAgICAgICAgKSkgYXMgRXF1aXBtZW50W107XG5cbiAgICAgICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcC5zZXQodGhpcy56b25lSURGaWx0ZXIsIFtcbiAgICAgICAgICAuLi5maWx0ZXJlZEVxdWlwcyxcbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5lcXVpcG1lbnREb21haW5GaWx0ZXIpIHtcbiAgICAgICAgZmlsdGVyZWRFcXVpcHMgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyRXF1aXBtZW50c0J5RG9tYWluTGlzdChcbiAgICAgICAgICBmaWx0ZXJlZEVxdWlwcyxcbiAgICAgICAgICB0aGlzLmVxdWlwbWVudERvbWFpbkZpbHRlclxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5lcXVpcG1lbnRzVGFncy5uZXh0KGZpbHRlcmVkRXF1aXBzKTsgLy8gYWRkaW5nIHRhZ3Mgb25seSBmb3IgdGhlIGN1cnJlbnQgem9uZVxuICAgICAgdGhpcy5lcXVpcG1lbnRzVXBkYXRlZC5uZXh0KHtcbiAgICAgICAgc3BhY2U6IHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2UsXG4gICAgICAgIHpvbmU6IGZpbHRlcmVkRXF1aXBzLFxuICAgICAgfSk7IC8vIGZvciBsYXRlcmFsIG1lbnVcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lcXVpcG1lbnRzVXBkYXRlZC5uZXh0KHtzcGFjZTogW10sIHpvbmU6IFtdfSk7IC8vIGZvciBsYXRlcmFsIG1lbnVcbiAgICB9XG4gICAgdGhpcy51cGRhdGluZy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHVwZGF0ZUR1ZVRvRGVsZXRlKGRlbGV0ZWRFcXVpcG1lbnQ6IEVxdWlwbWVudCkge1xuICAgIC8vIGNvbnNvbGUubG9nKFwidXBkYXRlIGR1ZSB0byBkZWxldGVcIiwgZGVsZXRlZEVxdWlwbWVudCk7XG4gICAgY29uc3QgZXF1aXAgPSB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnNwYWNlLmZpbmQoXG4gICAgICAoX2VxdWlwKSA9PiBfZXF1aXAuaWQgPT09IGRlbGV0ZWRFcXVpcG1lbnQuaWRcbiAgICApO1xuICAgIGlmIChlcXVpcCkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnNwYWNlLmluZGV4T2YoZXF1aXApO1xuICAgICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy5zcGFjZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHpvbmUgb2YgdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcC5rZXlzKCkpIHtcbiAgICAgIGNvbnN0IGVxdWlwVG9EZWxldGUgPSB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnpvbmVzTWFwXG4gICAgICAgIC5nZXQoem9uZSlcbiAgICAgICAgLmZpbmQoKF9lcXVpcCkgPT4gX2VxdWlwLmlkID09PSBkZWxldGVkRXF1aXBtZW50LmlkKTtcbiAgICAgIGlmIChlcXVpcFRvRGVsZXRlKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcFxuICAgICAgICAgIC5nZXQoem9uZSlcbiAgICAgICAgICAuaW5kZXhPZihlcXVpcFRvRGVsZXRlKTtcbiAgICAgICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcC5nZXQoem9uZSkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lcXVpcG1lbnRzVXBkYXRlZC5uZXh0KHtcbiAgICAgIHNwYWNlOiB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnNwYWNlLFxuICAgICAgem9uZTogdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcC5nZXQodGhpcy56b25lSURGaWx0ZXIpLFxuICAgIH0pOyAvLyBmb3IgbGF0ZXJhbCBtZW51XG4gIH1cblxuICB1cGRhdGVEdWVUb0NyZWF0ZShjcmVhdGVkRXF1aXA6IEVxdWlwbWVudCkge1xuICAgIHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2UudW5zaGlmdChjcmVhdGVkRXF1aXApO1xuICAgIHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXBcbiAgICAgIC5nZXQodGhpcy56b25lSURGaWx0ZXIpXG4gICAgICAudW5zaGlmdChjcmVhdGVkRXF1aXApO1xuICAgIHRoaXMuZXF1aXBtZW50c1VwZGF0ZWQubmV4dCh7XG4gICAgICBzcGFjZTogdGhpcy5jdXJyZW50RXF1aXBtZW50cy5zcGFjZSxcbiAgICAgIHpvbmU6IHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXAuZ2V0KHRoaXMuem9uZUlERmlsdGVyKSxcbiAgICB9KTsgLy8gZm9yIGxhdGVyYWwgbWVudVxuICB9XG5cbiAgdXBkYXRlRHVlVG9FcXVpcFVwZGF0ZWQodXBkYXRlZEVxdWlwOiBFcXVpcG1lbnQpIHtcbiAgICBjb25zdCBlcXVpcCA9IHRoaXMuY3VycmVudEVxdWlwbWVudHMuc3BhY2UuZmluZChcbiAgICAgIChfZXF1aXApID0+IF9lcXVpcC5pZCA9PT0gdXBkYXRlZEVxdWlwLmlkXG4gICAgKTtcbiAgICBpZiAoZXF1aXApIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50RXF1aXBtZW50cy5zcGFjZS5pbmRleE9mKGVxdWlwKTtcbiAgICAgIGlmICh0aGlzLmlzQXJjaGl2ZWQoZXF1aXApKSB7XG4gICAgICAgIC8vIHdlIHJlbW92ZSBhcmNoaXZlZCBlcXVpcG1lbnRcbiAgICAgICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy5zcGFjZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy5zcGFjZS5zcGxpY2UoaW5kZXgsIDEsIHVwZGF0ZWRFcXVpcCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3Qgem9uZSBvZiB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnpvbmVzTWFwLmtleXMoKSkge1xuICAgICAgY29uc3QgZXF1aXBUb1VwZCA9IHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXBcbiAgICAgICAgLmdldCh6b25lKVxuICAgICAgICAuZmluZCgoX2VxdWlwKSA9PiBfZXF1aXAuaWQgPT09IHVwZGF0ZWRFcXVpcC5pZCk7XG4gICAgICBpZiAoZXF1aXBUb1VwZCkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXBcbiAgICAgICAgICAuZ2V0KHpvbmUpXG4gICAgICAgICAgLmluZGV4T2YoZXF1aXBUb1VwZCk7XG4gICAgICAgIGlmICh0aGlzLmlzQXJjaGl2ZWQoZXF1aXApKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50RXF1aXBtZW50cy56b25lc01hcC5nZXQoem9uZSkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRFcXVpcG1lbnRzLnpvbmVzTWFwXG4gICAgICAgICAgICAuZ2V0KHpvbmUpXG4gICAgICAgICAgICAuc3BsaWNlKGluZGV4LCAxLCB1cGRhdGVkRXF1aXApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZXF1aXBtZW50c1VwZGF0ZWQubmV4dCh7XG4gICAgICBzcGFjZTogdGhpcy5jdXJyZW50RXF1aXBtZW50cy5zcGFjZSxcbiAgICAgIHpvbmU6IHRoaXMuY3VycmVudEVxdWlwbWVudHMuem9uZXNNYXAuZ2V0KHRoaXMuem9uZUlERmlsdGVyKSxcbiAgICB9KTsgLy8gZm9yIGxhdGVyYWwgbWVudVxuICB9XG5cbiAgaW5pdFN1YnNjcmlwdGlvbnMoKSB7XG4gICAgaWYgKCF0aGlzLmlzTXVzZXVtVXNlcikge1xuICAgICAgdGhpcy56b25lQ2hhbmdlU2VydmljZS56b25lQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoem9uZSkgPT4ge1xuICAgICAgICAgIGlmICghem9uZSB8fCAhdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnRTcGFjZUlEKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTcGFjZUlEID0gdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnRTcGFjZUlEO1xuICAgICAgICAgICAgdGhpcy5lcXVpcG1lbnRzVGFncy5uZXh0KG51bGwpO1xuICAgICAgICAgICAgdGhpcy5lcXVpcG1lbnRzVXBkYXRlZC5uZXh0KHtzcGFjZTogW10sIHpvbmU6IG51bGx9KTtcbiAgICAgICAgICAgIHRoaXMuem9uZUlERmlsdGVyID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEVxdWlwbWVudHMgPSB7XG4gICAgICAgICAgICAgIHNwYWNlOiBbXSxcbiAgICAgICAgICAgICAgem9uZXNNYXA6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh6b25lLmlkICE9PSB0aGlzLnpvbmVJREZpbHRlcikge1xuICAgICAgICAgICAgdGhpcy56b25lSURGaWx0ZXIgPSB6b25lLmlkO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50Wm9uZSA9IHpvbmU7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50U3BhY2VJRCA9PT0gdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmN1cnJlbnRTcGFjZUlEKSB7XG4gICAgICAgICAgICAgIC8vIHNhbWUgc3BhY2UsICBvbmx5IHpvbmUgdXBkYXRlXG4gICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAvLyAgICAgXCJnb2luZyB0byB1cGRhdGUgZXF1aXBzIGZvciB6b25lIChzYW1lIHNwYWNlKVwiLFxuICAgICAgICAgICAgICAvLyAgICAgem9uZSxcbiAgICAgICAgICAgICAgLy8gKTtcblxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUVxdWlwc0ZvclpvbmUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY3VycmVudFNwYWNlSUQgPSB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY3VycmVudFNwYWNlSUQ7XG4gICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAvLyAgICAgXCJnb2luZyB0byBpbml0IGVxdWlwcyBmb3Igem9uZSBmb3IgbmV3IHNwYWNlXCIsXG4gICAgICAgICAgICAgIC8vICAgICB0aGlzLmN1cnJlbnRTcGFjZUlELFxuICAgICAgICAgICAgICAvLyApO1xuICAgICAgICAgICAgICB0aGlzLmluaXRFcXVpcHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLmRlbGV0ZU9ic2VydmFibGVcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKChlcXVpcG1lbnQpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50U3BhY2VJRCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVEdWVUb0RlbGV0ZShlcXVpcG1lbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY3JlYXRlT2JzZXJ2YWJsZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGVxdWlwbWVudCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRTcGFjZUlEKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUR1ZVRvQ3JlYXRlKGVxdWlwbWVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgdGhpcy51cGRhdGVPYnNlcnZhYmxlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZXF1aXBtZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudFNwYWNlSUQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRHVlVG9FcXVpcFVwZGF0ZWQoZXF1aXBtZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVuc3Vic2NyaWJlKCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -125,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
125
125
  type: Inject,
126
126
  args: ['currentAPIService']
127
127
  }] }, { type: i1.BaseUserService }, { type: i2.TranslateService }]; } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL2V2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBUzlELE1BQU0sT0FBTyxZQUFZO0lBTXJCLFlBQ2lDLFdBQWdCLEVBQ3JDLFdBQTRCLEVBQzVCLFNBQTJCO1FBRDNCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQVB2QyxpQ0FBNEIsR0FBRyxFQUFFLENBQUM7UUFROUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7SUFDM0IsQ0FBQztJQUVEOztTQUVLO0lBQ0wsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFZO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQVU7UUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBZTtRQUM3QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQWU7UUFDMUIsT0FBTyxJQUFJ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QVMsQ0FDakIsQ0FBQztRQUVOLElBQUksSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RCxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUQsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O3lHQS9JUSxZQUFZLGtCQU9ULG1CQUFtQjs2R0FQdEIsWUFBWSxjQUZULE1BQU07MkZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQVFRLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGRhdGVUaW1lVG9Mb2NhbFN0cmluZyB9IGZyb20gXCIuLi8uLi9oZWxwZXJzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvZmlsZUVudGl0eSB9IGZyb20gXCIuLi8uLi90eXBlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEJhc2VVc2VyU2VydmljZSB9IGZyb20gXCIuLi91c2VyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRXZlbnQgfSBmcm9tIFwiLi4vLi4vdHlwZXMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXZlbnRTZXJ2aWNlIHtcclxuICAgIFxyXG4gICAgdHJhbnNsYXRpb25FdmVudFN1YmNyaXB0aW9ucyA9IHt9O1xyXG5cclxuICAgIEFQSTogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueSwgXHJcbiAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlICkge1xyXG4gICAgICAgIHRoaXMuQVBJID0gYXBpSW5qZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDUlVEIFxyXG4gICAgICogKi9cclxuICAgIGFzeW5jIGNyZWF0ZUV2ZW50KGlucHV0OiBFdmVudCk6IFByb21pc2U8RXZlbnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkNyZWF0ZUV2ZW50KGlucHV0KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB1cGRhdGVFdmVudChpbnB1dDogYW55KTogUHJvbWlzZTxFdmVudD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uVXBkYXRlRXZlbnQoaW5wdXQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRlbGV0ZUV2ZW50KGV2ZW50SUQ6IHN0cmluZyk6IFByb21pc2U8RXZlbnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkRlbGV0ZUV2ZW50KHtpZDogZXZlbnRJRH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEV2ZW50KGV2ZW50SUQ6IHN0cmluZyk6IFByb21pc2U8RXZlbnQ+e1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uR2V0RXZlbnQoZXZlbnRJRCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFxyXG4gICAgICogQ3VzdG9tIGdldCBieSBHU0kgXHJcbiAgICAgKiAqL1xyXG4gICAgYXN5bmMgZ2V0RXZlbnRzQnlUaWNrZXRJRCh0aWNrZXRJRDogc3RyaW5nKTogUHJvbWlzZTxFdmVudFtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5FdmVudHNCeVRpY2tldCh0aWNrZXRJRCkudGhlbigoZXZlbnRzKT0+IGV2ZW50cy5pdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0RXZlbnRzQnlUaWNrZXRJRFNvcnRlZEJ5RGF0ZURlc2ModGlja2V0SUQ6IHN0cmluZyk6IFByb21pc2U8RXZlbnRbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uRXZlbnRzQnlUaWNrZXRCeURhdGUoXHJcbiAgICAgICAgICAgIHRpY2tldElELFxyXG4gICAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgICBcIkRFU0NcIixcclxuICAgICAgICApLnRoZW4oKGV2ZW50cykgPT4gZXZlbnRzLml0ZW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRFdmVudHNCeUdyb3VwKGdyb3VwOiBzdHJpbmcpOiBQcm9taXNlPEV2ZW50W10+IHtcclxuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuQVBJLl9fcHJvdG9fXy5FdmVudHNCeUdyb3VwKGdyb3VwKSkuaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBcclxuICAgICAqIFNPUlRJTkdcclxuICAgICAqL1xyXG5cclxuICAgIHNvcnRFdmVudHNCeUNyZWF0ZWRBdERhdGVEZXNjKGV2ZW50czogRXZlbnRbXSk6IEV2ZW50W10ge1xyXG4gICAgICAgIGV2ZW50cy5zb3J0KChldmVudDEsIGV2ZW50MikgPT4ge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShldmVudDIuY3JlYXRlZEF0KSAtIG5ldyBEYXRlKGV2ZW50MS5jcmVhdGVkQXQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBldmVudHM7XHJcbiAgICB9XHJcblxyXG4gICAgc29ydEV2ZW50c0J5Q3JlYXRlZEF0RGF0ZUFzYyhldmVudHM6IEV2ZW50W10pOiBFdmVudFtdIHtcclxuICAgICAgICBldmVudHMuc29ydCgoZXZlbnQxLCBldmVudDIpID0+IHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoZXZlbnQxLmNyZWF0ZWRBdCkgLSBuZXcgRGF0ZShldmVudDIuY3JlYXRlZEF0KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gZXZlbnRzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogIFRSQU5TTEFUSU9OUyBcclxuICAgICAqICovXHJcbiAgICAvKiogQXBwbHkgYSB0cmFuc2xhdGlvbiB0byBhIHRpY2tldCBldmVudCwgd2l0aCB0aGUgY3VycmVudCBsYW5ndWFnZSAqL1xyXG4gICAgYXN5bmMgYXBwbHlUaWNrZXRFdmVudFRyYW5zbGF0ZShldmVudDogRXZlbnQpIHtcclxuICAgICAgICBjb25zdCBtZXRhID0gYXdhaXQgdGhpcy5nZXRUcmFuc2xhdGVkTWV0YUV2ZW50KGV2ZW50KTtcclxuICAgICAgICBjb25zdCBwYXRoID0gZXZlbnQudHJhbnNsYXRpb25QYXRoO1xyXG4gICAgICAgIGlmIChwYXRoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlUGF0aCA9IGAke3BhdGh9LnRpdGxlYDtcclxuICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRpb25QYXRoID0gYCR7cGF0aH0uZGVzY3JpcHRpb25gO1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVQYXRoLCBkZXNjcmlwdGlvblBhdGhdLFxyXG4gICAgICAgICAgICAgICAgbWV0YSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZXZlbnQudGl0bGUgPSB2YWx1ZVt0aXRsZVBhdGhdO1xyXG4gICAgICAgICAgICBldmVudC5kZXNjcmlwdGlvbiA9IHZhbHVlW2Rlc2NyaXB0aW9uUGF0aF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBVbnN1YnNjcmliZSBhIHRpY2tldCBldmVudCBmb3IgaGlzIHRyYW5zbGF0aW9uICovXHJcbiAgICB0aWNrZXRFdmVudFN1YnNjcmliZVRyYW5zbGF0aW9uKGV2ZW50OiBFdmVudCkge1xyXG4gICAgICAgIGlmIChldmVudC5pZCBpbiB0aGlzLnRyYW5zbGF0aW9uRXZlbnRTdWJjcmlwdGlvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy50aWNrZXRFdmVudFVuc3Vic2NyaWJlVHJhbnNsYXRpb24oZXZlbnQuaWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uRXZlbnRTdWJjcmlwdGlvbnNbZXZlbnQuaWRdID1cclxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFwcGx5VGlja2V0RXZlbnRUcmFuc2xhdGUoZXZlbnQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFwcGx5VGlja2V0RXZlbnRUcmFuc2xhdGUoZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBVbnN1YnNjcmliZSBhIHRpY2tldCBldmVudCBmb3IgaGlzIHRyYW5zbGF0aW9uICovXHJcbiAgICB0aWNrZXRFdmVudFVuc3Vic2NyaWJlVHJhbnNsYXRpb24oaWQ6IHN0cmluZykge1xyXG4gICAgICAgIGlmIChpZCBpbiB0aGlzLnRyYW5zbGF0aW9uRXZlbnRTdWJjcmlwdGlvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbkV2ZW50U3ViY3JpcHRpb25zW2lkXS51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy50cmFuc2xhdGlvbkV2ZW50U3ViY3JpcHRpb25zW2lkXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEdlbmVyYXRlIHRoZSB0cmFuc2xhdGVkIG1ldGFkYXRhIG9mIGFuIGV2ZW50LCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgKi9cclxuICAgIGFzeW5jIGdldFRyYW5zbGF0ZWRNZXRhRXZlbnQoZXZlbnQ6IEV2ZW50KTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBsZXQgbWV0YTogYW55ID0ge307XHJcblxyXG4gICAgICAgIGNvbnN0IG93bmVyOiBQcm9maWxlRW50aXR5ID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS51c2VyRnJvbVVzZXJJRChcclxuICAgICAgICAgICAgZXZlbnQub3duZXIudXNlcklELFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChldmVudC5tZXRhZGF0YSkgbWV0YSA9IEpTT04ucGFyc2UoZXZlbnQubWV0YWRhdGEpO1xyXG4gICAgICAgIH0gY2F0Y2gge31cclxuICAgICAgICBtZXRhLmZpcnN0TmFtZSA9IG93bmVyLmZpcnN0TmFtZTtcclxuICAgICAgICBtZXRhLmxhc3ROYW1lID0gb3duZXIubGFzdE5hbWU7XHJcblxyXG4gICAgICAgIGlmIChldmVudC5lc3RpbWF0ZVN0YXJ0RGF0ZSkge1xyXG4gICAgICAgICAgICBtZXRhLmZyb21EYXRlID0gZGF0ZVRpbWVUb0xvY2FsU3RyaW5nKFxyXG4gICAgICAgICAgICAgICAgZXZlbnQuZXN0aW1hdGVTdGFydERhdGUsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50LmVzdGltYXRlRW5kRGF0ZSlcclxuICAgICAgICAgICAgbWV0YS50b0RhdGUgPSBkYXRlVGltZVRvTG9jYWxTdHJpbmcoXHJcbiAgICAgICAgICAgICAgICBldmVudC5lc3RpbWF0ZUVuZERhdGUsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZSxcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKG1ldGEub2xkU3RhdHVzKVxyXG4gICAgICAgICAgICBtZXRhLm9sZFN0YXR1cyA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQobWV0YS5vbGRTdGF0dXMpO1xyXG4gICAgICAgIGlmIChtZXRhLm5ld1N0YXR1cylcclxuICAgICAgICAgICAgbWV0YS5uZXdTdGF0dXMgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KG1ldGEubmV3U3RhdHVzKTtcclxuICAgICAgICBpZiAobWV0YS50eXBlKSBtZXRhLnR5cGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KG1ldGEudHlwZSk7XHJcbiAgICAgICAgcmV0dXJuIG1ldGE7XHJcbiAgICB9XHJcbiAgIFxyXG59XHJcbiJdfQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvc2VydmljZXMvbW9kZWxzL2V2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBUzlELE1BQU0sT0FBTyxZQUFZO0lBTXJCLFlBQ2lDLFdBQWdCLEVBQ3JDLFdBQTRCLEVBQzVCLFNBQTJCO1FBRDNCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQVB2QyxpQ0FBNEIsR0FBRyxFQUFFLENBQUM7UUFROUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7SUFDM0IsQ0FBQztJQUVEOztTQUVLO0lBQ0wsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFZO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQVU7UUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBZTtRQUM3QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQWU7UUFDMUIsT0FBTyxJQUFJ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QVMsQ0FDakIsQ0FBQztRQUVOLElBQUksSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RCxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUQsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O3lHQS9JUSxZQUFZLGtCQU9ULG1CQUFtQjs2R0FQdEIsWUFBWSxjQUZULE1BQU07MkZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQVFRLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgZGF0ZVRpbWVUb0xvY2FsU3RyaW5nIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMuc2VydmljZVwiO1xuaW1wb3J0IHsgUHJvZmlsZUVudGl0eSB9IGZyb20gXCIuLi8uLi90eXBlcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBCYXNlVXNlclNlcnZpY2UgfSBmcm9tIFwiLi4vdXNlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBFdmVudCB9IGZyb20gXCIuLi8uLi90eXBlcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxufSlcbmV4cG9ydCBjbGFzcyBFdmVudFNlcnZpY2Uge1xuICAgIFxuICAgIHRyYW5zbGF0aW9uRXZlbnRTdWJjcmlwdGlvbnMgPSB7fTtcblxuICAgIEFQSTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoJ2N1cnJlbnRBUElTZXJ2aWNlJykgYXBpSW5qZWN0ZWQ6IGFueSwgXG4gICAgICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IEJhc2VVc2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UgKSB7XG4gICAgICAgIHRoaXMuQVBJID0gYXBpSW5qZWN0ZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ1JVRCBcbiAgICAgKiAqL1xuICAgIGFzeW5jIGNyZWF0ZUV2ZW50KGlucHV0OiBFdmVudCk6IFByb21pc2U8RXZlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5DcmVhdGVFdmVudChpbnB1dCk7XG4gICAgfVxuXG4gICAgYXN5bmMgdXBkYXRlRXZlbnQoaW5wdXQ6IGFueSk6IFByb21pc2U8RXZlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQVBJLl9fcHJvdG9fXy5VcGRhdGVFdmVudChpbnB1dCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZGVsZXRlRXZlbnQoZXZlbnRJRDogc3RyaW5nKTogUHJvbWlzZTxFdmVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkRlbGV0ZUV2ZW50KHtpZDogZXZlbnRJRH0pO1xuICAgIH1cblxuICAgIGFzeW5jIGdldEV2ZW50KGV2ZW50SUQ6IHN0cmluZyk6IFByb21pc2U8RXZlbnQ+e1xuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkdldEV2ZW50KGV2ZW50SUQpO1xuICAgIH1cblxuICAgIC8qKiBcbiAgICAgKiBDdXN0b20gZ2V0IGJ5IEdTSSBcbiAgICAgKiAqL1xuICAgIGFzeW5jIGdldEV2ZW50c0J5VGlja2V0SUQodGlja2V0SUQ6IHN0cmluZyk6IFByb21pc2U8RXZlbnRbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5BUEkuX19wcm90b19fLkV2ZW50c0J5VGlja2V0KHRpY2tldElEKS50aGVuKChldmVudHMpPT4gZXZlbnRzLml0ZW1zKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRFdmVudHNCeVRpY2tldElEU29ydGVkQnlEYXRlRGVzYyh0aWNrZXRJRDogc3RyaW5nKTogUHJvbWlzZTxFdmVudFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLkFQSS5fX3Byb3RvX18uRXZlbnRzQnlUaWNrZXRCeURhdGUoXG4gICAgICAgICAgICB0aWNrZXRJRCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBcIkRFU0NcIixcbiAgICAgICAgKS50aGVuKChldmVudHMpID0+IGV2ZW50cy5pdGVtcyk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0RXZlbnRzQnlHcm91cChncm91cDogc3RyaW5nKTogUHJvbWlzZTxFdmVudFtdPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5BUEkuX19wcm90b19fLkV2ZW50c0J5R3JvdXAoZ3JvdXApKS5pdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBcbiAgICAgKiBTT1JUSU5HXG4gICAgICovXG5cbiAgICBzb3J0RXZlbnRzQnlDcmVhdGVkQXREYXRlRGVzYyhldmVudHM6IEV2ZW50W10pOiBFdmVudFtdIHtcbiAgICAgICAgZXZlbnRzLnNvcnQoKGV2ZW50MSwgZXZlbnQyKSA9PiB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoZXZlbnQyLmNyZWF0ZWRBdCkgLSBuZXcgRGF0ZShldmVudDEuY3JlYXRlZEF0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBldmVudHM7XG4gICAgfVxuXG4gICAgc29ydEV2ZW50c0J5Q3JlYXRlZEF0RGF0ZUFzYyhldmVudHM6IEV2ZW50W10pOiBFdmVudFtdIHtcbiAgICAgICAgZXZlbnRzLnNvcnQoKGV2ZW50MSwgZXZlbnQyKSA9PiB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoZXZlbnQxLmNyZWF0ZWRBdCkgLSBuZXcgRGF0ZShldmVudDIuY3JlYXRlZEF0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBldmVudHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIFRSQU5TTEFUSU9OUyBcbiAgICAgKiAqL1xuICAgIC8qKiBBcHBseSBhIHRyYW5zbGF0aW9uIHRvIGEgdGlja2V0IGV2ZW50LCB3aXRoIHRoZSBjdXJyZW50IGxhbmd1YWdlICovXG4gICAgYXN5bmMgYXBwbHlUaWNrZXRFdmVudFRyYW5zbGF0ZShldmVudDogRXZlbnQpIHtcbiAgICAgICAgY29uc3QgbWV0YSA9IGF3YWl0IHRoaXMuZ2V0VHJhbnNsYXRlZE1ldGFFdmVudChldmVudCk7XG4gICAgICAgIGNvbnN0IHBhdGggPSBldmVudC50cmFuc2xhdGlvblBhdGg7XG4gICAgICAgIGlmIChwYXRoKSB7XG4gICAgICAgICAgICBjb25zdCB0aXRsZVBhdGggPSBgJHtwYXRofS50aXRsZWA7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvblBhdGggPSBgJHtwYXRofS5kZXNjcmlwdGlvbmA7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgW3RpdGxlUGF0aCwgZGVzY3JpcHRpb25QYXRoXSxcbiAgICAgICAgICAgICAgICBtZXRhLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGV2ZW50LnRpdGxlID0gdmFsdWVbdGl0bGVQYXRoXTtcbiAgICAgICAgICAgIGV2ZW50LmRlc2NyaXB0aW9uID0gdmFsdWVbZGVzY3JpcHRpb25QYXRoXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBVbnN1YnNjcmliZSBhIHRpY2tldCBldmVudCBmb3IgaGlzIHRyYW5zbGF0aW9uICovXG4gICAgdGlja2V0RXZlbnRTdWJzY3JpYmVUcmFuc2xhdGlvbihldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmlkIGluIHRoaXMudHJhbnNsYXRpb25FdmVudFN1YmNyaXB0aW9ucykge1xuICAgICAgICAgICAgdGhpcy50aWNrZXRFdmVudFVuc3Vic2NyaWJlVHJhbnNsYXRpb24oZXZlbnQuaWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25FdmVudFN1YmNyaXB0aW9uc1tldmVudC5pZF0gPVxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBseVRpY2tldEV2ZW50VHJhbnNsYXRlKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFwcGx5VGlja2V0RXZlbnRUcmFuc2xhdGUoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBVbnN1YnNjcmliZSBhIHRpY2tldCBldmVudCBmb3IgaGlzIHRyYW5zbGF0aW9uICovXG4gICAgdGlja2V0RXZlbnRVbnN1YnNjcmliZVRyYW5zbGF0aW9uKGlkOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGlkIGluIHRoaXMudHJhbnNsYXRpb25FdmVudFN1YmNyaXB0aW9ucykge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbkV2ZW50U3ViY3JpcHRpb25zW2lkXS51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMudHJhbnNsYXRpb25FdmVudFN1YmNyaXB0aW9uc1tpZF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogR2VuZXJhdGUgdGhlIHRyYW5zbGF0ZWQgbWV0YWRhdGEgb2YgYW4gZXZlbnQsIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBsYW5ndWFnZSAqL1xuICAgIGFzeW5jIGdldFRyYW5zbGF0ZWRNZXRhRXZlbnQoZXZlbnQ6IEV2ZW50KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgbGV0IG1ldGE6IGFueSA9IHt9O1xuXG4gICAgICAgIGNvbnN0IG93bmVyOiBQcm9maWxlRW50aXR5ID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS51c2VyRnJvbVVzZXJJRChcbiAgICAgICAgICAgIGV2ZW50Lm93bmVyLnVzZXJJRCxcbiAgICAgICAgKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGV2ZW50Lm1ldGFkYXRhKSBtZXRhID0gSlNPTi5wYXJzZShldmVudC5tZXRhZGF0YSk7XG4gICAgICAgIH0gY2F0Y2gge31cbiAgICAgICAgbWV0YS5maXJzdE5hbWUgPSBvd25lci5maXJzdE5hbWU7XG4gICAgICAgIG1ldGEubGFzdE5hbWUgPSBvd25lci5sYXN0TmFtZTtcblxuICAgICAgICBpZiAoZXZlbnQuZXN0aW1hdGVTdGFydERhdGUpIHtcbiAgICAgICAgICAgIG1ldGEuZnJvbURhdGUgPSBkYXRlVGltZVRvTG9jYWxTdHJpbmcoXG4gICAgICAgICAgICAgICAgZXZlbnQuZXN0aW1hdGVTdGFydERhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5lc3RpbWF0ZUVuZERhdGUpXG4gICAgICAgICAgICBtZXRhLnRvRGF0ZSA9IGRhdGVUaW1lVG9Mb2NhbFN0cmluZyhcbiAgICAgICAgICAgICAgICBldmVudC5lc3RpbWF0ZUVuZERhdGUsXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIGlmIChtZXRhLm9sZFN0YXR1cylcbiAgICAgICAgICAgIG1ldGEub2xkU3RhdHVzID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChtZXRhLm9sZFN0YXR1cyk7XG4gICAgICAgIGlmIChtZXRhLm5ld1N0YXR1cylcbiAgICAgICAgICAgIG1ldGEubmV3U3RhdHVzID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChtZXRhLm5ld1N0YXR1cyk7XG4gICAgICAgIGlmIChtZXRhLnR5cGUpIG1ldGEudHlwZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQobWV0YS50eXBlKTtcbiAgICAgICAgcmV0dXJuIG1ldGE7XG4gICAgfVxuICAgXG59XG4iXX0=