@esolve/ng-esolve-connect 0.51.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/esm2022/index.mjs +5 -14
  2. package/esm2022/lib/account/esolve-account.service.mjs +5 -5
  3. package/esm2022/lib/assets/classes/esolve-asset.model.mjs +77 -0
  4. package/esm2022/lib/assets/classes/esolve-linked-asset.model.mjs +10 -0
  5. package/esm2022/lib/assets/classes/index.mjs +3 -0
  6. package/esm2022/lib/assets/esolve-assets.service.mjs +129 -0
  7. package/esm2022/lib/assets/index.mjs +6 -0
  8. package/esm2022/lib/assets/interfaces/esolve-asset-options.interface.mjs +2 -0
  9. package/esm2022/lib/assets/interfaces/esolve-asset-record.interface.mjs +2 -0
  10. package/esm2022/lib/assets/interfaces/esolve-linked-asset-record.interface.mjs +2 -0
  11. package/esm2022/lib/assets/interfaces/esolve-media-asset-options.interface.mjs +2 -0
  12. package/esm2022/lib/assets/interfaces/index.mjs +5 -0
  13. package/esm2022/lib/assets/types/esolve-asset-list.type.mjs +2 -0
  14. package/esm2022/lib/assets/types/esolve-asset-type.type.mjs +2 -0
  15. package/esm2022/lib/assets/types/index.mjs +3 -0
  16. package/esm2022/lib/auth/esolve-auth-interceptor.service.mjs +3 -3
  17. package/esm2022/lib/auth/esolve-auth.service.mjs +3 -3
  18. package/esm2022/lib/banners/classes/esolve-banner-image-hotspot.model.mjs +9 -0
  19. package/esm2022/lib/banners/classes/esolve-banner-image.model.mjs +14 -0
  20. package/esm2022/lib/banners/classes/esolve-banner.model.mjs +25 -0
  21. package/esm2022/lib/banners/classes/index.mjs +4 -0
  22. package/esm2022/lib/banners/esolve-banner.service.mjs +5 -7
  23. package/esm2022/lib/banners/index.mjs +4 -12
  24. package/esm2022/lib/banners/interfaces/esolve-banner-image-hotspot-coords.interface.mjs +2 -0
  25. package/esm2022/lib/banners/interfaces/esolve-banner-image-hotspot-record.interface.mjs +2 -0
  26. package/esm2022/lib/banners/interfaces/esolve-banner-image-record.interface.mjs +2 -0
  27. package/esm2022/lib/banners/interfaces/esolve-banner-image-set.interface.mjs +2 -0
  28. package/esm2022/lib/banners/interfaces/esolve-banner-link.interface.mjs +2 -0
  29. package/esm2022/lib/banners/interfaces/esolve-banner-record.interface.mjs +2 -0
  30. package/esm2022/lib/banners/interfaces/index.mjs +7 -0
  31. package/esm2022/lib/banners/types/esolve-banner-image-type.type.mjs +2 -0
  32. package/esm2022/lib/banners/types/esolve-banner-type.type.mjs +2 -0
  33. package/esm2022/lib/banners/types/index.mjs +3 -0
  34. package/esm2022/lib/cart/classes/esolve-cart-alternative.model.mjs +63 -0
  35. package/esm2022/lib/cart/classes/esolve-cart-totals.model.mjs +9 -3
  36. package/esm2022/lib/cart/classes/index.mjs +2 -1
  37. package/esm2022/lib/cart/esolve-cart.service.mjs +74 -8
  38. package/esm2022/lib/cart/interfaces/esolve-cart-alternative-record.interface.mjs +2 -0
  39. package/esm2022/lib/cart/interfaces/esolve-cart-totals-record.interface.mjs +1 -1
  40. package/esm2022/lib/cart/interfaces/index.mjs +2 -1
  41. package/esm2022/lib/cart/types/esolve-cart-alternatives-map.type.mjs +2 -0
  42. package/esm2022/lib/cart/types/index.mjs +2 -1
  43. package/esm2022/lib/category-tree/classes/esolve-category-tree-item.model.mjs +48 -0
  44. package/esm2022/lib/category-tree/classes/index.mjs +2 -0
  45. package/esm2022/lib/category-tree/esolve-category-tree.service.mjs +5 -5
  46. package/esm2022/lib/category-tree/index.mjs +3 -6
  47. package/esm2022/lib/category-tree/interfaces/esolve-category-identifier.interface.mjs +2 -0
  48. package/esm2022/lib/category-tree/interfaces/esolve-category-record.interface.mjs +2 -0
  49. package/esm2022/lib/category-tree/interfaces/esolve-category-tree-item-options.interface.mjs +2 -0
  50. package/esm2022/lib/category-tree/interfaces/esolve-category-tree-item-record.interface.mjs +2 -0
  51. package/esm2022/lib/category-tree/interfaces/esolve-subcategory-record.interface.mjs +2 -0
  52. package/esm2022/lib/category-tree/interfaces/index.mjs +6 -0
  53. package/esm2022/lib/core/esolve-config.service.mjs +3 -3
  54. package/esm2022/lib/coupons/esolve-coupons.service.mjs +5 -5
  55. package/esm2022/lib/device/{esolve-device-service.mjs → esolve-device.service.mjs} +4 -4
  56. package/esm2022/lib/device/index.mjs +2 -2
  57. package/esm2022/lib/enquiry/classes/esolve-enquiry-result.model.mjs +9 -0
  58. package/esm2022/lib/enquiry/classes/index.mjs +2 -0
  59. package/esm2022/lib/enquiry/esolve-enquiry.service.mjs +6 -6
  60. package/esm2022/lib/enquiry/index.mjs +3 -3
  61. package/esm2022/lib/enquiry/types/esolve-enquiry-response.type.mjs +2 -0
  62. package/esm2022/lib/enquiry/types/index.mjs +2 -0
  63. package/esm2022/lib/geocoder/classes/esolve-geocode-address-result.model.mjs +12 -0
  64. package/esm2022/lib/geocoder/classes/esolve-geocode-coords-result.model.mjs +7 -0
  65. package/esm2022/lib/geocoder/classes/esolve-geocode-result.model.mjs +11 -0
  66. package/esm2022/lib/geocoder/classes/index.mjs +4 -0
  67. package/esm2022/lib/geocoder/esolve-geocoder.service.mjs +66 -0
  68. package/esm2022/lib/geocoder/index.mjs +4 -0
  69. package/esm2022/lib/geocoder/interfaces/esolve-geocode-address-record.interface.mjs +2 -0
  70. package/esm2022/lib/geocoder/interfaces/esolve-geocode-result-record.interface.mjs +2 -0
  71. package/esm2022/lib/geocoder/interfaces/index.mjs +3 -0
  72. package/esm2022/lib/images/directives/cdn-src.directive.mjs +3 -3
  73. package/esm2022/lib/locations/classes/esolve-location-trading-day.model.mjs +1 -1
  74. package/esm2022/lib/locations/esolve-locations.service.mjs +3 -3
  75. package/esm2022/lib/manufacturers/classes/esolve-manufacturer.model.mjs +61 -0
  76. package/esm2022/lib/manufacturers/classes/index.mjs +2 -0
  77. package/esm2022/lib/manufacturers/esolve-manufacturers.service.mjs +5 -5
  78. package/esm2022/lib/manufacturers/index.mjs +4 -8
  79. package/esm2022/lib/manufacturers/interfaces/esolve-manufacturer-options.interface.mjs +2 -0
  80. package/esm2022/lib/manufacturers/interfaces/esolve-manufacturer-record.interface.mjs +2 -0
  81. package/esm2022/lib/manufacturers/interfaces/index.mjs +3 -0
  82. package/esm2022/lib/manufacturers/types/esolve-manufacturer-image-size.type.mjs +2 -0
  83. package/esm2022/lib/manufacturers/types/index.mjs +2 -0
  84. package/esm2022/lib/menu/esolve-menu.service.mjs +3 -3
  85. package/esm2022/lib/news/classes/esolve-news-article-author.model.mjs +9 -0
  86. package/esm2022/lib/news/classes/esolve-news-article-list.model.mjs +8 -0
  87. package/esm2022/lib/news/classes/esolve-news-article.model.mjs +73 -0
  88. package/esm2022/lib/news/classes/esolve-news-group.model.mjs +25 -0
  89. package/esm2022/lib/news/classes/index.mjs +5 -0
  90. package/esm2022/lib/news/esolve-news.service.mjs +5 -7
  91. package/esm2022/lib/news/index.mjs +3 -9
  92. package/esm2022/lib/news/interfaces/esolve-news-article-author-record.interface.mjs +2 -0
  93. package/esm2022/lib/news/interfaces/esolve-news-article-options.interface.mjs +2 -0
  94. package/esm2022/lib/news/interfaces/esolve-news-article-record.interface.mjs +2 -0
  95. package/esm2022/lib/news/interfaces/esolve-news-group-record.interface.mjs +2 -0
  96. package/esm2022/lib/news/interfaces/index.mjs +5 -0
  97. package/esm2022/lib/ng-esolve-connect.module.mjs +4 -4
  98. package/esm2022/lib/payment/esolve-payment.service.mjs +3 -3
  99. package/esm2022/lib/ranges/{esolve-range.model.mjs → classes/esolve-range.model.mjs} +2 -2
  100. package/esm2022/lib/ranges/classes/index.mjs +2 -0
  101. package/esm2022/lib/ranges/esolve-ranges.service.mjs +5 -5
  102. package/esm2022/lib/ranges/index.mjs +3 -4
  103. package/esm2022/lib/ranges/interfaces/esolve-range-options.interface.mjs +2 -0
  104. package/esm2022/lib/ranges/interfaces/esolve-range-record.interface.mjs +2 -0
  105. package/esm2022/lib/ranges/interfaces/index.mjs +3 -0
  106. package/esm2022/lib/seo/classes/esolve-seo-info.model.mjs +12 -0
  107. package/esm2022/lib/seo/classes/index.mjs +2 -0
  108. package/esm2022/lib/seo/esolve-seo.service.mjs +122 -0
  109. package/esm2022/lib/seo/index.mjs +4 -0
  110. package/esm2022/lib/seo/interfaces/esolve-seo-details.interface.mjs +2 -0
  111. package/esm2022/lib/seo/interfaces/index.mjs +2 -0
  112. package/esm2022/lib/session/esolve-session-metadata.service.mjs +3 -3
  113. package/esm2022/lib/session/esolve-session.service.mjs +5 -5
  114. package/esm2022/lib/shared/cookie/esolve-cookie.service.mjs +8 -9
  115. package/esm2022/lib/shared/cookie/index.mjs +2 -0
  116. package/esm2022/lib/shared/errors/esolve-error-handler.service.mjs +3 -3
  117. package/esm2022/lib/shared/filters/classes/esolve-multiple-select-filter.model.mjs +1 -1
  118. package/esm2022/lib/shared/filters/classes/esolve-range-filter.model.mjs +1 -1
  119. package/esm2022/lib/shared/filters/classes/esolve-toggle-filter.model.mjs +1 -1
  120. package/esm2022/lib/shared/filters/types/index.mjs +2 -1
  121. package/esm2022/lib/shared/index.mjs +11 -0
  122. package/esm2022/lib/shared/response/classes/esolve-response-result.model.mjs +9 -0
  123. package/esm2022/lib/shared/response/classes/index.mjs +2 -0
  124. package/esm2022/lib/shared/response/esolve-response-handler.service.mjs +4 -4
  125. package/esm2022/lib/shared/response/index.mjs +3 -10
  126. package/esm2022/lib/shared/response/interfaces/esolve-delete-response.interface.mjs +2 -0
  127. package/esm2022/lib/shared/response/interfaces/esolve-delete-result.interface.mjs +2 -0
  128. package/esm2022/lib/shared/response/interfaces/esolve-get-response.interface.mjs +2 -0
  129. package/esm2022/lib/shared/response/interfaces/esolve-post-response-item.interface.mjs +2 -0
  130. package/esm2022/lib/shared/response/interfaces/esolve-post-response-status.interface.mjs +2 -0
  131. package/esm2022/lib/shared/response/interfaces/esolve-response-log-item.interface.mjs +2 -0
  132. package/esm2022/lib/shared/response/interfaces/esolve-response.interface.mjs +2 -0
  133. package/esm2022/lib/shared/response/interfaces/esolve-set-response.interface.mjs +2 -0
  134. package/esm2022/lib/shared/response/interfaces/index.mjs +9 -0
  135. package/esm2022/lib/shipping/classes/esolve-shipping-method.model.mjs +33 -30
  136. package/esm2022/lib/shipping/esolve-shipping.service.mjs +5 -6
  137. package/esm2022/lib/specials/classes/esolve-special-dates.model.mjs +7 -0
  138. package/esm2022/lib/specials/classes/esolve-special-image-collection.model.mjs +25 -0
  139. package/esm2022/lib/specials/classes/esolve-special-image.model.mjs +9 -0
  140. package/esm2022/lib/specials/classes/esolve-special.model.mjs +40 -0
  141. package/esm2022/lib/specials/classes/index.mjs +5 -0
  142. package/esm2022/lib/specials/esolve-specials.service.mjs +5 -5
  143. package/esm2022/lib/specials/index.mjs +3 -9
  144. package/esm2022/lib/specials/interfaces/esolve-special-image-collection-record.interface.mjs +2 -0
  145. package/esm2022/lib/specials/interfaces/esolve-special-image-record.interface.mjs +2 -0
  146. package/esm2022/lib/specials/interfaces/esolve-special-options.interface.mjs +2 -0
  147. package/esm2022/lib/specials/interfaces/esolve-special-record.interface.mjs +2 -0
  148. package/esm2022/lib/specials/interfaces/index.mjs +5 -0
  149. package/esm2022/lib/stock/classes/esolve-stock-item-base.model.mjs +2 -2
  150. package/esm2022/lib/stock/esolve-stock.service.mjs +3 -3
  151. package/esm2022/lib/suppliers/esolve-suppliers.service.mjs +3 -3
  152. package/esm2022/lib/tags/classes/esolve-tag.model.mjs +35 -0
  153. package/esm2022/lib/tags/classes/index.mjs +2 -0
  154. package/esm2022/lib/tags/esolve-tags.service.mjs +5 -5
  155. package/esm2022/lib/tags/index.mjs +4 -8
  156. package/esm2022/lib/tags/interfaces/esolve-tag-options.interface.mjs +2 -0
  157. package/esm2022/lib/tags/interfaces/esolve-tag-record.interface.mjs +2 -0
  158. package/esm2022/lib/tags/interfaces/index.mjs +3 -0
  159. package/esm2022/lib/tags/types/esolve-tag-phrase-match-mode.type.mjs +2 -0
  160. package/esm2022/lib/tags/types/index.mjs +2 -0
  161. package/esm2022/lib/topics/classes/esolve-topic.model.mjs +15 -0
  162. package/esm2022/lib/topics/classes/index.mjs +2 -0
  163. package/esm2022/lib/topics/esolve-topic.service.mjs +5 -5
  164. package/esm2022/lib/topics/index.mjs +3 -3
  165. package/esm2022/lib/topics/interfaces/esolve-topic-record.interface.mjs +2 -0
  166. package/esm2022/lib/topics/interfaces/index.mjs +2 -0
  167. package/esm2022/lib/transactions/classes/esolve-transaction.model.mjs +12 -1
  168. package/esm2022/lib/transactions/esolve-transactions.service.mjs +3 -3
  169. package/esm2022/lib/transactions/interfaces/esolve-transaction-record.interface.mjs +1 -1
  170. package/esm2022/lib/vouchers/esolve-vouchers.service.mjs +5 -5
  171. package/esm2022/lib/wishlist/esolve-wishlist.service.mjs +3 -3
  172. package/esm2022/media/lib/classes/esolve-heading.model.mjs +1 -1
  173. package/esm2022/media/lib/components/media-layout/esolve-media-layout.component.mjs +3 -3
  174. package/esm2022/media/lib/components/media-section/esolve-media-section.component.mjs +3 -3
  175. package/esm2022/media/lib/ng-esolve-connect-media.module.mjs +4 -4
  176. package/esm2022/media/lib/services/esolve-media-layout.service.mjs +3 -3
  177. package/esm2022/media/lib/services/esolve-media.service.mjs +3 -3
  178. package/esm2022/notifications/lib/services/esolve-notifications.service.mjs +3 -3
  179. package/esm2022/survey/lib/services/esolve-survey.service.mjs +3 -3
  180. package/fesm2022/esolve-ng-esolve-connect-media.mjs +16 -16
  181. package/fesm2022/esolve-ng-esolve-connect-media.mjs.map +1 -1
  182. package/fesm2022/esolve-ng-esolve-connect-notifications.mjs +3 -3
  183. package/fesm2022/esolve-ng-esolve-connect-survey.mjs +3 -3
  184. package/fesm2022/esolve-ng-esolve-connect.mjs +491 -354
  185. package/fesm2022/esolve-ng-esolve-connect.mjs.map +1 -1
  186. package/index.d.ts +4 -13
  187. package/lib/{shared/assets → assets/classes}/esolve-asset.model.d.ts +2 -2
  188. package/lib/{shared/assets → assets/classes}/esolve-linked-asset.model.d.ts +2 -2
  189. package/lib/assets/classes/index.d.ts +2 -0
  190. package/lib/{shared/assets → assets}/esolve-assets.service.d.ts +3 -4
  191. package/lib/assets/index.d.ts +4 -0
  192. package/lib/{shared/assets → assets/interfaces}/esolve-asset-options.interface.d.ts +1 -1
  193. package/lib/{shared/assets → assets/interfaces}/esolve-asset-record.interface.d.ts +1 -1
  194. package/lib/{shared/assets → assets/interfaces}/esolve-linked-asset-record.interface.d.ts +1 -1
  195. package/lib/{shared/assets → assets/interfaces}/index.d.ts +0 -5
  196. package/lib/assets/types/esolve-asset-list.type.d.ts +3 -0
  197. package/lib/assets/types/index.d.ts +2 -0
  198. package/lib/banners/{esolve-banner-image-hotspot.model.d.ts → classes/esolve-banner-image-hotspot.model.d.ts} +2 -2
  199. package/lib/banners/{esolve-banner-image.model.d.ts → classes/esolve-banner-image.model.d.ts} +1 -1
  200. package/lib/banners/{esolve-banner.model.d.ts → classes/esolve-banner.model.d.ts} +2 -3
  201. package/lib/banners/classes/index.d.ts +3 -0
  202. package/lib/banners/esolve-banner.service.d.ts +1 -1
  203. package/lib/banners/index.d.ts +3 -8
  204. package/lib/banners/{esolve-banner-image-hotspot-record.interface.d.ts → interfaces/esolve-banner-image-hotspot-record.interface.d.ts} +1 -1
  205. package/lib/banners/{esolve-banner-image-record.interface.d.ts → interfaces/esolve-banner-image-record.interface.d.ts} +1 -1
  206. package/lib/banners/{esolve-banner-image-set.interface.d.ts → interfaces/esolve-banner-image-set.interface.d.ts} +1 -1
  207. package/lib/banners/{esolve-banner-link.interface.d.ts → interfaces/esolve-banner-link.interface.d.ts} +1 -1
  208. package/lib/banners/{esolve-banner-record.interface.d.ts → interfaces/esolve-banner-record.interface.d.ts} +1 -1
  209. package/lib/banners/interfaces/index.d.ts +6 -0
  210. package/lib/banners/types/index.d.ts +2 -0
  211. package/lib/cart/classes/esolve-cart-alternative.model.d.ts +35 -0
  212. package/lib/cart/classes/esolve-cart-totals.model.d.ts +11 -2
  213. package/lib/cart/classes/index.d.ts +1 -0
  214. package/lib/cart/esolve-cart.service.d.ts +21 -1
  215. package/lib/cart/interfaces/esolve-cart-alternative-record.interface.d.ts +12 -0
  216. package/lib/cart/interfaces/esolve-cart-totals-record.interface.d.ts +1 -0
  217. package/lib/cart/interfaces/index.d.ts +1 -0
  218. package/lib/cart/types/esolve-cart-alternatives-map.type.d.ts +2 -0
  219. package/lib/cart/types/index.d.ts +1 -0
  220. package/lib/category-tree/{esolve-category-tree-item.model.d.ts → classes/esolve-category-tree-item.model.d.ts} +1 -2
  221. package/lib/category-tree/classes/index.d.ts +1 -0
  222. package/lib/category-tree/esolve-category-tree.service.d.ts +2 -2
  223. package/lib/category-tree/index.d.ts +2 -5
  224. package/lib/category-tree/interfaces/index.d.ts +5 -0
  225. package/lib/device/index.d.ts +1 -1
  226. package/lib/enquiry/{esolve-enquiry-result.model.d.ts → classes/esolve-enquiry-result.model.d.ts} +2 -2
  227. package/lib/enquiry/classes/index.d.ts +1 -0
  228. package/lib/enquiry/esolve-enquiry.service.d.ts +1 -1
  229. package/lib/enquiry/index.d.ts +2 -2
  230. package/lib/enquiry/types/esolve-enquiry-response.type.d.ts +2 -0
  231. package/lib/enquiry/types/index.d.ts +1 -0
  232. package/lib/geocoder/classes/index.d.ts +3 -0
  233. package/lib/{shared/geocoder → geocoder}/esolve-geocoder.service.d.ts +1 -1
  234. package/lib/geocoder/index.d.ts +3 -0
  235. package/lib/geocoder/interfaces/index.d.ts +2 -0
  236. package/lib/manufacturers/{esolve-manufacturer.model.d.ts → classes/esolve-manufacturer.model.d.ts} +3 -4
  237. package/lib/manufacturers/classes/index.d.ts +1 -0
  238. package/lib/manufacturers/esolve-manufacturers.service.d.ts +2 -2
  239. package/lib/manufacturers/index.d.ts +3 -4
  240. package/lib/manufacturers/interfaces/index.d.ts +2 -0
  241. package/lib/manufacturers/types/index.d.ts +1 -0
  242. package/lib/news/{esolve-news-article.model.d.ts → classes/esolve-news-article.model.d.ts} +6 -7
  243. package/lib/news/{esolve-news-group.model.d.ts → classes/esolve-news-group.model.d.ts} +1 -1
  244. package/lib/news/classes/index.d.ts +4 -0
  245. package/lib/news/esolve-news.service.d.ts +2 -4
  246. package/lib/news/index.d.ts +2 -8
  247. package/lib/news/{esolve-news-article-record.interface.d.ts → interfaces/esolve-news-article-record.interface.d.ts} +4 -4
  248. package/lib/news/interfaces/index.d.ts +4 -0
  249. package/lib/ranges/{esolve-range.model.d.ts → classes/esolve-range.model.d.ts} +2 -3
  250. package/lib/ranges/classes/index.d.ts +1 -0
  251. package/lib/ranges/esolve-ranges.service.d.ts +2 -2
  252. package/lib/ranges/index.d.ts +2 -3
  253. package/lib/ranges/interfaces/index.d.ts +2 -0
  254. package/lib/seo/classes/index.d.ts +1 -0
  255. package/lib/{shared/seo → seo}/esolve-seo.service.d.ts +1 -1
  256. package/lib/seo/index.d.ts +3 -0
  257. package/lib/{shared/seo → seo/interfaces}/esolve-seo-details.interface.d.ts +1 -1
  258. package/lib/seo/interfaces/index.d.ts +1 -0
  259. package/lib/shared/cookie/esolve-cookie.service.d.ts +1 -3
  260. package/lib/shared/cookie/index.d.ts +1 -0
  261. package/lib/shared/filters/types/index.d.ts +1 -0
  262. package/lib/shared/index.d.ts +10 -0
  263. package/lib/shared/response/{esolve-response-result.model.d.ts → classes/esolve-response-result.model.d.ts} +1 -2
  264. package/lib/shared/response/classes/index.d.ts +1 -0
  265. package/lib/shared/response/esolve-response-handler.service.d.ts +2 -3
  266. package/lib/shared/response/index.d.ts +2 -9
  267. package/lib/shared/response/interfaces/index.d.ts +8 -0
  268. package/lib/shipping/classes/esolve-shipping-method.model.d.ts +2 -1
  269. package/lib/specials/{esolve-special-image-collection.model.d.ts → classes/esolve-special-image-collection.model.d.ts} +1 -1
  270. package/lib/specials/{esolve-special-image.model.d.ts → classes/esolve-special-image.model.d.ts} +1 -1
  271. package/lib/specials/{esolve-special.model.d.ts → classes/esolve-special.model.d.ts} +4 -5
  272. package/lib/specials/classes/index.d.ts +4 -0
  273. package/lib/specials/esolve-specials.service.d.ts +2 -2
  274. package/lib/specials/index.d.ts +2 -8
  275. package/lib/specials/{esolve-special-record.interface.d.ts → interfaces/esolve-special-record.interface.d.ts} +1 -1
  276. package/lib/specials/interfaces/index.d.ts +4 -0
  277. package/lib/stock/classes/esolve-stock-item-base.model.d.ts +1 -1
  278. package/lib/tags/{esolve-tag.model.d.ts → classes/esolve-tag.model.d.ts} +1 -1
  279. package/lib/tags/classes/index.d.ts +1 -0
  280. package/lib/tags/esolve-tags.service.d.ts +2 -2
  281. package/lib/tags/index.d.ts +3 -4
  282. package/lib/tags/{esolve-tag-options.interface.d.ts → interfaces/esolve-tag-options.interface.d.ts} +1 -1
  283. package/lib/tags/interfaces/index.d.ts +2 -0
  284. package/lib/tags/types/index.d.ts +1 -0
  285. package/lib/topics/{esolve-topic.model.d.ts → classes/esolve-topic.model.d.ts} +2 -1
  286. package/lib/topics/classes/index.d.ts +1 -0
  287. package/lib/topics/esolve-topic.service.d.ts +1 -1
  288. package/lib/topics/index.d.ts +2 -2
  289. package/lib/topics/interfaces/index.d.ts +1 -0
  290. package/lib/transactions/classes/esolve-transaction.model.d.ts +3 -0
  291. package/lib/transactions/interfaces/esolve-transaction-record.interface.d.ts +2 -0
  292. package/package.json +1 -3
  293. package/esm2022/lib/banners/esolve-banner-image-hotspot-coords.interface.mjs +0 -2
  294. package/esm2022/lib/banners/esolve-banner-image-hotspot-record.interface.mjs +0 -2
  295. package/esm2022/lib/banners/esolve-banner-image-hotspot.model.mjs +0 -9
  296. package/esm2022/lib/banners/esolve-banner-image-record.interface.mjs +0 -2
  297. package/esm2022/lib/banners/esolve-banner-image-set.interface.mjs +0 -2
  298. package/esm2022/lib/banners/esolve-banner-image-type.type.mjs +0 -2
  299. package/esm2022/lib/banners/esolve-banner-image.model.mjs +0 -14
  300. package/esm2022/lib/banners/esolve-banner-link.interface.mjs +0 -2
  301. package/esm2022/lib/banners/esolve-banner-record.interface.mjs +0 -2
  302. package/esm2022/lib/banners/esolve-banner-type.type.mjs +0 -2
  303. package/esm2022/lib/banners/esolve-banner.model.mjs +0 -25
  304. package/esm2022/lib/category-tree/esolve-category-identifier.interface.mjs +0 -2
  305. package/esm2022/lib/category-tree/esolve-category-record.interface.mjs +0 -2
  306. package/esm2022/lib/category-tree/esolve-category-tree-item-options.interface.mjs +0 -2
  307. package/esm2022/lib/category-tree/esolve-category-tree-item-record.interface.mjs +0 -2
  308. package/esm2022/lib/category-tree/esolve-category-tree-item.model.mjs +0 -48
  309. package/esm2022/lib/category-tree/esolve-subcategory-record.interface.mjs +0 -2
  310. package/esm2022/lib/enquiry/esolve-enquiry-response.type.mjs +0 -2
  311. package/esm2022/lib/enquiry/esolve-enquiry-result.model.mjs +0 -9
  312. package/esm2022/lib/manufacturers/esolve-manufacturer-image-size.type.mjs +0 -2
  313. package/esm2022/lib/manufacturers/esolve-manufacturer-options.interface.mjs +0 -2
  314. package/esm2022/lib/manufacturers/esolve-manufacturer-record.interface.mjs +0 -2
  315. package/esm2022/lib/manufacturers/esolve-manufacturer.model.mjs +0 -61
  316. package/esm2022/lib/news/esolve-news-article-author-record.interface.mjs +0 -2
  317. package/esm2022/lib/news/esolve-news-article-author.model.mjs +0 -9
  318. package/esm2022/lib/news/esolve-news-article-list.model.mjs +0 -8
  319. package/esm2022/lib/news/esolve-news-article-options.interface.mjs +0 -2
  320. package/esm2022/lib/news/esolve-news-article-record.interface.mjs +0 -2
  321. package/esm2022/lib/news/esolve-news-article.model.mjs +0 -73
  322. package/esm2022/lib/news/esolve-news-group-record.interface.mjs +0 -2
  323. package/esm2022/lib/news/esolve-news-group.model.mjs +0 -25
  324. package/esm2022/lib/ranges/esolve-range-options.interface.mjs +0 -2
  325. package/esm2022/lib/ranges/esolve-range-record.interface.mjs +0 -2
  326. package/esm2022/lib/shared/assets/esolve-asset-list.type.mjs +0 -2
  327. package/esm2022/lib/shared/assets/esolve-asset-options.interface.mjs +0 -2
  328. package/esm2022/lib/shared/assets/esolve-asset-record.interface.mjs +0 -2
  329. package/esm2022/lib/shared/assets/esolve-asset-type.type.mjs +0 -2
  330. package/esm2022/lib/shared/assets/esolve-asset.model.mjs +0 -77
  331. package/esm2022/lib/shared/assets/esolve-assets.service.mjs +0 -129
  332. package/esm2022/lib/shared/assets/esolve-linked-asset-record.interface.mjs +0 -2
  333. package/esm2022/lib/shared/assets/esolve-linked-asset.model.mjs +0 -10
  334. package/esm2022/lib/shared/assets/esolve-media-asset-options.interface.mjs +0 -2
  335. package/esm2022/lib/shared/assets/index.mjs +0 -14
  336. package/esm2022/lib/shared/geocoder/esolve-geocode-address-record.interface.mjs +0 -2
  337. package/esm2022/lib/shared/geocoder/esolve-geocode-address-result.model.mjs +0 -12
  338. package/esm2022/lib/shared/geocoder/esolve-geocode-coords-result.model.mjs +0 -7
  339. package/esm2022/lib/shared/geocoder/esolve-geocode-result-record.interface.mjs +0 -2
  340. package/esm2022/lib/shared/geocoder/esolve-geocode-result.model.mjs +0 -11
  341. package/esm2022/lib/shared/geocoder/esolve-geocoder.service.mjs +0 -68
  342. package/esm2022/lib/shared/geocoder/index.mjs +0 -7
  343. package/esm2022/lib/shared/response/esolve-delete-response.interface.mjs +0 -2
  344. package/esm2022/lib/shared/response/esolve-delete-result.interface.mjs +0 -2
  345. package/esm2022/lib/shared/response/esolve-get-response.interface.mjs +0 -2
  346. package/esm2022/lib/shared/response/esolve-post-response-item.interface.mjs +0 -2
  347. package/esm2022/lib/shared/response/esolve-post-response-status.interface.mjs +0 -2
  348. package/esm2022/lib/shared/response/esolve-response-log-item.interface.mjs +0 -2
  349. package/esm2022/lib/shared/response/esolve-response-result.model.mjs +0 -9
  350. package/esm2022/lib/shared/response/esolve-response.interface.mjs +0 -2
  351. package/esm2022/lib/shared/response/esolve-set-response.interface.mjs +0 -2
  352. package/esm2022/lib/shared/seo/esolve-seo-details.interface.mjs +0 -2
  353. package/esm2022/lib/shared/seo/esolve-seo-info.model.mjs +0 -12
  354. package/esm2022/lib/shared/seo/esolve-seo.service.mjs +0 -122
  355. package/esm2022/lib/shared/seo/index.mjs +0 -4
  356. package/esm2022/lib/specials/esolve-special-dates.model.mjs +0 -7
  357. package/esm2022/lib/specials/esolve-special-image-collection-record.interface.mjs +0 -2
  358. package/esm2022/lib/specials/esolve-special-image-collection.model.mjs +0 -25
  359. package/esm2022/lib/specials/esolve-special-image-record.interface.mjs +0 -2
  360. package/esm2022/lib/specials/esolve-special-image.model.mjs +0 -9
  361. package/esm2022/lib/specials/esolve-special-options.interface.mjs +0 -2
  362. package/esm2022/lib/specials/esolve-special-record.interface.mjs +0 -2
  363. package/esm2022/lib/specials/esolve-special.model.mjs +0 -40
  364. package/esm2022/lib/tags/esolve-tag-options.interface.mjs +0 -2
  365. package/esm2022/lib/tags/esolve-tag-phrase-match-mode.type.mjs +0 -2
  366. package/esm2022/lib/tags/esolve-tag-record.interface.mjs +0 -2
  367. package/esm2022/lib/tags/esolve-tag.model.mjs +0 -35
  368. package/esm2022/lib/topics/esolve-topic-record.interface.mjs +0 -2
  369. package/esm2022/lib/topics/esolve-topic.model.mjs +0 -15
  370. package/lib/enquiry/esolve-enquiry-response.type.d.ts +0 -2
  371. package/lib/shared/assets/esolve-asset-list.type.d.ts +0 -3
  372. package/lib/shared/geocoder/index.d.ts +0 -6
  373. package/lib/shared/seo/index.d.ts +0 -3
  374. /package/lib/{shared/assets → assets/interfaces}/esolve-media-asset-options.interface.d.ts +0 -0
  375. /package/lib/{shared/assets → assets/types}/esolve-asset-type.type.d.ts +0 -0
  376. /package/lib/banners/{esolve-banner-image-hotspot-coords.interface.d.ts → interfaces/esolve-banner-image-hotspot-coords.interface.d.ts} +0 -0
  377. /package/lib/banners/{esolve-banner-image-type.type.d.ts → types/esolve-banner-image-type.type.d.ts} +0 -0
  378. /package/lib/banners/{esolve-banner-type.type.d.ts → types/esolve-banner-type.type.d.ts} +0 -0
  379. /package/lib/category-tree/{esolve-category-identifier.interface.d.ts → interfaces/esolve-category-identifier.interface.d.ts} +0 -0
  380. /package/lib/category-tree/{esolve-category-record.interface.d.ts → interfaces/esolve-category-record.interface.d.ts} +0 -0
  381. /package/lib/category-tree/{esolve-category-tree-item-options.interface.d.ts → interfaces/esolve-category-tree-item-options.interface.d.ts} +0 -0
  382. /package/lib/category-tree/{esolve-category-tree-item-record.interface.d.ts → interfaces/esolve-category-tree-item-record.interface.d.ts} +0 -0
  383. /package/lib/category-tree/{esolve-subcategory-record.interface.d.ts → interfaces/esolve-subcategory-record.interface.d.ts} +0 -0
  384. /package/lib/device/{esolve-device-service.d.ts → esolve-device.service.d.ts} +0 -0
  385. /package/lib/{shared/geocoder → geocoder/classes}/esolve-geocode-address-result.model.d.ts +0 -0
  386. /package/lib/{shared/geocoder → geocoder/classes}/esolve-geocode-coords-result.model.d.ts +0 -0
  387. /package/lib/{shared/geocoder → geocoder/classes}/esolve-geocode-result.model.d.ts +0 -0
  388. /package/lib/{shared/geocoder → geocoder/interfaces}/esolve-geocode-address-record.interface.d.ts +0 -0
  389. /package/lib/{shared/geocoder → geocoder/interfaces}/esolve-geocode-result-record.interface.d.ts +0 -0
  390. /package/lib/manufacturers/{esolve-manufacturer-options.interface.d.ts → interfaces/esolve-manufacturer-options.interface.d.ts} +0 -0
  391. /package/lib/manufacturers/{esolve-manufacturer-record.interface.d.ts → interfaces/esolve-manufacturer-record.interface.d.ts} +0 -0
  392. /package/lib/manufacturers/{esolve-manufacturer-image-size.type.d.ts → types/esolve-manufacturer-image-size.type.d.ts} +0 -0
  393. /package/lib/news/{esolve-news-article-author.model.d.ts → classes/esolve-news-article-author.model.d.ts} +0 -0
  394. /package/lib/news/{esolve-news-article-list.model.d.ts → classes/esolve-news-article-list.model.d.ts} +0 -0
  395. /package/lib/news/{esolve-news-article-author-record.interface.d.ts → interfaces/esolve-news-article-author-record.interface.d.ts} +0 -0
  396. /package/lib/news/{esolve-news-article-options.interface.d.ts → interfaces/esolve-news-article-options.interface.d.ts} +0 -0
  397. /package/lib/news/{esolve-news-group-record.interface.d.ts → interfaces/esolve-news-group-record.interface.d.ts} +0 -0
  398. /package/lib/ranges/{esolve-range-options.interface.d.ts → interfaces/esolve-range-options.interface.d.ts} +0 -0
  399. /package/lib/ranges/{esolve-range-record.interface.d.ts → interfaces/esolve-range-record.interface.d.ts} +0 -0
  400. /package/lib/{shared/seo → seo/classes}/esolve-seo-info.model.d.ts +0 -0
  401. /package/lib/shared/response/{esolve-delete-response.interface.d.ts → interfaces/esolve-delete-response.interface.d.ts} +0 -0
  402. /package/lib/shared/response/{esolve-delete-result.interface.d.ts → interfaces/esolve-delete-result.interface.d.ts} +0 -0
  403. /package/lib/shared/response/{esolve-get-response.interface.d.ts → interfaces/esolve-get-response.interface.d.ts} +0 -0
  404. /package/lib/shared/response/{esolve-post-response-item.interface.d.ts → interfaces/esolve-post-response-item.interface.d.ts} +0 -0
  405. /package/lib/shared/response/{esolve-post-response-status.interface.d.ts → interfaces/esolve-post-response-status.interface.d.ts} +0 -0
  406. /package/lib/shared/response/{esolve-response-log-item.interface.d.ts → interfaces/esolve-response-log-item.interface.d.ts} +0 -0
  407. /package/lib/shared/response/{esolve-response.interface.d.ts → interfaces/esolve-response.interface.d.ts} +0 -0
  408. /package/lib/shared/response/{esolve-set-response.interface.d.ts → interfaces/esolve-set-response.interface.d.ts} +0 -0
  409. /package/lib/specials/{esolve-special-dates.model.d.ts → classes/esolve-special-dates.model.d.ts} +0 -0
  410. /package/lib/specials/{esolve-special-image-collection-record.interface.d.ts → interfaces/esolve-special-image-collection-record.interface.d.ts} +0 -0
  411. /package/lib/specials/{esolve-special-image-record.interface.d.ts → interfaces/esolve-special-image-record.interface.d.ts} +0 -0
  412. /package/lib/specials/{esolve-special-options.interface.d.ts → interfaces/esolve-special-options.interface.d.ts} +0 -0
  413. /package/lib/tags/{esolve-tag-record.interface.d.ts → interfaces/esolve-tag-record.interface.d.ts} +0 -0
  414. /package/lib/tags/{esolve-tag-phrase-match-mode.type.d.ts → types/esolve-tag-phrase-match-mode.type.d.ts} +0 -0
  415. /package/lib/topics/{esolve-topic-record.interface.d.ts → interfaces/esolve-topic-record.interface.d.ts} +0 -0
