@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
@@ -0,0 +1,1213 @@
1
+ const require_chunk = require('./chunk-CUT6urMc.cjs');
2
+ const require_models = require('./models-BkXg5eIP.cjs');
3
+ const require_types = require('./types-BVSyY3Hk.cjs');
4
+ require('./graphql-BNW60InJ.cjs');
5
+ require('./api-_JaUnIUj.cjs');
6
+ require('./utilityTypes-COShxVir.cjs');
7
+ require('./variantInfo-orXoPBCU.cjs');
8
+ require('./enviveConfig-BccuzS2a.cjs');
9
+ require('./atomStore-B4jIaDPd.cjs');
10
+ const require_suggestionBarV2_types = require('./suggestionBarV2-types-nnGNgFvR.cjs');
11
+ require('./chat-BubCW1as.cjs');
12
+ require('./components-Cw9WjA6g.cjs');
13
+ const require_embedded = require('./embedded-Dl79TJLC.cjs');
14
+ require('./locators-0YYZu9n4.cjs');
15
+ const require_cdnUtils = require('./cdnUtils-32v8bDX9.cjs');
16
+ const require_default = require('./default-BnB4p0Se.cjs');
17
+ const require_divIds = require('./divIds-2dJlU3z8.cjs');
18
+ let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
19
+ __spiffy_ai_commerce_api_client = require_chunk.__toESM(__spiffy_ai_commerce_api_client);
20
+
21
+ //#region src/merchants/uniqueVintage/uniqueVintage.ts
22
+ const uniqueVintageColors = {
23
+ [require_types.ColorNames.TextPrimary]: "#000000",
24
+ [require_types.ColorNames.TextSecondary]: "#595959",
25
+ [require_types.ColorNames.TextAccent]: "#1D4A4F",
26
+ [require_types.ColorNames.TextLink]: "#222222",
27
+ [require_types.ColorNames.TextLight]: "#FFFFFF",
28
+ [require_types.ColorNames.BackgroundPrimary]: "#FADDD5",
29
+ [require_types.ColorNames.BackgroundSecondary]: "#FFFDF3",
30
+ [require_types.ColorNames.BackgroundSecondaryDark]: "#EBE9E0",
31
+ [require_types.ColorNames.BackgroundTertiary]: "#1D4A4F",
32
+ [require_types.ColorNames.BackgroundDark]: "#222222",
33
+ [require_types.ColorNames.BackgroundLight]: "#FFFFFF",
34
+ [require_types.ColorNames.BackgroundSaturated]: "#FADDD5",
35
+ [require_types.ColorNames.BorderLight]: "#E7E7E7",
36
+ [require_types.ColorNames.BorderMedium]: "#C2C4C8",
37
+ [require_types.ColorNames.BorderDark]: "#595959",
38
+ [require_types.ColorNames.BorderOutline]: "#222222",
39
+ [require_types.ColorNames.AccentPrimary]: "#FADDD5",
40
+ [require_types.ColorNames.AccentSecondary]: "#C0E7D6"
41
+ };
42
+ const uniqueVintageOrgUIConfig = () => {
43
+ const defaultUniqueVintageOrgConfig = require_default.defaultOrgUIConfig(require_types.OrgShortName.UniqueVintage);
44
+ return {
45
+ ...defaultUniqueVintageOrgConfig,
46
+ chatMessageConfig: {
47
+ ...defaultUniqueVintageOrgConfig.chatMessageConfig,
48
+ assistantChatTitle: "Unique Vintage AI",
49
+ variant: "standard"
50
+ },
51
+ chatHeader: {
52
+ ...defaultUniqueVintageOrgConfig.chatHeader,
53
+ chevronColor: require_types.colorVar(require_types.ColorNames.BackgroundDark),
54
+ expandedColor: require_types.colorVar(require_types.ColorNames.BackgroundPrimary),
55
+ imageSrc: require_cdnUtils.getCdnAssetURL("unique-vintage-long-logo.png", require_types.OrgShortName.UniqueVintage)
56
+ },
57
+ chatPreviewConfig: {
58
+ ...defaultUniqueVintageOrgConfig.chatPreviewConfig,
59
+ variant: "filled",
60
+ filledBackgroundColor: require_types.colorVar(require_types.ColorNames.AccentSecondary),
61
+ iconFillColor: require_types.colorVar(require_types.ColorNames.AccentPrimary),
62
+ buttonTextColor: require_types.colorVar(require_types.ColorNames.TextLight),
63
+ buttonBackgroundColor: require_types.colorVar(require_types.ColorNames.BackgroundDark),
64
+ buttonTextHoverColor: require_types.colorVar(require_types.ColorNames.TextPrimary),
65
+ buttonBackgroundHoverColor: require_types.colorVar(require_types.ColorNames.BackgroundSecondaryDark),
66
+ topMargin: 10,
67
+ copies: {
68
+ plp: [
69
+ "a classic swimsuit that's perfect for poolside glamour?",
70
+ "a skirt that twirls like it's straight out of the '50s?",
71
+ "a handbag inspired by iconic eras?",
72
+ "a dress that turns every head in the room?"
73
+ ],
74
+ pdp: [
75
+ "the vintage-inspired details that make this piece timeless?",
76
+ "what makes this style a true throwback treasure?",
77
+ "what luxe materials will elevate your look?",
78
+ "the size that's right for you?"
79
+ ]
80
+ },
81
+ staticSuggestionCopies: {
82
+ plp: [
83
+ "What casual vintage pieces work for everyday wear?",
84
+ "What pieces can I mix and match for a vintage-inspired wardrobe?",
85
+ "What shoes are perfect for date nights and special occasions?",
86
+ "What accessories can I add to elevate my vintage look?"
87
+ ],
88
+ pdp: [
89
+ "What size will give me the right fit?",
90
+ "How do I keep this piece in perfect condition for years to come?",
91
+ "What features makes this piece the ideal statement for a vintage lover?",
92
+ "How does this piece embody the spirit of past eras with modern style?"
93
+ ]
94
+ },
95
+ headerConfig: {
96
+ title: "Shopping Assistant",
97
+ sparklesColor: void 0,
98
+ imageHeight: 24,
99
+ imageSrc: require_cdnUtils.getCdnAssetURL("unique-vintage-long-logo.png", require_types.OrgShortName.UniqueVintage)
100
+ },
101
+ footerConfig: {
102
+ ...defaultUniqueVintageOrgConfig.chatPreviewConfig.footerConfig,
103
+ replyButtonText: "What can I help you find?",
104
+ replyButtonIcon: "magnifyingGlass",
105
+ hasFade: false
106
+ }
107
+ },
108
+ floatingEntrypointConfig: {
109
+ ...defaultUniqueVintageOrgConfig.floatingEntrypointConfig,
110
+ showOption: "always",
111
+ expandedColor: require_types.colorVar(require_types.ColorNames.BorderOutline),
112
+ iconStrokeColor: require_types.colorVar(require_types.ColorNames.BackgroundDark),
113
+ iconFillColor: require_types.colorVar(require_types.ColorNames.BackgroundDark),
114
+ expansionText: {
115
+ pdp: "Will this complete your retro wardrobe?",
116
+ plp: "What vintage treasure will you find today?"
117
+ }
118
+ },
119
+ productCardConfig: { ...defaultUniqueVintageOrgConfig.productCardConfig },
120
+ productReviewConfig: {
121
+ ...defaultUniqueVintageOrgConfig.productReviewConfig,
122
+ colorVariant: "brand",
123
+ incentivizedReviewFlag: false
124
+ },
125
+ welcomeSectionConfig: {
126
+ ...defaultUniqueVintageOrgConfig.welcomeSectionConfig,
127
+ title: "Welcome to Unique Vintage AI!",
128
+ colorVariant: "brand",
129
+ subtitle: "Hello, darling! I'm here to help you find everything you need to channel your unique, vintage-inspired style. Whether you're searching for the perfect outfit, need sizing advice, or just want to explore fabulous accessories, let's make your shopping experience as glamorous as you are!"
130
+ },
131
+ customerServiceIntegration: {
132
+ integrationMode: require_default.CustomerServiceIntegrationMode.simple,
133
+ provider: require_default.CustomerServiceType.zowie
134
+ },
135
+ conversationalSearch: {
136
+ enabled: true,
137
+ replyInput: {
138
+ sendIcon: "search",
139
+ placeholder: "What can I help you find?"
140
+ },
141
+ entrypointContainer: "id|chat-search-entrypoint",
142
+ productGridContainer: "id|chat-search-product-page",
143
+ searchContent: "query|.ss__autocomplete--target",
144
+ pageContent: "id|MainContent",
145
+ generalSearchBtn: "query|button.modal__close-button"
146
+ },
147
+ searchConfig: {
148
+ enableGlobalSearch: true,
149
+ searchFilterConfig: [
150
+ {
151
+ filterId: "color",
152
+ displayName: "Color",
153
+ attribute: "colors",
154
+ type: "dynamic",
155
+ sorting: { type: "alphabetic" }
156
+ },
157
+ {
158
+ filterId: "size",
159
+ displayName: "Size",
160
+ type: "dynamic",
161
+ attribute: "sizes",
162
+ sorting: {
163
+ type: "custom",
164
+ map: {
165
+ "One Size": 10,
166
+ "XXS / 0": 20,
167
+ "XS / 2": 30,
168
+ "S / 4": 40,
169
+ "M / 6 - 8": 50,
170
+ "L / 10 - 12": 60,
171
+ "XL / 14": 70,
172
+ "1X / 16": 80,
173
+ "2X / 18": 90,
174
+ "3X / 20": 100,
175
+ "4X / 22 - 24": 110,
176
+ "5X / 26": 120,
177
+ "6X": 130
178
+ }
179
+ }
180
+ },
181
+ {
182
+ filterId: "price",
183
+ displayName: "Price",
184
+ type: "price",
185
+ bucketSize: 50
186
+ }
187
+ ]
188
+ },
189
+ merchantOverrideCss: `
190
+ #spiffy-modal-container {
191
+ z-index: 2147483001 !important;
192
+ }
193
+ .spiffy-star-rating-star {
194
+ fill: var(--spiffy-colors-text-accent) !important;
195
+ }
196
+ .spiffy-product-review-header-reviewer {
197
+ color: var(--spiffy-colors-text-primary) !important;
198
+ }
199
+
200
+ /* WelcomeSection light text override */
201
+ .spiffy-welcome-section-message-title {
202
+ color: var(--spiffy-colors-text-light) !important;
203
+ }
204
+ .spiffy-welcome-section-message-subtitle {
205
+ color: var(--spiffy-colors-text-light) !important;
206
+ }
207
+
208
+ #spiffy-ai-chat-preview {
209
+ display: block;
210
+ }
211
+ #chat-search-product-page {
212
+ display: block;
213
+ }
214
+ #chat-search-nav-entrypoint {
215
+ display: flex;
216
+ }
217
+ #spiffy-ai-chat-preview.is-pdp {
218
+ padding-top: 8px;
219
+ border-top: solid 1px var(--spiffy-colors-border-light);
220
+ }
221
+ #spiffy-top-suggestion-bar-id {
222
+ display: block;
223
+ }
224
+ #spiffy-ai-chat-preview {
225
+ display: block;
226
+ }
227
+ #spiffy-bottom-reviews-bar-id {
228
+ display: block;
229
+ }
230
+ .spiffy-chat-search-entrypoint-container {
231
+ background: var(--spiffy-colors-background-primary) !important;
232
+ border-color: var(--spiffy-colors-background-dark) !important;
233
+ }
234
+ .spiffy-chat-search-entrypoint-container .spiffy-button-base-button {
235
+ color: var(--spiffy-colors-text-primary) !important;
236
+ border: none;
237
+ }
238
+ .spiffy-chat-search-entrypoint-text p {
239
+ font-family: 'Bookmania-SemiBold' !important;
240
+ font-size: 16px !important;
241
+ }
242
+ #spiffy-ai-chat-preview-contents h1, h2, h3, h4, h5, h6 {
243
+ --chakra-fonts-heading: 'Bookmania-Regular', 'Poppins', sans-serif;
244
+ }
245
+ .spiffy-headline {
246
+ font-family: 'Bookmania-Regular', 'Poppins', sans-serif;
247
+ }
248
+ #spiffy-model-container h1, h2, h3, h4, h5, h6 {
249
+ font-family: var(--chakra-fonts-heading);
250
+ }
251
+ #spiffy-model-container h1, h2, h3, h4, h5, h6 {
252
+ --chakra-fonts-heading: 'Bookmania-Regular', 'Poppins', sans-serif;
253
+ }
254
+ .spiffy-suggestion-button-question-class {
255
+ border: 1px solid var(--spiffy-colors-border-light);
256
+ }
257
+ .spiffy-tag-pill-text {
258
+ color: var(--spiffy-colors-text-light) !important;
259
+ }
260
+ #return-to-results-button {
261
+ display: block;
262
+ }
263
+ .spiffy-back-to-results-button {
264
+ margin-left: 30px;
265
+ margin-top: 30px;
266
+ @media (max-width: 768px) {
267
+ margin-left: 20px;
268
+ margin-top: 20px;
269
+ }
270
+ }
271
+ @media (max-width: 992px) {
272
+ #chat-search-entrypoint {
273
+ display: none;
274
+ }
275
+ }
276
+ #chat-search-entrypoint-mobile {
277
+ display: none;
278
+ }
279
+ .ss__autocomplete--active #chat-search-entrypoint-mobile {
280
+ display: flex;
281
+ }
282
+ .spiffy-product-card-title {
283
+ font-family: var(--chakra-fonts-heading);
284
+ color: var(--spiffy-colors-text-link);
285
+ }
286
+ .spiffy-product-card-text-color {
287
+ color: var(--spiffy-colors-text-secondary);
288
+ }
289
+
290
+ .spiffy-chat-header-close-button {
291
+ color: var(--spiffy-colors-background-primary);
292
+ background-color: var(--spiffy-colors-background-tertiary);
293
+ }
294
+
295
+ #spiffy-top-suggestion-bar-contents .spiffy-suggestion-button-question-class span {
296
+ color: var(--spiffy-colors-text-accent) !important;
297
+ }
298
+
299
+ #spiffy-top-suggestion-bar-contents .spiffy-suggestion-button-question-class svg {
300
+ fill: var(--spiffy-colors-text-accent) !important;
301
+ stroke: var(--spiffy-colors-text-accent) !important;
302
+ }
303
+
304
+ #spiffy-bottom-suggestion-bar-contents .spiffy-suggestion-button-question-class svg {
305
+ fill: var(--spiffy-colors-accent-primary) !important;
306
+ stroke: var(--spiffy-colors-accent-primary) !important;
307
+ }
308
+
309
+ #spiffy-bottom-suggestion-bar-contents .spiffy-suggestion-button-question-class:hover svg {
310
+ fill: var(--spiffy-colors-text-link) !important;
311
+ stroke: var(--spiffy-colors-text-link) !important;
312
+ }
313
+
314
+ #spiffy-ai-global-search-entrypoint.global-entry-desktop {
315
+ display: block;
316
+ }
317
+ #spiffy-ai-global-search-entrypoint-mobile.global-entry-mobile {
318
+ display: none;
319
+ }
320
+
321
+ @media (max-width: 992px) {
322
+ #spiffy-ai-global-search-entrypoint.global-entry-desktop {
323
+ display: none;
324
+ }
325
+ #spiffy-ai-global-search-entrypoint-mobile.global-entry-mobile {
326
+ display: block;
327
+ }
328
+ }
329
+
330
+ #spiffy-ai-global-search-entrypoint.global-entry-desktop .spiffy-global-search-input-container {
331
+ height: 80px;
332
+ }
333
+
334
+ .spiffy-global-search-input-container .spiffy-global-search-text {
335
+ font-family: "Poly", serif;
336
+ color: var(--spiffy-colors-text-link) !important;
337
+ font-weight: 500;
338
+ line-height: 80px;
339
+ padding-top: 6px;
340
+ }
341
+
342
+ .spiffy-search-overlay-content .spiffy-headline {
343
+ font-family: "Poly", serif;
344
+ @media (min-width: 480px) {
345
+ font-size: 32px;
346
+ }
347
+ }
348
+
349
+ .spiffy-search-overlay-content .spiffy-body-text {
350
+ font-family: "Poly", serif;
351
+ }
352
+
353
+ .spiffy-global-search-input-container svg {
354
+ width: 26px;
355
+ }
356
+ `
357
+ };
358
+ };
359
+ const uniqueVintagePageConfig = () => ({
360
+ pageVariants: [
361
+ {
362
+ variantId: "search-results",
363
+ variantType: "page_visit",
364
+ variantTests: [
365
+ { testType: require_types.PageVariantTestType.ShopifyPLP },
366
+ {
367
+ testType: require_types.PageVariantTestType.QueryParam,
368
+ queryParam: "q"
369
+ },
370
+ {
371
+ testType: require_types.PageVariantTestType.PageCategory,
372
+ extractor: {
373
+ type: require_types.CategoryExtractorType.VisitCategoryDefault,
374
+ value: __spiffy_ai_commerce_api_client.PageVisitCategory.Other
375
+ }
376
+ }
377
+ ],
378
+ widgetMounting: []
379
+ },
380
+ {
381
+ variantId: "plp-global-search",
382
+ variantType: "plp",
383
+ variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPLP }, {
384
+ testType: require_types.PageVariantTestType.FeatureGate,
385
+ featureGate: require_models.FeatureGates.IsGlobalSearchEnabled
386
+ }],
387
+ plpIdExtractor: "shopify-collection-id",
388
+ widgetMounting: [
389
+ {
390
+ mountingConfigId: "globalSearchEntryPoint",
391
+ widgetConfigId: "globalSearchEntryPoint"
392
+ },
393
+ {
394
+ mountingConfigId: "globalSearchEntryPointMobile",
395
+ widgetConfigId: "globalSearchEntryPointMobile"
396
+ },
397
+ {
398
+ mountingConfigId: "chatPreviewPLP",
399
+ widgetConfigId: "chatPreviewPLP"
400
+ }
401
+ ]
402
+ },
403
+ {
404
+ variantId: "plp-search",
405
+ variantType: "plp",
406
+ variantTests: [{
407
+ testType: require_types.PageVariantTestType.FeatureGate,
408
+ featureGate: require_models.FeatureGates.IsNewFeatureEnabled
409
+ }, { testType: require_types.PageVariantTestType.ShopifyPLP }],
410
+ plpIdExtractor: "shopify-collection-id",
411
+ widgetMounting: [{
412
+ mountingConfigId: "chatPreviewPLP",
413
+ widgetConfigId: "searchPromptPLP"
414
+ }]
415
+ },
416
+ {
417
+ variantId: "plp",
418
+ variantType: "plp",
419
+ variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPLP }],
420
+ plpIdExtractor: "shopify-collection-id",
421
+ widgetMounting: [{
422
+ mountingConfigId: "chatPreviewPLP",
423
+ widgetConfigId: "chatPreviewPLP"
424
+ }]
425
+ },
426
+ {
427
+ variantId: "pdpDressesHasReviewsGlobalSearch",
428
+ variantType: "pdp",
429
+ variantTests: [
430
+ { testType: require_types.PageVariantTestType.ShopifyPDP },
431
+ {
432
+ testType: require_types.PageVariantTestType.InCollection,
433
+ collections: ["dresses"]
434
+ },
435
+ {
436
+ testType: require_types.PageVariantTestType.HasReviews,
437
+ reviewMinimum: 4
438
+ },
439
+ {
440
+ testType: require_types.PageVariantTestType.FeatureGate,
441
+ featureGate: require_models.FeatureGates.IsGlobalSearchEnabled
442
+ }
443
+ ],
444
+ productIdExtractor: "shopify-product-id",
445
+ widgetMounting: [
446
+ {
447
+ mountingConfigId: "globalSearchEntryPoint",
448
+ widgetConfigId: "globalSearchEntryPoint"
449
+ },
450
+ {
451
+ mountingConfigId: "globalSearchEntryPointMobile",
452
+ widgetConfigId: "globalSearchEntryPointMobile"
453
+ },
454
+ {
455
+ mountingConfigId: "topSuggestionBarPDP",
456
+ widgetConfigId: "topSuggestionsBarDressesHasReviews"
457
+ },
458
+ {
459
+ mountingConfigId: "chatPreviewPDP",
460
+ widgetConfigId: "chatPreviewPDP"
461
+ },
462
+ {
463
+ mountingConfigId: "bottomSuggestionBarPDP",
464
+ widgetConfigId: "bottomSuggestionsBar"
465
+ }
466
+ ]
467
+ },
468
+ {
469
+ variantId: "pdpDressesNoReviewsGlobalSearch",
470
+ variantType: "pdp",
471
+ variantTests: [
472
+ { testType: require_types.PageVariantTestType.ShopifyPDP },
473
+ {
474
+ testType: require_types.PageVariantTestType.InCollection,
475
+ collections: ["dresses"]
476
+ },
477
+ {
478
+ testType: require_types.PageVariantTestType.FeatureGate,
479
+ featureGate: require_models.FeatureGates.IsGlobalSearchEnabled
480
+ }
481
+ ],
482
+ productIdExtractor: "shopify-product-id",
483
+ widgetMounting: [
484
+ {
485
+ mountingConfigId: "globalSearchEntryPoint",
486
+ widgetConfigId: "globalSearchEntryPoint"
487
+ },
488
+ {
489
+ mountingConfigId: "globalSearchEntryPointMobile",
490
+ widgetConfigId: "globalSearchEntryPointMobile"
491
+ },
492
+ {
493
+ mountingConfigId: "topSuggestionBarPDP",
494
+ widgetConfigId: "topSuggestionsBarDressesNoReviews"
495
+ },
496
+ {
497
+ mountingConfigId: "chatPreviewPDP",
498
+ widgetConfigId: "chatPreviewPDP"
499
+ },
500
+ {
501
+ mountingConfigId: "bottomSuggestionBarPDP",
502
+ widgetConfigId: "bottomSuggestionsBar"
503
+ }
504
+ ]
505
+ },
506
+ {
507
+ variantId: "pdpSwimwearHasReviewsGlobalSearch",
508
+ variantType: "pdp",
509
+ variantTests: [
510
+ { testType: require_types.PageVariantTestType.ShopifyPDP },
511
+ {
512
+ testType: require_types.PageVariantTestType.InCollection,
513
+ collections: ["swim-html"]
514
+ },
515
+ {
516
+ testType: require_types.PageVariantTestType.HasReviews,
517
+ reviewMinimum: 4
518
+ },
519
+ {
520
+ testType: require_types.PageVariantTestType.FeatureGate,
521
+ featureGate: require_models.FeatureGates.IsGlobalSearchEnabled
522
+ }
523
+ ],
524
+ productIdExtractor: "shopify-product-id",
525
+ widgetMounting: [
526
+ {
527
+ mountingConfigId: "globalSearchEntryPoint",
528
+ widgetConfigId: "globalSearchEntryPoint"
529
+ },
530
+ {
531
+ mountingConfigId: "globalSearchEntryPointMobile",
532
+ widgetConfigId: "globalSearchEntryPointMobile"
533
+ },
534
+ {
535
+ mountingConfigId: "topSuggestionBarPDP",
536
+ widgetConfigId: "topSuggestionsBarSwimwearHasReviews"
537
+ },
538
+ {
539
+ mountingConfigId: "chatPreviewPDP",
540
+ widgetConfigId: "chatPreviewPDP"
541
+ },
542
+ {
543
+ mountingConfigId: "bottomSuggestionBarPDP",
544
+ widgetConfigId: "bottomSuggestionsBar"
545
+ }
546
+ ]
547
+ },
548
+ {
549
+ variantId: "pdpSwimwearNoReviewsGlobalSearch",
550
+ variantType: "pdp",
551
+ variantTests: [
552
+ { testType: require_types.PageVariantTestType.ShopifyPDP },
553
+ {
554
+ testType: require_types.PageVariantTestType.InCollection,
555
+ collections: ["swim-html"]
556
+ },
557
+ {
558
+ testType: require_types.PageVariantTestType.FeatureGate,
559
+ featureGate: require_models.FeatureGates.IsGlobalSearchEnabled
560
+ }
561
+ ],
562
+ productIdExtractor: "shopify-product-id",
563
+ widgetMounting: [
564
+ {
565
+ mountingConfigId: "globalSearchEntryPoint",
566
+ widgetConfigId: "globalSearchEntryPoint"
567
+ },
568
+ {
569
+ mountingConfigId: "globalSearchEntryPointMobile",
570
+ widgetConfigId: "globalSearchEntryPointMobile"
571
+ },
572
+ {
573
+ mountingConfigId: "topSuggestionBarPDP",
574
+ widgetConfigId: "topSuggestionsBarSwimwearNoReviews"
575
+ },
576
+ {
577
+ mountingConfigId: "chatPreviewPDP",
578
+ widgetConfigId: "chatPreviewPDP"
579
+ },
580
+ {
581
+ mountingConfigId: "bottomSuggestionBarPDP",
582
+ widgetConfigId: "bottomSuggestionsBar"
583
+ }
584
+ ]
585
+ },
586
+ {
587
+ variantId: "pdpShoesHasReviewsGlobalSearch",
588
+ variantType: "pdp",
589
+ variantTests: [
590
+ { testType: require_types.PageVariantTestType.ShopifyPDP },
591
+ {
592
+ testType: require_types.PageVariantTestType.InCollection,
593
+ collections: ["shoes"]
594
+ },
595
+ {
596
+ testType: require_types.PageVariantTestType.HasReviews,
597
+ reviewMinimum: 4
598
+ },
599
+ {
600
+ testType: require_types.PageVariantTestType.FeatureGate,
601
+ featureGate: require_models.FeatureGates.IsGlobalSearchEnabled
602
+ }
603
+ ],
604
+ productIdExtractor: "shopify-product-id",
605
+ widgetMounting: [
606
+ {
607
+ mountingConfigId: "globalSearchEntryPoint",
608
+ widgetConfigId: "globalSearchEntryPoint"
609
+ },
610
+ {
611
+ mountingConfigId: "globalSearchEntryPointMobile",
612
+ widgetConfigId: "globalSearchEntryPointMobile"
613
+ },
614
+ {
615
+ mountingConfigId: "topSuggestionBarPDP",
616
+ widgetConfigId: "topSuggestionsBarShoesHasReviews"
617
+ },
618
+ {
619
+ mountingConfigId: "chatPreviewPDP",
620
+ widgetConfigId: "chatPreviewPDP"
621
+ },
622
+ {
623
+ mountingConfigId: "bottomSuggestionBarPDP",
624
+ widgetConfigId: "bottomSuggestionsBar"
625
+ }
626
+ ]
627
+ },
628
+ {
629
+ variantId: "pdpShoesNoReviewsGlobalSearch",
630
+ variantType: "pdp",
631
+ variantTests: [
632
+ { testType: require_types.PageVariantTestType.ShopifyPDP },
633
+ {
634
+ testType: require_types.PageVariantTestType.InCollection,
635
+ collections: ["shoes"]
636
+ },
637
+ {
638
+ testType: require_types.PageVariantTestType.FeatureGate,
639
+ featureGate: require_models.FeatureGates.IsGlobalSearchEnabled
640
+ }
641
+ ],
642
+ productIdExtractor: "shopify-product-id",
643
+ widgetMounting: [
644
+ {
645
+ mountingConfigId: "globalSearchEntryPoint",
646
+ widgetConfigId: "globalSearchEntryPoint"
647
+ },
648
+ {
649
+ mountingConfigId: "globalSearchEntryPointMobile",
650
+ widgetConfigId: "globalSearchEntryPointMobile"
651
+ },
652
+ {
653
+ mountingConfigId: "topSuggestionBarPDP",
654
+ widgetConfigId: "topSuggestionsBarShoesNoReviews"
655
+ },
656
+ {
657
+ mountingConfigId: "chatPreviewPDP",
658
+ widgetConfigId: "chatPreviewPDP"
659
+ },
660
+ {
661
+ mountingConfigId: "bottomSuggestionBarPDP",
662
+ widgetConfigId: "bottomSuggestionsBar"
663
+ }
664
+ ]
665
+ },
666
+ {
667
+ variantId: "pdpGlobalSearch",
668
+ variantType: "pdp",
669
+ variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPDP }, {
670
+ testType: require_types.PageVariantTestType.FeatureGate,
671
+ featureGate: require_models.FeatureGates.IsGlobalSearchEnabled
672
+ }],
673
+ productIdExtractor: "shopify-product-id",
674
+ widgetMounting: [
675
+ {
676
+ mountingConfigId: "globalSearchEntryPoint",
677
+ widgetConfigId: "globalSearchEntryPoint"
678
+ },
679
+ {
680
+ mountingConfigId: "globalSearchEntryPointMobile",
681
+ widgetConfigId: "globalSearchEntryPointMobile"
682
+ },
683
+ {
684
+ mountingConfigId: "topSuggestionBarPDP",
685
+ widgetConfigId: "topSuggestionsBar"
686
+ },
687
+ {
688
+ mountingConfigId: "chatPreviewPDP",
689
+ widgetConfigId: "chatPreviewPDP"
690
+ },
691
+ {
692
+ mountingConfigId: "bottomSuggestionBarPDP",
693
+ widgetConfigId: "bottomSuggestionsBar"
694
+ }
695
+ ]
696
+ },
697
+ {
698
+ variantId: "pdpDressesHasReviews",
699
+ variantType: "pdp",
700
+ variantTests: [
701
+ { testType: require_types.PageVariantTestType.ShopifyPDP },
702
+ {
703
+ testType: require_types.PageVariantTestType.InCollection,
704
+ collections: ["dresses"]
705
+ },
706
+ {
707
+ testType: require_types.PageVariantTestType.HasReviews,
708
+ reviewMinimum: 4
709
+ }
710
+ ],
711
+ productIdExtractor: "shopify-product-id",
712
+ widgetMounting: [
713
+ {
714
+ mountingConfigId: "topSuggestionBarPDP",
715
+ widgetConfigId: "topSuggestionsBarDressesHasReviews"
716
+ },
717
+ {
718
+ mountingConfigId: "chatPreviewPDP",
719
+ widgetConfigId: "chatPreviewPDP"
720
+ },
721
+ {
722
+ mountingConfigId: "bottomSuggestionBarPDP",
723
+ widgetConfigId: "bottomSuggestionsBar"
724
+ }
725
+ ]
726
+ },
727
+ {
728
+ variantId: "pdpDressesNoReviews",
729
+ variantType: "pdp",
730
+ variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPDP }, {
731
+ testType: require_types.PageVariantTestType.InCollection,
732
+ collections: ["dresses"]
733
+ }],
734
+ productIdExtractor: "shopify-product-id",
735
+ widgetMounting: [
736
+ {
737
+ mountingConfigId: "topSuggestionBarPDP",
738
+ widgetConfigId: "topSuggestionsBarDressesNoReviews"
739
+ },
740
+ {
741
+ mountingConfigId: "chatPreviewPDP",
742
+ widgetConfigId: "chatPreviewPDP"
743
+ },
744
+ {
745
+ mountingConfigId: "bottomSuggestionBarPDP",
746
+ widgetConfigId: "bottomSuggestionsBar"
747
+ }
748
+ ]
749
+ },
750
+ {
751
+ variantId: "pdpSwimwearHasReviews",
752
+ variantType: "pdp",
753
+ variantTests: [
754
+ { testType: require_types.PageVariantTestType.ShopifyPDP },
755
+ {
756
+ testType: require_types.PageVariantTestType.InCollection,
757
+ collections: ["swim-html"]
758
+ },
759
+ {
760
+ testType: require_types.PageVariantTestType.HasReviews,
761
+ reviewMinimum: 4
762
+ }
763
+ ],
764
+ productIdExtractor: "shopify-product-id",
765
+ widgetMounting: [
766
+ {
767
+ mountingConfigId: "topSuggestionBarPDP",
768
+ widgetConfigId: "topSuggestionsBarSwimwearHasReviews"
769
+ },
770
+ {
771
+ mountingConfigId: "chatPreviewPDP",
772
+ widgetConfigId: "chatPreviewPDP"
773
+ },
774
+ {
775
+ mountingConfigId: "bottomSuggestionBarPDP",
776
+ widgetConfigId: "bottomSuggestionsBar"
777
+ }
778
+ ]
779
+ },
780
+ {
781
+ variantId: "pdpSwimwearNoReviews",
782
+ variantType: "pdp",
783
+ variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPDP }, {
784
+ testType: require_types.PageVariantTestType.InCollection,
785
+ collections: ["swim-html"]
786
+ }],
787
+ productIdExtractor: "shopify-product-id",
788
+ widgetMounting: [
789
+ {
790
+ mountingConfigId: "topSuggestionBarPDP",
791
+ widgetConfigId: "topSuggestionsBarSwimwearNoReviews"
792
+ },
793
+ {
794
+ mountingConfigId: "chatPreviewPDP",
795
+ widgetConfigId: "chatPreviewPDP"
796
+ },
797
+ {
798
+ mountingConfigId: "bottomSuggestionBarPDP",
799
+ widgetConfigId: "bottomSuggestionsBar"
800
+ }
801
+ ]
802
+ },
803
+ {
804
+ variantId: "pdpShoesHasReviews",
805
+ variantType: "pdp",
806
+ variantTests: [
807
+ { testType: require_types.PageVariantTestType.ShopifyPDP },
808
+ {
809
+ testType: require_types.PageVariantTestType.InCollection,
810
+ collections: ["shoes"]
811
+ },
812
+ {
813
+ testType: require_types.PageVariantTestType.HasReviews,
814
+ reviewMinimum: 4
815
+ }
816
+ ],
817
+ productIdExtractor: "shopify-product-id",
818
+ widgetMounting: [
819
+ {
820
+ mountingConfigId: "topSuggestionBarPDP",
821
+ widgetConfigId: "topSuggestionsBarShoesHasReviews"
822
+ },
823
+ {
824
+ mountingConfigId: "chatPreviewPDP",
825
+ widgetConfigId: "chatPreviewPDP"
826
+ },
827
+ {
828
+ mountingConfigId: "bottomSuggestionBarPDP",
829
+ widgetConfigId: "bottomSuggestionsBar"
830
+ }
831
+ ]
832
+ },
833
+ {
834
+ variantId: "pdpShoesNoReviews",
835
+ variantType: "pdp",
836
+ variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPDP }, {
837
+ testType: require_types.PageVariantTestType.InCollection,
838
+ collections: ["shoes"]
839
+ }],
840
+ productIdExtractor: "shopify-product-id",
841
+ widgetMounting: [
842
+ {
843
+ mountingConfigId: "topSuggestionBarPDP",
844
+ widgetConfigId: "topSuggestionsBarShoesNoReviews"
845
+ },
846
+ {
847
+ mountingConfigId: "chatPreviewPDP",
848
+ widgetConfigId: "chatPreviewPDP"
849
+ },
850
+ {
851
+ mountingConfigId: "bottomSuggestionBarPDP",
852
+ widgetConfigId: "bottomSuggestionsBar"
853
+ }
854
+ ]
855
+ },
856
+ {
857
+ variantId: "pdp",
858
+ variantType: "pdp",
859
+ variantTests: [{ testType: require_types.PageVariantTestType.ShopifyPDP }],
860
+ productIdExtractor: "shopify-product-id",
861
+ widgetMounting: [
862
+ {
863
+ mountingConfigId: "topSuggestionBarPDP",
864
+ widgetConfigId: "topSuggestionsBar"
865
+ },
866
+ {
867
+ mountingConfigId: "chatPreviewPDP",
868
+ widgetConfigId: "chatPreviewPDP"
869
+ },
870
+ {
871
+ mountingConfigId: "bottomSuggestionBarPDP",
872
+ widgetConfigId: "bottomSuggestionsBar"
873
+ }
874
+ ]
875
+ }
876
+ ],
877
+ widgetConfigs: {
878
+ globalSearchEntryPoint: {
879
+ widgetConfigId: "globalSearchEntryPoint",
880
+ type: require_types.WidgetType.SearchZeroStateEntryPoint,
881
+ searchZeroStateVariant: "backgroundTertiary",
882
+ searchInputVariant: "standard",
883
+ suggestionButtonConfig: {
884
+ variant: "darkAccent",
885
+ hoverVariant: "secondaryAccent"
886
+ },
887
+ layout: "icon",
888
+ compactLabel: "Search",
889
+ searchBoxPlaceholder: "Try \"Colorful maxi for a summer wedding\"",
890
+ initialSuggestions: [
891
+ "Vintage dresses",
892
+ "Maxi dresses",
893
+ "Disney outfit",
894
+ "Barbie collection",
895
+ "1970s jumpsuit",
896
+ "One-piece swimsuit",
897
+ "Cinderella divine dresses"
898
+ ]
899
+ },
900
+ globalSearchEntryPointMobile: {
901
+ widgetConfigId: "globalSearchEntryPointMobile",
902
+ type: require_types.WidgetType.SearchZeroStateEntryPoint,
903
+ searchZeroStateVariant: "backgroundTertiary",
904
+ searchInputVariant: "standard",
905
+ suggestionButtonConfig: {
906
+ variant: "darkAccent",
907
+ hoverVariant: "secondaryAccent"
908
+ },
909
+ layout: "icon",
910
+ searchBoxPlaceholder: "Try \"Colorful maxi for a summer wedding\"",
911
+ initialSuggestions: [
912
+ "Vintage dresses",
913
+ "Maxi dresses",
914
+ "Disney outfit",
915
+ "Barbie collection",
916
+ "1970s jumpsuit",
917
+ "One-piece swimsuit",
918
+ "Cinderella divine dresses"
919
+ ]
920
+ },
921
+ topSuggestionsBar: {
922
+ widgetConfigId: "topSuggestionsBar",
923
+ contentId: "spiffy-top-suggestion-bar-contents",
924
+ type: require_types.WidgetType.SuggestionBarV2,
925
+ metricDisplayLocation: require_models.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
926
+ location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
927
+ variant: "primary",
928
+ hoverVariant: "secondaryDark",
929
+ buttonTexts: { default: [
930
+ "Summarize the reviews",
931
+ "What retro charm will this piece bring to my wardrobe?",
932
+ "What occasions is this piece perfect for?",
933
+ "How do others describe the fit and feel?",
934
+ "What makes this piece stand out for others?"
935
+ ] },
936
+ boldFirstButton: true,
937
+ twoRowsOnMobile: false,
938
+ buttonBorderRadius: "md"
939
+ },
940
+ topSuggestionsBarDressesHasReviews: {
941
+ widgetConfigId: "topSuggestionsBarDressesHasReviews",
942
+ contentId: "spiffy-top-suggestion-bar-contents",
943
+ type: require_types.WidgetType.SuggestionBarV2,
944
+ metricDisplayLocation: require_models.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
945
+ location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
946
+ variant: "primary",
947
+ hoverVariant: "secondaryDark",
948
+ buttonTexts: { default: [
949
+ "Summarize the reviews",
950
+ "Which unique accessories pair with this?",
951
+ "Is the fit flowy or figure-enhancing?",
952
+ "Is it true to size?"
953
+ ] },
954
+ boldFirstButton: true,
955
+ twoRowsOnMobile: false,
956
+ buttonBorderRadius: "md"
957
+ },
958
+ topSuggestionsBarDressesNoReviews: {
959
+ widgetConfigId: "topSuggestionsBarDressesNoReviews",
960
+ contentId: "spiffy-top-suggestion-bar-contents",
961
+ type: require_types.WidgetType.SuggestionBarV2,
962
+ metricDisplayLocation: require_models.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
963
+ location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
964
+ variant: "primary",
965
+ hoverVariant: "secondaryDark",
966
+ buttonTexts: { default: [
967
+ "What occasion is this dress for?",
968
+ "Which unique accessories pair with this?",
969
+ "Is the fit flowy or figure-enhancing?",
970
+ "Is it true to size?"
971
+ ] },
972
+ boldFirstButton: true,
973
+ twoRowsOnMobile: false,
974
+ buttonBorderRadius: "md"
975
+ },
976
+ topSuggestionsBarSwimwearHasReviews: {
977
+ widgetConfigId: "topSuggestionsBarSwimwearHasReviews",
978
+ contentId: "spiffy-top-suggestion-bar-contents",
979
+ type: require_types.WidgetType.SuggestionBarV2,
980
+ metricDisplayLocation: require_models.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
981
+ location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
982
+ variant: "primary",
983
+ hoverVariant: "secondaryDark",
984
+ buttonTexts: { default: [
985
+ "Summarize the reviews",
986
+ "Which accessories pair well?",
987
+ "Does the top have padding?",
988
+ "Does it run true to size?"
989
+ ] },
990
+ boldFirstButton: true,
991
+ twoRowsOnMobile: false,
992
+ buttonBorderRadius: "md"
993
+ },
994
+ topSuggestionsBarSwimwearNoReviews: {
995
+ widgetConfigId: "topSuggestionsBarSwimwearNoReviews",
996
+ contentId: "spiffy-top-suggestion-bar-contents",
997
+ type: require_types.WidgetType.SuggestionBarV2,
998
+ metricDisplayLocation: require_models.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
999
+ location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1000
+ variant: "primary",
1001
+ hoverVariant: "secondaryDark",
1002
+ buttonTexts: { default: [
1003
+ "Does it run true to size?",
1004
+ "Which accessories pair well?",
1005
+ "Does the top have padding?",
1006
+ "Does it run true to size?"
1007
+ ] },
1008
+ boldFirstButton: true,
1009
+ twoRowsOnMobile: false,
1010
+ buttonBorderRadius: "md"
1011
+ },
1012
+ topSuggestionsBarShoesHasReviews: {
1013
+ widgetConfigId: "topSuggestionsBarShoesHasReviews",
1014
+ contentId: "spiffy-top-suggestion-bar-contents",
1015
+ type: require_types.WidgetType.SuggestionBarV2,
1016
+ metricDisplayLocation: require_models.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1017
+ location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1018
+ variant: "primary",
1019
+ hoverVariant: "secondaryDark",
1020
+ buttonTexts: { default: [
1021
+ "Summarize the reviews",
1022
+ "Is this good for a night out?",
1023
+ "Are these true to size?",
1024
+ "Are these good for casual wear?"
1025
+ ] },
1026
+ boldFirstButton: true,
1027
+ twoRowsOnMobile: false,
1028
+ buttonBorderRadius: "md"
1029
+ },
1030
+ topSuggestionsBarShoesNoReviews: {
1031
+ widgetConfigId: "topSuggestionsBarShoesNoReviews",
1032
+ contentId: "spiffy-top-suggestion-bar-contents",
1033
+ type: require_types.WidgetType.SuggestionBarV2,
1034
+ metricDisplayLocation: require_models.ChatElementDisplayLocation.TOP_REVIEWS_SNIPPET,
1035
+ location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_TOP,
1036
+ variant: "primary",
1037
+ hoverVariant: "secondaryDark",
1038
+ buttonTexts: { default: [
1039
+ "What era inspired these shoes?",
1040
+ "Is this good for a night out?",
1041
+ "Are these true to size?",
1042
+ "Are these good for casual wear?"
1043
+ ] },
1044
+ boldFirstButton: true,
1045
+ twoRowsOnMobile: false,
1046
+ buttonBorderRadius: "md"
1047
+ },
1048
+ searchPromptPLP: {
1049
+ widgetConfigId: "searchPromptPLP",
1050
+ type: require_types.WidgetType.SearchPrompt,
1051
+ variant: "primary",
1052
+ title: "Find exactly what you're looking for...",
1053
+ headerConfig: {
1054
+ title: "Search Assistant",
1055
+ logo: "search-logo.svg",
1056
+ logoHeight: 25,
1057
+ orgShortName: "unique-vintage"
1058
+ },
1059
+ suggestionButtons: {
1060
+ variant: "darkPrimary",
1061
+ hoverVariant: "secondary",
1062
+ buttonTexts: [
1063
+ "Vintage dresses",
1064
+ "Maxi dresses",
1065
+ "Disney outfit",
1066
+ "Barbie collection",
1067
+ "1970s jumpsuit",
1068
+ "One-piece swimsuit",
1069
+ "Cinderella divine dresses"
1070
+ ]
1071
+ },
1072
+ footerConfig: {
1073
+ replyButtonText: "Be as specific as you like...",
1074
+ replyButtonIcon: "ai-search"
1075
+ }
1076
+ },
1077
+ chatPreviewPLP: {
1078
+ widgetConfigId: "chatPreview",
1079
+ type: require_types.WidgetType.ChatPreview,
1080
+ variant: "filled",
1081
+ addSeparators: true,
1082
+ footerConfig: {
1083
+ replyButtonText: "What can I help you find?",
1084
+ replyButtonIcon: "magnifyingGlass"
1085
+ }
1086
+ },
1087
+ chatPreviewPDP: {
1088
+ widgetConfigId: "chatPreviewPDP",
1089
+ type: require_types.WidgetType.ChatPreview,
1090
+ variant: "filled",
1091
+ addSeparators: true
1092
+ },
1093
+ bottomSuggestionsBar: {
1094
+ widgetConfigId: "bottomSuggestionsBar",
1095
+ contentId: "spiffy-bottom-suggestion-bar-contents",
1096
+ type: require_types.WidgetType.SuggestionBarV2,
1097
+ metricDisplayLocation: require_models.ChatElementDisplayLocation.BOTTOM_REVIEWS_SNIPPET,
1098
+ location: require_suggestionBarV2_types.SuggestionBarLocationForMetrics.SUGGESTION_BAR_BOTTOM,
1099
+ variant: "dark",
1100
+ hoverVariant: "secondaryDark",
1101
+ buttonTexts: { default: [
1102
+ "Summarize the reviews",
1103
+ "What retro charm will this piece bring to my wardrobe?",
1104
+ "What occasions is this piece perfect for?",
1105
+ "How do others describe the fit and feel?",
1106
+ "What makes this piece stand out for others?"
1107
+ ] },
1108
+ boldFirstButton: true,
1109
+ twoRowsOnMobile: true,
1110
+ animationSpeed: "none",
1111
+ buttonBorderRadius: "md"
1112
+ }
1113
+ },
1114
+ mountingConfigs: {
1115
+ globalSearchEntryPoint: {
1116
+ mountingConfigId: "globalSearchEntryPoint",
1117
+ containerId: require_divIds.GLOBAL_SEARCH_ENTRYPOINT_ID,
1118
+ testId: require_embedded.GLOBAL_SEARCH_ENTRYPOINT_TESTID,
1119
+ insertionPoint: {
1120
+ selector: ".header__search.header__search--desktop",
1121
+ insertionType: require_models.DOMInsertionType.AFTER
1122
+ },
1123
+ suppressionSelector: ".search-modal__content.search-modal__content-bottom",
1124
+ className: "global-entry-desktop",
1125
+ style: {
1126
+ zIndex: "2147483647",
1127
+ marginRight: "32px",
1128
+ height: "80px"
1129
+ }
1130
+ },
1131
+ globalSearchEntryPointMobile: {
1132
+ mountingConfigId: "globalSearchEntryPoint",
1133
+ containerId: require_divIds.MOBILE_GLOBAL_SEARCH_ENTRYPOINT_ID,
1134
+ testId: require_embedded.GLOBAL_SEARCH_ENTRYPOINT_TESTID,
1135
+ insertionPoint: {
1136
+ selector: "sticky-header.header-wrapper:has(.mobile-search)",
1137
+ insertionType: require_models.DOMInsertionType.AFTER
1138
+ },
1139
+ suppressionSelector: ".mobile-search .search-modal__form",
1140
+ className: "global-entry-mobile",
1141
+ style: {
1142
+ zIndex: "2147483647",
1143
+ marginTop: "8px",
1144
+ marginLeft: "15px",
1145
+ marginRight: "15px"
1146
+ }
1147
+ },
1148
+ chatPreviewPLP: {
1149
+ mountingConfigId: "chatPreviewPLP",
1150
+ containerId: require_divIds.CHAT_PREVIEW_CONTAINER_ID,
1151
+ testId: require_embedded.CHAT_PREVIEW_TESTID,
1152
+ insertionPoint: {
1153
+ selector: ".collection .product-grid",
1154
+ insertionType: require_models.DOMInsertionType.AFTER
1155
+ },
1156
+ gridInsertionType: require_models.GridInsertionType.ROW_2
1157
+ },
1158
+ chatPreviewPDP: {
1159
+ mountingConfigId: "chatPreviewPDP",
1160
+ containerId: require_divIds.CHAT_PREVIEW_CONTAINER_ID,
1161
+ testId: require_embedded.CHAT_PREVIEW_TESTID,
1162
+ insertionPoint: {
1163
+ selector: ".product__accordion",
1164
+ insertionType: require_models.DOMInsertionType.BEFORE
1165
+ },
1166
+ style: {
1167
+ marginTop: "16px",
1168
+ marginBottom: "8px"
1169
+ }
1170
+ },
1171
+ topSuggestionBarPDP: {
1172
+ mountingConfigId: "topSuggestionBarPDP",
1173
+ containerId: require_divIds.TOP_SUGGESTION_BAR_PDP_ID,
1174
+ testId: require_embedded.TOP_SUGGESTION_BAR_TESTID,
1175
+ insertionPoint: {
1176
+ selector: "div:has(> .main_price)",
1177
+ insertionType: require_models.DOMInsertionType.AFTER
1178
+ },
1179
+ style: {
1180
+ marginTop: "16px",
1181
+ marginBottom: "16px"
1182
+ }
1183
+ },
1184
+ bottomSuggestionBarPDP: {
1185
+ mountingConfigId: "bottomSuggestionBarPDP",
1186
+ containerId: require_divIds.BOTTOM_REVIEWS_BAR_ID,
1187
+ testId: require_embedded.BOTTOM_SUGGESTION_BAR_TESTID,
1188
+ insertionPoint: {
1189
+ selector: ".junip-product-review-summary-wrapper + div.junip-separator",
1190
+ insertionType: require_models.DOMInsertionType.ADJACENT_AFTER_END,
1191
+ selectionIndex: 0
1192
+ },
1193
+ style: {
1194
+ marginTop: "16px",
1195
+ marginBottom: "16px"
1196
+ }
1197
+ }
1198
+ }
1199
+ });
1200
+ const uniqueVintageOrgInfo = {
1201
+ shortName: require_types.OrgShortName.UniqueVintage,
1202
+ name: "Unique Vintage",
1203
+ domain: "unique-vintage.com",
1204
+ defaultProductId: "red-cowgirl-print-swing-shirt-dress",
1205
+ alwaysEnabledMerchants: true,
1206
+ orgUIConfig: uniqueVintageOrgUIConfig,
1207
+ orgColors: () => uniqueVintageColors,
1208
+ orgPageConfig: uniqueVintagePageConfig
1209
+ };
1210
+
1211
+ //#endregion
1212
+ exports.uniqueVintageOrgInfo = uniqueVintageOrgInfo;
1213
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlVmludGFnZS1EMGp6Sldsby5janMiLCJuYW1lcyI6WyJ1bmlxdWVWaW50YWdlQ29sb3JzOiBDb2xvck1hcHBpbmciLCJDb2xvck5hbWVzIiwiZGVmYXVsdE9yZ1VJQ29uZmlnIiwiT3JnU2hvcnROYW1lIiwiY29sb3JWYXIiLCJnZXRDZG5Bc3NldFVSTCIsIkN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZSIsIkN1c3RvbWVyU2VydmljZVR5cGUiLCJQYWdlVmFyaWFudFRlc3RUeXBlIiwiQ2F0ZWdvcnlFeHRyYWN0b3JUeXBlIiwiUGFnZVZpc2l0Q2F0ZWdvcnkiLCJGZWF0dXJlR2F0ZXMiLCJXaWRnZXRUeXBlIiwiQ2hhdEVsZW1lbnREaXNwbGF5TG9jYXRpb24iLCJTdWdnZXN0aW9uQmFyTG9jYXRpb25Gb3JNZXRyaWNzIiwiR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lEIiwiR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX1RFU1RJRCIsIkRPTUluc2VydGlvblR5cGUiLCJNT0JJTEVfR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lEIiwiQ0hBVF9QUkVWSUVXX0NPTlRBSU5FUl9JRCIsIkNIQVRfUFJFVklFV19URVNUSUQiLCJHcmlkSW5zZXJ0aW9uVHlwZSIsIlRPUF9TVUdHRVNUSU9OX0JBUl9QRFBfSUQiLCJUT1BfU1VHR0VTVElPTl9CQVJfVEVTVElEIiwiQk9UVE9NX1JFVklFV1NfQkFSX0lEIiwiQk9UVE9NX1NVR0dFU1RJT05fQkFSX1RFU1RJRCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJjaGFudHMvdW5pcXVlVmludGFnZS91bmlxdWVWaW50YWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldENkbkFzc2V0VVJMIH0gZnJvbSBcInNyYy9hcHBsaWNhdGlvbi91dGlscy9jZG5VdGlsc1wiO1xuaW1wb3J0IHsgR3JpZEluc2VydGlvblR5cGUgfSBmcm9tIFwic3JjL21lcmNoYW50cy9ncmlkSW5zZXJ0aW9uXCI7XG5pbXBvcnQgeyBET01JbnNlcnRpb25UeXBlIH0gZnJvbSBcInNyYy9tZXJjaGFudHMvZG9tSW5zZXJ0aW9uXCI7XG5pbXBvcnQgeyBkZWZhdWx0T3JnVUlDb25maWcgfSBmcm9tIFwic3JjL21lcmNoYW50cy9kZWZhdWx0XCI7XG5pbXBvcnQge1xuICBDYXRlZ29yeUV4dHJhY3RvclR5cGUsXG4gIENoYXRQcmV2aWV3V2lkZ2V0Q29uZmlnLFxuICBDb2xvck1hcHBpbmcsXG4gIENvbG9yTmFtZXMsXG4gIGNvbG9yVmFyLFxuICBTZWFyY2hFbnRyeVBvaW50V2lkZ2V0Q29uZmlnLFxuICBPcmdQYWdlQ29uZmlnLFxuICBPcmdVSUNvbmZpZyxcbiAgUGFnZVZhcmlhbnRUZXN0VHlwZSxcbiAgU2VhcmNoUHJvbXB0V2lkZ2V0Q29uZmlnLFxuICBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gIFdpZGdldFR5cGUsXG59IGZyb20gXCJzcmMvY29udGV4dHMvdHlwZXNcIjtcbmltcG9ydCB7XG4gIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZSxcbiAgQ3VzdG9tZXJTZXJ2aWNlVHlwZSxcbn0gZnJvbSBcInNyYy90eXBlcy9jdXN0b21lclNlcnZpY2VcIjtcbmltcG9ydCB7XG4gIENIQVRfUFJFVklFV19URVNUSUQsXG4gIFRPUF9TVUdHRVNUSU9OX0JBUl9URVNUSUQsXG4gIEJPVFRPTV9TVUdHRVNUSU9OX0JBUl9URVNUSUQsXG4gIEdMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9URVNUSUQsXG59IGZyb20gXCJzcmMvY29uZmlnL2xvY2F0b3JzXCI7XG5pbXBvcnQgeyBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbiB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2NoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uXCI7XG5pbXBvcnQge1xuICBDSEFUX1BSRVZJRVdfQ09OVEFJTkVSX0lELFxuICBUT1BfU1VHR0VTVElPTl9CQVJfUERQX0lELFxuICBCT1RUT01fUkVWSUVXU19CQVJfSUQsXG4gIEdMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9JRCxcbiAgTU9CSUxFX0dMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9JRCxcbn0gZnJvbSBcInNyYy9jb25maWcvZGl2SWRzXCI7XG5pbXBvcnQgeyBQYWdlVmlzaXRDYXRlZ29yeSB9IGZyb20gXCJAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnRcIjtcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gXCJzcmMvYXBwbGljYXRpb24vbW9kZWxzL2ZlYXR1cmVHYXRlc1wiO1xuaW1wb3J0IHsgU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcyB9IGZyb20gXCJzcmMvdHlwZXMvc3VnZ2VzdGlvbkJhclYyLXR5cGVzXCI7XG5pbXBvcnQgeyBCYXNpY09yZ0luZm9UeXBlLCBPcmdTaG9ydE5hbWUgfSBmcm9tIFwic3JjL2FwcGxpY2F0aW9uL21vZGVsc1wiO1xuXG5jb25zdCB1bmlxdWVWaW50YWdlQ29sb3JzOiBDb2xvck1hcHBpbmcgPSB7XG4gIFtDb2xvck5hbWVzLlRleHRQcmltYXJ5XTogXCIjMDAwMDAwXCIsXG4gIFtDb2xvck5hbWVzLlRleHRTZWNvbmRhcnldOiBcIiM1OTU5NTlcIixcbiAgW0NvbG9yTmFtZXMuVGV4dEFjY2VudF06IFwiIzFENEE0RlwiLFxuICBbQ29sb3JOYW1lcy5UZXh0TGlua106IFwiIzIyMjIyMlwiLFxuICBbQ29sb3JOYW1lcy5UZXh0TGlnaHRdOiBcIiNGRkZGRkZcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZFByaW1hcnldOiBcIiNGQURERDVcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZFNlY29uZGFyeV06IFwiI0ZGRkRGM1wiLFxuICBbQ29sb3JOYW1lcy5CYWNrZ3JvdW5kU2Vjb25kYXJ5RGFya106IFwiI0VCRTlFMFwiLFxuICBbQ29sb3JOYW1lcy5CYWNrZ3JvdW5kVGVydGlhcnldOiBcIiMxRDRBNEZcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZERhcmtdOiBcIiMyMjIyMjJcIixcbiAgW0NvbG9yTmFtZXMuQmFja2dyb3VuZExpZ2h0XTogXCIjRkZGRkZGXCIsXG4gIFtDb2xvck5hbWVzLkJhY2tncm91bmRTYXR1cmF0ZWRdOiBcIiNGQURERDVcIixcbiAgW0NvbG9yTmFtZXMuQm9yZGVyTGlnaHRdOiBcIiNFN0U3RTdcIixcbiAgW0NvbG9yTmFtZXMuQm9yZGVyTWVkaXVtXTogXCIjQzJDNEM4XCIsXG4gIFtDb2xvck5hbWVzLkJvcmRlckRhcmtdOiBcIiM1OTU5NTlcIixcbiAgW0NvbG9yTmFtZXMuQm9yZGVyT3V0bGluZV06IFwiIzIyMjIyMlwiLFxuICBbQ29sb3JOYW1lcy5BY2NlbnRQcmltYXJ5XTogXCIjRkFEREQ1XCIsXG4gIFtDb2xvck5hbWVzLkFjY2VudFNlY29uZGFyeV06IFwiI0MwRTdENlwiLFxufTtcblxuY29uc3QgdW5pcXVlVmludGFnZU9yZ1VJQ29uZmlnID0gKCk6IE9yZ1VJQ29uZmlnID0+IHtcbiAgY29uc3QgZGVmYXVsdFVuaXF1ZVZpbnRhZ2VPcmdDb25maWcgPSBkZWZhdWx0T3JnVUlDb25maWcoXG4gICAgT3JnU2hvcnROYW1lLlVuaXF1ZVZpbnRhZ2VcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIC4uLmRlZmF1bHRVbmlxdWVWaW50YWdlT3JnQ29uZmlnLFxuICAgIGNoYXRNZXNzYWdlQ29uZmlnOiB7XG4gICAgICAuLi5kZWZhdWx0VW5pcXVlVmludGFnZU9yZ0NvbmZpZy5jaGF0TWVzc2FnZUNvbmZpZyEsXG4gICAgICBhc3Npc3RhbnRDaGF0VGl0bGU6IFwiVW5pcXVlIFZpbnRhZ2UgQUlcIixcbiAgICAgIHZhcmlhbnQ6IFwic3RhbmRhcmRcIixcbiAgICB9LFxuICAgIGNoYXRIZWFkZXI6IHtcbiAgICAgIC4uLmRlZmF1bHRVbmlxdWVWaW50YWdlT3JnQ29uZmlnLmNoYXRIZWFkZXIsXG4gICAgICBjaGV2cm9uQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQmFja2dyb3VuZERhcmspLFxuICAgICAgZXhwYW5kZWRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kUHJpbWFyeSksXG4gICAgICBpbWFnZVNyYzogZ2V0Q2RuQXNzZXRVUkwoXG4gICAgICAgIFwidW5pcXVlLXZpbnRhZ2UtbG9uZy1sb2dvLnBuZ1wiLFxuICAgICAgICBPcmdTaG9ydE5hbWUuVW5pcXVlVmludGFnZVxuICAgICAgKSxcbiAgICAgIC8vIGljb246IHVuaXF1ZVZpbnRhZ2VMb2dvLFxuICAgIH0sXG4gICAgY2hhdFByZXZpZXdDb25maWc6IHtcbiAgICAgIC4uLmRlZmF1bHRVbmlxdWVWaW50YWdlT3JnQ29uZmlnLmNoYXRQcmV2aWV3Q29uZmlnISxcbiAgICAgIHZhcmlhbnQ6IFwiZmlsbGVkXCIsXG4gICAgICBmaWxsZWRCYWNrZ3JvdW5kQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQWNjZW50U2Vjb25kYXJ5KSxcbiAgICAgIGljb25GaWxsQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQWNjZW50UHJpbWFyeSksXG4gICAgICBidXR0b25UZXh0Q29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuVGV4dExpZ2h0KSxcbiAgICAgIGJ1dHRvbkJhY2tncm91bmRDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kRGFyayksXG4gICAgICBidXR0b25UZXh0SG92ZXJDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5UZXh0UHJpbWFyeSksXG4gICAgICBidXR0b25CYWNrZ3JvdW5kSG92ZXJDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kU2Vjb25kYXJ5RGFyayksXG4gICAgICB0b3BNYXJnaW46IDEwLFxuICAgICAgY29waWVzOiB7XG4gICAgICAgIHBscDogW1xuICAgICAgICAgIFwiYSBjbGFzc2ljIHN3aW1zdWl0IHRoYXQncyBwZXJmZWN0IGZvciBwb29sc2lkZSBnbGFtb3VyP1wiLFxuICAgICAgICAgIFwiYSBza2lydCB0aGF0IHR3aXJscyBsaWtlIGl0J3Mgc3RyYWlnaHQgb3V0IG9mIHRoZSAnNTBzP1wiLFxuICAgICAgICAgIFwiYSBoYW5kYmFnIGluc3BpcmVkIGJ5IGljb25pYyBlcmFzP1wiLFxuICAgICAgICAgIFwiYSBkcmVzcyB0aGF0IHR1cm5zIGV2ZXJ5IGhlYWQgaW4gdGhlIHJvb20/XCIsXG4gICAgICAgIF0sXG4gICAgICAgIHBkcDogW1xuICAgICAgICAgIFwidGhlIHZpbnRhZ2UtaW5zcGlyZWQgZGV0YWlscyB0aGF0IG1ha2UgdGhpcyBwaWVjZSB0aW1lbGVzcz9cIixcbiAgICAgICAgICBcIndoYXQgbWFrZXMgdGhpcyBzdHlsZSBhIHRydWUgdGhyb3diYWNrIHRyZWFzdXJlP1wiLFxuICAgICAgICAgIFwid2hhdCBsdXhlIG1hdGVyaWFscyB3aWxsIGVsZXZhdGUgeW91ciBsb29rP1wiLFxuICAgICAgICAgIFwidGhlIHNpemUgdGhhdCdzIHJpZ2h0IGZvciB5b3U/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgc3RhdGljU3VnZ2VzdGlvbkNvcGllczoge1xuICAgICAgICBwbHA6IFtcbiAgICAgICAgICBcIldoYXQgY2FzdWFsIHZpbnRhZ2UgcGllY2VzIHdvcmsgZm9yIGV2ZXJ5ZGF5IHdlYXI/XCIsXG4gICAgICAgICAgXCJXaGF0IHBpZWNlcyBjYW4gSSBtaXggYW5kIG1hdGNoIGZvciBhIHZpbnRhZ2UtaW5zcGlyZWQgd2FyZHJvYmU/XCIsXG4gICAgICAgICAgXCJXaGF0IHNob2VzIGFyZSBwZXJmZWN0IGZvciBkYXRlIG5pZ2h0cyBhbmQgc3BlY2lhbCBvY2Nhc2lvbnM/XCIsXG4gICAgICAgICAgXCJXaGF0IGFjY2Vzc29yaWVzIGNhbiBJIGFkZCB0byBlbGV2YXRlIG15IHZpbnRhZ2UgbG9vaz9cIixcbiAgICAgICAgXSxcbiAgICAgICAgcGRwOiBbXG4gICAgICAgICAgXCJXaGF0IHNpemUgd2lsbCBnaXZlIG1lIHRoZSByaWdodCBmaXQ/XCIsXG4gICAgICAgICAgXCJIb3cgZG8gSSBrZWVwIHRoaXMgcGllY2UgaW4gcGVyZmVjdCBjb25kaXRpb24gZm9yIHllYXJzIHRvIGNvbWU/XCIsXG4gICAgICAgICAgXCJXaGF0IGZlYXR1cmVzIG1ha2VzIHRoaXMgcGllY2UgdGhlIGlkZWFsIHN0YXRlbWVudCBmb3IgYSB2aW50YWdlIGxvdmVyP1wiLFxuICAgICAgICAgIFwiSG93IGRvZXMgdGhpcyBwaWVjZSBlbWJvZHkgdGhlIHNwaXJpdCBvZiBwYXN0IGVyYXMgd2l0aCBtb2Rlcm4gc3R5bGU/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgaGVhZGVyQ29uZmlnOiB7XG4gICAgICAgIHRpdGxlOiBcIlNob3BwaW5nIEFzc2lzdGFudFwiLFxuICAgICAgICBzcGFya2xlc0NvbG9yOiB1bmRlZmluZWQsXG4gICAgICAgIGltYWdlSGVpZ2h0OiAyNCxcbiAgICAgICAgaW1hZ2VTcmM6IGdldENkbkFzc2V0VVJMKFxuICAgICAgICAgIFwidW5pcXVlLXZpbnRhZ2UtbG9uZy1sb2dvLnBuZ1wiLFxuICAgICAgICAgIE9yZ1Nob3J0TmFtZS5VbmlxdWVWaW50YWdlXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgZm9vdGVyQ29uZmlnOiB7XG4gICAgICAgIC4uLmRlZmF1bHRVbmlxdWVWaW50YWdlT3JnQ29uZmlnLmNoYXRQcmV2aWV3Q29uZmlnIS5mb290ZXJDb25maWcsXG4gICAgICAgIHJlcGx5QnV0dG9uVGV4dDogXCJXaGF0IGNhbiBJIGhlbHAgeW91IGZpbmQ/XCIsXG4gICAgICAgIHJlcGx5QnV0dG9uSWNvbjogXCJtYWduaWZ5aW5nR2xhc3NcIixcbiAgICAgICAgaGFzRmFkZTogZmFsc2UsXG4gICAgICB9LFxuICAgIH0sXG4gICAgZmxvYXRpbmdFbnRyeXBvaW50Q29uZmlnOiB7XG4gICAgICAuLi5kZWZhdWx0VW5pcXVlVmludGFnZU9yZ0NvbmZpZy5mbG9hdGluZ0VudHJ5cG9pbnRDb25maWchLFxuICAgICAgc2hvd09wdGlvbjogXCJhbHdheXNcIixcbiAgICAgIGV4cGFuZGVkQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQm9yZGVyT3V0bGluZSksXG4gICAgICBpY29uU3Ryb2tlQ29sb3I6IGNvbG9yVmFyKENvbG9yTmFtZXMuQmFja2dyb3VuZERhcmspLFxuICAgICAgaWNvbkZpbGxDb2xvcjogY29sb3JWYXIoQ29sb3JOYW1lcy5CYWNrZ3JvdW5kRGFyayksXG4gICAgICBleHBhbnNpb25UZXh0OiB7XG4gICAgICAgIHBkcDogXCJXaWxsIHRoaXMgY29tcGxldGUgeW91ciByZXRybyB3YXJkcm9iZT9cIixcbiAgICAgICAgcGxwOiBcIldoYXQgdmludGFnZSB0cmVhc3VyZSB3aWxsIHlvdSBmaW5kIHRvZGF5P1wiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHByb2R1Y3RDYXJkQ29uZmlnOiB7XG4gICAgICAuLi5kZWZhdWx0VW5pcXVlVmludGFnZU9yZ0NvbmZpZy5wcm9kdWN0Q2FyZENvbmZpZyEsXG4gICAgfSxcbiAgICBwcm9kdWN0UmV2aWV3Q29uZmlnOiB7XG4gICAgICAuLi5kZWZhdWx0VW5pcXVlVmludGFnZU9yZ0NvbmZpZy5wcm9kdWN0UmV2aWV3Q29uZmlnISxcbiAgICAgIGNvbG9yVmFyaWFudDogXCJicmFuZFwiLFxuICAgICAgaW5jZW50aXZpemVkUmV2aWV3RmxhZzogZmFsc2UsXG4gICAgfSxcbiAgICB3ZWxjb21lU2VjdGlvbkNvbmZpZzoge1xuICAgICAgLi4uZGVmYXVsdFVuaXF1ZVZpbnRhZ2VPcmdDb25maWcud2VsY29tZVNlY3Rpb25Db25maWchLFxuICAgICAgdGl0bGU6IFwiV2VsY29tZSB0byBVbmlxdWUgVmludGFnZSBBSSFcIixcbiAgICAgIGNvbG9yVmFyaWFudDogXCJicmFuZFwiLFxuICAgICAgc3VidGl0bGU6XG4gICAgICAgIFwiSGVsbG8sIGRhcmxpbmchIEknbSBoZXJlIHRvIGhlbHAgeW91IGZpbmQgZXZlcnl0aGluZyB5b3UgbmVlZCB0byBjaGFubmVsIHlvdXIgdW5pcXVlLCB2aW50YWdlLWluc3BpcmVkIHN0eWxlLiBXaGV0aGVyIHlvdSdyZSBzZWFyY2hpbmcgZm9yIHRoZSBwZXJmZWN0IG91dGZpdCwgbmVlZCBzaXppbmcgYWR2aWNlLCBvciBqdXN0IHdhbnQgdG8gZXhwbG9yZSBmYWJ1bG91cyBhY2Nlc3NvcmllcywgbGV0J3MgbWFrZSB5b3VyIHNob3BwaW5nIGV4cGVyaWVuY2UgYXMgZ2xhbW9yb3VzIGFzIHlvdSBhcmUhXCIsXG4gICAgfSxcbiAgICBjdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbjoge1xuICAgICAgaW50ZWdyYXRpb25Nb2RlOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGUuc2ltcGxlLFxuICAgICAgcHJvdmlkZXI6IEN1c3RvbWVyU2VydmljZVR5cGUuem93aWUsXG4gICAgfSxcbiAgICBjb252ZXJzYXRpb25hbFNlYXJjaDoge1xuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIHJlcGx5SW5wdXQ6IHtcbiAgICAgICAgc2VuZEljb246IFwic2VhcmNoXCIsXG4gICAgICAgIHBsYWNlaG9sZGVyOiBcIldoYXQgY2FuIEkgaGVscCB5b3UgZmluZD9cIixcbiAgICAgIH0sXG4gICAgICAvLyBUT0RPOiBNaWdyYXRlIGl0IHRvIHRoZSBuZXcgbW91bnQgcG9pbnQgc3RydWN0dXJlLlxuICAgICAgZW50cnlwb2ludENvbnRhaW5lcjogXCJpZHxjaGF0LXNlYXJjaC1lbnRyeXBvaW50XCIsXG4gICAgICBwcm9kdWN0R3JpZENvbnRhaW5lcjogXCJpZHxjaGF0LXNlYXJjaC1wcm9kdWN0LXBhZ2VcIixcbiAgICAgIHNlYXJjaENvbnRlbnQ6IFwicXVlcnl8LnNzX19hdXRvY29tcGxldGUtLXRhcmdldFwiLFxuICAgICAgcGFnZUNvbnRlbnQ6IFwiaWR8TWFpbkNvbnRlbnRcIixcbiAgICAgIGdlbmVyYWxTZWFyY2hCdG46IFwicXVlcnl8YnV0dG9uLm1vZGFsX19jbG9zZS1idXR0b25cIixcbiAgICB9LFxuICAgIHNlYXJjaENvbmZpZzoge1xuICAgICAgZW5hYmxlR2xvYmFsU2VhcmNoOiB0cnVlLFxuICAgICAgc2VhcmNoRmlsdGVyQ29uZmlnOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmaWx0ZXJJZDogXCJjb2xvclwiLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBcIkNvbG9yXCIsXG4gICAgICAgICAgYXR0cmlidXRlOiBcImNvbG9yc1wiLFxuICAgICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgICAgIHNvcnRpbmc6IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYWxwaGFiZXRpY1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWx0ZXJJZDogXCJzaXplXCIsXG4gICAgICAgICAgZGlzcGxheU5hbWU6IFwiU2l6ZVwiLFxuICAgICAgICAgIHR5cGU6IFwiZHluYW1pY1wiLFxuICAgICAgICAgIGF0dHJpYnV0ZTogXCJzaXplc1wiLFxuICAgICAgICAgIHNvcnRpbmc6IHtcbiAgICAgICAgICAgIHR5cGU6IFwiY3VzdG9tXCIsXG4gICAgICAgICAgICBtYXA6IHtcbiAgICAgICAgICAgICAgXCJPbmUgU2l6ZVwiOiAxMCxcbiAgICAgICAgICAgICAgXCJYWFMgLyAwXCI6IDIwLFxuICAgICAgICAgICAgICBcIlhTIC8gMlwiOiAzMCxcbiAgICAgICAgICAgICAgXCJTIC8gNFwiOiA0MCxcbiAgICAgICAgICAgICAgXCJNIC8gNiAtIDhcIjogNTAsXG4gICAgICAgICAgICAgIFwiTCAvIDEwIC0gMTJcIjogNjAsXG4gICAgICAgICAgICAgIFwiWEwgLyAxNFwiOiA3MCxcbiAgICAgICAgICAgICAgXCIxWCAvIDE2XCI6IDgwLFxuICAgICAgICAgICAgICBcIjJYIC8gMThcIjogOTAsXG4gICAgICAgICAgICAgIFwiM1ggLyAyMFwiOiAxMDAsXG4gICAgICAgICAgICAgIFwiNFggLyAyMiAtIDI0XCI6IDExMCxcbiAgICAgICAgICAgICAgXCI1WCAvIDI2XCI6IDEyMCxcbiAgICAgICAgICAgICAgXCI2WFwiOiAxMzAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBmaWx0ZXJJZDogXCJwcmljZVwiLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBcIlByaWNlXCIsXG4gICAgICAgICAgdHlwZTogXCJwcmljZVwiLFxuICAgICAgICAgIGJ1Y2tldFNpemU6IDUwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuXG4gICAgbWVyY2hhbnRPdmVycmlkZUNzczogYFxuICAgICAgI3NwaWZmeS1tb2RhbC1jb250YWluZXIge1xuICAgICAgICB6LWluZGV4OiAyMTQ3NDgzMDAxICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LXN0YXItcmF0aW5nLXN0YXIge1xuICAgICAgICBmaWxsOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtYWNjZW50KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1wcm9kdWN0LXJldmlldy1oZWFkZXItcmV2aWV3ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8qIFdlbGNvbWVTZWN0aW9uIGxpZ2h0IHRleHQgb3ZlcnJpZGUgKi9cbiAgICAgIC5zcGlmZnktd2VsY29tZS1zZWN0aW9uLW1lc3NhZ2UtdGl0bGUge1xuICAgICAgICBjb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LWxpZ2h0KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS13ZWxjb21lLXNlY3Rpb24tbWVzc2FnZS1zdWJ0aXRsZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtbGlnaHQpICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgICNzcGlmZnktYWktY2hhdC1wcmV2aWV3IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAjY2hhdC1zZWFyY2gtcHJvZHVjdC1wYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAjY2hhdC1zZWFyY2gtbmF2LWVudHJ5cG9pbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG4gICAgICAjc3BpZmZ5LWFpLWNoYXQtcHJldmlldy5pcy1wZHAge1xuICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgICBib3JkZXItdG9wOiBzb2xpZCAxcHggdmFyKC0tc3BpZmZ5LWNvbG9ycy1ib3JkZXItbGlnaHQpO1xuICAgICAgfVxuICAgICAgI3NwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItaWQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgICNzcGlmZnktYWktY2hhdC1wcmV2aWV3IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAjc3BpZmZ5LWJvdHRvbS1yZXZpZXdzLWJhci1pZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1jaGF0LXNlYXJjaC1lbnRyeXBvaW50LWNvbnRhaW5lciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNwaWZmeS1jb2xvcnMtYmFja2dyb3VuZC1wcmltYXJ5KSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtYmFja2dyb3VuZC1kYXJrKSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1jaGF0LXNlYXJjaC1lbnRyeXBvaW50LWNvbnRhaW5lciAuc3BpZmZ5LWJ1dHRvbi1iYXNlLWJ1dHRvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1jaGF0LXNlYXJjaC1lbnRyeXBvaW50LXRleHQgcCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnQm9va21hbmlhLVNlbWlCb2xkJyAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgICNzcGlmZnktYWktY2hhdC1wcmV2aWV3LWNvbnRlbnRzIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgICAgICAtLWNoYWtyYS1mb250cy1oZWFkaW5nOiAnQm9va21hbmlhLVJlZ3VsYXInLCAnUG9wcGlucycsIHNhbnMtc2VyaWY7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LWhlYWRsaW5lIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdCb29rbWFuaWEtUmVndWxhcicsICdQb3BwaW5zJywgc2Fucy1zZXJpZjtcbiAgICAgIH1cbiAgICAgICNzcGlmZnktbW9kZWwtY29udGFpbmVyIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tY2hha3JhLWZvbnRzLWhlYWRpbmcpO1xuICAgICAgfVxuICAgICAgI3NwaWZmeS1tb2RlbC1jb250YWluZXIgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgICAgIC0tY2hha3JhLWZvbnRzLWhlYWRpbmc6ICdCb29rbWFuaWEtUmVndWxhcicsICdQb3BwaW5zJywgc2Fucy1zZXJpZjtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktc3VnZ2VzdGlvbi1idXR0b24tcXVlc3Rpb24tY2xhc3Mge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zcGlmZnktY29sb3JzLWJvcmRlci1saWdodCk7XG4gICAgICB9XG4gICAgICAuc3BpZmZ5LXRhZy1waWxsLXRleHQge1xuICAgICAgICBjb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LWxpZ2h0KSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgI3JldHVybi10by1yZXN1bHRzLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLnNwaWZmeS1iYWNrLXRvLXJlc3VsdHMtYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuICAgICAgICAjY2hhdC1zZWFyY2gtZW50cnlwb2ludCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgI2NoYXQtc2VhcmNoLWVudHJ5cG9pbnQtbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIC5zc19fYXV0b2NvbXBsZXRlLS1hY3RpdmUgI2NoYXQtc2VhcmNoLWVudHJ5cG9pbnQtbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktcHJvZHVjdC1jYXJkLXRpdGxlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWNoYWtyYS1mb250cy1oZWFkaW5nKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1saW5rKTtcbiAgICAgIH1cbiAgICAgIC5zcGlmZnktcHJvZHVjdC1jYXJkLXRleHQtY29sb3Ige1xuICAgICAgICBjb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LXNlY29uZGFyeSk7XG4gICAgICB9XG5cbiAgICAgIC5zcGlmZnktY2hhdC1oZWFkZXItY2xvc2UtYnV0dG9uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtYmFja2dyb3VuZC1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3BpZmZ5LWNvbG9ycy1iYWNrZ3JvdW5kLXRlcnRpYXJ5KTtcbiAgICAgIH1cblxuICAgICAgI3NwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHMgLnNwaWZmeS1zdWdnZXN0aW9uLWJ1dHRvbi1xdWVzdGlvbi1jbGFzcyBzcGFuIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNwaWZmeS1jb2xvcnMtdGV4dC1hY2NlbnQpICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgICNzcGlmZnktdG9wLXN1Z2dlc3Rpb24tYmFyLWNvbnRlbnRzIC5zcGlmZnktc3VnZ2VzdGlvbi1idXR0b24tcXVlc3Rpb24tY2xhc3Mgc3ZnIHtcbiAgICAgICAgZmlsbDogdmFyKC0tc3BpZmZ5LWNvbG9ycy10ZXh0LWFjY2VudCkgIWltcG9ydGFudDtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtYWNjZW50KSAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAjc3BpZmZ5LWJvdHRvbS1zdWdnZXN0aW9uLWJhci1jb250ZW50cyAuc3BpZmZ5LXN1Z2dlc3Rpb24tYnV0dG9uLXF1ZXN0aW9uLWNsYXNzIHN2ZyB7XG4gICAgICAgIGZpbGw6IHZhcigtLXNwaWZmeS1jb2xvcnMtYWNjZW50LXByaW1hcnkpICFpbXBvcnRhbnQ7XG4gICAgICAgIHN0cm9rZTogdmFyKC0tc3BpZmZ5LWNvbG9ycy1hY2NlbnQtcHJpbWFyeSkgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgI3NwaWZmeS1ib3R0b20tc3VnZ2VzdGlvbi1iYXItY29udGVudHMgLnNwaWZmeS1zdWdnZXN0aW9uLWJ1dHRvbi1xdWVzdGlvbi1jbGFzczpob3ZlciBzdmcge1xuICAgICAgICBmaWxsOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtbGluaykgIWltcG9ydGFudDtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtbGluaykgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgI3NwaWZmeS1haS1nbG9iYWwtc2VhcmNoLWVudHJ5cG9pbnQuZ2xvYmFsLWVudHJ5LWRlc2t0b3Age1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgICNzcGlmZnktYWktZ2xvYmFsLXNlYXJjaC1lbnRyeXBvaW50LW1vYmlsZS5nbG9iYWwtZW50cnktbW9iaWxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gICAgICAgICNzcGlmZnktYWktZ2xvYmFsLXNlYXJjaC1lbnRyeXBvaW50Lmdsb2JhbC1lbnRyeS1kZXNrdG9wIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgICNzcGlmZnktYWktZ2xvYmFsLXNlYXJjaC1lbnRyeXBvaW50LW1vYmlsZS5nbG9iYWwtZW50cnktbW9iaWxlIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfSBcblxuICAgICAgI3NwaWZmeS1haS1nbG9iYWwtc2VhcmNoLWVudHJ5cG9pbnQuZ2xvYmFsLWVudHJ5LWRlc2t0b3AgLnNwaWZmeS1nbG9iYWwtc2VhcmNoLWlucHV0LWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogODBweDtcbiAgICAgIH1cblxuICAgICAgLnNwaWZmeS1nbG9iYWwtc2VhcmNoLWlucHV0LWNvbnRhaW5lciAuc3BpZmZ5LWdsb2JhbC1zZWFyY2gtdGV4dCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlBvbHlcIiwgc2VyaWY7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zcGlmZnktY29sb3JzLXRleHQtbGluaykgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDgwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgICB9XG5cbiAgICAgIC5zcGlmZnktc2VhcmNoLW92ZXJsYXktY29udGVudCAuc3BpZmZ5LWhlYWRsaW5lIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiUG9seVwiLCBzZXJpZjtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zcGlmZnktc2VhcmNoLW92ZXJsYXktY29udGVudCAuc3BpZmZ5LWJvZHktdGV4dCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlBvbHlcIiwgc2VyaWY7XG4gICAgICB9XG5cbiAgICAgIC5zcGlmZnktZ2xvYmFsLXNlYXJjaC1pbnB1dC1jb250YWluZXIgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICB9XG4gICAgYCxcbiAgfTtcbn07XG5cbmNvbnN0IHVuaXF1ZVZpbnRhZ2VQYWdlQ29uZmlnID0gKCk6IE9yZ1BhZ2VDb25maWcgPT4gKHtcbiAgcGFnZVZhcmlhbnRzOiBbXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInNlYXJjaC1yZXN1bHRzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwYWdlX3Zpc2l0XCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAgeyB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UExQIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5RdWVyeVBhcmFtLFxuICAgICAgICAgIHF1ZXJ5UGFyYW06IFwicVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuUGFnZUNhdGVnb3J5LFxuICAgICAgICAgIGV4dHJhY3Rvcjoge1xuICAgICAgICAgICAgdHlwZTogQ2F0ZWdvcnlFeHRyYWN0b3JUeXBlLlZpc2l0Q2F0ZWdvcnlEZWZhdWx0LFxuICAgICAgICAgICAgdmFsdWU6IFBhZ2VWaXNpdENhdGVnb3J5Lk90aGVyLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBscC1nbG9iYWwtc2VhcmNoXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwbHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQTFAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkZlYXR1cmVHYXRlLFxuICAgICAgICAgIGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMuSXNHbG9iYWxTZWFyY2hFbmFibGVkLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHBscElkRXh0cmFjdG9yOiBcInNob3BpZnktY29sbGVjdGlvbi1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZVwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQTFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1BMUFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwbHAtc2VhcmNoXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwbHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGUsXG4gICAgICAgICAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcy5Jc05ld0ZlYXR1cmVFbmFibGVkLFxuICAgICAgICB9LFxuICAgICAgICB7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQTFAgfSxcbiAgICAgIF0sXG4gICAgICBwbHBJZEV4dHJhY3RvcjogXCJzaG9waWZ5LWNvbGxlY3Rpb24taWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UExQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwic2VhcmNoUHJvbXB0UExQXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBscFwiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGxwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFt7IHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQTFAgfV0sXG4gICAgICBwbHBJZEV4dHJhY3RvcjogXCJzaG9waWZ5LWNvbGxlY3Rpb24taWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UExQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQTFBcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwicGRwRHJlc3Nlc0hhc1Jldmlld3NHbG9iYWxTZWFyY2hcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBkcFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UERQLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uLFxuICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXCJkcmVzc2VzXCJdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSGFzUmV2aWV3cyxcbiAgICAgICAgICByZXZpZXdNaW5pbXVtOiA0LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGUsXG4gICAgICAgICAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcy5Jc0dsb2JhbFNlYXJjaEVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInNob3BpZnktcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZVwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyRHJlc3Nlc0hhc1Jldmlld3NcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwicGRwRHJlc3Nlc05vUmV2aWV3c0dsb2JhbFNlYXJjaFwiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQRFAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnM6IFtcImRyZXNzZXNcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5GZWF0dXJlR2F0ZSxcbiAgICAgICAgICBmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzLklzR2xvYmFsU2VhcmNoRW5hYmxlZCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwic2hvcGlmeS1wcm9kdWN0LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50XCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJEcmVzc2VzTm9SZXZpZXdzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBkcFN3aW13ZWFySGFzUmV2aWV3c0dsb2JhbFNlYXJjaFwiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQRFAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnM6IFtcInN3aW0taHRtbFwiXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3MsXG4gICAgICAgICAgcmV2aWV3TWluaW11bTogNCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkZlYXR1cmVHYXRlLFxuICAgICAgICAgIGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMuSXNHbG9iYWxTZWFyY2hFbmFibGVkLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJzaG9waWZ5LXByb2R1Y3QtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclN3aW13ZWFySGFzUmV2aWV3c1wiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwZHBTd2ltd2Vhck5vUmV2aWV3c0dsb2JhbFNlYXJjaFwiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQRFAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnM6IFtcInN3aW0taHRtbFwiXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkZlYXR1cmVHYXRlLFxuICAgICAgICAgIGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMuSXNHbG9iYWxTZWFyY2hFbmFibGVkLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJzaG9waWZ5LXByb2R1Y3QtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50XCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclN3aW13ZWFyTm9SZXZpZXdzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBkcFNob2VzSGFzUmV2aWV3c0dsb2JhbFNlYXJjaFwiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQRFAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnM6IFtcInNob2VzXCJdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSGFzUmV2aWV3cyxcbiAgICAgICAgICByZXZpZXdNaW5pbXVtOiA0LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGUsXG4gICAgICAgICAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcy5Jc0dsb2JhbFNlYXJjaEVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInNob3BpZnktcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZVwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyU2hvZXNIYXNSZXZpZXdzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBkcFNob2VzTm9SZXZpZXdzR2xvYmFsU2VhcmNoXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBEUCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1wic2hvZXNcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5GZWF0dXJlR2F0ZSxcbiAgICAgICAgICBmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzLklzR2xvYmFsU2VhcmNoRW5hYmxlZCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwic2hvcGlmeS1wcm9kdWN0LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50XCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJTaG9lc05vUmV2aWV3c1wiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwZHBHbG9iYWxTZWFyY2hcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBkcFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHsgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBEUCB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuRmVhdHVyZUdhdGUsXG4gICAgICAgICAgZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcy5Jc0dsb2JhbFNlYXJjaEVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInNob3BpZnktcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludE1vYmlsZVwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRNb2JpbGVcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBkcERyZXNzZXNIYXNSZXZpZXdzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBEUCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1wiZHJlc3Nlc1wiXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3MsXG4gICAgICAgICAgcmV2aWV3TWluaW11bTogNCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwic2hvcGlmeS1wcm9kdWN0LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJEcmVzc2VzSGFzUmV2aWV3c1wiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHZhcmlhbnRJZDogXCJwZHBEcmVzc2VzTm9SZXZpZXdzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBEUCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1wiZHJlc3Nlc1wiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwic2hvcGlmeS1wcm9kdWN0LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJEcmVzc2VzTm9SZXZpZXdzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBkcFN3aW13ZWFySGFzUmV2aWV3c1wiLFxuICAgICAgdmFyaWFudFR5cGU6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VGVzdHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLlNob3BpZnlQRFAsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5JbkNvbGxlY3Rpb24sXG4gICAgICAgICAgY29sbGVjdGlvbnM6IFtcInN3aW0taHRtbFwiXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkhhc1Jldmlld3MsXG4gICAgICAgICAgcmV2aWV3TWluaW11bTogNCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcm9kdWN0SWRFeHRyYWN0b3I6IFwic2hvcGlmeS1wcm9kdWN0LWlkXCIsXG4gICAgICB3aWRnZXRNb3VudGluZzogW1xuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJTd2ltd2Vhckhhc1Jldmlld3NcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwicGRwU3dpbXdlYXJOb1Jldmlld3NcIixcbiAgICAgIHZhcmlhbnRUeXBlOiBcInBkcFwiLFxuICAgICAgdmFyaWFudFRlc3RzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5TaG9waWZ5UERQLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuSW5Db2xsZWN0aW9uLFxuICAgICAgICAgIGNvbGxlY3Rpb25zOiBbXCJzd2ltLWh0bWxcIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInNob3BpZnktcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyU3dpbXdlYXJOb1Jldmlld3NcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwicGRwU2hvZXNIYXNSZXZpZXdzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBEUCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1wic2hvZXNcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0VHlwZTogUGFnZVZhcmlhbnRUZXN0VHlwZS5IYXNSZXZpZXdzLFxuICAgICAgICAgIHJldmlld01pbmltdW06IDQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInNob3BpZnktcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyU2hvZXNIYXNSZXZpZXdzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFyaWFudElkOiBcInBkcFNob2VzTm9SZXZpZXdzXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW1xuICAgICAgICB7XG4gICAgICAgICAgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBEUCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3RUeXBlOiBQYWdlVmFyaWFudFRlc3RUeXBlLkluQ29sbGVjdGlvbixcbiAgICAgICAgICBjb2xsZWN0aW9uczogW1wic2hvZXNcIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcHJvZHVjdElkRXh0cmFjdG9yOiBcInNob3BpZnktcHJvZHVjdC1pZFwiLFxuICAgICAgd2lkZ2V0TW91bnRpbmc6IFtcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbkJhclBEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyU2hvZXNOb1Jldmlld3NcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiY2hhdFByZXZpZXdQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiYm90dG9tU3VnZ2VzdGlvbnNCYXJcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YXJpYW50SWQ6IFwicGRwXCIsXG4gICAgICB2YXJpYW50VHlwZTogXCJwZHBcIixcbiAgICAgIHZhcmlhbnRUZXN0czogW3sgdGVzdFR5cGU6IFBhZ2VWYXJpYW50VGVzdFR5cGUuU2hvcGlmeVBEUCB9XSxcbiAgICAgIHByb2R1Y3RJZEV4dHJhY3RvcjogXCJzaG9waWZ5LXByb2R1Y3QtaWRcIixcbiAgICAgIHdpZGdldE1vdW50aW5nOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgICAgICB3aWRnZXRDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uc0JhclwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxuICB3aWRnZXRDb25maWdzOiB7XG4gICAgZ2xvYmFsU2VhcmNoRW50cnlQb2ludDoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFwiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TZWFyY2haZXJvU3RhdGVFbnRyeVBvaW50LFxuICAgICAgc2VhcmNoWmVyb1N0YXRlVmFyaWFudDogXCJiYWNrZ3JvdW5kVGVydGlhcnlcIixcbiAgICAgIHNlYXJjaElucHV0VmFyaWFudDogXCJzdGFuZGFyZFwiLFxuICAgICAgc3VnZ2VzdGlvbkJ1dHRvbkNvbmZpZzoge1xuICAgICAgICB2YXJpYW50OiBcImRhcmtBY2NlbnRcIixcbiAgICAgICAgaG92ZXJWYXJpYW50OiBcInNlY29uZGFyeUFjY2VudFwiLFxuICAgICAgfSxcbiAgICAgIGxheW91dDogXCJpY29uXCIsXG4gICAgICBjb21wYWN0TGFiZWw6IFwiU2VhcmNoXCIsXG4gICAgICBzZWFyY2hCb3hQbGFjZWhvbGRlcjogJ1RyeSBcIkNvbG9yZnVsIG1heGkgZm9yIGEgc3VtbWVyIHdlZGRpbmdcIicsXG4gICAgICBpbml0aWFsU3VnZ2VzdGlvbnM6IFtcbiAgICAgICAgXCJWaW50YWdlIGRyZXNzZXNcIixcbiAgICAgICAgXCJNYXhpIGRyZXNzZXNcIixcbiAgICAgICAgXCJEaXNuZXkgb3V0Zml0XCIsXG4gICAgICAgIFwiQmFyYmllIGNvbGxlY3Rpb25cIixcbiAgICAgICAgXCIxOTcwcyBqdW1wc3VpdFwiLFxuICAgICAgICBcIk9uZS1waWVjZSBzd2ltc3VpdFwiLFxuICAgICAgICBcIkNpbmRlcmVsbGEgZGl2aW5lIGRyZXNzZXNcIixcbiAgICAgIF0sXG4gICAgfSBzYXRpc2ZpZXMgU2VhcmNoRW50cnlQb2ludFdpZGdldENvbmZpZyxcbiAgICBnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlXCIsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlNlYXJjaFplcm9TdGF0ZUVudHJ5UG9pbnQsXG4gICAgICBzZWFyY2haZXJvU3RhdGVWYXJpYW50OiBcImJhY2tncm91bmRUZXJ0aWFyeVwiLFxuICAgICAgc2VhcmNoSW5wdXRWYXJpYW50OiBcInN0YW5kYXJkXCIsXG4gICAgICBzdWdnZXN0aW9uQnV0dG9uQ29uZmlnOiB7XG4gICAgICAgIHZhcmlhbnQ6IFwiZGFya0FjY2VudFwiLFxuICAgICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5QWNjZW50XCIsXG4gICAgICB9LFxuICAgICAgbGF5b3V0OiBcImljb25cIixcbiAgICAgIHNlYXJjaEJveFBsYWNlaG9sZGVyOiAnVHJ5IFwiQ29sb3JmdWwgbWF4aSBmb3IgYSBzdW1tZXIgd2VkZGluZ1wiJyxcbiAgICAgIGluaXRpYWxTdWdnZXN0aW9uczogW1xuICAgICAgICBcIlZpbnRhZ2UgZHJlc3Nlc1wiLFxuICAgICAgICBcIk1heGkgZHJlc3Nlc1wiLFxuICAgICAgICBcIkRpc25leSBvdXRmaXRcIixcbiAgICAgICAgXCJCYXJiaWUgY29sbGVjdGlvblwiLFxuICAgICAgICBcIjE5NzBzIGp1bXBzdWl0XCIsXG4gICAgICAgIFwiT25lLXBpZWNlIHN3aW1zdWl0XCIsXG4gICAgICAgIFwiQ2luZGVyZWxsYSBkaXZpbmUgZHJlc3Nlc1wiLFxuICAgICAgXSxcbiAgICB9IHNhdGlzZmllcyBTZWFyY2hFbnRyeVBvaW50V2lkZ2V0Q29uZmlnLFxuICAgIHRvcFN1Z2dlc3Rpb25zQmFyOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclwiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdmFyaWFudDogXCJwcmltYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiU3VtbWFyaXplIHRoZSByZXZpZXdzXCIsXG4gICAgICAgICAgXCJXaGF0IHJldHJvIGNoYXJtIHdpbGwgdGhpcyBwaWVjZSBicmluZyB0byBteSB3YXJkcm9iZT9cIixcbiAgICAgICAgICBcIldoYXQgb2NjYXNpb25zIGlzIHRoaXMgcGllY2UgcGVyZmVjdCBmb3I/XCIsXG4gICAgICAgICAgXCJIb3cgZG8gb3RoZXJzIGRlc2NyaWJlIHRoZSBmaXQgYW5kIGZlZWw/XCIsXG4gICAgICAgICAgXCJXaGF0IG1ha2VzIHRoaXMgcGllY2Ugc3RhbmQgb3V0IGZvciBvdGhlcnM/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgdHdvUm93c09uTW9iaWxlOiBmYWxzZSxcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0JhckRyZXNzZXNIYXNSZXZpZXdzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhckRyZXNzZXNIYXNSZXZpZXdzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB2YXJpYW50OiBcInByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJTdW1tYXJpemUgdGhlIHJldmlld3NcIixcbiAgICAgICAgICBcIldoaWNoIHVuaXF1ZSBhY2Nlc3NvcmllcyBwYWlyIHdpdGggdGhpcz9cIixcbiAgICAgICAgICBcIklzIHRoZSBmaXQgZmxvd3kgb3IgZmlndXJlLWVuaGFuY2luZz9cIixcbiAgICAgICAgICBcIklzIGl0IHRydWUgdG8gc2l6ZT9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICB0d29Sb3dzT25Nb2JpbGU6IGZhbHNlLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIHRvcFN1Z2dlc3Rpb25zQmFyRHJlc3Nlc05vUmV2aWV3czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJEcmVzc2VzTm9SZXZpZXdzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB2YXJpYW50OiBcInByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJXaGF0IG9jY2FzaW9uIGlzIHRoaXMgZHJlc3MgZm9yP1wiLFxuICAgICAgICAgIFwiV2hpY2ggdW5pcXVlIGFjY2Vzc29yaWVzIHBhaXIgd2l0aCB0aGlzP1wiLFxuICAgICAgICAgIFwiSXMgdGhlIGZpdCBmbG93eSBvciBmaWd1cmUtZW5oYW5jaW5nP1wiLFxuICAgICAgICAgIFwiSXMgaXQgdHJ1ZSB0byBzaXplP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIHR3b1Jvd3NPbk1vYmlsZTogZmFsc2UsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgdG9wU3VnZ2VzdGlvbnNCYXJTd2ltd2Vhckhhc1Jldmlld3M6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyU3dpbXdlYXJIYXNSZXZpZXdzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB2YXJpYW50OiBcInByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJTdW1tYXJpemUgdGhlIHJldmlld3NcIixcbiAgICAgICAgICBcIldoaWNoIGFjY2Vzc29yaWVzIHBhaXIgd2VsbD9cIixcbiAgICAgICAgICBcIkRvZXMgdGhlIHRvcCBoYXZlIHBhZGRpbmc/XCIsXG4gICAgICAgICAgXCJEb2VzIGl0IHJ1biB0cnVlIHRvIHNpemU/XCIsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgYm9sZEZpcnN0QnV0dG9uOiB0cnVlLFxuICAgICAgdHdvUm93c09uTW9iaWxlOiBmYWxzZSxcbiAgICAgIGJ1dHRvbkJvcmRlclJhZGl1czogXCJtZFwiLFxuICAgIH0gc2F0aXNmaWVzIFN1Z2dlc3Rpb25CYXJXaWRnZXRWMkNvbmZpZyxcbiAgICB0b3BTdWdnZXN0aW9uc0JhclN3aW13ZWFyTm9SZXZpZXdzOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJ0b3BTdWdnZXN0aW9uc0JhclN3aW13ZWFyTm9SZXZpZXdzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB2YXJpYW50OiBcInByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJEb2VzIGl0IHJ1biB0cnVlIHRvIHNpemU/XCIsXG4gICAgICAgICAgXCJXaGljaCBhY2Nlc3NvcmllcyBwYWlyIHdlbGw/XCIsXG4gICAgICAgICAgXCJEb2VzIHRoZSB0b3AgaGF2ZSBwYWRkaW5nP1wiLFxuICAgICAgICAgIFwiRG9lcyBpdCBydW4gdHJ1ZSB0byBzaXplP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIHR3b1Jvd3NPbk1vYmlsZTogZmFsc2UsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgdG9wU3VnZ2VzdGlvbnNCYXJTaG9lc0hhc1Jldmlld3M6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25zQmFyU2hvZXNIYXNSZXZpZXdzXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LXRvcC1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLlRPUF9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9UT1AsXG4gICAgICB2YXJpYW50OiBcInByaW1hcnlcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJTdW1tYXJpemUgdGhlIHJldmlld3NcIixcbiAgICAgICAgICBcIklzIHRoaXMgZ29vZCBmb3IgYSBuaWdodCBvdXQ/XCIsXG4gICAgICAgICAgXCJBcmUgdGhlc2UgdHJ1ZSB0byBzaXplP1wiLFxuICAgICAgICAgIFwiQXJlIHRoZXNlIGdvb2QgZm9yIGNhc3VhbCB3ZWFyP1wiLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGJvbGRGaXJzdEJ1dHRvbjogdHJ1ZSxcbiAgICAgIHR3b1Jvd3NPbk1vYmlsZTogZmFsc2UsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gICAgdG9wU3VnZ2VzdGlvbnNCYXJTaG9lc05vUmV2aWV3czoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwidG9wU3VnZ2VzdGlvbnNCYXJTaG9lc05vUmV2aWV3c1wiLFxuICAgICAgY29udGVudElkOiBcInNwaWZmeS10b3Atc3VnZ2VzdGlvbi1iYXItY29udGVudHNcIixcbiAgICAgIHR5cGU6IFdpZGdldFR5cGUuU3VnZ2VzdGlvbkJhclYyLFxuICAgICAgbWV0cmljRGlzcGxheUxvY2F0aW9uOiBDaGF0RWxlbWVudERpc3BsYXlMb2NhdGlvbi5UT1BfUkVWSUVXU19TTklQUEVULFxuICAgICAgbG9jYXRpb246IFN1Z2dlc3Rpb25CYXJMb2NhdGlvbkZvck1ldHJpY3MuU1VHR0VTVElPTl9CQVJfVE9QLFxuICAgICAgdmFyaWFudDogXCJwcmltYXJ5XCIsXG4gICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5RGFya1wiLFxuICAgICAgYnV0dG9uVGV4dHM6IHtcbiAgICAgICAgZGVmYXVsdDogW1xuICAgICAgICAgIFwiV2hhdCBlcmEgaW5zcGlyZWQgdGhlc2Ugc2hvZXM/XCIsXG4gICAgICAgICAgXCJJcyB0aGlzIGdvb2QgZm9yIGEgbmlnaHQgb3V0P1wiLFxuICAgICAgICAgIFwiQXJlIHRoZXNlIHRydWUgdG8gc2l6ZT9cIixcbiAgICAgICAgICBcIkFyZSB0aGVzZSBnb29kIGZvciBjYXN1YWwgd2Vhcj9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICB0d29Sb3dzT25Nb2JpbGU6IGZhbHNlLFxuICAgICAgYnV0dG9uQm9yZGVyUmFkaXVzOiBcIm1kXCIsXG4gICAgfSBzYXRpc2ZpZXMgU3VnZ2VzdGlvbkJhcldpZGdldFYyQ29uZmlnLFxuICAgIHNlYXJjaFByb21wdFBMUDoge1xuICAgICAgd2lkZ2V0Q29uZmlnSWQ6IFwic2VhcmNoUHJvbXB0UExQXCIsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLlNlYXJjaFByb21wdCxcbiAgICAgIHZhcmlhbnQ6IFwicHJpbWFyeVwiLFxuICAgICAgdGl0bGU6IFwiRmluZCBleGFjdGx5IHdoYXQgeW91J3JlIGxvb2tpbmcgZm9yLi4uXCIsXG4gICAgICBoZWFkZXJDb25maWc6IHtcbiAgICAgICAgdGl0bGU6IFwiU2VhcmNoIEFzc2lzdGFudFwiLFxuICAgICAgICBsb2dvOiBcInNlYXJjaC1sb2dvLnN2Z1wiLFxuICAgICAgICBsb2dvSGVpZ2h0OiAyNSxcbiAgICAgICAgb3JnU2hvcnROYW1lOiBcInVuaXF1ZS12aW50YWdlXCIsXG4gICAgICB9LFxuICAgICAgc3VnZ2VzdGlvbkJ1dHRvbnM6IHtcbiAgICAgICAgdmFyaWFudDogXCJkYXJrUHJpbWFyeVwiLFxuICAgICAgICBob3ZlclZhcmlhbnQ6IFwic2Vjb25kYXJ5XCIsXG4gICAgICAgIGJ1dHRvblRleHRzOiBbXG4gICAgICAgICAgXCJWaW50YWdlIGRyZXNzZXNcIixcbiAgICAgICAgICBcIk1heGkgZHJlc3Nlc1wiLFxuICAgICAgICAgIFwiRGlzbmV5IG91dGZpdFwiLFxuICAgICAgICAgIFwiQmFyYmllIGNvbGxlY3Rpb25cIixcbiAgICAgICAgICBcIjE5NzBzIGp1bXBzdWl0XCIsXG4gICAgICAgICAgXCJPbmUtcGllY2Ugc3dpbXN1aXRcIixcbiAgICAgICAgICBcIkNpbmRlcmVsbGEgZGl2aW5lIGRyZXNzZXNcIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBmb290ZXJDb25maWc6IHtcbiAgICAgICAgcmVwbHlCdXR0b25UZXh0OiBcIkJlIGFzIHNwZWNpZmljIGFzIHlvdSBsaWtlLi4uXCIsXG4gICAgICAgIHJlcGx5QnV0dG9uSWNvbjogXCJhaS1zZWFyY2hcIixcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgU2VhcmNoUHJvbXB0V2lkZ2V0Q29uZmlnLFxuICAgIGNoYXRQcmV2aWV3UExQOiB7XG4gICAgICB3aWRnZXRDb25maWdJZDogXCJjaGF0UHJldmlld1wiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5DaGF0UHJldmlldyxcbiAgICAgIHZhcmlhbnQ6IFwiZmlsbGVkXCIsXG4gICAgICBhZGRTZXBhcmF0b3JzOiB0cnVlLFxuICAgICAgZm9vdGVyQ29uZmlnOiB7XG4gICAgICAgIHJlcGx5QnV0dG9uVGV4dDogXCJXaGF0IGNhbiBJIGhlbHAgeW91IGZpbmQ/XCIsXG4gICAgICAgIHJlcGx5QnV0dG9uSWNvbjogXCJtYWduaWZ5aW5nR2xhc3NcIixcbiAgICAgIH0sXG4gICAgfSBzYXRpc2ZpZXMgQ2hhdFByZXZpZXdXaWRnZXRDb25maWcsXG4gICAgY2hhdFByZXZpZXdQRFA6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UERQXCIsXG4gICAgICB0eXBlOiBXaWRnZXRUeXBlLkNoYXRQcmV2aWV3LFxuICAgICAgdmFyaWFudDogXCJmaWxsZWRcIixcbiAgICAgIGFkZFNlcGFyYXRvcnM6IHRydWUsXG4gICAgfSBzYXRpc2ZpZXMgQ2hhdFByZXZpZXdXaWRnZXRDb25maWcsXG4gICAgYm90dG9tU3VnZ2VzdGlvbnNCYXI6IHtcbiAgICAgIHdpZGdldENvbmZpZ0lkOiBcImJvdHRvbVN1Z2dlc3Rpb25zQmFyXCIsXG4gICAgICBjb250ZW50SWQ6IFwic3BpZmZ5LWJvdHRvbS1zdWdnZXN0aW9uLWJhci1jb250ZW50c1wiLFxuICAgICAgdHlwZTogV2lkZ2V0VHlwZS5TdWdnZXN0aW9uQmFyVjIsXG4gICAgICBtZXRyaWNEaXNwbGF5TG9jYXRpb246IENoYXRFbGVtZW50RGlzcGxheUxvY2F0aW9uLkJPVFRPTV9SRVZJRVdTX1NOSVBQRVQsXG4gICAgICBsb2NhdGlvbjogU3VnZ2VzdGlvbkJhckxvY2F0aW9uRm9yTWV0cmljcy5TVUdHRVNUSU9OX0JBUl9CT1RUT00sXG4gICAgICB2YXJpYW50OiBcImRhcmtcIixcbiAgICAgIGhvdmVyVmFyaWFudDogXCJzZWNvbmRhcnlEYXJrXCIsXG4gICAgICBidXR0b25UZXh0czoge1xuICAgICAgICBkZWZhdWx0OiBbXG4gICAgICAgICAgXCJTdW1tYXJpemUgdGhlIHJldmlld3NcIixcbiAgICAgICAgICBcIldoYXQgcmV0cm8gY2hhcm0gd2lsbCB0aGlzIHBpZWNlIGJyaW5nIHRvIG15IHdhcmRyb2JlP1wiLFxuICAgICAgICAgIFwiV2hhdCBvY2Nhc2lvbnMgaXMgdGhpcyBwaWVjZSBwZXJmZWN0IGZvcj9cIixcbiAgICAgICAgICBcIkhvdyBkbyBvdGhlcnMgZGVzY3JpYmUgdGhlIGZpdCBhbmQgZmVlbD9cIixcbiAgICAgICAgICBcIldoYXQgbWFrZXMgdGhpcyBwaWVjZSBzdGFuZCBvdXQgZm9yIG90aGVycz9cIixcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBib2xkRmlyc3RCdXR0b246IHRydWUsXG4gICAgICB0d29Sb3dzT25Nb2JpbGU6IHRydWUsXG4gICAgICBhbmltYXRpb25TcGVlZDogXCJub25lXCIsXG4gICAgICBidXR0b25Cb3JkZXJSYWRpdXM6IFwibWRcIixcbiAgICB9IHNhdGlzZmllcyBTdWdnZXN0aW9uQmFyV2lkZ2V0VjJDb25maWcsXG4gIH0sXG4gIG1vdW50aW5nQ29uZmlnczoge1xuICAgIGdsb2JhbFNlYXJjaEVudHJ5UG9pbnQ6IHtcbiAgICAgIG1vdW50aW5nQ29uZmlnSWQ6IFwiZ2xvYmFsU2VhcmNoRW50cnlQb2ludFwiLFxuICAgICAgY29udGFpbmVySWQ6IEdMT0JBTF9TRUFSQ0hfRU5UUllQT0lOVF9JRCxcbiAgICAgIHRlc3RJZDogR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiBcIi5oZWFkZXJfX3NlYXJjaC5oZWFkZXJfX3NlYXJjaC0tZGVza3RvcFwiLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkFGVEVSLFxuICAgICAgfSxcbiAgICAgIHN1cHByZXNzaW9uU2VsZWN0b3I6XG4gICAgICAgIFwiLnNlYXJjaC1tb2RhbF9fY29udGVudC5zZWFyY2gtbW9kYWxfX2NvbnRlbnQtYm90dG9tXCIsXG4gICAgICBjbGFzc05hbWU6IFwiZ2xvYmFsLWVudHJ5LWRlc2t0b3BcIixcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIHpJbmRleDogXCIyMTQ3NDgzNjQ3XCIsXG4gICAgICAgIG1hcmdpblJpZ2h0OiBcIjMycHhcIixcbiAgICAgICAgaGVpZ2h0OiBcIjgwcHhcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBnbG9iYWxTZWFyY2hFbnRyeVBvaW50TW9iaWxlOiB7XG4gICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImdsb2JhbFNlYXJjaEVudHJ5UG9pbnRcIixcbiAgICAgIGNvbnRhaW5lcklkOiBNT0JJTEVfR0xPQkFMX1NFQVJDSF9FTlRSWVBPSU5UX0lELFxuICAgICAgdGVzdElkOiBHTE9CQUxfU0VBUkNIX0VOVFJZUE9JTlRfVEVTVElELFxuICAgICAgaW5zZXJ0aW9uUG9pbnQ6IHtcbiAgICAgICAgc2VsZWN0b3I6IFwic3RpY2t5LWhlYWRlci5oZWFkZXItd3JhcHBlcjpoYXMoLm1vYmlsZS1zZWFyY2gpXCIsXG4gICAgICAgIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGUuQUZURVIsXG4gICAgICB9LFxuICAgICAgc3VwcHJlc3Npb25TZWxlY3RvcjogXCIubW9iaWxlLXNlYXJjaCAuc2VhcmNoLW1vZGFsX19mb3JtXCIsXG4gICAgICBjbGFzc05hbWU6IFwiZ2xvYmFsLWVudHJ5LW1vYmlsZVwiLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgekluZGV4OiBcIjIxNDc0ODM2NDdcIixcbiAgICAgICAgbWFyZ2luVG9wOiBcIjhweFwiLFxuICAgICAgICBtYXJnaW5MZWZ0OiBcIjE1cHhcIixcbiAgICAgICAgbWFyZ2luUmlnaHQ6IFwiMTVweFwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNoYXRQcmV2aWV3UExQOiB7XG4gICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcImNoYXRQcmV2aWV3UExQXCIsXG4gICAgICBjb250YWluZXJJZDogQ0hBVF9QUkVWSUVXX0NPTlRBSU5FUl9JRCxcbiAgICAgIHRlc3RJZDogQ0hBVF9QUkVWSUVXX1RFU1RJRCxcbiAgICAgIGluc2VydGlvblBvaW50OiB7XG4gICAgICAgIHNlbGVjdG9yOiBcIi5jb2xsZWN0aW9uIC5wcm9kdWN0LWdyaWRcIixcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5BRlRFUixcbiAgICAgIH0sXG4gICAgICBncmlkSW5zZXJ0aW9uVHlwZTogR3JpZEluc2VydGlvblR5cGUuUk9XXzIsXG4gICAgfSxcbiAgICBjaGF0UHJldmlld1BEUDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJjaGF0UHJldmlld1BEUFwiLFxuICAgICAgY29udGFpbmVySWQ6IENIQVRfUFJFVklFV19DT05UQUlORVJfSUQsXG4gICAgICB0ZXN0SWQ6IENIQVRfUFJFVklFV19URVNUSUQsXG4gICAgICBpbnNlcnRpb25Qb2ludDoge1xuICAgICAgICBzZWxlY3RvcjogXCIucHJvZHVjdF9fYWNjb3JkaW9uXCIsXG4gICAgICAgIGluc2VydGlvblR5cGU6IERPTUluc2VydGlvblR5cGUuQkVGT1JFLFxuICAgICAgfSxcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIG1hcmdpblRvcDogXCIxNnB4XCIsXG4gICAgICAgIG1hcmdpbkJvdHRvbTogXCI4cHhcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICB0b3BTdWdnZXN0aW9uQmFyUERQOiB7XG4gICAgICBtb3VudGluZ0NvbmZpZ0lkOiBcInRvcFN1Z2dlc3Rpb25CYXJQRFBcIixcbiAgICAgIGNvbnRhaW5lcklkOiBUT1BfU1VHR0VTVElPTl9CQVJfUERQX0lELFxuICAgICAgdGVzdElkOiBUT1BfU1VHR0VTVElPTl9CQVJfVEVTVElELFxuICAgICAgaW5zZXJ0aW9uUG9pbnQ6IHtcbiAgICAgICAgc2VsZWN0b3I6IFwiZGl2Omhhcyg+IC5tYWluX3ByaWNlKVwiLFxuICAgICAgICBpbnNlcnRpb25UeXBlOiBET01JbnNlcnRpb25UeXBlLkFGVEVSLFxuICAgICAgfSxcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIG1hcmdpblRvcDogXCIxNnB4XCIsXG4gICAgICAgIG1hcmdpbkJvdHRvbTogXCIxNnB4XCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAgYm90dG9tU3VnZ2VzdGlvbkJhclBEUDoge1xuICAgICAgbW91bnRpbmdDb25maWdJZDogXCJib3R0b21TdWdnZXN0aW9uQmFyUERQXCIsXG4gICAgICBjb250YWluZXJJZDogQk9UVE9NX1JFVklFV1NfQkFSX0lELFxuICAgICAgdGVzdElkOiBCT1RUT01fU1VHR0VTVElPTl9CQVJfVEVTVElELFxuICAgICAgaW5zZXJ0aW9uUG9pbnQ6IHtcbiAgICAgICAgc2VsZWN0b3I6IFwiLmp1bmlwLXByb2R1Y3QtcmV2aWV3LXN1bW1hcnktd3JhcHBlciArIGRpdi5qdW5pcC1zZXBhcmF0b3JcIixcbiAgICAgICAgaW5zZXJ0aW9uVHlwZTogRE9NSW5zZXJ0aW9uVHlwZS5BREpBQ0VOVF9BRlRFUl9FTkQsXG4gICAgICAgIHNlbGVjdGlvbkluZGV4OiAwLFxuICAgICAgfSxcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIG1hcmdpblRvcDogXCIxNnB4XCIsXG4gICAgICAgIG1hcmdpbkJvdHRvbTogXCIxNnB4XCIsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG59KTtcblxuY29uc3QgdW5pcXVlVmludGFnZU9yZ0luZm8gPSB7XG4gIHNob3J0TmFtZTogT3JnU2hvcnROYW1lLlVuaXF1ZVZpbnRhZ2UsXG4gIG5hbWU6IFwiVW5pcXVlIFZpbnRhZ2VcIixcbiAgZG9tYWluOiBcInVuaXF1ZS12aW50YWdlLmNvbVwiLFxuICBkZWZhdWx0UHJvZHVjdElkOiBcInJlZC1jb3dnaXJsLXByaW50LXN3aW5nLXNoaXJ0LWRyZXNzXCIsXG4gIGFsd2F5c0VuYWJsZWRNZXJjaGFudHM6IHRydWUsXG4gIG9yZ1VJQ29uZmlnOiB1bmlxdWVWaW50YWdlT3JnVUlDb25maWcsXG4gIG9yZ0NvbG9yczogKCkgPT4gdW5pcXVlVmludGFnZUNvbG9ycyxcbiAgb3JnUGFnZUNvbmZpZzogdW5pcXVlVmludGFnZVBhZ2VDb25maWcsXG59IHNhdGlzZmllcyBCYXNpY09yZ0luZm9UeXBlO1xuXG5leHBvcnQgeyB1bmlxdWVWaW50YWdlT3JnSW5mbyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5Q0EsTUFBTUEsc0JBQW9DO0VBQ3ZDQyx5QkFBVyxjQUFjO0VBQ3pCQSx5QkFBVyxnQkFBZ0I7RUFDM0JBLHlCQUFXLGFBQWE7RUFDeEJBLHlCQUFXLFdBQVc7RUFDdEJBLHlCQUFXLFlBQVk7RUFDdkJBLHlCQUFXLG9CQUFvQjtFQUMvQkEseUJBQVcsc0JBQXNCO0VBQ2pDQSx5QkFBVywwQkFBMEI7RUFDckNBLHlCQUFXLHFCQUFxQjtFQUNoQ0EseUJBQVcsaUJBQWlCO0VBQzVCQSx5QkFBVyxrQkFBa0I7RUFDN0JBLHlCQUFXLHNCQUFzQjtFQUNqQ0EseUJBQVcsY0FBYztFQUN6QkEseUJBQVcsZUFBZTtFQUMxQkEseUJBQVcsYUFBYTtFQUN4QkEseUJBQVcsZ0JBQWdCO0VBQzNCQSx5QkFBVyxnQkFBZ0I7RUFDM0JBLHlCQUFXLGtCQUFrQjtDQUMvQjtBQUVELE1BQU0saUNBQThDO0NBQ2xELE1BQU0sZ0NBQWdDQyxtQ0FDcENDLDJCQUFhLGNBQ2Q7QUFFRCxRQUFPO0VBQ0wsR0FBRztFQUNILG1CQUFtQjtHQUNqQixHQUFHLDhCQUE4QjtHQUNqQyxvQkFBb0I7R0FDcEIsU0FBUztHQUNWO0VBQ0QsWUFBWTtHQUNWLEdBQUcsOEJBQThCO0dBQ2pDLGNBQWNDLHVCQUFTSCx5QkFBVyxlQUFlO0dBQ2pELGVBQWVHLHVCQUFTSCx5QkFBVyxrQkFBa0I7R0FDckQsVUFBVUksZ0NBQ1IsZ0NBQ0FGLDJC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