@envive-ai/react-hooks 0.2.6-alpha-7 → 0.2.6-alpha-9

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 (412) hide show
  1. package/dist/{AmplitudeOperations-DjqOM3uE.js → AmplitudeOperations-D2r56Ptr.js} +2 -2
  2. package/dist/{AmplitudeOperations-DbUiR0N_.cjs → AmplitudeOperations-SkndCrhj.cjs} +2 -2
  3. package/dist/{NewOrgConfig-C_1T1iOt.js → NewOrgConfig-C9aQqGsb.js} +2 -2
  4. package/dist/{NewOrgConfig-D2Kvqa1z.cjs → NewOrgConfig-CHkHRqHx.cjs} +2 -2
  5. package/dist/{TrackComponentVisibleEvent-BxOhr9Da.js → TrackComponentVisibleEvent-BIGvzk4f.js} +2 -2
  6. package/dist/{TrackComponentVisibleEvent-CDbecFPM.cjs → TrackComponentVisibleEvent-DjZUt7LR.cjs} +2 -2
  7. package/dist/amplitudeContext-B3DsV6IO.cjs +248 -0
  8. package/dist/amplitudeContext-S3JYCxr4.js +232 -0
  9. package/dist/{app-Bs2KxG_8.js → app-BT3g-mDp.js} +5 -5
  10. package/dist/{app-DSnDDqcW.cjs → app-DxwdFQlv.cjs} +5 -5
  11. package/dist/application/utils/index.cjs +4 -4
  12. package/dist/application/utils/index.d.cts +2 -2
  13. package/dist/application/utils/index.js +4 -4
  14. package/dist/{atomStore-CfzCqWB9.js → atomStore-BuopbV9k.js} +1 -1
  15. package/dist/{atomStore-BQVO5haU.cjs → atomStore-CZKe3itM.cjs} +1 -1
  16. package/dist/atoms/app/index.cjs +9 -9
  17. package/dist/atoms/app/index.d.cts +7 -7
  18. package/dist/atoms/app/index.d.ts +7 -7
  19. package/dist/atoms/app/index.js +9 -9
  20. package/dist/atoms/atomStore/index.cjs +1 -1
  21. package/dist/atoms/atomStore/index.d.ts +1 -1
  22. package/dist/atoms/atomStore/index.js +1 -1
  23. package/dist/atoms/chat/index.cjs +10 -10
  24. package/dist/atoms/chat/index.d.cts +32 -32
  25. package/dist/atoms/chat/index.d.ts +32 -32
  26. package/dist/atoms/chat/index.js +10 -10
  27. package/dist/atoms/globalSearch/index.d.cts +6 -6
  28. package/dist/atoms/globalSearch/index.d.ts +6 -6
  29. package/dist/atoms/org/index.cjs +2 -2
  30. package/dist/atoms/org/index.d.cts +15 -15
  31. package/dist/atoms/org/index.d.ts +16 -16
  32. package/dist/atoms/org/index.js +2 -2
  33. package/dist/atoms/search/index.cjs +3 -3
  34. package/dist/atoms/search/index.d.cts +15 -15
  35. package/dist/atoms/search/index.d.ts +14 -14
  36. package/dist/atoms/search/index.js +3 -3
  37. package/dist/atoms/search/utils.d.cts +1 -1
  38. package/dist/cdnContext-i5iYA8ig.cjs +53 -0
  39. package/dist/cdnContext-td-gAam0.js +38 -0
  40. package/dist/{chat-EJbfGWRr.js → chat-ClvJ9xEj.js} +1 -1
  41. package/dist/{chat-CJ9D8n7g.cjs → chat-DCGriB7h.cjs} +1 -1
  42. package/dist/{chat-C5afTKUY.js → chat-ZaY3KY-R.js} +3 -3
  43. package/dist/{chat-CCjM6fS_.cjs → chat-rhEjVfrd.cjs} +3 -3
  44. package/dist/{common-CuwWqIJ1.cjs → common-DQPvV_S_.cjs} +1 -1
  45. package/dist/{common-Df2bwzd2.js → common-c_4eX0qn.js} +1 -1
  46. package/dist/{components-QGCWJ26c.js → components-CDpaMUjK.js} +1 -1
  47. package/dist/{components-BCfFLf9X.cjs → components-DKwVHIjq.cjs} +1 -1
  48. package/dist/config/index.cjs +4 -4
  49. package/dist/config/index.js +4 -4
  50. package/dist/config/locators/components/chat/index.cjs +1 -1
  51. package/dist/config/locators/components/chat/index.js +1 -1
  52. package/dist/config/locators/components/common/index.cjs +1 -1
  53. package/dist/config/locators/components/common/index.js +1 -1
  54. package/dist/config/locators/components/index.cjs +1 -1
  55. package/dist/config/locators/components/index.js +1 -1
  56. package/dist/config/locators/index.cjs +4 -4
  57. package/dist/config/locators/index.js +4 -4
  58. package/dist/contexts/amplitudeContext/index.cjs +12 -12
  59. package/dist/contexts/amplitudeContext/index.d.cts +1 -1
  60. package/dist/contexts/amplitudeContext/index.js +12 -12
  61. package/dist/contexts/cdnContext/index.cjs +2 -2
  62. package/dist/contexts/cdnContext/index.d.cts +1 -1
  63. package/dist/contexts/cdnContext/index.d.ts +1 -1
  64. package/dist/contexts/cdnContext/index.js +2 -2
  65. package/dist/contexts/enviveConfigContext/index.cjs +2 -2
  66. package/dist/contexts/enviveConfigContext/index.d.cts +1 -1
  67. package/dist/contexts/enviveConfigContext/index.js +2 -2
  68. package/dist/contexts/enviveCssContext/index.cjs +6 -6
  69. package/dist/contexts/enviveCssContext/index.js +6 -6
  70. package/dist/contexts/featureFlagContext/index.cjs +2 -2
  71. package/dist/contexts/featureFlagContext/index.js +2 -2
  72. package/dist/contexts/graphqlContext/index.cjs +2 -2
  73. package/dist/contexts/graphqlContext/index.js +2 -2
  74. package/dist/contexts/localStorageContext/index.d.cts +1 -1
  75. package/dist/contexts/newOrgConfigContext/index.cjs +5 -5
  76. package/dist/contexts/newOrgConfigContext/index.js +5 -5
  77. package/dist/contexts/searchContext/index.cjs +14 -14
  78. package/dist/contexts/searchContext/index.js +14 -14
  79. package/dist/contexts/shopifyUrlContext/index.cjs +2 -2
  80. package/dist/contexts/shopifyUrlContext/index.d.cts +1 -1
  81. package/dist/contexts/shopifyUrlContext/index.js +2 -2
  82. package/dist/contexts/systemSettingsContext/index.cjs +2 -2
  83. package/dist/contexts/systemSettingsContext/index.d.cts +1 -1
  84. package/dist/contexts/systemSettingsContext/index.d.ts +2 -2
  85. package/dist/contexts/systemSettingsContext/index.js +2 -2
  86. package/dist/contexts/userIdentityContext/index.cjs +9 -9
  87. package/dist/contexts/userIdentityContext/index.js +9 -9
  88. package/dist/{domObserver-DNeeSh1F.js → domObserver-CVhsCSkS.js} +1 -1
  89. package/dist/{domObserver-C2oQO8vi.cjs → domObserver-LCBj1xw4.cjs} +1 -1
  90. package/dist/{enviveConfig-Dp80h9yu.cjs → enviveConfig-CQ_8mT-g.cjs} +1 -1
  91. package/dist/{enviveConfig-Ciq4ASoV.js → enviveConfig-Cwlp7-Qz.js} +1 -1
  92. package/dist/{enviveConfigContext-CCjJUmwp.js → enviveConfigContext-BZbGEgOW.js} +2 -2
  93. package/dist/{enviveConfigContext-DoYP8KSw.cjs → enviveConfigContext-BinpxTCy.cjs} +2 -2
  94. package/dist/events/index.cjs +1 -1
  95. package/dist/events/index.js +1 -1
  96. package/dist/{events-DBin1Z7o.cjs → events-CgFGtanE.cjs} +1 -1
  97. package/dist/{events-CXiS1aTc.js → events-WOOrnUAx.js} +1 -1
  98. package/dist/exceptions/index.d.ts +1 -1
  99. package/dist/{graphqlContext-ChXlE8Ul.cjs → graphqlContext-B8wuRZcp.cjs} +2 -2
  100. package/dist/{graphqlContext-0cg9fEUw.js → graphqlContext-CpHMbKoX.js} +2 -2
  101. package/dist/hooks/AmplitudeOperations/index.cjs +13 -13
  102. package/dist/hooks/AmplitudeOperations/index.d.cts +1 -1
  103. package/dist/hooks/AmplitudeOperations/index.js +13 -13
  104. package/dist/hooks/AppDetails/index.cjs +12 -12
  105. package/dist/hooks/AppDetails/index.d.cts +1 -1
  106. package/dist/hooks/AppDetails/index.js +12 -12
  107. package/dist/hooks/BlockBackButton/index.d.cts +1 -1
  108. package/dist/hooks/CdnOperations/index.cjs +2 -2
  109. package/dist/hooks/CdnOperations/index.d.ts +1 -1
  110. package/dist/hooks/CdnOperations/index.js +2 -2
  111. package/dist/hooks/ChatToggle/index.cjs +13 -13
  112. package/dist/hooks/ChatToggle/index.d.cts +1 -1
  113. package/dist/hooks/ChatToggle/index.js +13 -13
  114. package/dist/hooks/ChatToggleAnalytics/index.cjs +13 -13
  115. package/dist/hooks/ChatToggleAnalytics/index.d.cts +1 -1
  116. package/dist/hooks/ChatToggleAnalytics/index.js +13 -13
  117. package/dist/hooks/Debounce/index.d.cts +1 -1
  118. package/dist/hooks/ElementObserver/index.cjs +1 -1
  119. package/dist/hooks/ElementObserver/index.js +1 -1
  120. package/dist/hooks/GrabAndScroll/index.d.cts +2 -2
  121. package/dist/hooks/GraphQLConfig/index.cjs +3 -3
  122. package/dist/hooks/GraphQLConfig/index.d.cts +1 -1
  123. package/dist/hooks/GraphQLConfig/index.js +3 -3
  124. package/dist/hooks/IdentifyUser/index.cjs +9 -9
  125. package/dist/hooks/IdentifyUser/index.d.cts +1 -1
  126. package/dist/hooks/IdentifyUser/index.js +9 -9
  127. package/dist/hooks/ImageResolver/index.cjs +1 -1
  128. package/dist/hooks/ImageResolver/index.d.cts +1 -1
  129. package/dist/hooks/ImageResolver/index.js +1 -1
  130. package/dist/hooks/LocalStorageOperations/index.d.cts +1 -1
  131. package/dist/hooks/MessageFilter/index.d.cts +1 -1
  132. package/dist/hooks/MessageScrollObserver/index.d.cts +1 -1
  133. package/dist/hooks/NewOrgConfig/index.cjs +6 -6
  134. package/dist/hooks/NewOrgConfig/index.d.cts +2 -2
  135. package/dist/hooks/NewOrgConfig/index.d.ts +2 -2
  136. package/dist/hooks/NewOrgConfig/index.js +6 -6
  137. package/dist/hooks/Search/index.cjs +15 -15
  138. package/dist/hooks/Search/index.js +15 -15
  139. package/dist/hooks/SearchOperations/index.cjs +14 -14
  140. package/dist/hooks/SearchOperations/index.js +14 -14
  141. package/dist/hooks/ShopifyUrlOperations/index.cjs +2 -2
  142. package/dist/hooks/ShopifyUrlOperations/index.js +2 -2
  143. package/dist/hooks/SystemSettingsContext/index.cjs +2 -2
  144. package/dist/hooks/SystemSettingsContext/index.d.cts +3 -3
  145. package/dist/hooks/SystemSettingsContext/index.d.ts +4 -4
  146. package/dist/hooks/SystemSettingsContext/index.js +2 -2
  147. package/dist/hooks/TrackComponentVisibleEvent/index.cjs +13 -13
  148. package/dist/hooks/TrackComponentVisibleEvent/index.js +13 -13
  149. package/dist/hooks/UpdateAnalyticsProps/index.cjs +12 -12
  150. package/dist/hooks/UpdateAnalyticsProps/index.js +12 -12
  151. package/dist/hooks/utils.cjs +1 -1
  152. package/dist/hooks/utils.d.cts +1 -1
  153. package/dist/hooks/utils.js +1 -1
  154. package/dist/index-CMZcE7pk.d.cts +1 -1
  155. package/dist/index-ChiZg0yw.d.cts +1 -1
  156. package/dist/index-CsmO1rDH.d.ts +1 -1
  157. package/dist/index-DtzPIcQp.d.ts +1 -1
  158. package/dist/index-bEjLKG_Q.d.ts +1 -1
  159. package/dist/index-mv7KvWDq.d.ts +1 -1
  160. package/dist/{locators-C2fWd-74.js → locators-BMQGmGLq.js} +1 -1
  161. package/dist/{locators-Cx3q6Z_h.cjs → locators-DxYdak1F.cjs} +1 -1
  162. package/dist/{newOrgConfigAtom-BuQE_zPK.js → newOrgConfigAtom-C8h3w_Ji.js} +1 -1
  163. package/dist/{newOrgConfigAtom-rrYHmp1b.cjs → newOrgConfigAtom-CDttTiuu.cjs} +1 -1
  164. package/dist/{newOrgConfigContext-d3RHl430.cjs → newOrgConfigContext-Brsggue9.cjs} +4 -4
  165. package/dist/{newOrgConfigContext-D-gU5ppl.js → newOrgConfigContext-Dt_W-wlK.js} +4 -4
  166. package/dist/{org-CIFgIcO4.cjs → org-BNs_maoW.cjs} +1 -1
  167. package/dist/{org-15F128Ah.js → org-CScQqL4k.js} +1 -1
  168. package/dist/{search-Ch6LKNh4.cjs → search-CWkDtqQV.cjs} +2 -2
  169. package/dist/{search--80x6CfL.js → search-OWKKaQQj.js} +2 -2
  170. package/dist/{searchContext-BkPoTq1o.js → searchContext-B-rEZixl.js} +4 -4
  171. package/dist/{searchContext-B0qEUoKb.cjs → searchContext-JCUBg-lA.cjs} +4 -4
  172. package/dist/{shopifyUrlContext-Bw1kAZ2P.cjs → shopifyUrlContext-COc1eDR_.cjs} +2 -2
  173. package/dist/{shopifyUrlContext-DnJiUmMA.js → shopifyUrlContext-CToAt_98.js} +2 -2
  174. package/dist/{systemSettingsContext-DPdDfVhj.js → systemSettingsContext-D9iNGz5v.js} +2 -2
  175. package/dist/{systemSettingsContext-068vQuP2.cjs → systemSettingsContext-DdV7Yte8.cjs} +2 -2
  176. package/dist/types/index.cjs +1 -1
  177. package/dist/types/index.js +1 -1
  178. package/dist/{types-B8HZYWV3.cjs → types-1iJ_FnQQ.cjs} +1 -1
  179. package/dist/{types-y3mhxOUA.js → types-D5du68Vp.js} +1 -1
  180. package/dist/{urlsParser-bb8ciRFg.cjs → urlsParser-Dax4iVNC.cjs} +1 -1
  181. package/dist/{urlsParser-v_1DKvyf.js → urlsParser-NAp2LwWP.js} +1 -1
  182. package/dist/{useAppDetails-eP2hBuid.cjs → useAppDetails-D3T6kJY_.cjs} +4 -4
  183. package/dist/{useAppDetails-BPXln8UE.js → useAppDetails-xPVs6fW7.js} +4 -4
  184. package/dist/{useGraphQLConfig-v9veUbvJ.cjs → useGraphQLConfig-B1DaVvFx.cjs} +2 -2
  185. package/dist/{useGraphQLConfig-Btszi6cG.js → useGraphQLConfig-BtPxjtxw.js} +2 -2
  186. package/dist/{utils-D_nGHczN.js → utils-BZT_oZ3n.js} +1 -1
  187. package/dist/{utils-SjlIHajO.cjs → utils-D3MjNkd3.cjs} +2 -2
  188. package/dist/{utils-CWzuvlOR.js → utils-DMwh3QbT.js} +2 -2
  189. package/dist/{utils-CJk5iwQI.cjs → utils-qtHPLFby.cjs} +1 -1
  190. package/package.json +1 -1
  191. package/src/contexts/amplitudeContext/amplitudeContext.tsx +11 -3
  192. package/src/contexts/cdnContext/cdnContext.tsx +11 -9
  193. package/dist/amplitudeContext-BWmXliMI.cjs +0 -243
  194. package/dist/amplitudeContext-BjMlg5RV.js +0 -227
  195. package/dist/cdnContext-CJ2BNLAD.js +0 -38
  196. package/dist/cdnContext-lkC-AE6A.cjs +0 -53
  197. package/dist/src/application/commerce-api.js +0 -408
  198. package/dist/src/application/logging/logger.js +0 -16
  199. package/dist/src/application/models/graphql/index.js +0 -3
  200. package/dist/src/application/models/graphql/queries/getMerchantColorsQuery.js +0 -13
  201. package/dist/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.js +0 -13
  202. package/dist/src/application/models/graphql/queries/getMerchantOrgIdQuery.js +0 -10
  203. package/dist/src/application/models/guards/api/index.js +0 -12
  204. package/dist/src/application/models/guards/api/isApiFormResponse.js +0 -59
  205. package/dist/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +0 -22
  206. package/dist/src/application/models/guards/api/isApiOrderResponseAttributes.js +0 -91
  207. package/dist/src/application/models/guards/api/isApiOrgConfigResults.js +0 -188
  208. package/dist/src/application/models/guards/api/isApiOrganizationConfig.js +0 -115
  209. package/dist/src/application/models/guards/api/isApiPDPEventAttributes.js +0 -16
  210. package/dist/src/application/models/guards/api/isApiPLPEventAttributes.js +0 -26
  211. package/dist/src/application/models/guards/api/isApiPageResponseAttributes.js +0 -15
  212. package/dist/src/application/models/guards/api/isApiProductResponseAttributes.js +0 -65
  213. package/dist/src/application/models/guards/api/isApiProductSearchAttributes.js +0 -15
  214. package/dist/src/application/models/guards/api/isApiProductSearchFilterAttributes.js +0 -10
  215. package/dist/src/application/models/guards/api/isApiQueryTypedEventAttributes.js +0 -4
  216. package/dist/src/application/models/guards/api/isApiResponse.js +0 -33
  217. package/dist/src/application/models/guards/api/isApiReviewResponseAttributes.js +0 -22
  218. package/dist/src/application/models/guards/api/isApiReviewRichInformation.js +0 -23
  219. package/dist/src/application/models/guards/api/isApiSearchEventAttributes.js +0 -20
  220. package/dist/src/application/models/guards/api/isApiSuggestion.js +0 -24
  221. package/dist/src/application/models/guards/api/isApiSuggestionClickedEventAttributes.js +0 -4
  222. package/dist/src/application/models/guards/api/isApiTextResponseAttributes.js +0 -4
  223. package/dist/src/application/models/guards/api/isApiUserEvent.js +0 -18
  224. package/dist/src/application/models/guards/graphQL/isGraphQLColorsConfig.js +0 -41
  225. package/dist/src/application/models/guards/isBaseEcommerceEvent.js +0 -14
  226. package/dist/src/application/models/guards/isGA4EcommerceEvent.js +0 -14
  227. package/dist/src/application/models/guards/isLegacyUAEcommerceEvent.js +0 -14
  228. package/dist/src/application/models/guards/isMobilePLPChatPlacementParameter.js +0 -4
  229. package/dist/src/application/models/guards/isSpanxTakeAQuizCtaParameter.js +0 -1
  230. package/dist/src/application/models/guards/isVariantInfo.js +0 -28
  231. package/dist/src/application/models/guards/utils.js +0 -34
  232. package/dist/src/application/models/index.js +0 -34
  233. package/dist/src/application/models/utils/snakeToCamelTransformer.js +0 -71
  234. package/dist/src/application/models/utils/stringToFulfillmentDisplayStatusEnumValue.js +0 -65
  235. package/dist/src/application/models/validators/validateGraphQLColorsConfig.js +0 -9
  236. package/dist/src/application/models/validators/validateGraphQLFrontendConfig.js +0 -420
  237. package/dist/src/application/models/validators/validateGraphQLOrgId.js +0 -6
  238. package/dist/src/application/models/validators/validateMobilePLPChatPlacementParameter.js +0 -9
  239. package/dist/src/application/models/validators/validateOrgConfigResults.js +0 -44
  240. package/dist/src/application/models/validators/validateOrganizationConfig.js +0 -34
  241. package/dist/src/application/models/validators/validateResponse.js +0 -173
  242. package/dist/src/application/models/validators/validateSuggestion.js +0 -13
  243. package/dist/src/application/models/validators/validateUserEvent.js +0 -91
  244. package/dist/src/application/utils/analyticsUtils.js +0 -95
  245. package/dist/src/application/utils/coreContextToApiContext.js +0 -8
  246. package/dist/src/application/utils/coreUserEventToApiUserEvent.js +0 -90
  247. package/dist/src/application/utils/divideArray.js +0 -7
  248. package/dist/src/application/utils/domObserver.js +0 -85
  249. package/dist/src/application/utils/elementObserver.js +0 -186
  250. package/dist/src/application/utils/imageFilter.js +0 -11
  251. package/dist/src/application/utils/index.js +0 -21
  252. package/dist/src/application/utils/merchantUtils.js +0 -15
  253. package/dist/src/application/utils/messageFromFormSubmittedEvent.js +0 -19
  254. package/dist/src/application/utils/messageFromQueryEvent.js +0 -35
  255. package/dist/src/application/utils/messageFromResponse.js +0 -123
  256. package/dist/src/application/utils/messageFromSuggestionEvent.js +0 -27
  257. package/dist/src/application/utils/mouseEventTypes.js +0 -1
  258. package/dist/src/application/utils/mutationHelper.js +0 -33
  259. package/dist/src/application/utils/nextMessageRequestToApiRequest.js +0 -29
  260. package/dist/src/application/utils/nodeSelector.js +0 -101
  261. package/dist/src/application/utils/overrides.js +0 -144
  262. package/dist/src/application/utils/stringUtils.js +0 -47
  263. package/dist/src/application/utils/supportedEventRequestToApiRequest.js +0 -7
  264. package/dist/src/application/utils/urlsParser.js +0 -33
  265. package/dist/src/application/utils/validation.js +0 -5
  266. package/dist/src/atoms/amplitude/amplitudeTrackEventAtom.js +0 -4
  267. package/dist/src/atoms/app/index.js +0 -23
  268. package/dist/src/atoms/app/variant.js +0 -102
  269. package/dist/src/atoms/atomStore/atomStore.js +0 -28
  270. package/dist/src/atoms/atomStore/index.js +0 -1
  271. package/dist/src/atoms/chat/chatState.js +0 -32
  272. package/dist/src/atoms/chat/form.js +0 -16
  273. package/dist/src/atoms/chat/index.js +0 -23
  274. package/dist/src/atoms/chat/lastMessage.js +0 -10
  275. package/dist/src/atoms/chat/messageQueue.js +0 -68
  276. package/dist/src/atoms/chat/performanceMetrics.js +0 -70
  277. package/dist/src/atoms/chat/renderedWidgetRefs.js +0 -24
  278. package/dist/src/atoms/chat/replies.js +0 -42
  279. package/dist/src/atoms/chat/suggestions.js +0 -29
  280. package/dist/src/atoms/envive/enviveConfig.js +0 -67
  281. package/dist/src/atoms/globalSearch/globalSearch.js +0 -8
  282. package/dist/src/atoms/globalSearch/index.js +0 -1
  283. package/dist/src/atoms/org/customerService.js +0 -6
  284. package/dist/src/atoms/org/graphqlConfig.js +0 -8
  285. package/dist/src/atoms/org/index.js +0 -4
  286. package/dist/src/atoms/org/newOrgConfigAtom.js +0 -2
  287. package/dist/src/atoms/org/orgAnalyticsConfig.js +0 -8
  288. package/dist/src/atoms/search/index.js +0 -1
  289. package/dist/src/atoms/search/productFilters.js +0 -163
  290. package/dist/src/atoms/search/productRetrievalAPI.js +0 -50
  291. package/dist/src/atoms/search/productRetrievalAdapter.js +0 -14
  292. package/dist/src/atoms/search/productSorter.js +0 -13
  293. package/dist/src/atoms/search/searchAPI.js +0 -140
  294. package/dist/src/atoms/search/searchServiceAdapter.js +0 -14
  295. package/dist/src/atoms/search/utils.js +0 -15
  296. package/dist/src/config/index.js +0 -1
  297. package/dist/src/config/locators/components/chat/entrypoints.js +0 -10
  298. package/dist/src/config/locators/components/chat/index.js +0 -21
  299. package/dist/src/config/locators/components/chat/preview.js +0 -11
  300. package/dist/src/config/locators/components/chat/variants/index.js +0 -12
  301. package/dist/src/config/locators/components/common/buttons.js +0 -6
  302. package/dist/src/config/locators/components/common/cards.js +0 -17
  303. package/dist/src/config/locators/components/common/index.js +0 -4
  304. package/dist/src/config/locators/components/common/links.js +0 -1
  305. package/dist/src/config/locators/components/common/tables.js +0 -1
  306. package/dist/src/config/locators/components/floating-button.js +0 -2
  307. package/dist/src/config/locators/components/index.js +0 -3
  308. package/dist/src/config/locators/components/report-issue.js +0 -13
  309. package/dist/src/config/locators/components/search/index.js +0 -5
  310. package/dist/src/config/locators/components/shadow-dom.js +0 -1
  311. package/dist/src/config/locators/embedded.js +0 -20
  312. package/dist/src/config/locators/index.js +0 -4
  313. package/dist/src/contexts/amplitudeContext/amplitudeContext.js +0 -271
  314. package/dist/src/contexts/amplitudeContext/index.js +0 -1
  315. package/dist/src/contexts/cdnContext/cdnContext.js +0 -28
  316. package/dist/src/contexts/cdnContext/index.js +0 -1
  317. package/dist/src/contexts/enviveConfigContext/enviveConfigContext.js +0 -37
  318. package/dist/src/contexts/enviveConfigContext/index.js +0 -1
  319. package/dist/src/contexts/enviveCssContext/enviveCssContext.js +0 -31
  320. package/dist/src/contexts/enviveCssContext/index.js +0 -1
  321. package/dist/src/contexts/featureFlagContext/featureFlagContext.js +0 -109
  322. package/dist/src/contexts/featureFlagContext/index.js +0 -1
  323. package/dist/src/contexts/featureFlagServiceContext/featureFlagServiceContext.js +0 -47
  324. package/dist/src/contexts/featureFlagServiceContext/index.js +0 -1
  325. package/dist/src/contexts/graphqlContext/graphqlContext.js +0 -87
  326. package/dist/src/contexts/graphqlContext/index.js +0 -1
  327. package/dist/src/contexts/localStorageContext/index.js +0 -1
  328. package/dist/src/contexts/localStorageContext/localStorageContext.js +0 -95
  329. package/dist/src/contexts/newOrgConfigContext/index.js +0 -1
  330. package/dist/src/contexts/newOrgConfigContext/newOrgConfigContext.js +0 -33
  331. package/dist/src/contexts/searchContext/index.js +0 -1
  332. package/dist/src/contexts/searchContext/searchContext.js +0 -131
  333. package/dist/src/contexts/sessionStorageContext/index.js +0 -1
  334. package/dist/src/contexts/sessionStorageContext/sessionStorageContext.js +0 -43
  335. package/dist/src/contexts/shopifyUrlContext/index.js +0 -1
  336. package/dist/src/contexts/shopifyUrlContext/shopifyUrlContext.js +0 -62
  337. package/dist/src/contexts/systemSettingsContext/index.js +0 -1
  338. package/dist/src/contexts/systemSettingsContext/systemSettingsContext.js +0 -29
  339. package/dist/src/contexts/userIdentityContext/index.js +0 -1
  340. package/dist/src/contexts/userIdentityContext/userIdentityContext.js +0 -118
  341. package/dist/src/events/index.js +0 -51
  342. package/dist/src/events/registerAnalyticsListeners.js +0 -32
  343. package/dist/src/exceptions/index.js +0 -2
  344. package/dist/src/exceptions/sessionExceptions.js +0 -6
  345. package/dist/src/exceptions/unsupportedProductExceptions.js +0 -6
  346. package/dist/src/hooks/AmplitudeOperations/index.js +0 -1
  347. package/dist/src/hooks/AmplitudeOperations/useAmplitudeOperations.js +0 -24
  348. package/dist/src/hooks/AppDetails/index.js +0 -1
  349. package/dist/src/hooks/AppDetails/useAppDetails.js +0 -26
  350. package/dist/src/hooks/BlockBackButton/index.js +0 -1
  351. package/dist/src/hooks/BlockBackButton/useBlockBackButton.js +0 -23
  352. package/dist/src/hooks/CdnOperations/index.js +0 -1
  353. package/dist/src/hooks/CdnOperations/useCdnOperations.js +0 -13
  354. package/dist/src/hooks/ChatToggle/index.js +0 -1
  355. package/dist/src/hooks/ChatToggle/useChatToggle.js +0 -50
  356. package/dist/src/hooks/ChatToggleAnalytics/index.js +0 -1
  357. package/dist/src/hooks/ChatToggleAnalytics/useChatToggleAnalytics.js +0 -11
  358. package/dist/src/hooks/CustomerSupportHandoff/index.js +0 -1
  359. package/dist/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.js +0 -32
  360. package/dist/src/hooks/Debounce/index.js +0 -1
  361. package/dist/src/hooks/Debounce/useDebounce.js +0 -13
  362. package/dist/src/hooks/ElementObserver/index.js +0 -1
  363. package/dist/src/hooks/ElementObserver/useElementObserver.js +0 -208
  364. package/dist/src/hooks/GrabAndScroll/index.js +0 -1
  365. package/dist/src/hooks/GrabAndScroll/useGrabAndScroll.js +0 -105
  366. package/dist/src/hooks/GraphQLConfig/index.js +0 -1
  367. package/dist/src/hooks/GraphQLConfig/useGraphQLConfig.js +0 -54
  368. package/dist/src/hooks/IdentifyUser/index.js +0 -1
  369. package/dist/src/hooks/IdentifyUser/useIdentifyUser.js +0 -28
  370. package/dist/src/hooks/ImageResolver/index.js +0 -1
  371. package/dist/src/hooks/ImageResolver/useImageResolver.js +0 -45
  372. package/dist/src/hooks/Intersection/index.js +0 -1
  373. package/dist/src/hooks/Intersection/useIntersection.js +0 -20
  374. package/dist/src/hooks/IsSmallScreen/index.js +0 -1
  375. package/dist/src/hooks/IsSmallScreen/useIsSmallScreen.js +0 -16
  376. package/dist/src/hooks/LocalStorageOperations/index.js +0 -1
  377. package/dist/src/hooks/LocalStorageOperations/useLocalStorageOperations.js +0 -64
  378. package/dist/src/hooks/MessageFilter/index.js +0 -1
  379. package/dist/src/hooks/MessageFilter/useMessageFilter.js +0 -37
  380. package/dist/src/hooks/MessageScrollObserver/index.js +0 -1
  381. package/dist/src/hooks/MessageScrollObserver/useMessageScrollObserver.js +0 -35
  382. package/dist/src/hooks/NewOrgConfig/index.js +0 -1
  383. package/dist/src/hooks/NewOrgConfig/useNewOrgConfig.js +0 -5
  384. package/dist/src/hooks/Search/index.js +0 -1
  385. package/dist/src/hooks/Search/useRecommendedProducts.js +0 -35
  386. package/dist/src/hooks/Search/useSearch.js +0 -224
  387. package/dist/src/hooks/Search/useSearchInput.js +0 -192
  388. package/dist/src/hooks/SearchOperations/index.js +0 -1
  389. package/dist/src/hooks/SearchOperations/useSearchOperations.js +0 -78
  390. package/dist/src/hooks/SessionStorageOperations/index.js +0 -1
  391. package/dist/src/hooks/SessionStorageOperations/useSessionStorageOperations.js +0 -20
  392. package/dist/src/hooks/ShopifyUrlOperations/index.js +0 -1
  393. package/dist/src/hooks/ShopifyUrlOperations/useShopifyUrlOperations.js +0 -34
  394. package/dist/src/hooks/SnapCalculator/index.js +0 -1
  395. package/dist/src/hooks/SnapCalculator/useSnapCalculator.js +0 -22
  396. package/dist/src/hooks/SystemSettingsContext/index.js +0 -1
  397. package/dist/src/hooks/SystemSettingsContext/useSystemSettingsContext.js +0 -9
  398. package/dist/src/hooks/TrackComponentVisibleEvent/index.js +0 -1
  399. package/dist/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +0 -45
  400. package/dist/src/hooks/UpdateAnalyticsProps/index.js +0 -1
  401. package/dist/src/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.js +0 -43
  402. package/dist/src/hooks/utils.js +0 -116
  403. package/dist/src/interceptors/index.js +0 -1
  404. package/dist/src/interceptors/useMessageInterceptor.js +0 -24
  405. package/dist/src/types/ApiResponse.js +0 -1
  406. package/dist/src/types/FilterAttribute.js +0 -3
  407. package/dist/src/types/Message.js +0 -24
  408. package/dist/src/types/Suggestion.js +0 -3
  409. package/dist/src/types/index.js +0 -4
  410. package/dist/src/util/colorVar.js +0 -3
  411. package/dist/src/util/configVersion.js +0 -4
  412. package/dist/src/util/domInsertion.js +0 -16
@@ -1,6 +1,6 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
2
  const require_dist = require('./dist-VxRI6eQv.cjs');
3
- const require_newOrgConfigAtom = require('./newOrgConfigAtom-rrYHmp1b.cjs');
3
+ const require_newOrgConfigAtom = require('./newOrgConfigAtom-CDttTiuu.cjs');
4
4
  const require_utils = require('./utils-CqVRbvfN.cjs');
5
5
  const require_searchServiceAdapter = require('./searchServiceAdapter-BclWy4fE.cjs');
6
6
  let jotai = require("jotai");
@@ -309,4 +309,4 @@ Object.defineProperty(exports, 'searchSystemAtom', {
309
309
  return searchSystemAtom;
310
310
  }
311
311
  });