@@ -3,11 +3,12 @@ import { HttpClient, HttpParams, } from '@angular/common/http';
3
3
  import { iif, of } from 'rxjs';
4
4
  import { catchError, map, switchMap } from 'rxjs/operators';
5
5
  import { EsolveConfigService } from '../core';
6
- import { EsolveErrorHandlerService } from '../shared/errors/esolve-error-handler.service';
7
- import { EsolveResponseHandlerService, } from '../shared/response';
6
+ import { EsolveErrorHandlerService } from '../shared/errors';
7
+ import { EsolveResponseHandlerService, EsolveResponseResult, } from '../shared/response';
8
+ import { EsolveResult } from '../shared/esolve-result.model';
8
9
  import { EsolveCouponsService } from '../coupons';
9
10
  import { EsolveVouchersService } from '../vouchers';
10
- import { EsolveCartItem, EsolveCartTotals, EsolveCheckoutResult, EsolveEmptyCartResult, EsolveTransactionAnalyticsData, } from './classes';
11
+ import { EsolveCartAlternative, EsolveCartItem, EsolveCartTotals, EsolveCheckoutResult, EsolveEmptyCartResult, EsolveTransactionAnalyticsData, } from './classes';
11
12
  import * as i0 from "@angular/core";
12
13
  export class EsolveCartService {
13
14
  constructor() {
@@ -201,6 +202,57 @@ export class EsolveCartService {
201
202
  }));
