ng-easycommerce-v18 0.4.2 → 0.4.3-beta.1

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 (203) hide show
  1. package/README.md +132 -121
  2. package/assets/decidirFormEc.html +514 -514
  3. package/assets/ec-i18n/ct.json +286 -282
  4. package/assets/ec-i18n/en.json +12 -1
  5. package/assets/ec-i18n/es.json +445 -434
  6. package/assets/ec-i18n/fr.json +4 -0
  7. package/assets/ec-i18n/gl.json +286 -282
  8. package/assets/ec-i18n/pr.json +286 -282
  9. package/assets/images/cards-occasional.svg +21 -21
  10. package/assets/recaptcha/recaptcha-site-keys.json +3 -3
  11. package/assets/recaptcha/recaptcha-sites-prod.json +38 -38
  12. package/assets/recaptcha/recaptcha-sites.json +52 -52
  13. package/esm2022/lib/api/connection.service.mjs +1 -1
  14. package/esm2022/lib/classes/checkout/steps.mjs +1 -1
  15. package/esm2022/lib/classes/component-helper.mjs +1 -1
  16. package/esm2022/lib/classes/filters/attributes-filter.mjs +1 -1
  17. package/esm2022/lib/classes/filters/category-filter.mjs +1 -1
  18. package/esm2022/lib/classes/filters/dynamics-filter.mjs +1 -1
  19. package/esm2022/lib/classes/filters/filter-factory.mjs +1 -1
  20. package/esm2022/lib/classes/filters/filter.mjs +1 -1
  21. package/esm2022/lib/classes/filters/index.mjs +1 -1
  22. package/esm2022/lib/classes/filters/price_range-filter.mjs +1 -1
  23. package/esm2022/lib/classes/filters/sort-filter.mjs +1 -1
  24. package/esm2022/lib/classes/index.mjs +1 -1
  25. package/esm2022/lib/classes/user.mjs +1 -1
  26. package/esm2022/lib/constants/api.constants.service.mjs +1 -1
  27. package/esm2022/lib/constants/core.constants.service.mjs +1 -1
  28. package/esm2022/lib/constants/index.mjs +1 -1
  29. package/esm2022/lib/ec-components/abstractions-components/block-ec.component.mjs +1 -1
  30. package/esm2022/lib/ec-components/abstractions-components/index.mjs +1 -1
  31. package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +1 -1
  32. package/esm2022/lib/ec-components/account-ec/account-ec.component.mjs +3 -3
  33. package/esm2022/lib/ec-components/account-ec/index.mjs +1 -1
  34. package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +5 -9
  35. package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +11 -5
  36. package/esm2022/lib/ec-components/auth-ec/auth-ec.component.mjs +3 -3
  37. package/esm2022/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.mjs +3 -3
  38. package/esm2022/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.mjs +3 -3
  39. package/esm2022/lib/ec-components/auth-ec/index.mjs +1 -1
  40. package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +3 -3
  41. package/esm2022/lib/ec-components/auth-ec/password-reset-ec/password-reset-ec.component.mjs +3 -3
  42. package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +3 -3
  43. package/esm2022/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.mjs +3 -3
  44. package/esm2022/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.mjs +3 -3
  45. package/esm2022/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.mjs +3 -3
  46. package/esm2022/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.mjs +3 -3
  47. package/esm2022/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.mjs +3 -3
  48. package/esm2022/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.mjs +3 -3
  49. package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +3 -3
  50. package/esm2022/lib/ec-components/blocks-ec/blocks-ec.component.mjs +3 -3
  51. package/esm2022/lib/ec-components/blocks-ec/index.mjs +1 -1
  52. package/esm2022/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.mjs +3 -3
  53. package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +12 -3
  54. package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +3 -3
  55. package/esm2022/lib/ec-components/cart-ec/index.mjs +1 -1
  56. package/esm2022/lib/ec-components/checkout-ec/checkout-ec.component.mjs +10 -3
  57. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.mjs +6 -4
  58. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.mjs +3 -3
  59. package/esm2022/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.mjs +5 -3
  60. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +44 -4
  61. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.mjs +3 -3
  62. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/index.mjs +1 -1
  63. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +3 -3
  64. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.mjs +3 -3
  65. package/esm2022/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.mjs +3 -3
  66. package/esm2022/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.mjs +3 -3
  67. package/esm2022/lib/ec-components/checkout-ec/success-ec/success-ec.component.mjs +4 -3
  68. package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +3 -3
  69. package/esm2022/lib/ec-components/contact-ec/contact-ec.component.mjs +1 -1
  70. package/esm2022/lib/ec-components/coupon-ec/coupon-ec.component.mjs +3 -3
  71. package/esm2022/lib/ec-components/credit-account-banner-ec/credit-account-banner-ec.component.mjs +79 -0
  72. package/esm2022/lib/ec-components/faqs-ec/faqs-ec.component.mjs +3 -3
  73. package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +3 -3
  74. package/esm2022/lib/ec-components/filters-sort-ec/filters-sort-ec.component.mjs +3 -3
  75. package/esm2022/lib/ec-components/footer-ec/footer-ec.component.mjs +3 -3
  76. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +27 -13
  77. package/esm2022/lib/ec-components/home-ec/home-ec.component.mjs +3 -3
  78. package/esm2022/lib/ec-components/index.mjs +2 -1
  79. package/esm2022/lib/ec-components/price-range-filter/price-range-filter.component.mjs +3 -3
  80. package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +1 -1
  81. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +3 -3
  82. package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +3 -3
  83. package/esm2022/lib/ec-components/reviews-ec/reviews-ec.component.mjs +3 -3
  84. package/esm2022/lib/ec-components/reviews-form-ec/reviews-form-ec.component.mjs +3 -3
  85. package/esm2022/lib/ec-components/section-container-ec/section-container-ec.component.mjs +3 -3
  86. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/index.mjs +1 -1
  87. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-email-ec/share-email-ec.component.mjs +3 -3
  88. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-facebook-ec/share-facebook-ec.component.mjs +3 -3
  89. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-pinterest-ec/share-pinterest-ec.component.mjs +3 -3
  90. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-twitter-ec/share-twitter-ec.component.mjs +3 -3
  91. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-whatsapp-ec/share-whatsapp-ec.component.mjs +3 -3
  92. package/esm2022/lib/ec-components/share-ec/share-ec.component.mjs +3 -3
  93. package/esm2022/lib/ec-components/sidebar-ec/sidebar-ec.component.mjs +5 -7
  94. package/esm2022/lib/ec-components/stores-ec/stores-ec.component.mjs +3 -3
  95. package/esm2022/lib/ec-components/variants-ec/variants-ec.component.mjs +3 -3
  96. package/esm2022/lib/ec-components/widgets-ec/decidir-ec/decidir-ec.component.mjs +3 -3
  97. package/esm2022/lib/ec-components/widgets-ec/index.mjs +1 -1
  98. package/esm2022/lib/ec-components/widgets-ec/loading/index.mjs +1 -1
  99. package/esm2022/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.mjs +3 -3
  100. package/esm2022/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.mjs +3 -3
  101. package/esm2022/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.mjs +3 -3
  102. package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +3 -3
  103. package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +5 -11
  104. package/esm2022/lib/ec-components/widgets-ec/rating-ec/rating-ec.component.mjs +3 -3
  105. package/esm2022/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.mjs +3 -3
  106. package/esm2022/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.mjs +3 -3
  107. package/esm2022/lib/ec-directive/index.mjs +1 -1
  108. package/esm2022/lib/ec-directive/product-off.directive.mjs +1 -1
  109. package/esm2022/lib/ec-directive/product-stock.directive.mjs +1 -1
  110. package/esm2022/lib/ec-guards/auth.guard.mjs +1 -1
  111. package/esm2022/lib/ec-pipe/ec-currency-symbol.pipe.mjs +1 -1
  112. package/esm2022/lib/ec-pipe/ec-safe-html.pipe.mjs +1 -1
  113. package/esm2022/lib/ec-pipe/index.mjs +1 -1
  114. package/esm2022/lib/ec-services/addressing.service.mjs +10 -1
  115. package/esm2022/lib/ec-services/analytics/analytics.service.mjs +1 -1
  116. package/esm2022/lib/ec-services/analytics/doppler.service.mjs +1 -1
  117. package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +1 -1
  118. package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +1 -1
  119. package/esm2022/lib/ec-services/analytics/gtm.service.mjs +1 -1
  120. package/esm2022/lib/ec-services/analytics/index.mjs +1 -1
  121. package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +11 -11
  122. package/esm2022/lib/ec-services/auth.service.mjs +1 -1
  123. package/esm2022/lib/ec-services/auth.storage.service.mjs +1 -1
  124. package/esm2022/lib/ec-services/base-api.service.mjs +1 -1
  125. package/esm2022/lib/ec-services/blocks-repository.service.mjs +1 -1
  126. package/esm2022/lib/ec-services/blocks.service.mjs +1 -1
  127. package/esm2022/lib/ec-services/cart.service.mjs +42 -7
  128. package/esm2022/lib/ec-services/channel.service.mjs +1 -2
  129. package/esm2022/lib/ec-services/checkout.service.mjs +1 -1
  130. package/esm2022/lib/ec-services/currency.service.mjs +1 -1
  131. package/esm2022/lib/ec-services/filters.service.mjs +1 -1
  132. package/esm2022/lib/ec-services/form.service.mjs +1 -1
  133. package/esm2022/lib/ec-services/index.mjs +2 -1
  134. package/esm2022/lib/ec-services/local-storage.service.mjs +1 -1
  135. package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +1 -1
  136. package/esm2022/lib/ec-services/options.service.mjs +1 -1
  137. package/esm2022/lib/ec-services/order-utility.service.mjs +1 -1
  138. package/esm2022/lib/ec-services/orders.service.mjs +1 -1
  139. package/esm2022/lib/ec-services/pagination.service.mjs +1 -1
  140. package/esm2022/lib/ec-services/parameters.service.mjs +1 -1
  141. package/esm2022/lib/ec-services/payment.service.mjs +1 -1
  142. package/esm2022/lib/ec-services/price-visibility.service.mjs +40 -0
  143. package/esm2022/lib/ec-services/product-detail.service.mjs +45 -7
  144. package/esm2022/lib/ec-services/products.service.mjs +1 -1
  145. package/esm2022/lib/ec-services/re-captcha.service.mjs +1 -1
  146. package/esm2022/lib/ec-services/reviews.service.mjs +1 -1
  147. package/esm2022/lib/ec-services/runtime-config.service.mjs +1 -1
  148. package/esm2022/lib/ec-services/shipment.service.mjs +1 -1
  149. package/esm2022/lib/ec-services/stores.service.mjs +1 -1
  150. package/esm2022/lib/ec-services/test.service.mjs +1 -1
  151. package/esm2022/lib/ec-services/toast.service.mjs +1 -1
  152. package/esm2022/lib/interceptors/auth.interceptor.mjs +1 -1
  153. package/esm2022/lib/interceptors/index.mjs +1 -1
  154. package/esm2022/lib/interceptors/runtime-config.interceptor.mjs +1 -1
  155. package/esm2022/lib/interfaces/analytics/event-key.mjs +1 -1
  156. package/esm2022/lib/interfaces/analytics/facebook-pixel-data.mjs +1 -1
  157. package/esm2022/lib/interfaces/analytics/gtm-config.mjs +1 -1
  158. package/esm2022/lib/interfaces/analytics/index.mjs +1 -1
  159. package/esm2022/lib/interfaces/blocks.mjs +1 -1
  160. package/esm2022/lib/interfaces/checkout.mjs +1 -1
  161. package/esm2022/lib/interfaces/connection.mjs +1 -1
  162. package/esm2022/lib/interfaces/coupon.mjs +1 -1
  163. package/esm2022/lib/interfaces/currency.mjs +1 -1
  164. package/esm2022/lib/interfaces/deserializable.mjs +1 -1
  165. package/esm2022/lib/interfaces/environment.mjs +1 -1
  166. package/esm2022/lib/interfaces/faqs.mjs +1 -1
  167. package/esm2022/lib/interfaces/filter.mjs +1 -1
  168. package/esm2022/lib/interfaces/index.mjs +1 -1
  169. package/esm2022/lib/interfaces/options.mjs +1 -1
  170. package/esm2022/lib/interfaces/pagination.mjs +1 -1
  171. package/esm2022/lib/interfaces/parameter.mjs +1 -1
  172. package/esm2022/lib/interfaces/product.mjs +1 -1
  173. package/esm2022/lib/interfaces/runtime-config.mjs +1 -1
  174. package/esm2022/lib/interfaces/step.mjs +1 -1
  175. package/esm2022/lib/interfaces/storage.mjs +1 -1
  176. package/esm2022/lib/interfaces/store.mjs +1 -1
  177. package/esm2022/lib/interfaces/types/user.type.mjs +1 -1
  178. package/esm2022/lib/providers/index.mjs +1 -1
  179. package/esm2022/lib/providers/provideEnvironment.mjs +1 -1
  180. package/esm2022/lib/providers/provideRuntimeConfig.mjs +1 -1
  181. package/esm2022/lib/stores/currency.store.mjs +1 -1
  182. package/esm2022/public-api.mjs +1 -1
  183. package/fesm2022/ng-easycommerce-v18.mjs +422 -179
  184. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  185. package/lib/ec-components/account-ec/order-ec/order-ec.component.d.ts +2 -2
  186. package/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.d.ts +3 -0
  187. package/lib/ec-components/cart-ec/cart-ec.component.d.ts +4 -2
  188. package/lib/ec-components/checkout-ec/checkout-ec.component.d.ts +2 -0
  189. package/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.d.ts +1 -1
  190. package/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.d.ts +2 -0
  191. package/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.d.ts +6 -0
  192. package/lib/ec-components/checkout-ec/success-ec/success-ec.component.d.ts +1 -0
  193. package/lib/ec-components/credit-account-banner-ec/credit-account-banner-ec.component.d.ts +27 -0
  194. package/lib/ec-components/header-ec/header-ec.component.d.ts +12 -4
  195. package/lib/ec-components/index.d.ts +1 -0
  196. package/lib/ec-components/sidebar-ec/sidebar-ec.component.d.ts +2 -1
  197. package/lib/ec-components/widgets-ec/price-ec/price-ec.component.d.ts +2 -4
  198. package/lib/ec-services/addressing.service.d.ts +2 -0
  199. package/lib/ec-services/cart.service.d.ts +1 -0
  200. package/lib/ec-services/index.d.ts +1 -0
  201. package/lib/ec-services/price-visibility.service.d.ts +23 -0
  202. package/lib/ec-services/product-detail.service.d.ts +3 -0
  203. package/package.json +1 -1
@@ -215,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
215
215
  providedIn: 'root'
216
216
  }]