312
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLUNoNkxLTmg0LmNqcyIsIm5hbWVzIjpbImZvcm1hdEZpbHRlckRpc3BsYXlOYW1lIiwiUHJvZHVjdFNvcnRpbmciLCJQcm9kdWN0U29ydGluZyIsIm5ld09yZ0NvbmZpZ0F0b20iLCJnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24iLCJlcnJvcjogdW5rbm93biJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdG9tcy9zZWFyY2gvcHJvZHVjdEZpbHRlcnMudHMiLCIuLi9zcmMvYXRvbXMvc2VhcmNoL3Byb2R1Y3RTb3J0ZXIudHMiLCIuLi9zcmMvYXRvbXMvc2VhcmNoL3NlYXJjaEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGF0U2VhcmNoRmlsdGVyLCBDaGF0U2VhcmNoRmlsdGVySXRlbSB9IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5pbXBvcnQgeyBGaWx0ZXJBdHRyaWJ1dGUsIFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tIFwic3JjL3R5cGVzXCI7XG5pbXBvcnQgeyBTZWxlY3RlZEZpbHRlck9wdGlvbiB9IGZyb20gXCJzcmMvYXRvbXMvc2VhcmNoL3NlYXJjaEFQSVwiO1xuaW1wb3J0IHsgZm9ybWF0RmlsdGVyRGlzcGxheU5hbWUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5jb25zdCBnZXRQcmljZUJ1Y2tldCA9IChwcmljZTogbnVtYmVyLCBidWNrZXRTaXplOiBudW1iZXIpID0+IHtcbiAgY29uc3QgYnVja2V0ID0gTWF0aC5mbG9vcihwcmljZSAvIGJ1Y2tldFNpemUpO1xuICByZXR1cm4gYnVja2V0ICogYnVja2V0U2l6ZTtcbn07XG5cbmNvbnN0IGlzU3RyaW5nQXJyYXkgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmdbXSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiB0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIik7XG59O1xuXG50eXBlIEZpbHRlclNvcnRGdW5jdGlvbiA9IChcbiAgYTogQ2hhdFNlYXJjaEZpbHRlckl0ZW0sXG4gIGI6IENoYXRTZWFyY2hGaWx0ZXJJdGVtXG4pID0+IG51bWJlcjtcblxuY29uc3Qgc29ydEZpbHRlciA9IChmaWx0ZXJDb25maWc6IEZpbHRlckF0dHJpYnV0ZSk6IEZpbHRlclNvcnRGdW5jdGlvbiA9PiB7XG4gIGlmIChmaWx0ZXJDb25maWcudHlwZSA9PT0gXCJwcmljZVwiKSB7XG4gICAgcmV0dXJuIChhLCBiKSA9PiBOdW1iZXIoYS5maWx0ZXJJdGVtSWQpIC0gTnVtYmVyKGIuZmlsdGVySXRlbUlkKTtcbiAgfVxuICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwiZHluYW1pY1wiKSB7XG4gICAgaWYgKGZpbHRlckNvbmZpZy5zb3J0aW5nLnR5cGUgPT09IFwiYWxwaGFiZXRpY1wiKSB7XG4gICAgICByZXR1cm4gKGEsIGIpID0+IGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKTtcbiAgICB9XG4gICAgLy8gU29ydCBieSB0aGUgbnVtYmVyIG9mIHByb2R1Y3RzLCBpZiB0aGV5IG1hdGNoLCBzb3J0IGJ5IGFscGhhYmV0aWNhbFxuICAgIGlmIChmaWx0ZXJDb25maWcuc29ydGluZy50eXBlID09PSBcInByb2R1Y3RDb3VudFwiKSB7XG4gICAgICByZXR1cm4gKGEsIGIpID0+XG4gICAgICAgIGEucHJvZHVjdENvdW50ID09PSBiLnByb2R1Y3RDb3VudFxuICAgICAgICAgID8gYS5kaXNwbGF5TmFtZS5sb2NhbGVDb21wYXJlKGIuZGlzcGxheU5hbWUpXG4gICAgICAgICAgOiBiLnByb2R1Y3RDb3VudCAtIGEucHJvZHVjdENvdW50O1xuICAgIH1cbiAgICBpZiAoZmlsdGVyQ29uZmlnLnNvcnRpbmcudHlwZSA9PT0gXCJjdXN0b21cIikge1xuICAgICAgY29uc3Qgc29ydGVkS2V5cyA9IGZpbHRlckNvbmZpZy5zb3J0aW5nLm1hcDtcbiAgICAgIHJldHVybiAoYSwgYikgPT4ge1xuICAgICAgICBpZiAoc29ydGVkS2V5c1thLmRpc3BsYXlOYW1lXSAmJiBzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdKSB7XG4gICAgICAgICAgLy8gSWYgYm90aCBhcmUgaW4gdGhlIHNvcnRlZEtleXMsIHNvcnQgYnkgdGhlIGluZGV4XG4gICAgICAgICAgcmV0dXJuIHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0gLSBzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIG9ubHkgJ2EnIGlzIGluIHRoZSBzb3J0ZWRLZXlzLCBwdXQgaXQgYmVmb3JlIHRoZSBvdGhlclxuICAgICAgICBpZiAoc29ydGVkS2V5c1thLmRpc3BsYXlOYW1lXSkge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBvbmx5ICdiJyBpcyBpbiB0aGUgc29ydGVkS2V5cywgcHV0IGl0IGJlZm9yZSB0aGUgb3RoZXJcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYi5kaXNwbGF5TmFtZV0pIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBuZWl0aGVyIGFyZSBpbiB0aGUgc29ydGVkS2V5cywgc29ydCBieSBwcm9kdWN0Q291bnRcbiAgICAgICAgcmV0dXJuIGIucHJvZHVjdENvdW50IC0gYS5wcm9kdWN0Q291bnQ7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhYWxpZCBzZWFyY2ggZmlsdGVyIGNvbmZpZ3VyYXRpb25cIik7XG59O1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdEZpbHRlcnMge1xuICBzdGF0aWMgZ2V0RmlsdGVyc0ZvclByb2R1Y3RzKFxuICAgIHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzW1wiYXR0cmlidXRlc1wiXVtdLFxuICAgIGZpbHRlckNvbmZpZ3M6IEZpbHRlckF0dHJpYnV0ZVtdLFxuICAgIHNlbGVjdGVkRmlsdGVyT3B0aW9uczogU2VsZWN0ZWRGaWx0ZXJPcHRpb25bXVxuICApOiBDaGF0U2VhcmNoRmlsdGVyW10ge1xuICAgIGlmICghcHJvZHVjdHMgfHwgcHJvZHVjdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVycyA9IGZpbHRlckNvbmZpZ3MubWFwKChmaWx0ZXJDb25maWcpID0+XG4gICAgICBwcm9kdWN0cy5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHByb2R1Y3QpID0+IHtcbiAgICAgICAgICAvLyBQcmljZSBoYXMgc3BlY2lhbCBoYW5kbGluZyBmb3IgdGhlIGZpbHRlcnNcbiAgICAgICAgICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwicHJpY2VcIikge1xuICAgICAgICAgICAgY29uc3QgcHJpY2VCdWNrZXQgPSBnZXRQcmljZUJ1Y2tldChcbiAgICAgICAgICAgICAgcHJvZHVjdC5zYWxlUHJpY2UgPz8gcHJvZHVjdC5vcmlnaW5hbFByaWNlID8/IDAsXG4gICAgICAgICAgICAgIGZpbHRlckNvbmZpZy5idWNrZXRTaXplXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IGFjYy5tYXBbcHJpY2VCdWNrZXRdID8/IHtcbiAgICAgICAgICAgICAgZmlsdGVySXRlbUlkOiBwcmljZUJ1Y2tldCxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGAkJHtwcmljZUJ1Y2tldH0tJCR7XG4gICAgICAgICAgICAgICAgcHJpY2VCdWNrZXQgKyBmaWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgcHJvZHVjdENvdW50OiAwLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGFjYy5tYXBbcHJpY2VCdWNrZXRdID0ge1xuICAgICAgICAgICAgICAuLi5jdXJyZW50LFxuICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGN1cnJlbnQucHJvZHVjdENvdW50ICsgMSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEFzc3VtZSB0aGF0IHRoZSBcImF0dHJpYnV0ZVwiIGlzIGFuIGFycmF5IG9mIHZhbHVlc1xuICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlcyA9XG4gICAgICAgICAgICAocHJvZHVjdC5maWx0ZXJzICYmIHByb2R1Y3QuZmlsdGVycz8uW2ZpbHRlckNvbmZpZy5hdHRyaWJ1dGVdKSA/P1xuICAgICAgICAgICAgW107XG4gICAgICAgICAgaWYgKGlzU3RyaW5nQXJyYXkoYXR0cmlidXRlVmFsdWVzKSkge1xuICAgICAgICAgICAgYXR0cmlidXRlVmFsdWVzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsID0gdmFsLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBhY2MubWFwW25vcm1hbGl6ZWRWYWxdID8/IHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJJdGVtSWQ6IG5vcm1hbGl6ZWRWYWwsXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGZvcm1hdEZpbHRlckRpc3BsYXlOYW1lKHZhbCksIC8vIEtlZXAgb3JpZ2luYWwgY2FzZSBmb3IgZGlzcGxheVxuICAgICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgYWNjLm1hcFtub3JtYWxpemVkVmFsXSA9IHtcbiAgICAgICAgICAgICAgICAuLi5jdXJyZW50LFxuICAgICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogY3VycmVudC5wcm9kdWN0Q291bnQgKyAxLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlckNvbmZpZyxcbiAgICAgICAgICBtYXA6IHt9IGFzIFJlY29yZDxzdHJpbmcsIENoYXRTZWFyY2hGaWx0ZXJJdGVtPixcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lZEZpbHRlcnM6IENoYXRTZWFyY2hGaWx0ZXJbXSA9IGZpbHRlcnMubWFwKFxuICAgICAgKHsgZmlsdGVyQ29uZmlnLCBtYXAgfSkgPT4gKHtcbiAgICAgICAgZmlsdGVySWQ6IGZpbHRlckNvbmZpZy5maWx0ZXJJZCxcbiAgICAgICAgZGlzcGxheU5hbWU6IGZpbHRlckNvbmZpZy5kaXNwbGF5TmFtZSxcbiAgICAgICAgaXRlbXM6IE9iamVjdC52YWx1ZXMobWFwKVxuICAgICAgICAgIC5tYXAoKGZpbHRlcikgPT4gKHtcbiAgICAgICAgICAgIGZpbHRlckl0ZW1JZDogZmlsdGVyLmZpbHRlckl0ZW1JZCxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBmaWx0ZXIuZGlzcGxheU5hbWUsXG4gICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGZpbHRlci5wcm9kdWN0Q291bnQsXG4gICAgICAgICAgICBpc1NlbGVjdGVkOlxuICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgb3B0aW9uLmlkID09PVxuICAgICAgICAgICAgICAgICAgYCR7ZmlsdGVyQ29uZmlnLmZpbHRlcklkfToke2ZpbHRlci5maWx0ZXJJdGVtSWR9YFxuICAgICAgICAgICAgICApID8/IGZhbHNlLFxuICAgICAgICAgIH0pKVxuICAgICAgICAgIC5zb3J0KHNvcnRGaWx0ZXIoZmlsdGVyQ29uZmlnKSksXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gWy4uLnRyYW5zZm9ybWVkRmlsdGVyc107XG4gIH1cblxuICBzdGF0aWMgZmlsdGVyUHJvZHVjdHMoXG4gICAgcHJvZHVjdHM6IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXNbXCJhdHRyaWJ1dGVzXCJdW10sXG4gICAgZmlsdGVyQ29uZmlnczogRmlsdGVyQXR0cmlidXRlW10sXG4gICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zOiBTZWxlY3RlZEZpbHRlck9wdGlvbltdLFxuICAgIGFkZGl0aXZlRHluYW1pY0ZpbHRlcnMgPSBmYWxzZSAvLyBTZXQgdGhpcyB0byB0cnVlIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJlaGF2aW9yIHdoZXJlIHN0YWNraW5nIGZpbHRlcnMgaGFzIE9SIGxvZ2ljLlxuICApIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpbHRlcnMgPSBmaWx0ZXJDb25maWdzXG4gICAgICAubWFwKChmaWx0ZXJDb25maWcpID0+ICh7XG4gICAgICAgIGZpbHRlckNvbmZpZyxcbiAgICAgICAgaGFzU2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySWQgPT09IGZpbHRlckNvbmZpZy5maWx0ZXJJZFxuICAgICAgICApLFxuICAgICAgfSkpXG4gICAgICAuZmlsdGVyKCh7IGhhc1NlbGVjdGVkT3B0aW9ucyB9KSA9PiBoYXNTZWxlY3RlZE9wdGlvbnMpO1xuICAgIHJldHVybiBzZWxlY3RlZEZpbHRlck9wdGlvbnMubGVuZ3RoID09PSAwXG4gICAgICA/IHByb2R1Y3RzXG4gICAgICA6IHByb2R1Y3RzLmZpbHRlcigocHJvZHVjdCkgPT5cbiAgICAgICAgICBzZWxlY3RlZEZpbHRlcnMucmVkdWNlKChhY2MsIHNlbGVjdGVkRmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAvLyBGaW5kaW5nIG9uZSBmYWxzZSByZW1vdmVzIHRoZSBwcm9kdWN0XG4gICAgICAgICAgICBpZiAoIWFjYykge1xuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUHJpY2UgaXMgc3BlY2lhbFxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy50eXBlID09PSBcInByaWNlXCIpIHtcbiAgICAgICAgICAgICAgY29uc3QgcHJpY2VCdWNrZXQgPSBnZXRQcmljZUJ1Y2tldChcbiAgICAgICAgICAgICAgICBwcm9kdWN0LnNhbGVQcmljZSA/PyBwcm9kdWN0Lm9yaWdpbmFsUHJpY2UgPz8gMCxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzUHJpY2VGaWx0ZXIgPSBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24uaWQgPT09IGBwcmljZToke3ByaWNlQnVja2V0fWBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKCFtYXRjaGVzUHJpY2VGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy50eXBlID09PSBcImR5bmFtaWNcIikge1xuICAgICAgICAgICAgICAvLyBkeW5hbWljIGlzIG1pc2xlYWRpbmcgaGVyZS4gSXRzIG5vdCBqdXN0IGR5bmFtaWMgZmlsdGVycywgYnV0IHN0YXRpYyBmaWx0ZXJzIGJlY2F1c2UgdGhlIGNvbmZpZyBjb3VudHMgc3RhdGljIGZpbHRlcnMgYXMgdHlwZTogZHluYW1pYy5cbiAgICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXJJZCwgYXR0cmlidXRlIH0gPSBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWc7XG4gICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlcyA9IHByb2R1Y3QuZmlsdGVycz8uW2F0dHJpYnV0ZV07XG5cbiAgICAgICAgICAgICAgaWYgKCFpc1N0cmluZ0FycmF5KGF0dHJpYnV0ZVZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBpc0R5bmFtaWNGaWx0ZXIgPVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy5hdHRyaWJ1dGUgPT09IFwiZHluYW1pY1wiOyAvLyBUcnVlIGR5bmFtaWMgZmlsdGVycyAodGhlIG9uZXMgdGhhdCBhcHBlYXIgYmVuZWF0aCB0aGUgc2VhcmNoIGlucHV0KVxuICAgICAgICAgICAgICBjb25zdCBpc1N1YnRyYWN0aXZlTG9naWMgPVxuICAgICAgICAgICAgICAgIGlzRHluYW1pY0ZpbHRlciAmJiAhYWRkaXRpdmVEeW5hbWljRmlsdGVycztcblxuICAgICAgICAgICAgICBpZiAoaXNTdWJ0cmFjdGl2ZUxvZ2ljKSB7XG4gICAgICAgICAgICAgICAgLy8gQU5EIGxvZ2ljIGZvciBzdWJ0cmFjdGl2ZSBkeW5hbWljIGZpbHRlcnMgYW5kIGJldHdlZW4gc3RhdGljIGZpbHRlciBjYXRlZ29yaWVzXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zRm9yVGhpc0ZpbHRlciA9IHNlbGVjdGVkRmlsdGVyT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySWQgPT09IGZpbHRlcklkKVxuICAgICAgICAgICAgICAgICAgLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySXRlbUlkLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaGFzQWxsU2VsZWN0ZWRWYWx1ZXMgPSBzZWxlY3RlZE9wdGlvbnNGb3JUaGlzRmlsdGVyLmV2ZXJ5KFxuICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkVmFsdWUpID0+XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcy5zb21lKFxuICAgICAgICAgICAgICAgICAgICAgICh2YWwpID0+IHZhbC50b0xvd2VyQ2FzZSgpID09PSBzZWxlY3RlZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNBbGxTZWxlY3RlZFZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBPUiBsb2dpYyBmb3Igc3RhdGljIGZpbHRlcnMgaW4gdGhlIHNpZGViYXIgd2l0aGluIGEgY2F0ZWdvcnkuXG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGF0dHJpYnV0ZVZhbHVlcy5zb21lKCh2YWwpID0+XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmlkID09PSBgJHtmaWx0ZXJJZH06JHt2YWwudG9Mb3dlckNhc2UoKX1gXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0sIHRydWUpXG4gICAgICAgICk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IFByb2R1Y3RTb3J0aW5nIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBQcm9kdWN0U29ydGVyIHtcbiAgc3RhdGljIHNvcnQocHJvZHVjdHM6IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXNbJ2F0dHJpYnV0ZXMnXVtdLCBzb3J0aW5nOiBQcm9kdWN0U29ydGluZykge1xuICAgIHN3aXRjaCAoc29ydGluZykge1xuICAgICAgY2FzZSBQcm9kdWN0U29ydGluZy5QUklDRV9BU0M6XG4gICAgICAgIHJldHVybiBbLi4ucHJvZHVjdHNdLnNvcnQoXG4gICAgICAgICAgKHAxLCBwMikgPT5cbiAgICAgICAgICAgIChwMS5zYWxlUHJpY2UgPz8gcDEub3JpZ2luYWxQcmljZSA/PyAwKSAtIChwMi5zYWxlUHJpY2UgPz8gcDIub3JpZ2luYWxQcmljZSA/PyAwKSxcbiAgICAgICAgKTtcblxuICAgICAgY2FzZSBQcm9kdWN0U29ydGluZy5QUklDRV9ERVNDOlxuICAgICAgICByZXR1cm4gWy4uLnByb2R1Y3RzXS5zb3J0KFxuICAgICAgICAgIChwMSwgcDIpID0+XG4gICAgICAgICAgICAocDIuc2FsZVByaWNlID8/IHAyLm9yaWdpbmFsUHJpY2UgPz8gMCkgLSAocDEuc2FsZVByaWNlID8/IHAxLm9yaWdpbmFsUHJpY2UgPz8gMCksXG4gICAgICAgICk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwcm9kdWN0cztcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGluZyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgUHJvZHVjdEZpbHRlcnMgfSBmcm9tICcuL3Byb2R1Y3RGaWx0ZXJzJztcbmltcG9ydCB7IFByb2R1Y3RTb3J0ZXIgfSBmcm9tICcuL3Byb2R1Y3RTb3J0ZXInO1xuaW1wb3J0IHsgbmV3T3JnQ29uZmlnQXRvbSB9IGZyb20gJy4uL29yZyc7XG5pbXBvcnQgeyBnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24gfSBmcm9tICcuL3NlYXJjaFNlcnZpY2VBZGFwdGVyJztcbmltcG9ydCB7IFNlYXJjaFBhcmFtcywgU2VhcmNoUmVzdWx0IH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdGVkRmlsdGVyT3B0aW9uID0ge1xuICBpZDogc3RyaW5nOyAvLyBcImZpbHRlcklkOmZpbHRlckl0ZW1JZFwiIC0gbWFpbnRhaW5zIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGNvbXBhcmlzb25zXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIGZpbHRlcklkOiBzdHJpbmc7IC8vIEZpbHRlciBjYXRlZ29yeVxuICBmaWx0ZXJJdGVtSWQ6IHN0cmluZzsgLy8gRmlsdGVyIHZhbHVlXG59O1xuXG5pbnRlcmZhY2UgU2VhcmNoU3RhdGUge1xuICBkYXRhOiBTZWFyY2hSZXN1bHQgfCBudWxsO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBlcnJvcjogc3RyaW5nIHwgbnVsbDtcbiAgbGFzdFF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgY29uc3Qgc2VhcmNoQXRvbSA9IGF0b208U2VhcmNoU3RhdGU+KHtcbiAgZGF0YTogbnVsbCxcbiAgbG9hZGluZzogZmFsc2UsXG4gIGVycm9yOiBudWxsLFxuICBsYXN0UXVlcnk6IG51bGwsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSA9IGF0b208UHJvZHVjdFNvcnRpbmc+KFByb2R1Y3RTb3J0aW5nLkZFQVRVUkVEKTtcbmV4cG9ydCBjb25zdCBzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tID0gYXRvbTxTZWxlY3RlZEZpbHRlck9wdGlvbltdPihbXSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVGaWx0ZXJPcHRpb24gPSAoXG4gIGZpbHRlcklkOiBzdHJpbmcsXG4gIGZpbHRlckl0ZW1JZDogc3RyaW5nLFxuICBkaXNwbGF5TmFtZTogc3RyaW5nLFxuKTogU2VsZWN0ZWRGaWx0ZXJPcHRpb24gPT4gKHtcbiAgaWQ6IGAke2ZpbHRlcklkfToke2ZpbHRlckl0ZW1JZH1gLFxuICBkaXNwbGF5TmFtZSxcbiAgZmlsdGVySWQsXG4gIGZpbHRlckl0ZW1JZCxcbn0pO1xuXG5jb25zdCBpbnRlcm5hbFNlYXJjaFBhcmFtc0F0b20gPSBhdG9tPHtcbiAgaWQ6IHN0cmluZyB8IG51bGw7XG4gIHF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xufT4oe1xuICBpZDogbnVsbCxcbiAgcXVlcnk6IG51bGwsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaFBhcmFtc0F0b20gPSBhdG9tKFxuICAoZ2V0KSA9PiBnZXQoaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tKSxcbiAgKF8sIHNldCwgdmFsdWU6IHsgaWQ6IHN0cmluZyB8IG51bGw7IHF1ZXJ5OiBzdHJpbmcgfCBudWxsIH0pID0+IHtcbiAgICBzZXQoaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tLCB2YWx1ZSk7XG4gIH0sXG4pO1xuZXhwb3J0IGNvbnN0IGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tID0gYXRvbTxib29sZWFuPihmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hTeXN0ZW1BdG9tID0gYXRvbShcbiAgKGdldCkgPT4gZ2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tKSxcbiAgKGdldCwgc2V0LCB2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gZ2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdGF0ZUNoYW5nZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgICAgaWYgKHBhcmFtcy5nZXQoJ2VzJykgPT09ICd0cnVlJykge1xuICAgICAgICBjb25zdCBpZCA9IHBhcmFtcy5nZXQoJ2VzaScpO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy5nZXQoJ2VzcScpO1xuICAgICAgICBzZXQoc2VhcmNoUGFyYW1zQXRvbSwgeyBpZCwgcXVlcnkgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXQoc2VhcmNoUGFyYW1zQXRvbSwgeyBpZDogbnVsbCwgcXVlcnk6IG51bGwgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHNldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSwgdHJ1ZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCBzdGF0ZUNoYW5nZUhhbmRsZXIpO1xuICAgICAgLy8gQWxzbyB0cmlnZ2VyIHRoZSBoYXNoIGNoYW5nZSBoYW5kbGVyIHRvIHNldCB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgc3RhdGVDaGFuZ2VIYW5kbGVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSwgZmFsc2UpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgc3RhdGVDaGFuZ2VIYW5kbGVyKTtcbiAgICB9XG4gIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgZmlsdGVyZWRTZWFyY2hQcm9kdWN0c0F0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3Qgc2VhcmNoRGF0YSA9IGdldChzZWFyY2hBdG9tKS5kYXRhO1xuICBjb25zdCBzb3J0aW5nID0gZ2V0KHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSk7XG4gIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGlmICghc2VhcmNoRGF0YT8ucHJvZHVjdHMgfHwgIW5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnKSByZXR1cm4gW107XG5cbiAgY29uc3QgZmlsdGVyZWRQcm9kdWN0cyA9IFByb2R1Y3RGaWx0ZXJzLmZpbHRlclByb2R1Y3RzKFxuICAgIHNlYXJjaERhdGEucHJvZHVjdHMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuc2VhcmNoRmlsdGVyQ29uZmlnLFxuICAgIHNlbGVjdGVkRmlsdGVycyxcbiAgICBuZXdPcmdDb25maWcuZnJvbnRlbmRDb25maWcudWlDb25maWdzLnNlYXJjaENvbmZpZy5hZGRpdGl2ZUR5bmFtaWNGaWx0ZXJzLFxuICApO1xuXG4gIHJldHVybiBQcm9kdWN0U29ydGVyLnNvcnQoZmlsdGVyZWRQcm9kdWN0cywgc29ydGluZyk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaEZpbHRlcnNBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IHNlYXJjaERhdGEgPSBnZXQoc2VhcmNoQXRvbSkuZGF0YTtcbiAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBjb25zdCBuZXdPcmdDb25maWcgPSBnZXQobmV3T3JnQ29uZmlnQXRvbSk7XG5cbiAgaWYgKCFzZWFyY2hEYXRhPy5wcm9kdWN0cyB8fCAhbmV3T3JnQ29uZmlnPy5mcm9udGVuZENvbmZpZz8udWlDb25maWdzPy5zZWFyY2hDb25maWcpIHJldHVybiBbXTtcblxuICByZXR1cm4gUHJvZHVjdEZpbHRlcnMuZ2V0RmlsdGVyc0ZvclByb2R1Y3RzKFxuICAgIHNlYXJjaERhdGEucHJvZHVjdHMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuc2VhcmNoRmlsdGVyQ29uZmlnLFxuICAgIHNlbGVjdGVkRmlsdGVycyxcbiAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgYWRkU2VhcmNoRmlsdGVyQXRvbSA9IGF0b20obnVsbCwgKGdldCwgc2V0LCBmaWx0ZXI6IFNlbGVjdGVkRmlsdGVyT3B0aW9uKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnQgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIGlmICghY3VycmVudC5zb21lKChmKSA9PiBmLmlkID09PSBmaWx0ZXIuaWQpKSB7XG4gICAgc2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sIFsuLi5jdXJyZW50LCBmaWx0ZXJdKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWFyY2hGaWx0ZXJBdG9tID0gYXRvbShudWxsLCAoZ2V0LCBzZXQsIGZpbHRlcklkOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgY3VycmVudCA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgc2V0KFxuICAgIHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sXG4gICAgY3VycmVudC5maWx0ZXIoKGYpID0+IGYuaWQgIT09IGZpbHRlcklkKSxcbiAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgY2xlYXJTZWFyY2hGaWx0ZXJzQXRvbSA9IGF0b20obnVsbCwgKF8sIHNldCkgPT4ge1xuICBzZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSwgW10pO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwZXJmb3JtU2VhcmNoQXRvbSA9IGF0b20oXG4gIG51bGwsXG4gIGFzeW5jIChnZXQsIHNldCwgcGFyYW1zOiBTZWFyY2hQYXJhbXMsIGFsbG93UmVkaXJlY3QgPSBmYWxzZSkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IGdldChzZWFyY2hBdG9tKTtcbiAgICBjb25zdCBuZXdPcmdDb25maWcgPSBnZXQobmV3T3JnQ29uZmlnQXRvbSk7XG4gICAgY29uc3QgcmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsID1cbiAgICAgIG5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnPy5yZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmw7XG5cbiAgICBpZiAoYWxsb3dSZWRpcmVjdCAmJiByZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmwpIHtcbiAgICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gbmV3IFVSTChyZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmwpO1xuICAgICAgcmVkaXJlY3RVcmwuc2VhcmNoUGFyYW1zLnNldCgnZXMnLCAndHJ1ZScpO1xuICAgICAgcmVkaXJlY3RVcmwuc2VhcmNoUGFyYW1zLnNldCgnZXNxJywgcGFyYW1zLnF1ZXJ5KTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcmVkaXJlY3RVcmwudG9TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXBkYXRlIFVSTCBhbmQgbWFudWFsbHkgdHJpZ2dlciBzdGF0ZSBjaGFuZ2UgKHNpbmNlIHB1c2hTdGF0ZSBkb2Vzbid0IHRyaWdnZXIgcG9wc3RhdGUpXG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdlcycsICd0cnVlJyk7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnZXNxJywgcGFyYW1zLnF1ZXJ5KTtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwgJycsIHVybCk7XG5cbiAgICAgIC8vIE1hbnVhbGx5IHRyaWdnZXIgcGFnZSB2YXJpYW50IHJlLWV2YWx1YXRpb24gYnkgZGlzcGF0Y2hpbmcgYSBwb3BzdGF0ZSBldmVudFxuICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoZSBwYWdlIHZhcmlhbnQgc3lzdGVtIGRldGVjdHMgdGhlIFVSTCBjaGFuZ2UgYW5kIG1vdW50cyBzZWFyY2ggcmVzdWx0c1xuICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFBvcFN0YXRlRXZlbnQoJ3BvcHN0YXRlJywgeyBzdGF0ZToge30gfSkpO1xuICAgIH1cblxuICAgIC8vIE1hbnVhbGx5IHRyaWdnZXIgcGFnZSB2YXJpYW50IHJlLWV2YWx1YXRpb24gYnkgZGlzcGF0Y2hpbmcgYSBwb3BzdGF0ZSBldmVudFxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgcGFnZSB2YXJpYW50IHN5c3RlbSBkZXRlY3RzIHRoZSBVUkwgY2hhbmdlIGFuZCBtb3VudHMgc2VhcmNoIHJlc3VsdHNcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgUG9wU3RhdGVFdmVudCgncG9wc3RhdGUnLCB7IHN0YXRlOiB7fSB9KSk7XG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5sb2FkaW5nKSB7XG4gICAgICByZXR1cm47IC8vIFByZXZlbnQgY29uY3VycmVudCBzZWFyY2hlc1xuICAgIH1cblxuICAgIHNldChzZWFyY2hBdG9tLCB7XG4gICAgICBkYXRhOiBudWxsLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgbGFzdFF1ZXJ5OiBwYXJhbXMucXVlcnksXG4gICAgfSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlYXJjaFNlcnZpY2VGdW5jdGlvbiA9IGdldFNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2VhcmNoU2VydmljZUZ1bmN0aW9uKHBhcmFtcyk7XG4gICAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgbGFzdFF1ZXJ5OiBwYXJhbXMucXVlcnksXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCc7XG4gICAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgbGFzdFF1ZXJ5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
312
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLUNXa0R0cVFWLmNqcyIsIm5hbWVzIjpbImZvcm1hdEZpbHRlckRpc3BsYXlOYW1lIiwiUHJvZHVjdFNvcnRpbmciLCJQcm9kdWN0U29ydGluZyIsIm5ld09yZ0NvbmZpZ0F0b20iLCJnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24iLCJlcnJvcjogdW5rbm93biJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hdG9tcy9zZWFyY2gvcHJvZHVjdEZpbHRlcnMudHMiLCIuLi9zcmMvYXRvbXMvc2VhcmNoL3Byb2R1Y3RTb3J0ZXIudHMiLCIuLi9zcmMvYXRvbXMvc2VhcmNoL3NlYXJjaEFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGF0U2VhcmNoRmlsdGVyLCBDaGF0U2VhcmNoRmlsdGVySXRlbSB9IGZyb20gXCJAZW52aXZlLWFpL3R5cGVzXCI7XG5pbXBvcnQgeyBGaWx0ZXJBdHRyaWJ1dGUsIFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tIFwic3JjL3R5cGVzXCI7XG5pbXBvcnQgeyBTZWxlY3RlZEZpbHRlck9wdGlvbiB9IGZyb20gXCJzcmMvYXRvbXMvc2VhcmNoL3NlYXJjaEFQSVwiO1xuaW1wb3J0IHsgZm9ybWF0RmlsdGVyRGlzcGxheU5hbWUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5jb25zdCBnZXRQcmljZUJ1Y2tldCA9IChwcmljZTogbnVtYmVyLCBidWNrZXRTaXplOiBudW1iZXIpID0+IHtcbiAgY29uc3QgYnVja2V0ID0gTWF0aC5mbG9vcihwcmljZSAvIGJ1Y2tldFNpemUpO1xuICByZXR1cm4gYnVja2V0ICogYnVja2V0U2l6ZTtcbn07XG5cbmNvbnN0IGlzU3RyaW5nQXJyYXkgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmdbXSA9PiB7XG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHZhbHVlLmV2ZXJ5KChpdGVtKSA9PiB0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIik7XG59O1xuXG50eXBlIEZpbHRlclNvcnRGdW5jdGlvbiA9IChcbiAgYTogQ2hhdFNlYXJjaEZpbHRlckl0ZW0sXG4gIGI6IENoYXRTZWFyY2hGaWx0ZXJJdGVtXG4pID0+IG51bWJlcjtcblxuY29uc3Qgc29ydEZpbHRlciA9IChmaWx0ZXJDb25maWc6IEZpbHRlckF0dHJpYnV0ZSk6IEZpbHRlclNvcnRGdW5jdGlvbiA9PiB7XG4gIGlmIChmaWx0ZXJDb25maWcudHlwZSA9PT0gXCJwcmljZVwiKSB7XG4gICAgcmV0dXJuIChhLCBiKSA9PiBOdW1iZXIoYS5maWx0ZXJJdGVtSWQpIC0gTnVtYmVyKGIuZmlsdGVySXRlbUlkKTtcbiAgfVxuICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwiZHluYW1pY1wiKSB7XG4gICAgaWYgKGZpbHRlckNvbmZpZy5zb3J0aW5nLnR5cGUgPT09IFwiYWxwaGFiZXRpY1wiKSB7XG4gICAgICByZXR1cm4gKGEsIGIpID0+IGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKTtcbiAgICB9XG4gICAgLy8gU29ydCBieSB0aGUgbnVtYmVyIG9mIHByb2R1Y3RzLCBpZiB0aGV5IG1hdGNoLCBzb3J0IGJ5IGFscGhhYmV0aWNhbFxuICAgIGlmIChmaWx0ZXJDb25maWcuc29ydGluZy50eXBlID09PSBcInByb2R1Y3RDb3VudFwiKSB7XG4gICAgICByZXR1cm4gKGEsIGIpID0+XG4gICAgICAgIGEucHJvZHVjdENvdW50ID09PSBiLnByb2R1Y3RDb3VudFxuICAgICAgICAgID8gYS5kaXNwbGF5TmFtZS5sb2NhbGVDb21wYXJlKGIuZGlzcGxheU5hbWUpXG4gICAgICAgICAgOiBiLnByb2R1Y3RDb3VudCAtIGEucHJvZHVjdENvdW50O1xuICAgIH1cbiAgICBpZiAoZmlsdGVyQ29uZmlnLnNvcnRpbmcudHlwZSA9PT0gXCJjdXN0b21cIikge1xuICAgICAgY29uc3Qgc29ydGVkS2V5cyA9IGZpbHRlckNvbmZpZy5zb3J0aW5nLm1hcDtcbiAgICAgIHJldHVybiAoYSwgYikgPT4ge1xuICAgICAgICBpZiAoc29ydGVkS2V5c1thLmRpc3BsYXlOYW1lXSAmJiBzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdKSB7XG4gICAgICAgICAgLy8gSWYgYm90aCBhcmUgaW4gdGhlIHNvcnRlZEtleXMsIHNvcnQgYnkgdGhlIGluZGV4XG4gICAgICAgICAgcmV0dXJuIHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0gLSBzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIG9ubHkgJ2EnIGlzIGluIHRoZSBzb3J0ZWRLZXlzLCBwdXQgaXQgYmVmb3JlIHRoZSBvdGhlclxuICAgICAgICBpZiAoc29ydGVkS2V5c1thLmRpc3BsYXlOYW1lXSkge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBvbmx5ICdiJyBpcyBpbiB0aGUgc29ydGVkS2V5cywgcHV0IGl0IGJlZm9yZSB0aGUgb3RoZXJcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYi5kaXNwbGF5TmFtZV0pIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBuZWl0aGVyIGFyZSBpbiB0aGUgc29ydGVkS2V5cywgc29ydCBieSBwcm9kdWN0Q291bnRcbiAgICAgICAgcmV0dXJuIGIucHJvZHVjdENvdW50IC0gYS5wcm9kdWN0Q291bnQ7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhYWxpZCBzZWFyY2ggZmlsdGVyIGNvbmZpZ3VyYXRpb25cIik7XG59O1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdEZpbHRlcnMge1xuICBzdGF0aWMgZ2V0RmlsdGVyc0ZvclByb2R1Y3RzKFxuICAgIHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzW1wiYXR0cmlidXRlc1wiXVtdLFxuICAgIGZpbHRlckNvbmZpZ3M6IEZpbHRlckF0dHJpYnV0ZVtdLFxuICAgIHNlbGVjdGVkRmlsdGVyT3B0aW9uczogU2VsZWN0ZWRGaWx0ZXJPcHRpb25bXVxuICApOiBDaGF0U2VhcmNoRmlsdGVyW10ge1xuICAgIGlmICghcHJvZHVjdHMgfHwgcHJvZHVjdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVycyA9IGZpbHRlckNvbmZpZ3MubWFwKChmaWx0ZXJDb25maWcpID0+XG4gICAgICBwcm9kdWN0cy5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHByb2R1Y3QpID0+IHtcbiAgICAgICAgICAvLyBQcmljZSBoYXMgc3BlY2lhbCBoYW5kbGluZyBmb3IgdGhlIGZpbHRlcnNcbiAgICAgICAgICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwicHJpY2VcIikge1xuICAgICAgICAgICAgY29uc3QgcHJpY2VCdWNrZXQgPSBnZXRQcmljZUJ1Y2tldChcbiAgICAgICAgICAgICAgcHJvZHVjdC5zYWxlUHJpY2UgPz8gcHJvZHVjdC5vcmlnaW5hbFByaWNlID8/IDAsXG4gICAgICAgICAgICAgIGZpbHRlckNvbmZpZy5idWNrZXRTaXplXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IGFjYy5tYXBbcHJpY2VCdWNrZXRdID8/IHtcbiAgICAgICAgICAgICAgZmlsdGVySXRlbUlkOiBwcmljZUJ1Y2tldCxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGAkJHtwcmljZUJ1Y2tldH0tJCR7XG4gICAgICAgICAgICAgICAgcHJpY2VCdWNrZXQgKyBmaWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgcHJvZHVjdENvdW50OiAwLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGFjYy5tYXBbcHJpY2VCdWNrZXRdID0ge1xuICAgICAgICAgICAgICAuLi5jdXJyZW50LFxuICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGN1cnJlbnQucHJvZHVjdENvdW50ICsgMSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEFzc3VtZSB0aGF0IHRoZSBcImF0dHJpYnV0ZVwiIGlzIGFuIGFycmF5IG9mIHZhbHVlc1xuICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlcyA9XG4gICAgICAgICAgICAocHJvZHVjdC5maWx0ZXJzICYmIHByb2R1Y3QuZmlsdGVycz8uW2ZpbHRlckNvbmZpZy5hdHRyaWJ1dGVdKSA/P1xuICAgICAgICAgICAgW107XG4gICAgICAgICAgaWYgKGlzU3RyaW5nQXJyYXkoYXR0cmlidXRlVmFsdWVzKSkge1xuICAgICAgICAgICAgYXR0cmlidXRlVmFsdWVzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkVmFsID0gdmFsLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBhY2MubWFwW25vcm1hbGl6ZWRWYWxdID8/IHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJJdGVtSWQ6IG5vcm1hbGl6ZWRWYWwsXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IGZvcm1hdEZpbHRlckRpc3BsYXlOYW1lKHZhbCksIC8vIEtlZXAgb3JpZ2luYWwgY2FzZSBmb3IgZGlzcGxheVxuICAgICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgYWNjLm1hcFtub3JtYWxpemVkVmFsXSA9IHtcbiAgICAgICAgICAgICAgICAuLi5jdXJyZW50LFxuICAgICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogY3VycmVudC5wcm9kdWN0Q291bnQgKyAxLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlckNvbmZpZyxcbiAgICAgICAgICBtYXA6IHt9IGFzIFJlY29yZDxzdHJpbmcsIENoYXRTZWFyY2hGaWx0ZXJJdGVtPixcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lZEZpbHRlcnM6IENoYXRTZWFyY2hGaWx0ZXJbXSA9IGZpbHRlcnMubWFwKFxuICAgICAgKHsgZmlsdGVyQ29uZmlnLCBtYXAgfSkgPT4gKHtcbiAgICAgICAgZmlsdGVySWQ6IGZpbHRlckNvbmZpZy5maWx0ZXJJZCxcbiAgICAgICAgZGlzcGxheU5hbWU6IGZpbHRlckNvbmZpZy5kaXNwbGF5TmFtZSxcbiAgICAgICAgaXRlbXM6IE9iamVjdC52YWx1ZXMobWFwKVxuICAgICAgICAgIC5tYXAoKGZpbHRlcikgPT4gKHtcbiAgICAgICAgICAgIGZpbHRlckl0ZW1JZDogZmlsdGVyLmZpbHRlckl0ZW1JZCxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBmaWx0ZXIuZGlzcGxheU5hbWUsXG4gICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGZpbHRlci5wcm9kdWN0Q291bnQsXG4gICAgICAgICAgICBpc1NlbGVjdGVkOlxuICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PlxuICAgICAgICAgICAgICAgICAgb3B0aW9uLmlkID09PVxuICAgICAgICAgICAgICAgICAgYCR7ZmlsdGVyQ29uZmlnLmZpbHRlcklkfToke2ZpbHRlci5maWx0ZXJJdGVtSWR9YFxuICAgICAgICAgICAgICApID8/IGZhbHNlLFxuICAgICAgICAgIH0pKVxuICAgICAgICAgIC5zb3J0KHNvcnRGaWx0ZXIoZmlsdGVyQ29uZmlnKSksXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gWy4uLnRyYW5zZm9ybWVkRmlsdGVyc107XG4gIH1cblxuICBzdGF0aWMgZmlsdGVyUHJvZHVjdHMoXG4gICAgcHJvZHVjdHM6IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXNbXCJhdHRyaWJ1dGVzXCJdW10sXG4gICAgZmlsdGVyQ29uZmlnczogRmlsdGVyQXR0cmlidXRlW10sXG4gICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zOiBTZWxlY3RlZEZpbHRlck9wdGlvbltdLFxuICAgIGFkZGl0aXZlRHluYW1pY0ZpbHRlcnMgPSBmYWxzZSAvLyBTZXQgdGhpcyB0byB0cnVlIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJlaGF2aW9yIHdoZXJlIHN0YWNraW5nIGZpbHRlcnMgaGFzIE9SIGxvZ2ljLlxuICApIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpbHRlcnMgPSBmaWx0ZXJDb25maWdzXG4gICAgICAubWFwKChmaWx0ZXJDb25maWcpID0+ICh7XG4gICAgICAgIGZpbHRlckNvbmZpZyxcbiAgICAgICAgaGFzU2VsZWN0ZWRPcHRpb25zOiBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySWQgPT09IGZpbHRlckNvbmZpZy5maWx0ZXJJZFxuICAgICAgICApLFxuICAgICAgfSkpXG4gICAgICAuZmlsdGVyKCh7IGhhc1NlbGVjdGVkT3B0aW9ucyB9KSA9PiBoYXNTZWxlY3RlZE9wdGlvbnMpO1xuICAgIHJldHVybiBzZWxlY3RlZEZpbHRlck9wdGlvbnMubGVuZ3RoID09PSAwXG4gICAgICA/IHByb2R1Y3RzXG4gICAgICA6IHByb2R1Y3RzLmZpbHRlcigocHJvZHVjdCkgPT5cbiAgICAgICAgICBzZWxlY3RlZEZpbHRlcnMucmVkdWNlKChhY2MsIHNlbGVjdGVkRmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAvLyBGaW5kaW5nIG9uZSBmYWxzZSByZW1vdmVzIHRoZSBwcm9kdWN0XG4gICAgICAgICAgICBpZiAoIWFjYykge1xuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUHJpY2UgaXMgc3BlY2lhbFxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy50eXBlID09PSBcInByaWNlXCIpIHtcbiAgICAgICAgICAgICAgY29uc3QgcHJpY2VCdWNrZXQgPSBnZXRQcmljZUJ1Y2tldChcbiAgICAgICAgICAgICAgICBwcm9kdWN0LnNhbGVQcmljZSA/PyBwcm9kdWN0Lm9yaWdpbmFsUHJpY2UgPz8gMCxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzUHJpY2VGaWx0ZXIgPSBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24uaWQgPT09IGBwcmljZToke3ByaWNlQnVja2V0fWBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKCFtYXRjaGVzUHJpY2VGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy50eXBlID09PSBcImR5bmFtaWNcIikge1xuICAgICAgICAgICAgICAvLyBkeW5hbWljIGlzIG1pc2xlYWRpbmcgaGVyZS4gSXRzIG5vdCBqdXN0IGR5bmFtaWMgZmlsdGVycywgYnV0IHN0YXRpYyBmaWx0ZXJzIGJlY2F1c2UgdGhlIGNvbmZpZyBjb3VudHMgc3RhdGljIGZpbHRlcnMgYXMgdHlwZTogZHluYW1pYy5cbiAgICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXJJZCwgYXR0cmlidXRlIH0gPSBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWc7XG4gICAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlcyA9IHByb2R1Y3QuZmlsdGVycz8uW2F0dHJpYnV0ZV07XG5cbiAgICAgICAgICAgICAgaWYgKCFpc1N0cmluZ0FycmF5KGF0dHJpYnV0ZVZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBpc0R5bmFtaWNGaWx0ZXIgPVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRmlsdGVyLmZpbHRlckNvbmZpZy5hdHRyaWJ1dGUgPT09IFwiZHluYW1pY1wiOyAvLyBUcnVlIGR5bmFtaWMgZmlsdGVycyAodGhlIG9uZXMgdGhhdCBhcHBlYXIgYmVuZWF0aCB0aGUgc2VhcmNoIGlucHV0KVxuICAgICAgICAgICAgICBjb25zdCBpc1N1YnRyYWN0aXZlTG9naWMgPVxuICAgICAgICAgICAgICAgIGlzRHluYW1pY0ZpbHRlciAmJiAhYWRkaXRpdmVEeW5hbWljRmlsdGVycztcblxuICAgICAgICAgICAgICBpZiAoaXNTdWJ0cmFjdGl2ZUxvZ2ljKSB7XG4gICAgICAgICAgICAgICAgLy8gQU5EIGxvZ2ljIGZvciBzdWJ0cmFjdGl2ZSBkeW5hbWljIGZpbHRlcnMgYW5kIGJldHdlZW4gc3RhdGljIGZpbHRlciBjYXRlZ29yaWVzXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zRm9yVGhpc0ZpbHRlciA9IHNlbGVjdGVkRmlsdGVyT3B0aW9uc1xuICAgICAgICAgICAgICAgICAgLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySWQgPT09IGZpbHRlcklkKVxuICAgICAgICAgICAgICAgICAgLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uZmlsdGVySXRlbUlkLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaGFzQWxsU2VsZWN0ZWRWYWx1ZXMgPSBzZWxlY3RlZE9wdGlvbnNGb3JUaGlzRmlsdGVyLmV2ZXJ5KFxuICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkVmFsdWUpID0+XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcy5zb21lKFxuICAgICAgICAgICAgICAgICAgICAgICh2YWwpID0+IHZhbC50b0xvd2VyQ2FzZSgpID09PSBzZWxlY3RlZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNBbGxTZWxlY3RlZFZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBPUiBsb2dpYyBmb3Igc3RhdGljIGZpbHRlcnMgaW4gdGhlIHNpZGViYXIgd2l0aGluIGEgY2F0ZWdvcnkuXG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IGF0dHJpYnV0ZVZhbHVlcy5zb21lKCh2YWwpID0+XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmlkID09PSBgJHtmaWx0ZXJJZH06JHt2YWwudG9Mb3dlckNhc2UoKX1gXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH0sIHRydWUpXG4gICAgICAgICk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IFByb2R1Y3RTb3J0aW5nIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBQcm9kdWN0U29ydGVyIHtcbiAgc3RhdGljIHNvcnQocHJvZHVjdHM6IFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXNbJ2F0dHJpYnV0ZXMnXVtdLCBzb3J0aW5nOiBQcm9kdWN0U29ydGluZykge1xuICAgIHN3aXRjaCAoc29ydGluZykge1xuICAgICAgY2FzZSBQcm9kdWN0U29ydGluZy5QUklDRV9BU0M6XG4gICAgICAgIHJldHVybiBbLi4ucHJvZHVjdHNdLnNvcnQoXG4gICAgICAgICAgKHAxLCBwMikgPT5cbiAgICAgICAgICAgIChwMS5zYWxlUHJpY2UgPz8gcDEub3JpZ2luYWxQcmljZSA/PyAwKSAtIChwMi5zYWxlUHJpY2UgPz8gcDIub3JpZ2luYWxQcmljZSA/PyAwKSxcbiAgICAgICAgKTtcblxuICAgICAgY2FzZSBQcm9kdWN0U29ydGluZy5QUklDRV9ERVNDOlxuICAgICAgICByZXR1cm4gWy4uLnByb2R1Y3RzXS5zb3J0KFxuICAgICAgICAgIChwMSwgcDIpID0+XG4gICAgICAgICAgICAocDIuc2FsZVByaWNlID8/IHAyLm9yaWdpbmFsUHJpY2UgPz8gMCkgLSAocDEuc2FsZVByaWNlID8/IHAxLm9yaWdpbmFsUHJpY2UgPz8gMCksXG4gICAgICAgICk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBwcm9kdWN0cztcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IGF0b20gfSBmcm9tICdqb3RhaSc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGluZyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgUHJvZHVjdEZpbHRlcnMgfSBmcm9tICcuL3Byb2R1Y3RGaWx0ZXJzJztcbmltcG9ydCB7IFByb2R1Y3RTb3J0ZXIgfSBmcm9tICcuL3Byb2R1Y3RTb3J0ZXInO1xuaW1wb3J0IHsgbmV3T3JnQ29uZmlnQXRvbSB9IGZyb20gJy4uL29yZyc7XG5pbXBvcnQgeyBnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24gfSBmcm9tICcuL3NlYXJjaFNlcnZpY2VBZGFwdGVyJztcbmltcG9ydCB7IFNlYXJjaFBhcmFtcywgU2VhcmNoUmVzdWx0IH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdGVkRmlsdGVyT3B0aW9uID0ge1xuICBpZDogc3RyaW5nOyAvLyBcImZpbHRlcklkOmZpbHRlckl0ZW1JZFwiIC0gbWFpbnRhaW5zIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGNvbXBhcmlzb25zXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIGZpbHRlcklkOiBzdHJpbmc7IC8vIEZpbHRlciBjYXRlZ29yeVxuICBmaWx0ZXJJdGVtSWQ6IHN0cmluZzsgLy8gRmlsdGVyIHZhbHVlXG59O1xuXG5pbnRlcmZhY2UgU2VhcmNoU3RhdGUge1xuICBkYXRhOiBTZWFyY2hSZXN1bHQgfCBudWxsO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBlcnJvcjogc3RyaW5nIHwgbnVsbDtcbiAgbGFzdFF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgY29uc3Qgc2VhcmNoQXRvbSA9IGF0b208U2VhcmNoU3RhdGU+KHtcbiAgZGF0YTogbnVsbCxcbiAgbG9hZGluZzogZmFsc2UsXG4gIGVycm9yOiBudWxsLFxuICBsYXN0UXVlcnk6IG51bGwsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSA9IGF0b208UHJvZHVjdFNvcnRpbmc+KFByb2R1Y3RTb3J0aW5nLkZFQVRVUkVEKTtcbmV4cG9ydCBjb25zdCBzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tID0gYXRvbTxTZWxlY3RlZEZpbHRlck9wdGlvbltdPihbXSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVGaWx0ZXJPcHRpb24gPSAoXG4gIGZpbHRlcklkOiBzdHJpbmcsXG4gIGZpbHRlckl0ZW1JZDogc3RyaW5nLFxuICBkaXNwbGF5TmFtZTogc3RyaW5nLFxuKTogU2VsZWN0ZWRGaWx0ZXJPcHRpb24gPT4gKHtcbiAgaWQ6IGAke2ZpbHRlcklkfToke2ZpbHRlckl0ZW1JZH1gLFxuICBkaXNwbGF5TmFtZSxcbiAgZmlsdGVySWQsXG4gIGZpbHRlckl0ZW1JZCxcbn0pO1xuXG5jb25zdCBpbnRlcm5hbFNlYXJjaFBhcmFtc0F0b20gPSBhdG9tPHtcbiAgaWQ6IHN0cmluZyB8IG51bGw7XG4gIHF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xufT4oe1xuICBpZDogbnVsbCxcbiAgcXVlcnk6IG51bGwsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaFBhcmFtc0F0b20gPSBhdG9tKFxuICAoZ2V0KSA9PiBnZXQoaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tKSxcbiAgKF8sIHNldCwgdmFsdWU6IHsgaWQ6IHN0cmluZyB8IG51bGw7IHF1ZXJ5OiBzdHJpbmcgfCBudWxsIH0pID0+IHtcbiAgICBzZXQoaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tLCB2YWx1ZSk7XG4gIH0sXG4pO1xuZXhwb3J0IGNvbnN0IGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tID0gYXRvbTxib29sZWFuPihmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hTeXN0ZW1BdG9tID0gYXRvbShcbiAgKGdldCkgPT4gZ2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tKSxcbiAgKGdldCwgc2V0LCB2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gZ2V0KGludGVybmFsU2VhcmNoU3lzdGVtU3RhdGVBdG9tKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdGF0ZUNoYW5nZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgICAgaWYgKHBhcmFtcy5nZXQoJ2VzJykgPT09ICd0cnVlJykge1xuICAgICAgICBjb25zdCBpZCA9IHBhcmFtcy5nZXQoJ2VzaScpO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy5nZXQoJ2VzcScpO1xuICAgICAgICBzZXQoc2VhcmNoUGFyYW1zQXRvbSwgeyBpZCwgcXVlcnkgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXQoc2VhcmNoUGFyYW1zQXRvbSwgeyBpZDogbnVsbCwgcXVlcnk6IG51bGwgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHNldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSwgdHJ1ZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCBzdGF0ZUNoYW5nZUhhbmRsZXIpO1xuICAgICAgLy8gQWxzbyB0cmlnZ2VyIHRoZSBoYXNoIGNoYW5nZSBoYW5kbGVyIHRvIHNldCB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgc3RhdGVDaGFuZ2VIYW5kbGVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSwgZmFsc2UpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgc3RhdGVDaGFuZ2VIYW5kbGVyKTtcbiAgICB9XG4gIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgZmlsdGVyZWRTZWFyY2hQcm9kdWN0c0F0b20gPSBhdG9tKChnZXQpID0+IHtcbiAgY29uc3Qgc2VhcmNoRGF0YSA9IGdldChzZWFyY2hBdG9tKS5kYXRhO1xuICBjb25zdCBzb3J0aW5nID0gZ2V0KHNlYXJjaFByb2R1Y3RTb3J0aW5nQXRvbSk7XG4gIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGlmICghc2VhcmNoRGF0YT8ucHJvZHVjdHMgfHwgIW5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnKSByZXR1cm4gW107XG5cbiAgY29uc3QgZmlsdGVyZWRQcm9kdWN0cyA9IFByb2R1Y3RGaWx0ZXJzLmZpbHRlclByb2R1Y3RzKFxuICAgIHNlYXJjaERhdGEucHJvZHVjdHMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuc2VhcmNoRmlsdGVyQ29uZmlnLFxuICAgIHNlbGVjdGVkRmlsdGVycyxcbiAgICBuZXdPcmdDb25maWcuZnJvbnRlbmRDb25maWcudWlDb25maWdzLnNlYXJjaENvbmZpZy5hZGRpdGl2ZUR5bmFtaWNGaWx0ZXJzLFxuICApO1xuXG4gIHJldHVybiBQcm9kdWN0U29ydGVyLnNvcnQoZmlsdGVyZWRQcm9kdWN0cywgc29ydGluZyk7XG59KTtcblxuZXhwb3J0IGNvbnN0IHNlYXJjaEZpbHRlcnNBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IHNlYXJjaERhdGEgPSBnZXQoc2VhcmNoQXRvbSkuZGF0YTtcbiAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBjb25zdCBuZXdPcmdDb25maWcgPSBnZXQobmV3T3JnQ29uZmlnQXRvbSk7XG5cbiAgaWYgKCFzZWFyY2hEYXRhPy5wcm9kdWN0cyB8fCAhbmV3T3JnQ29uZmlnPy5mcm9udGVuZENvbmZpZz8udWlDb25maWdzPy5zZWFyY2hDb25maWcpIHJldHVybiBbXTtcblxuICByZXR1cm4gUHJvZHVjdEZpbHRlcnMuZ2V0RmlsdGVyc0ZvclByb2R1Y3RzKFxuICAgIHNlYXJjaERhdGEucHJvZHVjdHMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuc2VhcmNoRmlsdGVyQ29uZmlnLFxuICAgIHNlbGVjdGVkRmlsdGVycyxcbiAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgYWRkU2VhcmNoRmlsdGVyQXRvbSA9IGF0b20obnVsbCwgKGdldCwgc2V0LCBmaWx0ZXI6IFNlbGVjdGVkRmlsdGVyT3B0aW9uKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnQgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIGlmICghY3VycmVudC5zb21lKChmKSA9PiBmLmlkID09PSBmaWx0ZXIuaWQpKSB7XG4gICAgc2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sIFsuLi5jdXJyZW50LCBmaWx0ZXJdKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWFyY2hGaWx0ZXJBdG9tID0gYXRvbShudWxsLCAoZ2V0LCBzZXQsIGZpbHRlcklkOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgY3VycmVudCA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgc2V0KFxuICAgIHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sXG4gICAgY3VycmVudC5maWx0ZXIoKGYpID0+IGYuaWQgIT09IGZpbHRlcklkKSxcbiAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgY2xlYXJTZWFyY2hGaWx0ZXJzQXRvbSA9IGF0b20obnVsbCwgKF8sIHNldCkgPT4ge1xuICBzZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSwgW10pO1xufSk7XG5cbmV4cG9ydCBjb25zdCBwZXJmb3JtU2VhcmNoQXRvbSA9IGF0b20oXG4gIG51bGwsXG4gIGFzeW5jIChnZXQsIHNldCwgcGFyYW1zOiBTZWFyY2hQYXJhbXMsIGFsbG93UmVkaXJlY3QgPSBmYWxzZSkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IGdldChzZWFyY2hBdG9tKTtcbiAgICBjb25zdCBuZXdPcmdDb25maWcgPSBnZXQobmV3T3JnQ29uZmlnQXRvbSk7XG4gICAgY29uc3QgcmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsID1cbiAgICAgIG5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnPy5yZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmw7XG5cbiAgICBpZiAoYWxsb3dSZWRpcmVjdCAmJiByZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmwpIHtcbiAgICAgIGNvbnN0IHJlZGlyZWN0VXJsID0gbmV3IFVSTChyZWRpcmVjdFNlYXJjaFJlc3VsdHNVcmwpO1xuICAgICAgcmVkaXJlY3RVcmwuc2VhcmNoUGFyYW1zLnNldCgnZXMnLCAndHJ1ZScpO1xuICAgICAgcmVkaXJlY3RVcmwuc2VhcmNoUGFyYW1zLnNldCgnZXNxJywgcGFyYW1zLnF1ZXJ5KTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcmVkaXJlY3RVcmwudG9TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVXBkYXRlIFVSTCBhbmQgbWFudWFsbHkgdHJpZ2dlciBzdGF0ZSBjaGFuZ2UgKHNpbmNlIHB1c2hTdGF0ZSBkb2Vzbid0IHRyaWdnZXIgcG9wc3RhdGUpXG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdlcycsICd0cnVlJyk7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnZXNxJywgcGFyYW1zLnF1ZXJ5KTtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwgJycsIHVybCk7XG5cbiAgICAgIC8vIE1hbnVhbGx5IHRyaWdnZXIgcGFnZSB2YXJpYW50IHJlLWV2YWx1YXRpb24gYnkgZGlzcGF0Y2hpbmcgYSBwb3BzdGF0ZSBldmVudFxuICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoZSBwYWdlIHZhcmlhbnQgc3lzdGVtIGRldGVjdHMgdGhlIFVSTCBjaGFuZ2UgYW5kIG1vdW50cyBzZWFyY2ggcmVzdWx0c1xuICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFBvcFN0YXRlRXZlbnQoJ3BvcHN0YXRlJywgeyBzdGF0ZToge30gfSkpO1xuICAgIH1cblxuICAgIC8vIE1hbnVhbGx5IHRyaWdnZXIgcGFnZSB2YXJpYW50IHJlLWV2YWx1YXRpb24gYnkgZGlzcGF0Y2hpbmcgYSBwb3BzdGF0ZSBldmVudFxuICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgcGFnZSB2YXJpYW50IHN5c3RlbSBkZXRlY3RzIHRoZSBVUkwgY2hhbmdlIGFuZCBtb3VudHMgc2VhcmNoIHJlc3VsdHNcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgUG9wU3RhdGVFdmVudCgncG9wc3RhdGUnLCB7IHN0YXRlOiB7fSB9KSk7XG4gICAgaWYgKGN1cnJlbnRTdGF0ZS5sb2FkaW5nKSB7XG4gICAgICByZXR1cm47IC8vIFByZXZlbnQgY29uY3VycmVudCBzZWFyY2hlc1xuICAgIH1cblxuICAgIHNldChzZWFyY2hBdG9tLCB7XG4gICAgICBkYXRhOiBudWxsLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgIGVycm9yOiBudWxsLFxuICAgICAgbGFzdFF1ZXJ5OiBwYXJhbXMucXVlcnksXG4gICAgfSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlYXJjaFNlcnZpY2VGdW5jdGlvbiA9IGdldFNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2VhcmNoU2VydmljZUZ1bmN0aW9uKHBhcmFtcyk7XG4gICAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgbGFzdFF1ZXJ5OiBwYXJhbXMucXVlcnksXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCc7XG4gICAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgbGFzdFF1ZXJ5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
@@ -1,5 +1,5 @@
1
1
  import { ProductSorting } from "./dist-C38adNK1.js";