202
203
  }));
203
204
  }
205
+ getCartAlternatives() {
206
+ return this.http
207
+ .get(`${this.config.api_url}/get-cart-alternatives.php`)
208
+ .pipe(map((response) => {
209
+ if (response.records === undefined) {
210
+ throw response;
211
+ }
212
+ return this.processCartAlternatives(response.records);
213
+ }));
214
+ }
215
+ /**
216
+ * Set an alternative stock item to current cart item
217
+ *
218
+ * @param id It is used to identify the specific cart item for which the alternative is being set
219
+ * @param alternative The alternative value that you want to set for a specific cart item.
220
+ * @returns an Observable of type EsolveResponseResult.
221
+ */
222
+ setCartAlternative(id, alternative) {
223
+ return this.http
224
+ .post(`${this.config.api_url}/set-cart-alternatives.php`, {
225
+ cart_id: id,
226
+ alternative: alternative,
227
+ }, {
228
+ headers: {
229
+ 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',
230
+ },
231
+ responseType: 'json',
232
+ observe: 'body',
233
+ })
234
+ .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveResponseResult(response))), catchError((errorRes) => {
235
+ return this.errorHandler.handleHttpPostError('set-cart-alternatives', errorRes);
236
+ }));
237
+ }
238
+ deleteCartAlternative(id) {
239
+ return this.http
240
+ .delete(`${this.config.api_url}/delete-cart-alternative.php`, {
241
+ params: { id },
242
+ responseType: 'json',
243
+ observe: 'body',
244
+ })
245
+ .pipe(map((http_response) => {
246
+ if (http_response.result === undefined ||
247
+ http_response.result === null ||
248
+ http_response.result.status !== 'success') {
249
+ throw http_response;
250
+ }
251
+ return new EsolveResult(http_response.result.status, http_response.result.code, http_response.result.message);
252
+ }), catchError((errorRes) => {
253
+ return this.errorHandler.handleHttpDeleteError('delete-cart-alternative', errorRes);
254
+ }));
255
+ }
204
256
  /**
205
257
  * Processes the eSolve tree records
206
258
  *
@@ -216,6 +268,20 @@ export class EsolveCartService {
216
268
  }
217
269
  return cart_items;
218
270
  }
271
+ /**
272
+ * Processes the eSolve cart alternatives records
273
+ *
274
+ * @param records Records to process
275
+ *
276
+ * @returns A `Map` of processed cart alternatives
277
+ */
278
+ processCartAlternatives(records) {
279
+ const alternatives = new Map();
280
+ for (const record of records) {
281
+ alternatives.set(record.item_id, new EsolveCartAlternative(record));
282
+ }
283
+ return alternatives;
284
+ }
219
285
  /**
220
286
  * Processes the eSolve cart totals
221
287
  *
@@ -223,16 +289,16 @@ export class EsolveCartService {
223
289
  * @returns Processed cart totals
224
290
  */
225
291
  processCartTotals(record) {
226
- const cart_totals = new EsolveCartTotals(+record.records, +record.items, +record.total, +record.vat, +record.discount, +record.vouchers);
292
+ const cart_totals = new EsolveCartTotals(+record.records, +record.items, +record.total, +record.vat, +record.discount, +record.vouchers, +record.allowance);
227
293
  return cart_totals;
228
294
  }