217
217
  }], ctorParameters: () => [] });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9jaGVja291dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQVEsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSy9DLE1BQU0sT0FBTyxlQUFlO0lBRW5CLFlBQVksR0FBZ0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELFdBQVcsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0QsaUJBQWlCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELE9BQU8sR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDM0QsWUFBWSxHQUFn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SSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQ3JGLE9BQU8sQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUMsQ0FBQTtJQUVELFdBQVcsR0FBRyxDQUFDLFNBQW1CLEVBQUUsSUFBUyxFQUFFLEVBQUU7UUFDaEQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQzlFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEI7OztZQUdJO0lBQ0wsQ0FBQyxDQUFBO0lBRUQsc0RBQXNEO0lBQzlDLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFBO3dHQTNOVyxlQUFlOzRHQUFmLGVBQWUsY0FGZixNQUFNOzs0RkFFTixlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi9jYXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGVja291dERhdGEsIElTdGVwLCBTdGVwVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FwaSc7XHJcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuL2FuYWx5dGljcyc7XHJcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBTdGVwLCBVc2VyIH0gZnJvbSAnLi4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcmRlclV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi9vcmRlci11dGlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRTZXJ2aWNlIHtcclxuXHJcblx0cHJpdmF0ZSBfY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9jb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSA9IGluamVjdChBbmFseXRpY3NTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9jb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9vcmRlclV0aWxpdHlTZXJ2aWNlOiBPcmRlclV0aWxpdHlTZXJ2aWNlID0gaW5qZWN0KE9yZGVyVXRpbGl0eVNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX3JvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblx0cHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcclxuXHJcblx0cHJpdmF0ZSBfY2FuQ2hlY2tvdXRTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHRwcml2YXRlIF9zdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0ZXBbXT4oW10pXHJcblx0cHJpdmF0ZSBfbGFzdFN0ZXBTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblx0cHJpdmF0ZSBfbG9hZGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRwcml2YXRlIF9vcmRlclN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcblx0cHJpdmF0ZSBfYXNzb2NpYXRlZERhdGFTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDaGVja291dERhdGFbXSB8IG51bGw+KG51bGwpO1xyXG5cdHByaXZhdGUgX2xvYWRpbmdTdGVwU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRwdWJsaWMgY2FuQ2hlY2tvdXQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fY2FuQ2hlY2tvdXRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHB1YmxpYyBzdGF0ZSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX3N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHRwdWJsaWMgaXNMYXN0U3RlcCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9sYXN0U3RlcFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblx0cHVibGljIGFzc29jaWF0ZWREYXRhJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fYXNzb2NpYXRlZERhdGFTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHB1YmxpYyBvcmRlciQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX29yZGVyU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHRwdWJsaWMgbG9hZGluZ1N0ZXAkOk9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdHB1YmxpYyB0b3RhbDogYW55O1xyXG5cdHB1YmxpYyBjYXJ0TG9jYWw6IGFueTtcclxuXHRwcml2YXRlIGNoZWNrb3V0RGF0YTogYW55ID0ge307XHJcblx0cHJpdmF0ZSBvcmRlcjogYW55O1xyXG5cclxuXHQvL0FQSSBNZXRob2RzXHJcblx0YmFzZUFwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5fY29uc3RzLkNIQU5ORUwgKyAnL2NoZWNrb3V0LycgKyB0aGlzLl9jYXJ0U2VydmljZS5nZXRDYXJ0VG9rZW4oKTtcclxuXHRnZXRIYXNQdXJjaGFzZUNvbmRpdGlvbnMoKSB7IHJldHVybiAnc2hvcC1hcGkvJyArIHRoaXMuX2NvbnN0cy5DSEFOTkVMICsgJy9jYXJ0cy8nICsgdGhpcy5fY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCkgKyAnL2hhc19wdXJjaGFzZV9jb25kaXRpb25zJyB9O1xyXG5cdGNvbXBsZXRlQXBpKCkgeyByZXR1cm4gdGhpcy5iYXNlQXBpKCkgKyAnL2NvbXBsZXRlJyB9O1xyXG5cclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRjb21iaW5lTGF0ZXN0KFt0aGlzLl9jYXJ0U2VydmljZS5jYXJ0SXRlbXMkLCB0aGlzLl9jYXJ0U2VydmljZS5sb2FkaW5nJF0pLnN1YnNjcmliZSgoW2l0ZW1zLCBsb2FkaW5nXSkgPT4ge1xyXG5cdFx0XHRpZiAoIWxvYWRpbmcgJiYgaXRlbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdHRoaXMuX2NhbkNoZWNrb3V0U3ViamVjdC5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmdldFRvdGFsQW1vdW50KCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy50b3RhbCA9IHJlcztcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdFx0dGhpcy5fY2FydFNlcnZpY2UuY2FydCQuc3Vic2NyaWJlKGNhcnQgPT4gY2FydCAmJiAodGhpcy5jYXJ0TG9jYWwgPSBjYXJ0KSAmJiB0aGlzLnVwZGF0ZUFzb2NpYXRlZERhdGEoY2FydCkpO1xyXG5cdFx0dGhpcy5vcmRlciQuc3Vic2NyaWJlKG9yZGVyID0+IG9yZGVyICYmIHRoaXMudXBkYXRlQXNvY2lhdGVkRGF0YShvcmRlcikpXHJcblx0fVxyXG5cclxuXHRzZXRTdGVwcyhzdGVwczogSVN0ZXBbXSkge1xyXG5cdFx0bGV0IGZpbmFsX3N0ZXBzOiBTdGVwW10gPSBbXTtcclxuXHRcdHN0ZXBzLmZvckVhY2goKHN0ZXAsIGkpID0+IGZpbmFsX3N0ZXBzLnB1c2gobmV3IFN0ZXAoc3RlcC5uYW1lLCBzdGVwLnByaW9yaXR5IHx8IChpICsgMSksIHN0ZXAubGFiZWwsIHN0ZXAuc3RhdGUpKSk7XHJcblx0XHR0aGlzLl9zdGF0ZVN1YmplY3QubmV4dChmaW5hbF9zdGVwcyk7XHJcblx0XHRpZiAoZmluYWxfc3RlcHMubGVuZ3RoID09IDEpIHtcclxuXHRcdFx0dGhpcy5fbGFzdFN0ZXBTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcblx0XHR9XHJcblx0XHQvLyBjb25zb2xlLmxvZyhmaW5hbF9zdGVwcyk7XHJcblx0XHRmaXJzdFZhbHVlRnJvbSh0aGlzLl9jb25uZWN0aW9uLmdldCh0aGlzLmdldEhhc1B1cmNoYXNlQ29uZGl0aW9ucygpKSkudGhlbihcclxuXHRcdFx0cmVzID0+IHtcclxuXHRcdFx0XHR0aGlzLl9hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgnY2hlY2tvdXRfaW5pdCcsIHsgLi4udGhpcy5jYXJ0TG9jYWwsIGN1cnJlbmN5OiB0aGlzLmNhcnRMb2NhbD8uY3VycmVuY3ksIHZhbHVlOiB0aGlzLmNhcnRMb2NhbD8udG90YWwgfSlcclxuXHRcdFx0fVxyXG5cdFx0KVxyXG5cdH1cclxuXHJcblx0bmV4dCgpIHtcclxuXHRcdHRoaXMuX2xvYWRpbmdTdGVwU3ViamVjdC5uZXh0KHRydWUpO1xyXG5cdFx0Y29uc3Qgc3RlcHMgPSB0aGlzLl9zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKVxyXG5cdFx0Y29uc3QgcmVhZHlTdGVwID0gc3RlcHMuZmluZEluZGV4KHN0ZXAgPT4gc3RlcC5zdGF0ZSA9PT0gJ3JlYWR5Jyk7XHJcblx0XHRpZiAoc3RlcHNbcmVhZHlTdGVwICsgMV0pIHtcclxuXHRcdFx0c3RlcHNbcmVhZHlTdGVwXS5zdGF0ZSA9ICdkb2luZydcclxuXHRcdFx0c3RlcHNbcmVhZHlTdGVwICsgMV0uc3RhdGUgPSAncmVhZHknO1xyXG5cdFx0XHRpZiAoIXN0ZXBzW3JlYWR5U3RlcCArIDJdKSB0aGlzLl9sYXN0U3RlcFN1YmplY3QubmV4dCh0cnVlKTtcclxuXHRcdFx0dGhpcy5fbG9hZGluZ1N0ZXBTdWJqZWN0Lm5leHQoZmFsc2UpXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmNvbXBsZXRlKCkudGhlbihcclxuXHRcdFx0XHRyZXMgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHJlcy5vaykge1xyXG5cdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydjaGVja291dC9vcmRlcl9zdWNjZXNzJ10pXHJcblx0XHRcdFx0XHRcdCBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuXHRcdFx0XHRcdFx0ICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xyXG5cdFx0XHRcdFx0XHQgfVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ29wZXJhdGlvbi1lcnJvcicpXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QubmV4dChmYWxzZSlcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGVyciA9PiB7XHJcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhlcnIpXHJcblx0XHRcdFx0XHR0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QubmV4dChmYWxzZSlcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdvcGVyYXRpb24tZXJyb3InKVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0KVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YmFjaygpIHtcclxuXHRcdGNvbnN0IHN0ZXBzID0gdGhpcy5fc3RhdGVTdWJqZWN0LmdldFZhbHVlKClcclxuXHRcdGNvbnN0IHJlYWR5U3RlcCA9IHN0ZXBzLmZpbmRJbmRleChzdGVwID0+IHN0ZXAuc3RhdGUgPT09ICdyZWFkeScpO1xyXG5cdFx0dGhpcy5fbGFzdFN0ZXBTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG5cdFx0aWYgKHN0ZXBzW3JlYWR5U3RlcCAtIDFdKSB7XHJcblx0XHRcdHN0ZXBzW3JlYWR5U3RlcF0uc3RhdGUgPSAncGVuZGluZydcclxuXHRcdFx0c3RlcHNbcmVhZHlTdGVwIC0gMV0uc3RhdGUgPSAncmVhZHknO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0c2V0T3JkZXIgPSAob3JkZXI6IGFueSkgPT4geyB0aGlzLm9yZGVyID0gb3JkZXIsIHRoaXMuX29yZGVyU3ViamVjdC5uZXh0KG9yZGVyKSB9O1xyXG5cdC8vZ2V0T3JkZXIgPSAoKSA9PiB0aGlzLm9yZGVyIHx8IHRoaXMub3JkZXJTdWJqZWN0LnZhbHVlO1xyXG5cclxuXHRwcml2YXRlIGNvbXBsZXRlT3JkZXIgPSAoKSA9PiBmaXJzdFZhbHVlRnJvbSh0aGlzLl9jb25uZWN0aW9uLnB1dCh0aGlzLmNvbXBsZXRlQXBpKCksIHsgZW1haWw6IHRoaXMuY2hlY2tvdXREYXRhLmVtYWlsLCBub3RlczogdGhpcy5jaGVja291dERhdGEubm90ZXMgfHwgJycgfSkpO1xyXG5cclxuXHRjb21wbGV0ZSA9IGFzeW5jICgpID0+IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHRoaXMuX2xvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcblx0XHRcdGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbXBsZXRlT3JkZXIoKTtcclxuXHRcdFx0XHJcblx0XHRcdGlmIChyZXN1bHQgJiYgcmVzdWx0LmVycm9yKSB7XHJcblx0XHRcdFx0dGhpcy5fY2FydFNlcnZpY2UuY2hhbmdlSGF2ZVRvVXBkYXRlKGZhbHNlKTtcclxuXHRcdFx0XHR0aGlzLl9sb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHRcdFx0XHRyZXR1cm4gKHsgb2s6IGZhbHNlLCByZXF1aXJlX2xvZ2luOiB0cnVlLCBtZXNzYWdlOiAnbm90LWNvbXBsZXRlZCcgfSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuc2V0T3JkZXIocmVzdWx0KTtcclxuXHRcdFx0dGhpcy5fYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3B1cmNoYXNlJywgeyAuLi5yZXN1bHQsIGN1cnJlbmN5OiByZXN1bHQuY3VycmVuY3ksIHZhbHVlOiByZXN1bHQudG90YWwgfSk7XHJcblx0XHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmNsZWFyQW5kUmVzZXRDYXJ0KCk7XHJcblx0XHRcdHRoaXMuX2NhbkNoZWNrb3V0U3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHRcdFx0Ly90aGlzLl9vblJlYWR5U3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHRcdFx0dGhpcy5fbG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XHJcblx0XHRcdFxyXG5cdFx0XHQvLyDimqDvuI8gRklYOiBSZXNldCBjaGVja291dCBkYXRhIGFmdGVyIG9yZGVyIGNvbXBsZXRpb25cclxuXHRcdFx0dGhpcy5yZXNldENoZWNrb3V0U3RhdGUoKTtcclxuXHJcblx0XHRcdHJldHVybiAoeyBvazogdHJ1ZSwgcmVxdWlyZV9sb2dpbjogZmFsc2UsIG1lc3NhZ2U6ICcnIH0pO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0dGhpcy5fbG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGNvbXBsZXRlOicsIGVycm9yKTtcclxuXHJcblx0XHRcdHJldHVybiB7IG9rOiBmYWxzZSwgcmVxdWlyZV9sb2dpbjogZmFsc2UsIG1lc3NhZ2U6ICdBbiBlcnJvciBvY2N1cnJlZCcgfTtcclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHQvLyB1cGRhdGVBc29jaWF0ZWREYXRhID0gKGNhcnQ6IGFueSkgPT4ge1xyXG5cdC8vIFx0bGV0IHJlc3VsdCA9IHRoaXMuX29yZGVyVXRpbGl0eVNlcnZpY2UuZ2V0UHJvbW90aW9ucyhjYXJ0KTtcclxuXHQvLyBcdGNvbnN0IHVzZXJQcm9maWxlOiBVc2VyID0gVXNlci5mcm9tSnNvbih0aGlzLl9hdXRoU2VydmljZS5nZXRVc2VyUHJvZmlsZUFzVXNlcigpKTtcclxuXHQvLyBcdGlmIChyZXN1bHQpIHtcclxuXHQvLyBcdFx0aWYgKHVzZXJQcm9maWxlLmlzV2hvbGVzYWxlcigpICYmIGNhcnQudG90YWxzLnRheGVzICE9IDApIHtcclxuXHQvLyBcdFx0XHRsZXQgdG90YWwgPSB7IC4uLnJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gfTtcclxuXHQvLyBcdFx0XHRyZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdID0ge1xyXG5cdC8vIFx0XHRcdFx0dHlwZTogJ3RheGVzJyxcclxuXHQvLyBcdFx0XHRcdG5hbWU6ICd0YXhlcycsXHJcblx0Ly8gXHRcdFx0XHRhbW91bnQ6IGNhcnQudG90YWxzLnRheGVzXHJcblx0Ly8gXHRcdFx0fVxyXG5cdC8vIFx0XHRcdHJlc3VsdC5wdXNoKHRvdGFsKTtcclxuXHQvLyBcdFx0fVxyXG5cdC8vIFx0XHRsZXQgc2hpcG1lbnQgPSByZXN1bHQ/LmZpbmQoKHByb21vdGlvbjogYW55KSA9PiBwcm9tb3Rpb24udHlwZSA9PSBcInNoaXBtZW50XCIpO1xyXG5cdC8vIFx0XHRpZiAoIXNoaXBtZW50ICYmIGNhcnQudG90YWxzLnNoaXBwaW5nICE9IDApIHtcclxuXHJcblx0Ly8gXHRcdFx0aWYgKHJlc3VsdD8ubGVuZ3RoICYmICFyZXN1bHQuZmluZCgoaXRlbTogYW55KSA9PiBpdGVtLnR5cGUgPT09IFwic2hpcG1lbnRcIikpIHtcclxuXHQvLyBcdFx0XHRcdGxldCB0b3RhbCA9IHsgLi4ucmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSB9O1xyXG5cdC8vIFx0XHRcdFx0cmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSA9IHtcclxuXHQvLyBcdFx0XHRcdFx0dHlwZTogJ3NoaXBtZW50JyxcclxuXHQvLyBcdFx0XHRcdFx0bmFtZTogJ3NoaXBtZW50JyxcclxuXHQvLyBcdFx0XHRcdFx0YW1vdW50OiBjYXJ0LnRvdGFscy5zaGlwcGluZ1xyXG5cdC8vIFx0XHRcdFx0fVxyXG5cdC8vIFx0XHRcdFx0cmVzdWx0LnB1c2godG90YWwpO1xyXG5cdC8vIFx0XHRcdH1cclxuXHQvLyBcdFx0fVxyXG5cdC8vIFx0XHR0aGlzLl9hc3NvY2lhdGVkRGF0YVN1YmplY3QubmV4dChyZXN1bHQpO1xyXG5cdC8vIFx0fVxyXG5cdC8vIH1cclxuXHR1cGRhdGVBc29jaWF0ZWREYXRhID0gKGNhcnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9vcmRlclV0aWxpdHlTZXJ2aWNlLmdldFByb21vdGlvbnMoY2FydCk7XHJcblx0XHRpZiAoY2FydC50b3RhbHMudGF4ZXMgIT0gMCAmJiByZXN1bHQgJiYgcmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuXHRcdFx0bGV0IHRvdGFsID0geyAuLi5yZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdIH07XHJcblx0XHRcdHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gPSB7XHJcblx0XHRcdFx0dHlwZTogJ3RheGVzJyxcclxuXHRcdFx0XHRuYW1lOiAndGF4ZXMnLFxyXG5cdFx0XHRcdGFtb3VudDogY2FydC50b3RhbHMudGF4ZXNcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXN1bHQucHVzaCh0b3RhbCk7XHJcblx0XHR9XHJcbiAgICAgICAgbGV0IHNoaXBtZW50ID0gcmVzdWx0Py5maW5kKHByb21vdGlvbiA9PiBwcm9tb3Rpb24udHlwZSA9PSBcInNoaXBtZW50XCIpO1xyXG4gICAgICAgIGlmICghc2hpcG1lbnQgJiYgY2FydC50b3RhbHMuc2hpcHBpbmcgIT0gMCkge1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3VsdD8ubGVuZ3RoICYmICFyZXN1bHQuZmluZChpdGVtID0+IGl0ZW0udHlwZSA9PT0gXCJzaGlwbWVudFwiKSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHRvdGFsID0geyAuLi5yZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdIH07XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzaGlwbWVudCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3NoaXBtZW50JyxcclxuICAgICAgICAgICAgICAgICAgICBhbW91bnQ6IGNhcnQudG90YWxzLnNoaXBwaW5nXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0b3RhbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblx0XHR0aGlzLl9hc3NvY2lhdGVkRGF0YVN1YmplY3QubmV4dChyZXN1bHQgPz8gbnVsbCk7XHJcbiAgICB9XHJcblxyXG5cdGdldFN0ZXBEYXRhID0gKHN0ZXBfbmFtZTogU3RlcFR5cGUpID0+IHtcclxuXHRcdGxldCBzdGVwX3Jlc3VsdCA9IHRoaXMuX3N0YXRlU3ViamVjdC5nZXRWYWx1ZSgpLmZpbmQoc3RlcCA9PiBzdGVwLm5hbWUgPT0gc3RlcF9uYW1lKTtcclxuXHRcdHJldHVybiAoc3RlcF9yZXN1bHQgJiYgc3RlcF9yZXN1bHQuZGF0YSk7XHJcblx0fVxyXG5cclxuXHRzZXRTdGVwRGF0YSA9IChzdGVwX25hbWU6IFN0ZXBUeXBlLCBkYXRhOiBhbnkpID0+IHtcclxuXHRcdGxldCBzdGVwID0gdGhpcy5fc3RhdGVTdWJqZWN0LmdldFZhbHVlKCkuZmluZChzdGVwID0+IHN0ZXAubmFtZSA9PSBzdGVwX25hbWUpO1xyXG5cdFx0c3RlcD8ucmVhZHkoZGF0YSk7XHJcblx0XHQvKiBpZiAoZGF0YSkge1xyXG5cdFx0XHR0aGlzLl9vcmRlclN1YmplY3QubmV4dChkYXRhKTtcclxuXHRcdFx0dGhpcy50b3RhbCA9IGRhdGEudG90YWxzLnRvdGFsO1xyXG5cdFx0fSAqL1xyXG5cdH1cclxuXHJcblx0Ly8g4pqg77iPIEZJWDogUmVzZXQgY2hlY2tvdXQgc3RhdGUgYWZ0ZXIgb3JkZXIgY29tcGxldGlvblxyXG5cdHByaXZhdGUgcmVzZXRDaGVja291dFN0YXRlID0gKCkgPT4ge1xyXG5cdFx0dGhpcy5jaGVja291dERhdGEgPSB7fTtcclxuXHRcdHRoaXMub3JkZXIgPSBudWxsO1xyXG5cdFx0dGhpcy5fc3RhdGVTdWJqZWN0Lm5leHQoW10pO1xyXG5cdFx0dGhpcy5fYXNzb2NpYXRlZERhdGFTdWJqZWN0Lm5leHQobnVsbCk7XHJcblx0XHR0aGlzLl9sYXN0U3RlcFN1YmplY3QubmV4dChmYWxzZSk7XHJcblx0fVxyXG59XHJcbiJdfQ==
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9jaGVja291dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQVEsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSy9DLE1BQU0sT0FBTyxlQUFlO0lBRW5CLFlBQVksR0FBZ0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELFdBQVcsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0QsaUJBQWlCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELE9BQU8sR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDM0QsWUFBWSxHQUFn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SSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQ3JGLE9BQU8sQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUMsQ0FBQTtJQUVELFdBQVcsR0FBRyxDQUFDLFNBQW1CLEVBQUUsSUFBUyxFQUFFLEVBQUU7UUFDaEQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQzlFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEI7OztZQUdJO0lBQ0wsQ0FBQyxDQUFBO0lBRUQsc0RBQXNEO0lBQzlDLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFBO3dHQTNOVyxlQUFlOzRHQUFmLGVBQWUsY0FGZixNQUFNOzs0RkFFTixlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBDaGVja291dERhdGEsIElTdGVwLCBTdGVwVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vYW5hbHl0aWNzJztcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3RlcCwgVXNlciB9IGZyb20gJy4uL2NsYXNzZXMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBPcmRlclV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi9vcmRlci11dGlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4vdG9hc3Quc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0U2VydmljZSB7XG5cblx0cHJpdmF0ZSBfY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfY29ubmVjdGlvbjogQ29ubmVjdGlvblNlcnZpY2UgPSBpbmplY3QoQ29ubmVjdGlvblNlcnZpY2UpO1xuXHRwcml2YXRlIF9hbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpO1xuXHRwcml2YXRlIF9jb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSk7XG5cdHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG5cdHByaXZhdGUgX29yZGVyVXRpbGl0eVNlcnZpY2U6IE9yZGVyVXRpbGl0eVNlcnZpY2UgPSBpbmplY3QoT3JkZXJVdGlsaXR5U2VydmljZSk7XG5cdHByaXZhdGUgX3JvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cdHByaXZhdGUgX3RvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG5cblx0cHJpdmF0ZSBfY2FuQ2hlY2tvdXRTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oKTtcblx0cHJpdmF0ZSBfc3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdGVwW10+KFtdKVxuXHRwcml2YXRlIF9sYXN0U3RlcFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblx0cHJpdmF0ZSBfbG9hZGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblx0cHJpdmF0ZSBfb3JkZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuXHRwcml2YXRlIF9hc3NvY2lhdGVkRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENoZWNrb3V0RGF0YVtdIHwgbnVsbD4obnVsbCk7XG5cdHByaXZhdGUgX2xvYWRpbmdTdGVwU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG5cdHB1YmxpYyBjYW5DaGVja291dCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9jYW5DaGVja291dFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cdHB1YmxpYyBzdGF0ZSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX3N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcblx0cHVibGljIGlzTGFzdFN0ZXAkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fbGFzdFN0ZXBTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXHRwdWJsaWMgYXNzb2NpYXRlZERhdGEkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl9hc3NvY2lhdGVkRGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cdHB1YmxpYyBvcmRlciQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX29yZGVyU3ViamVjdC5hc09ic2VydmFibGUoKTtcblx0cHVibGljIGxvYWRpbmdTdGVwJDpPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fbG9hZGluZ1N0ZXBTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG5cdHB1YmxpYyB0b3RhbDogYW55O1xuXHRwdWJsaWMgY2FydExvY2FsOiBhbnk7XG5cdHByaXZhdGUgY2hlY2tvdXREYXRhOiBhbnkgPSB7fTtcblx0cHJpdmF0ZSBvcmRlcjogYW55O1xuXG5cdC8vQVBJIE1ldGhvZHNcblx0YmFzZUFwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5fY29uc3RzLkNIQU5ORUwgKyAnL2NoZWNrb3V0LycgKyB0aGlzLl9jYXJ0U2VydmljZS5nZXRDYXJ0VG9rZW4oKTtcblx0Z2V0SGFzUHVyY2hhc2VDb25kaXRpb25zKCkgeyByZXR1cm4gJ3Nob3AtYXBpLycgKyB0aGlzLl9jb25zdHMuQ0hBTk5FTCArICcvY2FydHMvJyArIHRoaXMuX2NhcnRTZXJ2aWNlLmdldENhcnRUb2tlbigpICsgJy9oYXNfcHVyY2hhc2VfY29uZGl0aW9ucycgfTtcblx0Y29tcGxldGVBcGkoKSB7IHJldHVybiB0aGlzLmJhc2VBcGkoKSArICcvY29tcGxldGUnIH07XG5cblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRjb21iaW5lTGF0ZXN0KFt0aGlzLl9jYXJ0U2VydmljZS5jYXJ0SXRlbXMkLCB0aGlzLl9jYXJ0U2VydmljZS5sb2FkaW5nJF0pLnN1YnNjcmliZSgoW2l0ZW1zLCBsb2FkaW5nXSkgPT4ge1xuXHRcdFx0aWYgKCFsb2FkaW5nICYmIGl0ZW1zLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0dGhpcy5fY2FuQ2hlY2tvdXRTdWJqZWN0Lm5leHQodHJ1ZSk7XG5cdFx0XHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmdldFRvdGFsQW1vdW50KCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHRoaXMudG90YWwgPSByZXM7XG5cdFx0XHRcdH0pXG5cdFx0XHR9XG5cdFx0fSlcblx0XHR0aGlzLl9jYXJ0U2VydmljZS5jYXJ0JC5zdWJzY3JpYmUoY2FydCA9PiBjYXJ0ICYmICh0aGlzLmNhcnRMb2NhbCA9IGNhcnQpICYmIHRoaXMudXBkYXRlQXNvY2lhdGVkRGF0YShjYXJ0KSk7XG5cdFx0dGhpcy5vcmRlciQuc3Vic2NyaWJlKG9yZGVyID0+IG9yZGVyICYmIHRoaXMudXBkYXRlQXNvY2lhdGVkRGF0YShvcmRlcikpXG5cdH1cblxuXHRzZXRTdGVwcyhzdGVwczogSVN0ZXBbXSkge1xuXHRcdGxldCBmaW5hbF9zdGVwczogU3RlcFtdID0gW107XG5cdFx0c3RlcHMuZm9yRWFjaCgoc3RlcCwgaSkgPT4gZmluYWxfc3RlcHMucHVzaChuZXcgU3RlcChzdGVwLm5hbWUsIHN0ZXAucHJpb3JpdHkgfHwgKGkgKyAxKSwgc3RlcC5sYWJlbCwgc3RlcC5zdGF0ZSkpKTtcblx0XHR0aGlzLl9zdGF0ZVN1YmplY3QubmV4dChmaW5hbF9zdGVwcyk7XG5cdFx0aWYgKGZpbmFsX3N0ZXBzLmxlbmd0aCA9PSAxKSB7XG5cdFx0XHR0aGlzLl9sYXN0U3RlcFN1YmplY3QubmV4dCh0cnVlKTtcblx0XHR9XG5cdFx0Ly8gY29uc29sZS5sb2coZmluYWxfc3RlcHMpO1xuXHRcdGZpcnN0VmFsdWVGcm9tKHRoaXMuX2Nvbm5lY3Rpb24uZ2V0KHRoaXMuZ2V0SGFzUHVyY2hhc2VDb25kaXRpb25zKCkpKS50aGVuKFxuXHRcdFx0cmVzID0+IHtcblx0XHRcdFx0dGhpcy5fYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ2NoZWNrb3V0X2luaXQnLCB7IC4uLnRoaXMuY2FydExvY2FsLCBjdXJyZW5jeTogdGhpcy5jYXJ0TG9jYWw/LmN1cnJlbmN5LCB2YWx1ZTogdGhpcy5jYXJ0TG9jYWw/LnRvdGFsIH0pXG5cdFx0XHR9XG5cdFx0KVxuXHR9XG5cblx0bmV4dCgpIHtcblx0XHR0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QubmV4dCh0cnVlKTtcblx0XHRjb25zdCBzdGVwcyA9IHRoaXMuX3N0YXRlU3ViamVjdC5nZXRWYWx1ZSgpXG5cdFx0Y29uc3QgcmVhZHlTdGVwID0gc3RlcHMuZmluZEluZGV4KHN0ZXAgPT4gc3RlcC5zdGF0ZSA9PT0gJ3JlYWR5Jyk7XG5cdFx0aWYgKHN0ZXBzW3JlYWR5U3RlcCArIDFdKSB7XG5cdFx0XHRzdGVwc1tyZWFkeVN0ZXBdLnN0YXRlID0gJ2RvaW5nJ1xuXHRcdFx0c3RlcHNbcmVhZHlTdGVwICsgMV0uc3RhdGUgPSAncmVhZHknO1xuXHRcdFx0aWYgKCFzdGVwc1tyZWFkeVN0ZXAgKyAyXSkgdGhpcy5fbGFzdFN0ZXBTdWJqZWN0Lm5leHQodHJ1ZSk7XG5cdFx0XHR0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QubmV4dChmYWxzZSlcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jb21wbGV0ZSgpLnRoZW4oXG5cdFx0XHRcdHJlcyA9PiB7XG5cdFx0XHRcdFx0aWYgKHJlcy5vaykge1xuXHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnY2hlY2tvdXQvb3JkZXJfc3VjY2VzcyddKVxuXHRcdFx0XHRcdFx0IGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuXHRcdFx0XHRcdFx0ICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuXHRcdFx0XHRcdFx0IH1cblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ29wZXJhdGlvbi1lcnJvcicpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRoaXMuX2xvYWRpbmdTdGVwU3ViamVjdC5uZXh0KGZhbHNlKVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRlcnIgPT4ge1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKGVycilcblx0XHRcdFx0XHR0aGlzLl9sb2FkaW5nU3RlcFN1YmplY3QubmV4dChmYWxzZSlcblx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnb3BlcmF0aW9uLWVycm9yJylcblx0XHRcdFx0fVxuXHRcdFx0KVxuXHRcdH1cblx0fVxuXG5cdGJhY2soKSB7XG5cdFx0Y29uc3Qgc3RlcHMgPSB0aGlzLl9zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKVxuXHRcdGNvbnN0IHJlYWR5U3RlcCA9IHN0ZXBzLmZpbmRJbmRleChzdGVwID0+IHN0ZXAuc3RhdGUgPT09ICdyZWFkeScpO1xuXHRcdHRoaXMuX2xhc3RTdGVwU3ViamVjdC5uZXh0KGZhbHNlKTtcblx0XHRpZiAoc3RlcHNbcmVhZHlTdGVwIC0gMV0pIHtcblx0XHRcdHN0ZXBzW3JlYWR5U3RlcF0uc3RhdGUgPSAncGVuZGluZydcblx0XHRcdHN0ZXBzW3JlYWR5U3RlcCAtIDFdLnN0YXRlID0gJ3JlYWR5Jztcblx0XHR9XG5cdH1cblxuXHRzZXRPcmRlciA9IChvcmRlcjogYW55KSA9PiB7IHRoaXMub3JkZXIgPSBvcmRlciwgdGhpcy5fb3JkZXJTdWJqZWN0Lm5leHQob3JkZXIpIH07XG5cdC8vZ2V0T3JkZXIgPSAoKSA9PiB0aGlzLm9yZGVyIHx8IHRoaXMub3JkZXJTdWJqZWN0LnZhbHVlO1xuXG5cdHByaXZhdGUgY29tcGxldGVPcmRlciA9ICgpID0+IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2Nvbm5lY3Rpb24ucHV0KHRoaXMuY29tcGxldGVBcGkoKSwgeyBlbWFpbDogdGhpcy5jaGVja291dERhdGEuZW1haWwsIG5vdGVzOiB0aGlzLmNoZWNrb3V0RGF0YS5ub3RlcyB8fCAnJyB9KSk7XG5cblx0Y29tcGxldGUgPSBhc3luYyAoKSA9PiB7XG5cdFx0dHJ5IHtcblx0XHRcdHRoaXMuX2xvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG5cdFx0XHRsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb21wbGV0ZU9yZGVyKCk7XG5cdFx0XHRcblx0XHRcdGlmIChyZXN1bHQgJiYgcmVzdWx0LmVycm9yKSB7XG5cdFx0XHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmNoYW5nZUhhdmVUb1VwZGF0ZShmYWxzZSk7XG5cdFx0XHRcdHRoaXMuX2xvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuXHRcdFx0XHRyZXR1cm4gKHsgb2s6IGZhbHNlLCByZXF1aXJlX2xvZ2luOiB0cnVlLCBtZXNzYWdlOiAnbm90LWNvbXBsZXRlZCcgfSk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuc2V0T3JkZXIocmVzdWx0KTtcblx0XHRcdHRoaXMuX2FuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCdwdXJjaGFzZScsIHsgLi4ucmVzdWx0LCBjdXJyZW5jeTogcmVzdWx0LmN1cnJlbmN5LCB2YWx1ZTogcmVzdWx0LnRvdGFsIH0pO1xuXHRcdFx0dGhpcy5fY2FydFNlcnZpY2UuY2xlYXJBbmRSZXNldENhcnQoKTtcblx0XHRcdHRoaXMuX2NhbkNoZWNrb3V0U3ViamVjdC5uZXh0KGZhbHNlKTtcblx0XHRcdC8vdGhpcy5fb25SZWFkeVN1YmplY3QubmV4dChmYWxzZSk7XG5cdFx0XHR0aGlzLl9sb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcblx0XHRcdFxuXHRcdFx0Ly8g4pqg77iPIEZJWDogUmVzZXQgY2hlY2tvdXQgZGF0YSBhZnRlciBvcmRlciBjb21wbGV0aW9uXG5cdFx0XHR0aGlzLnJlc2V0Q2hlY2tvdXRTdGF0ZSgpO1xuXG5cdFx0XHRyZXR1cm4gKHsgb2s6IHRydWUsIHJlcXVpcmVfbG9naW46IGZhbHNlLCBtZXNzYWdlOiAnJyB9KTtcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0dGhpcy5fbG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XG5cdFx0XHRjb25zb2xlLmVycm9yKCdFcnJvciBpbiBjb21wbGV0ZTonLCBlcnJvcik7XG5cblx0XHRcdHJldHVybiB7IG9rOiBmYWxzZSwgcmVxdWlyZV9sb2dpbjogZmFsc2UsIG1lc3NhZ2U6ICdBbiBlcnJvciBvY2N1cnJlZCcgfTtcblx0XHR9XG5cblx0fVxuXG5cdC8vIHVwZGF0ZUFzb2NpYXRlZERhdGEgPSAoY2FydDogYW55KSA9PiB7XG5cdC8vIFx0bGV0IHJlc3VsdCA9IHRoaXMuX29yZGVyVXRpbGl0eVNlcnZpY2UuZ2V0UHJvbW90aW9ucyhjYXJ0KTtcblx0Ly8gXHRjb25zdCB1c2VyUHJvZmlsZTogVXNlciA9IFVzZXIuZnJvbUpzb24odGhpcy5fYXV0aFNlcnZpY2UuZ2V0VXNlclByb2ZpbGVBc1VzZXIoKSk7XG5cdC8vIFx0aWYgKHJlc3VsdCkge1xuXHQvLyBcdFx0aWYgKHVzZXJQcm9maWxlLmlzV2hvbGVzYWxlcigpICYmIGNhcnQudG90YWxzLnRheGVzICE9IDApIHtcblx0Ly8gXHRcdFx0bGV0IHRvdGFsID0geyAuLi5yZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdIH07XG5cdC8vIFx0XHRcdHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gPSB7XG5cdC8vIFx0XHRcdFx0dHlwZTogJ3RheGVzJyxcblx0Ly8gXHRcdFx0XHRuYW1lOiAndGF4ZXMnLFxuXHQvLyBcdFx0XHRcdGFtb3VudDogY2FydC50b3RhbHMudGF4ZXNcblx0Ly8gXHRcdFx0fVxuXHQvLyBcdFx0XHRyZXN1bHQucHVzaCh0b3RhbCk7XG5cdC8vIFx0XHR9XG5cdC8vIFx0XHRsZXQgc2hpcG1lbnQgPSByZXN1bHQ/LmZpbmQoKHByb21vdGlvbjogYW55KSA9PiBwcm9tb3Rpb24udHlwZSA9PSBcInNoaXBtZW50XCIpO1xuXHQvLyBcdFx0aWYgKCFzaGlwbWVudCAmJiBjYXJ0LnRvdGFscy5zaGlwcGluZyAhPSAwKSB7XG5cblx0Ly8gXHRcdFx0aWYgKHJlc3VsdD8ubGVuZ3RoICYmICFyZXN1bHQuZmluZCgoaXRlbTogYW55KSA9PiBpdGVtLnR5cGUgPT09IFwic2hpcG1lbnRcIikpIHtcblx0Ly8gXHRcdFx0XHRsZXQgdG90YWwgPSB7IC4uLnJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gfTtcblx0Ly8gXHRcdFx0XHRyZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdID0ge1xuXHQvLyBcdFx0XHRcdFx0dHlwZTogJ3NoaXBtZW50Jyxcblx0Ly8gXHRcdFx0XHRcdG5hbWU6ICdzaGlwbWVudCcsXG5cdC8vIFx0XHRcdFx0XHRhbW91bnQ6IGNhcnQudG90YWxzLnNoaXBwaW5nXG5cdC8vIFx0XHRcdFx0fVxuXHQvLyBcdFx0XHRcdHJlc3VsdC5wdXNoKHRvdGFsKTtcblx0Ly8gXHRcdFx0fVxuXHQvLyBcdFx0fVxuXHQvLyBcdFx0dGhpcy5fYXNzb2NpYXRlZERhdGFTdWJqZWN0Lm5leHQocmVzdWx0KTtcblx0Ly8gXHR9XG5cdC8vIH1cblx0dXBkYXRlQXNvY2lhdGVkRGF0YSA9IChjYXJ0OiBhbnkpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuX29yZGVyVXRpbGl0eVNlcnZpY2UuZ2V0UHJvbW90aW9ucyhjYXJ0KTtcblx0XHRpZiAoY2FydC50b3RhbHMudGF4ZXMgIT0gMCAmJiByZXN1bHQgJiYgcmVzdWx0Lmxlbmd0aCA+IDApIHtcblx0XHRcdGxldCB0b3RhbCA9IHsgLi4ucmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSB9O1xuXHRcdFx0cmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSA9IHtcblx0XHRcdFx0dHlwZTogJ3RheGVzJyxcblx0XHRcdFx0bmFtZTogJ3RheGVzJyxcblx0XHRcdFx0YW1vdW50OiBjYXJ0LnRvdGFscy50YXhlc1xuXHRcdFx0fVxuXHRcdFx0cmVzdWx0LnB1c2godG90YWwpO1xuXHRcdH1cbiAgICAgICAgbGV0IHNoaXBtZW50ID0gcmVzdWx0Py5maW5kKHByb21vdGlvbiA9PiBwcm9tb3Rpb24udHlwZSA9PSBcInNoaXBtZW50XCIpO1xuICAgICAgICBpZiAoIXNoaXBtZW50ICYmIGNhcnQudG90YWxzLnNoaXBwaW5nICE9IDApIHtcblxuICAgICAgICAgICAgaWYgKHJlc3VsdD8ubGVuZ3RoICYmICFyZXN1bHQuZmluZChpdGVtID0+IGl0ZW0udHlwZSA9PT0gXCJzaGlwbWVudFwiKSkge1xuICAgICAgICAgICAgICAgIGxldCB0b3RhbCA9IHsgLi4ucmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSB9O1xuICAgICAgICAgICAgICAgIHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzaGlwbWVudCcsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdzaGlwbWVudCcsXG4gICAgICAgICAgICAgICAgICAgIGFtb3VudDogY2FydC50b3RhbHMuc2hpcHBpbmdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2godG90YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cdFx0dGhpcy5fYXNzb2NpYXRlZERhdGFTdWJqZWN0Lm5leHQocmVzdWx0ID8/IG51bGwpO1xuICAgIH1cblxuXHRnZXRTdGVwRGF0YSA9IChzdGVwX25hbWU6IFN0ZXBUeXBlKSA9PiB7XG5cdFx0bGV0IHN0ZXBfcmVzdWx0ID0gdGhpcy5fc3RhdGVTdWJqZWN0LmdldFZhbHVlKCkuZmluZChzdGVwID0+IHN0ZXAubmFtZSA9PSBzdGVwX25hbWUpO1xuXHRcdHJldHVybiAoc3RlcF9yZXN1bHQgJiYgc3RlcF9yZXN1bHQuZGF0YSk7XG5cdH1cblxuXHRzZXRTdGVwRGF0YSA9IChzdGVwX25hbWU6IFN0ZXBUeXBlLCBkYXRhOiBhbnkpID0+IHtcblx0XHRsZXQgc3RlcCA9IHRoaXMuX3N0YXRlU3ViamVjdC5nZXRWYWx1ZSgpLmZpbmQoc3RlcCA9PiBzdGVwLm5hbWUgPT0gc3RlcF9uYW1lKTtcblx0XHRzdGVwPy5yZWFkeShkYXRhKTtcblx0XHQvKiBpZiAoZGF0YSkge1xuXHRcdFx0dGhpcy5fb3JkZXJTdWJqZWN0Lm5leHQoZGF0YSk7XG5cdFx0XHR0aGlzLnRvdGFsID0gZGF0YS50b3RhbHMudG90YWw7XG5cdFx0fSAqL1xuXHR9XG5cblx0Ly8g4pqg77iPIEZJWDogUmVzZXQgY2hlY2tvdXQgc3RhdGUgYWZ0ZXIgb3JkZXIgY29tcGxldGlvblxuXHRwcml2YXRlIHJlc2V0Q2hlY2tvdXRTdGF0ZSA9ICgpID0+IHtcblx0XHR0aGlzLmNoZWNrb3V0RGF0YSA9IHt9O1xuXHRcdHRoaXMub3JkZXIgPSBudWxsO1xuXHRcdHRoaXMuX3N0YXRlU3ViamVjdC5uZXh0KFtdKTtcblx0XHR0aGlzLl9hc3NvY2lhdGVkRGF0YVN1YmplY3QubmV4dChudWxsKTtcblx0XHR0aGlzLl9sYXN0U3RlcFN1YmplY3QubmV4dChmYWxzZSk7XG5cdH1cbn1cbiJdfQ==
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
174
174
  providedIn: 'root'