2
- import { newOrgConfigAtom } from "./newOrgConfigAtom-BuQE_zPK.js";
2
+ import { newOrgConfigAtom } from "./newOrgConfigAtom-C8h3w_Ji.js";
3
3
  import { formatFilterDisplayName } from "./utils-DQhbbAnt.js";
4
4
  import { getSearchServiceFunction } from "./searchServiceAdapter-B0h7psvh.js";
5
5
  import { atom } from "jotai";
@@ -230,4 +230,4 @@ const performSearchAtom = atom(null, async (get, set, params, allowRedirect = fa
230
230
 
231
231
  //#endregion
232
232
  export { addSearchFilterAtom, clearSearchFiltersAtom, createFilterOption, filteredSearchProductsAtom, internalSearchSystemStateAtom, performSearchAtom, removeSearchFilterAtom, searchAtom, searchFiltersAtom, searchParamsAtom, searchProductSortingAtom, searchSelectedFiltersAtom, searchSystemAtom };
233
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLS04MHg2Q2ZMLmpzIiwibmFtZXMiOlsiZXJyb3I6IHVua25vd24iXSwic291cmNlcyI6WyIuLi9zcmMvYXRvbXMvc2VhcmNoL3Byb2R1Y3RGaWx0ZXJzLnRzIiwiLi4vc3JjL2F0b21zL3NlYXJjaC9wcm9kdWN0U29ydGVyLnRzIiwiLi4vc3JjL2F0b21zL3NlYXJjaC9zZWFyY2hBUEkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhdFNlYXJjaEZpbHRlciwgQ2hhdFNlYXJjaEZpbHRlckl0ZW0gfSBmcm9tIFwiQGVudml2ZS1haS90eXBlc1wiO1xuaW1wb3J0IHsgRmlsdGVyQXR0cmlidXRlLCBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSBcInNyYy90eXBlc1wiO1xuaW1wb3J0IHsgU2VsZWN0ZWRGaWx0ZXJPcHRpb24gfSBmcm9tIFwic3JjL2F0b21zL3NlYXJjaC9zZWFyY2hBUElcIjtcbmltcG9ydCB7IGZvcm1hdEZpbHRlckRpc3BsYXlOYW1lIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuY29uc3QgZ2V0UHJpY2VCdWNrZXQgPSAocHJpY2U6IG51bWJlciwgYnVja2V0U2l6ZTogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGJ1Y2tldCA9IE1hdGguZmxvb3IocHJpY2UgLyBidWNrZXRTaXplKTtcbiAgcmV0dXJuIGJ1Y2tldCAqIGJ1Y2tldFNpemU7XG59O1xuXG5jb25zdCBpc1N0cmluZ0FycmF5ID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgc3RyaW5nW10gPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZS5ldmVyeSgoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpO1xufTtcblxudHlwZSBGaWx0ZXJTb3J0RnVuY3Rpb24gPSAoXG4gIGE6IENoYXRTZWFyY2hGaWx0ZXJJdGVtLFxuICBiOiBDaGF0U2VhcmNoRmlsdGVySXRlbVxuKSA9PiBudW1iZXI7XG5cbmNvbnN0IHNvcnRGaWx0ZXIgPSAoZmlsdGVyQ29uZmlnOiBGaWx0ZXJBdHRyaWJ1dGUpOiBGaWx0ZXJTb3J0RnVuY3Rpb24gPT4ge1xuICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwicHJpY2VcIikge1xuICAgIHJldHVybiAoYSwgYikgPT4gTnVtYmVyKGEuZmlsdGVySXRlbUlkKSAtIE51bWJlcihiLmZpbHRlckl0ZW1JZCk7XG4gIH1cbiAgaWYgKGZpbHRlckNvbmZpZy50eXBlID09PSBcImR5bmFtaWNcIikge1xuICAgIGlmIChmaWx0ZXJDb25maWcuc29ydGluZy50eXBlID09PSBcImFscGhhYmV0aWNcIikge1xuICAgICAgcmV0dXJuIChhLCBiKSA9PiBhLmRpc3BsYXlOYW1lLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5TmFtZSk7XG4gICAgfVxuICAgIC8vIFNvcnQgYnkgdGhlIG51bWJlciBvZiBwcm9kdWN0cywgaWYgdGhleSBtYXRjaCwgc29ydCBieSBhbHBoYWJldGljYWxcbiAgICBpZiAoZmlsdGVyQ29uZmlnLnNvcnRpbmcudHlwZSA9PT0gXCJwcm9kdWN0Q291bnRcIikge1xuICAgICAgcmV0dXJuIChhLCBiKSA9PlxuICAgICAgICBhLnByb2R1Y3RDb3VudCA9PT0gYi5wcm9kdWN0Q291bnRcbiAgICAgICAgICA/IGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKVxuICAgICAgICAgIDogYi5wcm9kdWN0Q291bnQgLSBhLnByb2R1Y3RDb3VudDtcbiAgICB9XG4gICAgaWYgKGZpbHRlckNvbmZpZy5zb3J0aW5nLnR5cGUgPT09IFwiY3VzdG9tXCIpIHtcbiAgICAgIGNvbnN0IHNvcnRlZEtleXMgPSBmaWx0ZXJDb25maWcuc29ydGluZy5tYXA7XG4gICAgICByZXR1cm4gKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0gJiYgc29ydGVkS2V5c1tiLmRpc3BsYXlOYW1lXSkge1xuICAgICAgICAgIC8vIElmIGJvdGggYXJlIGluIHRoZSBzb3J0ZWRLZXlzLCBzb3J0IGJ5IHRoZSBpbmRleFxuICAgICAgICAgIHJldHVybiBzb3J0ZWRLZXlzW2EuZGlzcGxheU5hbWVdIC0gc29ydGVkS2V5c1tiLmRpc3BsYXlOYW1lXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBvbmx5ICdhJyBpcyBpbiB0aGUgc29ydGVkS2V5cywgcHV0IGl0IGJlZm9yZSB0aGUgb3RoZXJcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0pIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgb25seSAnYicgaXMgaW4gdGhlIHNvcnRlZEtleXMsIHB1dCBpdCBiZWZvcmUgdGhlIG90aGVyXG4gICAgICAgIGlmIChzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgbmVpdGhlciBhcmUgaW4gdGhlIHNvcnRlZEtleXMsIHNvcnQgYnkgcHJvZHVjdENvdW50XG4gICAgICAgIHJldHVybiBiLnByb2R1Y3RDb3VudCAtIGEucHJvZHVjdENvdW50O1xuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWFsaWQgc2VhcmNoIGZpbHRlciBjb25maWd1cmF0aW9uXCIpO1xufTtcblxuZXhwb3J0IGNsYXNzIFByb2R1Y3RGaWx0ZXJzIHtcbiAgc3RhdGljIGdldEZpbHRlcnNGb3JQcm9kdWN0cyhcbiAgICBwcm9kdWN0czogUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlc1tcImF0dHJpYnV0ZXNcIl1bXSxcbiAgICBmaWx0ZXJDb25maWdzOiBGaWx0ZXJBdHRyaWJ1dGVbXSxcbiAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnM6IFNlbGVjdGVkRmlsdGVyT3B0aW9uW11cbiAgKTogQ2hhdFNlYXJjaEZpbHRlcltdIHtcbiAgICBpZiAoIXByb2R1Y3RzIHx8IHByb2R1Y3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbHRlcnMgPSBmaWx0ZXJDb25maWdzLm1hcCgoZmlsdGVyQ29uZmlnKSA9PlxuICAgICAgcHJvZHVjdHMucmVkdWNlKFxuICAgICAgICAoYWNjLCBwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgLy8gUHJpY2UgaGFzIHNwZWNpYWwgaGFuZGxpbmcgZm9yIHRoZSBmaWx0ZXJzXG4gICAgICAgICAgaWYgKGZpbHRlckNvbmZpZy50eXBlID09PSBcInByaWNlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHByaWNlQnVja2V0ID0gZ2V0UHJpY2VCdWNrZXQoXG4gICAgICAgICAgICAgIHByb2R1Y3Quc2FsZVByaWNlID8/IHByb2R1Y3Qub3JpZ2luYWxQcmljZSA/PyAwLFxuICAgICAgICAgICAgICBmaWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBhY2MubWFwW3ByaWNlQnVja2V0XSA/PyB7XG4gICAgICAgICAgICAgIGZpbHRlckl0ZW1JZDogcHJpY2VCdWNrZXQsXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBgJCR7cHJpY2VCdWNrZXR9LSQke1xuICAgICAgICAgICAgICAgIHByaWNlQnVja2V0ICsgZmlsdGVyQ29uZmlnLmJ1Y2tldFNpemVcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhY2MubWFwW3ByaWNlQnVja2V0XSA9IHtcbiAgICAgICAgICAgICAgLi4uY3VycmVudCxcbiAgICAgICAgICAgICAgcHJvZHVjdENvdW50OiBjdXJyZW50LnByb2R1Y3RDb3VudCArIDEsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBBc3N1bWUgdGhhdCB0aGUgXCJhdHRyaWJ1dGVcIiBpcyBhbiBhcnJheSBvZiB2YWx1ZXNcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZXMgPVxuICAgICAgICAgICAgKHByb2R1Y3QuZmlsdGVycyAmJiBwcm9kdWN0LmZpbHRlcnM/LltmaWx0ZXJDb25maWcuYXR0cmlidXRlXSkgPz9cbiAgICAgICAgICAgIFtdO1xuICAgICAgICAgIGlmIChpc1N0cmluZ0FycmF5KGF0dHJpYnV0ZVZhbHVlcykpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gYWNjLm1hcFtub3JtYWxpemVkVmFsXSA/PyB7XG4gICAgICAgICAgICAgICAgZmlsdGVySXRlbUlkOiBub3JtYWxpemVkVmFsLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBmb3JtYXRGaWx0ZXJEaXNwbGF5TmFtZSh2YWwpLCAvLyBLZWVwIG9yaWdpbmFsIGNhc2UgZm9yIGRpc3BsYXlcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IDAsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGFjYy5tYXBbbm9ybWFsaXplZFZhbF0gPSB7XG4gICAgICAgICAgICAgICAgLi4uY3VycmVudCxcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGN1cnJlbnQucHJvZHVjdENvdW50ICsgMSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWx0ZXJDb25maWcsXG4gICAgICAgICAgbWFwOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBDaGF0U2VhcmNoRmlsdGVySXRlbT4sXG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuXG4gICAgY29uc3QgdHJhbnNmb3JtZWRGaWx0ZXJzOiBDaGF0U2VhcmNoRmlsdGVyW10gPSBmaWx0ZXJzLm1hcChcbiAgICAgICh7IGZpbHRlckNvbmZpZywgbWFwIH0pID0+ICh7XG4gICAgICAgIGZpbHRlcklkOiBmaWx0ZXJDb25maWcuZmlsdGVySWQsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBmaWx0ZXJDb25maWcuZGlzcGxheU5hbWUsXG4gICAgICAgIGl0ZW1zOiBPYmplY3QudmFsdWVzKG1hcClcbiAgICAgICAgICAubWFwKChmaWx0ZXIpID0+ICh7XG4gICAgICAgICAgICBmaWx0ZXJJdGVtSWQ6IGZpbHRlci5maWx0ZXJJdGVtSWQsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogZmlsdGVyLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgcHJvZHVjdENvdW50OiBmaWx0ZXIucHJvZHVjdENvdW50LFxuICAgICAgICAgICAgaXNTZWxlY3RlZDpcbiAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgIG9wdGlvbi5pZCA9PT1cbiAgICAgICAgICAgICAgICAgIGAke2ZpbHRlckNvbmZpZy5maWx0ZXJJZH06JHtmaWx0ZXIuZmlsdGVySXRlbUlkfWBcbiAgICAgICAgICAgICAgKSA/PyBmYWxzZSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgICAuc29ydChzb3J0RmlsdGVyKGZpbHRlckNvbmZpZykpLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIFsuLi50cmFuc2Zvcm1lZEZpbHRlcnNdO1xuICB9XG5cbiAgc3RhdGljIGZpbHRlclByb2R1Y3RzKFxuICAgIHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzW1wiYXR0cmlidXRlc1wiXVtdLFxuICAgIGZpbHRlckNvbmZpZ3M6IEZpbHRlckF0dHJpYnV0ZVtdLFxuICAgIHNlbGVjdGVkRmlsdGVyT3B0aW9uczogU2VsZWN0ZWRGaWx0ZXJPcHRpb25bXSxcbiAgICBhZGRpdGl2ZUR5bmFtaWNGaWx0ZXJzID0gZmFsc2UgLy8gU2V0IHRoaXMgdG8gdHJ1ZSB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBiZWhhdmlvciB3aGVyZSBzdGFja2luZyBmaWx0ZXJzIGhhcyBPUiBsb2dpYy5cbiAgKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gZmlsdGVyQ29uZmlnc1xuICAgICAgLm1hcCgoZmlsdGVyQ29uZmlnKSA9PiAoe1xuICAgICAgICBmaWx0ZXJDb25maWcsXG4gICAgICAgIGhhc1NlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlcklkID09PSBmaWx0ZXJDb25maWcuZmlsdGVySWRcbiAgICAgICAgKSxcbiAgICAgIH0pKVxuICAgICAgLmZpbHRlcigoeyBoYXNTZWxlY3RlZE9wdGlvbnMgfSkgPT4gaGFzU2VsZWN0ZWRPcHRpb25zKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLmxlbmd0aCA9PT0gMFxuICAgICAgPyBwcm9kdWN0c1xuICAgICAgOiBwcm9kdWN0cy5maWx0ZXIoKHByb2R1Y3QpID0+XG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzLnJlZHVjZSgoYWNjLCBzZWxlY3RlZEZpbHRlcikgPT4ge1xuICAgICAgICAgICAgLy8gRmluZGluZyBvbmUgZmFsc2UgcmVtb3ZlcyB0aGUgcHJvZHVjdFxuICAgICAgICAgICAgaWYgKCFhY2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFByaWNlIGlzIHNwZWNpYWxcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcudHlwZSA9PT0gXCJwcmljZVwiKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByaWNlQnVja2V0ID0gZ2V0UHJpY2VCdWNrZXQoXG4gICAgICAgICAgICAgICAgcHJvZHVjdC5zYWxlUHJpY2UgPz8gcHJvZHVjdC5vcmlnaW5hbFByaWNlID8/IDAsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXIuZmlsdGVyQ29uZmlnLmJ1Y2tldFNpemVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlc1ByaWNlRmlsdGVyID0gc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmlkID09PSBgcHJpY2U6JHtwcmljZUJ1Y2tldH1gXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghbWF0Y2hlc1ByaWNlRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcudHlwZSA9PT0gXCJkeW5hbWljXCIpIHtcbiAgICAgICAgICAgICAgLy8gZHluYW1pYyBpcyBtaXNsZWFkaW5nIGhlcmUuIEl0cyBub3QganVzdCBkeW5hbWljIGZpbHRlcnMsIGJ1dCBzdGF0aWMgZmlsdGVycyBiZWNhdXNlIHRoZSBjb25maWcgY291bnRzIHN0YXRpYyBmaWx0ZXJzIGFzIHR5cGU6IGR5bmFtaWMuXG4gICAgICAgICAgICAgIGNvbnN0IHsgZmlsdGVySWQsIGF0dHJpYnV0ZSB9ID0gc2VsZWN0ZWRGaWx0ZXIuZmlsdGVyQ29uZmlnO1xuICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZXMgPSBwcm9kdWN0LmZpbHRlcnM/LlthdHRyaWJ1dGVdO1xuXG4gICAgICAgICAgICAgIGlmICghaXNTdHJpbmdBcnJheShhdHRyaWJ1dGVWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgaXNEeW5hbWljRmlsdGVyID1cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcuYXR0cmlidXRlID09PSBcImR5bmFtaWNcIjsgLy8gVHJ1ZSBkeW5hbWljIGZpbHRlcnMgKHRoZSBvbmVzIHRoYXQgYXBwZWFyIGJlbmVhdGggdGhlIHNlYXJjaCBpbnB1dClcbiAgICAgICAgICAgICAgY29uc3QgaXNTdWJ0cmFjdGl2ZUxvZ2ljID1cbiAgICAgICAgICAgICAgICBpc0R5bmFtaWNGaWx0ZXIgJiYgIWFkZGl0aXZlRHluYW1pY0ZpbHRlcnM7XG5cbiAgICAgICAgICAgICAgaWYgKGlzU3VidHJhY3RpdmVMb2dpYykge1xuICAgICAgICAgICAgICAgIC8vIEFORCBsb2dpYyBmb3Igc3VidHJhY3RpdmUgZHluYW1pYyBmaWx0ZXJzIGFuZCBiZXR3ZWVuIHN0YXRpYyBmaWx0ZXIgY2F0ZWdvcmllc1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uc0ZvclRoaXNGaWx0ZXIgPSBzZWxlY3RlZEZpbHRlck9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlcklkID09PSBmaWx0ZXJJZClcbiAgICAgICAgICAgICAgICAgIC5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlckl0ZW1JZC50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc0FsbFNlbGVjdGVkVmFsdWVzID0gc2VsZWN0ZWRPcHRpb25zRm9yVGhpc0ZpbHRlci5ldmVyeShcbiAgICAgICAgICAgICAgICAgIChzZWxlY3RlZFZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZXMuc29tZShcbiAgICAgICAgICAgICAgICAgICAgICAodmFsKSA9PiB2YWwudG9Mb3dlckNhc2UoKSA9PT0gc2VsZWN0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmICghaGFzQWxsU2VsZWN0ZWRWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gT1IgbG9naWMgZm9yIHN0YXRpYyBmaWx0ZXJzIGluIHRoZSBzaWRlYmFyIHdpdGhpbiBhIGNhdGVnb3J5LlxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBhdHRyaWJ1dGVWYWx1ZXMuc29tZSgodmFsKSA9PlxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi5pZCA9PT0gYCR7ZmlsdGVySWR9OiR7dmFsLnRvTG93ZXJDYXNlKCl9YFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9LCB0cnVlKVxuICAgICAgICApO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGluZyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdFNvcnRlciB7XG4gIHN0YXRpYyBzb3J0KHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ11bXSwgc29ydGluZzogUHJvZHVjdFNvcnRpbmcpIHtcbiAgICBzd2l0Y2ggKHNvcnRpbmcpIHtcbiAgICAgIGNhc2UgUHJvZHVjdFNvcnRpbmcuUFJJQ0VfQVNDOlxuICAgICAgICByZXR1cm4gWy4uLnByb2R1Y3RzXS5zb3J0KFxuICAgICAgICAgIChwMSwgcDIpID0+XG4gICAgICAgICAgICAocDEuc2FsZVByaWNlID8/IHAxLm9yaWdpbmFsUHJpY2UgPz8gMCkgLSAocDIuc2FsZVByaWNlID8/IHAyLm9yaWdpbmFsUHJpY2UgPz8gMCksXG4gICAgICAgICk7XG5cbiAgICAgIGNhc2UgUHJvZHVjdFNvcnRpbmcuUFJJQ0VfREVTQzpcbiAgICAgICAgcmV0dXJuIFsuLi5wcm9kdWN0c10uc29ydChcbiAgICAgICAgICAocDEsIHAyKSA9PlxuICAgICAgICAgICAgKHAyLnNhbGVQcmljZSA/PyBwMi5vcmlnaW5hbFByaWNlID8/IDApIC0gKHAxLnNhbGVQcmljZSA/PyBwMS5vcmlnaW5hbFByaWNlID8/IDApLFxuICAgICAgICApO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gcHJvZHVjdHM7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBhdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgUHJvZHVjdFNvcnRpbmcgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IFByb2R1Y3RGaWx0ZXJzIH0gZnJvbSAnLi9wcm9kdWN0RmlsdGVycyc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGVyIH0gZnJvbSAnLi9wcm9kdWN0U29ydGVyJztcbmltcG9ydCB7IG5ld09yZ0NvbmZpZ0F0b20gfSBmcm9tICcuLi9vcmcnO1xuaW1wb3J0IHsgZ2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uIH0gZnJvbSAnLi9zZWFyY2hTZXJ2aWNlQWRhcHRlcic7XG5pbXBvcnQgeyBTZWFyY2hQYXJhbXMsIFNlYXJjaFJlc3VsdCB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RlZEZpbHRlck9wdGlvbiA9IHtcbiAgaWQ6IHN0cmluZzsgLy8gXCJmaWx0ZXJJZDpmaWx0ZXJJdGVtSWRcIiAtIG1haW50YWlucyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBjb21wYXJpc29uc1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBmaWx0ZXJJZDogc3RyaW5nOyAvLyBGaWx0ZXIgY2F0ZWdvcnlcbiAgZmlsdGVySXRlbUlkOiBzdHJpbmc7IC8vIEZpbHRlciB2YWx1ZVxufTtcblxuaW50ZXJmYWNlIFNlYXJjaFN0YXRlIHtcbiAgZGF0YTogU2VhcmNoUmVzdWx0IHwgbnVsbDtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgZXJyb3I6IHN0cmluZyB8IG51bGw7XG4gIGxhc3RRdWVyeTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGNvbnN0IHNlYXJjaEF0b20gPSBhdG9tPFNlYXJjaFN0YXRlPih7XG4gIGRhdGE6IG51bGwsXG4gIGxvYWRpbmc6IGZhbHNlLFxuICBlcnJvcjogbnVsbCxcbiAgbGFzdFF1ZXJ5OiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hQcm9kdWN0U29ydGluZ0F0b20gPSBhdG9tPFByb2R1Y3RTb3J0aW5nPihQcm9kdWN0U29ydGluZy5GRUFUVVJFRCk7XG5leHBvcnQgY29uc3Qgc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSA9IGF0b208U2VsZWN0ZWRGaWx0ZXJPcHRpb25bXT4oW10pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRmlsdGVyT3B0aW9uID0gKFxuICBmaWx0ZXJJZDogc3RyaW5nLFxuICBmaWx0ZXJJdGVtSWQ6IHN0cmluZyxcbiAgZGlzcGxheU5hbWU6IHN0cmluZyxcbik6IFNlbGVjdGVkRmlsdGVyT3B0aW9uID0+ICh7XG4gIGlkOiBgJHtmaWx0ZXJJZH06JHtmaWx0ZXJJdGVtSWR9YCxcbiAgZGlzcGxheU5hbWUsXG4gIGZpbHRlcklkLFxuICBmaWx0ZXJJdGVtSWQsXG59KTtcblxuY29uc3QgaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tID0gYXRvbTx7XG4gIGlkOiBzdHJpbmcgfCBudWxsO1xuICBxdWVyeTogc3RyaW5nIHwgbnVsbDtcbn0+KHtcbiAgaWQ6IG51bGwsXG4gIHF1ZXJ5OiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hQYXJhbXNBdG9tID0gYXRvbShcbiAgKGdldCkgPT4gZ2V0KGludGVybmFsU2VhcmNoUGFyYW1zQXRvbSksXG4gIChfLCBzZXQsIHZhbHVlOiB7IGlkOiBzdHJpbmcgfCBudWxsOyBxdWVyeTogc3RyaW5nIHwgbnVsbCB9KSA9PiB7XG4gICAgc2V0KGludGVybmFsU2VhcmNoUGFyYW1zQXRvbSwgdmFsdWUpO1xuICB9LFxuKTtcbmV4cG9ydCBjb25zdCBpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSA9IGF0b208Ym9vbGVhbj4oZmFsc2UpO1xuXG5leHBvcnQgY29uc3Qgc2VhcmNoU3lzdGVtQXRvbSA9IGF0b20oXG4gIChnZXQpID0+IGdldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSksXG4gIChnZXQsIHNldCwgdmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAodmFsdWUgPT09IGdldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3RhdGVDaGFuZ2VIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgIGlmIChwYXJhbXMuZ2V0KCdlcycpID09PSAndHJ1ZScpIHtcbiAgICAgICAgY29uc3QgaWQgPSBwYXJhbXMuZ2V0KCdlc2knKTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSBwYXJhbXMuZ2V0KCdlc3EnKTtcbiAgICAgICAgc2V0KHNlYXJjaFBhcmFtc0F0b20sIHsgaWQsIHF1ZXJ5IH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0KHNlYXJjaFBhcmFtc0F0b20sIHsgaWQ6IG51bGwsIHF1ZXJ5OiBudWxsIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBzZXQoaW50ZXJuYWxTZWFyY2hTeXN0ZW1TdGF0ZUF0b20sIHRydWUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgc3RhdGVDaGFuZ2VIYW5kbGVyKTtcbiAgICAgIC8vIEFsc28gdHJpZ2dlciB0aGUgaGFzaCBjaGFuZ2UgaGFuZGxlciB0byBzZXQgdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgIHN0YXRlQ2hhbmdlSGFuZGxlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXQoaW50ZXJuYWxTZWFyY2hTeXN0ZW1TdGF0ZUF0b20sIGZhbHNlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHN0YXRlQ2hhbmdlSGFuZGxlcik7XG4gICAgfVxuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlcmVkU2VhcmNoUHJvZHVjdHNBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IHNlYXJjaERhdGEgPSBnZXQoc2VhcmNoQXRvbSkuZGF0YTtcbiAgY29uc3Qgc29ydGluZyA9IGdldChzZWFyY2hQcm9kdWN0U29ydGluZ0F0b20pO1xuICBjb25zdCBzZWxlY3RlZEZpbHRlcnMgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIGNvbnN0IG5ld09yZ0NvbmZpZyA9IGdldChuZXdPcmdDb25maWdBdG9tKTtcblxuICBpZiAoIXNlYXJjaERhdGE/LnByb2R1Y3RzIHx8ICFuZXdPcmdDb25maWc/LmZyb250ZW5kQ29uZmlnPy51aUNvbmZpZ3M/LnNlYXJjaENvbmZpZykgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IGZpbHRlcmVkUHJvZHVjdHMgPSBQcm9kdWN0RmlsdGVycy5maWx0ZXJQcm9kdWN0cyhcbiAgICBzZWFyY2hEYXRhLnByb2R1Y3RzLFxuICAgIG5ld09yZ0NvbmZpZy5mcm9udGVuZENvbmZpZy51aUNvbmZpZ3Muc2VhcmNoQ29uZmlnLnNlYXJjaEZpbHRlckNvbmZpZyxcbiAgICBzZWxlY3RlZEZpbHRlcnMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuYWRkaXRpdmVEeW5hbWljRmlsdGVycyxcbiAgKTtcblxuICByZXR1cm4gUHJvZHVjdFNvcnRlci5zb3J0KGZpbHRlcmVkUHJvZHVjdHMsIHNvcnRpbmcpO1xufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hGaWx0ZXJzQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBzZWFyY2hEYXRhID0gZ2V0KHNlYXJjaEF0b20pLmRhdGE7XG4gIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGlmICghc2VhcmNoRGF0YT8ucHJvZHVjdHMgfHwgIW5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnKSByZXR1cm4gW107XG5cbiAgcmV0dXJuIFByb2R1Y3RGaWx0ZXJzLmdldEZpbHRlcnNGb3JQcm9kdWN0cyhcbiAgICBzZWFyY2hEYXRhLnByb2R1Y3RzLFxuICAgIG5ld09yZ0NvbmZpZy5mcm9udGVuZENvbmZpZy51aUNvbmZpZ3Muc2VhcmNoQ29uZmlnLnNlYXJjaEZpbHRlckNvbmZpZyxcbiAgICBzZWxlY3RlZEZpbHRlcnMsXG4gICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGFkZFNlYXJjaEZpbHRlckF0b20gPSBhdG9tKG51bGwsIChnZXQsIHNldCwgZmlsdGVyOiBTZWxlY3RlZEZpbHRlck9wdGlvbikgPT4ge1xuICBjb25zdCBjdXJyZW50ID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBpZiAoIWN1cnJlbnQuc29tZSgoZikgPT4gZi5pZCA9PT0gZmlsdGVyLmlkKSkge1xuICAgIHNldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tLCBbLi4uY3VycmVudCwgZmlsdGVyXSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU2VhcmNoRmlsdGVyQXRvbSA9IGF0b20obnVsbCwgKGdldCwgc2V0LCBmaWx0ZXJJZDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnQgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIHNldChcbiAgICBzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tLFxuICAgIGN1cnJlbnQuZmlsdGVyKChmKSA9PiBmLmlkICE9PSBmaWx0ZXJJZCksXG4gICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyU2VhcmNoRmlsdGVyc0F0b20gPSBhdG9tKG51bGwsIChfLCBzZXQpID0+IHtcbiAgc2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sIFtdKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgcGVyZm9ybVNlYXJjaEF0b20gPSBhdG9tKFxuICBudWxsLFxuICBhc3luYyAoZ2V0LCBzZXQsIHBhcmFtczogU2VhcmNoUGFyYW1zLCBhbGxvd1JlZGlyZWN0ID0gZmFsc2UpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBnZXQoc2VhcmNoQXRvbSk7XG4gICAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuICAgIGNvbnN0IHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybCA9XG4gICAgICBuZXdPcmdDb25maWc/LmZyb250ZW5kQ29uZmlnPy51aUNvbmZpZ3M/LnNlYXJjaENvbmZpZz8ucmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsO1xuXG4gICAgaWYgKGFsbG93UmVkaXJlY3QgJiYgcmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsKSB7XG4gICAgICBjb25zdCByZWRpcmVjdFVybCA9IG5ldyBVUkwocmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsKTtcbiAgICAgIHJlZGlyZWN0VXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzJywgJ3RydWUnKTtcbiAgICAgIHJlZGlyZWN0VXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzcScsIHBhcmFtcy5xdWVyeSk7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlZGlyZWN0VXJsLnRvU3RyaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVwZGF0ZSBVUkwgYW5kIG1hbnVhbGx5IHRyaWdnZXIgc3RhdGUgY2hhbmdlIChzaW5jZSBwdXNoU3RhdGUgZG9lc24ndCB0cmlnZ2VyIHBvcHN0YXRlKVxuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnZXMnLCAndHJ1ZScpO1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzcScsIHBhcmFtcy5xdWVyeSk7XG4gICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe30sICcnLCB1cmwpO1xuXG4gICAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHBhZ2UgdmFyaWFudCByZS1ldmFsdWF0aW9uIGJ5IGRpc3BhdGNoaW5nIGEgcG9wc3RhdGUgZXZlbnRcbiAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgcGFnZSB2YXJpYW50IHN5c3RlbSBkZXRlY3RzIHRoZSBVUkwgY2hhbmdlIGFuZCBtb3VudHMgc2VhcmNoIHJlc3VsdHNcbiAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBQb3BTdGF0ZUV2ZW50KCdwb3BzdGF0ZScsIHsgc3RhdGU6IHt9IH0pKTtcbiAgICB9XG5cbiAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHBhZ2UgdmFyaWFudCByZS1ldmFsdWF0aW9uIGJ5IGRpc3BhdGNoaW5nIGEgcG9wc3RhdGUgZXZlbnRcbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhlIHBhZ2UgdmFyaWFudCBzeXN0ZW0gZGV0ZWN0cyB0aGUgVVJMIGNoYW5nZSBhbmQgbW91bnRzIHNlYXJjaCByZXN1bHRzXG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFBvcFN0YXRlRXZlbnQoJ3BvcHN0YXRlJywgeyBzdGF0ZToge30gfSkpO1xuICAgIGlmIChjdXJyZW50U3RhdGUubG9hZGluZykge1xuICAgICAgcmV0dXJuOyAvLyBQcmV2ZW50IGNvbmN1cnJlbnQgc2VhcmNoZXNcbiAgICB9XG5cbiAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgZGF0YTogbnVsbCxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBlcnJvcjogbnVsbCxcbiAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgIH0pO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZWFyY2hTZXJ2aWNlRnVuY3Rpb24gPSBnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNlYXJjaFNlcnZpY2VGdW5jdGlvbihwYXJhbXMpO1xuICAgICAgc2V0KHNlYXJjaEF0b20sIHtcbiAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnO1xuICAgICAgc2V0KHNlYXJjaEF0b20sIHtcbiAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfVxuICB9LFxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBLE1BQU0sa0JBQWtCLE9BQWUsZUFBdUI7QUFFNUQsUUFEZSxL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
233
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLU9XS0thUVFqLmpzIiwibmFtZXMiOlsiZXJyb3I6IHVua25vd24iXSwic291cmNlcyI6WyIuLi9zcmMvYXRvbXMvc2VhcmNoL3Byb2R1Y3RGaWx0ZXJzLnRzIiwiLi4vc3JjL2F0b21zL3NlYXJjaC9wcm9kdWN0U29ydGVyLnRzIiwiLi4vc3JjL2F0b21zL3NlYXJjaC9zZWFyY2hBUEkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhdFNlYXJjaEZpbHRlciwgQ2hhdFNlYXJjaEZpbHRlckl0ZW0gfSBmcm9tIFwiQGVudml2ZS1haS90eXBlc1wiO1xuaW1wb3J0IHsgRmlsdGVyQXR0cmlidXRlLCBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSBcInNyYy90eXBlc1wiO1xuaW1wb3J0IHsgU2VsZWN0ZWRGaWx0ZXJPcHRpb24gfSBmcm9tIFwic3JjL2F0b21zL3NlYXJjaC9zZWFyY2hBUElcIjtcbmltcG9ydCB7IGZvcm1hdEZpbHRlckRpc3BsYXlOYW1lIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuY29uc3QgZ2V0UHJpY2VCdWNrZXQgPSAocHJpY2U6IG51bWJlciwgYnVja2V0U2l6ZTogbnVtYmVyKSA9PiB7XG4gIGNvbnN0IGJ1Y2tldCA9IE1hdGguZmxvb3IocHJpY2UgLyBidWNrZXRTaXplKTtcbiAgcmV0dXJuIGJ1Y2tldCAqIGJ1Y2tldFNpemU7XG59O1xuXG5jb25zdCBpc1N0cmluZ0FycmF5ID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgc3RyaW5nW10gPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB2YWx1ZS5ldmVyeSgoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpO1xufTtcblxudHlwZSBGaWx0ZXJTb3J0RnVuY3Rpb24gPSAoXG4gIGE6IENoYXRTZWFyY2hGaWx0ZXJJdGVtLFxuICBiOiBDaGF0U2VhcmNoRmlsdGVySXRlbVxuKSA9PiBudW1iZXI7XG5cbmNvbnN0IHNvcnRGaWx0ZXIgPSAoZmlsdGVyQ29uZmlnOiBGaWx0ZXJBdHRyaWJ1dGUpOiBGaWx0ZXJTb3J0RnVuY3Rpb24gPT4ge1xuICBpZiAoZmlsdGVyQ29uZmlnLnR5cGUgPT09IFwicHJpY2VcIikge1xuICAgIHJldHVybiAoYSwgYikgPT4gTnVtYmVyKGEuZmlsdGVySXRlbUlkKSAtIE51bWJlcihiLmZpbHRlckl0ZW1JZCk7XG4gIH1cbiAgaWYgKGZpbHRlckNvbmZpZy50eXBlID09PSBcImR5bmFtaWNcIikge1xuICAgIGlmIChmaWx0ZXJDb25maWcuc29ydGluZy50eXBlID09PSBcImFscGhhYmV0aWNcIikge1xuICAgICAgcmV0dXJuIChhLCBiKSA9PiBhLmRpc3BsYXlOYW1lLmxvY2FsZUNvbXBhcmUoYi5kaXNwbGF5TmFtZSk7XG4gICAgfVxuICAgIC8vIFNvcnQgYnkgdGhlIG51bWJlciBvZiBwcm9kdWN0cywgaWYgdGhleSBtYXRjaCwgc29ydCBieSBhbHBoYWJldGljYWxcbiAgICBpZiAoZmlsdGVyQ29uZmlnLnNvcnRpbmcudHlwZSA9PT0gXCJwcm9kdWN0Q291bnRcIikge1xuICAgICAgcmV0dXJuIChhLCBiKSA9PlxuICAgICAgICBhLnByb2R1Y3RDb3VudCA9PT0gYi5wcm9kdWN0Q291bnRcbiAgICAgICAgICA/IGEuZGlzcGxheU5hbWUubG9jYWxlQ29tcGFyZShiLmRpc3BsYXlOYW1lKVxuICAgICAgICAgIDogYi5wcm9kdWN0Q291bnQgLSBhLnByb2R1Y3RDb3VudDtcbiAgICB9XG4gICAgaWYgKGZpbHRlckNvbmZpZy5zb3J0aW5nLnR5cGUgPT09IFwiY3VzdG9tXCIpIHtcbiAgICAgIGNvbnN0IHNvcnRlZEtleXMgPSBmaWx0ZXJDb25maWcuc29ydGluZy5tYXA7XG4gICAgICByZXR1cm4gKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0gJiYgc29ydGVkS2V5c1tiLmRpc3BsYXlOYW1lXSkge1xuICAgICAgICAgIC8vIElmIGJvdGggYXJlIGluIHRoZSBzb3J0ZWRLZXlzLCBzb3J0IGJ5IHRoZSBpbmRleFxuICAgICAgICAgIHJldHVybiBzb3J0ZWRLZXlzW2EuZGlzcGxheU5hbWVdIC0gc29ydGVkS2V5c1tiLmRpc3BsYXlOYW1lXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBvbmx5ICdhJyBpcyBpbiB0aGUgc29ydGVkS2V5cywgcHV0IGl0IGJlZm9yZSB0aGUgb3RoZXJcbiAgICAgICAgaWYgKHNvcnRlZEtleXNbYS5kaXNwbGF5TmFtZV0pIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgb25seSAnYicgaXMgaW4gdGhlIHNvcnRlZEtleXMsIHB1dCBpdCBiZWZvcmUgdGhlIG90aGVyXG4gICAgICAgIGlmIChzb3J0ZWRLZXlzW2IuZGlzcGxheU5hbWVdKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgbmVpdGhlciBhcmUgaW4gdGhlIHNvcnRlZEtleXMsIHNvcnQgYnkgcHJvZHVjdENvdW50XG4gICAgICAgIHJldHVybiBiLnByb2R1Y3RDb3VudCAtIGEucHJvZHVjdENvdW50O1xuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWFsaWQgc2VhcmNoIGZpbHRlciBjb25maWd1cmF0aW9uXCIpO1xufTtcblxuZXhwb3J0IGNsYXNzIFByb2R1Y3RGaWx0ZXJzIHtcbiAgc3RhdGljIGdldEZpbHRlcnNGb3JQcm9kdWN0cyhcbiAgICBwcm9kdWN0czogUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlc1tcImF0dHJpYnV0ZXNcIl1bXSxcbiAgICBmaWx0ZXJDb25maWdzOiBGaWx0ZXJBdHRyaWJ1dGVbXSxcbiAgICBzZWxlY3RlZEZpbHRlck9wdGlvbnM6IFNlbGVjdGVkRmlsdGVyT3B0aW9uW11cbiAgKTogQ2hhdFNlYXJjaEZpbHRlcltdIHtcbiAgICBpZiAoIXByb2R1Y3RzIHx8IHByb2R1Y3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbHRlcnMgPSBmaWx0ZXJDb25maWdzLm1hcCgoZmlsdGVyQ29uZmlnKSA9PlxuICAgICAgcHJvZHVjdHMucmVkdWNlKFxuICAgICAgICAoYWNjLCBwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgLy8gUHJpY2UgaGFzIHNwZWNpYWwgaGFuZGxpbmcgZm9yIHRoZSBmaWx0ZXJzXG4gICAgICAgICAgaWYgKGZpbHRlckNvbmZpZy50eXBlID09PSBcInByaWNlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHByaWNlQnVja2V0ID0gZ2V0UHJpY2VCdWNrZXQoXG4gICAgICAgICAgICAgIHByb2R1Y3Quc2FsZVByaWNlID8/IHByb2R1Y3Qub3JpZ2luYWxQcmljZSA/PyAwLFxuICAgICAgICAgICAgICBmaWx0ZXJDb25maWcuYnVja2V0U2l6ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBhY2MubWFwW3ByaWNlQnVja2V0XSA/PyB7XG4gICAgICAgICAgICAgIGZpbHRlckl0ZW1JZDogcHJpY2VCdWNrZXQsXG4gICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBgJCR7cHJpY2VCdWNrZXR9LSQke1xuICAgICAgICAgICAgICAgIHByaWNlQnVja2V0ICsgZmlsdGVyQ29uZmlnLmJ1Y2tldFNpemVcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgIHByb2R1Y3RDb3VudDogMCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhY2MubWFwW3ByaWNlQnVja2V0XSA9IHtcbiAgICAgICAgICAgICAgLi4uY3VycmVudCxcbiAgICAgICAgICAgICAgcHJvZHVjdENvdW50OiBjdXJyZW50LnByb2R1Y3RDb3VudCArIDEsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBBc3N1bWUgdGhhdCB0aGUgXCJhdHRyaWJ1dGVcIiBpcyBhbiBhcnJheSBvZiB2YWx1ZXNcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZXMgPVxuICAgICAgICAgICAgKHByb2R1Y3QuZmlsdGVycyAmJiBwcm9kdWN0LmZpbHRlcnM/LltmaWx0ZXJDb25maWcuYXR0cmlidXRlXSkgPz9cbiAgICAgICAgICAgIFtdO1xuICAgICAgICAgIGlmIChpc1N0cmluZ0FycmF5KGF0dHJpYnV0ZVZhbHVlcykpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gYWNjLm1hcFtub3JtYWxpemVkVmFsXSA/PyB7XG4gICAgICAgICAgICAgICAgZmlsdGVySXRlbUlkOiBub3JtYWxpemVkVmFsLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBmb3JtYXRGaWx0ZXJEaXNwbGF5TmFtZSh2YWwpLCAvLyBLZWVwIG9yaWdpbmFsIGNhc2UgZm9yIGRpc3BsYXlcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IDAsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGFjYy5tYXBbbm9ybWFsaXplZFZhbF0gPSB7XG4gICAgICAgICAgICAgICAgLi4uY3VycmVudCxcbiAgICAgICAgICAgICAgICBwcm9kdWN0Q291bnQ6IGN1cnJlbnQucHJvZHVjdENvdW50ICsgMSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWx0ZXJDb25maWcsXG4gICAgICAgICAgbWFwOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBDaGF0U2VhcmNoRmlsdGVySXRlbT4sXG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuXG4gICAgY29uc3QgdHJhbnNmb3JtZWRGaWx0ZXJzOiBDaGF0U2VhcmNoRmlsdGVyW10gPSBmaWx0ZXJzLm1hcChcbiAgICAgICh7IGZpbHRlckNvbmZpZywgbWFwIH0pID0+ICh7XG4gICAgICAgIGZpbHRlcklkOiBmaWx0ZXJDb25maWcuZmlsdGVySWQsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBmaWx0ZXJDb25maWcuZGlzcGxheU5hbWUsXG4gICAgICAgIGl0ZW1zOiBPYmplY3QudmFsdWVzKG1hcClcbiAgICAgICAgICAubWFwKChmaWx0ZXIpID0+ICh7XG4gICAgICAgICAgICBmaWx0ZXJJdGVtSWQ6IGZpbHRlci5maWx0ZXJJdGVtSWQsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogZmlsdGVyLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgcHJvZHVjdENvdW50OiBmaWx0ZXIucHJvZHVjdENvdW50LFxuICAgICAgICAgICAgaXNTZWxlY3RlZDpcbiAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgIG9wdGlvbi5pZCA9PT1cbiAgICAgICAgICAgICAgICAgIGAke2ZpbHRlckNvbmZpZy5maWx0ZXJJZH06JHtmaWx0ZXIuZmlsdGVySXRlbUlkfWBcbiAgICAgICAgICAgICAgKSA/PyBmYWxzZSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgICAuc29ydChzb3J0RmlsdGVyKGZpbHRlckNvbmZpZykpLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgcmV0dXJuIFsuLi50cmFuc2Zvcm1lZEZpbHRlcnNdO1xuICB9XG5cbiAgc3RhdGljIGZpbHRlclByb2R1Y3RzKFxuICAgIHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzW1wiYXR0cmlidXRlc1wiXVtdLFxuICAgIGZpbHRlckNvbmZpZ3M6IEZpbHRlckF0dHJpYnV0ZVtdLFxuICAgIHNlbGVjdGVkRmlsdGVyT3B0aW9uczogU2VsZWN0ZWRGaWx0ZXJPcHRpb25bXSxcbiAgICBhZGRpdGl2ZUR5bmFtaWNGaWx0ZXJzID0gZmFsc2UgLy8gU2V0IHRoaXMgdG8gdHJ1ZSB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBiZWhhdmlvciB3aGVyZSBzdGFja2luZyBmaWx0ZXJzIGhhcyBPUiBsb2dpYy5cbiAgKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gZmlsdGVyQ29uZmlnc1xuICAgICAgLm1hcCgoZmlsdGVyQ29uZmlnKSA9PiAoe1xuICAgICAgICBmaWx0ZXJDb25maWcsXG4gICAgICAgIGhhc1NlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlcklkID09PSBmaWx0ZXJDb25maWcuZmlsdGVySWRcbiAgICAgICAgKSxcbiAgICAgIH0pKVxuICAgICAgLmZpbHRlcigoeyBoYXNTZWxlY3RlZE9wdGlvbnMgfSkgPT4gaGFzU2VsZWN0ZWRPcHRpb25zKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLmxlbmd0aCA9PT0gMFxuICAgICAgPyBwcm9kdWN0c1xuICAgICAgOiBwcm9kdWN0cy5maWx0ZXIoKHByb2R1Y3QpID0+XG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzLnJlZHVjZSgoYWNjLCBzZWxlY3RlZEZpbHRlcikgPT4ge1xuICAgICAgICAgICAgLy8gRmluZGluZyBvbmUgZmFsc2UgcmVtb3ZlcyB0aGUgcHJvZHVjdFxuICAgICAgICAgICAgaWYgKCFhY2MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFByaWNlIGlzIHNwZWNpYWxcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcudHlwZSA9PT0gXCJwcmljZVwiKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByaWNlQnVja2V0ID0gZ2V0UHJpY2VCdWNrZXQoXG4gICAgICAgICAgICAgICAgcHJvZHVjdC5zYWxlUHJpY2UgPz8gcHJvZHVjdC5vcmlnaW5hbFByaWNlID8/IDAsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXIuZmlsdGVyQ29uZmlnLmJ1Y2tldFNpemVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlc1ByaWNlRmlsdGVyID0gc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmlkID09PSBgcHJpY2U6JHtwcmljZUJ1Y2tldH1gXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghbWF0Y2hlc1ByaWNlRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcudHlwZSA9PT0gXCJkeW5hbWljXCIpIHtcbiAgICAgICAgICAgICAgLy8gZHluYW1pYyBpcyBtaXNsZWFkaW5nIGhlcmUuIEl0cyBub3QganVzdCBkeW5hbWljIGZpbHRlcnMsIGJ1dCBzdGF0aWMgZmlsdGVycyBiZWNhdXNlIHRoZSBjb25maWcgY291bnRzIHN0YXRpYyBmaWx0ZXJzIGFzIHR5cGU6IGR5bmFtaWMuXG4gICAgICAgICAgICAgIGNvbnN0IHsgZmlsdGVySWQsIGF0dHJpYnV0ZSB9ID0gc2VsZWN0ZWRGaWx0ZXIuZmlsdGVyQ29uZmlnO1xuICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZXMgPSBwcm9kdWN0LmZpbHRlcnM/LlthdHRyaWJ1dGVdO1xuXG4gICAgICAgICAgICAgIGlmICghaXNTdHJpbmdBcnJheShhdHRyaWJ1dGVWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgaXNEeW5hbWljRmlsdGVyID1cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlci5maWx0ZXJDb25maWcuYXR0cmlidXRlID09PSBcImR5bmFtaWNcIjsgLy8gVHJ1ZSBkeW5hbWljIGZpbHRlcnMgKHRoZSBvbmVzIHRoYXQgYXBwZWFyIGJlbmVhdGggdGhlIHNlYXJjaCBpbnB1dClcbiAgICAgICAgICAgICAgY29uc3QgaXNTdWJ0cmFjdGl2ZUxvZ2ljID1cbiAgICAgICAgICAgICAgICBpc0R5bmFtaWNGaWx0ZXIgJiYgIWFkZGl0aXZlRHluYW1pY0ZpbHRlcnM7XG5cbiAgICAgICAgICAgICAgaWYgKGlzU3VidHJhY3RpdmVMb2dpYykge1xuICAgICAgICAgICAgICAgIC8vIEFORCBsb2dpYyBmb3Igc3VidHJhY3RpdmUgZHluYW1pYyBmaWx0ZXJzIGFuZCBiZXR3ZWVuIHN0YXRpYyBmaWx0ZXIgY2F0ZWdvcmllc1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uc0ZvclRoaXNGaWx0ZXIgPSBzZWxlY3RlZEZpbHRlck9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlcklkID09PSBmaWx0ZXJJZClcbiAgICAgICAgICAgICAgICAgIC5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmZpbHRlckl0ZW1JZC50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc0FsbFNlbGVjdGVkVmFsdWVzID0gc2VsZWN0ZWRPcHRpb25zRm9yVGhpc0ZpbHRlci5ldmVyeShcbiAgICAgICAgICAgICAgICAgIChzZWxlY3RlZFZhbHVlKSA9PlxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZXMuc29tZShcbiAgICAgICAgICAgICAgICAgICAgICAodmFsKSA9PiB2YWwudG9Mb3dlckNhc2UoKSA9PT0gc2VsZWN0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmICghaGFzQWxsU2VsZWN0ZWRWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gT1IgbG9naWMgZm9yIHN0YXRpYyBmaWx0ZXJzIGluIHRoZSBzaWRlYmFyIHdpdGhpbiBhIGNhdGVnb3J5LlxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBhdHRyaWJ1dGVWYWx1ZXMuc29tZSgodmFsKSA9PlxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zLnNvbWUoXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi5pZCA9PT0gYCR7ZmlsdGVySWR9OiR7dmFsLnRvTG93ZXJDYXNlKCl9YFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9LCB0cnVlKVxuICAgICAgICApO1xuICB9XG59XG4iLCJpbXBvcnQgeyBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGluZyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdFNvcnRlciB7XG4gIHN0YXRpYyBzb3J0KHByb2R1Y3RzOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ11bXSwgc29ydGluZzogUHJvZHVjdFNvcnRpbmcpIHtcbiAgICBzd2l0Y2ggKHNvcnRpbmcpIHtcbiAgICAgIGNhc2UgUHJvZHVjdFNvcnRpbmcuUFJJQ0VfQVNDOlxuICAgICAgICByZXR1cm4gWy4uLnByb2R1Y3RzXS5zb3J0KFxuICAgICAgICAgIChwMSwgcDIpID0+XG4gICAgICAgICAgICAocDEuc2FsZVByaWNlID8/IHAxLm9yaWdpbmFsUHJpY2UgPz8gMCkgLSAocDIuc2FsZVByaWNlID8/IHAyLm9yaWdpbmFsUHJpY2UgPz8gMCksXG4gICAgICAgICk7XG5cbiAgICAgIGNhc2UgUHJvZHVjdFNvcnRpbmcuUFJJQ0VfREVTQzpcbiAgICAgICAgcmV0dXJuIFsuLi5wcm9kdWN0c10uc29ydChcbiAgICAgICAgICAocDEsIHAyKSA9PlxuICAgICAgICAgICAgKHAyLnNhbGVQcmljZSA/PyBwMi5vcmlnaW5hbFByaWNlID8/IDApIC0gKHAxLnNhbGVQcmljZSA/PyBwMS5vcmlnaW5hbFByaWNlID8/IDApLFxuICAgICAgICApO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gcHJvZHVjdHM7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBhdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgUHJvZHVjdFNvcnRpbmcgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcbmltcG9ydCB7IFByb2R1Y3RGaWx0ZXJzIH0gZnJvbSAnLi9wcm9kdWN0RmlsdGVycyc7XG5pbXBvcnQgeyBQcm9kdWN0U29ydGVyIH0gZnJvbSAnLi9wcm9kdWN0U29ydGVyJztcbmltcG9ydCB7IG5ld09yZ0NvbmZpZ0F0b20gfSBmcm9tICcuLi9vcmcnO1xuaW1wb3J0IHsgZ2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uIH0gZnJvbSAnLi9zZWFyY2hTZXJ2aWNlQWRhcHRlcic7XG5pbXBvcnQgeyBTZWFyY2hQYXJhbXMsIFNlYXJjaFJlc3VsdCB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RlZEZpbHRlck9wdGlvbiA9IHtcbiAgaWQ6IHN0cmluZzsgLy8gXCJmaWx0ZXJJZDpmaWx0ZXJJdGVtSWRcIiAtIG1haW50YWlucyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBjb21wYXJpc29uc1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICBmaWx0ZXJJZDogc3RyaW5nOyAvLyBGaWx0ZXIgY2F0ZWdvcnlcbiAgZmlsdGVySXRlbUlkOiBzdHJpbmc7IC8vIEZpbHRlciB2YWx1ZVxufTtcblxuaW50ZXJmYWNlIFNlYXJjaFN0YXRlIHtcbiAgZGF0YTogU2VhcmNoUmVzdWx0IHwgbnVsbDtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgZXJyb3I6IHN0cmluZyB8IG51bGw7XG4gIGxhc3RRdWVyeTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGNvbnN0IHNlYXJjaEF0b20gPSBhdG9tPFNlYXJjaFN0YXRlPih7XG4gIGRhdGE6IG51bGwsXG4gIGxvYWRpbmc6IGZhbHNlLFxuICBlcnJvcjogbnVsbCxcbiAgbGFzdFF1ZXJ5OiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hQcm9kdWN0U29ydGluZ0F0b20gPSBhdG9tPFByb2R1Y3RTb3J0aW5nPihQcm9kdWN0U29ydGluZy5GRUFUVVJFRCk7XG5leHBvcnQgY29uc3Qgc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSA9IGF0b208U2VsZWN0ZWRGaWx0ZXJPcHRpb25bXT4oW10pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRmlsdGVyT3B0aW9uID0gKFxuICBmaWx0ZXJJZDogc3RyaW5nLFxuICBmaWx0ZXJJdGVtSWQ6IHN0cmluZyxcbiAgZGlzcGxheU5hbWU6IHN0cmluZyxcbik6IFNlbGVjdGVkRmlsdGVyT3B0aW9uID0+ICh7XG4gIGlkOiBgJHtmaWx0ZXJJZH06JHtmaWx0ZXJJdGVtSWR9YCxcbiAgZGlzcGxheU5hbWUsXG4gIGZpbHRlcklkLFxuICBmaWx0ZXJJdGVtSWQsXG59KTtcblxuY29uc3QgaW50ZXJuYWxTZWFyY2hQYXJhbXNBdG9tID0gYXRvbTx7XG4gIGlkOiBzdHJpbmcgfCBudWxsO1xuICBxdWVyeTogc3RyaW5nIHwgbnVsbDtcbn0+KHtcbiAgaWQ6IG51bGwsXG4gIHF1ZXJ5OiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hQYXJhbXNBdG9tID0gYXRvbShcbiAgKGdldCkgPT4gZ2V0KGludGVybmFsU2VhcmNoUGFyYW1zQXRvbSksXG4gIChfLCBzZXQsIHZhbHVlOiB7IGlkOiBzdHJpbmcgfCBudWxsOyBxdWVyeTogc3RyaW5nIHwgbnVsbCB9KSA9PiB7XG4gICAgc2V0KGludGVybmFsU2VhcmNoUGFyYW1zQXRvbSwgdmFsdWUpO1xuICB9LFxuKTtcbmV4cG9ydCBjb25zdCBpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSA9IGF0b208Ym9vbGVhbj4oZmFsc2UpO1xuXG5leHBvcnQgY29uc3Qgc2VhcmNoU3lzdGVtQXRvbSA9IGF0b20oXG4gIChnZXQpID0+IGdldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSksXG4gIChnZXQsIHNldCwgdmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAodmFsdWUgPT09IGdldChpbnRlcm5hbFNlYXJjaFN5c3RlbVN0YXRlQXRvbSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3RhdGVDaGFuZ2VIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgIGlmIChwYXJhbXMuZ2V0KCdlcycpID09PSAndHJ1ZScpIHtcbiAgICAgICAgY29uc3QgaWQgPSBwYXJhbXMuZ2V0KCdlc2knKTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSBwYXJhbXMuZ2V0KCdlc3EnKTtcbiAgICAgICAgc2V0KHNlYXJjaFBhcmFtc0F0b20sIHsgaWQsIHF1ZXJ5IH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0KHNlYXJjaFBhcmFtc0F0b20sIHsgaWQ6IG51bGwsIHF1ZXJ5OiBudWxsIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBzZXQoaW50ZXJuYWxTZWFyY2hTeXN0ZW1TdGF0ZUF0b20sIHRydWUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgc3RhdGVDaGFuZ2VIYW5kbGVyKTtcbiAgICAgIC8vIEFsc28gdHJpZ2dlciB0aGUgaGFzaCBjaGFuZ2UgaGFuZGxlciB0byBzZXQgdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgIHN0YXRlQ2hhbmdlSGFuZGxlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXQoaW50ZXJuYWxTZWFyY2hTeXN0ZW1TdGF0ZUF0b20sIGZhbHNlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHN0YXRlQ2hhbmdlSGFuZGxlcik7XG4gICAgfVxuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlcmVkU2VhcmNoUHJvZHVjdHNBdG9tID0gYXRvbSgoZ2V0KSA9PiB7XG4gIGNvbnN0IHNlYXJjaERhdGEgPSBnZXQoc2VhcmNoQXRvbSkuZGF0YTtcbiAgY29uc3Qgc29ydGluZyA9IGdldChzZWFyY2hQcm9kdWN0U29ydGluZ0F0b20pO1xuICBjb25zdCBzZWxlY3RlZEZpbHRlcnMgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIGNvbnN0IG5ld09yZ0NvbmZpZyA9IGdldChuZXdPcmdDb25maWdBdG9tKTtcblxuICBpZiAoIXNlYXJjaERhdGE/LnByb2R1Y3RzIHx8ICFuZXdPcmdDb25maWc/LmZyb250ZW5kQ29uZmlnPy51aUNvbmZpZ3M/LnNlYXJjaENvbmZpZykgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IGZpbHRlcmVkUHJvZHVjdHMgPSBQcm9kdWN0RmlsdGVycy5maWx0ZXJQcm9kdWN0cyhcbiAgICBzZWFyY2hEYXRhLnByb2R1Y3RzLFxuICAgIG5ld09yZ0NvbmZpZy5mcm9udGVuZENvbmZpZy51aUNvbmZpZ3Muc2VhcmNoQ29uZmlnLnNlYXJjaEZpbHRlckNvbmZpZyxcbiAgICBzZWxlY3RlZEZpbHRlcnMsXG4gICAgbmV3T3JnQ29uZmlnLmZyb250ZW5kQ29uZmlnLnVpQ29uZmlncy5zZWFyY2hDb25maWcuYWRkaXRpdmVEeW5hbWljRmlsdGVycyxcbiAgKTtcblxuICByZXR1cm4gUHJvZHVjdFNvcnRlci5zb3J0KGZpbHRlcmVkUHJvZHVjdHMsIHNvcnRpbmcpO1xufSk7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hGaWx0ZXJzQXRvbSA9IGF0b20oKGdldCkgPT4ge1xuICBjb25zdCBzZWFyY2hEYXRhID0gZ2V0KHNlYXJjaEF0b20pLmRhdGE7XG4gIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IGdldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tKTtcbiAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuXG4gIGlmICghc2VhcmNoRGF0YT8ucHJvZHVjdHMgfHwgIW5ld09yZ0NvbmZpZz8uZnJvbnRlbmRDb25maWc/LnVpQ29uZmlncz8uc2VhcmNoQ29uZmlnKSByZXR1cm4gW107XG5cbiAgcmV0dXJuIFByb2R1Y3RGaWx0ZXJzLmdldEZpbHRlcnNGb3JQcm9kdWN0cyhcbiAgICBzZWFyY2hEYXRhLnByb2R1Y3RzLFxuICAgIG5ld09yZ0NvbmZpZy5mcm9udGVuZENvbmZpZy51aUNvbmZpZ3Muc2VhcmNoQ29uZmlnLnNlYXJjaEZpbHRlckNvbmZpZyxcbiAgICBzZWxlY3RlZEZpbHRlcnMsXG4gICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGFkZFNlYXJjaEZpbHRlckF0b20gPSBhdG9tKG51bGwsIChnZXQsIHNldCwgZmlsdGVyOiBTZWxlY3RlZEZpbHRlck9wdGlvbikgPT4ge1xuICBjb25zdCBjdXJyZW50ID0gZ2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20pO1xuICBpZiAoIWN1cnJlbnQuc29tZSgoZikgPT4gZi5pZCA9PT0gZmlsdGVyLmlkKSkge1xuICAgIHNldChzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tLCBbLi4uY3VycmVudCwgZmlsdGVyXSk7XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU2VhcmNoRmlsdGVyQXRvbSA9IGF0b20obnVsbCwgKGdldCwgc2V0LCBmaWx0ZXJJZDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnQgPSBnZXQoc2VhcmNoU2VsZWN0ZWRGaWx0ZXJzQXRvbSk7XG4gIHNldChcbiAgICBzZWFyY2hTZWxlY3RlZEZpbHRlcnNBdG9tLFxuICAgIGN1cnJlbnQuZmlsdGVyKChmKSA9PiBmLmlkICE9PSBmaWx0ZXJJZCksXG4gICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyU2VhcmNoRmlsdGVyc0F0b20gPSBhdG9tKG51bGwsIChfLCBzZXQpID0+IHtcbiAgc2V0KHNlYXJjaFNlbGVjdGVkRmlsdGVyc0F0b20sIFtdKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgcGVyZm9ybVNlYXJjaEF0b20gPSBhdG9tKFxuICBudWxsLFxuICBhc3luYyAoZ2V0LCBzZXQsIHBhcmFtczogU2VhcmNoUGFyYW1zLCBhbGxvd1JlZGlyZWN0ID0gZmFsc2UpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBnZXQoc2VhcmNoQXRvbSk7XG4gICAgY29uc3QgbmV3T3JnQ29uZmlnID0gZ2V0KG5ld09yZ0NvbmZpZ0F0b20pO1xuICAgIGNvbnN0IHJlZGlyZWN0U2VhcmNoUmVzdWx0c1VybCA9XG4gICAgICBuZXdPcmdDb25maWc/LmZyb250ZW5kQ29uZmlnPy51aUNvbmZpZ3M/LnNlYXJjaENvbmZpZz8ucmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsO1xuXG4gICAgaWYgKGFsbG93UmVkaXJlY3QgJiYgcmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsKSB7XG4gICAgICBjb25zdCByZWRpcmVjdFVybCA9IG5ldyBVUkwocmVkaXJlY3RTZWFyY2hSZXN1bHRzVXJsKTtcbiAgICAgIHJlZGlyZWN0VXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzJywgJ3RydWUnKTtcbiAgICAgIHJlZGlyZWN0VXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzcScsIHBhcmFtcy5xdWVyeSk7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJlZGlyZWN0VXJsLnRvU3RyaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVwZGF0ZSBVUkwgYW5kIG1hbnVhbGx5IHRyaWdnZXIgc3RhdGUgY2hhbmdlIChzaW5jZSBwdXNoU3RhdGUgZG9lc24ndCB0cmlnZ2VyIHBvcHN0YXRlKVxuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnZXMnLCAndHJ1ZScpO1xuICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2VzcScsIHBhcmFtcy5xdWVyeSk7XG4gICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe30sICcnLCB1cmwpO1xuXG4gICAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHBhZ2UgdmFyaWFudCByZS1ldmFsdWF0aW9uIGJ5IGRpc3BhdGNoaW5nIGEgcG9wc3RhdGUgZXZlbnRcbiAgICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgcGFnZSB2YXJpYW50IHN5c3RlbSBkZXRlY3RzIHRoZSBVUkwgY2hhbmdlIGFuZCBtb3VudHMgc2VhcmNoIHJlc3VsdHNcbiAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBQb3BTdGF0ZUV2ZW50KCdwb3BzdGF0ZScsIHsgc3RhdGU6IHt9IH0pKTtcbiAgICB9XG5cbiAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHBhZ2UgdmFyaWFudCByZS1ldmFsdWF0aW9uIGJ5IGRpc3BhdGNoaW5nIGEgcG9wc3RhdGUgZXZlbnRcbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhlIHBhZ2UgdmFyaWFudCBzeXN0ZW0gZGV0ZWN0cyB0aGUgVVJMIGNoYW5nZSBhbmQgbW91bnRzIHNlYXJjaCByZXN1bHRzXG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IFBvcFN0YXRlRXZlbnQoJ3BvcHN0YXRlJywgeyBzdGF0ZToge30gfSkpO1xuICAgIGlmIChjdXJyZW50U3RhdGUubG9hZGluZykge1xuICAgICAgcmV0dXJuOyAvLyBQcmV2ZW50IGNvbmN1cnJlbnQgc2VhcmNoZXNcbiAgICB9XG5cbiAgICBzZXQoc2VhcmNoQXRvbSwge1xuICAgICAgZGF0YTogbnVsbCxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgICBlcnJvcjogbnVsbCxcbiAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgIH0pO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZWFyY2hTZXJ2aWNlRnVuY3Rpb24gPSBnZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNlYXJjaFNlcnZpY2VGdW5jdGlvbihwYXJhbXMpO1xuICAgICAgc2V0KHNlYXJjaEF0b20sIHtcbiAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnO1xuICAgICAgc2V0KHNlYXJjaEF0b20sIHtcbiAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGVycm9yOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgIGxhc3RRdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfVxuICB9LFxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUtBLE1BQU0sa0JBQWtCLE9BQWUsZUFBdUI7QUFFNUQsUUFEZSxL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
@@ -1,9 +1,9 @@
1
1
  import { SessionRestartRequired, UnsupportedProductException } from "./exceptions-CUGY31Ua.js";
2
2
  import { logger_default } from "./logger-BMVdhQOV.js";
3
- import { baseUrlAtom } from "./enviveConfig-Ciq4ASoV.js";
3
+ import { baseUrlAtom } from "./enviveConfig-Cwlp7-Qz.js";
4
4
  import { clearSearchServiceFunction, setSearchServiceFunction } from "./searchServiceAdapter-B0h7psvh.js";
5
- import { useEnviveConfig } from "./enviveConfigContext-CCjJUmwp.js";
6
- import { useAppDetails } from "./useAppDetails-BPXln8UE.js";
5
+ import { useEnviveConfig } from "./enviveConfigContext-BZbGEgOW.js";
6
+ import { useAppDetails } from "./useAppDetails-xPVs6fW7.js";
7
7
  import { Configuration, ResponseCategory, ResponseError, SearchApi } from "@spiffy-ai/commerce-api-client";
8
8
  import React, { createContext, useCallback, useContext, useEffect, useMemo } from "react";
9
9
  import { useAtomValue } from "jotai";
@@ -126,4 +126,4 @@ const useSearchService = () => {
126
126
 
127
127
  //#endregion
128
128
  export { SearchProvider, useSearchService };
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoQ29udGV4dC1Ca1BvVHExby5qcyIsIm5hbWVzIjpbIlNlYXJjaFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4iLCJjb25maWc6IENvbmZpZ3VyYXRpb24iXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvc2VhcmNoQ29udGV4dC9zZWFyY2hDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb24sXG4gIFJlc3BvbnNlQ2F0ZWdvcnksXG4gIFJlc3BvbnNlRXJyb3IsXG4gIFNlYXJjaEFwaSxcbn0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IGJhc2VVcmxBdG9tIH0gZnJvbSAnLi4vLi4vYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFNlc3Npb25SZXN0YXJ0UmVxdWlyZWQsIFVuc3VwcG9ydGVkUHJvZHVjdEV4Y2VwdGlvbiB9IGZyb20gJy4uLy4uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgdXNlQXBwRGV0YWlscyB9IGZyb20gJy4uLy4uL2hvb2tzL0FwcERldGFpbHMvdXNlQXBwRGV0YWlscyc7XG5pbXBvcnQgeyB1c2VFbnZpdmVDb25maWcgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9lbnZpdmVDb25maWdDb250ZXh0L2Vudml2ZUNvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHtcbiAgY2xlYXJTZWFyY2hTZXJ2aWNlRnVuY3Rpb24sXG4gIHNldFNlYXJjaFNlcnZpY2VGdW5jdGlvbixcbn0gZnJvbSAnLi4vLi4vYXRvbXMvc2VhcmNoL3NlYXJjaFNlcnZpY2VBZGFwdGVyJztcbmltcG9ydCB7IFNlYXJjaENvbnRleHRWYWx1ZSwgU2VhcmNoUGFyYW1zLCBTZWFyY2hSZXN1bHQgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcblxuY29uc3QgdHJhbnNmb3JtUHJvZHVjdFJlc3BvbnNlcyA9IChwcm9kdWN0czogU2VhcmNoUmVzdWx0Wydwcm9kdWN0cyddKSA9PlxuICBwcm9kdWN0cy5tYXAoKGRhdGEpID0+ICh7XG4gICAgaWQ6IGRhdGEuaWQsXG4gICAgcmVzcG9uc2VJZDogZGF0YS5yZXNwb25zZV9pZCxcbiAgICBjYXRlZ29yeTogUmVzcG9uc2VDYXRlZ29yeS5Qcm9kdWN0LFxuICAgIGRlc2NyaXB0aW9uOiBkYXRhLmRlc2NyaXB0aW9uLFxuICAgIGltYWdlVXJsOiBkYXRhLmltYWdlX3VybCxcbiAgICBpbWFnZVVybHM6IGRhdGEuaW1hZ2VfdXJscyxcbiAgICB0aXRsZTogZGF0YS50aXRsZSxcbiAgICB1cmw6IGRhdGEudXJsLFxuICAgIG9yaWdpbmFsUHJpY2U6IGRhdGEub3JpZ2luYWxfcHJpY2UsXG4gICAgc2FsZVByaWNlOiBkYXRhLnNhbGVfcHJpY2UsXG4gICAgYXZlcmFnZVJhdGluZzogZGF0YS5hdmVyYWdlX3JhdGluZyxcbiAgICBudW1iZXJSZXZpZXdzOiBkYXRhLm51bWJlcl9yZXZpZXdzLFxuICAgIG1ldGFkYXRhOiBkYXRhLm1ldGFkYXRhLFxuICAgIGlzRm9yR3JpZDogZGF0YS5pc19mb3JfZ3JpZCxcbiAgICBjb2xvcnM6IGRhdGEuY29sb3JzLFxuICAgIHNpemVzOiBkYXRhLnNpemVzLFxuICAgIGZpbHRlcnM6IGRhdGEuZmlsdGVycyxcbiAgfSkpO1xuXG5hc3luYyBmdW5jdGlvbiBlcnJvclJlc3BvbnNlQm9keShlcnJvcjogUmVzcG9uc2VFcnJvcikge1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBlcnJvci5yZXNwb25zZS5qc29uKCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB0aHJvd1Nlc3Npb25SZXN0YXJ0UmVxdWlyZWRJZihlcnJvck1zZzogc3RyaW5nLCBlcnJvcjogdW5rbm93bikge1xuICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFJlc3BvbnNlRXJyb3IpKSB7XG4gICAgTG9nZ2VyLmxvZ0luZm8oZXJyb3JNc2csIGVycm9yKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuXG4gIGNvbnN0IGVycm9yUmVzcG9uc2UgPSBhd2FpdCBlcnJvclJlc3BvbnNlQm9keShlcnJvcik7XG4gIGlmIChcbiAgICBlcnJvclJlc3BvbnNlPy5tZXNzYWdlPy50b0xvd2VyQ2FzZSgpID09PSAndW5zdXBwb3J0ZWQgcHJvZHVjdCcgfHxcbiAgICBlcnJvclJlc3BvbnNlPy5hcHBfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gJ1BST0RVQ1RfTk9UX0ZPVU5EJ1xuICApIHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRQcm9kdWN0RXhjZXB0aW9uKCk7XG4gIH0gZWxzZSBpZiAoXG4gICAgZXJyb3JSZXNwb25zZT8uYXBwX2NvZGU/LnRvVXBwZXJDYXNlKCkgPT09ICdSRVNUQVJUX1NFU1NJT04nIHx8XG4gICAgZXJyb3JSZXNwb25zZT8uc3ViX2NvZGU/LnRvVXBwZXJDYXNlKCkgPT09ICdOT1RfRk9VTkQnXG4gICkge1xuICAgIExvZ2dlci5sb2dJbmZvKFxuICAgICAgJ1Nlc3Npb24gZG9lcyBub3QgZXhpc3QuIFJlLXN0YXJ0IHNlc3Npb24nLFxuICAgICAgZXJyb3IsXG4gICAgICBlcnJvci5yZXNwb25zZSxcbiAgICAgIGVycm9yUmVzcG9uc2UsXG4gICAgKTtcbiAgICB0aHJvdyBuZXcgU2Vzc2lvblJlc3RhcnRSZXF1aXJlZCgpO1xuICB9XG5cbiAgTG9nZ2VyLmxvZ0luZm8oZXJyb3JNc2csIGVycm9yKTtcbiAgdGhyb3cgZXJyb3I7XG59XG5cbmNvbnN0IFNlYXJjaENvbnRleHQgPSBjcmVhdGVDb250ZXh0PFNlYXJjaENvbnRleHRWYWx1ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IFNlYXJjaFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4gPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IHsgb3JnTGV2ZWxBcGlLZXksIHB1YmxpY0tleSB9ID0gdXNlRW52aXZlQ29uZmlnKCk7XG4gIGNvbnN0IGFwaUtleSA9IG9yZ0xldmVsQXBpS2V5IHx8IHB1YmxpY0tleTsgLy8gUmVwbGljYXRlIGFwaUtleUF0b20gbG9naWNcbiAgY29uc3QgYXBwRGV0YWlscyA9IHVzZUFwcERldGFpbHMoKTtcbiAgY29uc3QgYmFzZVVybCA9IHVzZUF0b21WYWx1ZShiYXNlVXJsQXRvbSk7XG5cbiAgY29uc3QgaXNSZWFkeSA9IEJvb2xlYW4oYXBpS2V5ICYmIGFwcERldGFpbHMgJiYgYmFzZVVybCk7XG5cbiAgY29uc3Qgc2VhcmNoQXBpID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFpc1JlYWR5KSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGNvbmZpZzogQ29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHtcbiAgICAgIGFjY2Vzc1Rva2VuOiBhcGlLZXksXG4gICAgICBiYXNlUGF0aDogYmFzZVVybCxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgU2VhcmNoQXBpKGNvbmZpZyk7XG4gIH0sIFthcGlLZXksIGJhc2VVcmwsIGlzUmVhZHldKTtcblxuICBjb25zdCBzZWFyY2hQcm9kdWN0cyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChwYXJhbXM6IFNlYXJjaFBhcmFtcyk6IFByb21pc2U8U2VhcmNoUmVzdWx0PiA9PiB7XG4gICAgICBpZiAoIWlzUmVhZHkgfHwgIXNlYXJjaEFwaSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlYXJjaFNlcnZpY2Ugbm90IHJlYWR5IC0gbWlzc2luZyBkZXBlbmRlbmNpZXMnKTtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZWFyY2hBcGkudjFTZWFyY2hRdWVyeUdldCh7XG4gICAgICAgICAgcXVlcnk6IHBhcmFtcy5xdWVyeSxcbiAgICAgICAgICBsaW1pdDogcGFyYW1zLmxpbWl0LFxuICAgICAgICAgIG9yZ19pZDogYXBwRGV0YWlscy5vcmdJZCxcbiAgICAgICAgICB1c2VyX2lkOiBhcHBEZXRhaWxzLnVzZXJJZCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHsgcHJvZHVjdHMsIGZpbHRlcnMsIHNlYXJjaF9yZXNwb25zZV9pZDogc2VhcmNoUmVzcG9uc2VJZCB9ID0gcmVzcG9uc2U7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwcm9kdWN0czogdHJhbnNmb3JtUHJvZHVjdFJlc3BvbnNlcyhwcm9kdWN0cykgfHwgW10sXG4gICAgICAgICAgZmlsdGVyczogZmlsdGVycyB8fCBbXSxcbiAgICAgICAgICB0b3RhbFByb2R1Y3RDb3VudDogcHJvZHVjdHM/Lmxlbmd0aCB8fCAwLFxuICAgICAgICAgIHNlYXJjaFJlc3BvbnNlSWQ6IHNlYXJjaFJlc3BvbnNlSWQgfHwgJycsXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBhd2FpdCB0aHJvd1Nlc3Npb25SZXN0YXJ0UmVxdWlyZWRJZignRmFpbGVkIHRvIHNlYXJjaCBwcm9kdWN0cycsIGVycm9yKTtcbiAgICAgICAgLy8gVGhpcyBwYXJ0IHdpbGwgbm90IGJlIHJlYWNoZWQgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biwgYnV0IGl0J3MgcmVxdWlyZWQgZm9yIHR5cGUgc2FmZXR5XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcHJvZHVjdHM6IFtdLFxuICAgICAgICAgIGZpbHRlcnM6IFtdLFxuICAgICAgICAgIHRvdGFsUHJvZHVjdENvdW50OiAwLFxuICAgICAgICAgIHNlYXJjaFJlc3BvbnNlSWQ6ICcnLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sXG4gICAgW3NlYXJjaEFwaSwgaXNSZWFkeSwgYXBwRGV0YWlsc10sXG4gICk7XG5cbiAgLy8gUmVnaXN0ZXIgdGhlIHNlYXJjaCBmdW5jdGlvbiB3aXRoIHRoZSBhZGFwdGVyIGZvciB1c2UgaW4gYXRvbXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNSZWFkeSkge1xuICAgICAgc2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uKHNlYXJjaFByb2R1Y3RzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oKTtcbiAgICB9O1xuICB9LCBbc2VhcmNoUHJvZHVjdHMsIGlzUmVhZHldKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIHNlYXJjaFByb2R1Y3RzLFxuICAgICAgaXNSZWFkeSxcbiAgICB9KSxcbiAgICBbc2VhcmNoUHJvZHVjdHMsIGlzUmVhZHldLFxuICApO1xuXG4gIHJldHVybiA8U2VhcmNoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dmFsdWV9PntjaGlsZHJlbn08L1NlYXJjaENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVNlYXJjaFNlcnZpY2UgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFNlYXJjaENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZVNlYXJjaFNlcnZpY2UgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFNlYXJjaFByb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFtQkEsTUFBTSw2QkFBNkIsYUFDakMsU0FBUyxLQUFLLFVBQVU7Q0FDdEIsSUFBSSxLQUFLO0NBQ1QsWUFBWSxLQUFLO0NBQ2pCLFVBQVUsaUJBQWlCO0NBQzNCLGFBQWEsS0FBSztDQUNsQixVQUFVLEtBQUs7Q0FDZixXQUFXLEtBQUs7Q0FDaEIsT0FBTyxLQUFLO0NBQ1osS0FBSyxLQUFLO0NBQ1YsZUFBZSxLQUFLO0NBQ3BCLFdBQVcsS0FBSztDQUNoQixlQUFlLEtBQUs7Q0FDcEIsZUFBZSxLQUFLO0NBQ3BCLFVBQVUsS0FBSztDQUNmLFdBQVcsS0FBSztDQUNoQixRQUFRLEtBQUs7Q0FDYixPQUFPLEtBQUs7Q0FDWixTQUFTLEtBQUs7Q0FDZixFQUFFO0FBRUwsZUFBZSxrQkFBa0IsT0FBc0I7QUFDckQsS0FBSTtBQUNGLFNBQU8sTUFBTSxNQUFNLFNBQVMsTUFBTTtTQUM1QjtBQUNOLFNBQU8sRUFBRTs7O0FBSWIsZUFBZSw4QkFBOEIsVUFBa0IsT0FBZ0I7QUFDN0UsS0FBSSxFQUFFLGlCQUFpQixnQkFBZ0I7QUFDckMsaUJBQU8sUUFBUSxVQUFVLE1BQU07QUFDL0IsUUFBTTs7Q0FHUixNQUFNLGdCQUFnQixNQUFNLGtCQUFrQixNQUFNO0FBQ3BELEtBQ0UsZUFBZSxTQUFTLGFBQWEsS0FBSyx5QkFDMUMsZUFBZSxVQUFVLGFBQWEsS0FBSyxvQkFFM0MsT0FBTSxJQUFJLDZCQUE2QjtVQUV2QyxlQUFlLFVBQVUsYUFBYSxLQUFLLHFCQUMzQyxlQUFlLFVBQVUsYUFBYSxLQUFLLGFBQzNDO0FBQ0EsaUJBQU8sUUFDTCw0Q0FDQSxPQUNBLE1BQU0sVUFDTixjQUNEO0FBQ0QsUUFBTSxJQUFJLHdCQUF3Qjs7QUFHcEMsZ0JBQU8sUUFBUSxVQUFVLE1BQU07QUFDL0IsT0FBTTs7QUFHUixNQUFNLGdCQUFnQixjQUE4QyxPQUFVO0FBRTlFLE1BQWFBLGtCQUEyRCxFQUFFLGVBQWU7Q0FDdkYsTUFBTSxFQUFFLGdCQUFnQixjQUFjLGlCQUFpQjtDQUN2RCxNQUFNLFNBQVMsa0JBQWtCO0NBQ2pDLE1BQU0sYUFBYSxlQUFlO0NBQ2xDLE1BQU0sVUFBVSxhQUFhLFlBQVk7Q0FFekMsTUFBTSxVQUFVLFFBQVEsVUFBVSxjQUFjLFFBQVE7Q0FFeEQsTUFBTSxZQUFZLGNBQWM7QUFDOUIsTUFBSSxDQUFDLFFBQVMsUUFBTztFQUVyQixNQUFNQyxTQUF3QixJQUFJLGNBQWM7R0FDOUMsYUFBYTtHQUNiLFVBQVU7R0FDVixTQUFTO0lBQ1AsZ0JBQWdCO0lBQ2hCLFFBQVE7SUFDVDtHQUNGLENBQUM7QUFDRixTQUFPLElBQUksVUFBVSxPQUFPO0lBQzNCO0VBQUM7RUFBUTtFQUFTO0VBQVEsQ0FBQztDQUU5QixNQUFNLGlCQUFpQixZQUNyQixPQUFPLFdBQWdEO0FBQ3JELE1BQUksQ0FBQyxXQUFXLENBQUMsVUFDZixPQUFNLElBQUksTUFBTSxpREFBaUQ7QUFHbkUsTUFBSTtHQU9GLE1BQU0sRUFBRSxVQUFVLFNBQVMsb0JBQW9CLHFCQU45QixNQUFNLFVBQVUsaUJBQWlCO0lBQ2hELE9BQU8sT0FBTztJQUNkLE9BQU8sT0FBTztJQUNkLFFBQVEsV0FBVztJQUNuQixTQUFTLFdBQVc7SUFDckIsQ0FBQztBQUdGLFVBQU87SUFDTCxVQUFVLDBCQUEwQixTQUFTLElBQUksRUFBRTtJQUNuRCxTQUFTLFdBQVcsRUFBRTtJQUN0QixtQkFBbUIsVUFBVSxVQUFVO0lBQ3ZDLGtCQUFrQixvQkFBb0I7SUFDdkM7V0FDTSxPQUFPO0FBQ2QsU0FBTSw4QkFBOEIsNkJBQTZCLE1BQU07QUFFdkUsVUFBTztJQUNMLFVBQVUsRUFBRTtJQUNaLFNBQVMsRUFBRTtJQUNYLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbkI7O0lBR0w7RUFBQztFQUFXO0VBQVM7RUFBVyxDQUNqQztBQUdELGlCQUFnQjtBQUNkLE1BQUksUUFDRiwwQkFBeUIsZUFBZTtNQUV4Qyw2QkFBNEI7QUFHOUIsZUFBYTtBQUNYLCtCQUE0Qjs7SUFFN0IsQ0FBQyxnQkFBZ0IsUUFBUSxDQUFDO0NBRTdCLE1BQU0sUUFBUSxlQUNMO0VBQ0w7RUFDQTtFQUNELEdBQ0QsQ0FBQyxnQkFBZ0IsUUFBUSxDQUMxQjtBQUVELFFBQU8sb0JBQUMsY0FBYztFQUFnQjtFQUFRO0dBQWtDOztBQUdsRixNQUFhLHlCQUF5QjtDQUNwQyxNQUFNLFVBQVUsV0FBVyxjQUFjO0FBQ3pDLEtBQUksQ0FBQyxRQUNILE9BQU0sSUFBSSxNQUFNLHdEQUF3RDtBQUUxRSxRQUFPIn0=
129
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoQ29udGV4dC1CLXJFWml4bC5qcyIsIm5hbWVzIjpbIlNlYXJjaFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4iLCJjb25maWc6IENvbmZpZ3VyYXRpb24iXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvc2VhcmNoQ29udGV4dC9zZWFyY2hDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUF0b21WYWx1ZSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb24sXG4gIFJlc3BvbnNlQ2F0ZWdvcnksXG4gIFJlc3BvbnNlRXJyb3IsXG4gIFNlYXJjaEFwaSxcbn0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IGJhc2VVcmxBdG9tIH0gZnJvbSAnLi4vLi4vYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFNlc3Npb25SZXN0YXJ0UmVxdWlyZWQsIFVuc3VwcG9ydGVkUHJvZHVjdEV4Y2VwdGlvbiB9IGZyb20gJy4uLy4uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgdXNlQXBwRGV0YWlscyB9IGZyb20gJy4uLy4uL2hvb2tzL0FwcERldGFpbHMvdXNlQXBwRGV0YWlscyc7XG5pbXBvcnQgeyB1c2VFbnZpdmVDb25maWcgfSBmcm9tICcuLi8uLi9jb250ZXh0cy9lbnZpdmVDb25maWdDb250ZXh0L2Vudml2ZUNvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHtcbiAgY2xlYXJTZWFyY2hTZXJ2aWNlRnVuY3Rpb24sXG4gIHNldFNlYXJjaFNlcnZpY2VGdW5jdGlvbixcbn0gZnJvbSAnLi4vLi4vYXRvbXMvc2VhcmNoL3NlYXJjaFNlcnZpY2VBZGFwdGVyJztcbmltcG9ydCB7IFNlYXJjaENvbnRleHRWYWx1ZSwgU2VhcmNoUGFyYW1zLCBTZWFyY2hSZXN1bHQgfSBmcm9tICdAZW52aXZlLWFpL3R5cGVzJztcblxuY29uc3QgdHJhbnNmb3JtUHJvZHVjdFJlc3BvbnNlcyA9IChwcm9kdWN0czogU2VhcmNoUmVzdWx0Wydwcm9kdWN0cyddKSA9PlxuICBwcm9kdWN0cy5tYXAoKGRhdGEpID0+ICh7XG4gICAgaWQ6IGRhdGEuaWQsXG4gICAgcmVzcG9uc2VJZDogZGF0YS5yZXNwb25zZV9pZCxcbiAgICBjYXRlZ29yeTogUmVzcG9uc2VDYXRlZ29yeS5Qcm9kdWN0LFxuICAgIGRlc2NyaXB0aW9uOiBkYXRhLmRlc2NyaXB0aW9uLFxuICAgIGltYWdlVXJsOiBkYXRhLmltYWdlX3VybCxcbiAgICBpbWFnZVVybHM6IGRhdGEuaW1hZ2VfdXJscyxcbiAgICB0aXRsZTogZGF0YS50aXRsZSxcbiAgICB1cmw6IGRhdGEudXJsLFxuICAgIG9yaWdpbmFsUHJpY2U6IGRhdGEub3JpZ2luYWxfcHJpY2UsXG4gICAgc2FsZVByaWNlOiBkYXRhLnNhbGVfcHJpY2UsXG4gICAgYXZlcmFnZVJhdGluZzogZGF0YS5hdmVyYWdlX3JhdGluZyxcbiAgICBudW1iZXJSZXZpZXdzOiBkYXRhLm51bWJlcl9yZXZpZXdzLFxuICAgIG1ldGFkYXRhOiBkYXRhLm1ldGFkYXRhLFxuICAgIGlzRm9yR3JpZDogZGF0YS5pc19mb3JfZ3JpZCxcbiAgICBjb2xvcnM6IGRhdGEuY29sb3JzLFxuICAgIHNpemVzOiBkYXRhLnNpemVzLFxuICAgIGZpbHRlcnM6IGRhdGEuZmlsdGVycyxcbiAgfSkpO1xuXG5hc3luYyBmdW5jdGlvbiBlcnJvclJlc3BvbnNlQm9keShlcnJvcjogUmVzcG9uc2VFcnJvcikge1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBlcnJvci5yZXNwb25zZS5qc29uKCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB0aHJvd1Nlc3Npb25SZXN0YXJ0UmVxdWlyZWRJZihlcnJvck1zZzogc3RyaW5nLCBlcnJvcjogdW5rbm93bikge1xuICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFJlc3BvbnNlRXJyb3IpKSB7XG4gICAgTG9nZ2VyLmxvZ0luZm8oZXJyb3JNc2csIGVycm9yKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuXG4gIGNvbnN0IGVycm9yUmVzcG9uc2UgPSBhd2FpdCBlcnJvclJlc3BvbnNlQm9keShlcnJvcik7XG4gIGlmIChcbiAgICBlcnJvclJlc3BvbnNlPy5tZXNzYWdlPy50b0xvd2VyQ2FzZSgpID09PSAndW5zdXBwb3J0ZWQgcHJvZHVjdCcgfHxcbiAgICBlcnJvclJlc3BvbnNlPy5hcHBfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gJ1BST0RVQ1RfTk9UX0ZPVU5EJ1xuICApIHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRQcm9kdWN0RXhjZXB0aW9uKCk7XG4gIH0gZWxzZSBpZiAoXG4gICAgZXJyb3JSZXNwb25zZT8uYXBwX2NvZGU/LnRvVXBwZXJDYXNlKCkgPT09ICdSRVNUQVJUX1NFU1NJT04nIHx8XG4gICAgZXJyb3JSZXNwb25zZT8uc3ViX2NvZGU/LnRvVXBwZXJDYXNlKCkgPT09ICdOT1RfRk9VTkQnXG4gICkge1xuICAgIExvZ2dlci5sb2dJbmZvKFxuICAgICAgJ1Nlc3Npb24gZG9lcyBub3QgZXhpc3QuIFJlLXN0YXJ0IHNlc3Npb24nLFxuICAgICAgZXJyb3IsXG4gICAgICBlcnJvci5yZXNwb25zZSxcbiAgICAgIGVycm9yUmVzcG9uc2UsXG4gICAgKTtcbiAgICB0aHJvdyBuZXcgU2Vzc2lvblJlc3RhcnRSZXF1aXJlZCgpO1xuICB9XG5cbiAgTG9nZ2VyLmxvZ0luZm8oZXJyb3JNc2csIGVycm9yKTtcbiAgdGhyb3cgZXJyb3I7XG59XG5cbmNvbnN0IFNlYXJjaENvbnRleHQgPSBjcmVhdGVDb250ZXh0PFNlYXJjaENvbnRleHRWYWx1ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IFNlYXJjaFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4gPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IHsgb3JnTGV2ZWxBcGlLZXksIHB1YmxpY0tleSB9ID0gdXNlRW52aXZlQ29uZmlnKCk7XG4gIGNvbnN0IGFwaUtleSA9IG9yZ0xldmVsQXBpS2V5IHx8IHB1YmxpY0tleTsgLy8gUmVwbGljYXRlIGFwaUtleUF0b20gbG9naWNcbiAgY29uc3QgYXBwRGV0YWlscyA9IHVzZUFwcERldGFpbHMoKTtcbiAgY29uc3QgYmFzZVVybCA9IHVzZUF0b21WYWx1ZShiYXNlVXJsQXRvbSk7XG5cbiAgY29uc3QgaXNSZWFkeSA9IEJvb2xlYW4oYXBpS2V5ICYmIGFwcERldGFpbHMgJiYgYmFzZVVybCk7XG5cbiAgY29uc3Qgc2VhcmNoQXBpID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFpc1JlYWR5KSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGNvbmZpZzogQ29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHtcbiAgICAgIGFjY2Vzc1Rva2VuOiBhcGlLZXksXG4gICAgICBiYXNlUGF0aDogYmFzZVVybCxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHJldHVybiBuZXcgU2VhcmNoQXBpKGNvbmZpZyk7XG4gIH0sIFthcGlLZXksIGJhc2VVcmwsIGlzUmVhZHldKTtcblxuICBjb25zdCBzZWFyY2hQcm9kdWN0cyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChwYXJhbXM6IFNlYXJjaFBhcmFtcyk6IFByb21pc2U8U2VhcmNoUmVzdWx0PiA9PiB7XG4gICAgICBpZiAoIWlzUmVhZHkgfHwgIXNlYXJjaEFwaSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlYXJjaFNlcnZpY2Ugbm90IHJlYWR5IC0gbWlzc2luZyBkZXBlbmRlbmNpZXMnKTtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZWFyY2hBcGkudjFTZWFyY2hRdWVyeUdldCh7XG4gICAgICAgICAgcXVlcnk6IHBhcmFtcy5xdWVyeSxcbiAgICAgICAgICBsaW1pdDogcGFyYW1zLmxpbWl0LFxuICAgICAgICAgIG9yZ19pZDogYXBwRGV0YWlscy5vcmdJZCxcbiAgICAgICAgICB1c2VyX2lkOiBhcHBEZXRhaWxzLnVzZXJJZCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHsgcHJvZHVjdHMsIGZpbHRlcnMsIHNlYXJjaF9yZXNwb25zZV9pZDogc2VhcmNoUmVzcG9uc2VJZCB9ID0gcmVzcG9uc2U7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwcm9kdWN0czogdHJhbnNmb3JtUHJvZHVjdFJlc3BvbnNlcyhwcm9kdWN0cykgfHwgW10sXG4gICAgICAgICAgZmlsdGVyczogZmlsdGVycyB8fCBbXSxcbiAgICAgICAgICB0b3RhbFByb2R1Y3RDb3VudDogcHJvZHVjdHM/Lmxlbmd0aCB8fCAwLFxuICAgICAgICAgIHNlYXJjaFJlc3BvbnNlSWQ6IHNlYXJjaFJlc3BvbnNlSWQgfHwgJycsXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBhd2FpdCB0aHJvd1Nlc3Npb25SZXN0YXJ0UmVxdWlyZWRJZignRmFpbGVkIHRvIHNlYXJjaCBwcm9kdWN0cycsIGVycm9yKTtcbiAgICAgICAgLy8gVGhpcyBwYXJ0IHdpbGwgbm90IGJlIHJlYWNoZWQgaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biwgYnV0IGl0J3MgcmVxdWlyZWQgZm9yIHR5cGUgc2FmZXR5XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcHJvZHVjdHM6IFtdLFxuICAgICAgICAgIGZpbHRlcnM6IFtdLFxuICAgICAgICAgIHRvdGFsUHJvZHVjdENvdW50OiAwLFxuICAgICAgICAgIHNlYXJjaFJlc3BvbnNlSWQ6ICcnLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0sXG4gICAgW3NlYXJjaEFwaSwgaXNSZWFkeSwgYXBwRGV0YWlsc10sXG4gICk7XG5cbiAgLy8gUmVnaXN0ZXIgdGhlIHNlYXJjaCBmdW5jdGlvbiB3aXRoIHRoZSBhZGFwdGVyIGZvciB1c2UgaW4gYXRvbXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNSZWFkeSkge1xuICAgICAgc2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uKHNlYXJjaFByb2R1Y3RzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oKTtcbiAgICB9O1xuICB9LCBbc2VhcmNoUHJvZHVjdHMsIGlzUmVhZHldKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIHNlYXJjaFByb2R1Y3RzLFxuICAgICAgaXNSZWFkeSxcbiAgICB9KSxcbiAgICBbc2VhcmNoUHJvZHVjdHMsIGlzUmVhZHldLFxuICApO1xuXG4gIHJldHVybiA8U2VhcmNoQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17dmFsdWV9PntjaGlsZHJlbn08L1NlYXJjaENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVNlYXJjaFNlcnZpY2UgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFNlYXJjaENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZVNlYXJjaFNlcnZpY2UgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFNlYXJjaFByb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFtQkEsTUFBTSw2QkFBNkIsYUFDakMsU0FBUyxLQUFLLFVBQVU7Q0FDdEIsSUFBSSxLQUFLO0NBQ1QsWUFBWSxLQUFLO0NBQ2pCLFVBQVUsaUJBQWlCO0NBQzNCLGFBQWEsS0FBSztDQUNsQixVQUFVLEtBQUs7Q0FDZixXQUFXLEtBQUs7Q0FDaEIsT0FBTyxLQUFLO0NBQ1osS0FBSyxLQUFLO0NBQ1YsZUFBZSxLQUFLO0NBQ3BCLFdBQVcsS0FBSztDQUNoQixlQUFlLEtBQUs7Q0FDcEIsZUFBZSxLQUFLO0NBQ3BCLFVBQVUsS0FBSztDQUNmLFdBQVcsS0FBSztDQUNoQixRQUFRLEtBQUs7Q0FDYixPQUFPLEtBQUs7Q0FDWixTQUFTLEtBQUs7Q0FDZixFQUFFO0FBRUwsZUFBZSxrQkFBa0IsT0FBc0I7QUFDckQsS0FBSTtBQUNGLFNBQU8sTUFBTSxNQUFNLFNBQVMsTUFBTTtTQUM1QjtBQUNOLFNBQU8sRUFBRTs7O0FBSWIsZUFBZSw4QkFBOEIsVUFBa0IsT0FBZ0I7QUFDN0UsS0FBSSxFQUFFLGlCQUFpQixnQkFBZ0I7QUFDckMsaUJBQU8sUUFBUSxVQUFVLE1BQU07QUFDL0IsUUFBTTs7Q0FHUixNQUFNLGdCQUFnQixNQUFNLGtCQUFrQixNQUFNO0FBQ3BELEtBQ0UsZUFBZSxTQUFTLGFBQWEsS0FBSyx5QkFDMUMsZUFBZSxVQUFVLGFBQWEsS0FBSyxvQkFFM0MsT0FBTSxJQUFJLDZCQUE2QjtVQUV2QyxlQUFlLFVBQVUsYUFBYSxLQUFLLHFCQUMzQyxlQUFlLFVBQVUsYUFBYSxLQUFLLGFBQzNDO0FBQ0EsaUJBQU8sUUFDTCw0Q0FDQSxPQUNBLE1BQU0sVUFDTixjQUNEO0FBQ0QsUUFBTSxJQUFJLHdCQUF3Qjs7QUFHcEMsZ0JBQU8sUUFBUSxVQUFVLE1BQU07QUFDL0IsT0FBTTs7QUFHUixNQUFNLGdCQUFnQixjQUE4QyxPQUFVO0FBRTlFLE1BQWFBLGtCQUEyRCxFQUFFLGVBQWU7Q0FDdkYsTUFBTSxFQUFFLGdCQUFnQixjQUFjLGlCQUFpQjtDQUN2RCxNQUFNLFNBQVMsa0JBQWtCO0NBQ2pDLE1BQU0sYUFBYSxlQUFlO0NBQ2xDLE1BQU0sVUFBVSxhQUFhLFlBQVk7Q0FFekMsTUFBTSxVQUFVLFFBQVEsVUFBVSxjQUFjLFFBQVE7Q0FFeEQsTUFBTSxZQUFZLGNBQWM7QUFDOUIsTUFBSSxDQUFDLFFBQVMsUUFBTztFQUVyQixNQUFNQyxTQUF3QixJQUFJLGNBQWM7R0FDOUMsYUFBYTtHQUNiLFVBQVU7R0FDVixTQUFTO0lBQ1AsZ0JBQWdCO0lBQ2hCLFFBQVE7SUFDVDtHQUNGLENBQUM7QUFDRixTQUFPLElBQUksVUFBVSxPQUFPO0lBQzNCO0VBQUM7RUFBUTtFQUFTO0VBQVEsQ0FBQztDQUU5QixNQUFNLGlCQUFpQixZQUNyQixPQUFPLFdBQWdEO0FBQ3JELE1BQUksQ0FBQyxXQUFXLENBQUMsVUFDZixPQUFNLElBQUksTUFBTSxpREFBaUQ7QUFHbkUsTUFBSTtHQU9GLE1BQU0sRUFBRSxVQUFVLFNBQVMsb0JBQW9CLHFCQU45QixNQUFNLFVBQVUsaUJBQWlCO0lBQ2hELE9BQU8sT0FBTztJQUNkLE9BQU8sT0FBTztJQUNkLFFBQVEsV0FBVztJQUNuQixTQUFTLFdBQVc7SUFDckIsQ0FBQztBQUdGLFVBQU87SUFDTCxVQUFVLDBCQUEwQixTQUFTLElBQUksRUFBRTtJQUNuRCxTQUFTLFdBQVcsRUFBRTtJQUN0QixtQkFBbUIsVUFBVSxVQUFVO0lBQ3ZDLGtCQUFrQixvQkFBb0I7SUFDdkM7V0FDTSxPQUFPO0FBQ2QsU0FBTSw4QkFBOEIsNkJBQTZCLE1BQU07QUFFdkUsVUFBTztJQUNMLFVBQVUsRUFBRTtJQUNaLFNBQVMsRUFBRTtJQUNYLG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbkI7O0lBR0w7RUFBQztFQUFXO0VBQVM7RUFBVyxDQUNqQztBQUdELGlCQUFnQjtBQUNkLE1BQUksUUFDRiwwQkFBeUIsZUFBZTtNQUV4Qyw2QkFBNEI7QUFHOUIsZUFBYTtBQUNYLCtCQUE0Qjs7SUFFN0IsQ0FBQyxnQkFBZ0IsUUFBUSxDQUFDO0NBRTdCLE1BQU0sUUFBUSxlQUNMO0VBQ0w7RUFDQTtFQUNELEdBQ0QsQ0FBQyxnQkFBZ0IsUUFBUSxDQUMxQjtBQUVELFFBQU8sb0JBQUMsY0FBYztFQUFnQjtFQUFRO0dBQWtDOztBQUdsRixNQUFhLHlCQUF5QjtDQUNwQyxNQUFNLFVBQVUsV0FBVyxjQUFjO0FBQ3pDLEtBQUksQ0FBQyxRQUNILE9BQU0sSUFBSSxNQUFNLHdEQUF3RDtBQUUxRSxRQUFPIn0=
@@ -1,10 +1,10 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
2
  const require_exceptions = require('./exceptions-BjDgLzGi.cjs');
3
3
  const require_logger = require('./logger-BqHq67zN.cjs');
4
- const require_enviveConfig = require('./enviveConfig-Dp80h9yu.cjs');
4
+ const require_enviveConfig = require('./enviveConfig-CQ_8mT-g.cjs');
5
5
  const require_searchServiceAdapter = require('./searchServiceAdapter-BclWy4fE.cjs');
6
- const require_enviveConfigContext = require('./enviveConfigContext-DoYP8KSw.cjs');
7
- const require_useAppDetails = require('./useAppDetails-eP2hBuid.cjs');
6
+ const require_enviveConfigContext = require('./enviveConfigContext-BinpxTCy.cjs');
7
+ const require_useAppDetails = require('./useAppDetails-D3T6kJY_.cjs');
8
8
  let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
9
9
  __spiffy_ai_commerce_api_client = require_chunk.__toESM(__spiffy_ai_commerce_api_client);
10
10
  let react = require("react");
@@ -142,4 +142,4 @@ Object.defineProperty(exports, 'useSearchService', {
142
142
  return useSearchService;
143
143
  }
144
144
  });
145
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoQ29udGV4dC1CMHFFVW9LYi5janMiLCJuYW1lcyI6WyJSZXNwb25zZUNhdGVnb3J5IiwiUmVzcG9uc2VFcnJvciIsIlVuc3VwcG9ydGVkUHJvZHVjdEV4Y2VwdGlvbiIsIlNlc3Npb25SZXN0YXJ0UmVxdWlyZWQiLCJTZWFyY2hQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+IiwidXNlRW52aXZlQ29uZmlnIiwidXNlQXBwRGV0YWlscyIsImJhc2VVcmxBdG9tIiwiY29uZmlnOiBDb25maWd1cmF0aW9uIiwiQ29uZmlndXJhdGlvbiIsIlNlYXJjaEFwaSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0cy9zZWFyY2hDb250ZXh0L3NlYXJjaENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbixcbiAgUmVzcG9uc2VDYXRlZ29yeSxcbiAgUmVzcG9uc2VFcnJvcixcbiAgU2VhcmNoQXBpLFxufSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgYmFzZVVybEF0b20gfSBmcm9tICcuLi8uLi9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnLi4vLi4vYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgU2Vzc2lvblJlc3RhcnRSZXF1aXJlZCwgVW5zdXBwb3J0ZWRQcm9kdWN0RXhjZXB0aW9uIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyB1c2VBcHBEZXRhaWxzIH0gZnJvbSAnLi4vLi4vaG9va3MvQXBwRGV0YWlscy91c2VBcHBEZXRhaWxzJztcbmltcG9ydCB7IHVzZUVudml2ZUNvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnRleHRzL2Vudml2ZUNvbmZpZ0NvbnRleHQvZW52aXZlQ29uZmlnQ29udGV4dCc7XG5pbXBvcnQge1xuICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbixcbiAgc2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uLFxufSBmcm9tICcuLi8uLi9hdG9tcy9zZWFyY2gvc2VhcmNoU2VydmljZUFkYXB0ZXInO1xuaW1wb3J0IHsgU2VhcmNoQ29udGV4dFZhbHVlLCBTZWFyY2hQYXJhbXMsIFNlYXJjaFJlc3VsdCB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5jb25zdCB0cmFuc2Zvcm1Qcm9kdWN0UmVzcG9uc2VzID0gKHByb2R1Y3RzOiBTZWFyY2hSZXN1bHRbJ3Byb2R1Y3RzJ10pID0+XG4gIHByb2R1Y3RzLm1hcCgoZGF0YSkgPT4gKHtcbiAgICBpZDogZGF0YS5pZCxcbiAgICByZXNwb25zZUlkOiBkYXRhLnJlc3BvbnNlX2lkLFxuICAgIGNhdGVnb3J5OiBSZXNwb25zZUNhdGVnb3J5LlByb2R1Y3QsXG4gICAgZGVzY3JpcHRpb246IGRhdGEuZGVzY3JpcHRpb24sXG4gICAgaW1hZ2VVcmw6IGRhdGEuaW1hZ2VfdXJsLFxuICAgIGltYWdlVXJsczogZGF0YS5pbWFnZV91cmxzLFxuICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxuICAgIHVybDogZGF0YS51cmwsXG4gICAgb3JpZ2luYWxQcmljZTogZGF0YS5vcmlnaW5hbF9wcmljZSxcbiAgICBzYWxlUHJpY2U6IGRhdGEuc2FsZV9wcmljZSxcbiAgICBhdmVyYWdlUmF0aW5nOiBkYXRhLmF2ZXJhZ2VfcmF0aW5nLFxuICAgIG51bWJlclJldmlld3M6IGRhdGEubnVtYmVyX3Jldmlld3MsXG4gICAgbWV0YWRhdGE6IGRhdGEubWV0YWRhdGEsXG4gICAgaXNGb3JHcmlkOiBkYXRhLmlzX2Zvcl9ncmlkLFxuICAgIGNvbG9yczogZGF0YS5jb2xvcnMsXG4gICAgc2l6ZXM6IGRhdGEuc2l6ZXMsXG4gICAgZmlsdGVyczogZGF0YS5maWx0ZXJzLFxuICB9KSk7XG5cbmFzeW5jIGZ1bmN0aW9uIGVycm9yUmVzcG9uc2VCb2R5KGVycm9yOiBSZXNwb25zZUVycm9yKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGVycm9yLnJlc3BvbnNlLmpzb24oKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRocm93U2Vzc2lvblJlc3RhcnRSZXF1aXJlZElmKGVycm9yTXNnOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKSB7XG4gIGlmICghKGVycm9yIGluc3RhbmNlb2YgUmVzcG9uc2VFcnJvcikpIHtcbiAgICBMb2dnZXIubG9nSW5mbyhlcnJvck1zZywgZXJyb3IpO1xuICAgIHRocm93IGVycm9yO1xuICB9XG5cbiAgY29uc3QgZXJyb3JSZXNwb25zZSA9IGF3YWl0IGVycm9yUmVzcG9uc2VCb2R5KGVycm9yKTtcbiAgaWYgKFxuICAgIGVycm9yUmVzcG9uc2U/Lm1lc3NhZ2U/LnRvTG93ZXJDYXNlKCkgPT09ICd1bnN1cHBvcnRlZCBwcm9kdWN0JyB8fFxuICAgIGVycm9yUmVzcG9uc2U/LmFwcF9jb2RlPy50b1VwcGVyQ2FzZSgpID09PSAnUFJPRFVDVF9OT1RfRk9VTkQnXG4gICkge1xuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZFByb2R1Y3RFeGNlcHRpb24oKTtcbiAgfSBlbHNlIGlmIChcbiAgICBlcnJvclJlc3BvbnNlPy5hcHBfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gJ1JFU1RBUlRfU0VTU0lPTicgfHxcbiAgICBlcnJvclJlc3BvbnNlPy5zdWJfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gJ05PVF9GT1VORCdcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ0luZm8oXG4gICAgICAnU2Vzc2lvbiBkb2VzIG5vdCBleGlzdC4gUmUtc3RhcnQgc2Vzc2lvbicsXG4gICAgICBlcnJvcixcbiAgICAgIGVycm9yLnJlc3BvbnNlLFxuICAgICAgZXJyb3JSZXNwb25zZSxcbiAgICApO1xuICAgIHRocm93IG5ldyBTZXNzaW9uUmVzdGFydFJlcXVpcmVkKCk7XG4gIH1cblxuICBMb2dnZXIubG9nSW5mbyhlcnJvck1zZywgZXJyb3IpO1xuICB0aHJvdyBlcnJvcjtcbn1cblxuY29uc3QgU2VhcmNoQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U2VhcmNoQ29udGV4dFZhbHVlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgU2VhcmNoUHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9PiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgeyBvcmdMZXZlbEFwaUtleSwgcHVibGljS2V5IH0gPSB1c2VFbnZpdmVDb25maWcoKTtcbiAgY29uc3QgYXBpS2V5ID0gb3JnTGV2ZWxBcGlLZXkgfHwgcHVibGljS2V5OyAvLyBSZXBsaWNhdGUgYXBpS2V5QXRvbSBsb2dpY1xuICBjb25zdCBhcHBEZXRhaWxzID0gdXNlQXBwRGV0YWlscygpO1xuICBjb25zdCBiYXNlVXJsID0gdXNlQXRvbVZhbHVlKGJhc2VVcmxBdG9tKTtcblxuICBjb25zdCBpc1JlYWR5ID0gQm9vbGVhbihhcGlLZXkgJiYgYXBwRGV0YWlscyAmJiBiYXNlVXJsKTtcblxuICBjb25zdCBzZWFyY2hBcGkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWlzUmVhZHkpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgY29uZmlnOiBDb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oe1xuICAgICAgYWNjZXNzVG9rZW46IGFwaUtleSxcbiAgICAgIGJhc2VQYXRoOiBiYXNlVXJsLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBTZWFyY2hBcGkoY29uZmlnKTtcbiAgfSwgW2FwaUtleSwgYmFzZVVybCwgaXNSZWFkeV0pO1xuXG4gIGNvbnN0IHNlYXJjaFByb2R1Y3RzID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHBhcmFtczogU2VhcmNoUGFyYW1zKTogUHJvbWlzZTxTZWFyY2hSZXN1bHQ+ID0+IHtcbiAgICAgIGlmICghaXNSZWFkeSB8fCAhc2VhcmNoQXBpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU2VhcmNoU2VydmljZSBub3QgcmVhZHkgLSBtaXNzaW5nIGRlcGVuZGVuY2llcycpO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlYXJjaEFwaS52MVNlYXJjaFF1ZXJ5R2V0KHtcbiAgICAgICAgICBxdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgICAgIGxpbWl0OiBwYXJhbXMubGltaXQsXG4gICAgICAgICAgb3JnX2lkOiBhcHBEZXRhaWxzLm9yZ0lkLFxuICAgICAgICAgIHVzZXJfaWQ6IGFwcERldGFpbHMudXNlcklkLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgeyBwcm9kdWN0cywgZmlsdGVycywgc2VhcmNoX3Jlc3BvbnNlX2lkOiBzZWFyY2hSZXNwb25zZUlkIH0gPSByZXNwb25zZTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHByb2R1Y3RzOiB0cmFuc2Zvcm1Qcm9kdWN0UmVzcG9uc2VzKHByb2R1Y3RzKSB8fCBbXSxcbiAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzIHx8IFtdLFxuICAgICAgICAgIHRvdGFsUHJvZHVjdENvdW50OiBwcm9kdWN0cz8ubGVuZ3RoIHx8IDAsXG4gICAgICAgICAgc2VhcmNoUmVzcG9uc2VJZDogc2VhcmNoUmVzcG9uc2VJZCB8fCAnJyxcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGF3YWl0IHRocm93U2Vzc2lvblJlc3RhcnRSZXF1aXJlZElmKCdGYWlsZWQgdG8gc2VhcmNoIHByb2R1Y3RzJywgZXJyb3IpO1xuICAgICAgICAvLyBUaGlzIHBhcnQgd2lsbCBub3QgYmUgcmVhY2hlZCBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duLCBidXQgaXQncyByZXF1aXJlZCBmb3IgdHlwZSBzYWZldHlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwcm9kdWN0czogW10sXG4gICAgICAgICAgZmlsdGVyczogW10sXG4gICAgICAgICAgdG90YWxQcm9kdWN0Q291bnQ6IDAsXG4gICAgICAgICAgc2VhcmNoUmVzcG9uc2VJZDogJycsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSxcbiAgICBbc2VhcmNoQXBpLCBpc1JlYWR5LCBhcHBEZXRhaWxzXSxcbiAgKTtcblxuICAvLyBSZWdpc3RlciB0aGUgc2VhcmNoIGZ1bmN0aW9uIHdpdGggdGhlIGFkYXB0ZXIgZm9yIHVzZSBpbiBhdG9tc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1JlYWR5KSB7XG4gICAgICBzZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oc2VhcmNoUHJvZHVjdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgIH07XG4gIH0sIFtzZWFyY2hQcm9kdWN0cywgaXNSZWFkeV0pO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgc2VhcmNoUHJvZHVjdHMsXG4gICAgICBpc1JlYWR5LFxuICAgIH0pLFxuICAgIFtzZWFyY2hQcm9kdWN0cywgaXNSZWFkeV0sXG4gICk7XG5cbiAgcmV0dXJuIDxTZWFyY2hDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvU2VhcmNoQ29udGV4dC5Qcm92aWRlcj47XG59O1xuXG5leHBvcnQgY29uc3QgdXNlU2VhcmNoU2VydmljZSA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoU2VhcmNoQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlU2VhcmNoU2VydmljZSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgU2VhcmNoUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLE1BQU0sNkJBQTZCLGFBQ2pDLFNBQVMsS0FBSyxVQUFVO0NBQ3RCLElBQUksS0FBSztDQUNULFlBQVksS0FBSztDQUNqQixVQUFVQSxpREFBaUI7Q0FDM0IsYUFBYSxLQUFLO0NBQ2xCLFVBQVUsS0FBSztDQUNmLFdBQVcsS0FBSztDQUNoQixPQUFPLEtBQUs7Q0FDWixLQUFLLEtBQUs7Q0FDVixlQUFlLEtBQUs7Q0FDcEIsV0FBVyxLQUFLO0NBQ2hCLGVBQWUsS0FBSztDQUNwQixlQUFlLEtBQUs7Q0FDcEIsVUFBVSxLQUFLO0NBQ2YsV0FBVyxLQUFLO0NBQ2hCLFFBQVEsS0FBSztDQUNiLE9BQU8sS0FBSztDQUNaLFNBQVMsS0FBSztDQUNmLEVBQUU7QUFFTCxlQUFlLGtCQUFrQixPQUFzQjtBQUNyRCxLQUFJO0FBQ0YsU0FBTyxNQUFNLE1BQU0sU0FBUyxNQUFNO1NBQzVCO0FBQ04sU0FBTyxFQUFFOzs7QUFJYixlQUFlLDhCQUE4QixVQUFrQixPQUFnQjtBQUM3RSxLQUFJLEVBQUUsaUJBQWlCQyxnREFBZ0I7QUFDckMsZ0NBQU8sUUFBUSxVQUFVLE1BQU07QUFDL0IsUUFBTTs7Q0FHUixNQUFNLGdCQUFnQixNQUFNLGtCQUFrQixNQUFNO0FBQ3BELEtBQ0UsZUFBZSxTQUFTLGFBQWEsS0FBSyx5QkFDMUMsZUFBZSxVQUFVLGFBQWEsS0FBSyxvQkFFM0MsT0FBTSxJQUFJQyxnREFBNkI7VUFFdkMsZUFBZSxVQUFVLGFBQWEsS0FBSyxxQkFDM0MsZUFBZSxVQUFVLGFBQWEsS0FBSyxhQUMzQztBQUNBLGdDQUFPLFFBQ0wsNENBQ0EsT0FDQSxNQUFNLFVBQ04sY0FDRDtBQUNELFFBQU0sSUFBSUMsMkNBQXdCOztBQUdwQywrQkFBTyxRQUFRLFVBQVUsTUFBTTtBQUMvQixPQUFNOztBQUdSLE1BQU0seUNBQThELE9BQVU7QUFFOUUsTUFBYUMsa0JBQTJELEVBQUUsZUFBZTtDQUN2RixNQUFNLEVBQUUsZ0JBQWdCLGNBQWNDLDZDQUFpQjtDQUN2RCxNQUFNLFNBQVMsa0JBQWtCO0NBQ2pDLE1BQU0sYUFBYUMscUNBQWU7Q0FDbEMsTUFBTSxrQ0FBdUJDLGlDQUFZO0NBRXpDLE1BQU0sVUFBVSxRQUFRLFVBQVUsY0FBYyxRQUFRO0NBRXhELE1BQU0scUNBQTBCO0FBQzlCLE1BQUksQ0FBQyxRQUFTLFFBQU87RUFFckIsTUFBTUMsU0FBd0IsSUFBSUMsOENBQWM7R0FDOUMsYUFBYTtHQUNiLFVBQVU7R0FDVixTQUFTO0lBQ1AsZ0JBQWdCO0lBQ2hCLFFBQVE7SUFDVDtHQUNGLENBQUM7QUFDRixTQUFPLElBQUlDLDBDQUFVLE9BQU87SUFDM0I7RUFBQztFQUFRO0VBQVM7RUFBUSxDQUFDO0NBRTlCLE1BQU0sd0NBQ0osT0FBTyxXQUFnRDtBQUNyRCxNQUFJLENBQUMsV0FBVyxDQUFDLFVBQ2YsT0FBTSxJQUFJLE1BQU0saURBQWlEO0FBR25FLE1BQUk7R0FPRixNQUFNLEVBQUUsVUFBVSxTQUFTLG9CQUFvQixxQkFOOUIsTUFBTSxVQUFVLGlCQUFpQjtJQUNoRCxPQUFPLE9BQU87SUFDZCxPQUFPLE9BQU87SUFDZCxRQUFRLFdBQVc7SUFDbkIsU0FBUyxXQUFXO0lBQ3JCLENBQUM7QUFHRixVQUFPO0lBQ0wsVUFBVSwwQkFBMEIsU0FBUyxJQUFJLEVBQUU7SUFDbkQsU0FBUyxXQUFXLEVBQUU7SUFDdEIsbUJBQW1CLFVBQVUsVUFBVTtJQUN2QyxrQkFBa0Isb0JBQW9CO0lBQ3ZDO1dBQ00sT0FBTztBQUNkLFNBQU0sOEJBQThCLDZCQUE2QixNQUFNO0FBRXZFLFVBQU87SUFDTCxVQUFVLEVBQUU7SUFDWixTQUFTLEVBQUU7SUFDWCxtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ25COztJQUdMO0VBQUM7RUFBVztFQUFTO0VBQVcsQ0FDakM7QUFHRCw0QkFBZ0I7QUFDZCxNQUFJLFFBQ0YsdURBQXlCLGVBQWU7TUFFeEMsMERBQTRCO0FBRzlCLGVBQWE7QUFDWCw0REFBNEI7O0lBRTdCLENBQUMsZ0JBQWdCLFFBQVEsQ0FBQztDQUU3QixNQUFNLGtDQUNHO0VBQ0w7RUFDQTtFQUNELEdBQ0QsQ0FBQyxnQkFBZ0IsUUFBUSxDQUMxQjtBQUVELFFBQU8sMkNBQUMsY0FBYztFQUFnQjtFQUFRO0dBQWtDOztBQUdsRixNQUFhLHlCQUF5QjtDQUNwQyxNQUFNLGdDQUFxQixjQUFjO0FBQ3pDLEtBQUksQ0FBQyxRQUNILE9BQU0sSUFBSSxNQUFNLHdEQUF3RDtBQUUxRSxRQUFPIn0=
145
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoQ29udGV4dC1KQ1VCZy1sQS5janMiLCJuYW1lcyI6WyJSZXNwb25zZUNhdGVnb3J5IiwiUmVzcG9uc2VFcnJvciIsIlVuc3VwcG9ydGVkUHJvZHVjdEV4Y2VwdGlvbiIsIlNlc3Npb25SZXN0YXJ0UmVxdWlyZWQiLCJTZWFyY2hQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+IiwidXNlRW52aXZlQ29uZmlnIiwidXNlQXBwRGV0YWlscyIsImJhc2VVcmxBdG9tIiwiY29uZmlnOiBDb25maWd1cmF0aW9uIiwiQ29uZmlndXJhdGlvbiIsIlNlYXJjaEFwaSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0cy9zZWFyY2hDb250ZXh0L3NlYXJjaENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbixcbiAgUmVzcG9uc2VDYXRlZ29yeSxcbiAgUmVzcG9uc2VFcnJvcixcbiAgU2VhcmNoQXBpLFxufSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgYmFzZVVybEF0b20gfSBmcm9tICcuLi8uLi9hdG9tcy9lbnZpdmUvZW52aXZlQ29uZmlnJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnLi4vLi4vYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgU2Vzc2lvblJlc3RhcnRSZXF1aXJlZCwgVW5zdXBwb3J0ZWRQcm9kdWN0RXhjZXB0aW9uIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucyc7XG5pbXBvcnQgeyB1c2VBcHBEZXRhaWxzIH0gZnJvbSAnLi4vLi4vaG9va3MvQXBwRGV0YWlscy91c2VBcHBEZXRhaWxzJztcbmltcG9ydCB7IHVzZUVudml2ZUNvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnRleHRzL2Vudml2ZUNvbmZpZ0NvbnRleHQvZW52aXZlQ29uZmlnQ29udGV4dCc7XG5pbXBvcnQge1xuICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbixcbiAgc2V0U2VhcmNoU2VydmljZUZ1bmN0aW9uLFxufSBmcm9tICcuLi8uLi9hdG9tcy9zZWFyY2gvc2VhcmNoU2VydmljZUFkYXB0ZXInO1xuaW1wb3J0IHsgU2VhcmNoQ29udGV4dFZhbHVlLCBTZWFyY2hQYXJhbXMsIFNlYXJjaFJlc3VsdCB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5jb25zdCB0cmFuc2Zvcm1Qcm9kdWN0UmVzcG9uc2VzID0gKHByb2R1Y3RzOiBTZWFyY2hSZXN1bHRbJ3Byb2R1Y3RzJ10pID0+XG4gIHByb2R1Y3RzLm1hcCgoZGF0YSkgPT4gKHtcbiAgICBpZDogZGF0YS5pZCxcbiAgICByZXNwb25zZUlkOiBkYXRhLnJlc3BvbnNlX2lkLFxuICAgIGNhdGVnb3J5OiBSZXNwb25zZUNhdGVnb3J5LlByb2R1Y3QsXG4gICAgZGVzY3JpcHRpb246IGRhdGEuZGVzY3JpcHRpb24sXG4gICAgaW1hZ2VVcmw6IGRhdGEuaW1hZ2VfdXJsLFxuICAgIGltYWdlVXJsczogZGF0YS5pbWFnZV91cmxzLFxuICAgIHRpdGxlOiBkYXRhLnRpdGxlLFxuICAgIHVybDogZGF0YS51cmwsXG4gICAgb3JpZ2luYWxQcmljZTogZGF0YS5vcmlnaW5hbF9wcmljZSxcbiAgICBzYWxlUHJpY2U6IGRhdGEuc2FsZV9wcmljZSxcbiAgICBhdmVyYWdlUmF0aW5nOiBkYXRhLmF2ZXJhZ2VfcmF0aW5nLFxuICAgIG51bWJlclJldmlld3M6IGRhdGEubnVtYmVyX3Jldmlld3MsXG4gICAgbWV0YWRhdGE6IGRhdGEubWV0YWRhdGEsXG4gICAgaXNGb3JHcmlkOiBkYXRhLmlzX2Zvcl9ncmlkLFxuICAgIGNvbG9yczogZGF0YS5jb2xvcnMsXG4gICAgc2l6ZXM6IGRhdGEuc2l6ZXMsXG4gICAgZmlsdGVyczogZGF0YS5maWx0ZXJzLFxuICB9KSk7XG5cbmFzeW5jIGZ1bmN0aW9uIGVycm9yUmVzcG9uc2VCb2R5KGVycm9yOiBSZXNwb25zZUVycm9yKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGVycm9yLnJlc3BvbnNlLmpzb24oKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRocm93U2Vzc2lvblJlc3RhcnRSZXF1aXJlZElmKGVycm9yTXNnOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKSB7XG4gIGlmICghKGVycm9yIGluc3RhbmNlb2YgUmVzcG9uc2VFcnJvcikpIHtcbiAgICBMb2dnZXIubG9nSW5mbyhlcnJvck1zZywgZXJyb3IpO1xuICAgIHRocm93IGVycm9yO1xuICB9XG5cbiAgY29uc3QgZXJyb3JSZXNwb25zZSA9IGF3YWl0IGVycm9yUmVzcG9uc2VCb2R5KGVycm9yKTtcbiAgaWYgKFxuICAgIGVycm9yUmVzcG9uc2U/Lm1lc3NhZ2U/LnRvTG93ZXJDYXNlKCkgPT09ICd1bnN1cHBvcnRlZCBwcm9kdWN0JyB8fFxuICAgIGVycm9yUmVzcG9uc2U/LmFwcF9jb2RlPy50b1VwcGVyQ2FzZSgpID09PSAnUFJPRFVDVF9OT1RfRk9VTkQnXG4gICkge1xuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZFByb2R1Y3RFeGNlcHRpb24oKTtcbiAgfSBlbHNlIGlmIChcbiAgICBlcnJvclJlc3BvbnNlPy5hcHBfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gJ1JFU1RBUlRfU0VTU0lPTicgfHxcbiAgICBlcnJvclJlc3BvbnNlPy5zdWJfY29kZT8udG9VcHBlckNhc2UoKSA9PT0gJ05PVF9GT1VORCdcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ0luZm8oXG4gICAgICAnU2Vzc2lvbiBkb2VzIG5vdCBleGlzdC4gUmUtc3RhcnQgc2Vzc2lvbicsXG4gICAgICBlcnJvcixcbiAgICAgIGVycm9yLnJlc3BvbnNlLFxuICAgICAgZXJyb3JSZXNwb25zZSxcbiAgICApO1xuICAgIHRocm93IG5ldyBTZXNzaW9uUmVzdGFydFJlcXVpcmVkKCk7XG4gIH1cblxuICBMb2dnZXIubG9nSW5mbyhlcnJvck1zZywgZXJyb3IpO1xuICB0aHJvdyBlcnJvcjtcbn1cblxuY29uc3QgU2VhcmNoQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U2VhcmNoQ29udGV4dFZhbHVlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgU2VhcmNoUHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9PiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgeyBvcmdMZXZlbEFwaUtleSwgcHVibGljS2V5IH0gPSB1c2VFbnZpdmVDb25maWcoKTtcbiAgY29uc3QgYXBpS2V5ID0gb3JnTGV2ZWxBcGlLZXkgfHwgcHVibGljS2V5OyAvLyBSZXBsaWNhdGUgYXBpS2V5QXRvbSBsb2dpY1xuICBjb25zdCBhcHBEZXRhaWxzID0gdXNlQXBwRGV0YWlscygpO1xuICBjb25zdCBiYXNlVXJsID0gdXNlQXRvbVZhbHVlKGJhc2VVcmxBdG9tKTtcblxuICBjb25zdCBpc1JlYWR5ID0gQm9vbGVhbihhcGlLZXkgJiYgYXBwRGV0YWlscyAmJiBiYXNlVXJsKTtcblxuICBjb25zdCBzZWFyY2hBcGkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWlzUmVhZHkpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgY29uZmlnOiBDb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oe1xuICAgICAgYWNjZXNzVG9rZW46IGFwaUtleSxcbiAgICAgIGJhc2VQYXRoOiBiYXNlVXJsLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIG5ldyBTZWFyY2hBcGkoY29uZmlnKTtcbiAgfSwgW2FwaUtleSwgYmFzZVVybCwgaXNSZWFkeV0pO1xuXG4gIGNvbnN0IHNlYXJjaFByb2R1Y3RzID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHBhcmFtczogU2VhcmNoUGFyYW1zKTogUHJvbWlzZTxTZWFyY2hSZXN1bHQ+ID0+IHtcbiAgICAgIGlmICghaXNSZWFkeSB8fCAhc2VhcmNoQXBpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU2VhcmNoU2VydmljZSBub3QgcmVhZHkgLSBtaXNzaW5nIGRlcGVuZGVuY2llcycpO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHNlYXJjaEFwaS52MVNlYXJjaFF1ZXJ5R2V0KHtcbiAgICAgICAgICBxdWVyeTogcGFyYW1zLnF1ZXJ5LFxuICAgICAgICAgIGxpbWl0OiBwYXJhbXMubGltaXQsXG4gICAgICAgICAgb3JnX2lkOiBhcHBEZXRhaWxzLm9yZ0lkLFxuICAgICAgICAgIHVzZXJfaWQ6IGFwcERldGFpbHMudXNlcklkLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgeyBwcm9kdWN0cywgZmlsdGVycywgc2VhcmNoX3Jlc3BvbnNlX2lkOiBzZWFyY2hSZXNwb25zZUlkIH0gPSByZXNwb25zZTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHByb2R1Y3RzOiB0cmFuc2Zvcm1Qcm9kdWN0UmVzcG9uc2VzKHByb2R1Y3RzKSB8fCBbXSxcbiAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzIHx8IFtdLFxuICAgICAgICAgIHRvdGFsUHJvZHVjdENvdW50OiBwcm9kdWN0cz8ubGVuZ3RoIHx8IDAsXG4gICAgICAgICAgc2VhcmNoUmVzcG9uc2VJZDogc2VhcmNoUmVzcG9uc2VJZCB8fCAnJyxcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGF3YWl0IHRocm93U2Vzc2lvblJlc3RhcnRSZXF1aXJlZElmKCdGYWlsZWQgdG8gc2VhcmNoIHByb2R1Y3RzJywgZXJyb3IpO1xuICAgICAgICAvLyBUaGlzIHBhcnQgd2lsbCBub3QgYmUgcmVhY2hlZCBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duLCBidXQgaXQncyByZXF1aXJlZCBmb3IgdHlwZSBzYWZldHlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwcm9kdWN0czogW10sXG4gICAgICAgICAgZmlsdGVyczogW10sXG4gICAgICAgICAgdG90YWxQcm9kdWN0Q291bnQ6IDAsXG4gICAgICAgICAgc2VhcmNoUmVzcG9uc2VJZDogJycsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSxcbiAgICBbc2VhcmNoQXBpLCBpc1JlYWR5LCBhcHBEZXRhaWxzXSxcbiAgKTtcblxuICAvLyBSZWdpc3RlciB0aGUgc2VhcmNoIGZ1bmN0aW9uIHdpdGggdGhlIGFkYXB0ZXIgZm9yIHVzZSBpbiBhdG9tc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1JlYWR5KSB7XG4gICAgICBzZXRTZWFyY2hTZXJ2aWNlRnVuY3Rpb24oc2VhcmNoUHJvZHVjdHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaFNlcnZpY2VGdW5jdGlvbigpO1xuICAgIH07XG4gIH0sIFtzZWFyY2hQcm9kdWN0cywgaXNSZWFkeV0pO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgc2VhcmNoUHJvZHVjdHMsXG4gICAgICBpc1JlYWR5LFxuICAgIH0pLFxuICAgIFtzZWFyY2hQcm9kdWN0cywgaXNSZWFkeV0sXG4gICk7XG5cbiAgcmV0dXJuIDxTZWFyY2hDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvU2VhcmNoQ29udGV4dC5Qcm92aWRlcj47XG59O1xuXG5leHBvcnQgY29uc3QgdXNlU2VhcmNoU2VydmljZSA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoU2VhcmNoQ29udGV4dCk7XG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlU2VhcmNoU2VydmljZSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgU2VhcmNoUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLE1BQU0sNkJBQTZCLGFBQ2pDLFNBQVMsS0FBSyxVQUFVO0NBQ3RCLElBQUksS0FBSztDQUNULFlBQVksS0FBSztDQUNqQixVQUFVQSxpREFBaUI7Q0FDM0IsYUFBYSxLQUFLO0NBQ2xCLFVBQVUsS0FBSztDQUNmLFdBQVcsS0FBSztDQUNoQixPQUFPLEtBQUs7Q0FDWixLQUFLLEtBQUs7Q0FDVixlQUFlLEtBQUs7Q0FDcEIsV0FBVyxLQUFLO0NBQ2hCLGVBQWUsS0FBSztDQUNwQixlQUFlLEtBQUs7Q0FDcEIsVUFBVSxLQUFLO0NBQ2YsV0FBVyxLQUFLO0NBQ2hCLFFBQVEsS0FBSztDQUNiLE9BQU8sS0FBSztDQUNaLFNBQVMsS0FBSztDQUNmLEVBQUU7QUFFTCxlQUFlLGtCQUFrQixPQUFzQjtBQUNyRCxLQUFJO0FBQ0YsU0FBTyxNQUFNLE1BQU0sU0FBUyxNQUFNO1NBQzVCO0FBQ04sU0FBTyxFQUFFOzs7QUFJYixlQUFlLDhCQUE4QixVQUFrQixPQUFnQjtBQUM3RSxLQUFJLEVBQUUsaUJBQWlCQyxnREFBZ0I7QUFDckMsZ0NBQU8sUUFBUSxVQUFVLE1BQU07QUFDL0IsUUFBTTs7Q0FHUixNQUFNLGdCQUFnQixNQUFNLGtCQUFrQixNQUFNO0FBQ3BELEtBQ0UsZUFBZSxTQUFTLGFBQWEsS0FBSyx5QkFDMUMsZUFBZSxVQUFVLGFBQWEsS0FBSyxvQkFFM0MsT0FBTSxJQUFJQyxnREFBNkI7VUFFdkMsZUFBZSxVQUFVLGFBQWEsS0FBSyxxQkFDM0MsZUFBZSxVQUFVLGFBQWEsS0FBSyxhQUMzQztBQUNBLGdDQUFPLFFBQ0wsNENBQ0EsT0FDQSxNQUFNLFVBQ04sY0FDRDtBQUNELFFBQU0sSUFBSUMsMkNBQXdCOztBQUdwQywrQkFBTyxRQUFRLFVBQVUsTUFBTTtBQUMvQixPQUFNOztBQUdSLE1BQU0seUNBQThELE9BQVU7QUFFOUUsTUFBYUMsa0JBQTJELEVBQUUsZUFBZTtDQUN2RixNQUFNLEVBQUUsZ0JBQWdCLGNBQWNDLDZDQUFpQjtDQUN2RCxNQUFNLFNBQVMsa0JBQWtCO0NBQ2pDLE1BQU0sYUFBYUMscUNBQWU7Q0FDbEMsTUFBTSxrQ0FBdUJDLGlDQUFZO0NBRXpDLE1BQU0sVUFBVSxRQUFRLFVBQVUsY0FBYyxRQUFRO0NBRXhELE1BQU0scUNBQTBCO0FBQzlCLE1BQUksQ0FBQyxRQUFTLFFBQU87RUFFckIsTUFBTUMsU0FBd0IsSUFBSUMsOENBQWM7R0FDOUMsYUFBYTtHQUNiLFVBQVU7R0FDVixTQUFTO0lBQ1AsZ0JBQWdCO0lBQ2hCLFFBQVE7SUFDVDtHQUNGLENBQUM7QUFDRixTQUFPLElBQUlDLDBDQUFVLE9BQU87SUFDM0I7RUFBQztFQUFRO0VBQVM7RUFBUSxDQUFDO0NBRTlCLE1BQU0sd0NBQ0osT0FBTyxXQUFnRDtBQUNyRCxNQUFJLENBQUMsV0FBVyxDQUFDLFVBQ2YsT0FBTSxJQUFJLE1BQU0saURBQWlEO0FBR25FLE1BQUk7R0FPRixNQUFNLEVBQUUsVUFBVSxTQUFTLG9CQUFvQixxQkFOOUIsTUFBTSxVQUFVLGlCQUFpQjtJQUNoRCxPQUFPLE9BQU87SUFDZCxPQUFPLE9BQU87SUFDZCxRQUFRLFdBQVc7SUFDbkIsU0FBUyxXQUFXO0lBQ3JCLENBQUM7QUFHRixVQUFPO0lBQ0wsVUFBVSwwQkFBMEIsU0FBUyxJQUFJLEVBQUU7SUFDbkQsU0FBUyxXQUFXLEVBQUU7SUFDdEIsbUJBQW1CLFVBQVUsVUFBVTtJQUN2QyxrQkFBa0Isb0JBQW9CO0lBQ3ZDO1dBQ00sT0FBTztBQUNkLFNBQU0sOEJBQThCLDZCQUE2QixNQUFNO0FBRXZFLFVBQU87SUFDTCxVQUFVLEVBQUU7SUFDWixTQUFTLEVBQUU7SUFDWCxtQkFBbUI7SUFDbkIsa0JBQWtCO0lBQ25COztJQUdMO0VBQUM7RUFBVztFQUFTO0VBQVcsQ0FDakM7QUFHRCw0QkFBZ0I7QUFDZCxNQUFJLFFBQ0YsdURBQXlCLGVBQWU7TUFFeEMsMERBQTRCO0FBRzlCLGVBQWE7QUFDWCw0REFBNEI7O0lBRTdCLENBQUMsZ0JBQWdCLFFBQVEsQ0FBQztDQUU3QixNQUFNLGtDQUNHO0VBQ0w7RUFDQTtFQUNELEdBQ0QsQ0FBQyxnQkFBZ0IsUUFBUSxDQUMxQjtBQUVELFFBQU8sMkNBQUMsY0FBYztFQUFnQjtFQUFRO0dBQWtDOztBQUdsRixNQUFhLHlCQUF5QjtDQUNwQyxNQUFNLGdDQUFxQixjQUFjO0FBQ3pDLEtBQUksQ0FBQyxRQUNILE9BQU0sSUFBSSxNQUFNLHdEQUF3RDtBQUUxRSxRQUFPIn0=
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_urlsParser = require('./urlsParser-bb8ciRFg.cjs');
2
+ const require_urlsParser = require('./urlsParser-Dax4iVNC.cjs');
3
3
  let react = require("react");
4
4
  react = require_chunk.__toESM(react);
5
5
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -72,4 +72,4 @@ Object.defineProperty(exports, 'useShopifyUrl', {
72
72
  return useShopifyUrl;
73
73
  }
74
74
  });
75
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcGlmeVVybENvbnRleHQtQncxa0FaMlAuY2pzIiwibmFtZXMiOlsiU2hvcGlmeVVybFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4iLCJwYXJzZUhyZWYiXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvc2hvcGlmeVVybENvbnRleHQvc2hvcGlmeVVybENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHBhcnNlSHJlZiB9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uL3V0aWxzL3VybHNQYXJzZXInO1xuaW1wb3J0IHsgSWRFeHRyYWN0b3IsIFNob3BpZnlVcmxDb250ZXh0VHlwZSB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5jb25zdCBTaG9waWZ5VXJsQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U2hvcGlmeVVybENvbnRleHRUeXBlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgU2hvcGlmeVVybFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4gPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IGlzUmVhZHkgPSB0cnVlOyAvLyBObyBleHRlcm5hbCBkZXBlbmRlbmNpZXMsIHNvIGFsd2F5cyByZWFkeVxuXG4gIGNvbnN0IGdldFRyaW1tZWRQYXRoTmFtZSA9IHVzZUNhbGxiYWNrKCgpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgICBsZXQgeyBwYXRobmFtZSB9ID0gd2luZG93LmxvY2F0aW9uO1xuICAgIC8vIHN0cmlwIG91dCB0aGUgcHJveHkgcGF0aCBzbyBsb2NhbCBkZXYgc3RpbGwgd29ya3NcbiAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoJy9wcm94eScsICcnKTtcbiAgICAvLyByZW1vdmUgdHJhaWxpbmcgaGFzaCBpZiBpdCBleGlzdHNcbiAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoLyMuKiQvLCAnJyk7XG4gICAgLy8gcmVtb3ZlIHRyYWlsaW5nIC8sIGllLiBzb21lIFVSTHMgY2FuIGVuZCB3aXRoICcvJyBsaWtlIC9jb2xsZWN0aW9ucy9jYXN0LWlyb24vXG4gICAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9cXC8kLywgJycpO1xuXG4gICAgaWYgKHBhdGhuYW1lID09PSB1bmRlZmluZWQgfHwgcGF0aG5hbWUgPT09IG51bGwgfHwgcGF0aG5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGF0aG5hbWU7XG4gIH0sIFtdKTtcblxuICBjb25zdCBnZXRQbHBPclBkcElkID0gdXNlQ2FsbGJhY2soXG4gICAgKGV4dHJhY3RvcjogSWRFeHRyYWN0b3IpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgICAgIGlmIChleHRyYWN0b3IgPT09ICdzaG9waWZ5LXByb2R1Y3QtdmFyaWFudC1pZCcpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkSHJlZiA9IHBhcnNlSHJlZih3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgIGNvbnN0IHZhcmlhbnRJZCA9IHBhcnNlZEhyZWY/LnVybFNlYXJjaFBhcmFtcz8uZ2V0KCd2YXJpYW50Jyk7XG4gICAgICAgIGlmICghdmFyaWFudElkKSB7XG4gICAgICAgICAgcmV0dXJuIGdldFBscE9yUGRwSWQoJ3Nob3BpZnktcHJvZHVjdC1pZCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YXJpYW50SWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhdGhTZWdtZW50ID0gZXh0cmFjdG9yID09PSAnc2hvcGlmeS1wcm9kdWN0LWlkJyA/ICdwcm9kdWN0cycgOiAnY29sbGVjdGlvbnMnO1xuICAgICAgY29uc3QgdG9rZW5zID0gZ2V0VHJpbW1lZFBhdGhOYW1lKCk/LnNwbGl0KCcvJyk7XG4gICAgICBjb25zdCBpZEluZGV4ID0gdG9rZW5zPy5maW5kSW5kZXgoKHRva2VuKSA9PiB0b2tlbiA9PT0gcGF0aFNlZ21lbnQpO1xuICAgICAgaWYgKGlkSW5kZXggIT09IHVuZGVmaW5lZCAmJiBpZEluZGV4ID49IDAgJiYgdG9rZW5zKSB7XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodG9rZW5zW2lkSW5kZXggKyAxXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuICAgIFtnZXRUcmltbWVkUGF0aE5hbWVdLFxuICApO1xuXG4gIGNvbnN0IGlzT25QZHBQYWdlID0gdXNlQ2FsbGJhY2soKCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBnZXRUcmltbWVkUGF0aE5hbWUoKT8uaW5jbHVkZXMoJy9wcm9kdWN0cycpID8/IGZhbHNlO1xuICB9LCBbZ2V0VHJpbW1lZFBhdGhOYW1lXSk7XG5cbiAgY29uc3QgaXNPblBscFBhZ2UgPSB1c2VDYWxsYmFjaygoKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIChnZXRUcmltbWVkUGF0aE5hbWUoKT8uaW5jbHVkZXMoJy9jb2xsZWN0aW9ucycpICYmXG4gICAgICAgICFnZXRUcmltbWVkUGF0aE5hbWUoKT8uaW5jbHVkZXMoJy9wcm9kdWN0cycpKSA/P1xuICAgICAgZmFsc2VcbiAgICApO1xuICB9LCBbZ2V0VHJpbW1lZFBhdGhOYW1lXSk7XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBnZXRUcmltbWVkUGF0aE5hbWUsXG4gICAgICBnZXRQbHBPclBkcElkLFxuICAgICAgaXNPblBkcFBhZ2UsXG4gICAgICBpc09uUGxwUGFnZSxcbiAgICAgIGlzUmVhZHksXG4gICAgfSksXG4gICAgW2dldFRyaW1tZWRQYXRoTmFtZSwgZ2V0UGxwT3JQZHBJZCwgaXNPblBkcFBhZ2UsIGlzT25QbHBQYWdlLCBpc1JlYWR5XSxcbiAgKTtcblxuICByZXR1cm4gPFNob3BpZnlVcmxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvU2hvcGlmeVVybENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVNob3BpZnlVcmwgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFNob3BpZnlVcmxDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VTaG9waWZ5VXJsIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBTaG9waWZ5VXJsUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsTUFBTSw2Q0FBcUUsT0FBVTtBQUVyRixNQUFhQSxzQkFBK0QsRUFBRSxlQUFlO0NBQzNGLE1BQU0sVUFBVTtDQUVoQixNQUFNLGtEQUFzRDtFQUMxRCxJQUFJLEVBQUUsYUFBYSxPQUFPO0FBRTFCLGFBQVcsU0FBUyxRQUFRLFVBQVUsR0FBRztBQUV6QyxhQUFXLFNBQVMsUUFBUSxRQUFRLEdBQUc7QUFFdkMsYUFBVyxTQUFTLFFBQVEsT0FBTyxHQUFHO0FBRXRDLE1BQUksYUFBYSxVQUFhLGFBQWEsUUFBUSxTQUFTLFdBQVcsRUFDckUsUUFBTztBQUdULFNBQU87SUFDTixFQUFFLENBQUM7Q0FFTixNQUFNLHdDQUNILGNBQTBDO0FBQ3pDLE1BQUksY0FBYyw4QkFBOEI7R0FFOUMsTUFBTSxZQURhQyw2QkFBVSxPQUFPLFNBQVMsS0FBSyxFQUNwQixpQkFBaUIsSUFBSSxVQUFVO0FBQzdELE9BQUksQ0FBQyxVQUNILFFBQU8sY0FBYyxxQkFBcUI7QUFFNUMsVUFBTzs7RUFHVCxNQUFNLGNBQWMsY0FBYyx1QkFBdUIsYUFBYTtFQUN0RSxNQUFNLFNBQVMsb0JBQW9CLEVBQUUsTUFBTSxJQUFJO0VBQy9DLE1BQU0sVUFBVSxRQUFRLFdBQVcsVUFBVSxVQUFVLFlBQVk7QUFDbkUsTUFBSSxZQUFZLFVBQWEsV0FBVyxLQUFLLE9BQzNDLFFBQU8sbUJBQW1CLE9BQU8sVUFBVSxHQUFHO0FBRWhELFNBQU87SUFFVCxDQUFDLG1CQUFtQixDQUNyQjtDQUVELE1BQU0sMkNBQXlDO0FBQzdDLFNBQU8sb0JBQW9CLEVBQUUsU0FBUyxZQUFZLElBQUk7SUFDckQsQ0FBQyxtQkFBbUIsQ0FBQztDQUV4QixNQUFNLDJDQUF5QztBQUM3QyxVQUNHLG9CQUFvQixFQUFFLFNBQVMsZUFBZSxJQUM3QyxDQUFDLG9CQUFvQixFQUFFLFNBQVMsWUFBWSxLQUM5QztJQUVELENBQUMsbUJBQW1CLENBQUM7Q0FFeEIsTUFBTSxrQ0FDRztFQUNMO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDRCxHQUNEO0VBQUM7RUFBb0I7RUFBZTtFQUFhO0VBQWE7RUFBUSxDQUN2RTtBQUVELFFBQU8sMkNBQUMsa0JBQWtCO0VBQWdCO0VBQVE7R0FBc0M7O0FBRzFGLE1BQWEsc0JBQXNCO0NBQ2pDLE1BQU0sZ0NBQXFCLGtCQUFrQjtBQUM3QyxLQUFJLENBQUMsUUFDSCxPQUFNLElBQUksTUFBTSx5REFBeUQ7QUFFM0UsUUFBTyJ9
75
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcGlmeVVybENvbnRleHQtQ09jMWVEUl8uY2pzIiwibmFtZXMiOlsiU2hvcGlmeVVybFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4iLCJwYXJzZUhyZWYiXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvc2hvcGlmeVVybENvbnRleHQvc2hvcGlmeVVybENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHBhcnNlSHJlZiB9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uL3V0aWxzL3VybHNQYXJzZXInO1xuaW1wb3J0IHsgSWRFeHRyYWN0b3IsIFNob3BpZnlVcmxDb250ZXh0VHlwZSB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuXG5jb25zdCBTaG9waWZ5VXJsQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U2hvcGlmeVVybENvbnRleHRUeXBlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgU2hvcGlmeVVybFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4gPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IGlzUmVhZHkgPSB0cnVlOyAvLyBObyBleHRlcm5hbCBkZXBlbmRlbmNpZXMsIHNvIGFsd2F5cyByZWFkeVxuXG4gIGNvbnN0IGdldFRyaW1tZWRQYXRoTmFtZSA9IHVzZUNhbGxiYWNrKCgpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgICBsZXQgeyBwYXRobmFtZSB9ID0gd2luZG93LmxvY2F0aW9uO1xuICAgIC8vIHN0cmlwIG91dCB0aGUgcHJveHkgcGF0aCBzbyBsb2NhbCBkZXYgc3RpbGwgd29ya3NcbiAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoJy9wcm94eScsICcnKTtcbiAgICAvLyByZW1vdmUgdHJhaWxpbmcgaGFzaCBpZiBpdCBleGlzdHNcbiAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoLyMuKiQvLCAnJyk7XG4gICAgLy8gcmVtb3ZlIHRyYWlsaW5nIC8sIGllLiBzb21lIFVSTHMgY2FuIGVuZCB3aXRoICcvJyBsaWtlIC9jb2xsZWN0aW9ucy9jYXN0LWlyb24vXG4gICAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9cXC8kLywgJycpO1xuXG4gICAgaWYgKHBhdGhuYW1lID09PSB1bmRlZmluZWQgfHwgcGF0aG5hbWUgPT09IG51bGwgfHwgcGF0aG5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGF0aG5hbWU7XG4gIH0sIFtdKTtcblxuICBjb25zdCBnZXRQbHBPclBkcElkID0gdXNlQ2FsbGJhY2soXG4gICAgKGV4dHJhY3RvcjogSWRFeHRyYWN0b3IpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgICAgIGlmIChleHRyYWN0b3IgPT09ICdzaG9waWZ5LXByb2R1Y3QtdmFyaWFudC1pZCcpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkSHJlZiA9IHBhcnNlSHJlZih3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICAgIGNvbnN0IHZhcmlhbnRJZCA9IHBhcnNlZEhyZWY/LnVybFNlYXJjaFBhcmFtcz8uZ2V0KCd2YXJpYW50Jyk7XG4gICAgICAgIGlmICghdmFyaWFudElkKSB7XG4gICAgICAgICAgcmV0dXJuIGdldFBscE9yUGRwSWQoJ3Nob3BpZnktcHJvZHVjdC1pZCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YXJpYW50SWQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhdGhTZWdtZW50ID0gZXh0cmFjdG9yID09PSAnc2hvcGlmeS1wcm9kdWN0LWlkJyA/ICdwcm9kdWN0cycgOiAnY29sbGVjdGlvbnMnO1xuICAgICAgY29uc3QgdG9rZW5zID0gZ2V0VHJpbW1lZFBhdGhOYW1lKCk/LnNwbGl0KCcvJyk7XG4gICAgICBjb25zdCBpZEluZGV4ID0gdG9rZW5zPy5maW5kSW5kZXgoKHRva2VuKSA9PiB0b2tlbiA9PT0gcGF0aFNlZ21lbnQpO1xuICAgICAgaWYgKGlkSW5kZXggIT09IHVuZGVmaW5lZCAmJiBpZEluZGV4ID49IDAgJiYgdG9rZW5zKSB7XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodG9rZW5zW2lkSW5kZXggKyAxXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuICAgIFtnZXRUcmltbWVkUGF0aE5hbWVdLFxuICApO1xuXG4gIGNvbnN0IGlzT25QZHBQYWdlID0gdXNlQ2FsbGJhY2soKCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBnZXRUcmltbWVkUGF0aE5hbWUoKT8uaW5jbHVkZXMoJy9wcm9kdWN0cycpID8/IGZhbHNlO1xuICB9LCBbZ2V0VHJpbW1lZFBhdGhOYW1lXSk7XG5cbiAgY29uc3QgaXNPblBscFBhZ2UgPSB1c2VDYWxsYmFjaygoKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIChnZXRUcmltbWVkUGF0aE5hbWUoKT8uaW5jbHVkZXMoJy9jb2xsZWN0aW9ucycpICYmXG4gICAgICAgICFnZXRUcmltbWVkUGF0aE5hbWUoKT8uaW5jbHVkZXMoJy9wcm9kdWN0cycpKSA/P1xuICAgICAgZmFsc2VcbiAgICApO1xuICB9LCBbZ2V0VHJpbW1lZFBhdGhOYW1lXSk7XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBnZXRUcmltbWVkUGF0aE5hbWUsXG4gICAgICBnZXRQbHBPclBkcElkLFxuICAgICAgaXNPblBkcFBhZ2UsXG4gICAgICBpc09uUGxwUGFnZSxcbiAgICAgIGlzUmVhZHksXG4gICAgfSksXG4gICAgW2dldFRyaW1tZWRQYXRoTmFtZSwgZ2V0UGxwT3JQZHBJZCwgaXNPblBkcFBhZ2UsIGlzT25QbHBQYWdlLCBpc1JlYWR5XSxcbiAgKTtcblxuICByZXR1cm4gPFNob3BpZnlVcmxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvU2hvcGlmeVVybENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVNob3BpZnlVcmwgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFNob3BpZnlVcmxDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VTaG9waWZ5VXJsIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBTaG9waWZ5VXJsUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsTUFBTSw2Q0FBcUUsT0FBVTtBQUVyRixNQUFhQSxzQkFBK0QsRUFBRSxlQUFlO0NBQzNGLE1BQU0sVUFBVTtDQUVoQixNQUFNLGtEQUFzRDtFQUMxRCxJQUFJLEVBQUUsYUFBYSxPQUFPO0FBRTFCLGFBQVcsU0FBUyxRQUFRLFVBQVUsR0FBRztBQUV6QyxhQUFXLFNBQVMsUUFBUSxRQUFRLEdBQUc7QUFFdkMsYUFBVyxTQUFTLFFBQVEsT0FBTyxHQUFHO0FBRXRDLE1BQUksYUFBYSxVQUFhLGFBQWEsUUFBUSxTQUFTLFdBQVcsRUFDckUsUUFBTztBQUdULFNBQU87SUFDTixFQUFFLENBQUM7Q0FFTixNQUFNLHdDQUNILGNBQTBDO0FBQ3pDLE1BQUksY0FBYyw4QkFBOEI7R0FFOUMsTUFBTSxZQURhQyw2QkFBVSxPQUFPLFNBQVMsS0FBSyxFQUNwQixpQkFBaUIsSUFBSSxVQUFVO0FBQzdELE9BQUksQ0FBQyxVQUNILFFBQU8sY0FBYyxxQkFBcUI7QUFFNUMsVUFBTzs7RUFHVCxNQUFNLGNBQWMsY0FBYyx1QkFBdUIsYUFBYTtFQUN0RSxNQUFNLFNBQVMsb0JBQW9CLEVBQUUsTUFBTSxJQUFJO0VBQy9DLE1BQU0sVUFBVSxRQUFRLFdBQVcsVUFBVSxVQUFVLFlBQVk7QUFDbkUsTUFBSSxZQUFZLFVBQWEsV0FBVyxLQUFLLE9BQzNDLFFBQU8sbUJBQW1CLE9BQU8sVUFBVSxHQUFHO0FBRWhELFNBQU87SUFFVCxDQUFDLG1CQUFtQixDQUNyQjtDQUVELE1BQU0sMkNBQXlDO0FBQzdDLFNBQU8sb0JBQW9CLEVBQUUsU0FBUyxZQUFZLElBQUk7SUFDckQsQ0FBQyxtQkFBbUIsQ0FBQztDQUV4QixNQUFNLDJDQUF5QztBQUM3QyxVQUNHLG9CQUFvQixFQUFFLFNBQVMsZUFBZSxJQUM3QyxDQUFDLG9CQUFvQixFQUFFLFNBQVMsWUFBWSxLQUM5QztJQUVELENBQUMsbUJBQW1CLENBQUM7Q0FFeEIsTUFBTSxrQ0FDRztFQUNMO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDRCxHQUNEO0VBQUM7RUFBb0I7RUFBZTtFQUFhO0VBQWE7RUFBUSxDQUN2RTtBQUVELFFBQU8sMkNBQUMsa0JBQWtCO0VBQWdCO0VBQVE7R0FBc0M7O0FBRzFGLE1BQWEsc0JBQXNCO0NBQ2pDLE1BQU0sZ0NBQXFCLGtCQUFrQjtBQUM3QyxLQUFJLENBQUMsUUFDSCxPQUFNLElBQUksTUFBTSx5REFBeUQ7QUFFM0UsUUFBTyJ9
@@ -1,4 +1,4 @@
1
- import { parseHref } from "./urlsParser-v_1DKvyf.js";
1
+ import { parseHref } from "./urlsParser-NAp2LwWP.js";
2
2
  import React, { createContext, useCallback, useContext, useMemo } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -58,4 +58,4 @@ const useShopifyUrl = () => {
58
58
 
59
59
  //#endregion
60
60
  export { ShopifyUrlProvider, useShopifyUrl };
61
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcGlmeVVybENvbnRleHQtRG5KaVVtTUEuanMiLCJuYW1lcyI6WyJTaG9waWZ5VXJsUHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9PiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0cy9zaG9waWZ5VXJsQ29udGV4dC9zaG9waWZ5VXJsQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcGFyc2VIcmVmIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24vdXRpbHMvdXJsc1BhcnNlcic7XG5pbXBvcnQgeyBJZEV4dHJhY3RvciwgU2hvcGlmeVVybENvbnRleHRUeXBlIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmNvbnN0IFNob3BpZnlVcmxDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxTaG9waWZ5VXJsQ29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBTaG9waWZ5VXJsUHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9PiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgaXNSZWFkeSA9IHRydWU7IC8vIE5vIGV4dGVybmFsIGRlcGVuZGVuY2llcywgc28gYWx3YXlzIHJlYWR5XG5cbiAgY29uc3QgZ2V0VHJpbW1lZFBhdGhOYW1lID0gdXNlQ2FsbGJhY2soKCk6IHN0cmluZyB8IG51bGwgPT4ge1xuICAgIGxldCB7IHBhdGhuYW1lIH0gPSB3aW5kb3cubG9jYXRpb247XG4gICAgLy8gc3RyaXAgb3V0IHRoZSBwcm94eSBwYXRoIHNvIGxvY2FsIGRldiBzdGlsbCB3b3Jrc1xuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgnL3Byb3h5JywgJycpO1xuICAgIC8vIHJlbW92ZSB0cmFpbGluZyBoYXNoIGlmIGl0IGV4aXN0c1xuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvIy4qJC8sICcnKTtcbiAgICAvLyByZW1vdmUgdHJhaWxpbmcgLywgaWUuIHNvbWUgVVJMcyBjYW4gZW5kIHdpdGggJy8nIGxpa2UgL2NvbGxlY3Rpb25zL2Nhc3QtaXJvbi9cbiAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG5cbiAgICBpZiAocGF0aG5hbWUgPT09IHVuZGVmaW5lZCB8fCBwYXRobmFtZSA9PT0gbnVsbCB8fCBwYXRobmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBwYXRobmFtZTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGdldFBscE9yUGRwSWQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXh0cmFjdG9yOiBJZEV4dHJhY3Rvcik6IHN0cmluZyB8IG51bGwgPT4ge1xuICAgICAgaWYgKGV4dHJhY3RvciA9PT0gJ3Nob3BpZnktcHJvZHVjdC12YXJpYW50LWlkJykge1xuICAgICAgICBjb25zdCBwYXJzZWRIcmVmID0gcGFyc2VIcmVmKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgY29uc3QgdmFyaWFudElkID0gcGFyc2VkSHJlZj8udXJsU2VhcmNoUGFyYW1zPy5nZXQoJ3ZhcmlhbnQnKTtcbiAgICAgICAgaWYgKCF2YXJpYW50SWQpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0UGxwT3JQZHBJZCgnc2hvcGlmeS1wcm9kdWN0LWlkJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhcmlhbnRJZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGF0aFNlZ21lbnQgPSBleHRyYWN0b3IgPT09ICdzaG9waWZ5LXByb2R1Y3QtaWQnID8gJ3Byb2R1Y3RzJyA6ICdjb2xsZWN0aW9ucyc7XG4gICAgICBjb25zdCB0b2tlbnMgPSBnZXRUcmltbWVkUGF0aE5hbWUoKT8uc3BsaXQoJy8nKTtcbiAgICAgIGNvbnN0IGlkSW5kZXggPSB0b2tlbnM/LmZpbmRJbmRleCgodG9rZW4pID0+IHRva2VuID09PSBwYXRoU2VnbWVudCk7XG4gICAgICBpZiAoaWRJbmRleCAhPT0gdW5kZWZpbmVkICYmIGlkSW5kZXggPj0gMCAmJiB0b2tlbnMpIHtcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh0b2tlbnNbaWRJbmRleCArIDFdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0sXG4gICAgW2dldFRyaW1tZWRQYXRoTmFtZV0sXG4gICk7XG5cbiAgY29uc3QgaXNPblBkcFBhZ2UgPSB1c2VDYWxsYmFjaygoKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGdldFRyaW1tZWRQYXRoTmFtZSgpPy5pbmNsdWRlcygnL3Byb2R1Y3RzJykgPz8gZmFsc2U7XG4gIH0sIFtnZXRUcmltbWVkUGF0aE5hbWVdKTtcblxuICBjb25zdCBpc09uUGxwUGFnZSA9IHVzZUNhbGxiYWNrKCgpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgKGdldFRyaW1tZWRQYXRoTmFtZSgpPy5pbmNsdWRlcygnL2NvbGxlY3Rpb25zJykgJiZcbiAgICAgICAgIWdldFRyaW1tZWRQYXRoTmFtZSgpPy5pbmNsdWRlcygnL3Byb2R1Y3RzJykpID8/XG4gICAgICBmYWxzZVxuICAgICk7XG4gIH0sIFtnZXRUcmltbWVkUGF0aE5hbWVdKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGdldFRyaW1tZWRQYXRoTmFtZSxcbiAgICAgIGdldFBscE9yUGRwSWQsXG4gICAgICBpc09uUGRwUGFnZSxcbiAgICAgIGlzT25QbHBQYWdlLFxuICAgICAgaXNSZWFkeSxcbiAgICB9KSxcbiAgICBbZ2V0VHJpbW1lZFBhdGhOYW1lLCBnZXRQbHBPclBkcElkLCBpc09uUGRwUGFnZSwgaXNPblBscFBhZ2UsIGlzUmVhZHldLFxuICApO1xuXG4gIHJldHVybiA8U2hvcGlmeVVybENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9TaG9waWZ5VXJsQ29udGV4dC5Qcm92aWRlcj47XG59O1xuXG5leHBvcnQgY29uc3QgdXNlU2hvcGlmeVVybCA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoU2hvcGlmeVVybENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZVNob3BpZnlVcmwgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFNob3BpZnlVcmxQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSxNQUFNLG9CQUFvQixjQUFpRCxPQUFVO0FBRXJGLE1BQWFBLHNCQUErRCxFQUFFLGVBQWU7Q0FDM0YsTUFBTSxVQUFVO0NBRWhCLE1BQU0scUJBQXFCLGtCQUFpQztFQUMxRCxJQUFJLEVBQUUsYUFBYSxPQUFPO0FBRTFCLGFBQVcsU0FBUyxRQUFRLFVBQVUsR0FBRztBQUV6QyxhQUFXLFNBQVMsUUFBUSxRQUFRLEdBQUc7QUFFdkMsYUFBVyxTQUFTLFFBQVEsT0FBTyxHQUFHO0FBRXRDLE1BQUksYUFBYSxVQUFhLGFBQWEsUUFBUSxTQUFTLFdBQVcsRUFDckUsUUFBTztBQUdULFNBQU87SUFDTixFQUFFLENBQUM7Q0FFTixNQUFNLGdCQUFnQixhQUNuQixjQUEwQztBQUN6QyxNQUFJLGNBQWMsOEJBQThCO0dBRTlDLE1BQU0sWUFEYSxVQUFVLE9BQU8sU0FBUyxLQUFLLEVBQ3BCLGlCQUFpQixJQUFJLFVBQVU7QUFDN0QsT0FBSSxDQUFDLFVBQ0gsUUFBTyxjQUFjLHFCQUFxQjtBQUU1QyxVQUFPOztFQUdULE1BQU0sY0FBYyxjQUFjLHVCQUF1QixhQUFhO0VBQ3RFLE1BQU0sU0FBUyxvQkFBb0IsRUFBRSxNQUFNLElBQUk7RUFDL0MsTUFBTSxVQUFVLFFBQVEsV0FBVyxVQUFVLFVBQVUsWUFBWTtBQUNuRSxNQUFJLFlBQVksVUFBYSxXQUFXLEtBQUssT0FDM0MsUUFBTyxtQkFBbUIsT0FBTyxVQUFVLEdBQUc7QUFFaEQsU0FBTztJQUVULENBQUMsbUJBQW1CLENBQ3JCO0NBRUQsTUFBTSxjQUFjLGtCQUEyQjtBQUM3QyxTQUFPLG9CQUFvQixFQUFFLFNBQVMsWUFBWSxJQUFJO0lBQ3JELENBQUMsbUJBQW1CLENBQUM7Q0FFeEIsTUFBTSxjQUFjLGtCQUEyQjtBQUM3QyxVQUNHLG9CQUFvQixFQUFFLFNBQVMsZUFBZSxJQUM3QyxDQUFDLG9CQUFvQixFQUFFLFNBQVMsWUFBWSxLQUM5QztJQUVELENBQUMsbUJBQW1CLENBQUM7Q0FFeEIsTUFBTSxRQUFRLGVBQ0w7RUFDTDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0QsR0FDRDtFQUFDO0VBQW9CO0VBQWU7RUFBYTtFQUFhO0VBQVEsQ0FDdkU7QUFFRCxRQUFPLG9CQUFDLGtCQUFrQjtFQUFnQjtFQUFRO0dBQXNDOztBQUcxRixNQUFhLHNCQUFzQjtDQUNqQyxNQUFNLFVBQVUsV0FBVyxrQkFBa0I7QUFDN0MsS0FBSSxDQUFDLFFBQ0gsT0FBTSxJQUFJLE1BQU0seURBQXlEO0FBRTNFLFFBQU8ifQ==
61
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcGlmeVVybENvbnRleHQtQ1RvQXRfOTguanMiLCJuYW1lcyI6WyJTaG9waWZ5VXJsUHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9PiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0cy9zaG9waWZ5VXJsQ29udGV4dC9zaG9waWZ5VXJsQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcGFyc2VIcmVmIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24vdXRpbHMvdXJsc1BhcnNlcic7XG5pbXBvcnQgeyBJZEV4dHJhY3RvciwgU2hvcGlmeVVybENvbnRleHRUeXBlIH0gZnJvbSAnQGVudml2ZS1haS90eXBlcyc7XG5cbmNvbnN0IFNob3BpZnlVcmxDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxTaG9waWZ5VXJsQ29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCBTaG9waWZ5VXJsUHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9PiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgaXNSZWFkeSA9IHRydWU7IC8vIE5vIGV4dGVybmFsIGRlcGVuZGVuY2llcywgc28gYWx3YXlzIHJlYWR5XG5cbiAgY29uc3QgZ2V0VHJpbW1lZFBhdGhOYW1lID0gdXNlQ2FsbGJhY2soKCk6IHN0cmluZyB8IG51bGwgPT4ge1xuICAgIGxldCB7IHBhdGhuYW1lIH0gPSB3aW5kb3cubG9jYXRpb247XG4gICAgLy8gc3RyaXAgb3V0IHRoZSBwcm94eSBwYXRoIHNvIGxvY2FsIGRldiBzdGlsbCB3b3Jrc1xuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgnL3Byb3h5JywgJycpO1xuICAgIC8vIHJlbW92ZSB0cmFpbGluZyBoYXNoIGlmIGl0IGV4aXN0c1xuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvIy4qJC8sICcnKTtcbiAgICAvLyByZW1vdmUgdHJhaWxpbmcgLywgaWUuIHNvbWUgVVJMcyBjYW4gZW5kIHdpdGggJy8nIGxpa2UgL2NvbGxlY3Rpb25zL2Nhc3QtaXJvbi9cbiAgICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG5cbiAgICBpZiAocGF0aG5hbWUgPT09IHVuZGVmaW5lZCB8fCBwYXRobmFtZSA9PT0gbnVsbCB8fCBwYXRobmFtZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBwYXRobmFtZTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGdldFBscE9yUGRwSWQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXh0cmFjdG9yOiBJZEV4dHJhY3Rvcik6IHN0cmluZyB8IG51bGwgPT4ge1xuICAgICAgaWYgKGV4dHJhY3RvciA9PT0gJ3Nob3BpZnktcHJvZHVjdC12YXJpYW50LWlkJykge1xuICAgICAgICBjb25zdCBwYXJzZWRIcmVmID0gcGFyc2VIcmVmKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICAgICAgY29uc3QgdmFyaWFudElkID0gcGFyc2VkSHJlZj8udXJsU2VhcmNoUGFyYW1zPy5nZXQoJ3ZhcmlhbnQnKTtcbiAgICAgICAgaWYgKCF2YXJpYW50SWQpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0UGxwT3JQZHBJZCgnc2hvcGlmeS1wcm9kdWN0LWlkJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhcmlhbnRJZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGF0aFNlZ21lbnQgPSBleHRyYWN0b3IgPT09ICdzaG9waWZ5LXByb2R1Y3QtaWQnID8gJ3Byb2R1Y3RzJyA6ICdjb2xsZWN0aW9ucyc7XG4gICAgICBjb25zdCB0b2tlbnMgPSBnZXRUcmltbWVkUGF0aE5hbWUoKT8uc3BsaXQoJy8nKTtcbiAgICAgIGNvbnN0IGlkSW5kZXggPSB0b2tlbnM/LmZpbmRJbmRleCgodG9rZW4pID0+IHRva2VuID09PSBwYXRoU2VnbWVudCk7XG4gICAgICBpZiAoaWRJbmRleCAhPT0gdW5kZWZpbmVkICYmIGlkSW5kZXggPj0gMCAmJiB0b2tlbnMpIHtcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh0b2tlbnNbaWRJbmRleCArIDFdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0sXG4gICAgW2dldFRyaW1tZWRQYXRoTmFtZV0sXG4gICk7XG5cbiAgY29uc3QgaXNPblBkcFBhZ2UgPSB1c2VDYWxsYmFjaygoKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIGdldFRyaW1tZWRQYXRoTmFtZSgpPy5pbmNsdWRlcygnL3Byb2R1Y3RzJykgPz8gZmFsc2U7XG4gIH0sIFtnZXRUcmltbWVkUGF0aE5hbWVdKTtcblxuICBjb25zdCBpc09uUGxwUGFnZSA9IHVzZUNhbGxiYWNrKCgpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgKGdldFRyaW1tZWRQYXRoTmFtZSgpPy5pbmNsdWRlcygnL2NvbGxlY3Rpb25zJykgJiZcbiAgICAgICAgIWdldFRyaW1tZWRQYXRoTmFtZSgpPy5pbmNsdWRlcygnL3Byb2R1Y3RzJykpID8/XG4gICAgICBmYWxzZVxuICAgICk7XG4gIH0sIFtnZXRUcmltbWVkUGF0aE5hbWVdKTtcblxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGdldFRyaW1tZWRQYXRoTmFtZSxcbiAgICAgIGdldFBscE9yUGRwSWQsXG4gICAgICBpc09uUGRwUGFnZSxcbiAgICAgIGlzT25QbHBQYWdlLFxuICAgICAgaXNSZWFkeSxcbiAgICB9KSxcbiAgICBbZ2V0VHJpbW1lZFBhdGhOYW1lLCBnZXRQbHBPclBkcElkLCBpc09uUGRwUGFnZSwgaXNPblBscFBhZ2UsIGlzUmVhZHldLFxuICApO1xuXG4gIHJldHVybiA8U2hvcGlmeVVybENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9TaG9waWZ5VXJsQ29udGV4dC5Qcm92aWRlcj47XG59O1xuXG5leHBvcnQgY29uc3QgdXNlU2hvcGlmeVVybCA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoU2hvcGlmeVVybENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZVNob3BpZnlVcmwgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFNob3BpZnlVcmxQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSxNQUFNLG9CQUFvQixjQUFpRCxPQUFVO0FBRXJGLE1BQWFBLHNCQUErRCxFQUFFLGVBQWU7Q0FDM0YsTUFBTSxVQUFVO0NBRWhCLE1BQU0scUJBQXFCLGtCQUFpQztFQUMxRCxJQUFJLEVBQUUsYUFBYSxPQUFPO0FBRTFCLGFBQVcsU0FBUyxRQUFRLFVBQVUsR0FBRztBQUV6QyxhQUFXLFNBQVMsUUFBUSxRQUFRLEdBQUc7QUFFdkMsYUFBVyxTQUFTLFFBQVEsT0FBTyxHQUFHO0FBRXRDLE1BQUksYUFBYSxVQUFhLGFBQWEsUUFBUSxTQUFTLFdBQVcsRUFDckUsUUFBTztBQUdULFNBQU87SUFDTixFQUFFLENBQUM7Q0FFTixNQUFNLGdCQUFnQixhQUNuQixjQUEwQztBQUN6QyxNQUFJLGNBQWMsOEJBQThCO0dBRTlDLE1BQU0sWUFEYSxVQUFVLE9BQU8sU0FBUyxLQUFLLEVBQ3BCLGlCQUFpQixJQUFJLFVBQVU7QUFDN0QsT0FBSSxDQUFDLFVBQ0gsUUFBTyxjQUFjLHFCQUFxQjtBQUU1QyxVQUFPOztFQUdULE1BQU0sY0FBYyxjQUFjLHVCQUF1QixhQUFhO0VBQ3RFLE1BQU0sU0FBUyxvQkFBb0IsRUFBRSxNQUFNLElBQUk7RUFDL0MsTUFBTSxVQUFVLFFBQVEsV0FBVyxVQUFVLFVBQVUsWUFBWTtBQUNuRSxNQUFJLFlBQVksVUFBYSxXQUFXLEtBQUssT0FDM0MsUUFBTyxtQkFBbUIsT0FBTyxVQUFVLEdBQUc7QUFFaEQsU0FBTztJQUVULENBQUMsbUJBQW1CLENBQ3JCO0NBRUQsTUFBTSxjQUFjLGtCQUEyQjtBQUM3QyxTQUFPLG9CQUFvQixFQUFFLFNBQVMsWUFBWSxJQUFJO0lBQ3JELENBQUMsbUJBQW1CLENBQUM7Q0FFeEIsTUFBTSxjQUFjLGtCQUEyQjtBQUM3QyxVQUNHLG9CQUFvQixFQUFFLFNBQVMsZUFBZSxJQUM3QyxDQUFDLG9CQUFvQixFQUFFLFNBQVMsWUFBWSxLQUM5QztJQUVELENBQUMsbUJBQW1CLENBQUM7Q0FFeEIsTUFBTSxRQUFRLGVBQ0w7RUFDTDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0QsR0FDRDtFQUFDO0VBQW9CO0VBQWU7RUFBYTtFQUFhO0VBQVEsQ0FDdkU7QUFFRCxRQUFPLG9CQUFDLGtCQUFrQjtFQUFnQjtFQUFRO0dBQXNDOztBQUcxRixNQUFhLHNCQUFzQjtDQUNqQyxNQUFNLFVBQVUsV0FBVyxrQkFBa0I7QUFDN0MsS0FBSSxDQUFDLFFBQ0gsT0FBTSxJQUFJLE1BQU0seURBQXlEO0FBRTNFLFFBQU8ifQ==
@@ -1,4 +1,4 @@
1
- import { baseUrlAtom } from "./enviveConfig-Ciq4ASoV.js";
1
+ import { baseUrlAtom } from "./enviveConfig-Cwlp7-Qz.js";
2
2
  import { createContext, useMemo, useState } from "react";
3
3
  import { useAtomValue } from "jotai";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -36,4 +36,4 @@ const SystemSettingsContextProvider = ({ children, generationParams, showDebugBa
36
36
 
37
37
  //#endregion
38
38
  export { SystemSettingsContext, SystemSettingsContextProvider, defaultGenerationParams };
39
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtU2V0dGluZ3NDb250ZXh0LURQZERmVmhqLmpzIiwibmFtZXMiOlsiZGVmYXVsdEdlbmVyYXRpb25QYXJhbXM6IEdlbmVyYXRpb25QYXJhbXMiXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvc3lzdGVtU2V0dGluZ3NDb250ZXh0L3N5c3RlbVNldHRpbmdzQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VuZXJhdGlvblBhcmFtcyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgRGlzcGF0Y2gsIFJlYWN0Tm9kZSwgU2V0U3RhdGVBY3Rpb24sIGNyZWF0ZUNvbnRleHQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgYmFzZVVybEF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5cbi8vIFRPRE86IFJlZmFjdG9yIHRoaXMgdG8gYSBjb21tb24gc2VydmljZSB0aGF0IGhhbmRsZXMgcXVlcnkgcGFyYW1zIChhbmQgc3BpZmZ5IHZhcmlhYmxlcyBhbGwgdG9nZXRoZXIpXG5jb25zdCBnZXRDaGF0TW9kZWxOYW1lID0gKCkgPT4ge1xuICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmxPYmouc2VhcmNoKTtcbiAgY29uc3QgcGFyYW1zT2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKHBhcmFtcy5lbnRyaWVzKCkpO1xuICByZXR1cm4gcGFyYW1zT2JqLmxsbV9tb2RlbF9uYW1lO1xufTtcblxuY29uc3QgZGVmYXVsdEdlbmVyYXRpb25QYXJhbXM6IEdlbmVyYXRpb25QYXJhbXMgPSB7XG4gIHN0cmVhbTogdHJ1ZSxcbiAgbnVtU3VnZ2VzdGlvbnM6IDMsXG4gIG1vZGVsOiBnZXRDaGF0TW9kZWxOYW1lKCksXG59O1xuXG5pbnRlcmZhY2UgU3lzdGVtU2V0dGluZ3NDb250ZXh0UGFyYW1zIHtcbiAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gIHNob3dEZWJ1Z0Jhcj86IGJvb2xlYW47XG4gIGVuZHBvaW50VVJMPzogc3RyaW5nO1xuICBzZXRHZW5lcmF0aW9uUGFyYW1zOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxHZW5lcmF0aW9uUGFyYW1zIHwgdW5kZWZpbmVkPj47XG59XG5cbmludGVyZmFjZSBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gIHNob3dEZWJ1Z0Jhcj86IGJvb2xlYW47XG59XG5cbmNvbnN0IFN5c3RlbVNldHRpbmdzQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U3lzdGVtU2V0dGluZ3NDb250ZXh0UGFyYW1zIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5jb25zdCBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICBnZW5lcmF0aW9uUGFyYW1zLFxuICBzaG93RGVidWdCYXIsXG59OiBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtwYXJhbXMsIHNldFBhcmFtc10gPSB1c2VTdGF0ZTxHZW5lcmF0aW9uUGFyYW1zIHwgdW5kZWZpbmVkPihcbiAgICAoKSA9PiBnZW5lcmF0aW9uUGFyYW1zID8/IGRlZmF1bHRHZW5lcmF0aW9uUGFyYW1zLFxuICApO1xuICBjb25zdCBlbmRwb2ludFVSTCA9IHVzZUF0b21WYWx1ZShiYXNlVXJsQXRvbSk7XG4gIGNvbnN0IHNldHRpbmdzQ29udGV4dFZhbHVlcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHBhcmFtcyxcbiAgICAgIHNob3dEZWJ1Z0JhcixcbiAgICAgIHNldEdlbmVyYXRpb25QYXJhbXM6IHNldFBhcmFtcyxcbiAgICAgIGVuZHBvaW50VVJMLFxuICAgIH0pLFxuICAgIFtnZW5lcmF0aW9uUGFyYW1zLCBlbmRwb2ludFVSTCwgc2hvd0RlYnVnQmFyXSxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3NldHRpbmdzQ29udGV4dFZhbHVlc30+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgeyBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciwgU3lzdGVtU2V0dGluZ3NDb250ZXh0LCBkZWZhdWx0R2VuZXJhdGlvblBhcmFtcyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFNQSxNQUFNLHlCQUF5QjtDQUM3QixNQUFNLFNBQVMsSUFBSSxJQUFJLE9BQU8sU0FBUyxLQUFLO0NBQzVDLE1BQU0sU0FBUyxJQUFJLGdCQUFnQixPQUFPLE9BQU87QUFFakQsUUFEa0IsT0FBTyxZQUFZLE9BQU8sU0FBUyxDQUFDLENBQ3JDOztBQUduQixNQUFNQSwwQkFBNEM7Q0FDaEQsUUFBUTtDQUNSLGdCQUFnQjtDQUNoQixPQUFPLGtCQUFrQjtDQUMxQjtBQWVELE1BQU0sd0JBQXdCLGNBQXVELE9BQVU7QUFFL0YsTUFBTSxpQ0FBaUMsRUFDckMsVUFDQSxrQkFDQSxtQkFDd0M7Q0FDeEMsTUFBTSxDQUFDLFFBQVEsYUFBYSxlQUNwQixvQkFBb0Isd0JBQzNCO0NBQ0QsTUFBTSxjQUFjLGFBQWEsWUFBWTtDQUM3QyxNQUFNLHdCQUF3QixlQUNyQjtFQUNMLGtCQUFrQjtFQUNsQjtFQUNBLHFCQUFxQjtFQUNyQjtFQUNELEdBQ0Q7RUFBQztFQUFrQjtFQUFhO0VBQWEsQ0FDOUM7QUFFRCxRQUNFLG9CQUFDLHNCQUFzQjtFQUFTLE9BQU87RUFDcEM7R0FDOEIifQ==
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtU2V0dGluZ3NDb250ZXh0LUQ5aU5HejV2LmpzIiwibmFtZXMiOlsiZGVmYXVsdEdlbmVyYXRpb25QYXJhbXM6IEdlbmVyYXRpb25QYXJhbXMiXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvc3lzdGVtU2V0dGluZ3NDb250ZXh0L3N5c3RlbVNldHRpbmdzQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VuZXJhdGlvblBhcmFtcyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgRGlzcGF0Y2gsIFJlYWN0Tm9kZSwgU2V0U3RhdGVBY3Rpb24sIGNyZWF0ZUNvbnRleHQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgYmFzZVVybEF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5cbi8vIFRPRE86IFJlZmFjdG9yIHRoaXMgdG8gYSBjb21tb24gc2VydmljZSB0aGF0IGhhbmRsZXMgcXVlcnkgcGFyYW1zIChhbmQgc3BpZmZ5IHZhcmlhYmxlcyBhbGwgdG9nZXRoZXIpXG5jb25zdCBnZXRDaGF0TW9kZWxOYW1lID0gKCkgPT4ge1xuICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmxPYmouc2VhcmNoKTtcbiAgY29uc3QgcGFyYW1zT2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKHBhcmFtcy5lbnRyaWVzKCkpO1xuICByZXR1cm4gcGFyYW1zT2JqLmxsbV9tb2RlbF9uYW1lO1xufTtcblxuY29uc3QgZGVmYXVsdEdlbmVyYXRpb25QYXJhbXM6IEdlbmVyYXRpb25QYXJhbXMgPSB7XG4gIHN0cmVhbTogdHJ1ZSxcbiAgbnVtU3VnZ2VzdGlvbnM6IDMsXG4gIG1vZGVsOiBnZXRDaGF0TW9kZWxOYW1lKCksXG59O1xuXG5pbnRlcmZhY2UgU3lzdGVtU2V0dGluZ3NDb250ZXh0UGFyYW1zIHtcbiAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gIHNob3dEZWJ1Z0Jhcj86IGJvb2xlYW47XG4gIGVuZHBvaW50VVJMPzogc3RyaW5nO1xuICBzZXRHZW5lcmF0aW9uUGFyYW1zOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxHZW5lcmF0aW9uUGFyYW1zIHwgdW5kZWZpbmVkPj47XG59XG5cbmludGVyZmFjZSBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gIHNob3dEZWJ1Z0Jhcj86IGJvb2xlYW47XG59XG5cbmNvbnN0IFN5c3RlbVNldHRpbmdzQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U3lzdGVtU2V0dGluZ3NDb250ZXh0UGFyYW1zIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5jb25zdCBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICBnZW5lcmF0aW9uUGFyYW1zLFxuICBzaG93RGVidWdCYXIsXG59OiBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtwYXJhbXMsIHNldFBhcmFtc10gPSB1c2VTdGF0ZTxHZW5lcmF0aW9uUGFyYW1zIHwgdW5kZWZpbmVkPihcbiAgICAoKSA9PiBnZW5lcmF0aW9uUGFyYW1zID8/IGRlZmF1bHRHZW5lcmF0aW9uUGFyYW1zLFxuICApO1xuICBjb25zdCBlbmRwb2ludFVSTCA9IHVzZUF0b21WYWx1ZShiYXNlVXJsQXRvbSk7XG4gIGNvbnN0IHNldHRpbmdzQ29udGV4dFZhbHVlcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHBhcmFtcyxcbiAgICAgIHNob3dEZWJ1Z0JhcixcbiAgICAgIHNldEdlbmVyYXRpb25QYXJhbXM6IHNldFBhcmFtcyxcbiAgICAgIGVuZHBvaW50VVJMLFxuICAgIH0pLFxuICAgIFtnZW5lcmF0aW9uUGFyYW1zLCBlbmRwb2ludFVSTCwgc2hvd0RlYnVnQmFyXSxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3NldHRpbmdzQ29udGV4dFZhbHVlc30+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgeyBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciwgU3lzdGVtU2V0dGluZ3NDb250ZXh0LCBkZWZhdWx0R2VuZXJhdGlvblBhcmFtcyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFNQSxNQUFNLHlCQUF5QjtDQUM3QixNQUFNLFNBQVMsSUFBSSxJQUFJLE9BQU8sU0FBUyxLQUFLO0NBQzVDLE1BQU0sU0FBUyxJQUFJLGdCQUFnQixPQUFPLE9BQU87QUFFakQsUUFEa0IsT0FBTyxZQUFZLE9BQU8sU0FBUyxDQUFDLENBQ3JDOztBQUduQixNQUFNQSwwQkFBNEM7Q0FDaEQsUUFBUTtDQUNSLGdCQUFnQjtDQUNoQixPQUFPLGtCQUFrQjtDQUMxQjtBQWVELE1BQU0sd0JBQXdCLGNBQXVELE9BQVU7QUFFL0YsTUFBTSxpQ0FBaUMsRUFDckMsVUFDQSxrQkFDQSxtQkFDd0M7Q0FDeEMsTUFBTSxDQUFDLFFBQVEsYUFBYSxlQUNwQixvQkFBb0Isd0JBQzNCO0NBQ0QsTUFBTSxjQUFjLGFBQWEsWUFBWTtDQUM3QyxNQUFNLHdCQUF3QixlQUNyQjtFQUNMLGtCQUFrQjtFQUNsQjtFQUNBLHFCQUFxQjtFQUNyQjtFQUNELEdBQ0Q7RUFBQztFQUFrQjtFQUFhO0VBQWEsQ0FDOUM7QUFFRCxRQUNFLG9CQUFDLHNCQUFzQjtFQUFTLE9BQU87RUFDcEM7R0FDOEIifQ==
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_enviveConfig = require('./enviveConfig-Dp80h9yu.cjs');
2
+ const require_enviveConfig = require('./enviveConfig-CQ_8mT-g.cjs');
3
3
  let react = require("react");
4
4
  react = require_chunk.__toESM(react);
5
5
  let jotai = require("jotai");
@@ -57,4 +57,4 @@ Object.defineProperty(exports, 'defaultGenerationParams', {
57
57
  return defaultGenerationParams;
58
58
  }
59
59
  });
60
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtU2V0dGluZ3NDb250ZXh0LTA2OHZRdVAyLmNqcyIsIm5hbWVzIjpbImRlZmF1bHRHZW5lcmF0aW9uUGFyYW1zOiBHZW5lcmF0aW9uUGFyYW1zIiwiYmFzZVVybEF0b20iXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvc3lzdGVtU2V0dGluZ3NDb250ZXh0L3N5c3RlbVNldHRpbmdzQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VuZXJhdGlvblBhcmFtcyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgRGlzcGF0Y2gsIFJlYWN0Tm9kZSwgU2V0U3RhdGVBY3Rpb24sIGNyZWF0ZUNvbnRleHQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgYmFzZVVybEF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5cbi8vIFRPRE86IFJlZmFjdG9yIHRoaXMgdG8gYSBjb21tb24gc2VydmljZSB0aGF0IGhhbmRsZXMgcXVlcnkgcGFyYW1zIChhbmQgc3BpZmZ5IHZhcmlhYmxlcyBhbGwgdG9nZXRoZXIpXG5jb25zdCBnZXRDaGF0TW9kZWxOYW1lID0gKCkgPT4ge1xuICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmxPYmouc2VhcmNoKTtcbiAgY29uc3QgcGFyYW1zT2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKHBhcmFtcy5lbnRyaWVzKCkpO1xuICByZXR1cm4gcGFyYW1zT2JqLmxsbV9tb2RlbF9uYW1lO1xufTtcblxuY29uc3QgZGVmYXVsdEdlbmVyYXRpb25QYXJhbXM6IEdlbmVyYXRpb25QYXJhbXMgPSB7XG4gIHN0cmVhbTogdHJ1ZSxcbiAgbnVtU3VnZ2VzdGlvbnM6IDMsXG4gIG1vZGVsOiBnZXRDaGF0TW9kZWxOYW1lKCksXG59O1xuXG5pbnRlcmZhY2UgU3lzdGVtU2V0dGluZ3NDb250ZXh0UGFyYW1zIHtcbiAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gIHNob3dEZWJ1Z0Jhcj86IGJvb2xlYW47XG4gIGVuZHBvaW50VVJMPzogc3RyaW5nO1xuICBzZXRHZW5lcmF0aW9uUGFyYW1zOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxHZW5lcmF0aW9uUGFyYW1zIHwgdW5kZWZpbmVkPj47XG59XG5cbmludGVyZmFjZSBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gIHNob3dEZWJ1Z0Jhcj86IGJvb2xlYW47XG59XG5cbmNvbnN0IFN5c3RlbVNldHRpbmdzQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U3lzdGVtU2V0dGluZ3NDb250ZXh0UGFyYW1zIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5jb25zdCBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICBnZW5lcmF0aW9uUGFyYW1zLFxuICBzaG93RGVidWdCYXIsXG59OiBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtwYXJhbXMsIHNldFBhcmFtc10gPSB1c2VTdGF0ZTxHZW5lcmF0aW9uUGFyYW1zIHwgdW5kZWZpbmVkPihcbiAgICAoKSA9PiBnZW5lcmF0aW9uUGFyYW1zID8/IGRlZmF1bHRHZW5lcmF0aW9uUGFyYW1zLFxuICApO1xuICBjb25zdCBlbmRwb2ludFVSTCA9IHVzZUF0b21WYWx1ZShiYXNlVXJsQXRvbSk7XG4gIGNvbnN0IHNldHRpbmdzQ29udGV4dFZhbHVlcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHBhcmFtcyxcbiAgICAgIHNob3dEZWJ1Z0JhcixcbiAgICAgIHNldEdlbmVyYXRpb25QYXJhbXM6IHNldFBhcmFtcyxcbiAgICAgIGVuZHBvaW50VVJMLFxuICAgIH0pLFxuICAgIFtnZW5lcmF0aW9uUGFyYW1zLCBlbmRwb2ludFVSTCwgc2hvd0RlYnVnQmFyXSxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3NldHRpbmdzQ29udGV4dFZhbHVlc30+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgeyBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciwgU3lzdGVtU2V0dGluZ3NDb250ZXh0LCBkZWZhdWx0R2VuZXJhdGlvblBhcmFtcyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBTUEsTUFBTSx5QkFBeUI7Q0FDN0IsTUFBTSxTQUFTLElBQUksSUFBSSxPQUFPLFNBQVMsS0FBSztDQUM1QyxNQUFNLFNBQVMsSUFBSSxnQkFBZ0IsT0FBTyxPQUFPO0FBRWpELFFBRGtCLE9BQU8sWUFBWSxPQUFPLFNBQVMsQ0FBQyxDQUNyQzs7QUFHbkIsTUFBTUEsMEJBQTRDO0NBQ2hELFFBQVE7Q0FDUixnQkFBZ0I7Q0FDaEIsT0FBTyxrQkFBa0I7Q0FDMUI7QUFlRCxNQUFNLGlEQUErRSxPQUFVO0FBRS9GLE1BQU0saUNBQWlDLEVBQ3JDLFVBQ0Esa0JBQ0EsbUJBQ3dDO0NBQ3hDLE1BQU0sQ0FBQyxRQUFRLHVDQUNQLG9CQUFvQix3QkFDM0I7Q0FDRCxNQUFNLHNDQUEyQkMsaUNBQVk7Q0FDN0MsTUFBTSxrREFDRztFQUNMLGtCQUFrQjtFQUNsQjtFQUNBLHFCQUFxQjtFQUNyQjtFQUNELEdBQ0Q7RUFBQztFQUFrQjtFQUFhO0VBQWEsQ0FDOUM7QUFFRCxRQUNFLDJDQUFDLHNCQUFzQjtFQUFTLE9BQU87RUFDcEM7R0FDOEIifQ==
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtU2V0dGluZ3NDb250ZXh0LURkVjdZdGU4LmNqcyIsIm5hbWVzIjpbImRlZmF1bHRHZW5lcmF0aW9uUGFyYW1zOiBHZW5lcmF0aW9uUGFyYW1zIiwiYmFzZVVybEF0b20iXSwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dHMvc3lzdGVtU2V0dGluZ3NDb250ZXh0L3N5c3RlbVNldHRpbmdzQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VuZXJhdGlvblBhcmFtcyB9IGZyb20gJ0BlbnZpdmUtYWkvdHlwZXMnO1xuaW1wb3J0IHsgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgRGlzcGF0Y2gsIFJlYWN0Tm9kZSwgU2V0U3RhdGVBY3Rpb24sIGNyZWF0ZUNvbnRleHQsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgYmFzZVVybEF0b20gfSBmcm9tICdzcmMvYXRvbXMvZW52aXZlL2Vudml2ZUNvbmZpZyc7XG5cbi8vIFRPRE86IFJlZmFjdG9yIHRoaXMgdG8gYSBjb21tb24gc2VydmljZSB0aGF0IGhhbmRsZXMgcXVlcnkgcGFyYW1zIChhbmQgc3BpZmZ5IHZhcmlhYmxlcyBhbGwgdG9nZXRoZXIpXG5jb25zdCBnZXRDaGF0TW9kZWxOYW1lID0gKCkgPT4ge1xuICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmxPYmouc2VhcmNoKTtcbiAgY29uc3QgcGFyYW1zT2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKHBhcmFtcy5lbnRyaWVzKCkpO1xuICByZXR1cm4gcGFyYW1zT2JqLmxsbV9tb2RlbF9uYW1lO1xufTtcblxuY29uc3QgZGVmYXVsdEdlbmVyYXRpb25QYXJhbXM6IEdlbmVyYXRpb25QYXJhbXMgPSB7XG4gIHN0cmVhbTogdHJ1ZSxcbiAgbnVtU3VnZ2VzdGlvbnM6IDMsXG4gIG1vZGVsOiBnZXRDaGF0TW9kZWxOYW1lKCksXG59O1xuXG5pbnRlcmZhY2UgU3lzdGVtU2V0dGluZ3NDb250ZXh0UGFyYW1zIHtcbiAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gIHNob3dEZWJ1Z0Jhcj86IGJvb2xlYW47XG4gIGVuZHBvaW50VVJMPzogc3RyaW5nO1xuICBzZXRHZW5lcmF0aW9uUGFyYW1zOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxHZW5lcmF0aW9uUGFyYW1zIHwgdW5kZWZpbmVkPj47XG59XG5cbmludGVyZmFjZSBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gIHNob3dEZWJ1Z0Jhcj86IGJvb2xlYW47XG59XG5cbmNvbnN0IFN5c3RlbVNldHRpbmdzQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U3lzdGVtU2V0dGluZ3NDb250ZXh0UGFyYW1zIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5jb25zdCBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICBnZW5lcmF0aW9uUGFyYW1zLFxuICBzaG93RGVidWdCYXIsXG59OiBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtwYXJhbXMsIHNldFBhcmFtc10gPSB1c2VTdGF0ZTxHZW5lcmF0aW9uUGFyYW1zIHwgdW5kZWZpbmVkPihcbiAgICAoKSA9PiBnZW5lcmF0aW9uUGFyYW1zID8/IGRlZmF1bHRHZW5lcmF0aW9uUGFyYW1zLFxuICApO1xuICBjb25zdCBlbmRwb2ludFVSTCA9IHVzZUF0b21WYWx1ZShiYXNlVXJsQXRvbSk7XG4gIGNvbnN0IHNldHRpbmdzQ29udGV4dFZhbHVlcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHBhcmFtcyxcbiAgICAgIHNob3dEZWJ1Z0JhcixcbiAgICAgIHNldEdlbmVyYXRpb25QYXJhbXM6IHNldFBhcmFtcyxcbiAgICAgIGVuZHBvaW50VVJMLFxuICAgIH0pLFxuICAgIFtnZW5lcmF0aW9uUGFyYW1zLCBlbmRwb2ludFVSTCwgc2hvd0RlYnVnQmFyXSxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3NldHRpbmdzQ29udGV4dFZhbHVlc30+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgeyBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciwgU3lzdGVtU2V0dGluZ3NDb250ZXh0LCBkZWZhdWx0R2VuZXJhdGlvblBhcmFtcyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBTUEsTUFBTSx5QkFBeUI7Q0FDN0IsTUFBTSxTQUFTLElBQUksSUFBSSxPQUFPLFNBQVMsS0FBSztDQUM1QyxNQUFNLFNBQVMsSUFBSSxnQkFBZ0IsT0FBTyxPQUFPO0FBRWpELFFBRGtCLE9BQU8sWUFBWSxPQUFPLFNBQVMsQ0FBQyxDQUNyQzs7QUFHbkIsTUFBTUEsMEJBQTRDO0NBQ2hELFFBQVE7Q0FDUixnQkFBZ0I7Q0FDaEIsT0FBTyxrQkFBa0I7Q0FDMUI7QUFlRCxNQUFNLGlEQUErRSxPQUFVO0FBRS9GLE1BQU0saUNBQWlDLEVBQ3JDLFVBQ0Esa0JBQ0EsbUJBQ3dDO0NBQ3hDLE1BQU0sQ0FBQyxRQUFRLHVDQUNQLG9CQUFvQix3QkFDM0I7Q0FDRCxNQUFNLHNDQUEyQkMsaUNBQVk7Q0FDN0MsTUFBTSxrREFDRztFQUNMLGtCQUFrQjtFQUNsQjtFQUNBLHFCQUFxQjtFQUNyQjtFQUNELEdBQ0Q7RUFBQztFQUFrQjtFQUFhO0VBQWEsQ0FDOUM7QUFFRCxRQUNFLDJDQUFDLHNCQUFzQjtFQUFTLE9BQU87RUFDcEM7R0FDOEIifQ==
@@ -1,4 +1,4 @@
1
- const require_types = require('../types-B8HZYWV3.cjs');
1
+ const require_types = require('../types-1iJ_FnQQ.cjs');
2
2
 
3
3
  exports.MessageRole = require_types.MessageRole;
4
4
  exports.MessageType = require_types.MessageType;
@@ -1,3 +1,3 @@
1
- import { MessageRole, MessageType } from "../types-y3mhxOUA.js";
1
+ import { MessageRole, MessageType } from "../types-D5du68Vp.js";
2
2
 
3
3
  export { MessageRole, MessageType };