229
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: EsolveCartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
230
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: EsolveCartService, providedIn: 'root' }); }
295
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: EsolveCartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
296
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: EsolveCartService, providedIn: 'root' }); }
231
297
  }
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: EsolveCartService, decorators: [{
298
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: EsolveCartService, decorators: [{
233
299
  type: Injectable,
234
300
  args: [{
235
301
  providedIn: 'root',
236
302
  }]
237
303
  }] });
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXJ0L2Vzb2x2ZS1jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUNILFVBQVUsRUFFVixVQUFVLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDMUYsT0FBTyxFQUVILDRCQUE0QixHQUUvQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEQsT0FBTyxFQUNILGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDakMsTUFBTSxXQUFXLENBQUM7O0FBc0JuQixNQUFNLE9BQU8saUJBQWlCO0lBSDlCO1FBSXFCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDakQsb0JBQWUsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENB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LEVBQUU7Z0JBQzdDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FDeEMsY0FBYyxFQUNkLFFBQVEsQ0FDWCxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNWLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxXQUFXLENBQUMsaUJBQXlDO1FBQ3pELE1BQU0sVUFBVSxHQUFxQixFQUFFLENBQUM7UUFFeEMsSUFBSSxpQkFBaUIsRUFBRTtZQUNuQixLQUFLLE1BQU0sZ0JBQWdCLElBQUksaUJBQWlCLEVBQUU7Z0JBQzlDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO2FBQ3pEO1NBQ0o7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxpQkFBaUIsQ0FDckIsTUFBOEI7UUFFOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FDcEMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUNmLENBQUMsTUFBTSxDQUFDLEtBQUssRUFDYixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ2IsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUNYLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFDaEIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUNuQixDQUFDO1FBRUYsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQzs4R0EzVlEsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGZCxNQUFNOzsyRkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgSHR0cENsaWVudCxcbiAgICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgICBIdHRwUGFyYW1zLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IGlpZiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBFc29sdmVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycy9lc29sdmUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgRXNvbHZlR2V0UmVzcG9uc2UsXG4gICAgRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSxcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcbn0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcblxuaW1wb3J0IHsgRXNvbHZlQ291cG9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb3Vwb25zJztcbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBFc29sdmVWb3VjaGVyc1NlcnZpY2UgfSBmcm9tICcuLi92b3VjaGVycyc7XG5cbmltcG9ydCB7XG4gICAgRXNvbHZlQ2FydEl0ZW0sXG4gICAgRXNvbHZlQ2FydFRvdGFscyxcbiAgICBFc29sdmVDaGVja291dFJlc3VsdCxcbiAgICBFc29sdmVFbXB0eUNhcnRSZXN1bHQsXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhLFxufSBmcm9tICcuL2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBFc29sdmVBZGRpdGlvbmFsV2hlcmUsXG4gICAgRXNvbHZlQ2FydEl0ZW1SZWNvcmQsXG4gICAgRXNvbHZlQ2FydEl0ZW1SZXNwb25zZSxcbiAgICBFc29sdmVDYXJ0U2V0SXRlbSxcbiAgICBFc29sdmVDYXJ0VG90YWxzUmVjb3JkLFxuICAgIEVzb2x2ZUNoZWNrb3V0Qm9keSxcbiAgICBFc29sdmVDaGVja291dFJlc3BvbnNlLFxuICAgIEVzb2x2ZVRpbWVTbG90Q2hlY2tvdXQsXG4gICAgRXNvbHZlVHJhY2tpbmdDb2RlLFxuICAgIEVzb2x2ZVRyYW5zYWN0aW9uQW5hbHl0aWNzRGF0YVJlY29yZCxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gICAgRXNvbHZlQ2FydCxcbiAgICBFc29sdmVDYXJ0U2V0QWN0aW9uLFxuICAgIEVzb2x2ZUNhcnRFbXB0eVJlc3BvbnNlLFxufSBmcm9tICcuL3R5cGVzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRXNvbHZlQ2FydFNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KEVzb2x2ZUNvbmZpZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9ySGFuZGxlciA9IGluamVjdChFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNlSGFuZGxlciA9IGluamVjdChFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdXBvbnMgPSBpbmplY3QoRXNvbHZlQ291cG9uc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdm91Y2hlcnMgPSBpbmplY3QoRXNvbHZlVm91Y2hlcnNTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgX2NhY2hlZF90cmFja2luZyA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgY2FydFxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2YgY2FydCBpdGVtc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXJ0KCk6IE9ic2VydmFibGU8RXNvbHZlQ2FydD4ge1xuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcblxuICAgICAgICBjb25zdCBjb3Vwb25zID0gdGhpcy5jb3Vwb25zLmdldEFwcGxpZWRDb3Vwb25LZXlzKCk7XG5cbiAgICAgICAgaWYgKGNvdXBvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnY291cG9ucycsIGNvdXBvbnMuam9pbignLCcpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQ2FydEl0ZW1SZWNvcmRbXT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jYXJ0LnBocGAsXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydChyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgY2FydCBieSBwcmVmb3JtaW5nIHZhcmlvdXMgYWN0aW9ucywgc3VjaCBhcyBhZGRpbmcsIGVkaXRpbmcgb3IgcmVtb3ZpbmcgaXRlbXMgZnJvbSB0aGUgY2FydC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtcyBBbiBhcnJheSBvZiBvcHRpb25zIHRvIHVwZGF0ZSB0aGUgY2FydFxuICAgICAqIEBwYXJhbSBhY3Rpb24gVGhlIGRlZmF1bHQgYWN0aW9uIHRvIHByZWZvcm1cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIHJlc3BvbnNlcyB0aGF0IGdpdmVzIGZlZWRiYWNrIG9uIHRoZSByZXF1ZXN0ZWQgY2hhbmdlc1xuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDYXJ0KFxuICAgICAgICBpdGVtczogRXNvbHZlQ2FydFNldEl0ZW1bXSxcbiAgICAgICAgYWN0aW9uOiBFc29sdmVDYXJ0U2V0QWN0aW9uID0gJ2FkZCcsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0SXRlbVJlc3BvbnNlW10+IHtcbiAgICAgICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgICAgIGl0ZW1zLFxuICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2U+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2FydC1pdGVtLnBocGAsXG4gICAgICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZXNwb25zZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVzcG9uc2VzO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Q2FydEVtcHR5KFxuICAgICAgICB0eXBlOiBFc29sdmVUcmFuc2FjdGlvblR5cGUsXG4gICAgICAgIGFkZGl0aW9uYWxfd2hlcmU6IEVzb2x2ZUFkZGl0aW9uYWxXaGVyZVtdLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlRW1wdHlDYXJ0UmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgYWRkaXRpb25hbF93aGVyZSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDYXJ0RW1wdHlSZXNwb25zZT4+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jYXJ0LWVtcHR5LnBocGAsXG4gICAgICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZF90cmFja2luZyA9IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUVtcHR5Q2FydFJlc3VsdChyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NldC1jYXJ0LWVtcHR5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yUmVzLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIHRvdGFscyBvZiB0aGUgY2FydCB3aXRoIGFsbCB0aGUgdG90YWxzIGNhbGN1bGF0ZWRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGNhcnQgdG90YWxzXG4gICAgICovXG4gICAgcHVibGljIGdldFRvdGFscyhcbiAgICAgICAgdHlwZT86IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnRUb3RhbHM+IHtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiB0eXBlID8/ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgdm91Y2hlcnMgPSB0aGlzLnZvdWNoZXJzLmdldEFwcGxpZWRWb3VjaGVyS2V5cygpO1xuXG4gICAgICAgIGlmICh2b3VjaGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd2b3VjaGVycycsIHZvdWNoZXJzLmpvaW4oJywnKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQ+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2FydC10b3RhbHMucGhwYCxcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocmVzcG9uc2UucmVjb3JkcylcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDYXJ0VG90YWxzKHJlc3BvbnNlLnJlY29yZHMpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYSB0cmFja2luZyBjb2RlIGZvciB0aGUgY2FydFxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIGNhcnQgdHJhY2tpbmcgY29kZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUcmFja2luZ0NvZGUoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIGlpZihcbiAgICAgICAgICAgICgpID0+IHRoaXMuX2NhY2hlZF90cmFja2luZyA+IDAsXG4gICAgICAgICAgICBvZih0aGlzLl9jYWNoZWRfdHJhY2tpbmcpLFxuICAgICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVUcmFja2luZ0NvZGU+PihcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWNoZWNrb3V0LXRyYWNraW5nLnBocGAsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWNvcmRzKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZF90cmFja2luZyA9IHJlc3BvbnNlLnJlY29yZHMudHJhY2tpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZWNvcmRzLnRyYWNraW5nO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgZGF0YSBvZiB0aGUgdHJhbnNhY3Rpb24gZm9yIHRoZSBhbmFseXRpY3NcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0cmFuc2FjdGlvbl9pZCBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdXNlZCBpbiBlU29sdmVcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSBhbmFseXRpY3MgZGF0YVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGE8VCA9IGFueT4oXG4gICAgICAgIHRyYW5zYWN0aW9uX2lkOiBudW1iZXIsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGE8VD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGFSZWNvcmQ8VD4+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtdHJhbnNhY3Rpb24tYW5hbHl0aWNzLWRhdGEucGhwYCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faWQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLnJlY29yZHMpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVRyYW5zYWN0aW9uQW5hbHl0aWNzRGF0YTxUPihcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYXRlcyBjaGVja291dCBvZiB0aGUgY2FydCBpdGVtc1xuICAgICAqXG4gICAgICogQHBhcmFtIHR5cGUgVGhlIGNhcnQgdHlwZSB0aGF0IG5lZWRzIHRvIGJlIGNoZWNrZWQgb3V0XG4gICAgICogQHBhcmFtIGFkZHJlc3Nlc19pZCBUaGUgSUQgb2YgdGhlIGRlbGl2ZXJ5IGFkZHJlc3NcbiAgICAgKiBAcGFyYW0gc2hpcHBpbmdfaWQgVGhlIElEIG9mIHRoZSBzaGlwcGluZyBtZXRob2RcbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RfaWQgVGhlIElEIG9mIHRoZSBzZWxlY3RlZCBwYXltZW50IG1ldGhvZFxuICAgICAqIEBwYXJhbSBsb2NhdGlvbl9pZCBUaGUgSUQgb2YgdGhlIHNlbGVjdGVkIGJyYW5jaCBmcm9tIHdpdGggc2hpcHBpbmcgbmVlZHMgdG8gYmUgY2FsY3VsYXRlZFxuICAgICAqIEBwYXJhbSBjb21tZW50cyBBZGRpdGlvbmFsIGNvbW1lbnRzIG9uIHRoZSBjYXJ0XG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgdHJhbnNhY3Rpb24gSURcbiAgICAgKi9cbiAgICBwdWJsaWMgY2hlY2tvdXQoXG4gICAgICAgIHR5cGU6IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSxcbiAgICAgICAgYWRkcmVzc2VzX2lkOiBudW1iZXIsXG4gICAgICAgIHNoaXBwaW5nX2lkOiBudW1iZXIsXG4gICAgICAgIHBheW1lbnRfbWV0aG9kX2lkID0gMCxcbiAgICAgICAgbG9jYXRpb25faWQgPSAwLFxuICAgICAgICBjb21tZW50cyA9ICcnLFxuICAgICAgICB0aW1lX3Nsb3Q/OiBFc29sdmVUaW1lU2xvdENoZWNrb3V0LFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQ2hlY2tvdXRSZXN1bHQ+IHtcbiAgICAgICAgY29uc3QgYm9keTogRXNvbHZlQ2hlY2tvdXRCb2R5ID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGFkZHJlc3Nlc19pZCxcbiAgICAgICAgICAgIHNoaXBwaW5nX2lkLFxuICAgICAgICAgICAgcGF5bWVudF9tZXRob2RfaWQsXG4gICAgICAgICAgICBsb2NhdGlvbl9pZCxcbiAgICAgICAgICAgIGNvbW1lbnRzLFxuICAgICAgICAgICAgdHJhY2tpbmc6IDAsXG4gICAgICAgICAgICB0aW1lX3Nsb3QsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhY2tpbmdDb2RlKCkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodHJhY2tpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHJhY2tpbmcgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyB0cmFja2luZztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBib2R5LnRyYWNraW5nID0gdHJhY2tpbmc7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB2b3VjaGVyX2tleXMgPSB0aGlzLnZvdWNoZXJzLmdldEFwcGxpZWRWb3VjaGVyS2V5cygpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZvdWNoZXJfa2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkudm91Y2hlcnMgPSB2b3VjaGVyX2tleXM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDaGVja291dFJlc3BvbnNlPj4oXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2hlY2tvdXQucGhwYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3Vwb25zLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZvdWNoZXJzLnJlc2V0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlQ2hlY2tvdXRSZXN1bHQocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZXQtY2hlY2tvdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSB0cmVlIHJlY29yZHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0X2l0ZW1fcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgY2FydCBpdGVtc1xuICAgICAqL1xuICAgIHByaXZhdGUgcHJvY2Vzc0NhcnQoY2FydF9pdGVtX3JlY29yZHM6IEVzb2x2ZUNhcnRJdGVtUmVjb3JkW10pOiBFc29sdmVDYXJ0IHtcbiAgICAgICAgY29uc3QgY2FydF9pdGVtczogRXNvbHZlQ2FydEl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIGlmIChjYXJ0X2l0ZW1fcmVjb3Jkcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJ0X2l0ZW1fcmVjb3JkIG9mIGNhcnRfaXRlbV9yZWNvcmRzKSB7XG4gICAgICAgICAgICAgICAgY2FydF9pdGVtcy5wdXNoKG5ldyBFc29sdmVDYXJ0SXRlbShjYXJ0X2l0ZW1fcmVjb3JkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FydF9pdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBjYXJ0IHRvdGFsc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlY29yZCBEYXRhIHRvIHByb2Nlc3NcbiAgICAgKiBAcmV0dXJucyBQcm9jZXNzZWQgY2FydCB0b3RhbHNcbiAgICAgKi9cbiAgICBwcml2YXRlIHByb2Nlc3NDYXJ0VG90YWxzKFxuICAgICAgICByZWNvcmQ6IEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQsXG4gICAgKTogRXNvbHZlQ2FydFRvdGFscyB7XG4gICAgICAgIGNvbnN0IGNhcnRfdG90YWxzID0gbmV3IEVzb2x2ZUNhcnRUb3RhbHMoXG4gICAgICAgICAgICArcmVjb3JkLnJlY29yZHMsXG4gICAgICAgICAgICArcmVjb3JkLml0ZW1zLFxuICAgICAgICAgICAgK3JlY29yZC50b3RhbCxcbiAgICAgICAgICAgICtyZWNvcmQudmF0LFxuICAgICAgICAgICAgK3JlY29yZC5kaXNjb3VudCxcbiAgICAgICAgICAgICtyZWNvcmQudm91Y2hlcnMsXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNhcnRfdG90YWxzO1xuICAgIH1cbn1cbiJdfQ==
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXJ0L2Vzb2x2ZS1jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUNILFVBQVUsRUFFVixVQUFVLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0QsT0FBTyxFQUlILDRCQUE0QixFQUM1QixvQkFBb0IsR0FFdkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWxELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRCxPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDakMsTUFBTSxXQUFXLENBQUM7O0FBd0JuQixNQUFNLE9BQU8saUJBQWlCO0lBSDlCO1FBSXFCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLGlCQUFZ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cUIsRUFBRSxDQUFDO1FBRXhDLElBQUksaUJBQWlCLEVBQUU7WUFDbkIsS0FBSyxNQUFNLGdCQUFnQixJQUFJLGlCQUFpQixFQUFFO2dCQUM5QyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQzthQUN6RDtTQUNKO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLHVCQUF1QixDQUMzQixPQUFzQztRQUV0QyxNQUFNLFlBQVksR0FBOEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUUxRCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtZQUMxQixZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssaUJBQWlCLENBQ3JCLE1BQThCO1FBRTlCLE1BQU0sV0FBVyxHQUFHLElBQUksZ0JBQWdCLENBQ3BDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFDZixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ2IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUNiLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFDWCxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQ2hCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFDaEIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUNwQixDQUFDO1FBRUYsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQzs4R0E3Y1EsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGZCxNQUFNOzsyRkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgSHR0cENsaWVudCxcbiAgICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgICBIdHRwUGFyYW1zLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IGlpZiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBFc29sdmVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycyc7XG5pbXBvcnQge1xuICAgIEVzb2x2ZURlbGV0ZVJlc3BvbnNlLFxuICAgIEVzb2x2ZUdldFJlc3BvbnNlLFxuICAgIEVzb2x2ZVBvc3RSZXNwb25zZUl0ZW0sXG4gICAgRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSxcbiAgICBFc29sdmVSZXNwb25zZVJlc3VsdCxcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcbn0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcbmltcG9ydCB7IEVzb2x2ZVJlc3VsdCB9IGZyb20gJy4uL3NoYXJlZC9lc29sdmUtcmVzdWx0Lm1vZGVsJztcblxuaW1wb3J0IHsgRXNvbHZlQ291cG9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb3Vwb25zJztcbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBFc29sdmVWb3VjaGVyc1NlcnZpY2UgfSBmcm9tICcuLi92b3VjaGVycyc7XG5cbmltcG9ydCB7XG4gICAgRXNvbHZlQ2FydEFsdGVybmF0aXZlLFxuICAgIEVzb2x2ZUNhcnRJdGVtLFxuICAgIEVzb2x2ZUNhcnRUb3RhbHMsXG4gICAgRXNvbHZlQ2hlY2tvdXRSZXN1bHQsXG4gICAgRXNvbHZlRW1wdHlDYXJ0UmVzdWx0LFxuICAgIEVzb2x2ZVRyYW5zYWN0aW9uQW5hbHl0aWNzRGF0YSxcbn0gZnJvbSAnLi9jbGFzc2VzJztcbmltcG9ydCB7XG4gICAgRXNvbHZlQWRkaXRpb25hbFdoZXJlLFxuICAgIEVzb2x2ZUNhcnRBbHRlcm5hdGl2ZVJlY29yZCxcbiAgICBFc29sdmVDYXJ0SXRlbVJlY29yZCxcbiAgICBFc29sdmVDYXJ0SXRlbVJlc3BvbnNlLFxuICAgIEVzb2x2ZUNhcnRTZXRJdGVtLFxuICAgIEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQsXG4gICAgRXNvbHZlQ2hlY2tvdXRCb2R5LFxuICAgIEVzb2x2ZUNoZWNrb3V0UmVzcG9uc2UsXG4gICAgRXNvbHZlVGltZVNsb3RDaGVja291dCxcbiAgICBFc29sdmVUcmFja2luZ0NvZGUsXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhUmVjb3JkLFxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgICBFc29sdmVDYXJ0LFxuICAgIEVzb2x2ZUNhcnRTZXRBY3Rpb24sXG4gICAgRXNvbHZlQ2FydEVtcHR5UmVzcG9uc2UsXG4gICAgRXNvbHZlQ2FydEFsdGVybmF0aXZlc01hcCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVzb2x2ZUNhcnRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChFc29sdmVDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvckhhbmRsZXIgPSBpbmplY3QoRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNwb25zZUhhbmRsZXIgPSBpbmplY3QoRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3Vwb25zID0gaW5qZWN0KEVzb2x2ZUNvdXBvbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZvdWNoZXJzID0gaW5qZWN0KEVzb2x2ZVZvdWNoZXJzU2VydmljZSk7XG5cbiAgICBwcml2YXRlIF9jYWNoZWRfdHJhY2tpbmcgPSAwO1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGNhcnRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIGNhcnQgaXRlbXNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2FydCgpOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnQ+IHtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG5cbiAgICAgICAgY29uc3QgY291cG9ucyA9IHRoaXMuY291cG9ucy5nZXRBcHBsaWVkQ291cG9uS2V5cygpO1xuXG4gICAgICAgIGlmIChjb3Vwb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NvdXBvbnMnLCBjb3Vwb25zLmpvaW4oJywnKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNhcnRJdGVtUmVjb3JkW10+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2FydC5waHBgLFxuICAgICAgICAgICAgICAgIHsgcGFyYW1zIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NhcnQocmVzcG9uc2UucmVjb3Jkcyk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGNhcnQgYnkgcHJlZm9ybWluZyB2YXJpb3VzIGFjdGlvbnMsIHN1Y2ggYXMgYWRkaW5nLCBlZGl0aW5nIG9yIHJlbW92aW5nIGl0ZW1zIGZyb20gdGhlIGNhcnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2Ygb3B0aW9ucyB0byB1cGRhdGUgdGhlIGNhcnRcbiAgICAgKiBAcGFyYW0gYWN0aW9uIFRoZSBkZWZhdWx0IGFjdGlvbiB0byBwcmVmb3JtXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiByZXNwb25zZXMgdGhhdCBnaXZlcyBmZWVkYmFjayBvbiB0aGUgcmVxdWVzdGVkIGNoYW5nZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0Q2FydChcbiAgICAgICAgaXRlbXM6IEVzb2x2ZUNhcnRTZXRJdGVtW10sXG4gICAgICAgIGFjdGlvbjogRXNvbHZlQ2FydFNldEFjdGlvbiA9ICdhZGQnLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQ2FydEl0ZW1SZXNwb25zZVtdPiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICBpdGVtcyxcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDYXJ0SXRlbVJlc3BvbnNlPj4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LWNhcnQtaXRlbS5waHBgLFxuICAgICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVzcG9uc2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3BvbnNlcztcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENhcnRFbXB0eShcbiAgICAgICAgdHlwZTogRXNvbHZlVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgICBhZGRpdGlvbmFsX3doZXJlOiBFc29sdmVBZGRpdGlvbmFsV2hlcmVbXSxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUVtcHR5Q2FydFJlc3VsdD4ge1xuICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxfd2hlcmUsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQ2FydEVtcHR5UmVzcG9uc2U+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2FydC1lbXB0eS5waHBgLFxuICAgICAgICAgICAgICAgIGJvZHksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVFbXB0eUNhcnRSZXN1bHQocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZXQtY2FydC1lbXB0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvclJlcyxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSB0b3RhbHMgb2YgdGhlIGNhcnQgd2l0aCBhbGwgdGhlIHRvdGFscyBjYWxjdWxhdGVkXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBjYXJ0IHRvdGFsc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb3RhbHMoXG4gICAgICAgIHR5cGU/OiBFc29sdmVUcmFuc2FjdGlvblR5cGUsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0VG90YWxzPiB7XG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgdHlwZTogdHlwZSA/PyAnJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHZvdWNoZXJzID0gdGhpcy52b3VjaGVycy5nZXRBcHBsaWVkVm91Y2hlcktleXMoKTtcblxuICAgICAgICBpZiAodm91Y2hlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndm91Y2hlcnMnLCB2b3VjaGVycy5qb2luKCcsJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDYXJ0VG90YWxzUmVjb3JkPj4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWNhcnQtdG90YWxzLnBocGAsXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlLnJlY29yZHMpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydFRvdGFscyhyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIGEgdHJhY2tpbmcgY29kZSBmb3IgdGhlIGNhcnRcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSBjYXJ0IHRyYWNraW5nIGNvZGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VHJhY2tpbmdDb2RlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiBpaWYoXG4gICAgICAgICAgICAoKSA9PiB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPiAwLFxuICAgICAgICAgICAgb2YodGhpcy5fY2FjaGVkX3RyYWNraW5nKSxcbiAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVHJhY2tpbmdDb2RlPj4oXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jaGVja291dC10cmFja2luZy5waHBgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocmVzcG9uc2UucmVjb3JkcylcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSByZXNwb25zZS5yZWNvcmRzLnRyYWNraW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVjb3Jkcy50cmFja2luZztcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGRhdGEgb2YgdGhlIHRyYW5zYWN0aW9uIGZvciB0aGUgYW5hbHl0aWNzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHJhbnNhY3Rpb25faWQgSUQgb2YgdGhlIHRyYW5zYWN0aW9uIHVzZWQgaW4gZVNvbHZlXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgYW5hbHl0aWNzIGRhdGFcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhPFQgPSBhbnk+KFxuICAgICAgICB0cmFuc2FjdGlvbl9pZDogbnVtYmVyLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhPFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhUmVjb3JkPFQ+Pj4oXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXRyYW5zYWN0aW9uLWFuYWx5dGljcy1kYXRhLnBocGAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uX2lkLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZS5yZWNvcmRzKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGE8VD4oXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZXMgY2hlY2tvdXQgb2YgdGhlIGNhcnQgaXRlbXNcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlIFRoZSBjYXJ0IHR5cGUgdGhhdCBuZWVkcyB0byBiZSBjaGVja2VkIG91dFxuICAgICAqIEBwYXJhbSBhZGRyZXNzZXNfaWQgVGhlIElEIG9mIHRoZSBkZWxpdmVyeSBhZGRyZXNzXG4gICAgICogQHBhcmFtIHNoaXBwaW5nX2lkIFRoZSBJRCBvZiB0aGUgc2hpcHBpbmcgbWV0aG9kXG4gICAgICogQHBhcmFtIHBheW1lbnRfbWV0aG9kX2lkIFRoZSBJRCBvZiB0aGUgc2VsZWN0ZWQgcGF5bWVudCBtZXRob2RcbiAgICAgKiBAcGFyYW0gbG9jYXRpb25faWQgVGhlIElEIG9mIHRoZSBzZWxlY3RlZCBicmFuY2ggZnJvbSB3aXRoIHNoaXBwaW5nIG5lZWRzIHRvIGJlIGNhbGN1bGF0ZWRcbiAgICAgKiBAcGFyYW0gY29tbWVudHMgQWRkaXRpb25hbCBjb21tZW50cyBvbiB0aGUgY2FydFxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHRyYW5zYWN0aW9uIElEXG4gICAgICovXG4gICAgcHVibGljIGNoZWNrb3V0KFxuICAgICAgICB0eXBlOiBFc29sdmVUcmFuc2FjdGlvblR5cGUsXG4gICAgICAgIGFkZHJlc3Nlc19pZDogbnVtYmVyLFxuICAgICAgICBzaGlwcGluZ19pZDogbnVtYmVyLFxuICAgICAgICBwYXltZW50X21ldGhvZF9pZCA9IDAsXG4gICAgICAgIGxvY2F0aW9uX2lkID0gMCxcbiAgICAgICAgY29tbWVudHMgPSAnJyxcbiAgICAgICAgdGltZV9zbG90PzogRXNvbHZlVGltZVNsb3RDaGVja291dCxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNoZWNrb3V0UmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IGJvZHk6IEVzb2x2ZUNoZWNrb3V0Qm9keSA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBhZGRyZXNzZXNfaWQsXG4gICAgICAgICAgICBzaGlwcGluZ19pZCxcbiAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kX2lkLFxuICAgICAgICAgICAgbG9jYXRpb25faWQsXG4gICAgICAgICAgICBjb21tZW50cyxcbiAgICAgICAgICAgIHRyYWNraW5nOiAwLFxuICAgICAgICAgICAgdGltZV9zbG90LFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYWNraW5nQ29kZSgpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHRyYWNraW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRyYWNraW5nIDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgdHJhY2tpbmc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYm9keS50cmFja2luZyA9IHRyYWNraW5nO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgdm91Y2hlcl9rZXlzID0gdGhpcy52b3VjaGVycy5nZXRBcHBsaWVkVm91Y2hlcktleXMoKTtcblxuICAgICAgICAgICAgICAgIGlmICh2b3VjaGVyX2tleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBib2R5LnZvdWNoZXJzID0gdm91Y2hlcl9rZXlzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQ2hlY2tvdXRSZXNwb25zZT4+KFxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LWNoZWNrb3V0LnBocGAsXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVkX3RyYWNraW5nID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY291cG9ucy5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52b3VjaGVycy5yZXNldCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUNoZWNrb3V0UmVzdWx0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2V0LWNoZWNrb3V0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENhcnRBbHRlcm5hdGl2ZXMoKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0QWx0ZXJuYXRpdmVzTWFwPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQ2FydEFsdGVybmF0aXZlUmVjb3JkW10+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2FydC1hbHRlcm5hdGl2ZXMucGhwYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydEFsdGVybmF0aXZlcyhyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGFuIGFsdGVybmF0aXZlIHN0b2NrIGl0ZW0gdG8gY3VycmVudCBjYXJ0IGl0ZW1cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpZCBJdCBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBjYXJ0IGl0ZW0gZm9yIHdoaWNoIHRoZSBhbHRlcm5hdGl2ZSBpcyBiZWluZyBzZXRcbiAgICAgKiBAcGFyYW0gYWx0ZXJuYXRpdmUgVGhlIGFsdGVybmF0aXZlIHZhbHVlIHRoYXQgeW91IHdhbnQgdG8gc2V0IGZvciBhIHNwZWNpZmljIGNhcnQgaXRlbS5cbiAgICAgKiBAcmV0dXJucyBhbiBPYnNlcnZhYmxlIG9mIHR5cGUgRXNvbHZlUmVzcG9uc2VSZXN1bHQuXG4gICAgICovXG4gICAgcHVibGljIHNldENhcnRBbHRlcm5hdGl2ZShcbiAgICAgICAgaWQ6IG51bWJlcixcbiAgICAgICAgYWx0ZXJuYXRpdmU6IHN0cmluZyxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVJlc3BvbnNlUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZVBvc3RSZXNwb25zZUl0ZW0+PihcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2FydC1hbHRlcm5hdGl2ZXMucGhwYCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaWQ6IGlkLFxuICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGl2ZTogYWx0ZXJuYXRpdmUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4gbmV3IEVzb2x2ZVJlc3BvbnNlUmVzdWx0KHJlc3BvbnNlKSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZXQtY2FydC1hbHRlcm5hdGl2ZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGVDYXJ0QWx0ZXJuYXRpdmUoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8RXNvbHZlUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5kZWxldGU8RXNvbHZlRGVsZXRlUmVzcG9uc2U+KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2RlbGV0ZS1jYXJ0LWFsdGVybmF0aXZlLnBocGAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsgaWQgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0ID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5zdGF0dXMgIT09ICdzdWNjZXNzJ1xuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGh0dHBfcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVJlc3VsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LmNvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5tZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cERlbGV0ZUVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2RlbGV0ZS1jYXJ0LWFsdGVybmF0aXZlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yUmVzLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSB0cmVlIHJlY29yZHNcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0X2l0ZW1fcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgY2FydCBpdGVtc1xuICAgICAqL1xuICAgIHByaXZhdGUgcHJvY2Vzc0NhcnQoY2FydF9pdGVtX3JlY29yZHM6IEVzb2x2ZUNhcnRJdGVtUmVjb3JkW10pOiBFc29sdmVDYXJ0IHtcbiAgICAgICAgY29uc3QgY2FydF9pdGVtczogRXNvbHZlQ2FydEl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIGlmIChjYXJ0X2l0ZW1fcmVjb3Jkcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJ0X2l0ZW1fcmVjb3JkIG9mIGNhcnRfaXRlbV9yZWNvcmRzKSB7XG4gICAgICAgICAgICAgICAgY2FydF9pdGVtcy5wdXNoKG5ldyBFc29sdmVDYXJ0SXRlbShjYXJ0X2l0ZW1fcmVjb3JkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FydF9pdGVtcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBjYXJ0IGFsdGVybmF0aXZlcyByZWNvcmRzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgYE1hcGAgb2YgcHJvY2Vzc2VkIGNhcnQgYWx0ZXJuYXRpdmVzXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcm9jZXNzQ2FydEFsdGVybmF0aXZlcyhcbiAgICAgICAgcmVjb3JkczogRXNvbHZlQ2FydEFsdGVybmF0aXZlUmVjb3JkW10sXG4gICAgKTogRXNvbHZlQ2FydEFsdGVybmF0aXZlc01hcCB7XG4gICAgICAgIGNvbnN0IGFsdGVybmF0aXZlczogRXNvbHZlQ2FydEFsdGVybmF0aXZlc01hcCA9IG5ldyBNYXAoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XG4gICAgICAgICAgICBhbHRlcm5hdGl2ZXMuc2V0KHJlY29yZC5pdGVtX2lkLCBuZXcgRXNvbHZlQ2FydEFsdGVybmF0aXZlKHJlY29yZCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFsdGVybmF0aXZlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBjYXJ0IHRvdGFsc1xuICAgICAqXG4gICAgICogQHBhcmFtIHJlY29yZCBEYXRhIHRvIHByb2Nlc3NcbiAgICAgKiBAcmV0dXJucyBQcm9jZXNzZWQgY2FydCB0b3RhbHNcbiAgICAgKi9cbiAgICBwcml2YXRlIHByb2Nlc3NDYXJ0VG90YWxzKFxuICAgICAgICByZWNvcmQ6IEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQsXG4gICAgKTogRXNvbHZlQ2FydFRvdGFscyB7XG4gICAgICAgIGNvbnN0IGNhcnRfdG90YWxzID0gbmV3IEVzb2x2ZUNhcnRUb3RhbHMoXG4gICAgICAgICAgICArcmVjb3JkLnJlY29yZHMsXG4gICAgICAgICAgICArcmVjb3JkLml0ZW1zLFxuICAgICAgICAgICAgK3JlY29yZC50b3RhbCxcbiAgICAgICAgICAgICtyZWNvcmQudmF0LFxuICAgICAgICAgICAgK3JlY29yZC5kaXNjb3VudCxcbiAgICAgICAgICAgICtyZWNvcmQudm91Y2hlcnMsXG4gICAgICAgICAgICArcmVjb3JkLmFsbG93YW5jZSxcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gY2FydF90b3RhbHM7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQtYWx0ZXJuYXRpdmUtcmVjb3JkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXJ0L2ludGVyZmFjZXMvZXNvbHZlLWNhcnQtYWx0ZXJuYXRpdmUtcmVjb3JkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFc29sdmVDYXJ0QWx0ZXJuYXRpdmVSZWNvcmQge1xuICAgIGl0ZW1faWQ6IG51bWJlcjtcbiAgICBpbWFnZV9uYW1lOiBzdHJpbmc7XG4gICAgY29kZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzZWZfbmFtZTogc3RyaW5nO1xuICAgIGl0ZW1zX2luX3BhY2s6IG51bWJlciB8IHN0cmluZztcbiAgICBwYWNrX2Rlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgcHJpY2U6IG51bWJlciB8IHN0cmluZztcbiAgICBwcmljZV9pbmNsdXNpdmU6IG51bWJlciB8IHN0cmluZztcbiAgICB2YXRfcmF0ZTogbnVtYmVyIHwgc3RyaW5nO1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQtdG90YWxzLXJlY29yZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC9pbnRlcmZhY2VzL2Vzb2x2ZS1jYXJ0LXRvdGFscy1yZWNvcmQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQge1xuICAgIHJlY29yZHM6IG51bWJlcjtcbiAgICBpdGVtczogc3RyaW5nO1xuICAgIHRvdGFsOiBzdHJpbmc7XG4gICAgdmF0OiBzdHJpbmc7XG4gICAgZGlzY291bnQ6IHN0cmluZztcbiAgICB2b3VjaGVyczogc3RyaW5nO1xuICAgIHdhbGxldDogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQtdG90YWxzLXJlY29yZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC9pbnRlcmZhY2VzL2Vzb2x2ZS1jYXJ0LXRvdGFscy1yZWNvcmQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQge1xuICAgIHJlY29yZHM6IG51bWJlcjtcbiAgICBpdGVtczogc3RyaW5nO1xuICAgIHRvdGFsOiBzdHJpbmc7XG4gICAgdmF0OiBzdHJpbmc7XG4gICAgZGlzY291bnQ6IHN0cmluZztcbiAgICB2b3VjaGVyczogc3RyaW5nO1xuICAgIHdhbGxldDogc3RyaW5nO1xuICAgIGFsbG93YW5jZTogc3RyaW5nO1xufVxuIl19
@@ -8,4 +8,5 @@ export * from './esolve-cart-totals-record.interface';
8
8
  export * from './esolve-transaction-analytics-data-record.interface';