175
175
  }]
176
176
  }], ctorParameters: () => [] });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBQzFDOzs7R0FHRztBQUlILE1BQU0sT0FBTyxlQUFlO0lBQ3hCOztPQUVHO0lBQ0ssT0FBTyxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUNwRTs7T0FFRztJQUNLLFVBQVUsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7SUFDckU7O09BRUc7SUFDSyxXQUFXLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ2xFOztPQUVHO0lBQ0ssUUFBUSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDekQ7O09BRUc7SUFDSyxTQUFTLEdBQW9CLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDaEU7O09BRUc7SUFDSyxnQkFBZ0IsR0FBb0MsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbkY7O09BRUc7SUFDSyxvQkFBb0IsR0FBeUIsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUE7SUFD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YSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xELElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDOUMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckQsQ0FBQztJQUNMLENBQUM7d0dBbktRLGVBQWU7NEdBQWYsZUFBZSxjQUZaLE1BQU07OzRGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UsIENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9hcGknO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEN1cnJlbmN5Q29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi9jaGFubmVsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXJyZW5jeVN0b3JlIH0gZnJvbSAnLi4vc3RvcmVzJztcclxuLyoqXHJcbiAqIFNlcnZpY2lvIGVuY2FyZ2FkbyBkZSBtYW5lamFyIHRvZG8gbG8gcXVlIGVzdGUgcmVsYWNpb25hZG8gYSBsYSBtb25lZGFcclxuICogcXVlIG1hbmVqYSBsYSBhcGxpY2FjacOzbi5cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lTZXJ2aWNlIHtcclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RhbnRlcyBkZSBjb3JlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2NvbnN0czogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0YW50ZXMgZGUgbGEgQVBJXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2FwaUNvbnN0czogQXBpQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChBcGlDb25zdGFudHNTZXJ2aWNlKVxyXG4gICAgLyoqXHJcbiAgICAgKiBNYW5lamEgbGFzIHBldGljaW9uZXMgYSBsYSBBUElcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfY29ubmVjdGlvbjogQ29ubmVjdGlvblNlcnZpY2UgPSBpbmplY3QoQ29ubmVjdGlvblNlcnZpY2UpXHJcbiAgICAvKipcclxuICAgICAqIFNlcnZpY2lvIGRlIGNhbmFsZXNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfY2hhbm5lbDogQ2hhbm5lbFNlcnZpY2UgPSBpbmplY3QoQ2hhbm5lbFNlcnZpY2UpXHJcbiAgICAvKipcclxuICAgICAqIENvbnRpZW5lIGVsIGNhbmFsIGFjdGl2byBkZSBsYSBBUEkuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2NoYW5uZWwkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl9jaGFubmVsLmdldENoYW5uZWwoKTtcclxuICAgIC8qKlxyXG4gICAgICogU3ViamVjdCBwYXJhIG1hbmVqYXIgbGEgbW9uZWRhIGFjdHVhbC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfY3VycmVuY3lTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8Q3VycmVuY3lDb25maWc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSlcclxuICAgIC8qKlxyXG4gICAgICogU3ViamVjdCBwYXJhIG1hbmVqYXIgbGEgbGlzdGEgZGUgbW9uZWRhcyBkZSBsYSBhcGxpY2FjacOzbi5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfY3VycmVuY3lMaXN0U3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKVxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJqZWN0IHBhcmEgaW5kaWNhciBsYSBhY3R1YWxpemFjacOzbiBkZSB1biBlc3RhZG8uXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3VwZGF0ZVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpXHJcblxyXG4gICAgcHVibGljIGN1cnJlbmN5JDogT2JzZXJ2YWJsZTxDdXJyZW5jeUNvbmZpZz4gPSB0aGlzLl9jdXJyZW5jeVN1YmplY3QuYXNPYnNlcnZhYmxlKClcclxuICAgIHB1YmxpYyBjdXJyZW5jeUxpc3QkOiBPYnNlcnZhYmxlPGFueVtdPiA9IHRoaXMuX2N1cnJlbmN5TGlzdFN1YmplY3QuYXNPYnNlcnZhYmxlKClcclxuICAgIHB1YmxpYyB1cGRhdGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fdXBkYXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvL0FQSSBVUkxcclxuICAgIC8qKlxyXG4gICAgICogRGV2dWVsdmUgbGEgVVJMIHBhcmEgb2J0ZW5lciBsaXN0YSBkZSBtb25lZGFzIGRlIGxhIGFwbGljYWNpw7NuLlxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Q3VycmVuY3lMaXN0QXBpKCkgeyByZXR1cm4gYCR7dGhpcy5fYXBpQ29uc3RzLlNIT1BfQVBJX1VSTH0vY3VycmVuY2llc2AgfTtcclxuICAgIC8qKlxyXG4gICAgICogRGV2dWVsdmUgbGEgVVJMIHBhcmEgb2J0ZW5lciBsYSBjb252ZXJ0aWJpbGlkYWQgZGUgdW5hIG1vbmVkYS4gXHJcbiAgICAgKiBAcGFyYW0gYmFzZUN1cnJlbmN5IE1vbmVkYSBiYXNlXHJcbiAgICAgKiBAcGFyYW0gdGFyZ2V0Q3VycmVuY3kgTW9uZWRhIGRlc3Rpbm9cclxuICAgICAqIEByZXR1cm5zIFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldENvbnZlcnRpYmlsaXR5QXBpKGJhc2VDdXJyZW5jeTogYW55LCB0YXJnZXRDdXJyZW5jeTogYW55KSB7IHJldHVybiBgJHt0aGlzLl9hcGlDb25zdHMuU0hPUF9BUElfVVJMfS9jdXJyZW5jaWVzP2Jhc2VDdXJyZW5jeT0ke2Jhc2VDdXJyZW5jeX0mdGFyZ2V0Q3VycmVuY3k9JHt0YXJnZXRDdXJyZW5jeX1gIH1cclxuICAgIC8qKlxyXG4gICAgICogU3RvcmUgcXVlIGd1YXJkYXJhIGxhIG1vbmVkYSBhY3R1YWwgcXVlIG1hbmVqYSBsYSBhcGxpY2FjacOzbi5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGN1cnJlbmN5U3RvcmUgPSBpbmplY3QoQ3VycmVuY3lTdG9yZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5fY2hhbm5lbCQuc3Vic2NyaWJlKGNoYW5uZWwgPT4ge1xyXG4gICAgICAgICAgICBjaGFubmVsLmFwcGx5Q3VycmVuY3lFeGNoYW5nZSA/IHRoaXMubG9hZEN1cnJlbmN5TGlzdCgpIDogdGhpcy5sb2FkRGVmYXVsdEN1cnJlbmN5KGNoYW5uZWwuYmFzZUN1cnJlbmN5KTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICAgKiAgU2UgY2FyZ2EgbGEgbW9uZWRhIHBvciBkZWZlY3RvLlxyXG4gICAgICAgKi9cclxuICAgIHByaXZhdGUgbG9hZERlZmF1bHRDdXJyZW5jeShjdXJyZW5jeTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fY29uc3RzLnNldEN1cnJlbmN5KGN1cnJlbmN5KTtcclxuICAgICAgICB0aGlzLmxvYWQoKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogIENhcmdhIGxhIGxpc3RhIGRlIG1vbmVkYXMvY3VycmVuY2llcy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkQ3VycmVuY3lMaXN0KCkge1xyXG4gICAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2Nvbm5lY3Rpb24uZ2V0KHRoaXMuZ2V0Q3VycmVuY3lMaXN0QXBpKCkpKVxyXG4gICAgICAgICAgICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3VycmVuY3lMaXN0U3ViamVjdC5uZXh0KHJlcylcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnN0cy5zZXRDdXJyZW5jeVR5cGVDb25maWcocmVzKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkKClcclxuICAgICAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqICBjYWxjdWxhIGxhIGNvbnZldGliaWxpZGFkIGRlbCBwcmVjaW8gIHBhc2FkbyBwb3IgcGFyYW1lbnRybyBzZWd1biBlc3RhIGZvcm11bGE6XHJcbiAgICAgKiAqKmMgPSBhICogYioqIGRvbmRlICpjPW1vbmVkYSBkZXNwdWVzIGRlbCBjYW1iaW8qLCAqYT12YWxvciBxdWUgcXVpZXJvIGNhbWJpYXIqIHkgKmI9cmF0aW8gZGUgY2FtYmlvKi4gXHJcbiAgICAgKiBAcGFyYW0gcHJpY2UgUHJlY2lvIGEgY2FtYmlhclxyXG4gICAgICogQHBhcmFtIHJhdGlvIFJhdGlvIGRlIGNhbWJpb1xyXG4gICAgICogQHJldHVybnMgU2kgZWwgcmF0aW8gbm8gZXMgbnVsbCwgcmV0b3JuYSBlbCBwcmVjaW8gY2FtYmlhZG8sIHNpbm8gcmV0b3JuYSBlbCBwcmVjaW8gc2luIGNhbWJpb3MuIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2FsY3VsYXRlQ29udmV0aWJpbGl0eShwcmljZTogbnVtYmVyLCByYXRpbzogbnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuIHJhdGlvID8gcHJpY2UgKiByYXRpbyA6IHByaWNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogIGdlbmVyYSBsYSBjYXJnYSB5IGNvbmZpZ3VyYWNpw7NuIGRlIGxhIG1vbmVkYSBlbGVnaWRhIHBhcmEgbGEgY29udmVyc2lvbi5cclxuICAgICAqIEBwYXJhbSBjdXJyZW5jeSBNb25lZGEgYSBjb252ZXJ0aXIuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbG9hZEN1cnJlbmN5KGN1cnJlbmN5OiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9jdXJyZW5jeVN1YmplY3QubmV4dChjdXJyZW5jeSk7XHJcbiAgICAgICAgdGhpcy5fY29uc3RzLnNldEN1cnJlbmN5KGN1cnJlbmN5LmNvZGUpO1xyXG4gICAgICAgIGxldCB1cGRhdGUgPSB0aGlzLl91cGRhdGVTdWJqZWN0LmdldFZhbHVlKClcclxuICAgICAgICB0aGlzLl91cGRhdGVTdWJqZWN0Lm5leHQoIXVwZGF0ZSlcclxuICAgICAgICB0aGlzLmN1cnJlbmN5U3RvcmUuYWRkKHRoaXMuX2NvbnN0cy5jdXJyZW5jeSlcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYSBsYSBjb252ZXJ0aWJpbGlkYWQgZGUgbGEgbW9uZWRhIGJhc2UgYSBsYSBudWV2YS4gU2kgYmFzZUN1cnJlbmN5IG5vIHRpZW5lIHZhbG9yIFxyXG4gICAgICogZW50b25jZXMgdXRpbGl6YSBsYSBtb25lZGEgYmFzZSBkZWwgY2FuYWwuXHJcbiAgICAgKiBAcGFyYW0gY3VycmVuY3kgT2JqZXRvIGRlIGxhIG1vbmVkYSBkZXN0aW5vLlxyXG4gICAgICogQHBhcmFtIGJhc2VDdXJyZW5jeSBDb2RpZ28gZGUgbGEgbW9uZWRhIGJhc2UuICpFajogVVNEIHwgQVJTIHwgRVVSIHwuLi4qXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGdlbmVyYXRlQ29udmVydGliaWxpdHkoY3VycmVuY3k6IGFueSwgYmFzZUN1cnJlbmN5Pzogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCFiYXNlQ3VycmVuY3kpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGJhc2VDdXJyZW5jeSA9IGF3YWl0IHRoaXMuX2NoYW5uZWwuZ2V0QWN0aXZlQ2hhbm5lbCgpLmJhc2VDdXJyZW5jeTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIC8vY29uc29sZS5lcnJvcihlcnJvcilcclxuICAgICAgICAgICAgICAgIGJhc2VDdXJyZW5jeSA9ICdVU0QnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJCQ1wiLCBiYXNlQ3VycmVuY3kpO1xyXG4gICAgICAgIGlmIChjdXJyZW5jeS5jb2RlID09IGJhc2VDdXJyZW5jeSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDdXJyZW5jeShjdXJyZW5jeSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRDb252ZXJ0aWJpbGl0eShiYXNlQ3VycmVuY3ksIGN1cnJlbmN5LmNvZGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9idGllbmUgbGEgY29udmVyc2lvbiBkZXNkZSBsYSBtb25lZGEgYmFzZSBhIGxhIGRlc3Rpbm8uIFJlY2liZSB1biBvYmpldG8gZGUgdGlwbyBDdXJyZW5jeUNvbmZpZy5cclxuICAgICAqIFNpIGxhIGNvbnZlcnNpb24gcmV0b3JuYSByZXN1bHRhZG8gcmVhbGl6YSBlbCBjYW1iaW8sIGRlIGxvIGNvbnRyYXJpbyBlbWl0ZSB1biBtZW5zYWplIGRlIGVycm9yLlxyXG4gICAgICogQHBhcmFtIGJhc2VDdXJyZW5jeSBDb2RpZ28gZGUgbGEgbW9uZWRhIGJhc2UuXHJcbiAgICAgKiBAcGFyYW0gdGFyZ2V0Q3VycmVuY3kgQ29kaWdvIGRlIGxhIG1vbmVkYSBkZXN0aW5vLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldENvbnZlcnRpYmlsaXR5KGJhc2VDdXJyZW5jeTogYW55LCB0YXJnZXRDdXJyZW5jeTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fY29ubmVjdGlvbi5nZXQodGhpcy5nZXRDb252ZXJ0aWJpbGl0eUFwaShiYXNlQ3VycmVuY3ksIHRhcmdldEN1cnJlbmN5KSlcclxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpLnRoZW4oXHJcbiAgICAgICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXBDdXJyZW5jeSA9IHJlc1swXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRDdXJyZW5jeSh0ZW1wQ3VycmVuY3kpXHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbGEgdmFyaWFibGUgcmVzIG5vIGNvbnRpZW5lIHZhbG9yLCBhc2VndXJlc2UgZGUgcXVlIGVzdGEgY29udmVyc2nDs24gZXN0ZSBjb25maWd1cmFkYSBlbiBlbCBiYWNrb2ZmaWNlJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzLnRvYXN0ci5zaG93KCdlcnJvci1jb252ZXJ0aWJpbGl0eScpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApLmNhdGNoKGVyciA9PiBjb25zb2xlLmxvZyhlcnIpKVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FyZ2EgbGEgbW9uZWRhLCBzaSBoYXkgdW5hIGVuIGVsIGxvY2Fsc3RvcmFnZSB0b21hIGVzYSB5IHJlYWxpemEgbGEgY29udmVyc2lvbi5cclxuICAgICAqIGRlIGxvIGNvbnRyYXJpbyBzb2xvIHNldGVhIGVuIGVsIG9ic2VydmFibGUgY3VycmVuY3lTdWJqZWN0IGVsIHZhbG9yIHBvciBkZWZlY3RvIGNhcmdhZG8gZW4gbGFzIGNvbnN0YW50ZXMuIFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGxvYWQoKSB7XHJcbiAgICAgICAgbGV0IHN0b3JlQ3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5U3RvcmUuY3VycmVuY3koKTtcclxuICAgICAgICBpZiAoc3RvcmVDdXJyZW5jeSAmJiBzdG9yZUN1cnJlbmN5LmNvZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZUNvbnZlcnRpYmlsaXR5KHN0b3JlQ3VycmVuY3kpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fY3VycmVuY3lTdWJqZWN0Lm5leHQodGhpcy5fY29uc3RzLmN1cnJlbmN5KVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBQzFDOzs7R0FHRztBQUlILE1BQU0sT0FBTyxlQUFlO0lBQ3hCOztPQUVHO0lBQ0ssT0FBTyxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUNwRTs7T0FFRztJQUNLLFVBQVUsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7SUFDckU7O09BRUc7SUFDSyxXQUFXLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ2xFOztPQUVHO0lBQ0ssUUFBUSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDekQ7O09BRUc7SUFDSyxTQUFTLEdBQW9CLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDaEU7O09BRUc7SUFDSyxnQkFBZ0IsR0FBb0MsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbkY7O09BRUc7SUFDSyxvQkFBb0IsR0FBeUIsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUE7SUFD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YSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xELElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDOUMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckQsQ0FBQztJQUNMLENBQUM7d0dBbktRLGVBQWU7NEdBQWYsZUFBZSxjQUZaLE1BQU07OzRGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlLCBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDdXJyZW5jeUNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuL2NoYW5uZWwuc2VydmljZSc7XG5pbXBvcnQgeyBDdXJyZW5jeVN0b3JlIH0gZnJvbSAnLi4vc3RvcmVzJztcbi8qKlxuICogU2VydmljaW8gZW5jYXJnYWRvIGRlIG1hbmVqYXIgdG9kbyBsbyBxdWUgZXN0ZSByZWxhY2lvbmFkbyBhIGxhIG1vbmVkYVxuICogcXVlIG1hbmVqYSBsYSBhcGxpY2FjacOzbi5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeVNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIENvbnN0YW50ZXMgZGUgY29yZVxuICAgICAqL1xuICAgIHByaXZhdGUgX2NvbnN0czogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXG4gICAgLyoqXG4gICAgICogQ29uc3RhbnRlcyBkZSBsYSBBUElcbiAgICAgKi9cbiAgICBwcml2YXRlIF9hcGlDb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSlcbiAgICAvKipcbiAgICAgKiBNYW5lamEgbGFzIHBldGljaW9uZXMgYSBsYSBBUElcbiAgICAgKi9cbiAgICBwcml2YXRlIF9jb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSlcbiAgICAvKipcbiAgICAgKiBTZXJ2aWNpbyBkZSBjYW5hbGVzXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY2hhbm5lbDogQ2hhbm5lbFNlcnZpY2UgPSBpbmplY3QoQ2hhbm5lbFNlcnZpY2UpXG4gICAgLyoqXG4gICAgICogQ29udGllbmUgZWwgY2FuYWwgYWN0aXZvIGRlIGxhIEFQSS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jaGFubmVsJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fY2hhbm5lbC5nZXRDaGFubmVsKCk7XG4gICAgLyoqXG4gICAgICogU3ViamVjdCBwYXJhIG1hbmVqYXIgbGEgbW9uZWRhIGFjdHVhbC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jdXJyZW5jeVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxDdXJyZW5jeUNvbmZpZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KVxuICAgIC8qKlxuICAgICAqIFN1YmplY3QgcGFyYSBtYW5lamFyIGxhIGxpc3RhIGRlIG1vbmVkYXMgZGUgbGEgYXBsaWNhY2nDs24uXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY3VycmVuY3lMaXN0U3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKVxuICAgIC8qKlxuICAgICAqIFN1YmplY3QgcGFyYSBpbmRpY2FyIGxhIGFjdHVhbGl6YWNpw7NuIGRlIHVuIGVzdGFkby5cbiAgICAgKi9cbiAgICBwcml2YXRlIF91cGRhdGVTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKVxuXG4gICAgcHVibGljIGN1cnJlbmN5JDogT2JzZXJ2YWJsZTxDdXJyZW5jeUNvbmZpZz4gPSB0aGlzLl9jdXJyZW5jeVN1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICBwdWJsaWMgY3VycmVuY3lMaXN0JDogT2JzZXJ2YWJsZTxhbnlbXT4gPSB0aGlzLl9jdXJyZW5jeUxpc3RTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXG4gICAgcHVibGljIHVwZGF0ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl91cGRhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgLy9BUEkgVVJMXG4gICAgLyoqXG4gICAgICogRGV2dWVsdmUgbGEgVVJMIHBhcmEgb2J0ZW5lciBsaXN0YSBkZSBtb25lZGFzIGRlIGxhIGFwbGljYWNpw7NuLlxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0Q3VycmVuY3lMaXN0QXBpKCkgeyByZXR1cm4gYCR7dGhpcy5fYXBpQ29uc3RzLlNIT1BfQVBJX1VSTH0vY3VycmVuY2llc2AgfTtcbiAgICAvKipcbiAgICAgKiBEZXZ1ZWx2ZSBsYSBVUkwgcGFyYSBvYnRlbmVyIGxhIGNvbnZlcnRpYmlsaWRhZCBkZSB1bmEgbW9uZWRhLiBcbiAgICAgKiBAcGFyYW0gYmFzZUN1cnJlbmN5IE1vbmVkYSBiYXNlXG4gICAgICogQHBhcmFtIHRhcmdldEN1cnJlbmN5IE1vbmVkYSBkZXN0aW5vXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRDb252ZXJ0aWJpbGl0eUFwaShiYXNlQ3VycmVuY3k6IGFueSwgdGFyZ2V0Q3VycmVuY3k6IGFueSkgeyByZXR1cm4gYCR7dGhpcy5fYXBpQ29uc3RzLlNIT1BfQVBJX1VSTH0vY3VycmVuY2llcz9iYXNlQ3VycmVuY3k9JHtiYXNlQ3VycmVuY3l9JnRhcmdldEN1cnJlbmN5PSR7dGFyZ2V0Q3VycmVuY3l9YCB9XG4gICAgLyoqXG4gICAgICogU3RvcmUgcXVlIGd1YXJkYXJhIGxhIG1vbmVkYSBhY3R1YWwgcXVlIG1hbmVqYSBsYSBhcGxpY2FjacOzbi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY3VycmVuY3lTdG9yZSA9IGluamVjdChDdXJyZW5jeVN0b3JlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLl9jaGFubmVsJC5zdWJzY3JpYmUoY2hhbm5lbCA9PiB7XG4gICAgICAgICAgICBjaGFubmVsLmFwcGx5Q3VycmVuY3lFeGNoYW5nZSA/IHRoaXMubG9hZEN1cnJlbmN5TGlzdCgpIDogdGhpcy5sb2FkRGVmYXVsdEN1cnJlbmN5KGNoYW5uZWwuYmFzZUN1cnJlbmN5KTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgICAqICBTZSBjYXJnYSBsYSBtb25lZGEgcG9yIGRlZmVjdG8uXG4gICAgICAgKi9cbiAgICBwcml2YXRlIGxvYWREZWZhdWx0Q3VycmVuY3koY3VycmVuY3k6IGFueSkge1xuICAgICAgICB0aGlzLl9jb25zdHMuc2V0Q3VycmVuY3koY3VycmVuY3kpO1xuICAgICAgICB0aGlzLmxvYWQoKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYXJnYSBsYSBsaXN0YSBkZSBtb25lZGFzL2N1cnJlbmNpZXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkQ3VycmVuY3lMaXN0KCkge1xuICAgICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLl9jb25uZWN0aW9uLmdldCh0aGlzLmdldEN1cnJlbmN5TGlzdEFwaSgpKSlcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3VycmVuY3lMaXN0U3ViamVjdC5uZXh0KHJlcylcbiAgICAgICAgICAgICAgICB0aGlzLl9jb25zdHMuc2V0Q3VycmVuY3lUeXBlQ29uZmlnKHJlcylcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKVxuICAgICAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgY2FsY3VsYSBsYSBjb252ZXRpYmlsaWRhZCBkZWwgcHJlY2lvICBwYXNhZG8gcG9yIHBhcmFtZW50cm8gc2VndW4gZXN0YSBmb3JtdWxhOlxuICAgICAqICoqYyA9IGEgKiBiKiogZG9uZGUgKmM9bW9uZWRhIGRlc3B1ZXMgZGVsIGNhbWJpbyosICphPXZhbG9yIHF1ZSBxdWllcm8gY2FtYmlhciogeSAqYj1yYXRpbyBkZSBjYW1iaW8qLiBcbiAgICAgKiBAcGFyYW0gcHJpY2UgUHJlY2lvIGEgY2FtYmlhclxuICAgICAqIEBwYXJhbSByYXRpbyBSYXRpbyBkZSBjYW1iaW9cbiAgICAgKiBAcmV0dXJucyBTaSBlbCByYXRpbyBubyBlcyBudWxsLCByZXRvcm5hIGVsIHByZWNpbyBjYW1iaWFkbywgc2lubyByZXRvcm5hIGVsIHByZWNpbyBzaW4gY2FtYmlvcy4gXG4gICAgICovXG4gICAgcHVibGljIGNhbGN1bGF0ZUNvbnZldGliaWxpdHkocHJpY2U6IG51bWJlciwgcmF0aW86IG51bWJlcikge1xuICAgICAgICByZXR1cm4gcmF0aW8gPyBwcmljZSAqIHJhdGlvIDogcHJpY2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIGdlbmVyYSBsYSBjYXJnYSB5IGNvbmZpZ3VyYWNpw7NuIGRlIGxhIG1vbmVkYSBlbGVnaWRhIHBhcmEgbGEgY29udmVyc2lvbi5cbiAgICAgKiBAcGFyYW0gY3VycmVuY3kgTW9uZWRhIGEgY29udmVydGlyLlxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZEN1cnJlbmN5KGN1cnJlbmN5OiBhbnkpIHtcbiAgICAgICAgdGhpcy5fY3VycmVuY3lTdWJqZWN0Lm5leHQoY3VycmVuY3kpO1xuICAgICAgICB0aGlzLl9jb25zdHMuc2V0Q3VycmVuY3koY3VycmVuY3kuY29kZSk7XG4gICAgICAgIGxldCB1cGRhdGUgPSB0aGlzLl91cGRhdGVTdWJqZWN0LmdldFZhbHVlKClcbiAgICAgICAgdGhpcy5fdXBkYXRlU3ViamVjdC5uZXh0KCF1cGRhdGUpXG4gICAgICAgIHRoaXMuY3VycmVuY3lTdG9yZS5hZGQodGhpcy5fY29uc3RzLmN1cnJlbmN5KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdlbmVyYSBsYSBjb252ZXJ0aWJpbGlkYWQgZGUgbGEgbW9uZWRhIGJhc2UgYSBsYSBudWV2YS4gU2kgYmFzZUN1cnJlbmN5IG5vIHRpZW5lIHZhbG9yIFxuICAgICAqIGVudG9uY2VzIHV0aWxpemEgbGEgbW9uZWRhIGJhc2UgZGVsIGNhbmFsLlxuICAgICAqIEBwYXJhbSBjdXJyZW5jeSBPYmpldG8gZGUgbGEgbW9uZWRhIGRlc3Rpbm8uXG4gICAgICogQHBhcmFtIGJhc2VDdXJyZW5jeSBDb2RpZ28gZGUgbGEgbW9uZWRhIGJhc2UuICpFajogVVNEIHwgQVJTIHwgRVVSIHwuLi4qXG4gICAgICovXG4gICAgYXN5bmMgZ2VuZXJhdGVDb252ZXJ0aWJpbGl0eShjdXJyZW5jeTogYW55LCBiYXNlQ3VycmVuY3k/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCFiYXNlQ3VycmVuY3kpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYmFzZUN1cnJlbmN5ID0gYXdhaXQgdGhpcy5fY2hhbm5lbC5nZXRBY3RpdmVDaGFubmVsKCkuYmFzZUN1cnJlbmN5O1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvL2NvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgICAgICAgICAgYmFzZUN1cnJlbmN5ID0gJ1VTRCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkJDXCIsIGJhc2VDdXJyZW5jeSk7XG4gICAgICAgIGlmIChjdXJyZW5jeS5jb2RlID09IGJhc2VDdXJyZW5jeSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkQ3VycmVuY3koY3VycmVuY3kpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5nZXRDb252ZXJ0aWJpbGl0eShiYXNlQ3VycmVuY3ksIGN1cnJlbmN5LmNvZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT2J0aWVuZSBsYSBjb252ZXJzaW9uIGRlc2RlIGxhIG1vbmVkYSBiYXNlIGEgbGEgZGVzdGluby4gUmVjaWJlIHVuIG9iamV0byBkZSB0aXBvIEN1cnJlbmN5Q29uZmlnLlxuICAgICAqIFNpIGxhIGNvbnZlcnNpb24gcmV0b3JuYSByZXN1bHRhZG8gcmVhbGl6YSBlbCBjYW1iaW8sIGRlIGxvIGNvbnRyYXJpbyBlbWl0ZSB1biBtZW5zYWplIGRlIGVycm9yLlxuICAgICAqIEBwYXJhbSBiYXNlQ3VycmVuY3kgQ29kaWdvIGRlIGxhIG1vbmVkYSBiYXNlLlxuICAgICAqIEBwYXJhbSB0YXJnZXRDdXJyZW5jeSBDb2RpZ28gZGUgbGEgbW9uZWRhIGRlc3Rpbm8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRDb252ZXJ0aWJpbGl0eShiYXNlQ3VycmVuY3k6IGFueSwgdGFyZ2V0Q3VycmVuY3k6IGFueSkge1xuICAgICAgICB0aGlzLl9jb25uZWN0aW9uLmdldCh0aGlzLmdldENvbnZlcnRpYmlsaXR5QXBpKGJhc2VDdXJyZW5jeSwgdGFyZ2V0Q3VycmVuY3kpKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXBDdXJyZW5jeSA9IHJlc1swXVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkQ3VycmVuY3kodGVtcEN1cnJlbmN5KVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbGEgdmFyaWFibGUgcmVzIG5vIGNvbnRpZW5lIHZhbG9yLCBhc2VndXJlc2UgZGUgcXVlIGVzdGEgY29udmVyc2nDs24gZXN0ZSBjb25maWd1cmFkYSBlbiBlbCBiYWNrb2ZmaWNlJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcy50b2FzdHIuc2hvdygnZXJyb3ItY29udmVydGliaWxpdHknKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKS5jYXRjaChlcnIgPT4gY29uc29sZS5sb2coZXJyKSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYXJnYSBsYSBtb25lZGEsIHNpIGhheSB1bmEgZW4gZWwgbG9jYWxzdG9yYWdlIHRvbWEgZXNhIHkgcmVhbGl6YSBsYSBjb252ZXJzaW9uLlxuICAgICAqIGRlIGxvIGNvbnRyYXJpbyBzb2xvIHNldGVhIGVuIGVsIG9ic2VydmFibGUgY3VycmVuY3lTdWJqZWN0IGVsIHZhbG9yIHBvciBkZWZlY3RvIGNhcmdhZG8gZW4gbGFzIGNvbnN0YW50ZXMuIFxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZCgpIHtcbiAgICAgICAgbGV0IHN0b3JlQ3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5U3RvcmUuY3VycmVuY3koKTtcbiAgICAgICAgaWYgKHN0b3JlQ3VycmVuY3kgJiYgc3RvcmVDdXJyZW5jeS5jb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlQ29udmVydGliaWxpdHkoc3RvcmVDdXJyZW5jeSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbmN5U3ViamVjdC5uZXh0KHRoaXMuX2NvbnN0cy5jdXJyZW5jeSlcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -274,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
