@envive-ai/react-hooks 0.1.4 → 0.1.6

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 (488) hide show
  1. package/dist/amplitudeContext-CHzas7Cf.d.cts +52 -0
  2. package/dist/amplitudeContext-D-7fmVh1.cjs +356 -0
  3. package/dist/amplitudeContext-hY3caPC6.js +322 -0
  4. package/dist/amplitudeContext-tJ4y-SzX.d.ts +52 -0
  5. package/dist/api-DjeZXxl_.js +207 -0
  6. package/dist/api-_JaUnIUj.cjs +292 -0
  7. package/dist/app-CjsQ2_n-.js +132 -0
  8. package/dist/app-CnKRZ9RW.cjs +178 -0
  9. package/dist/application/models/graphql/index.cjs +3 -12
  10. package/dist/application/models/graphql/index.d.cts +1 -1
  11. package/dist/application/models/graphql/index.d.ts +1 -1
  12. package/dist/application/models/graphql/index.js +1 -10
  13. package/dist/application/models/guards/api/index.cjs +1 -2
  14. package/dist/application/models/guards/api/index.d.cts +2 -2
  15. package/dist/application/models/guards/api/index.d.ts +2 -2
  16. package/dist/application/models/guards/api/index.js +1 -2
  17. package/dist/application/models/index.cjs +48 -54
  18. package/dist/application/models/index.d.cts +7 -9
  19. package/dist/application/models/index.d.ts +7 -9
  20. package/dist/application/models/index.js +7 -11
  21. package/dist/application/models/utilityTypes/index.cjs +1 -1
  22. package/dist/application/models/utilityTypes/index.d.cts +1 -1
  23. package/dist/application/models/utilityTypes/index.d.ts +1 -1
  24. package/dist/application/models/utilityTypes/index.js +1 -1
  25. package/dist/application/models/variantInfo/index.cjs +1 -1
  26. package/dist/application/models/variantInfo/index.d.cts +1 -1
  27. package/dist/application/models/variantInfo/index.d.ts +1 -1
  28. package/dist/application/models/variantInfo/index.js +1 -1
  29. package/dist/application/utils/index.cjs +40 -37
  30. package/dist/application/utils/index.d.cts +18 -14
  31. package/dist/application/utils/index.d.ts +17 -13
  32. package/dist/application/utils/index.js +13 -10
  33. package/dist/{atomStore-JwGb7pcy.cjs → atomStore-B4jIaDPd.cjs} +1 -1
  34. package/dist/{atomStore-B1cgmbP0.js → atomStore-D8pjE1vL.js} +1 -1
  35. package/dist/atoms/app/index.cjs +14 -16
  36. package/dist/atoms/app/index.d.cts +20 -19
  37. package/dist/atoms/app/index.d.ts +20 -19
  38. package/dist/atoms/app/index.js +10 -11
  39. package/dist/atoms/atomStore/index.cjs +2 -1
  40. package/dist/atoms/atomStore/index.d.cts +1 -1
  41. package/dist/atoms/atomStore/index.js +2 -1
  42. package/dist/atoms/chat/index.cjs +44 -40
  43. package/dist/atoms/chat/index.d.cts +35 -36
  44. package/dist/atoms/chat/index.d.ts +35 -36
  45. package/dist/atoms/chat/index.js +14 -10
  46. package/dist/atoms/globalSearch/index.cjs +1 -1
  47. package/dist/atoms/globalSearch/index.d.cts +5 -5
  48. package/dist/atoms/globalSearch/index.d.ts +5 -5
  49. package/dist/atoms/globalSearch/index.js +1 -1
  50. package/dist/atoms/org/index.cjs +26 -37
  51. package/dist/atoms/org/index.d.cts +37 -47
  52. package/dist/atoms/org/index.d.ts +37 -47
  53. package/dist/atoms/org/index.js +11 -11
  54. package/dist/atoms/search/index.cjs +47 -41
  55. package/dist/atoms/search/index.d.cts +7 -9
  56. package/dist/atoms/search/index.d.ts +7 -9
  57. package/dist/atoms/search/index.js +16 -10
  58. package/dist/bandolier-DYEz4-8C.js +1229 -0
  59. package/dist/bandolier-o_-xrbOV.cjs +1229 -0
  60. package/dist/carpe-CsG5jCcl.cjs +607 -0
  61. package/dist/carpe-DONk00bZ.js +605 -0
  62. package/dist/cdnUtils-32v8bDX9.cjs +16 -0
  63. package/dist/cdnUtils-E4tLBt2g.js +11 -0
  64. package/dist/{chat-BgONoYU7.cjs → chat-BubCW1as.cjs} +1 -1
  65. package/dist/chat-CO7cRkaq.cjs +506 -0
  66. package/dist/{chat-CLJ4NWcN.js → chat-CV6MXeID.js} +1 -1
  67. package/dist/chat-hcRc4RRd.js +285 -0
  68. package/dist/{components-CV1fhAkj.js → components-B4T3Uzth.js} +1 -1
  69. package/dist/{components-BKZbet67.cjs → components-Cw9WjA6g.cjs} +1 -1
  70. package/dist/config/locators/components/chat/index.cjs +1 -1
  71. package/dist/config/locators/components/chat/index.d.cts +1 -1
  72. package/dist/config/locators/components/chat/index.d.ts +1 -1
  73. package/dist/config/locators/components/chat/index.js +1 -1
  74. package/dist/config/locators/components/chat/variants/index.d.ts +1 -1
  75. package/dist/config/locators/components/index.cjs +1 -1
  76. package/dist/config/locators/components/index.d.cts +1 -1
  77. package/dist/config/locators/components/index.d.ts +1 -1
  78. package/dist/config/locators/components/index.js +1 -1
  79. package/dist/config/locators/index.cjs +4 -4
  80. package/dist/config/locators/index.d.cts +2 -2
  81. package/dist/config/locators/index.d.ts +3 -3
  82. package/dist/config/locators/index.js +4 -4
  83. package/dist/contexts/index.cjs +45 -14
  84. package/dist/contexts/index.d.cts +10 -78
  85. package/dist/contexts/index.d.ts +10 -78
  86. package/dist/contexts/index.js +22 -11
  87. package/dist/contexts-B4ihTBsV.cjs +2980 -0
  88. package/dist/contexts-DGlr7M1o.js +2596 -0
  89. package/dist/coterie-CKB93qfz.cjs +239 -0
  90. package/dist/{coterie-yQ-_JXSw.cjs → coterie-DHcj2fRE.js} +64 -65
  91. package/dist/{custservice-types-C83itZmy.cjs → custservice-types-Dy0kc9TW.cjs} +1 -1
  92. package/dist/{custservice-types-DPQ-4TI6.js → custservice-types-mnIunabv.js} +1 -1
  93. package/dist/default-BnB4p0Se.cjs +234 -0
  94. package/dist/default-D6f5Dyt7.js +199 -0
  95. package/dist/default-ZKkE5zT4.cjs +4 -0
  96. package/dist/default-legGZJwI.js +4 -0
  97. package/dist/{divIds-DEL_-qU0.cjs → divIds-2dJlU3z8.cjs} +1 -15
  98. package/dist/{divIds-CWkntTsx.js → divIds-BUrN2vY-.js} +2 -4
  99. package/dist/dreamlandBaby-BiRYYFav.js +346 -0
  100. package/dist/dreamlandBaby-zuvmfzfD.cjs +346 -0
  101. package/dist/{embedded-C5uJqmuD.js → embedded-BJLWIriJ.js} +1 -1
  102. package/dist/{embedded--2L0F4b5.cjs → embedded-Dl79TJLC.cjs} +1 -1
  103. package/dist/{entrypoints-CNUvSgnk.js → entrypoints-Bs3pn6EV.js} +1 -1
  104. package/dist/{entrypoints-DM9Sm18O.cjs → entrypoints-Dqi5pzWH.cjs} +1 -1
  105. package/dist/enviveConfig-BccuzS2a.cjs +240 -0
  106. package/dist/enviveConfig-CzhTz8Aa.js +152 -0
  107. package/dist/events/index.cjs +1 -1
  108. package/dist/events/index.d.cts +1 -1
  109. package/dist/events/index.js +1 -1
  110. package/dist/{events-ClCDFK7t.js → events-BrLpaNxh.js} +1 -1
  111. package/dist/{events-Da7gpmGv.cjs → events-DwT6cEwI.cjs} +1 -1
  112. package/dist/fiveCbd-DwTTwC2j.cjs +613 -0
  113. package/dist/fiveCbd-Dz2NouOF.js +613 -0
  114. package/dist/forLoveAndLemons-DqSdyD6S.js +665 -0
  115. package/dist/forLoveAndLemons-Ud6mPrV3.cjs +667 -0
  116. package/dist/{globalSearch-b0wC7ZEO.js → globalSearch-B6THR7Jx.js} +1 -1
  117. package/dist/{globalSearch-BTeZxvk1.cjs → globalSearch-BFvEg53C.cjs} +1 -1
  118. package/dist/graphql-BNW60InJ.cjs +128 -0
  119. package/dist/graphql-CjB8wHzm.js +74 -0
  120. package/dist/graphqlConfig-CYt6tWII.js +30 -0
  121. package/dist/graphqlConfig-DicykC-o.cjs +61 -0
  122. package/dist/greenpan-B_EbPkSP.js +397 -0
  123. package/dist/greenpan-kPE4fJgd.cjs +397 -0
  124. package/dist/grooveLife-Ckuir319.js +342 -0
  125. package/dist/grooveLife-DKSEQp1F.cjs +342 -0
  126. package/dist/homegrownCannabis-BVPa2pqe.js +410 -0
  127. package/dist/homegrownCannabis-BwIAkxuA.cjs +410 -0
  128. package/dist/hooks/index.cjs +40 -16
  129. package/dist/hooks/index.d.cts +122 -95
  130. package/dist/hooks/index.d.ts +122 -95
  131. package/dist/hooks/index.js +22 -11
  132. package/dist/{index-D46Rd0io.d.cts → index-B0NW9KTj.d.cts} +1 -1
  133. package/dist/{index-jBATkcc_.d.cts → index-BDPWBU3h.d.cts} +1 -1
  134. package/dist/index-BMPtlgac.d.ts +191 -0
  135. package/dist/{index-BTK5uzs6.d.cts → index-Bmub8e38.d.cts} +1 -1
  136. package/dist/{index-C62lPpy4.d.cts → index-Byb45OPg.d.cts} +1 -1
  137. package/dist/{index-DPx8s5YH.d.ts → index-C6KdON7d.d.ts} +1 -1
  138. package/dist/index-C7pGDl1A.d.ts +1609 -0
  139. package/dist/{index-CYtsPztZ.d.cts → index-C9lgsCWp.d.cts} +32 -32
  140. package/dist/{index-BzgkfbNO.d.cts → index-CESxqFso.d.cts} +1 -1
  141. package/dist/{index-C_C0tLeD.d.ts → index-Cc-wBCn6.d.ts} +32 -32
  142. package/dist/{index-Cx9e-fRi.d.ts → index-CcIG01PJ.d.ts} +2 -2
  143. package/dist/{index-ClJ0nMsR.d.cts → index-CiWEYzXl.d.cts} +2 -2
  144. package/dist/{index-CKKkTsms.d.ts → index-Cqg6ltII.d.ts} +1 -1
  145. package/dist/{index-CExtydIH.d.ts → index-DOii3C6b.d.ts} +1 -1
  146. package/dist/index-DTu2X-YS.d.cts +1609 -0
  147. package/dist/index-OEifcBsm.d.cts +191 -0
  148. package/dist/{index-Dxpscrvz.d.ts → index-PGF8BvxQ.d.ts} +1 -1
  149. package/dist/{index-D2VaMPA3.d.ts → index-ylUiJvnr.d.ts} +1 -1
  150. package/dist/interceptors/index.cjs +2 -12
  151. package/dist/interceptors/index.d.cts +8 -13
  152. package/dist/interceptors/index.d.ts +8 -13
  153. package/dist/interceptors/index.js +2 -11
  154. package/dist/jackArcher-B39OEIj6.cjs +727 -0
  155. package/dist/{jackArcher-CXf_IAmC.js → jackArcher-BwkWGybC.js} +24 -25
  156. package/dist/jordanCraig-CxRH_jLi.js +1786 -0
  157. package/dist/jordanCraig-RwmWw-jM.cjs +1786 -0
  158. package/dist/kindredBravely-D78VwL20.cjs +490 -0
  159. package/dist/kindredBravely-DQDpAzdl.js +490 -0
  160. package/dist/kutFromTheKloth-TcXQkIti.js +369 -0
  161. package/dist/kutFromTheKloth-dXRrNti0.cjs +369 -0
  162. package/dist/larryAndSerges-Bh5XEXsZ.js +262 -0
  163. package/dist/larryAndSerges-COdBzOzu.cjs +262 -0
  164. package/dist/leapsAndRebounds-BbXnqkl5.cjs +360 -0
  165. package/dist/leapsAndRebounds-mjCaH1k-.js +360 -0
  166. package/dist/longevityrx-DdV3v26F.cjs +320 -0
  167. package/dist/longevityrx-DfPDfvAt.js +320 -0
  168. package/dist/lookOptic-DgXFGBPP.cjs +282 -0
  169. package/dist/{lookOptic-BGhU4910.js → lookOptic-FgVW1afF.js} +19 -20
  170. package/dist/mantraBrand-C5gVm3rk.cjs +750 -0
  171. package/dist/{mantraBrand-DrqG9uqO.js → mantraBrand-uV8HCDR8.js} +22 -23
  172. package/dist/medterra-BtDpr1Hw.cjs +583 -0
  173. package/dist/medterra-DgzE7-mj.js +583 -0
  174. package/dist/modells-CJjsxOIR.js +484 -0
  175. package/dist/modells-Ck5KbRFj.cjs +484 -0
  176. package/dist/models-BkXg5eIP.cjs +1534 -0
  177. package/dist/models-UZ6HszfZ.js +1281 -0
  178. package/dist/{nodeSelector-BiCDowlK.d.ts → nodeSelector-BxrS2S_k.d.ts} +1 -1
  179. package/dist/{nodeSelector-B3bPtEjX.d.cts → nodeSelector-Dm4S-10n.d.cts} +1 -1
  180. package/dist/org-C2RrBVQR.cjs +81 -0
  181. package/dist/org-xMytX--e.js +38 -0
  182. package/dist/orgAnalyticsConfig-BJ2A1RZ-.cjs +39 -0
  183. package/dist/orgAnalyticsConfig-ClrFy2qH.js +14 -0
  184. package/dist/pressedFloral-Bteoboms.js +661 -0
  185. package/dist/pressedFloral-CexgV-xy.cjs +661 -0
  186. package/dist/search-BMOAmrmY.js +459 -0
  187. package/dist/search-Df0Ifneg.cjs +672 -0
  188. package/dist/{search-filter-types-BNTLVXqQ.d.cts → search-filter-types-DosbseF3.d.cts} +1 -1
  189. package/dist/{search-filter-types-DkmH1TxJ.d.ts → search-filter-types-fZf91Pdw.d.ts} +1 -1
  190. package/dist/skinPerfection-BGzq9lq-.cjs +334 -0
  191. package/dist/skinPerfection-BlvcEcUE.js +334 -0
  192. package/dist/snapSupplements-CbbGzAgO.cjs +285 -0
  193. package/dist/snapSupplements-kcsPAOm9.js +285 -0
  194. package/dist/{socialProofClasses-ky69yppk.cjs → socialProofClasses-Db8gzsfi.cjs} +1 -1
  195. package/dist/{socialProofClasses-DdzG1tZy.js → socialProofClasses-kwDvwLOZ.js} +1 -1
  196. package/dist/spanx-B4WFA_rI.js +661 -0
  197. package/dist/spanx-BWoE4F8b.cjs +663 -0
  198. package/dist/spanxStaging-BOrOjhXn.js +845 -0
  199. package/dist/spanxStaging-BfdfIug4.cjs +848 -0
  200. package/dist/{suggestionBarV2-types-CwOXzIKq.js → suggestionBarV2-types-IMMOmCir.js} +1 -1
  201. package/dist/{suggestionBarV2-types-Dc4-zJlV.cjs → suggestionBarV2-types-nnGNgFvR.cjs} +1 -1
  202. package/dist/supergoop-22dd5_BS.js +323 -0
  203. package/dist/supergoop-B-a4cku2.cjs +323 -0
  204. package/dist/{test-types-CXVJxTeu.d.ts → test-types-C9b_OdfO.d.ts} +1 -1
  205. package/dist/{test-types-CuOq25VT.d.cts → test-types-CgVJtwUr.d.cts} +1 -1
  206. package/dist/types/index.cjs +2 -2
  207. package/dist/types/index.d.cts +2 -2
  208. package/dist/types/index.d.ts +2 -2
  209. package/dist/types/index.js +2 -2
  210. package/dist/types--pr1GQQx.js +154 -0
  211. package/dist/types-BVSyY3Hk.cjs +196 -0
  212. package/dist/{uniqueVintage-Cui74mlJ.js → uniqueVintage-CJXiNNe7.js} +19 -20
  213. package/dist/uniqueVintage-D0jzJWlo.cjs +1213 -0
  214. package/dist/useMessageInterceptor-B87e3yu3.cjs +33 -0
  215. package/dist/useMessageInterceptor-Bb7YRaWk.js +25 -0
  216. package/dist/userIdentityContext-BPqvVIg0.d.cts +20 -0
  217. package/dist/userIdentityContext-wbCRmlzp.d.ts +20 -0
  218. package/dist/utils-C9ZSCx12.js +888 -0
  219. package/dist/utils-D5HO61hG.cjs +1016 -0
  220. package/dist/variantInfo-DbVxA1yE.js +1 -0
  221. package/dist/variantInfo-orXoPBCU.cjs +0 -0
  222. package/dist/venaCbd-Bhhu_qUf.cjs +365 -0
  223. package/dist/venaCbd-CanovPS_.js +365 -0
  224. package/dist/westonJonBoucher-BC0x1ktI.cjs +422 -0
  225. package/dist/{westonJonBoucher-C95EuCl-.js → westonJonBoucher-BUu1_wP1.js} +19 -20
  226. package/dist/wineEnthusiast-BlCryfil.cjs +940 -0
  227. package/dist/{wineEnthusiast-DeTFY8Gm.js → wineEnthusiast-Ck1x5iJq.js} +19 -20
  228. package/dist/wolfMattress-D9Mjq-HP.js +372 -0
  229. package/dist/wolfMattress-JssghhC-.cjs +372 -0
  230. package/dist/wolfTactical-C6exYhL7.cjs +349 -0
  231. package/dist/wolfTactical-CnV3KQdI.js +349 -0
  232. package/package.json +101 -19
  233. package/src/{adapters/spiffy/commerce/api.ts → application/commerce-api.ts} +31 -23
  234. package/src/application/models/colorsConfig.ts +18 -18
  235. package/src/application/models/frontendConfig.ts +3 -3
  236. package/src/application/models/graphql/queries/getMerchantColorsQuery.ts +1 -1
  237. package/src/application/models/graphql/queries/getMerchantFrontendConfigQuery.ts +1 -1
  238. package/src/application/models/index.ts +0 -2
  239. package/src/application/models/localStorageEventListener.ts +2 -2
  240. package/src/application/models/supportedOrgs.ts +1 -1
  241. package/src/application/models/utils/snakeToCamelTransformer.ts +8 -8
  242. package/src/application/models/validators/validateGraphQLColorsConfig.ts +0 -21
  243. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +2 -2
  244. package/src/application/utils/analyticsUtils.ts +53 -22
  245. package/src/application/utils/cdnUtils.ts +11 -0
  246. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +15 -0
  247. package/src/atoms/app/index.ts +7 -17
  248. package/src/atoms/app/variant.ts +13 -4
  249. package/src/atoms/chat/chatState.ts +28 -18
  250. package/src/atoms/chat/messageQueue.ts +36 -5
  251. package/src/atoms/chat/replies.ts +45 -37
  252. package/src/atoms/envive/enviveConfig.ts +10 -6
  253. package/src/atoms/org/graphqlConfig.ts +21 -4
  254. package/src/atoms/org/index.ts +7 -7
  255. package/src/atoms/org/newOrgConfigAtom.ts +8 -0
  256. package/src/atoms/org/orgPageConfig.ts +6 -5
  257. package/src/atoms/search/chatSearch.ts +11 -5
  258. package/src/atoms/search/searchAPI.ts +68 -48
  259. package/src/atoms/search/searchServiceAdapter.ts +25 -0
  260. package/src/contexts/amplitudeContext.tsx +466 -0
  261. package/src/contexts/cdnContext.tsx +48 -0
  262. package/src/contexts/chatContext.tsx +15 -12
  263. package/src/contexts/enviveConfigContext.tsx +22 -17
  264. package/src/contexts/enviveCssContext.tsx +34 -5
  265. package/src/contexts/featureFlagContext.tsx +193 -0
  266. package/src/contexts/featureFlagServiceContext.tsx +87 -0
  267. package/src/contexts/graphqlContext.tsx +165 -0
  268. package/src/contexts/index.ts +13 -3
  269. package/src/contexts/localStorageContext.tsx +159 -0
  270. package/src/contexts/newOrgConfigContext.tsx +104 -0
  271. package/src/contexts/orgConfigContext.tsx +92 -92
  272. package/src/contexts/searchContext.tsx +187 -0
  273. package/src/contexts/sessionStorageContext.tsx +80 -0
  274. package/src/contexts/shopifyUrlContext.tsx +97 -0
  275. package/src/contexts/types.ts +12 -8
  276. package/src/contexts/userIdentityContext.tsx +197 -0
  277. package/src/events/registerAnalyticsListeners.ts +32 -38
  278. package/src/hooks/index.ts +10 -6
  279. package/src/hooks/useAmplitudeOperations.ts +35 -0
  280. package/src/hooks/useAppDetails.ts +49 -0
  281. package/src/hooks/useCdnOperations.ts +16 -0
  282. package/src/hooks/useChatToggle.ts +5 -4
  283. package/src/hooks/useChatToggleAnalytics.ts +15 -0
  284. package/src/hooks/useGraphQLConfig.ts +63 -0
  285. package/src/hooks/useIdentifyUser.ts +33 -0
  286. package/src/hooks/useImageResolver.ts +18 -10
  287. package/src/hooks/useLocalStorageOperations.ts +92 -0
  288. package/src/hooks/useNewOrgConfig.ts +7 -0
  289. package/src/hooks/useSearch.tsx +21 -18
  290. package/src/hooks/useSearchOperations.ts +97 -0
  291. package/src/hooks/useSessionStorageOperations.ts +28 -0
  292. package/src/hooks/useShopifyUrlOperations.ts +45 -0
  293. package/src/hooks/useTrackComponentVisibleEvent.ts +12 -8
  294. package/src/hooks/useUpdateAnalyticsProps.ts +28 -17
  295. package/src/interceptors/index.ts +0 -1
  296. package/src/interceptors/useMessageInterceptor.ts +5 -8
  297. package/src/merchants/bandolier/bandolier.ts +10 -28
  298. package/src/merchants/carpe/carpe.ts +5 -8
  299. package/src/merchants/coterie/coterie.ts +3 -6
  300. package/src/merchants/default.ts +73 -70
  301. package/src/merchants/domInsertion.ts +30 -0
  302. package/src/merchants/dreamlandBaby/dreamlandBaby.ts +12 -6
  303. package/src/merchants/fiveCbd/fiveCbd.ts +7 -13
  304. package/src/merchants/forLoveAndLemons/forLoveAndLemons.ts +44 -14
  305. package/src/merchants/greenpan/greenpan.ts +6 -12
  306. package/src/merchants/gridInsertion.ts +19 -0
  307. package/src/merchants/grooveLife/grooveLife.ts +13 -7
  308. package/src/merchants/homegrownCannabis/homegrownCannabis.ts +12 -6
  309. package/src/merchants/jackArcher/jackArcher.ts +26 -11
  310. package/src/merchants/jordanCraig/jordanCraig.ts +5 -5
  311. package/src/merchants/kindredBravely/kindredBravely.ts +16 -7
  312. package/src/merchants/kutFromTheKloth/kutFromTheKloth.ts +9 -6
  313. package/src/merchants/larryAndSerges/larryAndSerges.ts +6 -2
  314. package/src/merchants/leapsAndRebounds/leapsAndRebounds.ts +7 -7
  315. package/src/merchants/longevityrx/longevityrx.ts +14 -8
  316. package/src/merchants/lookOptic/lookOptic.ts +6 -6
  317. package/src/merchants/mantraBrand/mantraBrand.ts +14 -8
  318. package/src/merchants/medterra/medterra.ts +14 -11
  319. package/src/merchants/modells/modells.ts +6 -9
  320. package/src/merchants/pressedFloral/pressedFloral.ts +7 -13
  321. package/src/merchants/skinPerfection/skinPerfection.ts +13 -7
  322. package/src/merchants/snapSupplements/snapSupplements.ts +13 -10
  323. package/src/merchants/spanx/spanx.ts +6 -6
  324. package/src/merchants/spanx/spanxStaging.ts +6 -12
  325. package/src/merchants/supergoop/supergoop.ts +11 -12
  326. package/src/merchants/uniqueVintage/uniqueVintage.ts +6 -6
  327. package/src/merchants/venaCbd/venaCbd.ts +6 -9
  328. package/src/merchants/westonJonBoucher/westonJonBoucher.ts +6 -6
  329. package/src/merchants/wineEnthusiast/wineEnthusiast.ts +6 -6
  330. package/src/merchants/wolfMattress/wolfMattress.ts +3 -3
  331. package/src/merchants/wolfTactical/wolfTactical.ts +5 -11
  332. package/src/types/config-versions.ts +6 -0
  333. package/src/types.ts +0 -53
  334. package/dist/adapters/amplitude/index.cjs +0 -14
  335. package/dist/adapters/amplitude/index.d.cts +0 -6
  336. package/dist/adapters/amplitude/index.d.ts +0 -6
  337. package/dist/adapters/amplitude/index.js +0 -12
  338. package/dist/api-B2euFL-5.cjs +0 -269
  339. package/dist/api-XRr_lAG6.js +0 -190
  340. package/dist/application/config/index.cjs +0 -43
  341. package/dist/application/config/index.d.cts +0 -15
  342. package/dist/application/config/index.d.ts +0 -15
  343. package/dist/application/config/index.js +0 -41
  344. package/dist/application/service/customerService/index.cjs +0 -4
  345. package/dist/application/service/customerService/index.d.cts +0 -3
  346. package/dist/application/service/customerService/index.d.ts +0 -3
  347. package/dist/application/service/customerService/index.js +0 -4
  348. package/dist/application/service/index.cjs +0 -41
  349. package/dist/application/service/index.d.cts +0 -399
  350. package/dist/application/service/index.d.ts +0 -399
  351. package/dist/application/service/index.js +0 -12
  352. package/dist/bandolier-B76-OE75.cjs +0 -1230
  353. package/dist/bandolier-DRn_x1g1.js +0 -1230
  354. package/dist/carpe-kHi4RLB5.cjs +0 -608
  355. package/dist/carpe-qrSU99gq.js +0 -606
  356. package/dist/contexts-CQDwe3rK.cjs +0 -14333
  357. package/dist/contexts-e2sM-B9g.js +0 -12919
  358. package/dist/coterie-mMirPcHP.js +0 -240
  359. package/dist/customerService-BG1uNZZ1.cjs +0 -36
  360. package/dist/customerService-BHQRnLhC.js +0 -23
  361. package/dist/default-8Jfv8ehQ.cjs +0 -199
  362. package/dist/default-C8PQf-38.js +0 -176
  363. package/dist/default-LukSiCz1.js +0 -4
  364. package/dist/default-rJSJ887P.cjs +0 -4
  365. package/dist/dreamlandBaby-DHltv12Z.cjs +0 -347
  366. package/dist/dreamlandBaby-cG0HM9bt.js +0 -347
  367. package/dist/featureFlagService-5wdmW02z.d.ts +0 -18
  368. package/dist/featureFlagService-DaelrXEk.d.cts +0 -18
  369. package/dist/fiveCbd-Cvnwh03g.cjs +0 -614
  370. package/dist/fiveCbd-DhYMlsf9.js +0 -614
  371. package/dist/forLoveAndLemons-C8DuUexW.js +0 -666
  372. package/dist/forLoveAndLemons-DR6a1zjJ.cjs +0 -668
  373. package/dist/greenpan-B4Pu65kV.js +0 -398
  374. package/dist/greenpan-BL5p6j7f.cjs +0 -398
  375. package/dist/grooveLife-DjKWHoN3.cjs +0 -343
  376. package/dist/grooveLife-JK0TyaPz.js +0 -343
  377. package/dist/homegrownCannabis-DxqSDkmS.js +0 -411
  378. package/dist/homegrownCannabis-ZnfCqW-m.cjs +0 -411
  379. package/dist/index-BfuO9b0Q.d.ts +0 -749
  380. package/dist/index-CNsGWfS6.d.cts +0 -749
  381. package/dist/index-DFL1dIT_.d.ts +0 -7
  382. package/dist/index-MFbPQ8Ji.d.ts +0 -95
  383. package/dist/index-VSFakgAI.d.cts +0 -95
  384. package/dist/index-zZjcds15.d.cts +0 -7
  385. package/dist/jackArcher-mGkojXek.cjs +0 -728
  386. package/dist/jordanCraig-BvCvPRoR.js +0 -1787
  387. package/dist/jordanCraig-Dv8pVCiS.cjs +0 -1787
  388. package/dist/kindredBravely-UQP7wiNu.cjs +0 -491
  389. package/dist/kindredBravely-X8F_LNph.js +0 -491
  390. package/dist/kutFromTheKloth-BhYKk3CN.cjs +0 -370
  391. package/dist/kutFromTheKloth-D1xsTSJr.js +0 -370
  392. package/dist/larryAndSerges-1411NuZa.cjs +0 -262
  393. package/dist/larryAndSerges-DVIRLItu.js +0 -262
  394. package/dist/leapsAndRebounds-BJ8mwr33.js +0 -361
  395. package/dist/leapsAndRebounds-UcP9EJVO.cjs +0 -361
  396. package/dist/logger-Dln20ans.cjs +0 -26
  397. package/dist/logger-pdEEY8T2.js +0 -20
  398. package/dist/longevityrx-BFSv9GF5.cjs +0 -321
  399. package/dist/longevityrx-Cp6wleWr.js +0 -321
  400. package/dist/lookOptic-KieSqskd.cjs +0 -283
  401. package/dist/mantraBrand-CHQw-0nw.cjs +0 -751
  402. package/dist/medterra-CLG6Co1C.cjs +0 -584
  403. package/dist/medterra-D8ZX9NZC.js +0 -584
  404. package/dist/modells-BzyPwN2m.cjs +0 -485
  405. package/dist/modells-CAfqOCW4.js +0 -485
  406. package/dist/orgConfigResults--dAwtw3W.d.ts +0 -881
  407. package/dist/orgConfigResults-BL0XBA6x.d.cts +0 -881
  408. package/dist/pressedFloral-DULBuQwR.cjs +0 -662
  409. package/dist/pressedFloral-Dp-7Fk3S.js +0 -662
  410. package/dist/skinPerfection-BxuYCeJX.js +0 -335
  411. package/dist/skinPerfection-Cd3XZ6By.cjs +0 -335
  412. package/dist/snapSupplements-Bf6htPM0.js +0 -286
  413. package/dist/snapSupplements-ZFnXyMuZ.cjs +0 -286
  414. package/dist/spanx-CwDPQaGj.js +0 -662
  415. package/dist/spanx-Cyd4qDlK.cjs +0 -664
  416. package/dist/spanxStaging-D43nyAGy.js +0 -846
  417. package/dist/spanxStaging-ijbYnHzr.cjs +0 -849
  418. package/dist/supergoop-BnbFG7hm.cjs +0 -338
  419. package/dist/supergoop-CY043wIg.js +0 -336
  420. package/dist/types-BF_CJeck.js +0 -177
  421. package/dist/types-CD4LFta-.d.cts +0 -33
  422. package/dist/types-CNH4sfF-.cjs +0 -231
  423. package/dist/types-DBdI0j89.d.ts +0 -33
  424. package/dist/uniqueVintage-R2Jcu1y1.cjs +0 -1214
  425. package/dist/variant-CKVRF2-W.d.ts +0 -13
  426. package/dist/variant-raYuOP4L.d.cts +0 -13
  427. package/dist/venaCbd-o5_vOp4e.js +0 -366
  428. package/dist/venaCbd-r-IxEVc1.cjs +0 -366
  429. package/dist/westonJonBoucher-DjGEW3ZB.cjs +0 -423
  430. package/dist/wineEnthusiast-DvfcV5B3.cjs +0 -941
  431. package/dist/wolfMattress-6xPfOJt3.js +0 -373
  432. package/dist/wolfMattress-BjGnGKjP.cjs +0 -373
  433. package/dist/wolfTactical-Bi3WZu0m.cjs +0 -350
  434. package/dist/wolfTactical-C_F9-oPX.js +0 -350
  435. package/src/adapters/amplitude/amplitudeAdapter.ts +0 -477
  436. package/src/adapters/amplitude/index.ts +0 -2
  437. package/src/adapters/amplitude/stubAmplitudeAdapter.ts +0 -34
  438. package/src/adapters/spiffy/commerce/graphql.ts +0 -219
  439. package/src/application/config/generalStaticConfig.ts +0 -40
  440. package/src/application/config/index.ts +0 -1
  441. package/src/application/models/domMutationContinuation.ts +0 -7
  442. package/src/application/models/domObservationStrategy.ts +0 -9
  443. package/src/application/service/cachingService.ts +0 -84
  444. package/src/application/service/cdnService.ts +0 -20
  445. package/src/application/service/customerService/index.ts +0 -8
  446. package/src/application/service/customerService/providers/UnsupportedCustomerService.ts +0 -15
  447. package/src/application/service/domMutationObserver.ts +0 -320
  448. package/src/application/service/domMutations/GridInsertionService.ts +0 -123
  449. package/src/application/service/domMutations/dataLayer/dataLayerEventsListener.ts +0 -99
  450. package/src/application/service/domMutations/domInsertionService.ts +0 -90
  451. package/src/application/service/domMutations/domMutationListener.ts +0 -15
  452. package/src/application/service/domMutations/domMutationListenerState.ts +0 -52
  453. package/src/application/service/domMutations/floatingChat/embeddedChatsPlacementsListener.ts +0 -41
  454. package/src/application/service/domMutations/gladly/gladlyListener.ts +0 -61
  455. package/src/application/service/domMutations/spiffy/orgs/common/kustomerVisibilityListener.ts +0 -41
  456. package/src/application/service/domMutations/spiffy/orgs/common/orgsCommonDataLayerListener.ts +0 -119
  457. package/src/application/service/featureFlagService.ts +0 -130
  458. package/src/application/service/index.ts +0 -31
  459. package/src/application/service/kustomerIntegrationService.ts +0 -111
  460. package/src/application/service/localStorageService.ts +0 -77
  461. package/src/application/service/pageVariantService.ts +0 -866
  462. package/src/application/service/searchService.ts +0 -147
  463. package/src/application/service/sessionStorageService.ts +0 -27
  464. package/src/application/service/shopifyUrlService.ts +0 -63
  465. package/src/application/service/userIdentityService.ts +0 -114
  466. package/src/application/service/windowChatToggleService.ts +0 -80
  467. package/src/application/service/windowDataLayerService.ts +0 -181
  468. package/src/application/service/windowFrontendConfigService.ts +0 -129
  469. package/src/atoms/org/merchantCss.ts +0 -158
  470. package/src/atoms/org/org.ts +0 -291
  471. package/src/atoms/org/orgUIConfig.ts +0 -142
  472. package/src/enabled-features.ts +0 -83
  473. package/src/hooks/useDynamicVariants.ts +0 -210
  474. package/src/hooks/useFileUpload.ts +0 -63
  475. package/src/hooks/useHideElements.ts +0 -82
  476. package/src/hooks/useHorizontalScrollAnimation.ts +0 -115
  477. package/src/hooks/useReducedMotionWithOverride.ts +0 -15
  478. package/src/hooks/useSnapControl.ts +0 -155
  479. package/src/interceptors/useFormEscalation.ts +0 -57
  480. /package/dist/{variantInfo-CzhR5W6h.js → atomStore-CZnUUsrr.js} +0 -0
  481. /package/dist/{variantInfo-CNRTY0gH.cjs → atomStore-KSoFS3Jj.cjs} +0 -0
  482. /package/dist/{utilityTypes-C4h2wgAK.cjs → locators-0YYZu9n4.cjs} +0 -0
  483. /package/dist/{utilityTypes-BVikejDo.js → locators-fBXS_pxP.js} +0 -0
  484. /package/dist/{locators-Dc5ZT0aF.js → utilityTypes-8sETsYPk.js} +0 -0
  485. /package/dist/{locators-lQMJj830.cjs → utilityTypes-COShxVir.cjs} +0 -0
  486. /package/src/{application/service/customerService/types.ts → types/customerService.ts} +0 -0
  487. /package/src/{adapters/spiffy/commerce → types}/exceptions/sessionExceptions.ts +0 -0
  488. /package/src/{adapters/spiffy/commerce → types}/exceptions/unsupportedProductExceptions.ts +0 -0