9
9
  export * from './esolve-time-slot-checkout.interface';
10
10
  export * from './esolve-checkout-body.interface';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jaGVja291dC1yZXNwb25zZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtdHJhY2tpbmctY29kZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2FydC1pdGVtLXJlY29yZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2FydC1pdGVtLXJlc3BvbnNlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jYXJ0LWFkZGl0aW9uYWwtd2hlcmUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWNhcnQtc2V0LWl0ZW0uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWNhcnQtdG90YWxzLXJlY29yZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtdHJhbnNhY3Rpb24tYW5hbHl0aWNzLWRhdGEtcmVjb3JkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10aW1lLXNsb3QtY2hlY2tvdXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWNoZWNrb3V0LWJvZHkuaW50ZXJmYWNlJztcbiJdfQ==
11
+ export * from './esolve-cart-alternative-record.interface';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0Q0FBNEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWNoZWNrb3V0LXJlc3BvbnNlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10cmFja2luZy1jb2RlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jYXJ0LWl0ZW0tcmVjb3JkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jYXJ0LWl0ZW0tcmVzcG9uc2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWNhcnQtYWRkaXRpb25hbC13aGVyZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2FydC1zZXQtaXRlbS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2FydC10b3RhbHMtcmVjb3JkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi1hbmFseXRpY3MtZGF0YS1yZWNvcmQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXRpbWUtc2xvdC1jaGVja291dC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2hlY2tvdXQtYm9keS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2FydC1hbHRlcm5hdGl2ZS1yZWNvcmQuaW50ZXJmYWNlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQtYWx0ZXJuYXRpdmVzLW1hcC50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2NhcnQvdHlwZXMvZXNvbHZlLWNhcnQtYWx0ZXJuYXRpdmVzLW1hcC50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVDYXJ0QWx0ZXJuYXRpdmUgfSBmcm9tICcuLi9jbGFzc2VzJztcblxuZXhwb3J0IHR5cGUgRXNvbHZlQ2FydEFsdGVybmF0aXZlc01hcCA9IE1hcDxudW1iZXIsIEVzb2x2ZUNhcnRBbHRlcm5hdGl2ZT47XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  export * from './esolve-cart.type';
2
2
  export * from './esolve-cart-set-action.type';