274
274
  providedIn: 'root'
275
275
  }]
276
276
  }], ctorParameters: () => [] });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2ZpbHRlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQU16RSxNQUFNLE9BQU8sY0FBYztJQUNmLFVBQVUsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDOUQsT0FBTyxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RCxlQUFlLEdBQThCLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLFFBQVEsR0FBeUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRSxjQUFjLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE9BQU8sR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVoRSxhQUFhLEdBQTZCLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQy9FLE1BQU0sR0FBd0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUvRCxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUVqRCxlQUFlLEdBQTJC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LElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO2dCQUMzRSxNQUFNLEdBQUcsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7Z0JBRTNFLGdEQUFnRDtnQkFDaEQsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLDBDQUEwQztnQkFDMUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDO1FBRUQsb0ZBQW9GO1FBQ3BGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXpDLG1GQUFtRjtRQUNuRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO3dHQWxUUSxjQUFjOzRHQUFkLGNBQWMsY0FGWCxNQUFNOzs0RkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIGluamVjdCwgSW5qZWN0YWJsZSwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlckZhY3RvcnkgfSBmcm9tICcuLi9jbGFzc2VzJztcclxuaW1wb3J0IHsgRGVmYXVsdEZpbHRlciwgRmlsdGVyRWxlbWVudCwgUGFnaW5hdGlvblNldHRpbmdzLCBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UsIENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgUHJpY2VSYW5nZUZpbHRlciB9IGZyb20gJy4uL2NsYXNzZXMvZmlsdGVycy9wcmljZV9yYW5nZS1maWx0ZXInO1xyXG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzU2VydmljZSB7XHJcbiAgICBwcml2YXRlIF9hcGlDb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSk7XHJcbiAgICBwcml2YXRlIF9jb25zdHM6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgX2ZpbHRlcnNTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8RmlsdGVyW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pO1xyXG4gICAgcHVibGljIGZpbHRlcnMkOiBPYnNlcnZhYmxlPEZpbHRlcltdPiA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHByaXZhdGUgX2FwaVVybFN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuICAgIHB1YmxpYyBhcGlVcmwkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLl9hcGlVcmxTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHByaXZhdGUgX3JlYWR5U3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgcmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fcmVhZHlTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKVxyXG5cclxuICAgIHByaXZhdGUgX29wdGlvbnNGaWx0ZXJzOiAoRmlsdGVyVHlwZSB8ICdhbGwnKVtdID0gWydhbGwnXTtcclxuICAgIHByaXZhdGUgX2RlZmF1bHRGaWx0ZXJzOiBEZWZhdWx0RmlsdGVyW10gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIF9wYWdpbmF0aW9uU2V0dGluZ3M6IFBhZ2luYXRpb25TZXR0aW5ncyA9IHtcclxuICAgICAgICB2YWx1ZTogJycsXHJcbiAgICAgICAgdHlwZTogJycsXHJcbiAgICAgICAgbGltaXQ6IDBcclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBfZmlsdGVyc0luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9sYXN0Um91dGVRdWVyeTogUGFyYW1zIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgLy90aGlzLl9kZWZhdWx0RmlsdGVycyA9IHRoaXMuX2NvbnN0cy5nZXREZWZhdWx0RmlsdGVycygpXHJcbiAgICB9XHJcblxyXG4gICAgLy9BUEkgVVJMXHJcbiAgICAvKipcclxuICAgICAqIFJldG9ybmEgbGEgdXJsIHBhcmEgZWwgZmlsdHJhZG9cclxuICAgICAqIEBwYXJhbSBmaWx0ZXJzIFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHByb2R1Y3RzRmlsdGVyQXBpKGZpbHRlcnMgPSAnJykgeyByZXR1cm4gJ3Nob3AtYXBpLycgKyB0aGlzLl9hcGlDb25zdHMuQ0hBTk5FTCArICcvcHJvZHVjdC1zZWFyY2gvJyArICc/bG9jYWxlPScgKyB0aGlzLl9hcGlDb25zdHMuTE9DQUxFICsgZmlsdGVycyB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBBcm1hIGxvcyBmaWx0cm9zIHkgcmV0b3JuYSBsYSB1cmwgY29tcGxldGEgY29uIGxvcyBmaWx0cm9zIGFwbGljYWRvcy5cclxuICAgICAqIEBwYXJhbSBzZWFyY2hfdmFsdWUgdmFsb3IgYSBidXNjYXJcclxuICAgICAqIEByZXR1cm5zIFxyXG4gICAgICovXHJcbiAgICBnZW5lcmF0ZUZpbmFsQXBpKHNlYXJjaF92YWx1ZT86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IGV4dHJhX3BhcmFtcyA9ICcnO1xyXG5cclxuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZS5mb3JFYWNoKGZpbHRlciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV4dHJhID0gZmlsdGVyLnRvVXJsUGFyYW1zKCk7XHJcbiAgICAgICAgICAgIGlmIChleHRyYSAmJiBleHRyYS5zcGxpdCgnPScpWzFdICE9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgZXh0cmFfcGFyYW1zICs9IGV4dHJhO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIFNpIGVuIGxhIFVSTCB5YSB2ZW7DrWEgYGF0dHJpYnV0ZUNvZGVzYCBwZXJvIGHDum4gbmluZ8O6biBmaWx0cm8gbG8gYWdyZWfDsyxcclxuICAgICAgICAvLyBsbyB2b2x2ZW1vcyBhIHN1bWFyIGEgbWFuby4gRXN0byBldml0YSBxdWUgYWwgcmVmcmVzY2FyIChTU1IpIHNlIHBpZXJkYSBlbCBmaWx0cm9cclxuICAgICAgICAvLyBhdW5xdWUgZWwgQXR0cmlidXRlc0ZpbHRlciB0b2RhdsOtYSBubyBoYXlhIHRlcm1pbmFkbyBkZSBoaWRyYXRhcnNlLlxyXG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZUNvZGVzRnJvbVJvdXRlID0gdGhpcy5fbGFzdFJvdXRlUXVlcnk/LlsnYXR0cmlidXRlQ29kZXMnXTtcclxuICAgICAgICBpZiAoYXR0cmlidXRlQ29kZXNGcm9tUm91dGUgJiYgIWV4dHJhX3BhcmFtcy5pbmNsdWRlcygnYXR0cmlidXRlQ29kZXM9JykpIHtcclxuICAgICAgICAgICAgZXh0cmFfcGFyYW1zICs9IGAmYXR0cmlidXRlQ29kZXM9JHthdHRyaWJ1dGVDb2Rlc0Zyb21Sb3V0ZX1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHNlYXJjaF92YWx1ZSkge1xyXG4gICAgICAgICAgICBleHRyYV9wYXJhbXMgKz0gJyZjcml0ZXJpYVtzZWFyY2hdW3R5cGVdPWNvbnRhaW5zJmNyaXRlcmlhW3NlYXJjaF1bdmFsdWVdPScgKyBzZWFyY2hfdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0c0ZpbHRlckFwaShleHRyYV9wYXJhbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNVcGRhdGVkKHBhZ2luYXRpb25TZXR0aW5nczogUGFnaW5hdGlvblNldHRpbmdzKSB7XHJcbiAgICAgICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhwYWdpbmF0aW9uU2V0dGluZ3MpO1xyXG4gICAgICAgIGxldCBjaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgICBrZXlzLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKHBhZ2luYXRpb25TZXR0aW5ncyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtrZXldO1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZTIgPSAodGhpcy5fcGFnaW5hdGlvblNldHRpbmdzIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW2tleV07XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZTIpIGNoYW5nZSA9IHRydWU7XHJcbiAgICAgICAgfSlcclxuICAgICAgICBpZiAoY2hhbmdlKSB0aGlzLl9wYWdpbmF0aW9uU2V0dGluZ3MgPSBwYWdpbmF0aW9uU2V0dGluZ3M7XHJcbiAgICAgICAgcmV0dXJuIGNoYW5nZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRGaWx0ZXJzKFxyXG4gICAgICAgIHBhZ2luYXRpb25TZXR0aW5nczogUGFnaW5hdGlvblNldHRpbmdzLFxyXG4gICAgICAgIHNlYXJjaF92YWx1ZT86IHN0cmluZyxcclxuICAgICAgICByb3V0ZVF1ZXJ5UGFyYW1zPzogYW55XHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uU2V0dGluZ3MgPSBwYWdpbmF0aW9uU2V0dGluZ3M7XHJcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gW107XHJcbiAgICAgICAgbGV0IGZpbHRlcnNUb1Byb2Nlc3MgPSB0aGlzLl9vcHRpb25zRmlsdGVycz8uaW5jbHVkZXMoJ2FsbCcpXHJcbiAgICAgICAgICAgID8gKFsnYXR0cmlidXRlcycsICdjYXRlZ29yaWVzJywgJ2R5bmFtaWNzJywgJ3NvcnQnLCAncHJpY2VfcmFuZ2UnXSBhcyBGaWx0ZXJUeXBlW10pXHJcbiAgICAgICAgICAgIDogdGhpcy5fb3B0aW9uc0ZpbHRlcnM7XHJcblxyXG4gICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XHJcbiAgICAgICAgICAgIGZpbHRlcnNUb1Byb2Nlc3M/LmZvckVhY2goZmlsdGVyVHlwZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJGYWN0b3J5LmNyZWF0ZShmaWx0ZXJUeXBlLCBwYWdpbmF0aW9uU2V0dGluZ3MpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpbmFsX2ZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGVmYXVsdEZpbHRlcnM/LmZvckVhY2goZmlsdGVyRGVmYXVsdCA9PiB7XHJcbiAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBmaW5hbF9maWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gZmlsdGVyRGVmYXVsdC5maWx0ZXJfdHlwZSk7XHJcbiAgICAgICAgICAgIGZpbHRlciAmJiBmaWx0ZXJEZWZhdWx0LmNvZGVzLmZvckVhY2godmFsdWUgPT4gZmlsdGVyLnNldFNlbGVjdGVkKHZhbHVlKSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIGhpZHJhdGFyIHByaWNlX3JhbmdlIGRlc2RlIGxhIFVSTFxyXG4gICAgICAgIGlmIChyb3V0ZVF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByID0gZmluYWxfZmlsdGVycy5maW5kKGYgPT4gZi50eXBlKCkgPT09ICdwcmljZV9yYW5nZScpIGFzIFByaWNlUmFuZ2VGaWx0ZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIGlmIChwcikge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmF3TWluID0gcm91dGVRdWVyeVBhcmFtc1sncHJpY2VfbWluJ107XHJcbiAgICAgICAgICAgICAgICBjb25zdCByYXdNYXggPSByb3V0ZVF1ZXJ5UGFyYW1zWydwcmljZV9tYXgnXTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSByYXdNaW4gIT0gbnVsbCA/IE51bWJlcihyYXdNaW4pIDogbnVsbDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1heCA9IHJhd01heCAhPSBudWxsID8gTnVtYmVyKHJhd01heCkgOiBudWxsO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICgobWluICE9IG51bGwgJiYgIU51bWJlci5pc05hTihtaW4pKSB8fCAobWF4ICE9IG51bGwgJiYgIU51bWJlci5pc05hTihtYXgpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtaW4gIT0gbnVsbCAmJiAhTnVtYmVyLmlzTmFOKG1pbikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHIuY3VycmVudE1pblByaWNlID0gbWluO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAobWF4ICE9IG51bGwgJiYgIU51bWJlci5pc05hTihtYXgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByLmN1cnJlbnRNYXhQcmljZSA9IG1heDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0Lm5leHQoZmluYWxfZmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RmlsdGVycyhwYWdpbmF0aW9uU2V0dGluZ3M/OiBQYWdpbmF0aW9uU2V0dGluZ3MpIHtcclxuICAgICAgICBpZiAodGhpcy5fZmlsdGVyc0luaXRpYWxpemVkKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5fZmlsdGVyc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHBhZ2luYXRpb25TZXR0aW5ncyB8fCB0aGlzLl9wYWdpbmF0aW9uU2V0dGluZ3M7XHJcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gW107XHJcbiAgICAgICAgbGV0IGZpbHRlcnNUb1Byb2Nlc3MgPSB0aGlzLl9vcHRpb25zRmlsdGVycz8uaW5jbHVkZXMoJ2FsbCcpXHJcbiAgICAgICAgICAgID8gKFsnYXR0cmlidXRlcycsICdjYXRlZ29yaWVzJywgJ2R5bmFtaWNzJywgJ3NvcnQnLCAncHJpY2VfcmFuZ2UnXSBhcyBGaWx0ZXJUeXBlW10pXHJcbiAgICAgICAgICAgIDogdGhpcy5fb3B0aW9uc0ZpbHRlcnM7XHJcblxyXG4gICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XHJcbiAgICAgICAgICAgIGZpbHRlcnNUb1Byb2Nlc3M/LmZvckVhY2goZmlsdGVyVHlwZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJGYWN0b3J5LmNyZWF0ZShmaWx0ZXJUeXBlLCBzZXR0aW5ncyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmluYWxfZmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGNyZWF0ZSBmaWx0ZXIgZm9yIHR5cGU6ICR7ZmlsdGVyVHlwZX1gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2RlZmF1bHRGaWx0ZXJzPy5mb3JFYWNoKGZpbHRlckRlZmF1bHQgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZmlsdGVyID0gZmluYWxfZmlsdGVycy5maW5kKGZpbHRlciA9PiBmaWx0ZXIudHlwZSgpID09IGZpbHRlckRlZmF1bHQuZmlsdGVyX3R5cGUpO1xyXG4gICAgICAgICAgICBmaWx0ZXIgJiYgZmlsdGVyRGVmYXVsdC5jb2Rlcy5mb3JFYWNoKHZhbHVlID0+IGZpbHRlci5zZXRTZWxlY3RlZCh2YWx1ZSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0Lm5leHQoZmluYWxfZmlsdGVycyk7XHJcbiAgICAgICAgcmV0dXJuIGZpbmFsX2ZpbHRlcnM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3BlY2lmaWNGaWx0ZXJzKHR5cGVzOiBGaWx0ZXJUeXBlW10pOiBGaWx0ZXJbXSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyczogRmlsdGVyW10gPSB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZS5maWx0ZXIoZmlsdGVyID0+IHR5cGVzLmluY2x1ZGVzKGZpbHRlci50eXBlKCkpKVxyXG4gICAgICAgIHJldHVybiBmaWx0ZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZpbHRlclNlbGVjdGVkKGZpbHRlck9iajogRmlsdGVyLCBmaWx0ZXJFbGVtOiBGaWx0ZXJFbGVtZW50KSB7XHJcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWU7XHJcbiAgICAgICAgaWYgKGZpbHRlck9iai50eXBlKCkgIT09ICdwcmljZV9yYW5nZScpIHtcclxuICAgICAgICAgICAgbGV0IGluZGV4ID0gZmluYWxfZmlsdGVycy5maW5kSW5kZXgoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gZmlsdGVyT2JqLnR5cGUoKSk7XHJcbiAgICAgICAgICAgIGZpbmFsX2ZpbHRlcnNbaW5kZXhdLnNldFNlbGVjdGVkKGZpbHRlckVsZW0sIGZpbHRlckVsZW0udmFsdWUgfHwgZmlsdGVyRWxlbS5jb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlRmlsdGVycyhwYWdpbmF0aW9uRmlsdGVyczogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY2xhdmVzID0gT2JqZWN0LmtleXMocGFnaW5hdGlvbkZpbHRlcnMpXHJcbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJGYWN0b3J5ID0gbmV3IEZpbHRlckZhY3RvcnkoKTtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyOiBGaWx0ZXJbXSA9IFtdXHJcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0LnZhbHVlLmZvckVhY2goKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS50eXBlKCkgPT0gXCJhdHRyaWJ1dGVzXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL3ZhbHVlLmRhdGEgPSBbXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBcclxuICAgICAqIEFjdHVhbGl6YSBpbnRlcm5hbWVudGUgZWwgcmFuZ28gZGUgcHJlY2lvIHkgcmUtZW1pdGUgXHJcbiAgICAgKiBlbCBhcnJheSBkZSBmaWx0cm9zIHBhcmEgcXVlIFBhZ2luYXRpb25TZXJ2aWNlIHZ1ZWx2YSBhIGxsYW1hciBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHVwZGF0ZVByaWNlUmFuZ2VGaWx0ZXIobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVycyA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IHByID0gZmlsdGVycy5maW5kKGYgPT4gZi50eXBlKCkgPT09ICdwcmljZV9yYW5nZScpIGFzIFByaWNlUmFuZ2VGaWx0ZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKCFwcikgcmV0dXJuO1xyXG4gICAgICAgIHByLnNldFNlbGVjdGVkKG1pbiwgbWF4KTtcclxuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KFsuLi5maWx0ZXJzXSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdWVyemEgYSBlbWl0aXIgZGUgbnVldm8gbG9zIGZpbHRyb3MgYWN0dWFsZXMuXHJcbiAgICAgKiDDmnRpbCBjdWFuZG8gdW4gZmlsdHJvIGFzeW5jIChjYXRlZ29yw61hcywgYXRyaWJ1dG9zKSB0ZXJtaW5hIGRlIGNhcmdhcnNlXHJcbiAgICAgKiB5IG5lY2VzaXRhbW9zIHF1ZSBQYWdpbmF0aW9uU2VydmljZSB2dWVsdmEgYSBhcm1hciBsYSBVUkwuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWZyZXNoRmlsdGVycygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWU7XHJcbiAgICAgICAgLy8gRW1pdGltb3MgdW5hIGNvcGlhIHBhcmEgcXVlIGxvcyBzdWJzY3JpYmVycyBkZXRlY3RlbiBlbCBjYW1iaW9cclxuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KFsuLi5jdXJyZW50XSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQdW50byBjZW50cmFsIGRvbmRlIHNlIGhpZHJhdGFuIGxvcyBmaWx0cm9zIGEgcGFydGlyIGRlIGxhIFVSTDpcclxuICAgICAqIC0gTGVlIHR5cGUvdmFsdWUgZGUgbGEgcnV0YSAoZWouIC9jb2xsZWN0aW9uL2NhdGVnb3JpZXMvOnZhbHVlKS5cclxuICAgICAqIC0gTGVlIHF1ZXJ5IHBhcmFtcyAoY2F0ZWdvcnksIHByaWNlX21pbiwgcHJpY2VfbWF4LCBhdHRyaWJ1dGVDb2Rlcywgc2VhcmNoLCBldGMuKS5cclxuICAgICAqIC0gQ3JlYSBpbnN0YW5jaWFzIGRlIGZpbHRyb3MgeSBsZXMgZGVsZWdhIGxhIGhpZHJhdGFjacOzbiBlc3BlY8OtZmljYS5cclxuICAgICAqXHJcbiAgICAgKiBFc3RlIG3DqXRvZG8gc2UgbGxhbWEgdGFudG8gZW4gU1NSIGNvbW8gZW4gbmF2ZWdhZG9yLlxyXG4gICAgICovXHJcbiAgICBoeWRyYXRlRnJvbVJvdXRlKFxyXG4gICAgICAgIHBhZ2luYXRpb25TZXR0aW5nczogUGFnaW5hdGlvblNldHRpbmdzLFxyXG4gICAgICAgIHJvdXRlUGFyYW1zOiBQYXJhbXMsXHJcbiAgICAgICAgcm91dGVRdWVyeTogUGFyYW1zXHJcbiAgICApOiB2b2lkIHtcclxuICAgICAgICAvLyBoaWRyYXRhciBzZWFyY2ggZGVzZGUgbGEgVVJMID09PVxyXG4gICAgICAgIGNvbnN0IHNlYXJjaEZyb21VcmwgPSByb3V0ZVF1ZXJ5Py5bJ3NlYXJjaCddO1xyXG4gICAgICAgIGlmICh0eXBlb2Ygc2VhcmNoRnJvbVVybCA9PT0gJ3N0cmluZycgJiYgc2VhcmNoRnJvbVVybC50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIC8vIEd1YXJkYW1vcyBlbCB2YWxvciBwYXJhIHF1ZSBvdHJvcyBjb21wb25lbnRlcyAoSGVhZGVyLCBDb2xsZWN0aW9uKSBsbyByZXV0aWxpY2VuXHJcbiAgICAgICAgICAgIHRoaXMuX2NvbnN0cy5zZWFyY2hWYWx1ZSA9IHNlYXJjaEZyb21VcmwudHJpbSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFNpIG5vIHZpZW5lIGBzZWFyY2hgIGVuIGxhIFVSTCwgbGltcGlhbW9zIGVsIGVzdGFkbyBnbG9iYWwgcGFyYSBubyBhcnJhc3RyYXIgYsO6c3F1ZWRhcyB2aWVqYXNcclxuICAgICAgICAgICAgdGhpcy5fY29uc3RzLnNlYXJjaFZhbHVlID0gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBHdWFyZGFtb3MgbGEgw7psdGltYSBxdWVyeSBjb21wbGV0YSBwYXJhIHVzYXJsYSBlbiBnZW5lcmF0ZUZpbmFsQXBpIChwYXJjaGUgYXR0cmlidXRlQ29kZXMpXHJcbiAgICAgICAgdGhpcy5fbGFzdFJvdXRlUXVlcnkgPSByb3V0ZVF1ZXJ5O1xyXG5cclxuICAgICAgICAvLyBHdWFyZGFtb3MgbGFzIHNldHRpbmdzIGFjdHVhbGVzICh0eXBlLCB2YWx1ZSwgbGltaXQsIGV0Yy4pXHJcbiAgICAgICAgdGhpcy5fcGFnaW5hdGlvblNldHRpbmdzID0gcGFnaW5hdGlvblNldHRpbmdzO1xyXG5cclxuICAgICAgICAvLyBDcmVhbW9zIGxvcyBmaWx0cm9zIGJhc2UgKGF0dHJpYnV0ZXMsIGNhdGVnb3JpZXMsIGR5bmFtaWNzLCBzb3J0LCBwcmljZV9yYW5nZSwgZXRjLilcclxuICAgICAgICBsZXQgZmluYWxfZmlsdGVyczogRmlsdGVyW10gPSBbXTtcclxuICAgICAgICBsZXQgZmlsdGVyc1RvUHJvY2VzcyA9IHRoaXMuX29wdGlvbnNGaWx0ZXJzPy5pbmNsdWRlcygnYWxsJylcclxuICAgICAgICAgICAgPyAoWydhdHRyaWJ1dGVzJywgJ2NhdGVnb3JpZXMnLCAnZHluYW1pY3MnLCAnc29ydCcsICdwcmljZV9yYW5nZSddIGFzIEZpbHRlclR5cGVbXSlcclxuICAgICAgICAgICAgOiB0aGlzLl9vcHRpb25zRmlsdGVycztcclxuXHJcbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJGYWN0b3J5ID0gbmV3IEZpbHRlckZhY3RvcnkoKTtcclxuICAgICAgICAgICAgZmlsdGVyc1RvUHJvY2Vzcz8uZm9yRWFjaChmaWx0ZXJUeXBlID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGZpbHRlckZhY3RvcnkuY3JlYXRlKGZpbHRlclR5cGUsIHBhZ2luYXRpb25TZXR0aW5ncyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmluYWxfZmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBBcGxpY2Ftb3MgZGVmYXVsdEZpbHRlcnMgc2kgY29ycmVzcG9uZGVcclxuICAgICAgICB0aGlzLl9kZWZhdWx0RmlsdGVycz8uZm9yRWFjaChmaWx0ZXJEZWZhdWx0ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gZmluYWxfZmlsdGVycy5maW5kKGYgPT4gZi50eXBlKCkgPT09IGZpbHRlckRlZmF1bHQuZmlsdGVyX3R5cGUpO1xyXG4gICAgICAgICAgICBmaWx0ZXIgJiYgZmlsdGVyRGVmYXVsdC5jb2Rlcy5mb3JFYWNoKHZhbHVlID0+IGZpbHRlci5zZXRTZWxlY3RlZCh2YWx1ZSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBIaWRyYXRhciBmaWx0cm9zIGNvbiBzbHVnIHkgcXVlcnkgcGFyYW1zIGdlbsOpcmljb3NcclxuICAgICAgICBmaW5hbF9maWx0ZXJzLmZvckVhY2goZiA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFueUZpbHRlciA9IGYgYXMgYW55O1xyXG5cclxuICAgICAgICAgICAgLy8gdHlwZS92YWx1ZSBlbiBsYSBVUkw6IC9jb2xsZWN0aW9uL2NhdGVnb3JpZXMvOnZhbHVlXHJcbiAgICAgICAgICAgIGNvbnN0IHVybFR5cGUgPSByb3V0ZVBhcmFtc1sndHlwZSddO1xyXG4gICAgICAgICAgICBjb25zdCB1cmxWYWx1ZSA9IHJvdXRlUGFyYW1zWyd2YWx1ZSddO1xyXG5cclxuICAgICAgICAgICAgLy8gUG9yIGVqZW1wbG8sIGVsIENhdGVnb3J5RmlsdGVyIGltcGxlbWVudGEgc2V0RnJvbVNsdWcgcGFyYSBtYXJjYXIgbGEgY2F0ZWdvcsOtYSBjb3JyZWN0YVxyXG4gICAgICAgICAgICBpZiAodXJsVHlwZSA9PT0gJ2NhdGVnb3JpZXMnICYmIHVybFZhbHVlICYmIHR5cGVvZiBhbnlGaWx0ZXIuc2V0RnJvbVNsdWcgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgIGFueUZpbHRlci5zZXRGcm9tU2x1Zyh1cmxWYWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIHF1ZXJ5IHBhcmFtcyBnZW7DqXJpY29zOiA/Y2F0ZWdvcnk9MDEwMSZwcmljZV9taW49Li4uJnByaWNlX21heD0uLi4mYXR0cmlidXRlQ29kZXM9Li4uXHJcbiAgICAgICAgICAgIC8vIENhZGEgZmlsdHJvIHF1ZSBsbyBzb3BvcnRlIGltcGxlbWVudGEgaHlkcmF0ZUZyb21RdWVyeSB5IGRlY2lkZSBxdcOpIGxlZXIuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgYW55RmlsdGVyLmh5ZHJhdGVGcm9tUXVlcnkgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgIGFueUZpbHRlci5oeWRyYXRlRnJvbVF1ZXJ5KHJvdXRlUXVlcnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEhpZHJhdGFyIGVzcGVjw61maWNhbWVudGUgZWwgUHJpY2VSYW5nZUZpbHRlciBkZXNkZSBsYSBVUkxcclxuICAgICAgICBjb25zdCBwcmljZUZpbHRlciA9IGZpbmFsX2ZpbHRlcnMuZmluZChcclxuICAgICAgICAgICAgKGY6IEZpbHRlcikgPT4gZiBpbnN0YW5jZW9mIFByaWNlUmFuZ2VGaWx0ZXJcclxuICAgICAgICApIGFzIFByaWNlUmFuZ2VGaWx0ZXIgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIGlmIChwcmljZUZpbHRlciAmJiByb3V0ZVF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1pbkZyb21VcmwgPSByb3V0ZVF1ZXJ5WydwcmljZV9taW4nXTtcclxuICAgICAgICAgICAgY29uc3QgbWF4RnJvbVVybCA9IHJvdXRlUXVlcnlbJ3ByaWNlX21heCddO1xyXG5cclxuICAgICAgICAgICAgaWYgKG1pbkZyb21VcmwgIT0gbnVsbCB8fCBtYXhGcm9tVXJsICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1pbiA9IG1pbkZyb21VcmwgIT0gbnVsbCA/IE51bWJlcihtaW5Gcm9tVXJsKSA6IHByaWNlRmlsdGVyLm1pblByaWNlO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbWF4ID0gbWF4RnJvbVVybCAhPSBudWxsID8gTnVtYmVyKG1heEZyb21VcmwpIDogcHJpY2VGaWx0ZXIubWF4UHJpY2U7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gdXNhbW9zIGxhIEFQSSBkZWwgZmlsdHJvIHBhcmEgc2V0ZWFyIGVsIHJhbmdvXHJcbiAgICAgICAgICAgICAgICBwcmljZUZpbHRlci5zZXRTZWxlY3RlZChtaW4sIG1heCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBzaSBubyBoYXkgbmFkYSBlbiBsYSBVUkwsIGxvIHJlc2V0ZWFtb3NcclxuICAgICAgICAgICAgICAgIHByaWNlRmlsdGVyLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEVtaXRpbW9zIGZpbHRyb3MgeWEgaGlkcmF0YWRvcyBwYXJhIHF1ZSBQYWdpbmF0aW9uU2VydmljZSB5IENvbGxlY3Rpb24gcmVhY2Npb25lblxyXG4gICAgICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0Lm5leHQoZmluYWxfZmlsdGVycyk7XHJcblxyXG4gICAgICAgIC8vIE1hcmNhbW9zIHF1ZSBlbCBzaXN0ZW1hIGRlIGZpbHRyb3MgZXN0w6EgbGlzdG8gKMO6dGlsIHBhcmEgbW9zdHJhciBzcGlubmVycywgZXRjLilcclxuICAgICAgICB0aGlzLl9yZWFkeVN1YmplY3QubmV4dCh0cnVlKTtcclxuICAgIH1cclxufVxyXG5cclxuLy8gZXhwb3J0IHR5cGUgRmlsdGVyVHlwZSA9ICdhdHRyaWJ1dGVzJyB8ICdjYXRlZ29yaWVzJyB8ICdkeW5hbWljcycgfCAnc29ydCcgfCAncHJpY2VfcmFuZ2UnOyAvLyBVc2UgaW1wb3J0ZWQgRmlsdGVyVHlwZSBpbnN0ZWFkXHJcbiJdfQ==
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2ZpbHRlcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQU16RSxNQUFNLE9BQU8sY0FBYztJQUNmLFVBQVUsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDOUQsT0FBTyxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RCxlQUFlLEdBQThCLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLFFBQVEsR0FBeUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRSxjQUFjLEdBQTRCLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLE9BQU8sR0FBdUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVoRSxhQUFhLEdBQTZCLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQy9FLE1BQU0sR0FBd0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUvRCxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUVqRCxlQUFlLEdBQTJC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LElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO2dCQUMzRSxNQUFNLEdBQUcsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7Z0JBRTNFLGdEQUFnRDtnQkFDaEQsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLDBDQUEwQztnQkFDMUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDO1FBRUQsb0ZBQW9GO1FBQ3BGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXpDLG1GQUFtRjtRQUNuRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO3dHQWxUUSxjQUFjOzRHQUFkLGNBQWMsY0FGWCxNQUFNOzs0RkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIGluamVjdCwgSW5qZWN0YWJsZSwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbHRlciwgRmlsdGVyRmFjdG9yeSB9IGZyb20gJy4uL2NsYXNzZXMnO1xuaW1wb3J0IHsgRGVmYXVsdEZpbHRlciwgRmlsdGVyRWxlbWVudCwgUGFnaW5hdGlvblNldHRpbmdzLCBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlLCBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQcmljZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vY2xhc3Nlcy9maWx0ZXJzL3ByaWNlX3JhbmdlLWZpbHRlcic7XG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlcnNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9hcGlDb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfY29uc3RzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfZmlsdGVyc1N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlcltdPihbXSk7XG4gICAgcHVibGljIGZpbHRlcnMkOiBPYnNlcnZhYmxlPEZpbHRlcltdPiA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBfYXBpVXJsU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIHB1YmxpYyBhcGlVcmwkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLl9hcGlVcmxTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBfcmVhZHlTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwdWJsaWMgcmVhZHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fcmVhZHlTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpXG5cbiAgICBwcml2YXRlIF9vcHRpb25zRmlsdGVyczogKEZpbHRlclR5cGUgfCAnYWxsJylbXSA9IFsnYWxsJ107XG4gICAgcHJpdmF0ZSBfZGVmYXVsdEZpbHRlcnM6IERlZmF1bHRGaWx0ZXJbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfcGFnaW5hdGlvblNldHRpbmdzOiBQYWdpbmF0aW9uU2V0dGluZ3MgPSB7XG4gICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgdHlwZTogJycsXG4gICAgICAgIGxpbWl0OiAwXG4gICAgfTtcblxuICAgIHByaXZhdGUgX2ZpbHRlcnNJbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2xhc3RSb3V0ZVF1ZXJ5OiBQYXJhbXMgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvL3RoaXMuX2RlZmF1bHRGaWx0ZXJzID0gdGhpcy5fY29uc3RzLmdldERlZmF1bHRGaWx0ZXJzKClcbiAgICB9XG5cbiAgICAvL0FQSSBVUkxcbiAgICAvKipcbiAgICAgKiBSZXRvcm5hIGxhIHVybCBwYXJhIGVsIGZpbHRyYWRvXG4gICAgICogQHBhcmFtIGZpbHRlcnMgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgcHJvZHVjdHNGaWx0ZXJBcGkoZmlsdGVycyA9ICcnKSB7IHJldHVybiAnc2hvcC1hcGkvJyArIHRoaXMuX2FwaUNvbnN0cy5DSEFOTkVMICsgJy9wcm9kdWN0LXNlYXJjaC8nICsgJz9sb2NhbGU9JyArIHRoaXMuX2FwaUNvbnN0cy5MT0NBTEUgKyBmaWx0ZXJzIH07XG4gICAgLyoqXG4gICAgICogQXJtYSBsb3MgZmlsdHJvcyB5IHJldG9ybmEgbGEgdXJsIGNvbXBsZXRhIGNvbiBsb3MgZmlsdHJvcyBhcGxpY2Fkb3MuXG4gICAgICogQHBhcmFtIHNlYXJjaF92YWx1ZSB2YWxvciBhIGJ1c2NhclxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIGdlbmVyYXRlRmluYWxBcGkoc2VhcmNoX3ZhbHVlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGV4dHJhX3BhcmFtcyA9ICcnO1xuXG4gICAgICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0LnZhbHVlLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4dHJhID0gZmlsdGVyLnRvVXJsUGFyYW1zKCk7XG4gICAgICAgICAgICBpZiAoZXh0cmEgJiYgZXh0cmEuc3BsaXQoJz0nKVsxXSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICBleHRyYV9wYXJhbXMgKz0gZXh0cmE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNpIGVuIGxhIFVSTCB5YSB2ZW7DrWEgYGF0dHJpYnV0ZUNvZGVzYCBwZXJvIGHDum4gbmluZ8O6biBmaWx0cm8gbG8gYWdyZWfDsyxcbiAgICAgICAgLy8gbG8gdm9sdmVtb3MgYSBzdW1hciBhIG1hbm8uIEVzdG8gZXZpdGEgcXVlIGFsIHJlZnJlc2NhciAoU1NSKSBzZSBwaWVyZGEgZWwgZmlsdHJvXG4gICAgICAgIC8vIGF1bnF1ZSBlbCBBdHRyaWJ1dGVzRmlsdGVyIHRvZGF2w61hIG5vIGhheWEgdGVybWluYWRvIGRlIGhpZHJhdGFyc2UuXG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZUNvZGVzRnJvbVJvdXRlID0gdGhpcy5fbGFzdFJvdXRlUXVlcnk/LlsnYXR0cmlidXRlQ29kZXMnXTtcbiAgICAgICAgaWYgKGF0dHJpYnV0ZUNvZGVzRnJvbVJvdXRlICYmICFleHRyYV9wYXJhbXMuaW5jbHVkZXMoJ2F0dHJpYnV0ZUNvZGVzPScpKSB7XG4gICAgICAgICAgICBleHRyYV9wYXJhbXMgKz0gYCZhdHRyaWJ1dGVDb2Rlcz0ke2F0dHJpYnV0ZUNvZGVzRnJvbVJvdXRlfWA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2VhcmNoX3ZhbHVlKSB7XG4gICAgICAgICAgICBleHRyYV9wYXJhbXMgKz0gJyZjcml0ZXJpYVtzZWFyY2hdW3R5cGVdPWNvbnRhaW5zJmNyaXRlcmlhW3NlYXJjaF1bdmFsdWVdPScgKyBzZWFyY2hfdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0c0ZpbHRlckFwaShleHRyYV9wYXJhbXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNVcGRhdGVkKHBhZ2luYXRpb25TZXR0aW5nczogUGFnaW5hdGlvblNldHRpbmdzKSB7XG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMocGFnaW5hdGlvblNldHRpbmdzKTtcbiAgICAgICAgbGV0IGNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgICAgICBrZXlzLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IChwYWdpbmF0aW9uU2V0dGluZ3MgYXMgUmVjb3JkPHN0cmluZywgYW55Pilba2V5XTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlMiA9ICh0aGlzLl9wYWdpbmF0aW9uU2V0dGluZ3MgYXMgUmVjb3JkPHN0cmluZywgYW55Pilba2V5XTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZTIpIGNoYW5nZSA9IHRydWU7XG4gICAgICAgIH0pXG4gICAgICAgIGlmIChjaGFuZ2UpIHRoaXMuX3BhZ2luYXRpb25TZXR0aW5ncyA9IHBhZ2luYXRpb25TZXR0aW5ncztcbiAgICAgICAgcmV0dXJuIGNoYW5nZTtcbiAgICB9XG5cbiAgICBzZXRGaWx0ZXJzKFxuICAgICAgICBwYWdpbmF0aW9uU2V0dGluZ3M6IFBhZ2luYXRpb25TZXR0aW5ncyxcbiAgICAgICAgc2VhcmNoX3ZhbHVlPzogc3RyaW5nLFxuICAgICAgICByb3V0ZVF1ZXJ5UGFyYW1zPzogYW55XG4gICAgKSB7XG4gICAgICAgIHRoaXMuX3BhZ2luYXRpb25TZXR0aW5ncyA9IHBhZ2luYXRpb25TZXR0aW5ncztcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gICAgICAgIGxldCBmaWx0ZXJzVG9Qcm9jZXNzID0gdGhpcy5fb3B0aW9uc0ZpbHRlcnM/LmluY2x1ZGVzKCdhbGwnKVxuICAgICAgICAgICAgPyAoWydhdHRyaWJ1dGVzJywgJ2NhdGVnb3JpZXMnLCAnZHluYW1pY3MnLCAnc29ydCcsICdwcmljZV9yYW5nZSddIGFzIEZpbHRlclR5cGVbXSlcbiAgICAgICAgICAgIDogdGhpcy5fb3B0aW9uc0ZpbHRlcnM7XG5cbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XG4gICAgICAgICAgICBmaWx0ZXJzVG9Qcm9jZXNzPy5mb3JFYWNoKGZpbHRlclR5cGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGZpbHRlckZhY3RvcnkuY3JlYXRlKGZpbHRlclR5cGUsIHBhZ2luYXRpb25TZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbF9maWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZGVmYXVsdEZpbHRlcnM/LmZvckVhY2goZmlsdGVyRGVmYXVsdCA9PiB7XG4gICAgICAgICAgICBsZXQgZmlsdGVyID0gZmluYWxfZmlsdGVycy5maW5kKGZpbHRlciA9PiBmaWx0ZXIudHlwZSgpID09IGZpbHRlckRlZmF1bHQuZmlsdGVyX3R5cGUpO1xuICAgICAgICAgICAgZmlsdGVyICYmIGZpbHRlckRlZmF1bHQuY29kZXMuZm9yRWFjaCh2YWx1ZSA9PiBmaWx0ZXIuc2V0U2VsZWN0ZWQodmFsdWUpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gaGlkcmF0YXIgcHJpY2VfcmFuZ2UgZGVzZGUgbGEgVVJMXG4gICAgICAgIGlmIChyb3V0ZVF1ZXJ5UGFyYW1zKSB7XG4gICAgICAgICAgICBjb25zdCBwciA9IGZpbmFsX2ZpbHRlcnMuZmluZChmID0+IGYudHlwZSgpID09PSAncHJpY2VfcmFuZ2UnKSBhcyBQcmljZVJhbmdlRmlsdGVyIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKHByKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmF3TWluID0gcm91dGVRdWVyeVBhcmFtc1sncHJpY2VfbWluJ107XG4gICAgICAgICAgICAgICAgY29uc3QgcmF3TWF4ID0gcm91dGVRdWVyeVBhcmFtc1sncHJpY2VfbWF4J107XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSByYXdNaW4gIT0gbnVsbCA/IE51bWJlcihyYXdNaW4pIDogbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXggPSByYXdNYXggIT0gbnVsbCA/IE51bWJlcihyYXdNYXgpIDogbnVsbDtcblxuICAgICAgICAgICAgICAgIGlmICgobWluICE9IG51bGwgJiYgIU51bWJlci5pc05hTihtaW4pKSB8fCAobWF4ICE9IG51bGwgJiYgIU51bWJlci5pc05hTihtYXgpKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobWluICE9IG51bGwgJiYgIU51bWJlci5pc05hTihtaW4pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwci5jdXJyZW50TWluUHJpY2UgPSBtaW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1heCAhPSBudWxsICYmICFOdW1iZXIuaXNOYU4obWF4KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHIuY3VycmVudE1heFByaWNlID0gbWF4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcbiAgICB9XG5cbiAgICBnZXRGaWx0ZXJzKHBhZ2luYXRpb25TZXR0aW5ncz86IFBhZ2luYXRpb25TZXR0aW5ncykge1xuICAgICAgICBpZiAodGhpcy5fZmlsdGVyc0luaXRpYWxpemVkKSByZXR1cm47XG4gICAgICAgIHRoaXMuX2ZpbHRlcnNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gcGFnaW5hdGlvblNldHRpbmdzIHx8IHRoaXMuX3BhZ2luYXRpb25TZXR0aW5ncztcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gICAgICAgIGxldCBmaWx0ZXJzVG9Qcm9jZXNzID0gdGhpcy5fb3B0aW9uc0ZpbHRlcnM/LmluY2x1ZGVzKCdhbGwnKVxuICAgICAgICAgICAgPyAoWydhdHRyaWJ1dGVzJywgJ2NhdGVnb3JpZXMnLCAnZHluYW1pY3MnLCAnc29ydCcsICdwcmljZV9yYW5nZSddIGFzIEZpbHRlclR5cGVbXSlcbiAgICAgICAgICAgIDogdGhpcy5fb3B0aW9uc0ZpbHRlcnM7XG5cbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XG4gICAgICAgICAgICBmaWx0ZXJzVG9Qcm9jZXNzPy5mb3JFYWNoKGZpbHRlclR5cGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGZpbHRlckZhY3RvcnkuY3JlYXRlKGZpbHRlclR5cGUsIHNldHRpbmdzKTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsX2ZpbHRlcnMucHVzaChmaWx0ZXIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGNyZWF0ZSBmaWx0ZXIgZm9yIHR5cGU6ICR7ZmlsdGVyVHlwZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZGVmYXVsdEZpbHRlcnM/LmZvckVhY2goZmlsdGVyRGVmYXVsdCA9PiB7XG4gICAgICAgICAgICBsZXQgZmlsdGVyID0gZmluYWxfZmlsdGVycy5maW5kKGZpbHRlciA9PiBmaWx0ZXIudHlwZSgpID09IGZpbHRlckRlZmF1bHQuZmlsdGVyX3R5cGUpO1xuICAgICAgICAgICAgZmlsdGVyICYmIGZpbHRlckRlZmF1bHQuY29kZXMuZm9yRWFjaCh2YWx1ZSA9PiBmaWx0ZXIuc2V0U2VsZWN0ZWQodmFsdWUpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0Lm5leHQoZmluYWxfZmlsdGVycyk7XG4gICAgICAgIHJldHVybiBmaW5hbF9maWx0ZXJzO1xuICAgIH1cblxuICAgIGdldFNwZWNpZmljRmlsdGVycyh0eXBlczogRmlsdGVyVHlwZVtdKTogRmlsdGVyW10ge1xuICAgICAgICBjb25zdCBmaWx0ZXJzOiBGaWx0ZXJbXSA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LnZhbHVlLmZpbHRlcihmaWx0ZXIgPT4gdHlwZXMuaW5jbHVkZXMoZmlsdGVyLnR5cGUoKSkpXG4gICAgICAgIHJldHVybiBmaWx0ZXJzO1xuICAgIH1cblxuICAgIHNldEZpbHRlclNlbGVjdGVkKGZpbHRlck9iajogRmlsdGVyLCBmaWx0ZXJFbGVtOiBGaWx0ZXJFbGVtZW50KSB7XG4gICAgICAgIGxldCBmaW5hbF9maWx0ZXJzOiBGaWx0ZXJbXSA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LnZhbHVlO1xuICAgICAgICBpZiAoZmlsdGVyT2JqLnR5cGUoKSAhPT0gJ3ByaWNlX3JhbmdlJykge1xuICAgICAgICAgICAgbGV0IGluZGV4ID0gZmluYWxfZmlsdGVycy5maW5kSW5kZXgoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gZmlsdGVyT2JqLnR5cGUoKSk7XG4gICAgICAgICAgICBmaW5hbF9maWx0ZXJzW2luZGV4XS5zZXRTZWxlY3RlZChmaWx0ZXJFbGVtLCBmaWx0ZXJFbGVtLnZhbHVlIHx8IGZpbHRlckVsZW0uY29kZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIHVwZGF0ZUZpbHRlcnMocGFnaW5hdGlvbkZpbHRlcnM6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjbGF2ZXMgPSBPYmplY3Qua2V5cyhwYWdpbmF0aW9uRmlsdGVycylcbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXI6IEZpbHRlcltdID0gW11cbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0LnZhbHVlLmZvckVhY2goKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUudHlwZSgpID09IFwiYXR0cmlidXRlc1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vdmFsdWUuZGF0YSA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqIFxuICAgICAqIEFjdHVhbGl6YSBpbnRlcm5hbWVudGUgZWwgcmFuZ28gZGUgcHJlY2lvIHkgcmUtZW1pdGUgXG4gICAgICogZWwgYXJyYXkgZGUgZmlsdHJvcyBwYXJhIHF1ZSBQYWdpbmF0aW9uU2VydmljZSB2dWVsdmEgYSBsbGFtYXIgXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVByaWNlUmFuZ2VGaWx0ZXIobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZTtcbiAgICAgICAgY29uc3QgcHIgPSBmaWx0ZXJzLmZpbmQoZiA9PiBmLnR5cGUoKSA9PT0gJ3ByaWNlX3JhbmdlJykgYXMgUHJpY2VSYW5nZUZpbHRlciB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFwcikgcmV0dXJuO1xuICAgICAgICBwci5zZXRTZWxlY3RlZChtaW4sIG1heCk7XG4gICAgICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0Lm5leHQoWy4uLmZpbHRlcnNdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGdWVyemEgYSBlbWl0aXIgZGUgbnVldm8gbG9zIGZpbHRyb3MgYWN0dWFsZXMuXG4gICAgICogw5p0aWwgY3VhbmRvIHVuIGZpbHRybyBhc3luYyAoY2F0ZWdvcsOtYXMsIGF0cmlidXRvcykgdGVybWluYSBkZSBjYXJnYXJzZVxuICAgICAqIHkgbmVjZXNpdGFtb3MgcXVlIFBhZ2luYXRpb25TZXJ2aWNlIHZ1ZWx2YSBhIGFybWFyIGxhIFVSTC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVmcmVzaEZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZTtcbiAgICAgICAgLy8gRW1pdGltb3MgdW5hIGNvcGlhIHBhcmEgcXVlIGxvcyBzdWJzY3JpYmVycyBkZXRlY3RlbiBlbCBjYW1iaW9cbiAgICAgICAgdGhpcy5fZmlsdGVyc1N1YmplY3QubmV4dChbLi4uY3VycmVudF0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1bnRvIGNlbnRyYWwgZG9uZGUgc2UgaGlkcmF0YW4gbG9zIGZpbHRyb3MgYSBwYXJ0aXIgZGUgbGEgVVJMOlxuICAgICAqIC0gTGVlIHR5cGUvdmFsdWUgZGUgbGEgcnV0YSAoZWouIC9jb2xsZWN0aW9uL2NhdGVnb3JpZXMvOnZhbHVlKS5cbiAgICAgKiAtIExlZSBxdWVyeSBwYXJhbXMgKGNhdGVnb3J5LCBwcmljZV9taW4sIHByaWNlX21heCwgYXR0cmlidXRlQ29kZXMsIHNlYXJjaCwgZXRjLikuXG4gICAgICogLSBDcmVhIGluc3RhbmNpYXMgZGUgZmlsdHJvcyB5IGxlcyBkZWxlZ2EgbGEgaGlkcmF0YWNpw7NuIGVzcGVjw61maWNhLlxuICAgICAqXG4gICAgICogRXN0ZSBtw6l0b2RvIHNlIGxsYW1hIHRhbnRvIGVuIFNTUiBjb21vIGVuIG5hdmVnYWRvci5cbiAgICAgKi9cbiAgICBoeWRyYXRlRnJvbVJvdXRlKFxuICAgICAgICBwYWdpbmF0aW9uU2V0dGluZ3M6IFBhZ2luYXRpb25TZXR0aW5ncyxcbiAgICAgICAgcm91dGVQYXJhbXM6IFBhcmFtcyxcbiAgICAgICAgcm91dGVRdWVyeTogUGFyYW1zXG4gICAgKTogdm9pZCB7XG4gICAgICAgIC8vIGhpZHJhdGFyIHNlYXJjaCBkZXNkZSBsYSBVUkwgPT09XG4gICAgICAgIGNvbnN0IHNlYXJjaEZyb21VcmwgPSByb3V0ZVF1ZXJ5Py5bJ3NlYXJjaCddO1xuICAgICAgICBpZiAodHlwZW9mIHNlYXJjaEZyb21VcmwgPT09ICdzdHJpbmcnICYmIHNlYXJjaEZyb21VcmwudHJpbSgpICE9PSAnJykge1xuICAgICAgICAgICAgLy8gR3VhcmRhbW9zIGVsIHZhbG9yIHBhcmEgcXVlIG90cm9zIGNvbXBvbmVudGVzIChIZWFkZXIsIENvbGxlY3Rpb24pIGxvIHJldXRpbGljZW5cbiAgICAgICAgICAgIHRoaXMuX2NvbnN0cy5zZWFyY2hWYWx1ZSA9IHNlYXJjaEZyb21VcmwudHJpbSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gU2kgbm8gdmllbmUgYHNlYXJjaGAgZW4gbGEgVVJMLCBsaW1waWFtb3MgZWwgZXN0YWRvIGdsb2JhbCBwYXJhIG5vIGFycmFzdHJhciBiw7pzcXVlZGFzIHZpZWphc1xuICAgICAgICAgICAgdGhpcy5fY29uc3RzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHdWFyZGFtb3MgbGEgw7psdGltYSBxdWVyeSBjb21wbGV0YSBwYXJhIHVzYXJsYSBlbiBnZW5lcmF0ZUZpbmFsQXBpIChwYXJjaGUgYXR0cmlidXRlQ29kZXMpXG4gICAgICAgIHRoaXMuX2xhc3RSb3V0ZVF1ZXJ5ID0gcm91dGVRdWVyeTtcblxuICAgICAgICAvLyBHdWFyZGFtb3MgbGFzIHNldHRpbmdzIGFjdHVhbGVzICh0eXBlLCB2YWx1ZSwgbGltaXQsIGV0Yy4pXG4gICAgICAgIHRoaXMuX3BhZ2luYXRpb25TZXR0aW5ncyA9IHBhZ2luYXRpb25TZXR0aW5ncztcblxuICAgICAgICAvLyBDcmVhbW9zIGxvcyBmaWx0cm9zIGJhc2UgKGF0dHJpYnV0ZXMsIGNhdGVnb3JpZXMsIGR5bmFtaWNzLCBzb3J0LCBwcmljZV9yYW5nZSwgZXRjLilcbiAgICAgICAgbGV0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gICAgICAgIGxldCBmaWx0ZXJzVG9Qcm9jZXNzID0gdGhpcy5fb3B0aW9uc0ZpbHRlcnM/LmluY2x1ZGVzKCdhbGwnKVxuICAgICAgICAgICAgPyAoWydhdHRyaWJ1dGVzJywgJ2NhdGVnb3JpZXMnLCAnZHluYW1pY3MnLCAnc29ydCcsICdwcmljZV9yYW5nZSddIGFzIEZpbHRlclR5cGVbXSlcbiAgICAgICAgICAgIDogdGhpcy5fb3B0aW9uc0ZpbHRlcnM7XG5cbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuZW52aXJvbm1lbnRJbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyRmFjdG9yeSA9IG5ldyBGaWx0ZXJGYWN0b3J5KCk7XG4gICAgICAgICAgICBmaWx0ZXJzVG9Qcm9jZXNzPy5mb3JFYWNoKGZpbHRlclR5cGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGZpbHRlckZhY3RvcnkuY3JlYXRlKGZpbHRlclR5cGUsIHBhZ2luYXRpb25TZXR0aW5ncyk7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbF9maWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQXBsaWNhbW9zIGRlZmF1bHRGaWx0ZXJzIHNpIGNvcnJlc3BvbmRlXG4gICAgICAgIHRoaXMuX2RlZmF1bHRGaWx0ZXJzPy5mb3JFYWNoKGZpbHRlckRlZmF1bHQgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gZmluYWxfZmlsdGVycy5maW5kKGYgPT4gZi50eXBlKCkgPT09IGZpbHRlckRlZmF1bHQuZmlsdGVyX3R5cGUpO1xuICAgICAgICAgICAgZmlsdGVyICYmIGZpbHRlckRlZmF1bHQuY29kZXMuZm9yRWFjaCh2YWx1ZSA9PiBmaWx0ZXIuc2V0U2VsZWN0ZWQodmFsdWUpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSGlkcmF0YXIgZmlsdHJvcyBjb24gc2x1ZyB5IHF1ZXJ5IHBhcmFtcyBnZW7DqXJpY29zXG4gICAgICAgIGZpbmFsX2ZpbHRlcnMuZm9yRWFjaChmID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFueUZpbHRlciA9IGYgYXMgYW55O1xuXG4gICAgICAgICAgICAvLyB0eXBlL3ZhbHVlIGVuIGxhIFVSTDogL2NvbGxlY3Rpb24vY2F0ZWdvcmllcy86dmFsdWVcbiAgICAgICAgICAgIGNvbnN0IHVybFR5cGUgPSByb3V0ZVBhcmFtc1sndHlwZSddO1xuICAgICAgICAgICAgY29uc3QgdXJsVmFsdWUgPSByb3V0ZVBhcmFtc1sndmFsdWUnXTtcblxuICAgICAgICAgICAgLy8gUG9yIGVqZW1wbG8sIGVsIENhdGVnb3J5RmlsdGVyIGltcGxlbWVudGEgc2V0RnJvbVNsdWcgcGFyYSBtYXJjYXIgbGEgY2F0ZWdvcsOtYSBjb3JyZWN0YVxuICAgICAgICAgICAgaWYgKHVybFR5cGUgPT09ICdjYXRlZ29yaWVzJyAmJiB1cmxWYWx1ZSAmJiB0eXBlb2YgYW55RmlsdGVyLnNldEZyb21TbHVnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgYW55RmlsdGVyLnNldEZyb21TbHVnKHVybFZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gcXVlcnkgcGFyYW1zIGdlbsOpcmljb3M6ID9jYXRlZ29yeT0wMTAxJnByaWNlX21pbj0uLi4mcHJpY2VfbWF4PS4uLiZhdHRyaWJ1dGVDb2Rlcz0uLi5cbiAgICAgICAgICAgIC8vIENhZGEgZmlsdHJvIHF1ZSBsbyBzb3BvcnRlIGltcGxlbWVudGEgaHlkcmF0ZUZyb21RdWVyeSB5IGRlY2lkZSBxdcOpIGxlZXIuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGFueUZpbHRlci5oeWRyYXRlRnJvbVF1ZXJ5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgYW55RmlsdGVyLmh5ZHJhdGVGcm9tUXVlcnkocm91dGVRdWVyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEhpZHJhdGFyIGVzcGVjw61maWNhbWVudGUgZWwgUHJpY2VSYW5nZUZpbHRlciBkZXNkZSBsYSBVUkxcbiAgICAgICAgY29uc3QgcHJpY2VGaWx0ZXIgPSBmaW5hbF9maWx0ZXJzLmZpbmQoXG4gICAgICAgICAgICAoZjogRmlsdGVyKSA9PiBmIGluc3RhbmNlb2YgUHJpY2VSYW5nZUZpbHRlclxuICAgICAgICApIGFzIFByaWNlUmFuZ2VGaWx0ZXIgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKHByaWNlRmlsdGVyICYmIHJvdXRlUXVlcnkpIHtcbiAgICAgICAgICAgIGNvbnN0IG1pbkZyb21VcmwgPSByb3V0ZVF1ZXJ5WydwcmljZV9taW4nXTtcbiAgICAgICAgICAgIGNvbnN0IG1heEZyb21VcmwgPSByb3V0ZVF1ZXJ5WydwcmljZV9tYXgnXTtcblxuICAgICAgICAgICAgaWYgKG1pbkZyb21VcmwgIT0gbnVsbCB8fCBtYXhGcm9tVXJsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSBtaW5Gcm9tVXJsICE9IG51bGwgPyBOdW1iZXIobWluRnJvbVVybCkgOiBwcmljZUZpbHRlci5taW5QcmljZTtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXggPSBtYXhGcm9tVXJsICE9IG51bGwgPyBOdW1iZXIobWF4RnJvbVVybCkgOiBwcmljZUZpbHRlci5tYXhQcmljZTtcblxuICAgICAgICAgICAgICAgIC8vIHVzYW1vcyBsYSBBUEkgZGVsIGZpbHRybyBwYXJhIHNldGVhciBlbCByYW5nb1xuICAgICAgICAgICAgICAgIHByaWNlRmlsdGVyLnNldFNlbGVjdGVkKG1pbiwgbWF4KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gc2kgbm8gaGF5IG5hZGEgZW4gbGEgVVJMLCBsbyByZXNldGVhbW9zXG4gICAgICAgICAgICAgICAgcHJpY2VGaWx0ZXIucmVzZXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEVtaXRpbW9zIGZpbHRyb3MgeWEgaGlkcmF0YWRvcyBwYXJhIHF1ZSBQYWdpbmF0aW9uU2VydmljZSB5IENvbGxlY3Rpb24gcmVhY2Npb25lblxuICAgICAgICB0aGlzLl9maWx0ZXJzU3ViamVjdC5uZXh0KGZpbmFsX2ZpbHRlcnMpO1xuXG4gICAgICAgIC8vIE1hcmNhbW9zIHF1ZSBlbCBzaXN0ZW1hIGRlIGZpbHRyb3MgZXN0w6EgbGlzdG8gKMO6dGlsIHBhcmEgbW9zdHJhciBzcGlubmVycywgZXRjLilcbiAgICAgICAgdGhpcy5fcmVhZHlTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxufVxuXG4vLyBleHBvcnQgdHlwZSBGaWx0ZXJUeXBlID0gJ2F0dHJpYnV0ZXMnIHwgJ2NhdGVnb3JpZXMnIHwgJ2R5bmFtaWNzJyB8ICdzb3J0JyB8ICdwcmljZV9yYW5nZSc7IC8vIFVzZSBpbXBvcnRlZCBGaWx0ZXJUeXBlIGluc3RlYWRcbiJdfQ==
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
90
90
  providedIn: 'root'