@@ -1,749 +0,0 @@
1
- import { ColorMapping, FrontendConfig, OrgConfig, OrgPageConfig, OrgUIConfig, OrganizationConfig as OrganizationConfig$1, PageVariantConfig, WidgetConfig, WidgetMountingConfig } from "./orgConfigResults--dAwtw3W.js";
2
- import { GetMerchantColorsQueryData } from "./index-D2VaMPA3.js";
3
- import { AcceptableFormFieldType, ApiFormResponseAttributes, ApiPageResponseAttributes, OrderResponseAttributes as OrderResponseAttributes$1, PageResponseAttributes, ProductResponseAttributes, Response as Response$1, ReviewResponseAttributes, SearchProductFilterAttributes, SearchProductResponseAttributes, SearchResponseAttributes, TextResponseAttributes } from "./index-Cx9e-fRi.js";
4
- import { CamelCasedPropertiesDeep, NonRecursiveType, UnknownArray, UpperCaseCharacters, WordSeparators } from "./index-Dxpscrvz.js";
5
- import { VariantInfo } from "./index-CKKkTsms.js";
6
- import { Context, CustServiceAttachment, FormSubmittedAttributes, FormType, FulfillmentDisplayStatus, GenerationParams, OrderItemInfo, OrderResponseAttributes, OrganizationConfig, OrganizationSettings, PDPAttributes, PLPAttributes, PLPIdAttributes, PageVisitCategory, ProductSearchFilterResponseAttributes, ProductSearchResponse, ProductSearchResponseAttributes, QueryTypedAttributes, SearchAttributes, SearchResponseProduct, StatsigExperiment, StatsigFeatureGate, Suggestion, SuggestionClickedAttributes, UserEvent, UserEventCategory } from "@spiffy-ai/commerce-api-client";
7
-
8
- //#region src/application/models/cachedValue.d.ts
9
- interface CachedValue {
10
- value: unknown;
11
- expiry: number;
12
- }
13
- //#endregion
14
- //#region src/application/models/clientDetails.d.ts
15
- interface ClientDetails {
16
- os?: string;
17
- osVersion?: string;
18
- deviceBrand?: string;
19
- deviceManufacturer?: string;
20
- deviceModel?: string;
21
- carrier?: string;
22
- country?: string;
23
- region?: string;
24
- browser?: string;
25
- browserVersion?: string;
26
- browserIpAddress?: string;
27
- userAgent?: string;
28
- }
29
- //#endregion
30
- //#region src/application/models/conversationalSearchIds.d.ts
31
- type ConversationalSearchIds = {
32
- conversationalSearchEntrypointId?: string;
33
- conversationalSearchInputId?: string;
34
- conversationalSearchModalId?: string;
35
- };
36
- //#endregion
37
- //#region src/application/models/dataLayer.d.ts
38
- /**
39
- * Base interface for common properties across all ecommerce events
40
- */
41
- interface BaseEcommerceEvent {
42
- event: string;
43
- ecommerce: UAEcommerceData | GA4EcommerceData;
44
- }
45
- /**
46
- * Legacy universal analytics data. The actual payload contains more fields, but we
47
- * only need the ones listed below.
48
- */
49
- interface UAEcommerceData {
50
- add: {
51
- products: {
52
- name: string;
53
- category: string;
54
- price: string;
55
- quantity: string;
56
- }[];
57
- currencyCode: string;
58
- };
59
- }
60
- /**
61
- * Google Analytics 4 data. The actual payload contains more fields, but we
62
- * only need the ones listed below.
63
- */
64
- interface GA4EcommerceData {
65
- currency: string;
66
- items: {
67
- item_name: string;
68
- item_category: string;
69
- price: number;
70
- quantity: number;
71
- }[];
72
- }
73
- interface UAEcommerceEvent extends BaseEcommerceEvent {
74
- ecommerce: UAEcommerceData;
75
- }
76
- interface GA4EcommerceEvent extends BaseEcommerceEvent {
77
- ecommerce: GA4EcommerceData;
78
- }
79
- //#endregion
80
- //#region src/application/models/domMutationContinuation.d.ts
81
- declare enum DomMutationObserverContinuation {
82
- CONTINUE = "CONTINUE",
83
- EXECUTING = "EXECUTING",
84
- STOP = "STOP",
85
- }
86
- //#endregion
87
- //#region src/application/models/domObservationStrategy.d.ts
88
- declare enum DomObservationStrategy {
89
- MutationObserver = "MutationObserver",
90
- Polling = "Polling",
91
- None = "None",
92
- }
93
- //#endregion
94
- //#region src/application/models/events.d.ts
95
- declare enum SpiffyEventName {
96
- WidgetOpen = "spiffy:widgetopen",
97
- WidgetClose = "spiffy:widgetclose",
98
- }
99
- //#endregion
100
- //#region src/application/models/googleAnalyticsEvents.d.ts
101
- declare enum GoogleAnalyticsEvents {
102
- ADD_TO_CART_v1 = "add_to_cart",
103
- ADD_TO_CART_v2 = "addToCart",
104
- }
105
- //#endregion
106
- //#region src/application/models/message.d.ts
107
- declare enum MessageRole {
108
- User = "user",
109
- Assistant = "assistant",
110
- }
111
- declare enum MessageType {
112
- Text = "text",
113
- SuggestionClicked = "suggestion_clicked",
114
- Product = "product",
115
- ProductSearch = "product_search",
116
- Review = "review",
117
- QueryTyped = "query_typed",
118
- Separator = "separator",
119
- Page = "page",
120
- Search = "search",
121
- Attachment = "attachment",
122
- CXAgentResponse = "cx_agent_response",
123
- Form = "form",
124
- Order = "order",
125
- ProductSearchFilter = "product_search_filter",
126
- }
127
- type Message = {
128
- id: string;
129
- role: MessageRole;
130
- createdAt: string;
131
- } & (TextMessageMetadata | QueryTypedMetadata | SuggestionMessageMetadata | ProductMessageMetadata | ProductSearchMessageMetadata | ReviewMessageMetadata | SeparatorMessageMetadata | PageMessageMetadata | SearchMessageMetadata | AttachmentMetadata | CXAgentResponseMetadata | FormMessageMetadata | OrderMessageMetadata | ProductSearchFilterMetadata);
132
- type AttachmentMetadata = {
133
- type: MessageType.Attachment;
134
- metadata: {
135
- message?: string;
136
- attachment: CustServiceAttachment[];
137
- };
138
- };
139
- type CXAgentResponseMetadata = {
140
- type: MessageType.CXAgentResponse;
141
- metadata: {
142
- message: string;
143
- agentName: string;
144
- };
145
- };
146
- type TextMessageMetadata = {
147
- type: MessageType.Text;
148
- metadata: TextResponseAttributes['attributes'];
149
- };
150
- type QueryTypedMetadata = {
151
- type: MessageType.QueryTyped;
152
- metadata: TextResponseAttributes['attributes'];
153
- };
154
- type SuggestionMessageMetadata = {
155
- type: MessageType.SuggestionClicked;
156
- metadata: {
157
- suggestionId: string;
158
- suggestionContent: string;
159
- };
160
- };
161
- type ProductMessageMetadata = {
162
- type: MessageType.Product;
163
- metadata: ProductResponseAttributes['attributes'];
164
- };
165
- type ProductSearchMessageMetadata = {
166
- type: MessageType.ProductSearch;
167
- metadata: SearchProductResponseAttributes['attributes'];
168
- };
169
- type ReviewMessageMetadata = {
170
- type: MessageType.Review;
171
- metadata: ReviewResponseAttributes['attributes'];
172
- };
173
- type SeparatorMessageMetadata = {
174
- type: MessageType.Separator;
175
- };
176
- type PageMessageMetadata = {
177
- type: MessageType.Page;
178
- metadata: PageResponseAttributes['attributes'];
179
- };
180
- type SearchMessageMetadata = {
181
- type: MessageType.Search;
182
- metadata: SearchResponseAttributes['attributes'];
183
- };
184
- type ProductSearchFilterMetadata = {
185
- type: MessageType.ProductSearchFilter;
186
- metadata: SearchProductFilterAttributes['attributes'];
187
- };
188
- type FormField = {
189
- key: string;
190
- title: string;
191
- type: AcceptableFormFieldType;
192
- required: boolean;
193
- format?: 'email';
194
- value?: string;
195
- };
196
- type FormMessageMetadata = {
197
- type: MessageType.Form;
198
- metadata: {
199
- formType?: FormType;
200
- fields: FormField[];
201
- };
202
- };
203
- type OrderMessageMetadata = {
204
- type: MessageType.Order;
205
- metadata: OrderResponseAttributes$1['attributes'];
206
- };
207
- //#endregion
208
- //#region src/application/models/mobilePLPChatPlacementParameter.d.ts
209
- interface MobilePLPChatPlacementParameter {
210
- rowIndex: number;
211
- }
212
- //#endregion
213
- //#region src/application/models/orgsEnum.d.ts
214
- declare const OrgShortName: {
215
- readonly Coterie: "coterie";
216
- readonly ForLoveAndLemons: "for-love-and-lemons";
217
- readonly Greenpan: "greenpan";
218
- readonly JordanCraig: "jordan-craig";
219
- readonly LarryAndSerges: "larry_and_serges";
220
- readonly LeapsAndRebounds: "leaps-and-rebounds";
221
- readonly MantraBrand: "mantra-brand";
222
- readonly Spanx: "spanx";
223
- readonly SpanxStaging: "staging-spanx";
224
- readonly Supergoop: "supergoop";
225
- readonly UniqueVintage: "unique-vintage";
226
- readonly JackArcher: "jack-archer";
227
- readonly SkinPerfection: "skin-perfection";
228
- readonly LookOptic: "look-optic";
229
- readonly FiveCbd: "five-cbd";
230
- readonly SnapSupplements: "snap-supplements";
231
- readonly Longevityrx: "longevityrx";
232
- readonly VenaCbd: "vena-cbd";
233
- readonly Medterra: "medterra";
234
- readonly Modells: "modells";
235
- readonly PressedFloral: "pressed-floral";
236
- readonly KindredBravely: "kindred-bravely";
237
- readonly WineEnthusiast: "wine-enthusiast";
238
- readonly HomegrownCannabis: "homegrown-cannabis";
239
- readonly DreamlandBaby: "dreamland-baby";
240
- readonly Bandolier: "bandolier";
241
- readonly WestonJonBoucher: "weston-jon-boucher";
242
- readonly KutFromTheKloth: "kut-from-the-kloth";
243
- readonly GrooveLife: "groove-life";
244
- readonly Carpe: "carpe";
245
- readonly WolfTactical: "wolf-tactical";
246
- readonly WolfMattress: "wolfmattress";
247
- readonly Default: "default";
248
- };
249
- //#endregion
250
- //#region src/application/models/productExperiment.d.ts
251
- declare enum ProductExperiment {
252
- Default = "default",
253
- }
254
- //#endregion
255
- //#region src/application/models/spanxTakeAQuizCtaParameter.d.ts
256
- interface SpanxTakeAQuizCtaParameter {
257
- text?: string;
258
- value?: string;
259
- }
260
- //#endregion
261
- //#region src/application/models/spiffyWidgets.d.ts
262
- /**
263
- * Enum of all widget names. These are widgets that are rendered and integrated into
264
- * a merchant's website.
265
- */
266
- declare enum SpiffyWidgets {
267
- ImageBanner = "image_banner",
268
- ImagePromptCard = "image_prompt_card",
269
- SingleImagePrompt = "single_image_prompt",
270
- EmbeddedWidget = "embedded_widget",
271
- FloatingButton = "floating_button",
272
- SuggestionBar = "suggestion_bar",
273
- SearchPrompt = "search_prompt",
274
- GlobalSearch = "global_search",
275
- SearchResults = "search_results",
276
- GlobalSearchEntryPoint = "global_search_entry_point",
277
- }
278
- //#endregion
279
- //#region src/application/models/supportedOrgs.d.ts
280
- type BasicOrgInfoType = {
281
- shortName: string;
282
- name: string;
283
- domain: string;
284
- defaultProductId: string;
285
- alwaysEnabledMerchants: boolean;
286
- orgUIConfig: () => OrgUIConfig | undefined;
287
- orgPageConfig: () => OrgPageConfig;
288
- orgColors: () => ColorMapping | {};
289
- };
290
- declare const getOrgInfo: (orgShortName: string) => Promise<BasicOrgInfoType>;
291
- //#endregion
292
- //#region src/application/models/api/context.d.ts
293
- interface Context$1 extends CamelCasedPropertiesDeep<Context> {}
294
- //#endregion
295
- //#region src/application/models/api/generationParams.d.ts
296
- interface GenerationParams$1 extends CamelCasedPropertiesDeep<GenerationParams> {}
297
- //#endregion
298
- //#region src/application/models/api/userEvent.d.ts
299
- interface PDPAttributes$1 extends CamelCasedPropertiesDeep<PDPAttributes> {}
300
- interface PLPAttributes$1 extends CamelCasedPropertiesDeep<PLPAttributes> {}
301
- interface SearchAttributes$1 extends CamelCasedPropertiesDeep<SearchAttributes> {}
302
- interface QueryTypedAttributes$1 extends CamelCasedPropertiesDeep<QueryTypedAttributes> {}
303
- interface FormSubmittedAttributes$1 {
304
- filledSchema: Record<string, unknown>;
305
- formResponseId: string;
306
- formType: FormType;
307
- }
308
- interface PageVisitAttributes {
309
- url: string;
310
- pageVisitCategory: PageVisitCategory;
311
- }
312
- interface SuggestionClickedAttributes$1 extends CamelCasedPropertiesDeep<SuggestionClickedAttributes> {}
313
- type UserEventAttributes = PDPAttributes$1 | PLPAttributes$1 | QueryTypedAttributes$1 | SearchAttributes$1 | SuggestionClickedAttributes$1 | PageVisitAttributes;
314
- interface PDPUserEvent {
315
- category: UserEventCategory.PdpVisit | UserEventCategory.AddToCart;
316
- attributes: PDPAttributes$1;
317
- }
318
- interface PLPUserEvent {
319
- category: UserEventCategory.PlpVisit;
320
- attributes: PLPAttributes$1;
321
- }
322
- interface QueryTypedUserEvent {
323
- category: UserEventCategory.QueryTyped;
324
- attributes: QueryTypedAttributes$1;
325
- }
326
- interface SearchUserEvent {
327
- category: UserEventCategory.Search;
328
- attributes: SearchAttributes$1;
329
- }
330
- interface SuggestionsClickedUserEvent {
331
- category: UserEventCategory.SuggestionClicked;
332
- attributes: SuggestionClickedAttributes$1;
333
- }
334
- interface AppLoadedUserEvent {
335
- category: UserEventCategory.AppLoaded;
336
- }
337
- interface AppUnloadedEvent {
338
- category: UserEventCategory.AppUnloaded;
339
- }
340
- interface PageVisitEvent {
341
- category: UserEventCategory.PageVisit;
342
- attributes: PageVisitAttributes;
343
- }
344
- interface FormSubmitted {
345
- category: UserEventCategory.FormSubmitted;
346
- attributes: FormSubmittedAttributes$1;
347
- }
348
- type UserEvent$1 = CamelCasedPropertiesDeep<Pick<UserEvent, 'event_id' | 'category' | 'created_at'>> & (SuggestionsClickedUserEvent | AppLoadedUserEvent | PDPUserEvent | QueryTypedUserEvent | SearchUserEvent | AppUnloadedEvent | PLPUserEvent | PageVisitEvent | FormSubmitted);
349
- //#endregion
350
- //#region src/application/models/api/nextMessageRequest.d.ts
351
- interface NextMessageRequest$1 {
352
- id: string;
353
- context: Context$1;
354
- userEvents?: UserEvent$1[];
355
- featureFlags?: Record<string, boolean>;
356
- generationParams?: GenerationParams$1;
357
- }
358
- //#endregion
359
- //#region src/application/models/api/search.d.ts
360
- interface ProductSearchResponse$1 extends CamelCasedPropertiesDeep<ProductSearchResponse> {}
361
- interface ProductSearchResponseAttributes$1 extends CamelCasedPropertiesDeep<ProductSearchResponseAttributes> {}
362
- interface SearchResult {
363
- products: SearchResponseProduct[];
364
- filters: string[];
365
- generatedQuery?: string;
366
- totalProductCount: number;
367
- searchResponseId: string;
368
- }
369
- interface SearchParams {
370
- query: string;
371
- limit?: number;
372
- }
373
- //#endregion
374
- //#region src/application/models/api/suggestion.d.ts
375
- interface Suggestion$1 extends CamelCasedPropertiesDeep<Suggestion> {}
376
- //#endregion
377
- //#region src/application/models/api/supportedEventRequest.d.ts
378
- interface SupportedEventRequest$1 {
379
- id: string;
380
- context: Context$1;
381
- userEvent: UserEvent$1;
382
- }
383
- //#endregion
384
- //#region src/application/models/graphql/queries/getMerchantOrgIdQuery.d.ts
385
- declare const getMerchantOrgIdQuery = "\n query {\n me {\n org {\n id\n }\n }\n }\n";
386
- //#endregion
387
- //#region src/application/models/guards/isBaseEcommerceEvent.d.ts
388
- /**
389
- * Checks if an event is a base Google Analytics ecommerce event.
390
- *
391
- * @param data The event to check.
392
- *
393
- * @returns True if the event is a base ecommerce event, false otherwise.
394
- */
395
- declare const isBaseEcommerceEvent: (data: unknown) => data is BaseEcommerceEvent;
396
- //#endregion
397
- //#region src/application/models/guards/isGA4EcommerceEvent.d.ts
398
- /**
399
- * Checks if an event is a Google Analytics 4 ecommerce event.
400
- *
401
- * @param data The event to check.
402
- *
403
- * @returns True if the event is a GA4 ecommerce event, false otherwise.
404
- */
405
- declare const isGA4EcommerceEvent: (data: unknown) => data is GA4EcommerceEvent;
406
- //#endregion
407
- //#region src/application/models/guards/isLegacyUAEcommerceEvent.d.ts
408
- /**
409
- * Checks if an event is a legacy Universal Analytics ecommerce event.
410
- *
411
- * @param data The event to check.
412
- *
413
- * @returns True if the event is a legacy UA ecommerce event, false otherwise.
414
- */
415
- declare const isLegacyUAEcommerceEvent: (data: unknown) => data is UAEcommerceEvent;
416
- //#endregion
417
- //#region src/application/models/guards/isMobilePLPChatPlacementParameter.d.ts
418
- interface MobilePlpChatPlacementParameter {
419
- row_index: number;
420
- }
421
- declare const isMobilePLPChatPlacementParameter: (value: unknown) => value is MobilePlpChatPlacementParameter;
422
- //#endregion
423
- //#region src/application/models/guards/isSpanxTakeAQuizCtaParameter.d.ts
424
- declare const isSpanxTakeAQuizCtaParameter: (value: unknown) => value is SpanxTakeAQuizCtaParameter;
425
- //#endregion
426
- //#region src/application/models/guards/isVariantInfo.d.ts
427
- /**
428
- * Type guard to check if an object is a valid VariantInfo.
429
- *
430
- * @param variantInfo - The unknown object to check.
431
- *
432
- * @returns True if the data is a valid VariantInfo object, false otherwise.
433
- */
434
- declare const isVariantInfo: (variantInfo: unknown) => variantInfo is VariantInfo;
435
- //#endregion
436
- //#region src/application/models/guards/utils.d.ts
437
- /**
438
- * Checks if an object has a property of a specific type
439
- *
440
- * @param obj - The object to check
441
- * @param prop - The property name to check
442
- * @param type - The expected type of the property
443
- * @param isOptional - Whether the property is optional (defaults to false)
444
- *
445
- * @returns boolean indicating if the object has the property of the specified type
446
- */
447
- declare const hasPropertyOfType: <T extends object>(obj: unknown, prop: keyof T, type: "string" | "number" | "boolean" | "object" | "array", isOptional?: boolean) => obj is T;
448
- //#endregion
449
- //#region src/application/models/guards/api/isApiFormResponse.d.ts
450
- /**
451
- * Type guard to check if the provided data has the all of the properties (with the correct types) of
452
- * a FormResponseAttribute
453
- *
454
- * @param data - The data to check
455
- *
456
- * @returns true if the data has the correct properties, false otherwise
457
- */
458
- declare const isApiFormResponseAttributes: (data: unknown) => data is ApiFormResponseAttributes;
459
- //#endregion
460
- //#region src/application/models/guards/api/isApiFormSubmittedResponseAttributes.d.ts
461
- declare const isApiFormSubmittedResponseAttributes: (data: unknown) => data is FormSubmittedAttributes;
462
- //#endregion
463
- //#region src/application/models/guards/api/isApiOrderResponseAttributes.d.ts
464
- interface ApiOrderItemInfo extends Omit<OrderItemInfo, 'delivered_at' | 'estimated_delivery_at' | 'in_transit_at'> {
465
- delivered_at?: string;
466
- estimated_delivery_at?: string;
467
- in_transit_at?: string;
468
- }
469
- interface ApiOrderResponseAttributes extends Omit<OrderResponseAttributes, 'created_at' | 'latest_event_date' | 'line_items'> {
470
- created_at: string;
471
- latest_event_date: string;
472
- line_items: ApiOrderItemInfo[];
473
- }
474
- declare const isApiOrderResponseAttributes: (data: unknown) => data is ApiOrderResponseAttributes;
475
- //#endregion
476
- //#region src/application/models/guards/api/isApiOrganizationConfig.d.ts
477
- interface ApiOrgAnalyticsConfigAmplitude {
478
- session_replay_enabled: boolean;
479
- session_replay_sample_rate: number;
480
- tracking_enabled: boolean;
481
- }
482
- interface ApiOrgAnalyticsConfigCustomerService {
483
- provider: string;
484
- }
485
- interface ApiOrgAnalyticsConfigGoogleAnalytics {
486
- measurement_id: string;
487
- }
488
- interface ApiOrgAnalyticsConfig {
489
- amplitude?: ApiOrgAnalyticsConfigAmplitude;
490
- customer_service?: ApiOrgAnalyticsConfigCustomerService;
491
- google_analytics?: ApiOrgAnalyticsConfigGoogleAnalytics;
492
- }
493
- interface ApiOrganizationConfig extends OrganizationConfig {
494
- config: ApiOrgAnalyticsConfig;
495
- }
496
- /**
497
- *
498
- * @param data
499
- * @returns
500
- */
501
- declare const isApiOrganizationConfig: (data: unknown) => data is ApiOrganizationConfig;
502
- //#endregion
503
- //#region src/application/models/guards/api/isApiOrgConfigResults.d.ts
504
- interface ApiOrgConfigResults {
505
- configs: ApiOrganizationConfig[];
506
- experiments: StatsigExperiment[];
507
- gates: StatsigFeatureGate[];
508
- org: OrganizationSettings;
509
- }
510
- /**
511
- *
512
- * @param data
513
- * @returns
514
- */
515
- declare const isApiOrgConfigResults: (data: unknown) => data is Required<ApiOrgConfigResults>;
516
- //#endregion
517
- //#region src/application/models/guards/api/isApiPageResponseAttributes.d.ts
518
- declare const isApiPageResponseAttributes: (obj: unknown) => obj is ApiPageResponseAttributes;
519
- //#endregion
520
- //#region src/application/models/guards/api/isApiPLPEventAttributes.d.ts
521
- declare const isApiPLPIdAttribute: (data: unknown) => data is PLPIdAttributes;
522
- declare const isApiPLPEventAttributes: (data: unknown) => data is PLPAttributes;
523
- //#endregion
524
- //#region src/application/models/guards/api/isApiProductSearchFilterAttributes.d.ts
525
- declare const isApiProductSearchFilterResponseAttributes: (attributes: unknown) => attributes is ProductSearchFilterResponseAttributes;
526
- //#endregion
527
- //#region src/application/models/guards/graphQL/isGraphQLColorsConfig.d.ts
528
- declare const isGraphQLColorsConfig: (data: unknown) => data is GetMerchantColorsQueryData;
529
- //#endregion
530
- //#region src/application/models/utilityTypes/delimiterCase.d.ts
531
- type UpperCaseToLowerCase<T extends string> = T extends Uppercase<T> ? Lowercase<T> : T;
532
- type SplitIncludingDelimiters_<Source extends string, Delimiter extends string> = Source extends '' ? [] : Source extends `${infer FirstPart}${Delimiter}${infer SecondPart}` ? Source extends `${FirstPart}${infer UsedDelimiter}${SecondPart}` ? UsedDelimiter extends Delimiter ? Source extends `${infer FirstPart}${UsedDelimiter}${infer SecondPart}` ? [...SplitIncludingDelimiters<FirstPart, Delimiter>, UsedDelimiter, ...SplitIncludingDelimiters<SecondPart, Delimiter>] : never : never : never : [Source];
533
- /**
534
- * Unlike a simpler split, this one includes the delimiter splitted on in the resulting array literal. This is to enable splitting on, for example, upper-case characters.
535
- *
536
- * @category Template literal
537
- */
538
- type SplitIncludingDelimiters<Source extends string, Delimiter extends string> = SplitIncludingDelimiters_<UpperCaseToLowerCase<Source>, Delimiter>;
539
- /**
540
- *Format a specific part of the splitted string literal that `StringArrayToDelimiterCase<>` fuses together, ensuring desired casing.
541
- *
542
- *@see StringArrayToDelimiterCase
543
- */
544
- type StringPartToDelimiterCase<StringPart extends string, Start extends boolean, UsedWordSeparators extends string, UsedUpperCaseCharacters extends string, Delimiter extends string> = StringPart extends UsedWordSeparators ? Delimiter : Start extends true ? Lowercase<StringPart> : StringPart extends UsedUpperCaseCharacters ? `${Delimiter}${Lowercase<StringPart>}` : StringPart;
545
- /**
546
- * Takes the result of a splitted string literal and recursively concatenates it together into the desired casing.
547
- *
548
- * It receives `UsedWordSeparators` and `UsedUpperCaseCharacters` as input to ensure it's fully encapsulated.
549
- *
550
- * @see SplitIncludingDelimiters
551
- */
552
- type StringArrayToDelimiterCase<Parts extends readonly any[], Start extends boolean, UsedWordSeparators extends string, UsedUpperCaseCharacters extends string, Delimiter extends string> = Parts extends [`${infer FirstPart}`, ...infer RemainingParts] ? `${StringPartToDelimiterCase<FirstPart, Start, UsedWordSeparators, UsedUpperCaseCharacters, Delimiter>}${StringArrayToDelimiterCase<RemainingParts, false, UsedWordSeparators, UsedUpperCaseCharacters, Delimiter>}` : Parts extends [string] ? string : '';
553
- /**
554
- * Convert a string literal to a custom string delimiter casing.
555
- *
556
- * This can be useful when, for example, converting a camel-cased object property to an oddly cased one.
557
- *
558
- * @see KebabCase
559
- * @see SnakeCase
560
- *
561
- * @example
562
- * ```
563
- * import type {DelimiterCase} from 'type-fest';
564
- *
565
- * // Simple
566
- *
567
- * const someVariable: DelimiterCase<'fooBar', '#'> = 'foo#bar';
568
- *
569
- * // Advanced
570
- *
571
- * type OddlyCasedProperties<T> = {
572
- * [K in keyof T as DelimiterCase<K, '#'>]: T[K]
573
- * };
574
- *
575
- * interface SomeOptions {
576
- * dryRun: boolean;
577
- * includeFile: string;
578
- * foo: number;
579
- * }
580
- *
581
- * const rawCliOptions: OddlyCasedProperties<SomeOptions> = {
582
- * 'dry#run': true,
583
- * 'include#file': 'bar.js',
584
- * foo: 123
585
- * };
586
- * ```
587
- *
588
- * @category Change case
589
- * @category Template literal
590
- */
591
- type DelimiterCase<Value, Delimiter extends string> = string extends Value ? Value : Value extends string ? StringArrayToDelimiterCase<SplitIncludingDelimiters<Value, WordSeparators | UpperCaseCharacters>, true, WordSeparators, UpperCaseCharacters, Delimiter> : Value;
592
- //#endregion
593
- //#region src/application/models/utilityTypes/delimiterCasedPropertiesDeep.d.ts
594
- /**
595
- * Convert object properties to delimiter case recursively.
596
- *
597
- * This can be useful when, for example, converting some API types from a different style.
598
- *
599
- * @see DelimiterCase
600
- * @see DelimiterCasedProperties
601
- *
602
- * @example
603
- * ```
604
- * import type {DelimiterCasedPropertiesDeep} from 'type-fest';
605
- *
606
- * interface User {
607
- * userId: number;
608
- * userName: string;
609
- * }
610
- *
611
- * interface UserWithFriends {
612
- * userInfo: User;
613
- * userFriends: User[];
614
- * }
615
- *
616
- * const result: DelimiterCasedPropertiesDeep<UserWithFriends, '-'> = {
617
- * 'user-info': {
618
- * 'user-id': 1,
619
- * 'user-name': 'Tom',
620
- * },
621
- * 'user-friends': [
622
- * {
623
- * 'user-id': 2,
624
- * 'user-name': 'Jerry',
625
- * },
626
- * {
627
- * 'user-id': 3,
628
- * 'user-name': 'Spike',
629
- * },
630
- * ],
631
- * };
632
- * ```
633
- *
634
- * @category Change case
635
- * @category Template literal
636
- * @category Object
637
- */
638
- type DelimiterCasedPropertiesDeep<Value, Delimiter extends string> = Value extends NonRecursiveType ? Value : Value extends UnknownArray ? DelimiterCasedPropertiesArrayDeep<Value, Delimiter> : Value extends Set<infer U> ? Set<DelimiterCasedPropertiesDeep<U, Delimiter>> : { [K in keyof Value as DelimiterCase<K, Delimiter>]: DelimiterCasedPropertiesDeep<Value[K], Delimiter> };
639
- type DelimiterCasedPropertiesArrayDeep<Value extends UnknownArray, Delimiter extends string> = Value extends [] ? [] : Value extends [infer U, ...infer V] ? [DelimiterCasedPropertiesDeep<U, Delimiter>, ...DelimiterCasedPropertiesDeep<V, Delimiter>] : Value extends readonly [infer U, ...infer V] ? readonly [DelimiterCasedPropertiesDeep<U, Delimiter>, ...DelimiterCasedPropertiesDeep<V, Delimiter>] : Value extends readonly [...infer U, infer V] ? [...DelimiterCasedPropertiesDeep<U, Delimiter>, DelimiterCasedPropertiesDeep<V, Delimiter>] : Value extends readonly [...infer U, infer V] ? readonly [...DelimiterCasedPropertiesDeep<U, Delimiter>, DelimiterCasedPropertiesDeep<V, Delimiter>] : Value extends Array<infer U> ? Array<DelimiterCasedPropertiesDeep<U, Delimiter>> : Value extends ReadonlyArray<infer U> ? ReadonlyArray<DelimiterCasedPropertiesDeep<U, Delimiter>> : never;
640
- //#endregion
641
- //#region src/application/models/utilityTypes/snakeCasedPropertiesDeep.d.ts
642
- /**
643
- * Convert object properties to snake case recursively.
644
- *
645
- * This can be useful when, for example, converting some API types from a different style.
646
- *
647
- * @see SnakeCase
648
- * @see SnakeCasedProperties
649
- *
650
- * @example
651
- * ```
652
- * import type {SnakeCasedPropertiesDeep} from 'type-fest';
653
- *
654
- * interface User {
655
- * userId: number;
656
- * userName: string;
657
- * }
658
- *
659
- * interface UserWithFriends {
660
- * userInfo: User;
661
- * userFriends: User[];
662
- * }
663
- *
664
- * const result: SnakeCasedPropertiesDeep<UserWithFriends> = {
665
- * user_info: {
666
- * user_id: 1,
667
- * user_name: 'Tom',
668
- * },
669
- * user_friends: [
670
- * {
671
- * user_id: 2,
672
- * user_name: 'Jerry',
673
- * },
674
- * {
675
- * user_id: 3,
676
- * user_name: 'Spike',
677
- * },
678
- * ],
679
- * };
680
- * ```
681
- *
682
- * @category Change case
683
- * @category Template literal
684
- * @category Object
685
- */
686
- type SnakeCasedPropertiesDeep<Value> = DelimiterCasedPropertiesDeep<Value, '_'>;
687
- //#endregion
688
- //#region src/application/models/utils/snakeToCamelTransformer.d.ts
689
- /**
690
- * Generic utility to transform snake_case object keys to camelCase at runtime.
691
- * This is the runtime equivalent of the CamelCasedPropertiesDeep type utility.
692
- */
693
- /**
694
- * Recursively transforms all object keys from snake_case to camelCase
695
- */
696
- declare const transformSnakeToCamel: (obj: unknown) => unknown;
697
- /**
698
- * Recursively transforms all object keys from camelCase to snake_case
699
- */
700
- declare const transformCamelToSnake: (obj: unknown) => unknown;
701
- //#endregion
702
- //#region src/application/models/utils/stringToFulfillmentDisplayStatusEnumValue.d.ts
703
- /**
704
- * Converts a string to a FulfillmentDisplayStatus enum value.
705
- *
706
- * @param status - The string to convert.
707
- *
708
- * @returns The FulfillmentDisplayStatus enum value or undefined if the string
709
- * does not map to a valid enum
710
- */
711
- declare const stringToFulfillmentDisplayStatusEnumValue: (status: string) => FulfillmentDisplayStatus | undefined;
712
- //#endregion
713
- //#region src/application/models/validators/validateGraphQLColorsConfig.d.ts
714
- declare const validateGraphQLColorsConfig: (data: unknown) => ColorMapping | undefined;
715
- //#endregion
716
- //#region src/application/models/validators/validateGraphQLFrontendConfig.d.ts
717
- declare const validateAndTransformPageVariants: (config: Record<string, unknown>) => PageVariantConfig;
718
- declare const validateAndTransformMountingConfig: (config: Record<string, unknown>, configKey: string) => WidgetMountingConfig;
719
- declare const validateAndTransformWidgetConfig: (config: Record<string, unknown>, configKey: string) => WidgetConfig;
720
- declare const validateGraphQLFrontendConfig: (data: unknown) => FrontendConfig | undefined;
721
- //#endregion
722
- //#region src/application/models/validators/validateGraphQLOrgId.d.ts
723
- declare const validateGraphQLOrgId: (data: unknown) => string | undefined;
724
- //#endregion
725
- //#region src/application/models/validators/validateMobilePLPChatPlacementParameter.d.ts
726
- declare const validateMobilePLPChatPlacementParameter: (value: unknown) => MobilePLPChatPlacementParameter | undefined;
727
- //#endregion
728
- //#region src/application/models/validators/validateOrganizationConfig.d.ts
729
- declare const validateOrganizationConfig: (data: unknown) => OrganizationConfig$1 | undefined;
730
- //#endregion
731
- //#region src/application/models/validators/validateOrgConfigResults.d.ts
732
- /**
733
- *
734
- * @param data
735
- * @returns
736
- */
737
- declare const validateOrgConfigResults: (data: unknown) => OrgConfig | undefined;
738
- //#endregion
739
- //#region src/application/models/validators/validateResponse.d.ts
740
- declare const validateResponse: (data: unknown) => Response$1 | undefined;
741
- //#endregion
742
- //#region src/application/models/validators/validateSuggestion.d.ts
743
- declare const validateSuggestion: (data: unknown) => Suggestion$1 | undefined;
744
- //#endregion
745
- //#region src/application/models/validators/validateUserEvent.d.ts
746
- declare const validateUserEvent: (data: unknown) => UserEvent$1 | undefined;
747
- //#endregion
748
- export { ApiOrderItemInfo, ApiOrderResponseAttributes, ApiOrganizationConfig, AppLoadedUserEvent, AppUnloadedEvent, BaseEcommerceEvent, BasicOrgInfoType, type CachedValue, type ClientDetails, Context$1 as Context, ConversationalSearchIds, DelimiterCase, DelimiterCasedPropertiesDeep, DomMutationObserverContinuation, DomObservationStrategy, FormField, FormSubmitted, FormSubmittedAttributes$1 as FormSubmittedAttributes, GA4EcommerceEvent, GenerationParams$1 as GenerationParams, GoogleAnalyticsEvents, Message, MessageRole, MessageType, MobilePLPChatPlacementParameter, NextMessageRequest$1 as NextMessageRequest, OrgShortName, PDPAttributes$1 as PDPAttributes, PDPUserEvent, PLPAttributes$1 as PLPAttributes, PLPUserEvent, PageVisitAttributes, PageVisitEvent, ProductExperiment, ProductMessageMetadata, ProductSearchMessageMetadata, ProductSearchResponse$1 as ProductSearchResponse, ProductSearchResponseAttributes$1 as ProductSearchResponseAttributes, QueryTypedAttributes$1 as QueryTypedAttributes, QueryTypedUserEvent, SearchAttributes$1 as SearchAttributes, SearchParams, SearchResult, SearchUserEvent, SnakeCasedPropertiesDeep, SpanxTakeAQuizCtaParameter, SpiffyEventName, SpiffyWidgets, SplitIncludingDelimiters, Suggestion$1 as Suggestion, SuggestionClickedAttributes$1 as SuggestionClickedAttributes, SuggestionsClickedUserEvent, SupportedEventRequest$1 as SupportedEventRequest, UAEcommerceEvent, UserEvent$1 as UserEvent, UserEventAttributes, getMerchantOrgIdQuery, getOrgInfo, hasPropertyOfType, isApiFormResponseAttributes, isApiFormSubmittedResponseAttributes, isApiOrderResponseAttributes, isApiOrgConfigResults, isApiOrganizationConfig, isApiPLPEventAttributes, isApiPLPIdAttribute, isApiPageResponseAttributes, isApiProductSearchFilterResponseAttributes, isBaseEcommerceEvent, isGA4EcommerceEvent, isGraphQLColorsConfig, isLegacyUAEcommerceEvent, isMobilePLPChatPlacementParameter, isSpanxTakeAQuizCtaParameter, isVariantInfo, stringToFulfillmentDisplayStatusEnumValue, transformCamelToSnake, transformSnakeToCamel, validateAndTransformMountingConfig, validateAndTransformPageVariants, validateAndTransformWidgetConfig, validateGraphQLColorsConfig, validateGraphQLFrontendConfig, validateGraphQLOrgId, validateMobilePLPChatPlacementParameter, validateOrgConfigResults, validateOrganizationConfig, validateResponse, validateSuggestion, validateUserEvent };
749
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtQmZ1TzliMFEuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2NhY2hlZFZhbHVlLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2NsaWVudERldGFpbHMuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvY29udmVyc2F0aW9uYWxTZWFyY2hJZHMuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZGF0YUxheWVyLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2RvbU11dGF0aW9uQ29udGludWF0aW9uLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2RvbU9ic2VydmF0aW9uU3RyYXRlZ3kuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZXZlbnRzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2dvb2dsZUFuYWx5dGljc0V2ZW50cy5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9tZXNzYWdlLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL21vYmlsZVBMUENoYXRQbGFjZW1lbnRQYXJhbWV0ZXIuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvb3Jnc0VudW0uZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvcHJvZHVjdEV4cGVyaW1lbnQuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvc3BhbnhUYWtlQVF1aXpDdGFQYXJhbWV0ZXIuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvc3BpZmZ5V2lkZ2V0cy5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9zdXBwb3J0ZWRPcmdzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9jb250ZXh0LmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9nZW5lcmF0aW9uUGFyYW1zLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS91c2VyRXZlbnQuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL25leHRNZXNzYWdlUmVxdWVzdC5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9hcGkvc2VhcmNoLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9zdWdnZXN0aW9uLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9zdXBwb3J0ZWRFdmVudFJlcXVlc3QuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3JhcGhxbC9xdWVyaWVzL2dldE1lcmNoYW50T3JnSWRRdWVyeS5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvaXNCYXNlRWNvbW1lcmNlRXZlbnQuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2lzR0E0RWNvbW1lcmNlRXZlbnQuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2lzTGVnYWN5VUFFY29tbWVyY2VFdmVudC5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvaXNNb2JpbGVQTFBDaGF0UGxhY2VtZW50UGFyYW1ldGVyLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9pc1NwYW54VGFrZUFRdWl6Q3RhUGFyYW1ldGVyLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9pc1ZhcmlhbnRJbmZvLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy91dGlscy5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpRm9ybVJlc3BvbnNlLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlGb3JtU3VibWl0dGVkUmVzcG9uc2VBdHRyaWJ1dGVzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlPcmRlclJlc3BvbnNlQXR0cmlidXRlcy5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpT3JnYW5pemF0aW9uQ29uZmlnLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlPcmdDb25maWdSZXN1bHRzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlQYWdlUmVzcG9uc2VBdHRyaWJ1dGVzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlQTFBFdmVudEF0dHJpYnV0ZXMuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVByb2R1Y3RTZWFyY2hGaWx0ZXJBdHRyaWJ1dGVzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9ncmFwaFFML2lzR3JhcGhRTENvbG9yc0NvbmZpZy5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlsaXR5VHlwZXMvZGVsaW1pdGVyQ2FzZS5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlsaXR5VHlwZXMvZGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcC5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlsaXR5VHlwZXMvc25ha2VDYXNlZFByb3BlcnRpZXNEZWVwLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxzL3NuYWtlVG9DYW1lbFRyYW5zZm9ybWVyLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxzL3N0cmluZ1RvRnVsZmlsbG1lbnREaXNwbGF5U3RhdHVzRW51bVZhbHVlLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVHcmFwaFFMQ29sb3JzQ29uZmlnLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVHcmFwaFFMRnJvbnRlbmRDb25maWcuZC50cyIsIi4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdmFsaWRhdG9ycy92YWxpZGF0ZUdyYXBoUUxPcmdJZC5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlTW9iaWxlUExQQ2hhdFBsYWNlbWVudFBhcmFtZXRlci5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlT3JnYW5pemF0aW9uQ29uZmlnLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVPcmdDb25maWdSZXN1bHRzLmQudHMiLCIuLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL3ZhbGlkYXRvcnMvdmFsaWRhdGVSZXNwb25zZS5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlU3VnZ2VzdGlvbi5kLnRzIiwiLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy92YWxpZGF0b3JzL3ZhbGlkYXRlVXNlckV2ZW50LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIENhY2hlZFZhbHVlIHtcbiAgICB2YWx1ZTogdW5rbm93bjtcbiAgICBleHBpcnk6IG51bWJlcjtcbn1cbmV4cG9ydCB0eXBlIHsgQ2FjaGVkVmFsdWUgfTtcbiIsImludGVyZmFjZSBDbGllbnREZXRhaWxzIHtcbiAgICBvcz86IHN0cmluZztcbiAgICBvc1ZlcnNpb24/OiBzdHJpbmc7XG4gICAgZGV2aWNlQnJhbmQ/OiBzdHJpbmc7XG4gICAgZGV2aWNlTWFudWZhY3R1cmVyPzogc3RyaW5nO1xuICAgIGRldmljZU1vZGVsPzogc3RyaW5nO1xuICAgIGNhcnJpZXI/OiBzdHJpbmc7XG4gICAgY291bnRyeT86IHN0cmluZztcbiAgICByZWdpb24/OiBzdHJpbmc7XG4gICAgYnJvd3Nlcj86IHN0cmluZztcbiAgICBicm93c2VyVmVyc2lvbj86IHN0cmluZztcbiAgICBicm93c2VySXBBZGRyZXNzPzogc3RyaW5nO1xuICAgIHVzZXJBZ2VudD86IHN0cmluZztcbn1cbmV4cG9ydCB0eXBlIHsgQ2xpZW50RGV0YWlscywgfTtcbiIsImV4cG9ydCB0eXBlIENvbnZlcnNhdGlvbmFsU2VhcmNoSWRzID0ge1xuICAgIGNvbnZlcnNhdGlvbmFsU2VhcmNoRW50cnlwb2ludElkPzogc3RyaW5nO1xuICAgIGNvbnZlcnNhdGlvbmFsU2VhcmNoSW5wdXRJZD86IHN0cmluZztcbiAgICBjb252ZXJzYXRpb25hbFNlYXJjaE1vZGFsSWQ/OiBzdHJpbmc7XG59O1xuIiwiLyoqXG4gKiBCYXNlIGludGVyZmFjZSBmb3IgY29tbW9uIHByb3BlcnRpZXMgYWNyb3NzIGFsbCBlY29tbWVyY2UgZXZlbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUVjb21tZXJjZUV2ZW50IHtcbiAgICBldmVudDogc3RyaW5nO1xuICAgIGVjb21tZXJjZTogVUFFY29tbWVyY2VEYXRhIHwgR0E0RWNvbW1lcmNlRGF0YTtcbn1cbi8qKlxuICogTGVnYWN5IHVuaXZlcnNhbCBhbmFseXRpY3MgZGF0YS4gVGhlIGFjdHVhbCBwYXlsb2FkIGNvbnRhaW5zIG1vcmUgZmllbGRzLCBidXQgd2VcbiAqIG9ubHkgbmVlZCB0aGUgb25lcyBsaXN0ZWQgYmVsb3cuXG4gKi9cbmludGVyZmFjZSBVQUVjb21tZXJjZURhdGEge1xuICAgIGFkZDoge1xuICAgICAgICBwcm9kdWN0czoge1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgY2F0ZWdvcnk6IHN0cmluZztcbiAgICAgICAgICAgIHByaWNlOiBzdHJpbmc7XG4gICAgICAgICAgICBxdWFudGl0eTogc3RyaW5nO1xuICAgICAgICB9W107XG4gICAgICAgIGN1cnJlbmN5Q29kZTogc3RyaW5nO1xuICAgIH07XG59XG4vKipcbiAqIEdvb2dsZSBBbmFseXRpY3MgNCBkYXRhLiBUaGUgYWN0dWFsIHBheWxvYWQgY29udGFpbnMgbW9yZSBmaWVsZHMsIGJ1dCB3ZVxuICogb25seSBuZWVkIHRoZSBvbmVzIGxpc3RlZCBiZWxvdy5cbiAqL1xuaW50ZXJmYWNlIEdBNEVjb21tZXJjZURhdGEge1xuICAgIGN1cnJlbmN5OiBzdHJpbmc7XG4gICAgaXRlbXM6IHtcbiAgICAgICAgaXRlbV9uYW1lOiBzdHJpbmc7XG4gICAgICAgIGl0ZW1fY2F0ZWdvcnk6IHN0cmluZztcbiAgICAgICAgcHJpY2U6IG51bWJlcjtcbiAgICAgICAgcXVhbnRpdHk6IG51bWJlcjtcbiAgICB9W107XG59XG5leHBvcnQgaW50ZXJmYWNlIFVBRWNvbW1lcmNlRXZlbnQgZXh0ZW5kcyBCYXNlRWNvbW1lcmNlRXZlbnQge1xuICAgIGVjb21tZXJjZTogVUFFY29tbWVyY2VEYXRhO1xufVxuZXhwb3J0IGludGVyZmFjZSBHQTRFY29tbWVyY2VFdmVudCBleHRlbmRzIEJhc2VFY29tbWVyY2VFdmVudCB7XG4gICAgZWNvbW1lcmNlOiBHQTRFY29tbWVyY2VEYXRhO1xufVxuZXhwb3J0IHt9O1xuIiwiZGVjbGFyZSBlbnVtIERvbU11dGF0aW9uT2JzZXJ2ZXJDb250aW51YXRpb24ge1xuICAgIENPTlRJTlVFID0gXCJDT05USU5VRVwiLFxuICAgIEVYRUNVVElORyA9IFwiRVhFQ1VUSU5HXCIsXG4gICAgU1RPUCA9IFwiU1RPUFwiXG59XG5leHBvcnQgeyBEb21NdXRhdGlvbk9ic2VydmVyQ29udGludWF0aW9uIH07XG4iLCJkZWNsYXJlIGVudW0gRG9tT2JzZXJ2YXRpb25TdHJhdGVneSB7XG4gICAgTXV0YXRpb25PYnNlcnZlciA9IFwiTXV0YXRpb25PYnNlcnZlclwiLFxuICAgIFBvbGxpbmcgPSBcIlBvbGxpbmdcIixcbiAgICBOb25lID0gXCJOb25lXCJcbn1cbmV4cG9ydCB7IERvbU9ic2VydmF0aW9uU3RyYXRlZ3kgfTtcbiIsImV4cG9ydCBkZWNsYXJlIGVudW0gU3BpZmZ5RXZlbnROYW1lIHtcbiAgICBXaWRnZXRPcGVuID0gXCJzcGlmZnk6d2lkZ2V0b3BlblwiLFxuICAgIFdpZGdldENsb3NlID0gXCJzcGlmZnk6d2lkZ2V0Y2xvc2VcIlxufVxuIiwiZGVjbGFyZSBlbnVtIEdvb2dsZUFuYWx5dGljc0V2ZW50cyB7XG4gICAgQUREX1RPX0NBUlRfdjEgPSBcImFkZF90b19jYXJ0XCIsXG4gICAgQUREX1RPX0NBUlRfdjIgPSBcImFkZFRvQ2FydFwiXG59XG5leHBvcnQgeyBHb29nbGVBbmFseXRpY3NFdmVudHMgfTtcbiIsImltcG9ydCB7IEN1c3RTZXJ2aWNlQXR0YWNobWVudCwgRm9ybVR5cGUgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgT3JkZXJSZXNwb25zZUF0dHJpYnV0ZXMsIFByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMsIFJldmlld1Jlc3BvbnNlQXR0cmlidXRlcywgUGFnZVJlc3BvbnNlQXR0cmlidXRlcywgVGV4dFJlc3BvbnNlQXR0cmlidXRlcywgU2VhcmNoUmVzcG9uc2VBdHRyaWJ1dGVzLCBTZWFyY2hQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzLCBBY2NlcHRhYmxlRm9ybUZpZWxkVHlwZSwgU2VhcmNoUHJvZHVjdEZpbHRlckF0dHJpYnV0ZXMgfSBmcm9tICcuL2FwaS9yZXNwb25zZSc7XG5leHBvcnQgZGVjbGFyZSBlbnVtIE1lc3NhZ2VSb2xlIHtcbiAgICBVc2VyID0gXCJ1c2VyXCIsXG4gICAgQXNzaXN0YW50ID0gXCJhc3Npc3RhbnRcIlxufVxuZXhwb3J0IGRlY2xhcmUgZW51bSBNZXNzYWdlVHlwZSB7XG4gICAgVGV4dCA9IFwidGV4dFwiLFxuICAgIFN1Z2dlc3Rpb25DbGlja2VkID0gXCJzdWdnZXN0aW9uX2NsaWNrZWRcIixcbiAgICBQcm9kdWN0ID0gXCJwcm9kdWN0XCIsXG4gICAgUHJvZHVjdFNlYXJjaCA9IFwicHJvZHVjdF9zZWFyY2hcIixcbiAgICBSZXZpZXcgPSBcInJldmlld1wiLFxuICAgIFF1ZXJ5VHlwZWQgPSBcInF1ZXJ5X3R5cGVkXCIsXG4gICAgU2VwYXJhdG9yID0gXCJzZXBhcmF0b3JcIixcbiAgICBQYWdlID0gXCJwYWdlXCIsXG4gICAgU2VhcmNoID0gXCJzZWFyY2hcIixcbiAgICBBdHRhY2htZW50ID0gXCJhdHRhY2htZW50XCIsXG4gICAgQ1hBZ2VudFJlc3BvbnNlID0gXCJjeF9hZ2VudF9yZXNwb25zZVwiLFxuICAgIEZvcm0gPSBcImZvcm1cIixcbiAgICBPcmRlciA9IFwib3JkZXJcIixcbiAgICBQcm9kdWN0U2VhcmNoRmlsdGVyID0gXCJwcm9kdWN0X3NlYXJjaF9maWx0ZXJcIlxufVxuZXhwb3J0IHR5cGUgTWVzc2FnZSA9IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHJvbGU6IE1lc3NhZ2VSb2xlO1xuICAgIGNyZWF0ZWRBdDogc3RyaW5nO1xufSAmIChUZXh0TWVzc2FnZU1ldGFkYXRhIHwgUXVlcnlUeXBlZE1ldGFkYXRhIHwgU3VnZ2VzdGlvbk1lc3NhZ2VNZXRhZGF0YSB8IFByb2R1Y3RNZXNzYWdlTWV0YWRhdGEgfCBQcm9kdWN0U2VhcmNoTWVzc2FnZU1ldGFkYXRhIHwgUmV2aWV3TWVzc2FnZU1ldGFkYXRhIHwgU2VwYXJhdG9yTWVzc2FnZU1ldGFkYXRhIHwgUGFnZU1lc3NhZ2VNZXRhZGF0YSB8IFNlYXJjaE1lc3NhZ2VNZXRhZGF0YSB8IEF0dGFjaG1lbnRNZXRhZGF0YSB8IENYQWdlbnRSZXNwb25zZU1ldGFkYXRhIHwgRm9ybU1lc3NhZ2VNZXRhZGF0YSB8IE9yZGVyTWVzc2FnZU1ldGFkYXRhIHwgUHJvZHVjdFNlYXJjaEZpbHRlck1ldGFkYXRhKTtcbnR5cGUgQXR0YWNobWVudE1ldGFkYXRhID0ge1xuICAgIHR5cGU6IE1lc3NhZ2VUeXBlLkF0dGFjaG1lbnQ7XG4gICAgbWV0YWRhdGE6IHtcbiAgICAgICAgbWVzc2FnZT86IHN0cmluZztcbiAgICAgICAgYXR0YWNobWVudDogQ3VzdFNlcnZpY2VBdHRhY2htZW50W107XG4gICAgfTtcbn07XG50eXBlIENYQWdlbnRSZXNwb25zZU1ldGFkYXRhID0ge1xuICAgIHR5cGU6IE1lc3NhZ2VUeXBlLkNYQWdlbnRSZXNwb25zZTtcbiAgICBtZXRhZGF0YToge1xuICAgICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgICAgIGFnZW50TmFtZTogc3RyaW5nO1xuICAgIH07XG59O1xudHlwZSBUZXh0TWVzc2FnZU1ldGFkYXRhID0ge1xuICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlRleHQ7XG4gICAgbWV0YWRhdGE6IFRleHRSZXNwb25zZUF0dHJpYnV0ZXNbJ2F0dHJpYnV0ZXMnXTtcbn07XG50eXBlIFF1ZXJ5VHlwZWRNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5RdWVyeVR5cGVkO1xuICAgIG1ldGFkYXRhOiBUZXh0UmVzcG9uc2VBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ107XG59O1xudHlwZSBTdWdnZXN0aW9uTWVzc2FnZU1ldGFkYXRhID0ge1xuICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlN1Z2dlc3Rpb25DbGlja2VkO1xuICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHN1Z2dlc3Rpb25JZDogc3RyaW5nO1xuICAgICAgICBzdWdnZXN0aW9uQ29udGVudDogc3RyaW5nO1xuICAgIH07XG59O1xuZXhwb3J0IHR5cGUgUHJvZHVjdE1lc3NhZ2VNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5Qcm9kdWN0O1xuICAgIG1ldGFkYXRhOiBQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ107XG59O1xuZXhwb3J0IHR5cGUgUHJvZHVjdFNlYXJjaE1lc3NhZ2VNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5Qcm9kdWN0U2VhcmNoO1xuICAgIG1ldGFkYXRhOiBTZWFyY2hQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ107XG59O1xudHlwZSBSZXZpZXdNZXNzYWdlTWV0YWRhdGEgPSB7XG4gICAgdHlwZTogTWVzc2FnZVR5cGUuUmV2aWV3O1xuICAgIG1ldGFkYXRhOiBSZXZpZXdSZXNwb25zZUF0dHJpYnV0ZXNbJ2F0dHJpYnV0ZXMnXTtcbn07XG50eXBlIFNlcGFyYXRvck1lc3NhZ2VNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5TZXBhcmF0b3I7XG59O1xudHlwZSBQYWdlTWVzc2FnZU1ldGFkYXRhID0ge1xuICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlBhZ2U7XG4gICAgbWV0YWRhdGE6IFBhZ2VSZXNwb25zZUF0dHJpYnV0ZXNbJ2F0dHJpYnV0ZXMnXTtcbn07XG50eXBlIFNlYXJjaE1lc3NhZ2VNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5TZWFyY2g7XG4gICAgbWV0YWRhdGE6IFNlYXJjaFJlc3BvbnNlQXR0cmlidXRlc1snYXR0cmlidXRlcyddO1xufTtcbnR5cGUgUHJvZHVjdFNlYXJjaEZpbHRlck1ldGFkYXRhID0ge1xuICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlByb2R1Y3RTZWFyY2hGaWx0ZXI7XG4gICAgbWV0YWRhdGE6IFNlYXJjaFByb2R1Y3RGaWx0ZXJBdHRyaWJ1dGVzWydhdHRyaWJ1dGVzJ107XG59O1xuZXhwb3J0IHR5cGUgRm9ybUZpZWxkID0ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdHlwZTogQWNjZXB0YWJsZUZvcm1GaWVsZFR5cGU7XG4gICAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgZm9ybWF0PzogJ2VtYWlsJztcbiAgICB2YWx1ZT86IHN0cmluZztcbn07XG50eXBlIEZvcm1NZXNzYWdlTWV0YWRhdGEgPSB7XG4gICAgdHlwZTogTWVzc2FnZVR5cGUuRm9ybTtcbiAgICBtZXRhZGF0YToge1xuICAgICAgICBmb3JtVHlwZT86IEZvcm1UeXBlO1xuICAgICAgICBmaWVsZHM6IEZvcm1GaWVsZFtdO1xuICAgIH07XG59O1xudHlwZSBPcmRlck1lc3NhZ2VNZXRhZGF0YSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlVHlwZS5PcmRlcjtcbiAgICBtZXRhZGF0YTogT3JkZXJSZXNwb25zZUF0dHJpYnV0ZXNbJ2F0dHJpYnV0ZXMnXTtcbn07XG5leHBvcnQge307XG4iLCJleHBvcnQgaW50ZXJmYWNlIE1vYmlsZVBMUENoYXRQbGFjZW1lbnRQYXJhbWV0ZXIge1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG59XG4iLCJleHBvcnQgZGVjbGFyZSBjb25zdCBPcmdTaG9ydE5hbWU6IHtcbiAgICByZWFkb25seSBDb3RlcmllOiBcImNvdGVyaWVcIjtcbiAgICByZWFkb25seSBGb3JMb3ZlQW5kTGVtb25zOiBcImZvci1sb3ZlLWFuZC1sZW1vbnNcIjtcbiAgICByZWFkb25seSBHcmVlbnBhbjogXCJncmVlbnBhblwiO1xuICAgIHJlYWRvbmx5IEpvcmRhbkNyYWlnOiBcImpvcmRhbi1jcmFpZ1wiO1xuICAgIHJlYWRvbmx5IExhcnJ5QW5kU2VyZ2VzOiBcImxhcnJ5X2FuZF9zZXJnZXNcIjtcbiAgICByZWFkb25seSBMZWFwc0FuZFJlYm91bmRzOiBcImxlYXBzLWFuZC1yZWJvdW5kc1wiO1xuICAgIHJlYWRvbmx5IE1hbnRyYUJyYW5kOiBcIm1hbnRyYS1icmFuZFwiO1xuICAgIHJlYWRvbmx5IFNwYW54OiBcInNwYW54XCI7XG4gICAgcmVhZG9ubHkgU3BhbnhTdGFnaW5nOiBcInN0YWdpbmctc3BhbnhcIjtcbiAgICByZWFkb25seSBTdXBlcmdvb3A6IFwic3VwZXJnb29wXCI7XG4gICAgcmVhZG9ubHkgVW5pcXVlVmludGFnZTogXCJ1bmlxdWUtdmludGFnZVwiO1xuICAgIHJlYWRvbmx5IEphY2tBcmNoZXI6IFwiamFjay1hcmNoZXJcIjtcbiAgICByZWFkb25seSBTa2luUGVyZmVjdGlvbjogXCJza2luLXBlcmZlY3Rpb25cIjtcbiAgICByZWFkb25seSBMb29rT3B0aWM6IFwibG9vay1vcHRpY1wiO1xuICAgIHJlYWRvbmx5IEZpdmVDYmQ6IFwiZml2ZS1jYmRcIjtcbiAgICByZWFkb25seSBTbmFwU3VwcGxlbWVudHM6IFwic25hcC1zdXBwbGVtZW50c1wiO1xuICAgIHJlYWRvbmx5IExvbmdldml0eXJ4OiBcImxvbmdldml0eXJ4XCI7XG4gICAgcmVhZG9ubHkgVmVuYUNiZDogXCJ2ZW5hLWNiZFwiO1xuICAgIHJlYWRvbmx5IE1lZHRlcnJhOiBcIm1lZHRlcnJhXCI7XG4gICAgcmVhZG9ubHkgTW9kZWxsczogXCJtb2RlbGxzXCI7XG4gICAgcmVhZG9ubHkgUHJlc3NlZEZsb3JhbDogXCJwcmVzc2VkLWZsb3JhbFwiO1xuICAgIHJlYWRvbmx5IEtpbmRyZWRCcmF2ZWx5OiBcImtpbmRyZWQtYnJhdmVseVwiO1xuICAgIHJlYWRvbmx5IFdpbmVFbnRodXNpYXN0OiBcIndpbmUtZW50aHVzaWFzdFwiO1xuICAgIHJlYWRvbmx5IEhvbWVncm93bkNhbm5hYmlzOiBcImhvbWVncm93bi1jYW5uYWJpc1wiO1xuICAgIHJlYWRvbmx5IERyZWFtbGFuZEJhYnk6IFwiZHJlYW1sYW5kLWJhYnlcIjtcbiAgICByZWFkb25seSBCYW5kb2xpZXI6IFwiYmFuZG9saWVyXCI7XG4gICAgcmVhZG9ubHkgV2VzdG9uSm9uQm91Y2hlcjogXCJ3ZXN0b24tam9uLWJvdWNoZXJcIjtcbiAgICByZWFkb25seSBLdXRGcm9tVGhlS2xvdGg6IFwia3V0LWZyb20tdGhlLWtsb3RoXCI7XG4gICAgcmVhZG9ubHkgR3Jvb3ZlTGlmZTogXCJncm9vdmUtbGlmZVwiO1xuICAgIHJlYWRvbmx5IENhcnBlOiBcImNhcnBlXCI7XG4gICAgcmVhZG9ubHkgV29sZlRhY3RpY2FsOiBcIndvbGYtdGFjdGljYWxcIjtcbiAgICByZWFkb25seSBXb2xmTWF0dHJlc3M6IFwid29sZm1hdHRyZXNzXCI7XG4gICAgcmVhZG9ubHkgRGVmYXVsdDogXCJkZWZhdWx0XCI7XG59O1xuIiwiZXhwb3J0IGRlY2xhcmUgZW51bSBQcm9kdWN0RXhwZXJpbWVudCB7XG4gICAgRGVmYXVsdCA9IFwiZGVmYXVsdFwiXG59XG4iLCJleHBvcnQgaW50ZXJmYWNlIFNwYW54VGFrZUFRdWl6Q3RhUGFyYW1ldGVyIHtcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIHZhbHVlPzogc3RyaW5nO1xufVxuIiwiLyoqXG4gKiBFbnVtIG9mIGFsbCB3aWRnZXQgbmFtZXMuIFRoZXNlIGFyZSB3aWRnZXRzIHRoYXQgYXJlIHJlbmRlcmVkIGFuZCBpbnRlZ3JhdGVkIGludG9cbiAqIGEgbWVyY2hhbnQncyB3ZWJzaXRlLlxuICovXG5leHBvcnQgZGVjbGFyZSBlbnVtIFNwaWZmeVdpZGdldHMge1xuICAgIEltYWdlQmFubmVyID0gXCJpbWFnZV9iYW5uZXJcIixcbiAgICBJbWFnZVByb21wdENhcmQgPSBcImltYWdlX3Byb21wdF9jYXJkXCIsXG4gICAgU2luZ2xlSW1hZ2VQcm9tcHQgPSBcInNpbmdsZV9pbWFnZV9wcm9tcHRcIixcbiAgICBFbWJlZGRlZFdpZGdldCA9IFwiZW1iZWRkZWRfd2lkZ2V0XCIsXG4gICAgRmxvYXRpbmdCdXR0b24gPSBcImZsb2F0aW5nX2J1dHRvblwiLFxuICAgIFN1Z2dlc3Rpb25CYXIgPSBcInN1Z2dlc3Rpb25fYmFyXCIsXG4gICAgU2VhcmNoUHJvbXB0ID0gXCJzZWFyY2hfcHJvbXB0XCIsXG4gICAgR2xvYmFsU2VhcmNoID0gXCJnbG9iYWxfc2VhcmNoXCIsXG4gICAgU2VhcmNoUmVzdWx0cyA9IFwic2VhcmNoX3Jlc3VsdHNcIixcbiAgICBHbG9iYWxTZWFyY2hFbnRyeVBvaW50ID0gXCJnbG9iYWxfc2VhcmNoX2VudHJ5X3BvaW50XCJcbn1cbiIsImltcG9ydCB7IENvbG9yTWFwcGluZywgT3JnUGFnZUNvbmZpZywgT3JnVUlDb25maWcgfSBmcm9tIFwic3JjL2NvbnRleHRzL3R5cGVzXCI7XG5leHBvcnQgeyBPcmdTaG9ydE5hbWUgfSBmcm9tIFwiLi9vcmdzRW51bVwiO1xuZXhwb3J0IHR5cGUgQmFzaWNPcmdJbmZvVHlwZSA9IHtcbiAgICBzaG9ydE5hbWU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZG9tYWluOiBzdHJpbmc7XG4gICAgZGVmYXVsdFByb2R1Y3RJZDogc3RyaW5nO1xuICAgIGFsd2F5c0VuYWJsZWRNZXJjaGFudHM6IGJvb2xlYW47XG4gICAgb3JnVUlDb25maWc6ICgpID0+IE9yZ1VJQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAgIG9yZ1BhZ2VDb25maWc6ICgpID0+IE9yZ1BhZ2VDb25maWc7XG4gICAgb3JnQ29sb3JzOiAoKSA9PiBDb2xvck1hcHBpbmcgfCB7fTtcbn07XG5leHBvcnQgZGVjbGFyZSBjb25zdCBnZXRPcmdJbmZvOiAob3JnU2hvcnROYW1lOiBzdHJpbmcpID0+IFByb21pc2U8QmFzaWNPcmdJbmZvVHlwZT47XG4iLCJpbXBvcnQgeyBDb250ZXh0IGFzIEFwaUNvbnRleHQgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlsaXR5VHlwZXMnO1xuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0IGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaUNvbnRleHQ+IHtcbn1cbiIsImltcG9ydCB7IEdlbmVyYXRpb25QYXJhbXMgYXMgQXBpR2VuZXJhdGlvblBhcmFtcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxpdHlUeXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRpb25QYXJhbXMgZXh0ZW5kcyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8QXBpR2VuZXJhdGlvblBhcmFtcz4ge1xufVxuIiwiaW1wb3J0IHsgUERQQXR0cmlidXRlcyBhcyBBcGlQRFBBdHRyaWJ1dGVzLCBQTFBBdHRyaWJ1dGVzIGFzIEFwaVBMUEF0dHJpYnV0ZXMsIFF1ZXJ5VHlwZWRBdHRyaWJ1dGVzIGFzIEFwaVF1ZXJ5VHlwZWRBdHRyaWJ1dGVzLCBTZWFyY2hBdHRyaWJ1dGVzIGFzIEFwaVNlYXJjaEF0dHJpYnV0ZXMsIFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcyBhcyBBcGlTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXMsIFVzZXJFdmVudCBhcyBBcGlVc2VyRXZlbnQsIEZvcm1UeXBlLCBQYWdlVmlzaXRDYXRlZ29yeSwgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IHsgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy91dGlsaXR5VHlwZXMnO1xuZXhwb3J0IGludGVyZmFjZSBQRFBBdHRyaWJ1dGVzIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVBEUEF0dHJpYnV0ZXM+IHtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUExQQXR0cmlidXRlcyBleHRlbmRzIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxBcGlQTFBBdHRyaWJ1dGVzPiB7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaEF0dHJpYnV0ZXMgZXh0ZW5kcyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8QXBpU2VhcmNoQXR0cmlidXRlcz4ge1xufVxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVR5cGVkQXR0cmlidXRlcyBleHRlbmRzIENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcDxBcGlRdWVyeVR5cGVkQXR0cmlidXRlcz4ge1xufVxuZXhwb3J0IGludGVyZmFjZSBGb3JtU3VibWl0dGVkQXR0cmlidXRlcyB7XG4gICAgZmlsbGVkU2NoZW1hOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBmb3JtUmVzcG9uc2VJZDogc3RyaW5nO1xuICAgIGZvcm1UeXBlOiBGb3JtVHlwZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZVZpc2l0QXR0cmlidXRlcyB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgcGFnZVZpc2l0Q2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5O1xufVxuZXhwb3J0IGludGVyZmFjZSBTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXMgZXh0ZW5kcyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8QXBpU3VnZ2VzdGlvbkNsaWNrZWRBdHRyaWJ1dGVzPiB7XG59XG5leHBvcnQgdHlwZSBVc2VyRXZlbnRBdHRyaWJ1dGVzID0gUERQQXR0cmlidXRlcyB8IFBMUEF0dHJpYnV0ZXMgfCBRdWVyeVR5cGVkQXR0cmlidXRlcyB8IFNlYXJjaEF0dHJpYnV0ZXMgfCBTdWdnZXN0aW9uQ2xpY2tlZEF0dHJpYnV0ZXMgfCBQYWdlVmlzaXRBdHRyaWJ1dGVzO1xuZXhwb3J0IGludGVyZmFjZSBQRFBVc2VyRXZlbnQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5QZHBWaXNpdCB8IFVzZXJFdmVudENhdGVnb3J5LkFkZFRvQ2FydDtcbiAgICBhdHRyaWJ1dGVzOiBQRFBBdHRyaWJ1dGVzO1xufVxuZXhwb3J0IGludGVyZmFjZSBQTFBVc2VyRXZlbnQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5QbHBWaXNpdDtcbiAgICBhdHRyaWJ1dGVzOiBQTFBBdHRyaWJ1dGVzO1xufVxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVR5cGVkVXNlckV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZDtcbiAgICBhdHRyaWJ1dGVzOiBRdWVyeVR5cGVkQXR0cmlidXRlcztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoVXNlckV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuU2VhcmNoO1xuICAgIGF0dHJpYnV0ZXM6IFNlYXJjaEF0dHJpYnV0ZXM7XG59XG5leHBvcnQgaW50ZXJmYWNlIFN1Z2dlc3Rpb25zQ2xpY2tlZFVzZXJFdmVudCB7XG4gICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkO1xuICAgIGF0dHJpYnV0ZXM6IFN1Z2dlc3Rpb25DbGlja2VkQXR0cmlidXRlcztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXBwTG9hZGVkVXNlckV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuQXBwTG9hZGVkO1xufVxuZXhwb3J0IGludGVyZmFjZSBBcHBVbmxvYWRlZEV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuQXBwVW5sb2FkZWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VWaXNpdEV2ZW50IHtcbiAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGFnZVZpc2l0O1xuICAgIGF0dHJpYnV0ZXM6IFBhZ2VWaXNpdEF0dHJpYnV0ZXM7XG59XG5leHBvcnQgaW50ZXJmYWNlIEZvcm1TdWJtaXR0ZWQge1xuICAgIGNhdGVnb3J5OiBVc2VyRXZlbnRDYXRlZ29yeS5Gb3JtU3VibWl0dGVkO1xuICAgIGF0dHJpYnV0ZXM6IEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzO1xufVxuZXhwb3J0IHR5cGUgVXNlckV2ZW50ID0gQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPFBpY2s8QXBpVXNlckV2ZW50LCAnZXZlbnRfaWQnIHwgJ2NhdGVnb3J5JyB8ICdjcmVhdGVkX2F0Jz4+ICYgKFN1Z2dlc3Rpb25zQ2xpY2tlZFVzZXJFdmVudCB8IEFwcExvYWRlZFVzZXJFdmVudCB8IFBEUFVzZXJFdmVudCB8IFF1ZXJ5VHlwZWRVc2VyRXZlbnQgfCBTZWFyY2hVc2VyRXZlbnQgfCBBcHBVbmxvYWRlZEV2ZW50IHwgUExQVXNlckV2ZW50IHwgUGFnZVZpc2l0RXZlbnQgfCBGb3JtU3VibWl0dGVkKTtcbiIsImltcG9ydCB7IENvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgVXNlckV2ZW50IH0gZnJvbSAnLi91c2VyRXZlbnQnO1xuaW1wb3J0IHsgR2VuZXJhdGlvblBhcmFtcyB9IGZyb20gJy4vZ2VuZXJhdGlvblBhcmFtcyc7XG5leHBvcnQgaW50ZXJmYWNlIE5leHRNZXNzYWdlUmVxdWVzdCB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBjb250ZXh0OiBDb250ZXh0O1xuICAgIHVzZXJFdmVudHM/OiBVc2VyRXZlbnRbXTtcbiAgICBmZWF0dXJlRmxhZ3M/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgICBnZW5lcmF0aW9uUGFyYW1zPzogR2VuZXJhdGlvblBhcmFtcztcbn1cbiIsImltcG9ydCB7IFByb2R1Y3RTZWFyY2hSZXNwb25zZSBhcyBBcGlQcm9kdWN0U2VhcmNoUmVzcG9uc2UsIFByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXMgYXMgQXBpUHJvZHVjdFNlYXJjaFJlc3BvbnNlQXR0cmlidXRlcywgU2VhcmNoUmVzcG9uc2VQcm9kdWN0IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IENhbWVsQ2FzZWRQcm9wZXJ0aWVzRGVlcCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvdXRpbGl0eVR5cGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdFNlYXJjaFJlc3BvbnNlIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVByb2R1Y3RTZWFyY2hSZXNwb25zZT4ge1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0U2VhcmNoUmVzcG9uc2VBdHRyaWJ1dGVzIGV4dGVuZHMgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwPEFwaVByb2R1Y3RTZWFyY2hSZXNwb25zZUF0dHJpYnV0ZXM+IHtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzdWx0IHtcbiAgICBwcm9kdWN0czogU2VhcmNoUmVzcG9uc2VQcm9kdWN0W107XG4gICAgZmlsdGVyczogc3RyaW5nW107XG4gICAgZ2VuZXJhdGVkUXVlcnk/OiBzdHJpbmc7XG4gICAgdG90YWxQcm9kdWN0Q291bnQ6IG51bWJlcjtcbiAgICBzZWFyY2hSZXNwb25zZUlkOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFBhcmFtcyB7XG4gICAgcXVlcnk6IHN0cmluZztcbiAgICBsaW1pdD86IG51bWJlcjtcbn1cbiIsImltcG9ydCB7IFN1Z2dlc3Rpb24gYXMgQXBpU3VnZ2VzdGlvbiB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXAgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL3V0aWxpdHlUeXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIFN1Z2dlc3Rpb24gZXh0ZW5kcyBDYW1lbENhc2VkUHJvcGVydGllc0RlZXA8QXBpU3VnZ2VzdGlvbj4ge1xufVxuIiwiaW1wb3J0IHsgVXNlckV2ZW50IH0gZnJvbSAnLi91c2VyRXZlbnQnO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5leHBvcnQgaW50ZXJmYWNlIFN1cHBvcnRlZEV2ZW50UmVxdWVzdCB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBjb250ZXh0OiBDb250ZXh0O1xuICAgIHVzZXJFdmVudDogVXNlckV2ZW50O1xufVxuIiwiZGVjbGFyZSBjb25zdCBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgPSBcIlxcbiAgcXVlcnkge1xcbiAgICBtZSB7XFxuICAgICAgb3JnIHtcXG4gICAgICAgIGlkXFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXCI7XG5leHBvcnQgeyBnZXRNZXJjaGFudE9yZ0lkUXVlcnkgfTtcbiIsImltcG9ydCB0eXBlIHsgQmFzZUVjb21tZXJjZUV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG4vKipcbiAqIENoZWNrcyBpZiBhbiBldmVudCBpcyBhIGJhc2UgR29vZ2xlIEFuYWx5dGljcyBlY29tbWVyY2UgZXZlbnQuXG4gKlxuICogQHBhcmFtIGRhdGEgVGhlIGV2ZW50IHRvIGNoZWNrLlxuICpcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGV2ZW50IGlzIGEgYmFzZSBlY29tbWVyY2UgZXZlbnQsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNCYXNlRWNvbW1lcmNlRXZlbnQ6IChkYXRhOiB1bmtub3duKSA9PiBkYXRhIGlzIEJhc2VFY29tbWVyY2VFdmVudDtcbiIsImltcG9ydCB0eXBlIHsgR0E0RWNvbW1lcmNlRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbi8qKlxuICogQ2hlY2tzIGlmIGFuIGV2ZW50IGlzIGEgR29vZ2xlIEFuYWx5dGljcyA0IGVjb21tZXJjZSBldmVudC5cbiAqXG4gKiBAcGFyYW0gZGF0YSBUaGUgZXZlbnQgdG8gY2hlY2suXG4gKlxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBHQTQgZWNvbW1lcmNlIGV2ZW50LCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzR0E0RWNvbW1lcmNlRXZlbnQ6IChkYXRhOiB1bmtub3duKSA9PiBkYXRhIGlzIEdBNEVjb21tZXJjZUV2ZW50O1xuIiwiaW1wb3J0IHR5cGUgeyBVQUVjb21tZXJjZUV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG4vKipcbiAqIENoZWNrcyBpZiBhbiBldmVudCBpcyBhIGxlZ2FjeSBVbml2ZXJzYWwgQW5hbHl0aWNzIGVjb21tZXJjZSBldmVudC5cbiAqXG4gKiBAcGFyYW0gZGF0YSBUaGUgZXZlbnQgdG8gY2hlY2suXG4gKlxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgZXZlbnQgaXMgYSBsZWdhY3kgVUEgZWNvbW1lcmNlIGV2ZW50LCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzTGVnYWN5VUFFY29tbWVyY2VFdmVudDogKGRhdGE6IHVua25vd24pID0+IGRhdGEgaXMgVUFFY29tbWVyY2VFdmVudDtcbiIsImludGVyZmFjZSBNb2JpbGVQbHBDaGF0UGxhY2VtZW50UGFyYW1ldGVyIHtcbiAgICByb3dfaW5kZXg6IG51bWJlcjtcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzTW9iaWxlUExQQ2hhdFBsYWNlbWVudFBhcmFtZXRlcjogKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZSBpcyBNb2JpbGVQbHBDaGF0UGxhY2VtZW50UGFyYW1ldGVyO1xuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHsgU3BhbnhUYWtlQVF1aXpDdGFQYXJhbWV0ZXIgfSBmcm9tICcuLi9zcGFueFRha2VBUXVpekN0YVBhcmFtZXRlcic7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc1NwYW54VGFrZUFRdWl6Q3RhUGFyYW1ldGVyOiAodmFsdWU6IHVua25vd24pID0+IHZhbHVlIGlzIFNwYW54VGFrZUFRdWl6Q3RhUGFyYW1ldGVyO1xuIiwiaW1wb3J0IHsgVmFyaWFudEluZm8gfSBmcm9tICcuLi92YXJpYW50SW5mbyc7XG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYW4gb2JqZWN0IGlzIGEgdmFsaWQgVmFyaWFudEluZm8uXG4gKlxuICogQHBhcmFtIHZhcmlhbnRJbmZvIC0gVGhlIHVua25vd24gb2JqZWN0IHRvIGNoZWNrLlxuICpcbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGRhdGEgaXMgYSB2YWxpZCBWYXJpYW50SW5mbyBvYmplY3QsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNWYXJpYW50SW5mbzogKHZhcmlhbnRJbmZvOiB1bmtub3duKSA9PiB2YXJpYW50SW5mbyBpcyBWYXJpYW50SW5mbztcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGFuIG9iamVjdCBoYXMgYSBwcm9wZXJ0eSBvZiBhIHNwZWNpZmljIHR5cGVcbiAqXG4gKiBAcGFyYW0gb2JqIC0gVGhlIG9iamVjdCB0byBjaGVja1xuICogQHBhcmFtIHByb3AgLSBUaGUgcHJvcGVydHkgbmFtZSB0byBjaGVja1xuICogQHBhcmFtIHR5cGUgLSBUaGUgZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcHJvcGVydHlcbiAqIEBwYXJhbSBpc09wdGlvbmFsIC0gV2hldGhlciB0aGUgcHJvcGVydHkgaXMgb3B0aW9uYWwgKGRlZmF1bHRzIHRvIGZhbHNlKVxuICpcbiAqIEByZXR1cm5zIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgb2JqZWN0IGhhcyB0aGUgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCB0eXBlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGhhc1Byb3BlcnR5T2ZUeXBlOiA8VCBleHRlbmRzIG9iamVjdD4ob2JqOiB1bmtub3duLCBwcm9wOiBrZXlvZiBULCB0eXBlOiBcInN0cmluZ1wiIHwgXCJudW1iZXJcIiB8IFwiYm9vbGVhblwiIHwgXCJvYmplY3RcIiB8IFwiYXJyYXlcIiwgaXNPcHRpb25hbD86IGJvb2xlYW4pID0+IG9iaiBpcyBUO1xuIiwiaW1wb3J0IHsgQXBpRm9ybVJlc3BvbnNlQXR0cmlidXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3Jlc3BvbnNlR2VuZXJpY3MnO1xuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIHRoZSBwcm92aWRlZCBkYXRhIGhhcyB0aGUgYWxsIG9mIHRoZSBwcm9wZXJ0aWVzICh3aXRoIHRoZSBjb3JyZWN0IHR5cGVzKSBvZlxuICogYSBGb3JtUmVzcG9uc2VBdHRyaWJ1dGVcbiAqXG4gKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGNoZWNrXG4gKlxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZGF0YSBoYXMgdGhlIGNvcnJlY3QgcHJvcGVydGllcywgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzQXBpRm9ybVJlc3BvbnNlQXR0cmlidXRlczogKGRhdGE6IHVua25vd24pID0+IGRhdGEgaXMgQXBpRm9ybVJlc3BvbnNlQXR0cmlidXRlcztcbiIsImltcG9ydCB7IEZvcm1TdWJtaXR0ZWRBdHRyaWJ1dGVzIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzQXBpRm9ybVN1Ym1pdHRlZFJlc3BvbnNlQXR0cmlidXRlczogKGRhdGE6IHVua25vd24pID0+IGRhdGEgaXMgRm9ybVN1Ym1pdHRlZEF0dHJpYnV0ZXM7XG4iLCJpbXBvcnQgeyBPcmRlckl0ZW1JbmZvLCBPcmRlclJlc3BvbnNlQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5leHBvcnQgaW50ZXJmYWNlIEFwaU9yZGVySXRlbUluZm8gZXh0ZW5kcyBPbWl0PE9yZGVySXRlbUluZm8sICdkZWxpdmVyZWRfYXQnIHwgJ2VzdGltYXRlZF9kZWxpdmVyeV9hdCcgfCAnaW5fdHJhbnNpdF9hdCc+IHtcbiAgICBkZWxpdmVyZWRfYXQ/OiBzdHJpbmc7XG4gICAgZXN0aW1hdGVkX2RlbGl2ZXJ5X2F0Pzogc3RyaW5nO1xuICAgIGluX3RyYW5zaXRfYXQ/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEFwaU9yZGVyUmVzcG9uc2VBdHRyaWJ1dGVzIGV4dGVuZHMgT21pdDxPcmRlclJlc3BvbnNlQXR0cmlidXRlcywgJ2NyZWF0ZWRfYXQnIHwgJ2xhdGVzdF9ldmVudF9kYXRlJyB8ICdsaW5lX2l0ZW1zJz4ge1xuICAgIGNyZWF0ZWRfYXQ6IHN0cmluZztcbiAgICBsYXRlc3RfZXZlbnRfZGF0ZTogc3RyaW5nO1xuICAgIGxpbmVfaXRlbXM6IEFwaU9yZGVySXRlbUluZm9bXTtcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzQXBpT3JkZXJSZXNwb25zZUF0dHJpYnV0ZXM6IChkYXRhOiB1bmtub3duKSA9PiBkYXRhIGlzIEFwaU9yZGVyUmVzcG9uc2VBdHRyaWJ1dGVzO1xuIiwiaW1wb3J0IHsgT3JnYW5pemF0aW9uQ29uZmlnIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmludGVyZmFjZSBBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGUge1xuICAgIHNlc3Npb25fcmVwbGF5X2VuYWJsZWQ6IGJvb2xlYW47XG4gICAgc2Vzc2lvbl9yZXBsYXlfc2FtcGxlX3JhdGU6IG51bWJlcjtcbiAgICB0cmFja2luZ19lbmFibGVkOiBib29sZWFuO1xufVxuaW50ZXJmYWNlIEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0N1c3RvbWVyU2VydmljZSB7XG4gICAgcHJvdmlkZXI6IHN0cmluZztcbn1cbmludGVyZmFjZSBBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3Mge1xuICAgIG1lYXN1cmVtZW50X2lkOiBzdHJpbmc7XG59XG5pbnRlcmZhY2UgQXBpT3JnQW5hbHl0aWNzQ29uZmlnIHtcbiAgICBhbXBsaXR1ZGU/OiBBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGU7XG4gICAgY3VzdG9tZXJfc2VydmljZT86IEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0N1c3RvbWVyU2VydmljZTtcbiAgICBnb29nbGVfYW5hbHl0aWNzPzogQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzO1xufVxuZXhwb3J0IGludGVyZmFjZSBBcGlPcmdhbml6YXRpb25Db25maWcgZXh0ZW5kcyBPcmdhbml6YXRpb25Db25maWcge1xuICAgIGNvbmZpZzogQXBpT3JnQW5hbHl0aWNzQ29uZmlnO1xufVxuLyoqXG4gKlxuICogQHBhcmFtIGRhdGFcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGlzQXBpT3JnYW5pemF0aW9uQ29uZmlnOiAoZGF0YTogdW5rbm93bikgPT4gZGF0YSBpcyBBcGlPcmdhbml6YXRpb25Db25maWc7XG5leHBvcnQge307XG4iLCJpbXBvcnQgeyBTdGF0c2lnRXhwZXJpbWVudCBhcyBBcGlPcmdDb25maWdFeHBlcmltZW50LCBTdGF0c2lnRmVhdHVyZUdhdGUgYXMgQXBpT3JnQ29uZmlnRmVhdHVyZUdhdGUsIE9yZ2FuaXphdGlvblNldHRpbmdzIGFzIEFwaU9yZ0NvbmZpZ09yZ2FuaXphdGlvblNldHRpbmdzIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IEFwaU9yZ2FuaXphdGlvbkNvbmZpZyB9IGZyb20gJy4vaXNBcGlPcmdhbml6YXRpb25Db25maWcnO1xuaW50ZXJmYWNlIEFwaU9yZ0NvbmZpZ1Jlc3VsdHMge1xuICAgIGNvbmZpZ3M6IEFwaU9yZ2FuaXphdGlvbkNvbmZpZ1tdO1xuICAgIGV4cGVyaW1lbnRzOiBBcGlPcmdDb25maWdFeHBlcmltZW50W107XG4gICAgZ2F0ZXM6IEFwaU9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107XG4gICAgb3JnOiBBcGlPcmdDb25maWdPcmdhbml6YXRpb25TZXR0aW5ncztcbn1cbi8qKlxuICpcbiAqIEBwYXJhbSBkYXRhXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc0FwaU9yZ0NvbmZpZ1Jlc3VsdHM6IChkYXRhOiB1bmtub3duKSA9PiBkYXRhIGlzIFJlcXVpcmVkPEFwaU9yZ0NvbmZpZ1Jlc3VsdHM+O1xuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHsgQXBpUGFnZVJlc3BvbnNlQXR0cmlidXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL3Jlc3BvbnNlR2VuZXJpY3MnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNBcGlQYWdlUmVzcG9uc2VBdHRyaWJ1dGVzOiAob2JqOiB1bmtub3duKSA9PiBvYmogaXMgQXBpUGFnZVJlc3BvbnNlQXR0cmlidXRlcztcbiIsImltcG9ydCB7IFBMUEF0dHJpYnV0ZXMsIFBMUElkQXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc0FwaVBMUElkQXR0cmlidXRlOiAoZGF0YTogdW5rbm93bikgPT4gZGF0YSBpcyBQTFBJZEF0dHJpYnV0ZXM7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBpc0FwaVBMUEV2ZW50QXR0cmlidXRlczogKGRhdGE6IHVua25vd24pID0+IGRhdGEgaXMgUExQQXR0cmlidXRlcztcbiIsImltcG9ydCB7IFByb2R1Y3RTZWFyY2hGaWx0ZXJSZXNwb25zZUF0dHJpYnV0ZXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNBcGlQcm9kdWN0U2VhcmNoRmlsdGVyUmVzcG9uc2VBdHRyaWJ1dGVzOiAoYXR0cmlidXRlczogdW5rbm93bikgPT4gYXR0cmlidXRlcyBpcyBQcm9kdWN0U2VhcmNoRmlsdGVyUmVzcG9uc2VBdHRyaWJ1dGVzO1xuIiwiaW1wb3J0IHsgR2V0TWVyY2hhbnRDb2xvcnNRdWVyeURhdGEgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2dyYXBocWwnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgaXNHcmFwaFFMQ29sb3JzQ29uZmlnOiAoZGF0YTogdW5rbm93bikgPT4gZGF0YSBpcyBHZXRNZXJjaGFudENvbG9yc1F1ZXJ5RGF0YTtcbiIsImltcG9ydCB0eXBlIHsgVXBwZXJDYXNlQ2hhcmFjdGVycywgV29yZFNlcGFyYXRvcnMgfSBmcm9tICcuL2ludGVybmFsJztcbnR5cGUgVXBwZXJDYXNlVG9Mb3dlckNhc2U8VCBleHRlbmRzIHN0cmluZz4gPSBUIGV4dGVuZHMgVXBwZXJjYXNlPFQ+ID8gTG93ZXJjYXNlPFQ+IDogVDtcbnR5cGUgU3BsaXRJbmNsdWRpbmdEZWxpbWl0ZXJzXzxTb3VyY2UgZXh0ZW5kcyBzdHJpbmcsIERlbGltaXRlciBleHRlbmRzIHN0cmluZz4gPSBTb3VyY2UgZXh0ZW5kcyAnJyA/IFtdIDogU291cmNlIGV4dGVuZHMgYCR7aW5mZXIgRmlyc3RQYXJ0fSR7RGVsaW1pdGVyfSR7aW5mZXIgU2Vjb25kUGFydH1gID8gU291cmNlIGV4dGVuZHMgYCR7Rmlyc3RQYXJ0fSR7aW5mZXIgVXNlZERlbGltaXRlcn0ke1NlY29uZFBhcnR9YCA/IFVzZWREZWxpbWl0ZXIgZXh0ZW5kcyBEZWxpbWl0ZXIgPyBTb3VyY2UgZXh0ZW5kcyBgJHtpbmZlciBGaXJzdFBhcnR9JHtVc2VkRGVsaW1pdGVyfSR7aW5mZXIgU2Vjb25kUGFydH1gID8gW1xuICAgIC4uLlNwbGl0SW5jbHVkaW5nRGVsaW1pdGVyczxGaXJzdFBhcnQsIERlbGltaXRlcj4sXG4gICAgVXNlZERlbGltaXRlcixcbiAgICAuLi5TcGxpdEluY2x1ZGluZ0RlbGltaXRlcnM8U2Vjb25kUGFydCwgRGVsaW1pdGVyPlxuXSA6IG5ldmVyIDogbmV2ZXIgOiBuZXZlciA6IFtTb3VyY2VdO1xuLyoqXG4gKiBVbmxpa2UgYSBzaW1wbGVyIHNwbGl0LCB0aGlzIG9uZSBpbmNsdWRlcyB0aGUgZGVsaW1pdGVyIHNwbGl0dGVkIG9uIGluIHRoZSByZXN1bHRpbmcgYXJyYXkgbGl0ZXJhbC4gVGhpcyBpcyB0byBlbmFibGUgc3BsaXR0aW5nIG9uLCBmb3IgZXhhbXBsZSwgdXBwZXItY2FzZSBjaGFyYWN0ZXJzLlxuICpcbiAqIEBjYXRlZ29yeSBUZW1wbGF0ZSBsaXRlcmFsXG4gKi9cbmV4cG9ydCB0eXBlIFNwbGl0SW5jbHVkaW5nRGVsaW1pdGVyczxTb3VyY2UgZXh0ZW5kcyBzdHJpbmcsIERlbGltaXRlciBleHRlbmRzIHN0cmluZz4gPSBTcGxpdEluY2x1ZGluZ0RlbGltaXRlcnNfPFVwcGVyQ2FzZVRvTG93ZXJDYXNlPFNvdXJjZT4sIERlbGltaXRlcj47XG4vKipcbiAqRm9ybWF0IGEgc3BlY2lmaWMgcGFydCBvZiB0aGUgc3BsaXR0ZWQgc3RyaW5nIGxpdGVyYWwgdGhhdCBgU3RyaW5nQXJyYXlUb0RlbGltaXRlckNhc2U8PmAgZnVzZXMgdG9nZXRoZXIsIGVuc3VyaW5nIGRlc2lyZWQgY2FzaW5nLlxuICpcbiAqQHNlZSBTdHJpbmdBcnJheVRvRGVsaW1pdGVyQ2FzZVxuICovXG50eXBlIFN0cmluZ1BhcnRUb0RlbGltaXRlckNhc2U8U3RyaW5nUGFydCBleHRlbmRzIHN0cmluZywgU3RhcnQgZXh0ZW5kcyBib29sZWFuLCBVc2VkV29yZFNlcGFyYXRvcnMgZXh0ZW5kcyBzdHJpbmcsIFVzZWRVcHBlckNhc2VDaGFyYWN0ZXJzIGV4dGVuZHMgc3RyaW5nLCBEZWxpbWl0ZXIgZXh0ZW5kcyBzdHJpbmc+ID0gU3RyaW5nUGFydCBleHRlbmRzIFVzZWRXb3JkU2VwYXJhdG9ycyA/IERlbGltaXRlciA6IFN0YXJ0IGV4dGVuZHMgdHJ1ZSA/IExvd2VyY2FzZTxTdHJpbmdQYXJ0PiA6IFN0cmluZ1BhcnQgZXh0ZW5kcyBVc2VkVXBwZXJDYXNlQ2hhcmFjdGVycyA/IGAke0RlbGltaXRlcn0ke0xvd2VyY2FzZTxTdHJpbmdQYXJ0Pn1gIDogU3RyaW5nUGFydDtcbi8qKlxuICogVGFrZXMgdGhlIHJlc3VsdCBvZiBhIHNwbGl0dGVkIHN0cmluZyBsaXRlcmFsIGFuZCByZWN1cnNpdmVseSBjb25jYXRlbmF0ZXMgaXQgdG9nZXRoZXIgaW50byB0aGUgZGVzaXJlZCBjYXNpbmcuXG4gKlxuICogSXQgcmVjZWl2ZXMgYFVzZWRXb3JkU2VwYXJhdG9yc2AgYW5kIGBVc2VkVXBwZXJDYXNlQ2hhcmFjdGVyc2AgYXMgaW5wdXQgdG8gZW5zdXJlIGl0J3MgZnVsbHkgZW5jYXBzdWxhdGVkLlxuICpcbiAqIEBzZWUgU3BsaXRJbmNsdWRpbmdEZWxpbWl0ZXJzXG4gKi9cbnR5cGUgU3RyaW5nQXJyYXlUb0RlbGltaXRlckNhc2U8UGFydHMgZXh0ZW5kcyByZWFkb25seSBhbnlbXSwgU3RhcnQgZXh0ZW5kcyBib29sZWFuLCBVc2VkV29yZFNlcGFyYXRvcnMgZXh0ZW5kcyBzdHJpbmcsIFVzZWRVcHBlckNhc2VDaGFyYWN0ZXJzIGV4dGVuZHMgc3RyaW5nLCBEZWxpbWl0ZXIgZXh0ZW5kcyBzdHJpbmc+ID0gUGFydHMgZXh0ZW5kcyBbYCR7aW5mZXIgRmlyc3RQYXJ0fWAsIC4uLmluZmVyIFJlbWFpbmluZ1BhcnRzXSA/IGAke1N0cmluZ1BhcnRUb0RlbGltaXRlckNhc2U8Rmlyc3RQYXJ0LCBTdGFydCwgVXNlZFdvcmRTZXBhcmF0b3JzLCBVc2VkVXBwZXJDYXNlQ2hhcmFjdGVycywgRGVsaW1pdGVyPn0ke1N0cmluZ0FycmF5VG9EZWxpbWl0ZXJDYXNlPFJlbWFpbmluZ1BhcnRzLCBmYWxzZSwgVXNlZFdvcmRTZXBhcmF0b3JzLCBVc2VkVXBwZXJDYXNlQ2hhcmFjdGVycywgRGVsaW1pdGVyPn1gIDogUGFydHMgZXh0ZW5kcyBbc3RyaW5nXSA/IHN0cmluZyA6ICcnO1xuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIGxpdGVyYWwgdG8gYSBjdXN0b20gc3RyaW5nIGRlbGltaXRlciBjYXNpbmcuXG4gKlxuICogVGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4sIGZvciBleGFtcGxlLCBjb252ZXJ0aW5nIGEgY2FtZWwtY2FzZWQgb2JqZWN0IHByb3BlcnR5IHRvIGFuIG9kZGx5IGNhc2VkIG9uZS5cbiAqXG4gKiBAc2VlIEtlYmFiQ2FzZVxuICogQHNlZSBTbmFrZUNhc2VcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgXG4gKiBpbXBvcnQgdHlwZSB7RGVsaW1pdGVyQ2FzZX0gZnJvbSAndHlwZS1mZXN0JztcbiAqXG4gKiAvLyBTaW1wbGVcbiAqXG4gKiBjb25zdCBzb21lVmFyaWFibGU6IERlbGltaXRlckNhc2U8J2Zvb0JhcicsICcjJz4gPSAnZm9vI2Jhcic7XG4gKlxuICogLy8gQWR2YW5jZWRcbiAqXG4gKiB0eXBlIE9kZGx5Q2FzZWRQcm9wZXJ0aWVzPFQ+ID0ge1xuICogXHRbSyBpbiBrZXlvZiBUIGFzIERlbGltaXRlckNhc2U8SywgJyMnPl06IFRbS11cbiAqIH07XG4gKlxuICogaW50ZXJmYWNlIFNvbWVPcHRpb25zIHtcbiAqIFx0ZHJ5UnVuOiBib29sZWFuO1xuICogXHRpbmNsdWRlRmlsZTogc3RyaW5nO1xuICogXHRmb286IG51bWJlcjtcbiAqIH1cbiAqXG4gKiBjb25zdCByYXdDbGlPcHRpb25zOiBPZGRseUNhc2VkUHJvcGVydGllczxTb21lT3B0aW9ucz4gPSB7XG4gKiBcdCdkcnkjcnVuJzogdHJ1ZSxcbiAqIFx0J2luY2x1ZGUjZmlsZSc6ICdiYXIuanMnLFxuICogXHRmb286IDEyM1xuICogfTtcbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBDaGFuZ2UgY2FzZVxuICogQGNhdGVnb3J5IFRlbXBsYXRlIGxpdGVyYWxcbiAqL1xuZXhwb3J0IHR5cGUgRGVsaW1pdGVyQ2FzZTxWYWx1ZSwgRGVsaW1pdGVyIGV4dGVuZHMgc3RyaW5nPiA9IHN0cmluZyBleHRlbmRzIFZhbHVlID8gVmFsdWUgOiBWYWx1ZSBleHRlbmRzIHN0cmluZyA/IFN0cmluZ0FycmF5VG9EZWxpbWl0ZXJDYXNlPFNwbGl0SW5jbHVkaW5nRGVsaW1pdGVyczxWYWx1ZSwgV29yZFNlcGFyYXRvcnMgfCBVcHBlckNhc2VDaGFyYWN0ZXJzPiwgdHJ1ZSwgV29yZFNlcGFyYXRvcnMsIFVwcGVyQ2FzZUNoYXJhY3RlcnMsIERlbGltaXRlcj4gOiBWYWx1ZTtcbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIHsgRGVsaW1pdGVyQ2FzZSB9IGZyb20gJy4vZGVsaW1pdGVyQ2FzZSc7XG5pbXBvcnQgdHlwZSB7IE5vblJlY3Vyc2l2ZVR5cGUgfSBmcm9tICcuL2ludGVybmFsJztcbmltcG9ydCB0eXBlIHsgVW5rbm93bkFycmF5IH0gZnJvbSAnLi91bmtub3duQXJyYXknO1xuLyoqXG4gKiBDb252ZXJ0IG9iamVjdCBwcm9wZXJ0aWVzIHRvIGRlbGltaXRlciBjYXNlIHJlY3Vyc2l2ZWx5LlxuICpcbiAqIFRoaXMgY2FuIGJlIHVzZWZ1bCB3aGVuLCBmb3IgZXhhbXBsZSwgY29udmVydGluZyBzb21lIEFQSSB0eXBlcyBmcm9tIGEgZGlmZmVyZW50IHN0eWxlLlxuICpcbiAqIEBzZWUgRGVsaW1pdGVyQ2FzZVxuICogQHNlZSBEZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgXG4gKiBpbXBvcnQgdHlwZSB7RGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcH0gZnJvbSAndHlwZS1mZXN0JztcbiAqXG4gKiBpbnRlcmZhY2UgVXNlciB7XG4gKiBcdHVzZXJJZDogbnVtYmVyO1xuICogXHR1c2VyTmFtZTogc3RyaW5nO1xuICogfVxuICpcbiAqIGludGVyZmFjZSBVc2VyV2l0aEZyaWVuZHMge1xuICogXHR1c2VySW5mbzogVXNlcjtcbiAqIFx0dXNlckZyaWVuZHM6IFVzZXJbXTtcbiAqIH1cbiAqXG4gKiBjb25zdCByZXN1bHQ6IERlbGltaXRlckNhc2VkUHJvcGVydGllc0RlZXA8VXNlcldpdGhGcmllbmRzLCAnLSc+ID0ge1xuICogXHQndXNlci1pbmZvJzoge1xuICogXHQndXNlci1pZCc6IDEsXG4gKiBcdFx0J3VzZXItbmFtZSc6ICdUb20nLFxuICogXHR9LFxuICogXHQndXNlci1mcmllbmRzJzogW1xuICogXHRcdHtcbiAqIFx0XHRcdCd1c2VyLWlkJzogMixcbiAqIFx0XHRcdCd1c2VyLW5hbWUnOiAnSmVycnknLFxuICogXHRcdH0sXG4gKiBcdFx0e1xuICogXHRcdFx0J3VzZXItaWQnOiAzLFxuICogXHRcdFx0J3VzZXItbmFtZSc6ICdTcGlrZScsXG4gKiBcdFx0fSxcbiAqIFx0XSxcbiAqIH07XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgQ2hhbmdlIGNhc2VcbiAqIEBjYXRlZ29yeSBUZW1wbGF0ZSBsaXRlcmFsXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKi9cbmV4cG9ydCB0eXBlIERlbGltaXRlckNhc2VkUHJvcGVydGllc0RlZXA8VmFsdWUsIERlbGltaXRlciBleHRlbmRzIHN0cmluZz4gPSBWYWx1ZSBleHRlbmRzIE5vblJlY3Vyc2l2ZVR5cGUgPyBWYWx1ZSA6IFZhbHVlIGV4dGVuZHMgVW5rbm93bkFycmF5ID8gRGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzQXJyYXlEZWVwPFZhbHVlLCBEZWxpbWl0ZXI+IDogVmFsdWUgZXh0ZW5kcyBTZXQ8aW5mZXIgVT4gPyBTZXQ8RGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcDxVLCBEZWxpbWl0ZXI+PiA6IHtcbiAgICBbSyBpbiBrZXlvZiBWYWx1ZSBhcyBEZWxpbWl0ZXJDYXNlPEssIERlbGltaXRlcj5dOiBEZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwPFZhbHVlW0tdLCBEZWxpbWl0ZXI+O1xufTtcbnR5cGUgRGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzQXJyYXlEZWVwPFZhbHVlIGV4dGVuZHMgVW5rbm93bkFycmF5LCBEZWxpbWl0ZXIgZXh0ZW5kcyBzdHJpbmc+ID0gVmFsdWUgZXh0ZW5kcyBbXSA/IFtdIDogVmFsdWUgZXh0ZW5kcyBbaW5mZXIgVSwgLi4uaW5mZXIgVl0gPyBbRGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcDxVLCBEZWxpbWl0ZXI+LCAuLi5EZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwPFYsIERlbGltaXRlcj5dIDogVmFsdWUgZXh0ZW5kcyByZWFkb25seSBbaW5mZXIgVSwgLi4uaW5mZXIgVl0gPyByZWFkb25seSBbXG4gICAgRGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcDxVLCBEZWxpbWl0ZXI+LFxuICAgIC4uLkRlbGltaXRlckNhc2VkUHJvcGVydGllc0RlZXA8ViwgRGVsaW1pdGVyPlxuXSA6IFZhbHVlIGV4dGVuZHMgcmVhZG9ubHkgWy4uLmluZmVyIFUsIGluZmVyIFZdID8gW1xuICAgIC4uLkRlbGltaXRlckNhc2VkUHJvcGVydGllc0RlZXA8VSwgRGVsaW1pdGVyPixcbiAgICBEZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwPFYsIERlbGltaXRlcj5cbl0gOiBWYWx1ZSBleHRlbmRzIHJlYWRvbmx5IFsuLi5pbmZlciBVLCBpbmZlciBWXSA/IHJlYWRvbmx5IFtcbiAgICAuLi5EZWxpbWl0ZXJDYXNlZFByb3BlcnRpZXNEZWVwPFUsIERlbGltaXRlcj4sXG4gICAgRGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcDxWLCBEZWxpbWl0ZXI+XG5dIDogVmFsdWUgZXh0ZW5kcyBBcnJheTxpbmZlciBVPiA/IEFycmF5PERlbGltaXRlckNhc2VkUHJvcGVydGllc0RlZXA8VSwgRGVsaW1pdGVyPj4gOiBWYWx1ZSBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVT4gPyBSZWFkb25seUFycmF5PERlbGltaXRlckNhc2VkUHJvcGVydGllc0RlZXA8VSwgRGVsaW1pdGVyPj4gOiBuZXZlcjtcbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIHsgRGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcCB9IGZyb20gJy4vZGVsaW1pdGVyQ2FzZWRQcm9wZXJ0aWVzRGVlcCc7XG4vKipcbiAqIENvbnZlcnQgb2JqZWN0IHByb3BlcnRpZXMgdG8gc25ha2UgY2FzZSByZWN1cnNpdmVseS5cbiAqXG4gKiBUaGlzIGNhbiBiZSB1c2VmdWwgd2hlbiwgZm9yIGV4YW1wbGUsIGNvbnZlcnRpbmcgc29tZSBBUEkgdHlwZXMgZnJvbSBhIGRpZmZlcmVudCBzdHlsZS5cbiAqXG4gKiBAc2VlIFNuYWtlQ2FzZVxuICogQHNlZSBTbmFrZUNhc2VkUHJvcGVydGllc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBcbiAqIGltcG9ydCB0eXBlIHtTbmFrZUNhc2VkUHJvcGVydGllc0RlZXB9IGZyb20gJ3R5cGUtZmVzdCc7XG4gKlxuICogaW50ZXJmYWNlIFVzZXIge1xuICogXHR1c2VySWQ6IG51bWJlcjtcbiAqIFx0dXNlck5hbWU6IHN0cmluZztcbiAqIH1cbiAqXG4gKiBpbnRlcmZhY2UgVXNlcldpdGhGcmllbmRzIHtcbiAqIFx0dXNlckluZm86IFVzZXI7XG4gKiBcdHVzZXJGcmllbmRzOiBVc2VyW107XG4gKiB9XG4gKlxuICogY29uc3QgcmVzdWx0OiBTbmFrZUNhc2VkUHJvcGVydGllc0RlZXA8VXNlcldpdGhGcmllbmRzPiA9IHtcbiAqIFx0dXNlcl9pbmZvOiB7XG4gKiBcdFx0dXNlcl9pZDogMSxcbiAqIFx0XHR1c2VyX25hbWU6ICdUb20nLFxuICogXHR9LFxuICogXHR1c2VyX2ZyaWVuZHM6IFtcbiAqIFx0XHR7XG4gKiBcdFx0XHR1c2VyX2lkOiAyLFxuICogXHRcdFx0dXNlcl9uYW1lOiAnSmVycnknLFxuICogXHRcdH0sXG4gKiBcdFx0e1xuICogXHRcdFx0dXNlcl9pZDogMyxcbiAqIFx0XHRcdHVzZXJfbmFtZTogJ1NwaWtlJyxcbiAqIFx0XHR9LFxuICogXHRdLFxuICogfTtcbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBDaGFuZ2UgY2FzZVxuICogQGNhdGVnb3J5IFRlbXBsYXRlIGxpdGVyYWxcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqL1xuZXhwb3J0IHR5cGUgU25ha2VDYXNlZFByb3BlcnRpZXNEZWVwPFZhbHVlPiA9IERlbGltaXRlckNhc2VkUHJvcGVydGllc0RlZXA8VmFsdWUsICdfJz47XG4iLCIvKipcbiAqIEdlbmVyaWMgdXRpbGl0eSB0byB0cmFuc2Zvcm0gc25ha2VfY2FzZSBvYmplY3Qga2V5cyB0byBjYW1lbENhc2UgYXQgcnVudGltZS5cbiAqIFRoaXMgaXMgdGhlIHJ1bnRpbWUgZXF1aXZhbGVudCBvZiB0aGUgQ2FtZWxDYXNlZFByb3BlcnRpZXNEZWVwIHR5cGUgdXRpbGl0eS5cbiAqL1xuLyoqXG4gKiBSZWN1cnNpdmVseSB0cmFuc2Zvcm1zIGFsbCBvYmplY3Qga2V5cyBmcm9tIHNuYWtlX2Nhc2UgdG8gY2FtZWxDYXNlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHRyYW5zZm9ybVNuYWtlVG9DYW1lbDogKG9iajogdW5rbm93bikgPT4gdW5rbm93bjtcbi8qKlxuICogUmVjdXJzaXZlbHkgdHJhbnNmb3JtcyBhbGwgb2JqZWN0IGtleXMgZnJvbSBjYW1lbENhc2UgdG8gc25ha2VfY2FzZVxuICovXG5leHBvcnQgZGVjbGFyZSBjb25zdCB0cmFuc2Zvcm1DYW1lbFRvU25ha2U6IChvYmo6IHVua25vd24pID0+IHVua25vd247XG4iLCJpbXBvcnQgeyBGdWxmaWxsbWVudERpc3BsYXlTdGF0dXMgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuLyoqXG4gKiBDb252ZXJ0cyBhIHN0cmluZyB0byBhIEZ1bGZpbGxtZW50RGlzcGxheVN0YXR1cyBlbnVtIHZhbHVlLlxuICpcbiAqIEBwYXJhbSBzdGF0dXMgLSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gKlxuICogQHJldHVybnMgVGhlIEZ1bGZpbGxtZW50RGlzcGxheVN0YXR1cyBlbnVtIHZhbHVlIG9yIHVuZGVmaW5lZCBpZiB0aGUgc3RyaW5nXG4gKiBkb2VzIG5vdCBtYXAgdG8gYSB2YWxpZCBlbnVtXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHN0cmluZ1RvRnVsZmlsbG1lbnREaXNwbGF5U3RhdHVzRW51bVZhbHVlOiAoc3RhdHVzOiBzdHJpbmcpID0+IEZ1bGZpbGxtZW50RGlzcGxheVN0YXR1cyB8IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IENvbG9yTWFwcGluZyB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NvbG9yc0NvbmZpZ1wiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdGVHcmFwaFFMQ29sb3JzQ29uZmlnOiAoZGF0YTogdW5rbm93bikgPT4gQ29sb3JNYXBwaW5nIHwgdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsgRnJvbnRlbmRDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2Zyb250ZW5kQ29uZmlnJztcbmltcG9ydCB7IFdpZGdldENvbmZpZywgUGFnZVZhcmlhbnRDb25maWcsIFdpZGdldE1vdW50aW5nQ29uZmlnIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHZhbGlkYXRlQW5kVHJhbnNmb3JtUGFnZVZhcmlhbnRzOiAoY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gUGFnZVZhcmlhbnRDb25maWc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCB2YWxpZGF0ZUFuZFRyYW5zZm9ybU1vdW50aW5nQ29uZmlnOiAoY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgY29uZmlnS2V5OiBzdHJpbmcpID0+IFdpZGdldE1vdW50aW5nQ29uZmlnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdGVBbmRUcmFuc2Zvcm1XaWRnZXRDb25maWc6IChjb25maWc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBjb25maWdLZXk6IHN0cmluZykgPT4gV2lkZ2V0Q29uZmlnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdGVHcmFwaFFMRnJvbnRlbmRDb25maWc6IChkYXRhOiB1bmtub3duKSA9PiBGcm9udGVuZENvbmZpZyB8IHVuZGVmaW5lZDtcbiIsImV4cG9ydCBkZWNsYXJlIGNvbnN0IHZhbGlkYXRlR3JhcGhRTE9yZ0lkOiAoZGF0YTogdW5rbm93bikgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsgTW9iaWxlUExQQ2hhdFBsYWNlbWVudFBhcmFtZXRlciB9IGZyb20gJy4uL21vYmlsZVBMUENoYXRQbGFjZW1lbnRQYXJhbWV0ZXInO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdGVNb2JpbGVQTFBDaGF0UGxhY2VtZW50UGFyYW1ldGVyOiAodmFsdWU6IHVua25vd24pID0+IE1vYmlsZVBMUENoYXRQbGFjZW1lbnRQYXJhbWV0ZXIgfCB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBPcmdhbml6YXRpb25Db25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdhbml6YXRpb25Db25maWcnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdGVPcmdhbml6YXRpb25Db25maWc6IChkYXRhOiB1bmtub3duKSA9PiBPcmdhbml6YXRpb25Db25maWcgfCB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBPcmdDb25maWcgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbi8qKlxuICpcbiAqIEBwYXJhbSBkYXRhXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZGVjbGFyZSBjb25zdCB2YWxpZGF0ZU9yZ0NvbmZpZ1Jlc3VsdHM6IChkYXRhOiB1bmtub3duKSA9PiBPcmdDb25maWcgfCB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBSZXNwb25zZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvaW5kZXgnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdGVSZXNwb25zZTogKGRhdGE6IHVua25vd24pID0+IFJlc3BvbnNlIHwgdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsgU3VnZ2VzdGlvbiB9IGZyb20gJy4uL2FwaS9zdWdnZXN0aW9uJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHZhbGlkYXRlU3VnZ2VzdGlvbjogKGRhdGE6IHVua25vd24pID0+IFN1Z2dlc3Rpb24gfCB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2luZGV4JztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHZhbGlkYXRlVXNlckV2ZW50OiAoZGF0YTogdW5rbm93bikgPT4gVXNlckV2ZW50IHwgdW5kZWZpbmVkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUksY0FBYyxDQUFDLElBQUc7Ozs7QUNBdEIsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFHOzs7O0FDQXhCLElBQVcsMEJBQTBCLENBQUMsSUFBQTs7OztBQ0F0QyxJQUFFLHFCQUFBO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDRixJQUFJLGtCQUFrQixDQUFDLElBQUk7QUFDM0IsSUFBRSxtQkFBQSxDQUFBLElBQUE7QUFDRixJQUFXLG1CQUFtQjtDQUFDO09BQUs7T0FBQTtDQUFBO0FBQ3BDLElBQVcsb0JBQU07Q0FBQTtPQUFBO09BQUE7Q0FBQTs7OztBQ0pqQixJQUFJLGtDQUFrQyxDQUFDLElBQUk7Ozs7QUNBM0MsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJOzs7O0FDQWxDLElBQVcsa0JBQWtCLENBQUMsSUFBSTs7OztBQ0FsQyxJQUFJLHdCQUF3QixDQUFDLElBQUk7Ozs7QUNFakMsSUFBVyxjQUFjLENBQUMsSUFBSTtBQUM5QixJQUFX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