3
3
  export * from './esolve-cart-empty-response.type';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWNhcnQudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jYXJ0LXNldC1hY3Rpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jYXJ0LWVtcHR5LXJlc3BvbnNlLnR5cGUnO1xuIl19
4
+ export * from './esolve-cart-alternatives-map.type';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2FydC50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWNhcnQtc2V0LWFjdGlvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWNhcnQtZW1wdHktcmVzcG9uc2UudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jYXJ0LWFsdGVybmF0aXZlcy1tYXAudHlwZSc7XG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { EsolveSeoInfo } from '../../seo';
2
+ export class EsolveCategoryTreeItem {
3
+ get small_image_src() {
4
+ return this.getImagePath('small');
5
+ }
6
+ get thumbnail_image_src() {
7
+ return this.getImagePath('thumb');
8
+ }
9
+ get tiny_image_src() {
10
+ return this.getImagePath('tiny');
11
+ }
12
+ constructor(type, esolve_id, parent_id, description, sef_description, short_description, sort_priority, active, display_only, image_name, seo_title, seo_keywords, seo_description, children) {
13
+ this.type = type;
14
+ this.esolve_id = esolve_id;
15
+ this.parent_id = parent_id;
16
+ this.description = description;
17
+ this.sef_description = sef_description;
18
+ this.short_description = short_description;
19
+ this.sort_priority = sort_priority;
20
+ this.active = active;
21
+ this.display_only = display_only;
22
+ this.image_name = image_name;
23
+ this.id = '';
24
+ this.image_path = '';
25
+ if (this.type === 'category') {
26
+ this.id = `<<CAT>>${this.esolve_id}`;
27
+ if (children != null) {
28
+ this.children = children;
29
+ }
30
+ this.image_path = '/images/categories/';
31
+ }
32
+ else {
33
+ this.id = `<<SUB>>${this.esolve_id}`;
34
+ this.image_path = '/images/subcategories/';
35
+ }
36
+ if (seo_title.trim() === '') {
37
+ seo_title = this.description;
38
+ }
39
+ this.seo_details = new EsolveSeoInfo(seo_title, seo_description, seo_keywords);
40
+ }
41
+ getImagePath(image_size) {
42
+ if (this.image_name !== '') {
43
+ return `${this.image_path}${image_size}/${this.image_name}`;
44
+ }
45
+ return '';
46
+ }
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhdGVnb3J5LXRyZWUtaXRlbS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXRlZ29yeS10cmVlL2NsYXNzZXMvZXNvbHZlLWNhdGVnb3J5LXRyZWUtaXRlbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU1RCxNQUFNLE9BQU8sc0JBQXNCO0lBUS9CLElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFDVyxJQUFnQyxFQUNoQyxTQUEwQixFQUMxQixTQUFpQixFQUNqQixXQUFtQixFQUNuQixlQUF1QixFQUN2QixpQkFBeUIsRUFDekIsYUFBcUIsRUFDckIsTUFBZSxFQUNmLFlBQXFCLEVBQ3BCLFVBQWtCLEVBQzFCLFNBQWlCLEVBQ2pCLFlBQW9CLEVBQ3BCLGVBQXVCLEVBQ3ZCLFFBQW1DO1FBYjVCLFNBQUksR0FBSixJQUFJLENBQTRCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFDdkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDZixpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBN0J2QixPQUFFLEdBQUcsRUFBRSxDQUFDO1FBS1AsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQThCcEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTtZQUMxQixJQUFJLENBQUMsRUFBRSxHQUFHLFVBQVUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRXJDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7YUFDNUI7WUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLHFCQUFxQixDQUFDO1NBQzNDO2FBQU07WUFDSCxJQUFJLENBQUMsRUFBRSxHQUFHLFVBQVUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsd0JBQXdCLENBQUM7U0FDOUM7UUFFRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDekIsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDaEM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksYUFBYSxDQUNoQyxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksQ0FDZixDQUFDO0lBQ04sQ0FBQztJQUVNLFlBQVksQ0FBQyxVQUFzQztRQUN0RCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFO1lBQ3hCLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDL0Q7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVNlb0RldGFpbHMsIEVzb2x2ZVNlb0luZm8gfSBmcm9tICcuLi8uLi9zZW8nO1xuXG5leHBvcnQgY2xhc3MgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSBpbXBsZW1lbnRzIEVzb2x2ZVNlb0RldGFpbHMge1xuICAgIHB1YmxpYyBpZCA9ICcnO1xuICAgIHB1YmxpYyBzZW9fZGV0YWlsczogRXNvbHZlU2VvSW5mbztcbiAgICBwdWJsaWMgdG90YWxfc3RvY2s/OiBudW1iZXI7XG4gICAgcHVibGljIGNoaWxkcmVuPzogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVtdO1xuXG4gICAgcHJpdmF0ZSBpbWFnZV9wYXRoID0gJyc7XG5cbiAgICBwdWJsaWMgZ2V0IHNtYWxsX2ltYWdlX3NyYygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ3NtYWxsJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0aHVtYm5haWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgndGh1bWInKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRpbnlfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgndGlueScpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdHlwZTogJ2NhdGVnb3J5JyB8ICdzdWJjYXRlZ29yeScsXG4gICAgICAgIHB1YmxpYyBlc29sdmVfaWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICAgICAgcHVibGljIHBhcmVudF9pZDogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICAgICAgcHVibGljIHNlZl9kZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgc2hvcnRfZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICAgICAgcHVibGljIHNvcnRfcHJpb3JpdHk6IG51bWJlcixcbiAgICAgICAgcHVibGljIGFjdGl2ZTogYm9vbGVhbixcbiAgICAgICAgcHVibGljIGRpc3BsYXlfb25seTogYm9vbGVhbixcbiAgICAgICAgcHJpdmF0ZSBpbWFnZV9uYW1lOiBzdHJpbmcsXG4gICAgICAgIHNlb190aXRsZTogc3RyaW5nLFxuICAgICAgICBzZW9fa2V5d29yZHM6IHN0cmluZyxcbiAgICAgICAgc2VvX2Rlc2NyaXB0aW9uOiBzdHJpbmcsXG4gICAgICAgIGNoaWxkcmVuPzogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVtdLFxuICAgICkge1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnY2F0ZWdvcnknKSB7XG4gICAgICAgICAgICB0aGlzLmlkID0gYDw8Q0FUPj4ke3RoaXMuZXNvbHZlX2lkfWA7XG5cbiAgICAgICAgICAgIGlmIChjaGlsZHJlbiAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmltYWdlX3BhdGggPSAnL2ltYWdlcy9jYXRlZ29yaWVzLyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlkID0gYDw8U1VCPj4ke3RoaXMuZXNvbHZlX2lkfWA7XG4gICAgICAgICAgICB0aGlzLmltYWdlX3BhdGggPSAnL2ltYWdlcy9zdWJjYXRlZ29yaWVzLyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2VvX3RpdGxlLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgICAgIHNlb190aXRsZSA9IHRoaXMuZGVzY3JpcHRpb247XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlb19kZXRhaWxzID0gbmV3IEVzb2x2ZVNlb0luZm8oXG4gICAgICAgICAgICBzZW9fdGl0bGUsXG4gICAgICAgICAgICBzZW9fZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBzZW9fa2V5d29yZHMsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEltYWdlUGF0aChpbWFnZV9zaXplOiAnc21hbGwnIHwgJ3RodW1iJyB8ICd0aW55Jyk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmltYWdlX25hbWUgIT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5pbWFnZV9wYXRofSR7aW1hZ2Vfc2l6ZX0vJHt0aGlzLmltYWdlX25hbWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './esolve-category-tree-item.model';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2F0ZWdvcnktdHJlZS9jbGFzc2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLWl0ZW0ubW9kZWwnO1xuIl19
@@ -3,7 +3,7 @@ import { HttpClient, HttpParams } from '@angular/common/http';
3
3
  import { throwError } from 'rxjs';
4
4
  import { map } from 'rxjs/operators';
5
5
  import { EsolveConfigService } from '../core';
6
- import { EsolveCategoryTreeItem } from './esolve-category-tree-item.model';
6
+ import { EsolveCategoryTreeItem } from './classes';
7
7
  import * as i0 from "@angular/core";
8
8
  export class EsolveCategoryTreeService {
9
9
  constructor() {
@@ -139,13 +139,13 @@ export class EsolveCategoryTreeService {
139
139
  }
140
140
  return null;
141
141
  }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: EsolveCategoryTreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
143
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: EsolveCategoryTreeService, providedIn: 'root' }); }
142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: EsolveCategoryTreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
143
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: EsolveCategoryTreeService, providedIn: 'root' }); }
144
144
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: EsolveCategoryTreeService, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: EsolveCategoryTreeService, decorators: [{
146
146
  type: Injectable,
147
147
  args: [{
148
148
  providedIn: 'root',
149
149
  }]
150
150
  }] });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhdGVnb3J5LXRyZWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXRlZ29yeS10cmVlL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFJOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBUTNFLE1BQU0sT0FBTyx5QkFBeUI7SUFIdEM7UUFJcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JDLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0EwTjlDO0lBeE5HOztPQUVHO0lBQ0ksZUFBZSxDQUNsQixVQUFtQjtRQUVuQixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTlCLElBQUksVUFBVSxFQUFFO1lBQ1osTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FJRixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNuRCxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFF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VUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcbmltcG9ydCB7IEVzb2x2ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9jb3JlJztcblxuaW1wb3J0IHsgRXNvbHZlQ2F0ZWdvcnlSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1jYXRlZ29yeS1yZWNvcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEVzb2x2ZVN1YmNhdGVnb3J5UmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtc3ViY2F0ZWdvcnktcmVjb3JkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtIH0gZnJvbSAnLi9lc29sdmUtY2F0ZWdvcnktdHJlZS1pdGVtLm1vZGVsJztcbmltcG9ydCB7IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1SZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLWl0ZW0tcmVjb3JkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtT3B0aW9ucyB9IGZyb20gJy4vZXNvbHZlLWNhdGVnb3J5LXRyZWUtaXRlbS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFc29sdmVDYXRlZ29yeUlkZW50aWZpZXIgfSBmcm9tICcuL2Vzb2x2ZS1jYXRlZ29yeS1pZGVudGlmaWVyLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVzb2x2ZUNhdGVnb3J5VHJlZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KEVzb2x2ZUNvbmZpZ1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgY2F0ZWdvcnkgdHJlZSBmcm9tIGVTb2x2ZSBpbnN0YW5jZSBhbmQgY292ZXJ0cyBpdCB0byB0aGUgY29ycmVjdCBmb3JtYXQuXG4gICAgICovXG4gICAgcHVibGljIGdldENhdGVnb3J5VHJlZShcbiAgICAgICAgaWRlbnRpZmllcj86IHN0cmluZyxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1bXT4ge1xuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcblxuICAgICAgICBpZiAoaWRlbnRpZmllcikge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnaWRlbnRpZmllcicsIGlkZW50aWZpZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxcbiAgICAgICAgICAgICAgICBFc29sdmVHZXRSZXNwb25zZTxcbiAgICAgICAgICAgICAgICAgICAgKEVzb2x2ZUNhdGVnb3J5UmVjb3JkIHwgRXNvbHZlU3ViY2F0ZWdvcnlSZWNvcmQpW11cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA+KGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10cmVlLnBocGAsIHsgcGFyYW1zIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1RyZWUocmVzcG9uc2UucmVjb3Jkcyk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlIHRoZSBzcGVjaWFsIHRyZWUgc3RydWN0dXJlIGZvciBhIHNwZWNpZmljIHNwZWNpYWwgZnJvbSB0aGUgZVNvbHZlXG4gICAgICogaW5zdGFuY2UgYW5kIGNvbnZlcnRzIGl0IGludG8gdGhlIGNvcnJlY3QgZm9ybWF0XG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3BlY2lhbF9pZCBJZCBvZiB0byBzcGVjaWFsIHRvIGdldCB0cmVlIGZvclxuICAgICAqXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHNwZWNpYWwgdHJlZSBkYXRhXG4gICAgICovXG4gICAgcHVibGljIGdldFNwZWNpYWxUcmVlKFxuICAgICAgICBzcGVjaWFsX2lkOiBudW1iZXIsXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDYXRlZ29yeVRyZWVJdGVtW10+IHtcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG5cbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc3BlY2lhbF9pZCcsIHNwZWNpYWxfaWQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8XG4gICAgICAgICAgICAgICAgRXNvbHZlR2V0UmVzcG9uc2U8XG4gICAgICAgICAgICAgICAgICAgIChFc29sdmVDYXRlZ29yeVJlY29yZCB8IEVzb2x2ZVN1YmNhdGVnb3J5UmVjb3JkKVtdXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPihgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtc3BlY2lhbC10cmVlLnBocGAsIHsgcGFyYW1zIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1RyZWUocmVzcG9uc2UucmVjb3Jkcyk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlIHRoZSBkZXRhaWxzIG9mIGEgY2F0ZWdvcnkgdHJlZSBpdGVtIGZyb20gdGhlIGVTb2x2ZSBpbnN0YW5jZSBhbmRcbiAgICAgKiBjb252ZXJ0cyBpdCB0byB0aGUgY29ycmVjdCBmb3JtYXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBGaWx0ZXIgb3B0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXRlZ29yeVRyZWVJdGVtKFxuICAgICAgICBvcHRpb25zOiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtT3B0aW9ucyxcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0+IHtcbiAgICAgICAgbGV0IHR5cGUhOiAnY2F0ZWdvcnknIHwgJ3N1YmNhdGVnb3J5JztcbiAgICAgICAgbGV0IGVzb2x2ZV9pZCE6IG51bWJlciB8IHN0cmluZztcbiAgICAgICAgbGV0IHNlZl9kZXNjcmlwdGlvbjtcblxuICAgICAgICBpZiAob3B0aW9ucy5pZCkge1xuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnlJZGVudGlmaWVyID0gdGhpcy5wcm9jZXNzSUQob3B0aW9ucy5pZCk7XG5cbiAgICAgICAgICAgIGlmIChjYXRlZ29yeUlkZW50aWZpZXIpIHtcbiAgICAgICAgICAgICAgICB0eXBlID0gY2F0ZWdvcnlJZGVudGlmaWVyLnR5cGU7XG4gICAgICAgICAgICAgICAgZXNvbHZlX2lkID0gY2F0ZWdvcnlJZGVudGlmaWVyLmVzb2x2ZV9pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnR5cGUpIHtcbiAgICAgICAgICAgIHR5cGUgPSBvcHRpb25zLnR5cGU7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmVzb2x2ZV9pZCkge1xuICAgICAgICAgICAgICAgIGVzb2x2ZV9pZCA9IG9wdGlvbnMuZXNvbHZlX2lkO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnNlZl9kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIHNlZl9kZXNjcmlwdGlvbiA9IG9wdGlvbnMuc2VmX2Rlc2NyaXB0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGUgJiYgKGVzb2x2ZV9pZCB8fCBzZWZfZGVzY3JpcHRpb24pKSB7XG4gICAgICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcblxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndHlwZScsIHR5cGUpO1xuXG4gICAgICAgICAgICBpZiAoZXNvbHZlX2lkKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnaWQnLCBlc29sdmVfaWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VmX2Rlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc2VmX2Rlc2NyaXB0aW9uJywgc2VmX2Rlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVJlY29yZFtdPj4oXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10cmVlLWl0ZW0ucGhwYCxcbiAgICAgICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1RyZWVJdGVtKHJlc3BvbnNlLnJlY29yZHNbMF0pO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ0ludmFsaWQgb3B0aW9ucycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHRyZWUgcmVjb3JkcyBhbmQgY29udmVydHMgdGhlbSBpbnRvIHRoZSBjb3JyZWN0IGZvcm1hdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0cmVlX3JlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcm9jZXNzVHJlZShcbiAgICAgICAgdHJlZV9yZWNvcmRzOiAoRXNvbHZlQ2F0ZWdvcnlSZWNvcmQgfCBFc29sdmVTdWJjYXRlZ29yeVJlY29yZClbXSxcbiAgICApOiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtW10ge1xuICAgICAgICBjb25zdCB0cmVlX2l0ZW1zOiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtW10gPSBbXTtcblxuICAgICAgICBpZiAodHJlZV9yZWNvcmRzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHRyZWVfcmVjb3JkIG9mIHRyZWVfcmVjb3Jkcykge1xuICAgICAgICAgICAgICAgIGxldCBlc29sdmVfaWQ6IHN0cmluZyB8IG51bWJlciA9ICcnO1xuICAgICAgICAgICAgICAgIGxldCBwYXJlbnRfaWQgPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW46IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1bXSA9IFtdO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRyZWVfcmVjb3JkLnR5cGUgPT09ICdjYXRlZ29yeScpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gPSB0aGlzLnByb2Nlc3NUcmVlKHRyZWVfcmVjb3JkLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICAgICAgZXNvbHZlX2lkID0gdHJlZV9yZWNvcmQubWVudV9pZDtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50X2lkID0gdHJlZV9yZWNvcmQub3duZXJfbWVudV9pZDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlc29sdmVfaWQgPSB0cmVlX3JlY29yZC5pZDtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50X2lkID0gdHJlZV9yZWNvcmQubWVudV9pZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cmVlX2l0ZW1zLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIG5ldyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtKFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVzb2x2ZV9pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudF9pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuc2VmX2Rlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuc2VvX2Rlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuc29ydF9wcmlvcml0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLmFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLmRpc3BsYXlfb25seSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLmltYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuc2VvX3BhZ2VfdGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zZW9fa2V5d29yZHMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zaG9ydF9kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJlZV9pdGVtcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NUcmVlSXRlbShcbiAgICAgICAgcmVjb3JkOiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkLFxuICAgICk6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0ge1xuICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0oXG4gICAgICAgICAgICByZWNvcmQudHlwZSxcbiAgICAgICAgICAgIHJlY29yZC5pZCxcbiAgICAgICAgICAgIHJlY29yZC5wYXJlbnRfaWQsXG4gICAgICAgICAgICByZWNvcmQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICByZWNvcmQuc2VmX2Rlc2NyaXB0aW9uLFxuICAgICAgICAgICAgcmVjb3JkLnNob3J0X2Rlc2NyaXB0aW9uLFxuICAgICAgICAgICAgcmVjb3JkLnNvcnRfcHJpb3JpdHksXG4gICAgICAgICAgICByZWNvcmQuYWN0aXZlLFxuICAgICAgICAgICAgcmVjb3JkLmRpc3BsYXlfb25seSxcbiAgICAgICAgICAgIHJlY29yZC5pbWFnZSxcbiAgICAgICAgICAgIHJlY29yZC5zZW9fcGFnZV90aXRsZSxcbiAgICAgICAgICAgIHJlY29yZC5zZW9fa2V5d29yZHMsXG4gICAgICAgICAgICByZWNvcmQuc2VvX2Rlc2NyaXB0aW9uLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc0lEKGlkOiBzdHJpbmcpOiBFc29sdmVDYXRlZ29yeUlkZW50aWZpZXIgfCBudWxsIHtcbiAgICAgICAgbGV0IHR5cGU6ICdjYXRlZ29yeScgfCAnc3ViY2F0ZWdvcnknO1xuICAgICAgICBsZXQgZXNvbHZlX2lkOiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgICAgICAgY29uc3QgdHlwZV9jb2RlX3JlZ2V4ID0gL148PChDQVR8U1VCKT4+L2c7XG4gICAgICAgIGNvbnN0IG1hdGNoX3Jlc3VsdHMgPSBpZC5tYXRjaCh0eXBlX2NvZGVfcmVnZXgpO1xuXG4gICAgICAgIGlmIChtYXRjaF9yZXN1bHRzKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlX2NvZGUgPSBtYXRjaF9yZXN1bHRzWzBdO1xuXG4gICAgICAgICAgICB0eXBlID0gdHlwZV9jb2RlID09PSAnPDxDQVQ+PicgPyAnY2F0ZWdvcnknIDogJ3N1YmNhdGVnb3J5JztcbiAgICAgICAgICAgIGVzb2x2ZV9pZCA9IGlkLnJlcGxhY2UodHlwZV9jb2RlX3JlZ2V4LCAnJyk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICBlc29sdmVfaWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhdGVnb3J5LXRyZWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXRlZ29yeS10cmVlL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sV0FBVyxDQUFDOztBQVluRCxNQUFNLE9BQU8seUJBQXlCO0lBSHRDO1FBSXFCLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBME45QztJQXhORzs7T0FFRztJQUNJLGVBQWUsQ0FDbEIsVUFBbUI7UUFFbkIsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUU5QixJQUFJLFVBQVUsRUFBRTtZQUNaLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNqRDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBSUYsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7YUFDbkQsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxF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QVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBFc29sdmVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XG5cbmltcG9ydCB7IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0gfSBmcm9tICcuL2NsYXNzZXMnO1xuaW1wb3J0IHtcbiAgICBFc29sdmVDYXRlZ29yeVJlY29yZCxcbiAgICBFc29sdmVTdWJjYXRlZ29yeVJlY29yZCxcbiAgICBFc29sdmVDYXRlZ29yeVRyZWVJdGVtT3B0aW9ucyxcbiAgICBFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkLFxuICAgIEVzb2x2ZUNhdGVnb3J5SWRlbnRpZmllcixcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRXNvbHZlQ2F0ZWdvcnlUcmVlU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoRXNvbHZlQ29uZmlnU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjYXRlZ29yeSB0cmVlIGZyb20gZVNvbHZlIGluc3RhbmNlIGFuZCBjb3ZlcnRzIGl0IHRvIHRoZSBjb3JyZWN0IGZvcm1hdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q2F0ZWdvcnlUcmVlKFxuICAgICAgICBpZGVudGlmaWVyPzogc3RyaW5nLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVtdPiB7XG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuXG4gICAgICAgIGlmIChpZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdpZGVudGlmaWVyJywgaWRlbnRpZmllcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PFxuICAgICAgICAgICAgICAgIEVzb2x2ZUdldFJlc3BvbnNlPFxuICAgICAgICAgICAgICAgICAgICAoRXNvbHZlQ2F0ZWdvcnlSZWNvcmQgfCBFc29sdmVTdWJjYXRlZ29yeVJlY29yZClbXVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgID4oYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXRyZWUucGhwYCwgeyBwYXJhbXMgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVHJlZShyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmUgdGhlIHNwZWNpYWwgdHJlZSBzdHJ1Y3R1cmUgZm9yIGEgc3BlY2lmaWMgc3BlY2lhbCBmcm9tIHRoZSBlU29sdmVcbiAgICAgKiBpbnN0YW5jZSBhbmQgY29udmVydHMgaXQgaW50byB0aGUgY29ycmVjdCBmb3JtYXRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzcGVjaWFsX2lkIElkIG9mIHRvIHNwZWNpYWwgdG8gZ2V0IHRyZWUgZm9yXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgc3BlY2lhbCB0cmVlIGRhdGFcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0U3BlY2lhbFRyZWUoXG4gICAgICAgIHNwZWNpYWxfaWQ6IG51bWJlcixcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1bXT4ge1xuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcblxuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzcGVjaWFsX2lkJywgc3BlY2lhbF9pZCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxcbiAgICAgICAgICAgICAgICBFc29sdmVHZXRSZXNwb25zZTxcbiAgICAgICAgICAgICAgICAgICAgKEVzb2x2ZUNhdGVnb3J5UmVjb3JkIHwgRXNvbHZlU3ViY2F0ZWdvcnlSZWNvcmQpW11cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA+KGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1zcGVjaWFsLXRyZWUucGhwYCwgeyBwYXJhbXMgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVHJlZShyZXNwb25zZS5yZWNvcmRzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmUgdGhlIGRldGFpbHMgb2YgYSBjYXRlZ29yeSB0cmVlIGl0ZW0gZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIGFuZFxuICAgICAqIGNvbnZlcnRzIGl0IHRvIHRoZSBjb3JyZWN0IGZvcm1hdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRpb25zIEZpbHRlciBvcHRpb25zXG4gICAgICovXG4gICAgcHVibGljIGdldENhdGVnb3J5VHJlZUl0ZW0oXG4gICAgICAgIG9wdGlvbnM6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1PcHRpb25zLFxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbT4ge1xuICAgICAgICBsZXQgdHlwZSE6ICdjYXRlZ29yeScgfCAnc3ViY2F0ZWdvcnknO1xuICAgICAgICBsZXQgZXNvbHZlX2lkITogbnVtYmVyIHwgc3RyaW5nO1xuICAgICAgICBsZXQgc2VmX2Rlc2NyaXB0aW9uO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmlkKSB7XG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yeUlkZW50aWZpZXIgPSB0aGlzLnByb2Nlc3NJRChvcHRpb25zLmlkKTtcblxuICAgICAgICAgICAgaWYgKGNhdGVnb3J5SWRlbnRpZmllcikge1xuICAgICAgICAgICAgICAgIHR5cGUgPSBjYXRlZ29yeUlkZW50aWZpZXIudHlwZTtcbiAgICAgICAgICAgICAgICBlc29sdmVfaWQgPSBjYXRlZ29yeUlkZW50aWZpZXIuZXNvbHZlX2lkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudHlwZSkge1xuICAgICAgICAgICAgdHlwZSA9IG9wdGlvbnMudHlwZTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZXNvbHZlX2lkKSB7XG4gICAgICAgICAgICAgICAgZXNvbHZlX2lkID0gb3B0aW9ucy5lc29sdmVfaWQ7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuc2VmX2Rlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgc2VmX2Rlc2NyaXB0aW9uID0gb3B0aW9ucy5zZWZfZGVzY3JpcHRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZSAmJiAoZXNvbHZlX2lkIHx8IHNlZl9kZXNjcmlwdGlvbikpIHtcbiAgICAgICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0eXBlJywgdHlwZSk7XG5cbiAgICAgICAgICAgIGlmIChlc29sdmVfaWQpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdpZCcsIGVzb2x2ZV9pZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWZfZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzZWZfZGVzY3JpcHRpb24nLCBzZWZfZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkW10+PihcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXRyZWUtaXRlbS5waHBgLFxuICAgICAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVHJlZUl0ZW0ocmVzcG9uc2UucmVjb3Jkc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnSW52YWxpZCBvcHRpb25zJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIHRoZSBlU29sdmUgdHJlZSByZWNvcmRzIGFuZCBjb252ZXJ0cyB0aGVtIGludG8gdGhlIGNvcnJlY3QgZm9ybWF0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRyZWVfcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcbiAgICAgKi9cbiAgICBwcml2YXRlIHByb2Nlc3NUcmVlKFxuICAgICAgICB0cmVlX3JlY29yZHM6IChFc29sdmVDYXRlZ29yeVJlY29yZCB8IEVzb2x2ZVN1YmNhdGVnb3J5UmVjb3JkKVtdLFxuICAgICk6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1bXSB7XG4gICAgICAgIGNvbnN0IHRyZWVfaXRlbXM6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIGlmICh0cmVlX3JlY29yZHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdHJlZV9yZWNvcmQgb2YgdHJlZV9yZWNvcmRzKSB7XG4gICAgICAgICAgICAgICAgbGV0IGVzb2x2ZV9pZDogc3RyaW5nIHwgbnVtYmVyID0gJyc7XG4gICAgICAgICAgICAgICAgbGV0IHBhcmVudF9pZCA9ICcnO1xuICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbjogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVtdID0gW107XG5cbiAgICAgICAgICAgICAgICBpZiAodHJlZV9yZWNvcmQudHlwZSA9PT0gJ2NhdGVnb3J5Jykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IHRoaXMucHJvY2Vzc1RyZWUodHJlZV9yZWNvcmQuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICAgICBlc29sdmVfaWQgPSB0cmVlX3JlY29yZC5tZW51X2lkO1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRfaWQgPSB0cmVlX3JlY29yZC5vd25lcl9tZW51X2lkO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVzb2x2ZV9pZCA9IHRyZWVfcmVjb3JkLmlkO1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRfaWQgPSB0cmVlX3JlY29yZC5tZW51X2lkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyZWVfaXRlbXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgbmV3IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0oXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC50eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXNvbHZlX2lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50X2lkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zZWZfZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zZW9fZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zb3J0X3ByaW9yaXR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuZGlzcGxheV9vbmx5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuaW1hZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zZW9fcGFnZV90aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLnNlb19rZXl3b3JkcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLnNob3J0X2Rlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cmVlX2l0ZW1zO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1RyZWVJdGVtKFxuICAgICAgICByZWNvcmQ6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1SZWNvcmQsXG4gICAgKTogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSB7XG4gICAgICAgIHJldHVybiBuZXcgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbShcbiAgICAgICAgICAgIHJlY29yZC50eXBlLFxuICAgICAgICAgICAgcmVjb3JkLmlkLFxuICAgICAgICAgICAgcmVjb3JkLnBhcmVudF9pZCxcbiAgICAgICAgICAgIHJlY29yZC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHJlY29yZC5zZWZfZGVzY3JpcHRpb24sXG4gICAgICAgICAgICByZWNvcmQuc2hvcnRfZGVzY3JpcHRpb24sXG4gICAgICAgICAgICByZWNvcmQuc29ydF9wcmlvcml0eSxcbiAgICAgICAgICAgIHJlY29yZC5hY3RpdmUsXG4gICAgICAgICAgICByZWNvcmQuZGlzcGxheV9vbmx5LFxuICAgICAgICAgICAgcmVjb3JkLmltYWdlLFxuICAgICAgICAgICAgcmVjb3JkLnNlb19wYWdlX3RpdGxlLFxuICAgICAgICAgICAgcmVjb3JkLnNlb19rZXl3b3JkcyxcbiAgICAgICAgICAgIHJlY29yZC5zZW9fZGVzY3JpcHRpb24sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzSUQoaWQ6IHN0cmluZyk6IEVzb2x2ZUNhdGVnb3J5SWRlbnRpZmllciB8IG51bGwge1xuICAgICAgICBsZXQgdHlwZTogJ2NhdGVnb3J5JyB8ICdzdWJjYXRlZ29yeSc7XG4gICAgICAgIGxldCBlc29sdmVfaWQ6IG51bWJlciB8IHN0cmluZztcblxuICAgICAgICBjb25zdCB0eXBlX2NvZGVfcmVnZXggPSAvXjw8KENBVHxTVUIpPj4vZztcbiAgICAgICAgY29uc3QgbWF0Y2hfcmVzdWx0cyA9IGlkLm1hdGNoKHR5cGVfY29kZV9yZWdleCk7XG5cbiAgICAgICAgaWYgKG1hdGNoX3Jlc3VsdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVfY29kZSA9IG1hdGNoX3Jlc3VsdHNbMF07XG5cbiAgICAgICAgICAgIHR5cGUgPSB0eXBlX2NvZGUgPT09ICc8PENBVD4+JyA/ICdjYXRlZ29yeScgOiAnc3ViY2F0ZWdvcnknO1xuICAgICAgICAgICAgZXNvbHZlX2lkID0gaWQucmVwbGFjZSh0eXBlX2NvZGVfcmVnZXgsICcnKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgIGVzb2x2ZV9pZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iXX0=