91
91
  }]
92
92
  }], ctorParameters: () => [] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2Zvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFckU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQUNmLFNBQVMsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7SUFDNUQsVUFBVSxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUV2RCxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztJQUNsRCxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztJQUMvQyxvQkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztJQUU1RCxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEQsY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRSxTQUFTO0lBQ1Q7OztPQUdHO0lBQ0ksc0JBQXNCLEtBQUssT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSx3QkFB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QUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFBO0lBQ0Q7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxZQUFpQjtRQUM1QixPQUFPLFlBQVksQ0FBQTtJQUNwQixDQUFDO3dHQXRGVyxXQUFXOzRHQUFYLFdBQVcsY0FGWCxNQUFNOzs0RkFFTixXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9hcGknO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNpbyBlbmNhcmdhZG8gZGUgbWFuZWphciB0b2RvIGFxdWVsbG8gcmVsYWNpb25hZG8gY29uIGxvcyBmb3JtdWxhcmlvcyBkZW50cm8gZGUgbGEgYXBsaWNhY2nDs24uXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2VydmljZSB7XHJcblx0cHJpdmF0ZSBhcGlDb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSlcclxuXHRwcml2YXRlIGNvbm5lY3Rpb246IENvbm5lY3Rpb25TZXJ2aWNlID0gaW5qZWN0KENvbm5lY3Rpb25TZXJ2aWNlKVxyXG4gXHRcclxuXHRwcm90ZWN0ZWQgY291bnRyaWVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcclxuXHRwcm90ZWN0ZWQgcHJvdmluY2VzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcclxuICAgIHByb3RlY3RlZCBkb2N1bWVudFR5cGVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcclxuXHRcclxuXHRwdWJsaWMgY291bnRyaWVzJCA9IHRoaXMuY291bnRyaWVzU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIHB1YmxpYyBwcm92aW5jZXMkID0gdGhpcy5wcm92aW5jZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgcHVibGljIGRvY3VtZW50VHlwZXMkID0gdGhpcy5kb2N1bWVudFR5cGVzU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcblx0Ly9BUEkgVVJMXHJcblx0LyoqXHJcblx0ICogUmV0b3JuYSB1bmEgdXJsIHBhcmEgZW52aWFyIGxvcyBkYXRvcyBkZSB1biBmb3JtdWxhcmlvIGRlIGNvbnRhY3RvLlxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjb250YWN0Rm9ybVJlc3BvbnNlQVBJKCkgeyByZXR1cm4gYCR7dGhpcy5hcGlDb25zdHMuQ01TX1VSTH0ke3RoaXMuYXBpQ29uc3RzLkxPQ0FMRX0vY29udGFjdC1mb3JtL3Jlc3BvbnNlYCB9XHJcblx0LyoqXHJcblx0ICogUmV0b3JuYSB1bmEgdXJsIHBhcmEgZWwgZW5kcG9pbnQgcXVlIG9idGluZW4gbG9zIHBhaXNlcy5cclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgY291bnRyaWVzQXBpKCkgeyByZXR1cm4gJ3Nob3AtYXBpLycgKyB0aGlzLmFwaUNvbnN0cy5DSEFOTkVMICsgJy9jb3VudHJpZXMnIH07XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkgeyB9XHJcblx0LyoqXHJcblx0ICogRW52aWEgZW4gZm9ybXVsYXJpby5cclxuXHQgKiBAcGFyYW0gcmVzcG9uc2Vfb2JqIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHNlbmRSZXNwb25zZShyZXNwb25zZV9vYmo6IGFueSkge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29ubmVjdGlvbi5wb3N0KHRoaXMuY29udGFjdEZvcm1SZXNwb25zZUFQSSgpLCB0aGlzLnByZXBhcmVEYXRhKHJlc3BvbnNlX29iaikpXHJcblx0fVxyXG5cclxuXHQvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBjb250aWVuZSB1biBhcnJlZ2xvIGRlIHN0cmluZyBjdXlvIGNvbnRlbmlkbyBzb24gbG9zIGNvZGlnb3MgZGUgbG9zIHBhaXNlcyBhIGV4Y2x1aXIuXHJcbiAgICAgKiBAZXhhbXBsZSBbJ0dCJ11cclxuICAgICAqL1xyXG4gICAgcHVibGljIGV4Y2x1ZGVkQ291bnRyaWVzOiBzdHJpbmdbXSA9IFtdXHJcbiBcdHB1YmxpYyBhbGxvd2VkQ291bnRyaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG5cdC8qKlxyXG5cdCAqIE9idGllbmUgbG9zIHBhaXNlcyB5IGxvcyBndWFyZGEgZW4gdW4gb2JzZXJ2YWJsZS5cclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRnZXRDb3VudHJpZXNEYXRhKCk6T2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHRoaXMuY29ubmVjdGlvbi5nZXQodGhpcy5jb3VudHJpZXNBcGkoKSkucGlwZShcclxuXHRcdFx0c2hhcmVSZXBsYXkoMSksXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6YW55KSA9PiB7XHJcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcblx0XHRcdFx0Y29uc3QgZGF0YSA9IHJlc3BvbnNlLl9lbWJlZGRlZC5pdGVtcztcclxuXHRcdFx0XHR0aGlzLmNvdW50cmllc1N1YmplY3QubmV4dChkYXRhKVxyXG5cdFx0XHRcdGNvbnN0IGRvY3VtZW50VHlwZXNMb2NhbGUgPSBkYXRhLmZpbmQoKHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRyZXR1cm4gcmVzLmNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLmFwaUNvbnN0cy5MT0NBTEUudG9Mb2NhbGVMb3dlckNhc2UoKS5zcGxpdCgnXycpWzFdXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHRjb25zdCBkb2N1bWVudFR5cGVzRGF0YSA9IGRvY3VtZW50VHlwZXNMb2NhbGVbJ2RvY3VtZW50VHlwZXMnXVxyXG5cdFx0XHRcdHRoaXMuZG9jdW1lbnRUeXBlc1N1YmplY3QubmV4dChkb2N1bWVudFR5cGVzRGF0YSlcclxuXHRcdFx0fSkpLnN1YnNjcmliZSgpO1xyXG5cclxuXHRcdFx0aWYodGhpcy5leGNsdWRlZENvdW50cmllcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0dGhpcy5jb3VudHJpZXMkID0gdGhpcy5jb3VudHJpZXMkLnBpcGUoXHJcblx0XHRcdFx0XHRtYXAoY291bnRyaWVzID0+IGNvdW50cmllcy5maWx0ZXIoY291bnRyeSA9PiAhdGhpcy5leGNsdWRlZENvdW50cmllcy5pbmNsdWRlcyhjb3VudHJ5LmNvZGUpKSlcclxuXHRcdFx0XHQpXHJcblx0XHRcdH1cclxuXHRcdFx0aWYodGhpcy5hbGxvd2VkQ291bnRyaWVzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHR0aGlzLmNvdW50cmllcyQgPSB0aGlzLmNvdW50cmllcyQucGlwZShcclxuXHRcdFx0XHRcdG1hcChjb3VudHJpZXMgPT4gY291bnRyaWVzLmZpbHRlcihjb3VudHJ5ID0+IHRoaXMuYWxsb3dlZENvdW50cmllcy5pbmNsdWRlcyhjb3VudHJ5LmNvZGUpKSlcclxuXHRcdFx0XHQpXHJcblx0XHRcdH1cclxuXHRcdFxyXG5cdFx0cmV0dXJuIHRoaXMuY291bnRyaWVzJDtcclxuXHR9XHJcblx0LyoqXHJcblx0ICogQ2FtYmlhIGxhIGxpc3RhIGRlIHByb3ZpbmNpYXMgc2VndW4gZWwgY29kaWdvIGRlbCBwYcOtcy5cclxuXHQgKiBAcGFyYW0gY29kZSBcclxuXHQgKi9cclxuXHRvbkNvdW50cnlTZWxlY3RlZCA9IChjb2RlOnN0cmluZykgPT4ge1xyXG5cdFx0Y29uc3QgcHJvdmluY2VzID0gdGhpcy5jb3VudHJpZXNTdWJqZWN0LnZhbHVlLmZpbmQocHJvdmluY2UgPT4gcHJvdmluY2UuY29kZSA9PSBjb2RlKS5wcm92aW5jZXM7XHJcblx0XHR0aGlzLnByb3ZpbmNlc1N1YmplY3QubmV4dChwcm92aW5jZXMpO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBQYXJhIGVsIGZ1dHVybywgY3VhbmRvIGhheWEgcXVlIGFwbGljYXIgYWxndW4gZm9ybWF0byBhbnRlcyBkZSBlbnZpYXIgZWwgZm9ybXVsYXJpby5cclxuXHQgKiBAcGFyYW0gcmVzcG9uc2Vfb2JqIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHByZXBhcmVEYXRhKHJlc3BvbnNlX29iajogYW55KSB7XHJcblx0XHRyZXR1cm4gcmVzcG9uc2Vfb2JqXHJcblx0fVxyXG5cclxufVxyXG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2Zvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFckU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQUNmLFNBQVMsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7SUFDNUQsVUFBVSxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUV2RCxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztJQUNsRCxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztJQUMvQyxvQkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztJQUU1RCxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEQsY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRSxTQUFTO0lBQ1Q7OztPQUdHO0lBQ0ksc0JBQXNCLEtBQUssT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSx3QkFB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QUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFBO0lBQ0Q7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxZQUFpQjtRQUM1QixPQUFPLFlBQVksQ0FBQTtJQUNwQixDQUFDO3dHQXRGVyxXQUFXOzRHQUFYLFdBQVcsY0FGWCxNQUFNOzs0RkFFTixXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBlbmNhcmdhZG8gZGUgbWFuZWphciB0b2RvIGFxdWVsbG8gcmVsYWNpb25hZG8gY29uIGxvcyBmb3JtdWxhcmlvcyBkZW50cm8gZGUgbGEgYXBsaWNhY2nDs24uXG4gKi9cbkBJbmplY3RhYmxlKHtcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1TZXJ2aWNlIHtcblx0cHJpdmF0ZSBhcGlDb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSlcblx0cHJpdmF0ZSBjb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSlcbiBcdFxuXHRwcm90ZWN0ZWQgY291bnRyaWVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcblx0cHJvdGVjdGVkIHByb3ZpbmNlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XG4gICAgcHJvdGVjdGVkIGRvY3VtZW50VHlwZXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuXHRcblx0cHVibGljIGNvdW50cmllcyQgPSB0aGlzLmNvdW50cmllc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIHByb3ZpbmNlcyQgPSB0aGlzLnByb3ZpbmNlc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGRvY3VtZW50VHlwZXMkID0gdGhpcy5kb2N1bWVudFR5cGVzU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuXHQvL0FQSSBVUkxcblx0LyoqXG5cdCAqIFJldG9ybmEgdW5hIHVybCBwYXJhIGVudmlhciBsb3MgZGF0b3MgZGUgdW4gZm9ybXVsYXJpbyBkZSBjb250YWN0by5cblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwdWJsaWMgY29udGFjdEZvcm1SZXNwb25zZUFQSSgpIHsgcmV0dXJuIGAke3RoaXMuYXBpQ29uc3RzLkNNU19VUkx9JHt0aGlzLmFwaUNvbnN0cy5MT0NBTEV9L2NvbnRhY3QtZm9ybS9yZXNwb25zZWAgfVxuXHQvKipcblx0ICogUmV0b3JuYSB1bmEgdXJsIHBhcmEgZWwgZW5kcG9pbnQgcXVlIG9idGluZW4gbG9zIHBhaXNlcy5cblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRwdWJsaWMgY291bnRyaWVzQXBpKCkgeyByZXR1cm4gJ3Nob3AtYXBpLycgKyB0aGlzLmFwaUNvbnN0cy5DSEFOTkVMICsgJy9jb3VudHJpZXMnIH07XG5cblx0Y29uc3RydWN0b3IoKSB7IH1cblx0LyoqXG5cdCAqIEVudmlhIGVuIGZvcm11bGFyaW8uXG5cdCAqIEBwYXJhbSByZXNwb25zZV9vYmogXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0c2VuZFJlc3BvbnNlKHJlc3BvbnNlX29iajogYW55KSB7XG5cdFx0cmV0dXJuIHRoaXMuY29ubmVjdGlvbi5wb3N0KHRoaXMuY29udGFjdEZvcm1SZXNwb25zZUFQSSgpLCB0aGlzLnByZXBhcmVEYXRhKHJlc3BvbnNlX29iaikpXG5cdH1cblxuXHQvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gY29udGllbmUgdW4gYXJyZWdsbyBkZSBzdHJpbmcgY3V5byBjb250ZW5pZG8gc29uIGxvcyBjb2RpZ29zIGRlIGxvcyBwYWlzZXMgYSBleGNsdWlyLlxuICAgICAqIEBleGFtcGxlIFsnR0InXVxuICAgICAqL1xuICAgIHB1YmxpYyBleGNsdWRlZENvdW50cmllczogc3RyaW5nW10gPSBbXVxuIFx0cHVibGljIGFsbG93ZWRDb3VudHJpZXM6IHN0cmluZ1tdID0gW107XG5cdC8qKlxuXHQgKiBPYnRpZW5lIGxvcyBwYWlzZXMgeSBsb3MgZ3VhcmRhIGVuIHVuIG9ic2VydmFibGUuXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0Z2V0Q291bnRyaWVzRGF0YSgpOk9ic2VydmFibGU8YW55PiB7XG5cdFx0dGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmNvdW50cmllc0FwaSgpKS5waXBlKFxuXHRcdFx0c2hhcmVSZXBsYXkoMSksXG5cdFx0XHRtYXAoKHJlc3BvbnNlOmFueSkgPT4ge1xuXHRcdFx0XHQvL2NvbnNvbGUubG9nKHJlc3BvbnNlKTtcblx0XHRcdFx0Y29uc3QgZGF0YSA9IHJlc3BvbnNlLl9lbWJlZGRlZC5pdGVtcztcblx0XHRcdFx0dGhpcy5jb3VudHJpZXNTdWJqZWN0Lm5leHQoZGF0YSlcblx0XHRcdFx0Y29uc3QgZG9jdW1lbnRUeXBlc0xvY2FsZSA9IGRhdGEuZmluZCgocmVzOiBhbnkpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gcmVzLmNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLmFwaUNvbnN0cy5MT0NBTEUudG9Mb2NhbGVMb3dlckNhc2UoKS5zcGxpdCgnXycpWzFdXG5cdFx0XHRcdH0pXG5cdFx0XHRcdGNvbnN0IGRvY3VtZW50VHlwZXNEYXRhID0gZG9jdW1lbnRUeXBlc0xvY2FsZVsnZG9jdW1lbnRUeXBlcyddXG5cdFx0XHRcdHRoaXMuZG9jdW1lbnRUeXBlc1N1YmplY3QubmV4dChkb2N1bWVudFR5cGVzRGF0YSlcblx0XHRcdH0pKS5zdWJzY3JpYmUoKTtcblxuXHRcdFx0aWYodGhpcy5leGNsdWRlZENvdW50cmllcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdHRoaXMuY291bnRyaWVzJCA9IHRoaXMuY291bnRyaWVzJC5waXBlKFxuXHRcdFx0XHRcdG1hcChjb3VudHJpZXMgPT4gY291bnRyaWVzLmZpbHRlcihjb3VudHJ5ID0+ICF0aGlzLmV4Y2x1ZGVkQ291bnRyaWVzLmluY2x1ZGVzKGNvdW50cnkuY29kZSkpKVxuXHRcdFx0XHQpXG5cdFx0XHR9XG5cdFx0XHRpZih0aGlzLmFsbG93ZWRDb3VudHJpZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHR0aGlzLmNvdW50cmllcyQgPSB0aGlzLmNvdW50cmllcyQucGlwZShcblx0XHRcdFx0XHRtYXAoY291bnRyaWVzID0+IGNvdW50cmllcy5maWx0ZXIoY291bnRyeSA9PiB0aGlzLmFsbG93ZWRDb3VudHJpZXMuaW5jbHVkZXMoY291bnRyeS5jb2RlKSkpXG5cdFx0XHRcdClcblx0XHRcdH1cblx0XHRcblx0XHRyZXR1cm4gdGhpcy5jb3VudHJpZXMkO1xuXHR9XG5cdC8qKlxuXHQgKiBDYW1iaWEgbGEgbGlzdGEgZGUgcHJvdmluY2lhcyBzZWd1biBlbCBjb2RpZ28gZGVsIHBhw61zLlxuXHQgKiBAcGFyYW0gY29kZSBcblx0ICovXG5cdG9uQ291bnRyeVNlbGVjdGVkID0gKGNvZGU6c3RyaW5nKSA9PiB7XG5cdFx0Y29uc3QgcHJvdmluY2VzID0gdGhpcy5jb3VudHJpZXNTdWJqZWN0LnZhbHVlLmZpbmQocHJvdmluY2UgPT4gcHJvdmluY2UuY29kZSA9PSBjb2RlKS5wcm92aW5jZXM7XG5cdFx0dGhpcy5wcm92aW5jZXNTdWJqZWN0Lm5leHQocHJvdmluY2VzKTtcblx0fVxuXHQvKipcblx0ICogUGFyYSBlbCBmdXR1cm8sIGN1YW5kbyBoYXlhIHF1ZSBhcGxpY2FyIGFsZ3VuIGZvcm1hdG8gYW50ZXMgZGUgZW52aWFyIGVsIGZvcm11bGFyaW8uXG5cdCAqIEBwYXJhbSByZXNwb25zZV9vYmogXG5cdCAqIEByZXR1cm5zIFxuXHQgKi9cblx0cHJlcGFyZURhdGEocmVzcG9uc2Vfb2JqOiBhbnkpIHtcblx0XHRyZXR1cm4gcmVzcG9uc2Vfb2JqXG5cdH1cblxufVxuIl19
@@ -26,4 +26,5 @@ export * from './test.service';
26
26
  export * from './orders.service';
27
27
  export * from './runtime-config.service';
28
28
  export * from './base-api.service';
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFyYW1ldGVycy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9ibG9ja3Muc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmxvY2tzLXJlcG9zaXRvcnkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYW5hbHl0aWNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9jdXJyZW5jeS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jaGFubmVsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlLWNhcHRjaGEuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXJzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3QtZGV0YWlsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbmd4LWxvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tvdXQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWRkcmVzc2luZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnN0b3JhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2hpcG1lbnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXItdXRpbGl0eS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9wYXltZW50LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Rlc3Quc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXJzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUtY29uZmlnLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtYXBpLnNlcnZpY2UnOyJdfQ==
29
+ export * from './price-visibility.service';
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcGFyYW1ldGVycy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYmxvY2tzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9ibG9ja3MtcmVwb3NpdG9yeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYW5hbHl0aWNzJztcbmV4cG9ydCAqIGZyb20gJy4vY3VycmVuY3kuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NoYW5uZWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RvYXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZS1jYXB0Y2hhLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0cy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVycy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1kZXRhaWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhcnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL25neC1sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGVja291dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYWRkcmVzc2luZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGlwbWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXItdXRpbGl0eS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcGF5bWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGVzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXJzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9ydW50aW1lLWNvbmZpZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1hcGkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3ByaWNlLXZpc2liaWxpdHkuc2VydmljZSc7XG4iXX0=
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
55
55
  providedIn: 'root'