@@ -1,7 +1,4 @@
1
- export * from './esolve-subcategory-record.interface';
2
- export * from './esolve-category-record.interface';
3
- export * from './esolve-category-tree-item.model';
4
- export * from './esolve-category-tree-item-record.interface';
5
- export * from './esolve-category-tree-item-options.interface';
1
+ export * from './classes';
2
+ export * from './interfaces';
6
3
  export * from './esolve-category-tree.service';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2F0ZWdvcnktdHJlZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN1YmNhdGVnb3J5LXJlY29yZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2F0ZWdvcnktcmVjb3JkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLWl0ZW0ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2F0ZWdvcnktdHJlZS1pdGVtLXJlY29yZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2F0ZWdvcnktdHJlZS1pdGVtLW9wdGlvbnMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWNhdGVnb3J5LXRyZWUuc2VydmljZSc7XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2F0ZWdvcnktdHJlZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUU3QixjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWNhdGVnb3J5LXRyZWUuc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhdGVnb3J5LWlkZW50aWZpZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2NhdGVnb3J5LXRyZWUvaW50ZXJmYWNlcy9lc29sdmUtY2F0ZWdvcnktaWRlbnRpZmllci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlQ2F0ZWdvcnlJZGVudGlmaWVyIHtcbiAgICB0eXBlOiAnY2F0ZWdvcnknIHwgJ3N1YmNhdGVnb3J5JztcbiAgICBlc29sdmVfaWQ6IG51bWJlciB8IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhdGVnb3J5LXJlY29yZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2F0ZWdvcnktdHJlZS9pbnRlcmZhY2VzL2Vzb2x2ZS1jYXRlZ29yeS1yZWNvcmQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTdWJjYXRlZ29yeVJlY29yZCB9IGZyb20gJy4vZXNvbHZlLXN1YmNhdGVnb3J5LXJlY29yZC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVzb2x2ZUNhdGVnb3J5UmVjb3JkIHtcbiAgICB0eXBlOiAnY2F0ZWdvcnknO1xuXG4gICAgbWVudV9pZDogc3RyaW5nO1xuICAgIG93bmVyX21lbnVfaWQ6IHN0cmluZztcblxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgc2VmX2Rlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgc2VvX2Rlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgc29ydF9wcmlvcml0eTogbnVtYmVyO1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbiAgICBkaXNwbGF5X29ubHk6IGJvb2xlYW47XG4gICAgc2VvX3BhZ2VfdGl0bGU6IHN0cmluZztcbiAgICBzZW9fa2V5d29yZHM6IHN0cmluZztcbiAgICBzaG9ydF9kZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGltYWdlOiBzdHJpbmc7XG5cbiAgICB0b3RhbF9zdG9jaz86IG51bWJlcjtcbiAgICBjaGlsZHJlbjogKEVzb2x2ZUNhdGVnb3J5UmVjb3JkIHwgRXNvbHZlU3ViY2F0ZWdvcnlSZWNvcmQpW107XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhdGVnb3J5LXRyZWUtaXRlbS1vcHRpb25zLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXRlZ29yeS10cmVlL2ludGVyZmFjZXMvZXNvbHZlLWNhdGVnb3J5LXRyZWUtaXRlbS1vcHRpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFc29sdmVDYXRlZ29yeVRyZWVJdGVtT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVkIElELiBEb2VzIG5vdCByZXF1aXJlIHR5cGUgdG8gYmUgc2V0LlxuICAgICAqL1xuICAgIGlkPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFR5cGUgY2F0ZWdvcnkgdHJlZSBpdGVtLiBSZXF1aXJlZCBmb3IgaWYgZXNvbHZlX2lkIG9yIHNlZl9kZXNjcmlwdGlvbiBpcyBzZXRcbiAgICAgKi9cbiAgICB0eXBlPzogJ2NhdGVnb3J5JyB8ICdzdWJjYXRlZ29yeSc7XG4gICAgLyoqXG4gICAgICogU2VhcmNoIGVuZ2luZSBmcmllbmRseSBkZXNjcmlwdGlvbi4gUmVxdWlyZXMgdHlwZSB0byBiZSBzZXQuXG4gICAgICovXG4gICAgc2VmX2Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIElEIGZyb20gZVNvbHZlLiBSZXF1aXJlcyB0eXBlIHRvIGJlIHNldC5cbiAgICAgKi9cbiAgICBlc29sdmVfaWQ/OiBudW1iZXIgfCBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhdGVnb3J5LXRyZWUtaXRlbS1yZWNvcmQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2NhdGVnb3J5LXRyZWUvaW50ZXJmYWNlcy9lc29sdmUtY2F0ZWdvcnktdHJlZS1pdGVtLXJlY29yZC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVJlY29yZCB7XG4gICAgdHlwZTogJ2NhdGVnb3J5JyB8ICdzdWJjYXRlZ29yeSc7XG5cbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHBhcmVudF9pZDogc3RyaW5nO1xuXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBzZWZfZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBzaG9ydF9kZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIHNvcnRfcHJpb3JpdHk6IG51bWJlcjtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgZGlzcGxheV9vbmx5OiBib29sZWFuO1xuICAgIHNlb19wYWdlX3RpdGxlOiBzdHJpbmc7XG4gICAgc2VvX2tleXdvcmRzOiBzdHJpbmc7XG4gICAgc2VvX2Rlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgaW1hZ2U6IHN0cmluZztcblxuICAgIHRvdGFsX3N0b2NrPzogbnVtYmVyO1xuICAgIGNoaWxkcmVuPzogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVJlY29yZFtdO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN1YmNhdGVnb3J5LXJlY29yZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2F0ZWdvcnktdHJlZS9pbnRlcmZhY2VzL2Vzb2x2ZS1zdWJjYXRlZ29yeS1yZWNvcmQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVzb2x2ZVN1YmNhdGVnb3J5UmVjb3JkIHtcbiAgICB0eXBlOiAnc3ViY2F0ZWdvcnknO1xuXG4gICAgaWQ6IG51bWJlcjtcbiAgICBtZW51X2lkOiBzdHJpbmc7XG4gICAgZXh0ZXJuYWxfc3lzdGVtX2NvZGU6IHN0cmluZztcbiAgICBsb2NhdGlvbl9pZDogbnVtYmVyO1xuXG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBzZWZfZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBzZW9fZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBzb3J0X3ByaW9yaXR5OiBudW1iZXI7XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIGRpc3BsYXlfb25seTogYm9vbGVhbjtcbiAgICBzZW9fcGFnZV90aXRsZTogc3RyaW5nO1xuICAgIHNlb19rZXl3b3Jkczogc3RyaW5nO1xuICAgIHNob3J0X2Rlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgaW1hZ2U6IHN0cmluZztcblxuICAgIHRvdGFsX3N0b2NrPzogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,6 @@
1
+ export * from './esolve-subcategory-record.interface';
2
+ export * from './esolve-category-record.interface';
3
+ export * from './esolve-category-tree-item-record.interface';
4
+ export * from './esolve-category-tree-item-options.interface';
5
+ export * from './esolve-category-identifier.interface';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2F0ZWdvcnktdHJlZS9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN1YmNhdGVnb3J5LXJlY29yZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2F0ZWdvcnktcmVjb3JkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLWl0ZW0tcmVjb3JkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLWl0ZW0tb3B0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY2F0ZWdvcnktaWRlbnRpZmllci5pbnRlcmZhY2UnO1xuIl19
@@ -46,10 +46,10 @@ export class EsolveConfigService {
46
46
  }
47
47
  this.error_image_path = config.error_image_path;
48
48
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: EsolveConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
50
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: EsolveConfigService, providedIn: 'root' }); }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: EsolveConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
50
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: EsolveConfigService, providedIn: 'root' }); }
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: EsolveConfigService, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.4", ngImport: i0, type: EsolveConfigService, decorators: [{
53
53
  type: Injectable,
54
54
  args: [{
55
55
  providedIn: 'root',