56
56
  }]
57
57
  }], ctorParameters: () => [] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRW5EOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOztPQUVHO0lBQ0ssY0FBYyxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFOUQsZ0JBQWdCLENBQUM7SUFDakI7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxHQUFXO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFVLEVBQUUsV0FBZSxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUM7UUFDeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxHQUFXLEVBQUUsV0FBZSxHQUFHO1FBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsR0FBRyxDQUFDLEtBQWE7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQzt3R0F4Q1UsbUJBQW1COzRHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RvcmFnZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG4vKipcclxuICogQWRhcHRlciB1c2FkbyBwYXJhIHN0b3JhZ2VhciBsb3MgZGF0b3MuXHJcbiAqIEBjbGFzcyBMb2NhbFN0b3JhZ2VTZXJ2aWNlXHJcbiAqIEBpbXBsZW1lbnRzIHtTdG9yYWdlfVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSBpbXBsZW1lbnRzIFN0b3JhZ2Uge1xyXG4gIC8qKlxyXG4gICAqIFNlcnZpY2lvIHVzYWRvIHBhcmEgZ3VhcmRhciBsb3MgZGF0b3MgZW4gbGFzIGNvb2tpZXNcclxuICAgKi9cclxuICBwcml2YXRlIF9jb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlID0gaW5qZWN0KENvb2tpZVNlcnZpY2UpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG4gIC8qKlxyXG4gICAqIE9idGllbmUgZWwgaXRlbSBkZWwgU3RvcmFnZVxyXG4gICAqIEBwYXJhbSBrZXkgQ2xhdmUgcGFyYSBhY2NlZGVyIGFsIHZhbG9yXHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgZ2V0SXRlbShrZXk6IHN0cmluZyk6c3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jb29raWVTZXJ2aWNlLmdldChrZXkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHdWFyZGEgdW4gZGF0byBlbiBlbCBzdG9yYWdlLlxyXG4gICAqIEBwYXJhbSBrZXkgQ2xhdmUgcXVlIHNlIGFzb2NpYSBhbCB2YWxvclxyXG4gICAqIEBwYXJhbSB2YWx1ZSBWYWxvciBhIGd1YXJkYXJcclxuICAgKiBAcGFyYW0gbWV0YWRhdGEgT3BjaW9uZXMgZXh0cmEgcXVlIHB1ZWRlIG5lY2VzaXRhciBlbCBzZXJ2aWNpby5cclxuICAgKi9cclxuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCBtZXRhZGF0YTphbnkgPSB7cGF0aDonLyd9KSB7XHJcbiAgICB0aGlzLl9jb29raWVTZXJ2aWNlLnNldChrZXksIHZhbHVlLCBtZXRhZGF0YSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbXVldmUgZWwgaXRlbSBkZWwgc3RvcmFnZS5cclxuICAgKiBAcGFyYW0ga2V5IENsYXZlIGRlbCBpdGVtIGRlbCBzdG9yYWdlIGEgZWxpbWluYXIuXHJcbiAgICogQHBhcmFtIG1ldGFkYXRhIE9wY2lvbmVzIGV4dHJhIHF1ZSBwdWVkZSBuZWNlc2l0YXIgZWwgc2VydmljaW8uXHJcbiAgICovXHJcbiAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZywgbWV0YWRhdGE6YW55ID0gJy8nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb29raWVTZXJ2aWNlLmRlbGV0ZShrZXksIG1ldGFkYXRhKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTGltcGlhIGVsIFN0b3JhZ2UuXHJcbiAgICovXHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb29raWVTZXJ2aWNlLmRlbGV0ZUFsbCgpO1xyXG4gIH1cclxuICBrZXkoaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRW5EOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOztPQUVHO0lBQ0ssY0FBYyxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFOUQsZ0JBQWdCLENBQUM7SUFDakI7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxHQUFXO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFVLEVBQUUsV0FBZSxFQUFDLElBQUksRUFBQyxHQUFHLEVBQUM7UUFDeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxHQUFXLEVBQUUsV0FBZSxHQUFHO1FBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsR0FBRyxDQUFDLEtBQWE7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQzt3R0F4Q1UsbUJBQW1COzRHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG4vKipcbiAqIEFkYXB0ZXIgdXNhZG8gcGFyYSBzdG9yYWdlYXIgbG9zIGRhdG9zLlxuICogQGNsYXNzIExvY2FsU3RvcmFnZVNlcnZpY2VcbiAqIEBpbXBsZW1lbnRzIHtTdG9yYWdlfVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIGltcGxlbWVudHMgU3RvcmFnZSB7XG4gIC8qKlxuICAgKiBTZXJ2aWNpbyB1c2FkbyBwYXJhIGd1YXJkYXIgbG9zIGRhdG9zIGVuIGxhcyBjb29raWVzXG4gICAqL1xuICBwcml2YXRlIF9jb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlID0gaW5qZWN0KENvb2tpZVNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIGl0ZW0gZGVsIFN0b3JhZ2VcbiAgICogQHBhcmFtIGtleSBDbGF2ZSBwYXJhIGFjY2VkZXIgYWwgdmFsb3JcbiAgICogQHJldHVybnMgXG4gICAqL1xuICBnZXRJdGVtKGtleTogc3RyaW5nKTpzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jb29raWVTZXJ2aWNlLmdldChrZXkpO1xuICB9XG4gIC8qKlxuICAgKiBHdWFyZGEgdW4gZGF0byBlbiBlbCBzdG9yYWdlLlxuICAgKiBAcGFyYW0ga2V5IENsYXZlIHF1ZSBzZSBhc29jaWEgYWwgdmFsb3JcbiAgICogQHBhcmFtIHZhbHVlIFZhbG9yIGEgZ3VhcmRhclxuICAgKiBAcGFyYW0gbWV0YWRhdGEgT3BjaW9uZXMgZXh0cmEgcXVlIHB1ZWRlIG5lY2VzaXRhciBlbCBzZXJ2aWNpby5cbiAgICovXG4gIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIG1ldGFkYXRhOmFueSA9IHtwYXRoOicvJ30pIHtcbiAgICB0aGlzLl9jb29raWVTZXJ2aWNlLnNldChrZXksIHZhbHVlLCBtZXRhZGF0YSk7XG4gIH1cbiAgLyoqXG4gICAqIFJlbXVldmUgZWwgaXRlbSBkZWwgc3RvcmFnZS5cbiAgICogQHBhcmFtIGtleSBDbGF2ZSBkZWwgaXRlbSBkZWwgc3RvcmFnZSBhIGVsaW1pbmFyLlxuICAgKiBAcGFyYW0gbWV0YWRhdGEgT3BjaW9uZXMgZXh0cmEgcXVlIHB1ZWRlIG5lY2VzaXRhciBlbCBzZXJ2aWNpby5cbiAgICovXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcsIG1ldGFkYXRhOmFueSA9ICcvJyk6IHZvaWQge1xuICAgIHRoaXMuX2Nvb2tpZVNlcnZpY2UuZGVsZXRlKGtleSwgbWV0YWRhdGEpO1xuICB9XG4gIC8qKlxuICAgKiBMaW1waWEgZWwgU3RvcmFnZS5cbiAgICovXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nvb2tpZVNlcnZpY2UuZGVsZXRlQWxsKCk7XG4gIH1cbiAga2V5KGluZGV4OiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxufVxuIl19
@@ -63,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
63
63
  providedIn: 'root'
64
64
  }]
65
65
  }], ctorParameters: () => [] });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxvY2FsLXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9uZ3gtbG9jYWwtc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFcEQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7SUFDbEM7O09BRUc7SUFDSyxRQUFRLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWxELGdCQUFpQixDQUFDO0lBRVYsY0FBYyxDQUFDLEdBQVE7UUFDOUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ2hDLElBQUksRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDbEMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQzNCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBVSxFQUFFLFdBQWdCLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTtRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLEdBQVcsRUFBRSxRQUFjO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxLQUFLO1FBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELEdBQUcsQ0FBQyxLQUFhO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO3dHQWxEVyxzQkFBc0I7NEdBQXRCLHNCQUFzQixjQUZ0QixNQUFNOzs0RkFFTixzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFN0b3JhZ2VNYXAgfSBmcm9tICdAbmd4LXB3YS9sb2NhbC1zdG9yYWdlJztcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbi8qKlxyXG4gKiBBZGFwdGVyIHVzYWRvIHBhcmEgc3RvcmFnZWFyIGxvcyBkYXRvcy5cclxuICogQGNsYXNzIE5neExvY2FsU3RvcmFnZVNlcnZpY2VcclxuICogQGltcGxlbWVudHMge1N0b3JhZ2V9XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hMb2NhbFN0b3JhZ2VTZXJ2aWNlIGltcGxlbWVudHMgU3RvcmFnZSB7XHJcblx0LyoqXHJcblx0ICogU2VydmljaW8gdXNhZG8gcGFyYSBndWFyZGFyIGxvcyBkYXRvcyBlbiBlbCBsb2NhbHN0b3JhZ2UuXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfc3RvcmFnZTogU3RvcmFnZU1hcCA9IGluamVjdChTdG9yYWdlTWFwKTtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7ICB9XHJcblxyXG5cdHByaXZhdGUgZ2V0SXRlbVByb21pc2Uoa2V5OiBhbnkpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHRoaXMuX3N0b3JhZ2UuZ2V0KGtleSkuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRuZXh0OiAoZGF0YTogYW55KSA9PiByZXNvbHZlKGRhdGEpLFxyXG5cdFx0XHRcdGVycm9yOiAoZXJyKSA9PiByZWplY3QoZXJyKSxcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIE9idGllbmUgZWwgaXRlbSBkZWwgU3RvcmFnZVxyXG5cdCAqIEBwYXJhbSBrZXkgQ2xhdmUgcGFyYSBhY2NlZGVyIGFsIHZhbG9yXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0Z2V0SXRlbShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fc3RvcmFnZS5nZXQoa2V5KTtcclxuXHR9XHJcblx0LyoqXHJcblx0ICogR3VhcmRhIHVuIGRhdG8gZW4gZWwgc3RvcmFnZS5cclxuXHQgKiBAcGFyYW0ga2V5IENsYXZlIHF1ZSBzZSBhc29jaWEgYWwgdmFsb3JcclxuXHQgKiBAcGFyYW0gdmFsdWUgVmFsb3IgYSBndWFyZGFyXHJcblx0ICogQHBhcmFtIG1ldGFkYXRhIE9wY2lvbmVzIGV4dHJhIHF1ZSBwdWVkZSBuZWNlc2l0YXIgZWwgc2VydmljaW8uXHJcblx0ICovXHJcblx0c2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgbWV0YWRhdGE6IGFueSA9IHsgcGF0aDogJy8nIH0pIHtcclxuXHRcdHRoaXMuX3N0b3JhZ2Uuc2V0KGtleSwgdmFsdWUpLnN1YnNjcmliZSgoKSA9PiB7IH0pO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBSZW11ZXZlIGVsIGl0ZW0gZGVsIHN0b3JhZ2UuXHJcblx0ICogQHBhcmFtIGtleSBDbGF2ZSBkZWwgaXRlbSBkZWwgc3RvcmFnZSBhIGVsaW1pbmFyLlxyXG5cdCAqIEBwYXJhbSBtZXRhZGF0YSBPcGNpb25lcyBleHRyYSBxdWUgcHVlZGUgbmVjZXNpdGFyIGVsIHNlcnZpY2lvLlxyXG5cdCAqL1xyXG5cdHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcsIG1ldGFkYXRhPzogYW55KTogdm9pZCB7XHJcblx0XHR0aGlzLl9zdG9yYWdlLmRlbGV0ZShrZXkpLnN1YnNjcmliZSgoKSA9PiB7IH0pO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBMaW1waWEgZWwgU3RvcmFnZS5cclxuXHQgKi9cclxuXHRjbGVhcigpOiB2b2lkIHtcclxuXHRcdHRoaXMuX3N0b3JhZ2UuY2xlYXIoKS5zdWJzY3JpYmUoKCkgPT4geyB9KTtcclxuXHR9XHJcblx0a2V5KGluZGV4OiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcclxuXHRcdHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcclxuXHR9XHJcblxyXG59XHJcbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxvY2FsLXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9uZ3gtbG9jYWwtc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFcEQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7SUFDbEM7O09BRUc7SUFDSyxRQUFRLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWxELGdCQUFpQixDQUFDO0lBRVYsY0FBYyxDQUFDLEdBQVE7UUFDOUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ2hDLElBQUksRUFBRSxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDbEMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQzNCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBVSxFQUFFLFdBQWdCLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTtRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLEdBQVcsRUFBRSxRQUFjO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxLQUFLO1FBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELEdBQUcsQ0FBQyxLQUFhO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO3dHQWxEVyxzQkFBc0I7NEdBQXRCLHNCQUFzQixjQUZ0QixNQUFNOzs0RkFFTixzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0b3JhZ2VNYXAgfSBmcm9tICdAbmd4LXB3YS9sb2NhbC1zdG9yYWdlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuLyoqXG4gKiBBZGFwdGVyIHVzYWRvIHBhcmEgc3RvcmFnZWFyIGxvcyBkYXRvcy5cbiAqIEBjbGFzcyBOZ3hMb2NhbFN0b3JhZ2VTZXJ2aWNlXG4gKiBAaW1wbGVtZW50cyB7U3RvcmFnZX1cbiAqL1xuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmd4TG9jYWxTdG9yYWdlU2VydmljZSBpbXBsZW1lbnRzIFN0b3JhZ2Uge1xuXHQvKipcblx0ICogU2VydmljaW8gdXNhZG8gcGFyYSBndWFyZGFyIGxvcyBkYXRvcyBlbiBlbCBsb2NhbHN0b3JhZ2UuXG5cdCAqL1xuXHRwcml2YXRlIF9zdG9yYWdlOiBTdG9yYWdlTWFwID0gaW5qZWN0KFN0b3JhZ2VNYXApO1xuXG5cdGNvbnN0cnVjdG9yKCkgeyAgfVxuXG5cdHByaXZhdGUgZ2V0SXRlbVByb21pc2Uoa2V5OiBhbnkpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0dGhpcy5fc3RvcmFnZS5nZXQoa2V5KS5zdWJzY3JpYmUoe1xuXHRcdFx0XHRuZXh0OiAoZGF0YTogYW55KSA9PiByZXNvbHZlKGRhdGEpLFxuXHRcdFx0XHRlcnJvcjogKGVycikgPT4gcmVqZWN0KGVyciksXG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBPYnRpZW5lIGVsIGl0ZW0gZGVsIFN0b3JhZ2Vcblx0ICogQHBhcmFtIGtleSBDbGF2ZSBwYXJhIGFjY2VkZXIgYWwgdmFsb3Jcblx0ICogQHJldHVybnMgXG5cdCAqL1xuXHRnZXRJdGVtKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5fc3RvcmFnZS5nZXQoa2V5KTtcblx0fVxuXHQvKipcblx0ICogR3VhcmRhIHVuIGRhdG8gZW4gZWwgc3RvcmFnZS5cblx0ICogQHBhcmFtIGtleSBDbGF2ZSBxdWUgc2UgYXNvY2lhIGFsIHZhbG9yXG5cdCAqIEBwYXJhbSB2YWx1ZSBWYWxvciBhIGd1YXJkYXJcblx0ICogQHBhcmFtIG1ldGFkYXRhIE9wY2lvbmVzIGV4dHJhIHF1ZSBwdWVkZSBuZWNlc2l0YXIgZWwgc2VydmljaW8uXG5cdCAqL1xuXHRzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCBtZXRhZGF0YTogYW55ID0geyBwYXRoOiAnLycgfSkge1xuXHRcdHRoaXMuX3N0b3JhZ2Uuc2V0KGtleSwgdmFsdWUpLnN1YnNjcmliZSgoKSA9PiB7IH0pO1xuXHR9XG5cdC8qKlxuXHQgKiBSZW11ZXZlIGVsIGl0ZW0gZGVsIHN0b3JhZ2UuXG5cdCAqIEBwYXJhbSBrZXkgQ2xhdmUgZGVsIGl0ZW0gZGVsIHN0b3JhZ2UgYSBlbGltaW5hci5cblx0ICogQHBhcmFtIG1ldGFkYXRhIE9wY2lvbmVzIGV4dHJhIHF1ZSBwdWVkZSBuZWNlc2l0YXIgZWwgc2VydmljaW8uXG5cdCAqL1xuXHRyZW1vdmVJdGVtKGtleTogc3RyaW5nLCBtZXRhZGF0YT86IGFueSk6IHZvaWQge1xuXHRcdHRoaXMuX3N0b3JhZ2UuZGVsZXRlKGtleSkuc3Vic2NyaWJlKCgpID0+IHsgfSk7XG5cdH1cblx0LyoqXG5cdCAqIExpbXBpYSBlbCBTdG9yYWdlLlxuXHQgKi9cblx0Y2xlYXIoKTogdm9pZCB7XG5cdFx0dGhpcy5fc3RvcmFnZS5jbGVhcigpLnN1YnNjcmliZSgoKSA9PiB7IH0pO1xuXHR9XG5cdGtleShpbmRleDogbnVtYmVyKTogc3RyaW5nIHwgbnVsbCB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuXHR9XG5cbn1cbiJdfQ==