@codecademy/brand 4.0.0 → 5.0.0-alpha.19accb830.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1723) hide show
  1. package/README.md +6 -0
  2. package/dist/AbbreviatedCommunityEventCard/index.cjs +74 -0
  3. package/dist/AbbreviatedCommunityEventCard/index.cjs.map +1 -0
  4. package/dist/AbbreviatedCommunityEventCard/index.d.cts +12 -0
  5. package/dist/AbbreviatedCommunityEventCard/index.d.cts.map +1 -0
  6. package/dist/AbbreviatedCommunityEventCard/index.d.ts +11 -7
  7. package/dist/AbbreviatedCommunityEventCard/index.d.ts.map +1 -0
  8. package/dist/AbbreviatedCommunityEventCard/index.js +71 -98
  9. package/dist/AbbreviatedCommunityEventCard/index.js.map +1 -0
  10. package/dist/AppBar/AppBarSection.cjs +40 -0
  11. package/dist/AppBar/AppBarSection.cjs.map +1 -0
  12. package/dist/AppBar/AppBarSection.d.cts +16 -0
  13. package/dist/AppBar/AppBarSection.d.cts.map +1 -0
  14. package/dist/AppBar/AppBarSection.d.ts +16 -10
  15. package/dist/AppBar/AppBarSection.d.ts.map +1 -0
  16. package/dist/AppBar/AppBarSection.js +35 -39
  17. package/dist/AppBar/AppBarSection.js.map +1 -0
  18. package/dist/AppBar/index.cjs +21 -0
  19. package/dist/AppBar/index.cjs.map +1 -0
  20. package/dist/AppBar/index.d.cts +14 -0
  21. package/dist/AppBar/index.d.cts.map +1 -0
  22. package/dist/AppBar/index.d.ts +13 -8
  23. package/dist/AppBar/index.d.ts.map +1 -0
  24. package/dist/AppBar/index.js +19 -20
  25. package/dist/AppBar/index.js.map +1 -0
  26. package/dist/AppBarDeprecated/AppBarSectionDeprecated.cjs +24 -0
  27. package/dist/AppBarDeprecated/AppBarSectionDeprecated.cjs.map +1 -0
  28. package/dist/AppBarDeprecated/AppBarSectionDeprecated.d.cts +19 -0
  29. package/dist/AppBarDeprecated/AppBarSectionDeprecated.d.cts.map +1 -0
  30. package/dist/AppBarDeprecated/AppBarSectionDeprecated.d.ts +14 -9
  31. package/dist/AppBarDeprecated/AppBarSectionDeprecated.d.ts.map +1 -0
  32. package/dist/AppBarDeprecated/AppBarSectionDeprecated.js +18 -23
  33. package/dist/AppBarDeprecated/AppBarSectionDeprecated.js.map +1 -0
  34. package/dist/AppBarDeprecated/index.cjs +27 -0
  35. package/dist/AppBarDeprecated/index.cjs.map +1 -0
  36. package/dist/AppBarDeprecated/index.d.cts +19 -0
  37. package/dist/AppBarDeprecated/index.d.cts.map +1 -0
  38. package/dist/AppBarDeprecated/index.d.ts +14 -9
  39. package/dist/AppBarDeprecated/index.d.ts.map +1 -0
  40. package/dist/AppBarDeprecated/index.js +21 -24
  41. package/dist/AppBarDeprecated/index.js.map +1 -0
  42. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.cjs +84 -0
  43. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.cjs.map +1 -0
  44. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.js +82 -111
  45. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.js.map +1 -0
  46. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.cjs +267 -0
  47. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.cjs.map +1 -0
  48. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.js +255 -334
  49. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.js.map +1 -0
  50. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.cjs +275 -0
  51. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.cjs.map +1 -0
  52. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.js +271 -226
  53. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.js.map +1 -0
  54. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.cjs +100 -0
  55. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.cjs.map +1 -0
  56. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.d.cts +9 -0
  57. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.d.cts.map +1 -0
  58. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.d.ts +10 -5
  59. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.d.ts.map +1 -0
  60. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.js +98 -122
  61. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.js.map +1 -0
  62. package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.cjs +91 -0
  63. package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.cjs.map +1 -0
  64. package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.js +88 -123
  65. package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.js.map +1 -0
  66. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.cjs +96 -0
  67. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.cjs.map +1 -0
  68. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.d.cts +17 -0
  69. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.d.cts.map +1 -0
  70. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.d.ts +17 -11
  71. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.d.ts.map +1 -0
  72. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.js +92 -111
  73. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdown/index.js.map +1 -0
  74. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.cjs +31 -0
  75. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.cjs.map +1 -0
  76. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.js +24 -27
  77. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.js.map +1 -0
  78. package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.cjs +45 -0
  79. package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.cjs.map +1 -0
  80. package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.js +43 -56
  81. package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.js.map +1 -0
  82. package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.cjs +62 -0
  83. package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.cjs.map +1 -0
  84. package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.d.cts +57 -0
  85. package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.d.cts.map +1 -0
  86. package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.d.ts +54 -44
  87. package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.d.ts.map +1 -0
  88. package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.js +58 -69
  89. package/dist/AppHeader/AppHeaderElements/AppHeaderLink/index.js.map +1 -0
  90. package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.cjs +38 -0
  91. package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.cjs.map +1 -0
  92. package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.js +35 -35
  93. package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.js.map +1 -0
  94. package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.cjs +46 -0
  95. package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.cjs.map +1 -0
  96. package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.js +44 -59
  97. package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.js.map +1 -0
  98. package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.cjs +28 -0
  99. package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.cjs.map +1 -0
  100. package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.js +24 -31
  101. package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.js.map +1 -0
  102. package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.cjs +53 -0
  103. package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.cjs.map +1 -0
  104. package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.d.cts +11 -0
  105. package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.d.cts.map +1 -0
  106. package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.d.ts +11 -5
  107. package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.d.ts.map +1 -0
  108. package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.js +49 -55
  109. package/dist/AppHeader/AppHeaderElements/AppHeaderLogo/index.js.map +1 -0
  110. package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.cjs +82 -0
  111. package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.cjs.map +1 -0
  112. package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.js +77 -86
  113. package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.js.map +1 -0
  114. package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.cjs +78 -0
  115. package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.cjs.map +1 -0
  116. package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.js +74 -101
  117. package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.js.map +1 -0
  118. package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.cjs +22 -0
  119. package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.cjs.map +1 -0
  120. package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.js +17 -17
  121. package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.js.map +1 -0
  122. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.cjs +88 -0
  123. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.cjs.map +1 -0
  124. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.js +80 -107
  125. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.js.map +1 -0
  126. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.cjs +341 -0
  127. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.cjs.map +1 -0
  128. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.js +335 -291
  129. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.js.map +1 -0
  130. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.cjs +98 -0
  131. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.cjs.map +1 -0
  132. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.d.cts +9 -0
  133. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.d.cts.map +1 -0
  134. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.d.ts +10 -5
  135. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.d.ts.map +1 -0
  136. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.js +96 -120
  137. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.js.map +1 -0
  138. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.cjs +18 -0
  139. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.cjs.map +1 -0
  140. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.js +15 -9
  141. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.js.map +1 -0
  142. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.cjs +68 -0
  143. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.cjs.map +1 -0
  144. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.js +66 -89
  145. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.js.map +1 -0
  146. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.cjs +47 -0
  147. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.cjs.map +1 -0
  148. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.js +45 -61
  149. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.js.map +1 -0
  150. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.cjs +92 -0
  151. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.cjs.map +1 -0
  152. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.js +85 -125
  153. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.js.map +1 -0
  154. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.cjs +66 -0
  155. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.cjs.map +1 -0
  156. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.js +65 -81
  157. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.js.map +1 -0
  158. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.cjs +59 -0
  159. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.cjs.map +1 -0
  160. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.js +48 -118
  161. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.js.map +1 -0
  162. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.cjs +102 -0
  163. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.cjs.map +1 -0
  164. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.js +100 -144
  165. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.js.map +1 -0
  166. package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.cjs +55 -0
  167. package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.cjs.map +1 -0
  168. package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.js +52 -64
  169. package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.js.map +1 -0
  170. package/dist/AppHeader/Search/DefaultResults.cjs +93 -0
  171. package/dist/AppHeader/Search/DefaultResults.cjs.map +1 -0
  172. package/dist/AppHeader/Search/DefaultResults.js +89 -111
  173. package/dist/AppHeader/Search/DefaultResults.js.map +1 -0
  174. package/dist/AppHeader/Search/QuizAndHelpCenterLinks.cjs +57 -0
  175. package/dist/AppHeader/Search/QuizAndHelpCenterLinks.cjs.map +1 -0
  176. package/dist/AppHeader/Search/QuizAndHelpCenterLinks.js +55 -79
  177. package/dist/AppHeader/Search/QuizAndHelpCenterLinks.js.map +1 -0
  178. package/dist/AppHeader/Search/SearchButton.cjs +50 -0
  179. package/dist/AppHeader/Search/SearchButton.cjs.map +1 -0
  180. package/dist/AppHeader/Search/SearchButton.js +46 -71
  181. package/dist/AppHeader/Search/SearchButton.js.map +1 -0
  182. package/dist/AppHeader/Search/SearchPane.cjs +472 -0
  183. package/dist/AppHeader/Search/SearchPane.cjs.map +1 -0
  184. package/dist/AppHeader/Search/SearchPane.js +461 -621
  185. package/dist/AppHeader/Search/SearchPane.js.map +1 -0
  186. package/dist/AppHeader/Search/SearchTrackingProvider/index.cjs +29 -0
  187. package/dist/AppHeader/Search/SearchTrackingProvider/index.cjs.map +1 -0
  188. package/dist/AppHeader/Search/SearchTrackingProvider/index.js +23 -23
  189. package/dist/AppHeader/Search/SearchTrackingProvider/index.js.map +1 -0
  190. package/dist/AppHeader/Search/SearchWorker/PromiseLookup.cjs +45 -0
  191. package/dist/AppHeader/Search/SearchWorker/PromiseLookup.cjs.map +1 -0
  192. package/dist/AppHeader/Search/SearchWorker/PromiseLookup.js +44 -35
  193. package/dist/AppHeader/Search/SearchWorker/PromiseLookup.js.map +1 -0
  194. package/dist/AppHeader/Search/SearchWorker/index.cjs +25 -0
  195. package/dist/AppHeader/Search/SearchWorker/index.cjs.map +1 -0
  196. package/dist/AppHeader/Search/SearchWorker/index.d.cts +11 -0
  197. package/dist/AppHeader/Search/SearchWorker/index.d.cts.map +1 -0
  198. package/dist/AppHeader/Search/SearchWorker/index.d.ts +10 -4
  199. package/dist/AppHeader/Search/SearchWorker/index.d.ts.map +1 -0
  200. package/dist/AppHeader/Search/SearchWorker/index.js +24 -23
  201. package/dist/AppHeader/Search/SearchWorker/index.js.map +1 -0
  202. package/dist/AppHeader/Search/SearchWorker/src.cjs +160 -0
  203. package/dist/AppHeader/Search/SearchWorker/src.cjs.map +1 -0
  204. package/dist/AppHeader/Search/SearchWorker/src.js +154 -305
  205. package/dist/AppHeader/Search/SearchWorker/src.js.map +1 -0
  206. package/dist/AppHeader/Search/SearchWorker/types.cjs +16 -0
  207. package/dist/AppHeader/Search/SearchWorker/types.cjs.map +1 -0
  208. package/dist/AppHeader/Search/SearchWorker/types.d.cts +31 -0
  209. package/dist/AppHeader/Search/SearchWorker/types.d.cts.map +1 -0
  210. package/dist/AppHeader/Search/SearchWorker/types.d.ts +24 -30
  211. package/dist/AppHeader/Search/SearchWorker/types.d.ts.map +1 -0
  212. package/dist/AppHeader/Search/SearchWorker/types.js +10 -5
  213. package/dist/AppHeader/Search/SearchWorker/types.js.map +1 -0
  214. package/dist/AppHeader/Search/SearchWorker/worker.cjs +27 -0
  215. package/dist/AppHeader/Search/SearchWorker/worker.cjs.map +1 -0
  216. package/dist/AppHeader/Search/SearchWorker/worker.js +25 -29
  217. package/dist/AppHeader/Search/SearchWorker/worker.js.map +1 -0
  218. package/dist/AppHeader/Search/consts.cjs +74 -0
  219. package/dist/AppHeader/Search/consts.cjs.map +1 -0
  220. package/dist/AppHeader/Search/consts.d.cts +27 -0
  221. package/dist/AppHeader/Search/consts.d.cts.map +1 -0
  222. package/dist/AppHeader/Search/consts.d.ts +24 -20
  223. package/dist/AppHeader/Search/consts.d.ts.map +1 -0
  224. package/dist/AppHeader/Search/consts.js +64 -40
  225. package/dist/AppHeader/Search/consts.js.map +1 -0
  226. package/dist/AppHeader/Search/hooks/useUrlChangeDetection.cjs +18 -0
  227. package/dist/AppHeader/Search/hooks/useUrlChangeDetection.cjs.map +1 -0
  228. package/dist/AppHeader/Search/hooks/useUrlChangeDetection.js +17 -14
  229. package/dist/AppHeader/Search/hooks/useUrlChangeDetection.js.map +1 -0
  230. package/dist/AppHeader/Search/safelyRedirect.cjs +39 -0
  231. package/dist/AppHeader/Search/safelyRedirect.cjs.map +1 -0
  232. package/dist/AppHeader/Search/safelyRedirect.js +32 -42
  233. package/dist/AppHeader/Search/safelyRedirect.js.map +1 -0
  234. package/dist/AppHeader/Search/types.d.cts +14 -0
  235. package/dist/AppHeader/Search/types.d.cts.map +1 -0
  236. package/dist/AppHeader/Search/types.d.ts +12 -19
  237. package/dist/AppHeader/Search/types.d.ts.map +1 -0
  238. package/dist/AppHeader/Search/useHeaderSearch.cjs +40 -0
  239. package/dist/AppHeader/Search/useHeaderSearch.cjs.map +1 -0
  240. package/dist/AppHeader/Search/useHeaderSearch.js +39 -40
  241. package/dist/AppHeader/Search/useHeaderSearch.js.map +1 -0
  242. package/dist/AppHeader/index.cjs +82 -0
  243. package/dist/AppHeader/index.cjs.map +1 -0
  244. package/dist/AppHeader/index.d.cts +29 -0
  245. package/dist/AppHeader/index.d.cts.map +1 -0
  246. package/dist/AppHeader/index.d.ts +29 -22
  247. package/dist/AppHeader/index.d.ts.map +1 -0
  248. package/dist/AppHeader/index.js +81 -98
  249. package/dist/AppHeader/index.js.map +1 -0
  250. package/dist/AppHeader/shared/elements.cjs +187 -0
  251. package/dist/AppHeader/shared/elements.cjs.map +1 -0
  252. package/dist/AppHeader/shared/elements.d.ts +8 -90
  253. package/dist/AppHeader/shared/elements.js +165 -241
  254. package/dist/AppHeader/shared/elements.js.map +1 -0
  255. package/dist/AppHeader/shared/index.cjs +3 -0
  256. package/dist/AppHeader/shared/index.d.ts +4 -4
  257. package/dist/AppHeader/shared/index.js +3 -4
  258. package/dist/AppHeader/shared/keyboardNav.cjs +69 -0
  259. package/dist/AppHeader/shared/keyboardNav.cjs.map +1 -0
  260. package/dist/AppHeader/shared/keyboardNav.d.ts +1 -23
  261. package/dist/AppHeader/shared/keyboardNav.js +64 -65
  262. package/dist/AppHeader/shared/keyboardNav.js.map +1 -0
  263. package/dist/AppHeader/shared/mockAppHeaderItems.d.ts +1 -2
  264. package/dist/AppHeader/shared/types.cjs +7 -0
  265. package/dist/AppHeader/shared/types.cjs.map +1 -0
  266. package/dist/AppHeader/shared/types.d.cts +110 -0
  267. package/dist/AppHeader/shared/types.d.cts.map +1 -0
  268. package/dist/AppHeader/shared/types.d.ts +107 -104
  269. package/dist/AppHeader/shared/types.d.ts.map +1 -0
  270. package/dist/AppHeader/shared/types.js +6 -1
  271. package/dist/AppHeader/shared/types.js.map +1 -0
  272. package/dist/AppHeader/shared/utils.cjs +82 -0
  273. package/dist/AppHeader/shared/utils.cjs.map +1 -0
  274. package/dist/AppHeader/shared/utils.js +81 -100
  275. package/dist/AppHeader/shared/utils.js.map +1 -0
  276. package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.cjs +123 -0
  277. package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.cjs.map +1 -0
  278. package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.d.cts +13 -0
  279. package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.d.cts.map +1 -0
  280. package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.d.ts +13 -7
  281. package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.d.ts.map +1 -0
  282. package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.js +118 -139
  283. package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.js.map +1 -0
  284. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.cjs +31 -0
  285. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.cjs.map +1 -0
  286. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.js +27 -29
  287. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.js.map +1 -0
  288. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.cjs +105 -0
  289. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.cjs.map +1 -0
  290. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.d.cts +13 -0
  291. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.d.cts.map +1 -0
  292. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.d.ts +12 -7
  293. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.d.ts.map +1 -0
  294. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.js +100 -121
  295. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.js.map +1 -0
  296. package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.cjs +62 -0
  297. package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.cjs.map +1 -0
  298. package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.js +57 -58
  299. package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.js.map +1 -0
  300. package/dist/AppHeaderMobile/index.cjs +167 -0
  301. package/dist/AppHeaderMobile/index.cjs.map +1 -0
  302. package/dist/AppHeaderMobile/index.d.cts +25 -0
  303. package/dist/AppHeaderMobile/index.d.cts.map +1 -0
  304. package/dist/AppHeaderMobile/index.d.ts +27 -19
  305. package/dist/AppHeaderMobile/index.d.ts.map +1 -0
  306. package/dist/AppHeaderMobile/index.js +163 -212
  307. package/dist/AppHeaderMobile/index.js.map +1 -0
  308. package/dist/Avatar/index.cjs +45 -0
  309. package/dist/Avatar/index.cjs.map +1 -0
  310. package/dist/Avatar/index.d.cts +41 -0
  311. package/dist/Avatar/index.d.cts.map +1 -0
  312. package/dist/Avatar/index.d.ts +38 -33
  313. package/dist/Avatar/index.d.ts.map +1 -0
  314. package/dist/Avatar/index.js +42 -45
  315. package/dist/Avatar/index.js.map +1 -0
  316. package/dist/AvatarChooser/index.cjs +80 -0
  317. package/dist/AvatarChooser/index.cjs.map +1 -0
  318. package/dist/AvatarChooser/index.d.cts +16 -0
  319. package/dist/AvatarChooser/index.d.cts.map +1 -0
  320. package/dist/AvatarChooser/index.d.ts +14 -10
  321. package/dist/AvatarChooser/index.d.ts.map +1 -0
  322. package/dist/AvatarChooser/index.js +75 -102
  323. package/dist/AvatarChooser/index.js.map +1 -0
  324. package/dist/BackToTopAnchor/index.cjs +31 -0
  325. package/dist/BackToTopAnchor/index.cjs.map +1 -0
  326. package/dist/BackToTopAnchor/index.d.cts +12 -0
  327. package/dist/BackToTopAnchor/index.d.cts.map +1 -0
  328. package/dist/BackToTopAnchor/index.d.ts +10 -11
  329. package/dist/BackToTopAnchor/index.d.ts.map +1 -0
  330. package/dist/BackToTopAnchor/index.js +29 -37
  331. package/dist/BackToTopAnchor/index.js.map +1 -0
  332. package/dist/Banner/CountdownTimer.cjs +96 -0
  333. package/dist/Banner/CountdownTimer.cjs.map +1 -0
  334. package/dist/Banner/CountdownTimer.d.cts +11 -0
  335. package/dist/Banner/CountdownTimer.d.cts.map +1 -0
  336. package/dist/Banner/CountdownTimer.d.ts +9 -5
  337. package/dist/Banner/CountdownTimer.d.ts.map +1 -0
  338. package/dist/Banner/CountdownTimer.js +90 -106
  339. package/dist/Banner/CountdownTimer.js.map +1 -0
  340. package/dist/Banner/EnhancedBanner.cjs +124 -0
  341. package/dist/Banner/EnhancedBanner.cjs.map +1 -0
  342. package/dist/Banner/EnhancedBanner.d.cts +21 -0
  343. package/dist/Banner/EnhancedBanner.d.cts.map +1 -0
  344. package/dist/Banner/EnhancedBanner.d.ts +20 -16
  345. package/dist/Banner/EnhancedBanner.d.ts.map +1 -0
  346. package/dist/Banner/EnhancedBanner.js +118 -169
  347. package/dist/Banner/EnhancedBanner.js.map +1 -0
  348. package/dist/Banner/index.cjs +90 -0
  349. package/dist/Banner/index.cjs.map +1 -0
  350. package/dist/Banner/index.d.cts +25 -0
  351. package/dist/Banner/index.d.cts.map +1 -0
  352. package/dist/Banner/index.d.ts +22 -18
  353. package/dist/Banner/index.d.ts.map +1 -0
  354. package/dist/Banner/index.js +81 -95
  355. package/dist/Banner/index.js.map +1 -0
  356. package/dist/BetaSticker/index.cjs +58 -0
  357. package/dist/BetaSticker/index.cjs.map +1 -0
  358. package/dist/BetaSticker/index.d.cts +10 -0
  359. package/dist/BetaSticker/index.d.cts.map +1 -0
  360. package/dist/BetaSticker/index.d.ts +8 -4
  361. package/dist/BetaSticker/index.d.ts.map +1 -0
  362. package/dist/BetaSticker/index.js +54 -56
  363. package/dist/BetaSticker/index.js.map +1 -0
  364. package/dist/CareerPathCard/index.cjs +33 -0
  365. package/dist/CareerPathCard/index.cjs.map +1 -0
  366. package/dist/CareerPathCard/index.d.cts +27 -0
  367. package/dist/CareerPathCard/index.d.cts.map +1 -0
  368. package/dist/CareerPathCard/index.d.ts +25 -20
  369. package/dist/CareerPathCard/index.d.ts.map +1 -0
  370. package/dist/CareerPathCard/index.js +32 -49
  371. package/dist/CareerPathCard/index.js.map +1 -0
  372. package/dist/Carousel/elements.cjs +16 -0
  373. package/dist/Carousel/elements.cjs.map +1 -0
  374. package/dist/Carousel/elements.js +14 -14
  375. package/dist/Carousel/elements.js.map +1 -0
  376. package/dist/Carousel/index.cjs +177 -0
  377. package/dist/Carousel/index.cjs.map +1 -0
  378. package/dist/Carousel/index.d.cts +28 -0
  379. package/dist/Carousel/index.d.cts.map +1 -0
  380. package/dist/Carousel/index.d.ts +25 -21
  381. package/dist/Carousel/index.d.ts.map +1 -0
  382. package/dist/Carousel/index.js +168 -247
  383. package/dist/Carousel/index.js.map +1 -0
  384. package/dist/CertificationPathCard/index.cjs +40 -0
  385. package/dist/CertificationPathCard/index.cjs.map +1 -0
  386. package/dist/CertificationPathCard/index.d.cts +28 -0
  387. package/dist/CertificationPathCard/index.d.cts.map +1 -0
  388. package/dist/CertificationPathCard/index.d.ts +25 -20
  389. package/dist/CertificationPathCard/index.d.ts.map +1 -0
  390. package/dist/CertificationPathCard/index.js +39 -52
  391. package/dist/CertificationPathCard/index.js.map +1 -0
  392. package/dist/CoachingSessionCard/index.cjs +54 -0
  393. package/dist/CoachingSessionCard/index.cjs.map +1 -0
  394. package/dist/CoachingSessionCard/index.d.cts +25 -0
  395. package/dist/CoachingSessionCard/index.d.cts.map +1 -0
  396. package/dist/CoachingSessionCard/index.d.ts +24 -20
  397. package/dist/CoachingSessionCard/index.d.ts.map +1 -0
  398. package/dist/CoachingSessionCard/index.js +51 -73
  399. package/dist/CoachingSessionCard/index.js.map +1 -0
  400. package/dist/CommunityEventCard/EventTypeIcon.cjs +60 -0
  401. package/dist/CommunityEventCard/EventTypeIcon.cjs.map +1 -0
  402. package/dist/CommunityEventCard/EventTypeIcon.js +58 -58
  403. package/dist/CommunityEventCard/EventTypeIcon.js.map +1 -0
  404. package/dist/CommunityEventCard/index.cjs +215 -0
  405. package/dist/CommunityEventCard/index.cjs.map +1 -0
  406. package/dist/CommunityEventCard/index.d.cts +32 -0
  407. package/dist/CommunityEventCard/index.d.cts.map +1 -0
  408. package/dist/CommunityEventCard/index.d.ts +31 -27
  409. package/dist/CommunityEventCard/index.d.ts.map +1 -0
  410. package/dist/CommunityEventCard/index.js +210 -304
  411. package/dist/CommunityEventCard/index.js.map +1 -0
  412. package/dist/CommunityEventToast/index.cjs +28 -0
  413. package/dist/CommunityEventToast/index.cjs.map +1 -0
  414. package/dist/CommunityEventToast/index.d.cts +10 -0
  415. package/dist/CommunityEventToast/index.d.cts.map +1 -0
  416. package/dist/CommunityEventToast/index.d.ts +8 -4
  417. package/dist/CommunityEventToast/index.d.ts.map +1 -0
  418. package/dist/CommunityEventToast/index.js +26 -32
  419. package/dist/CommunityEventToast/index.js.map +1 -0
  420. package/dist/ContentGroupBaseCard/helpers.cjs +16 -0
  421. package/dist/ContentGroupBaseCard/helpers.cjs.map +1 -0
  422. package/dist/ContentGroupBaseCard/helpers.d.cts +9 -0
  423. package/dist/ContentGroupBaseCard/helpers.d.cts.map +1 -0
  424. package/dist/ContentGroupBaseCard/helpers.d.ts +9 -4
  425. package/dist/ContentGroupBaseCard/helpers.d.ts.map +1 -0
  426. package/dist/ContentGroupBaseCard/helpers.js +13 -11
  427. package/dist/ContentGroupBaseCard/helpers.js.map +1 -0
  428. package/dist/ContentGroupBaseCard/index.cjs +167 -0
  429. package/dist/ContentGroupBaseCard/index.cjs.map +1 -0
  430. package/dist/ContentGroupBaseCard/index.d.cts +41 -0
  431. package/dist/ContentGroupBaseCard/index.d.cts.map +1 -0
  432. package/dist/ContentGroupBaseCard/index.d.ts +39 -31
  433. package/dist/ContentGroupBaseCard/index.d.ts.map +1 -0
  434. package/dist/ContentGroupBaseCard/index.js +160 -235
  435. package/dist/ContentGroupBaseCard/index.js.map +1 -0
  436. package/dist/ContentGroupBaseCard/shared.cjs +49 -0
  437. package/dist/ContentGroupBaseCard/shared.cjs.map +1 -0
  438. package/dist/ContentGroupBaseCard/shared.js +41 -66
  439. package/dist/ContentGroupBaseCard/shared.js.map +1 -0
  440. package/dist/ContentGroupBaseCard/types.cjs +29 -0
  441. package/dist/ContentGroupBaseCard/types.cjs.map +1 -0
  442. package/dist/ContentGroupBaseCard/types.d.cts +14 -0
  443. package/dist/ContentGroupBaseCard/types.d.cts.map +1 -0
  444. package/dist/ContentGroupBaseCard/types.d.ts +12 -8
  445. package/dist/ContentGroupBaseCard/types.d.ts.map +1 -0
  446. package/dist/ContentGroupBaseCard/types.js +17 -12
  447. package/dist/ContentGroupBaseCard/types.js.map +1 -0
  448. package/dist/CourseCard/index.cjs +32 -0
  449. package/dist/CourseCard/index.cjs.map +1 -0
  450. package/dist/CourseCard/index.d.cts +26 -0
  451. package/dist/CourseCard/index.d.cts.map +1 -0
  452. package/dist/CourseCard/index.d.ts +25 -19
  453. package/dist/CourseCard/index.d.ts.map +1 -0
  454. package/dist/CourseCard/index.js +31 -45
  455. package/dist/CourseCard/index.js.map +1 -0
  456. package/dist/CurriculumCard/BottomTag/index.cjs +28 -0
  457. package/dist/CurriculumCard/BottomTag/index.cjs.map +1 -0
  458. package/dist/CurriculumCard/BottomTag/index.d.cts +5 -0
  459. package/dist/CurriculumCard/BottomTag/index.d.cts.map +1 -0
  460. package/dist/CurriculumCard/BottomTag/index.d.ts +7 -7
  461. package/dist/CurriculumCard/BottomTag/index.d.ts.map +1 -0
  462. package/dist/CurriculumCard/BottomTag/index.js +24 -24
  463. package/dist/CurriculumCard/BottomTag/index.js.map +1 -0
  464. package/dist/CurriculumCard/Difficulty/helpers.cjs +17 -0
  465. package/dist/CurriculumCard/Difficulty/helpers.cjs.map +1 -0
  466. package/dist/CurriculumCard/Difficulty/helpers.d.cts +13 -0
  467. package/dist/CurriculumCard/Difficulty/helpers.d.cts.map +1 -0
  468. package/dist/CurriculumCard/Difficulty/helpers.d.ts +7 -2
  469. package/dist/CurriculumCard/Difficulty/helpers.d.ts.map +1 -0
  470. package/dist/CurriculumCard/Difficulty/helpers.js +15 -11
  471. package/dist/CurriculumCard/Difficulty/helpers.js.map +1 -0
  472. package/dist/CurriculumCard/Difficulty/index.cjs +51 -0
  473. package/dist/CurriculumCard/Difficulty/index.cjs.map +1 -0
  474. package/dist/CurriculumCard/Difficulty/index.d.cts +8 -0
  475. package/dist/CurriculumCard/Difficulty/index.d.cts.map +1 -0
  476. package/dist/CurriculumCard/Difficulty/index.d.ts +8 -3
  477. package/dist/CurriculumCard/Difficulty/index.d.ts.map +1 -0
  478. package/dist/CurriculumCard/Difficulty/index.js +45 -46
  479. package/dist/CurriculumCard/Difficulty/index.js.map +1 -0
  480. package/dist/CurriculumCard/Difficulty/types.cjs +31 -0
  481. package/dist/CurriculumCard/Difficulty/types.cjs.map +1 -0
  482. package/dist/CurriculumCard/Difficulty/types.d.cts +26 -0
  483. package/dist/CurriculumCard/Difficulty/types.d.cts.map +1 -0
  484. package/dist/CurriculumCard/Difficulty/types.d.ts +17 -13
  485. package/dist/CurriculumCard/Difficulty/types.d.ts.map +1 -0
  486. package/dist/CurriculumCard/Difficulty/types.js +17 -18
  487. package/dist/CurriculumCard/Difficulty/types.js.map +1 -0
  488. package/dist/CurriculumCard/Footer/index.cjs +39 -0
  489. package/dist/CurriculumCard/Footer/index.cjs.map +1 -0
  490. package/dist/CurriculumCard/Footer/index.js +37 -54
  491. package/dist/CurriculumCard/Footer/index.js.map +1 -0
  492. package/dist/CurriculumCard/Image/index.cjs +52 -0
  493. package/dist/CurriculumCard/Image/index.cjs.map +1 -0
  494. package/dist/CurriculumCard/Image/index.js +46 -52
  495. package/dist/CurriculumCard/Image/index.js.map +1 -0
  496. package/dist/CurriculumCard/Subtitle/helpers.cjs +10 -0
  497. package/dist/CurriculumCard/Subtitle/helpers.cjs.map +1 -0
  498. package/dist/CurriculumCard/Subtitle/helpers.js +9 -8
  499. package/dist/CurriculumCard/Subtitle/helpers.js.map +1 -0
  500. package/dist/CurriculumCard/Subtitle/index.cjs +29 -0
  501. package/dist/CurriculumCard/Subtitle/index.cjs.map +1 -0
  502. package/dist/CurriculumCard/Subtitle/index.d.cts +11 -0
  503. package/dist/CurriculumCard/Subtitle/index.d.cts.map +1 -0
  504. package/dist/CurriculumCard/Subtitle/index.d.ts +11 -7
  505. package/dist/CurriculumCard/Subtitle/index.d.ts.map +1 -0
  506. package/dist/CurriculumCard/Subtitle/index.js +26 -34
  507. package/dist/CurriculumCard/Subtitle/index.js.map +1 -0
  508. package/dist/CurriculumCard/index.cjs +105 -0
  509. package/dist/CurriculumCard/index.cjs.map +1 -0
  510. package/dist/CurriculumCard/index.d.cts +64 -0
  511. package/dist/CurriculumCard/index.d.cts.map +1 -0
  512. package/dist/CurriculumCard/index.d.ts +57 -52
  513. package/dist/CurriculumCard/index.d.ts.map +1 -0
  514. package/dist/CurriculumCard/index.js +98 -124
  515. package/dist/CurriculumCard/index.js.map +1 -0
  516. package/dist/DropdownButton/DropdownList.cjs +59 -0
  517. package/dist/DropdownButton/DropdownList.cjs.map +1 -0
  518. package/dist/DropdownButton/DropdownList.d.cts +20 -0
  519. package/dist/DropdownButton/DropdownList.d.cts.map +1 -0
  520. package/dist/DropdownButton/DropdownList.d.ts +17 -14
  521. package/dist/DropdownButton/DropdownList.d.ts.map +1 -0
  522. package/dist/DropdownButton/DropdownList.js +57 -73
  523. package/dist/DropdownButton/DropdownList.js.map +1 -0
  524. package/dist/DropdownButton/index.cjs +138 -0
  525. package/dist/DropdownButton/index.cjs.map +1 -0
  526. package/dist/DropdownButton/index.d.cts +81 -0
  527. package/dist/DropdownButton/index.d.cts.map +1 -0
  528. package/dist/DropdownButton/index.d.ts +76 -69
  529. package/dist/DropdownButton/index.d.ts.map +1 -0
  530. package/dist/DropdownButton/index.js +136 -169
  531. package/dist/DropdownButton/index.js.map +1 -0
  532. package/dist/DropdownButton/useDynamicPopoverPosition.cjs +42 -0
  533. package/dist/DropdownButton/useDynamicPopoverPosition.cjs.map +1 -0
  534. package/dist/DropdownButton/useDynamicPopoverPosition.js +35 -49
  535. package/dist/DropdownButton/useDynamicPopoverPosition.js.map +1 -0
  536. package/dist/EmptySection/index.cjs +153 -0
  537. package/dist/EmptySection/index.cjs.map +1 -0
  538. package/dist/EmptySection/index.d.cts +33 -0
  539. package/dist/EmptySection/index.d.cts.map +1 -0
  540. package/dist/EmptySection/index.d.ts +33 -27
  541. package/dist/EmptySection/index.d.ts.map +1 -0
  542. package/dist/EmptySection/index.js +146 -179
  543. package/dist/EmptySection/index.js.map +1 -0
  544. package/dist/ErrorContents/index.cjs +35 -0
  545. package/dist/ErrorContents/index.cjs.map +1 -0
  546. package/dist/ErrorContents/index.d.cts +13 -0
  547. package/dist/ErrorContents/index.d.cts.map +1 -0
  548. package/dist/ErrorContents/index.d.ts +12 -7
  549. package/dist/ErrorContents/index.d.ts.map +1 -0
  550. package/dist/ErrorContents/index.js +33 -48
  551. package/dist/ErrorContents/index.js.map +1 -0
  552. package/dist/FeatureList/index.cjs +33 -0
  553. package/dist/FeatureList/index.cjs.map +1 -0
  554. package/dist/FeatureList/index.d.cts +19 -0
  555. package/dist/FeatureList/index.d.cts.map +1 -0
  556. package/dist/FeatureList/index.d.ts +17 -9
  557. package/dist/FeatureList/index.d.ts.map +1 -0
  558. package/dist/FeatureList/index.js +31 -41
  559. package/dist/FeatureList/index.js.map +1 -0
  560. package/dist/GlobalFooter/FooterHeading.cjs +31 -0
  561. package/dist/GlobalFooter/FooterHeading.cjs.map +1 -0
  562. package/dist/GlobalFooter/FooterHeading.js +28 -29
  563. package/dist/GlobalFooter/FooterHeading.js.map +1 -0
  564. package/dist/GlobalFooter/FooterLegal/LegalLinks.cjs +58 -0
  565. package/dist/GlobalFooter/FooterLegal/LegalLinks.cjs.map +1 -0
  566. package/dist/GlobalFooter/FooterLegal/LegalLinks.js +55 -43
  567. package/dist/GlobalFooter/FooterLegal/LegalLinks.js.map +1 -0
  568. package/dist/GlobalFooter/FooterLegal/MadeIn.cjs +48 -0
  569. package/dist/GlobalFooter/FooterLegal/MadeIn.cjs.map +1 -0
  570. package/dist/GlobalFooter/FooterLegal/MadeIn.js +44 -63
  571. package/dist/GlobalFooter/FooterLegal/MadeIn.js.map +1 -0
  572. package/dist/GlobalFooter/FooterLegal/index.cjs +21 -0
  573. package/dist/GlobalFooter/FooterLegal/index.cjs.map +1 -0
  574. package/dist/GlobalFooter/FooterLegal/index.js +18 -22
  575. package/dist/GlobalFooter/FooterLegal/index.js.map +1 -0
  576. package/dist/GlobalFooter/FooterLinks.cjs +43 -0
  577. package/dist/GlobalFooter/FooterLinks.cjs.map +1 -0
  578. package/dist/GlobalFooter/FooterLinks.js +38 -52
  579. package/dist/GlobalFooter/FooterLinks.js.map +1 -0
  580. package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.cjs +229 -0
  581. package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.cjs.map +1 -0
  582. package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.js +221 -293
  583. package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.js.map +1 -0
  584. package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.cjs +196 -0
  585. package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.cjs.map +1 -0
  586. package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.js +193 -286
  587. package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.js.map +1 -0
  588. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.cjs +203 -0
  589. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.cjs.map +1 -0
  590. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.js +198 -270
  591. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.js.map +1 -0
  592. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.cjs +27 -0
  593. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.cjs.map +1 -0
  594. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.js +25 -29
  595. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.js.map +1 -0
  596. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.cjs +70 -0
  597. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.cjs.map +1 -0
  598. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.js +65 -75
  599. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.js.map +1 -0
  600. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.cjs +68 -0
  601. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.cjs.map +1 -0
  602. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.js +67 -86
  603. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.js.map +1 -0
  604. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.d.cts +8 -0
  605. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.d.cts.map +1 -0
  606. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.d.ts +7 -3
  607. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.d.ts.map +1 -0
  608. package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.cjs +57 -0
  609. package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.cjs.map +1 -0
  610. package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.js +55 -50
  611. package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.js.map +1 -0
  612. package/dist/GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.cjs +12 -0
  613. package/dist/GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.cjs.map +1 -0
  614. package/dist/GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.js +6 -0
  615. package/dist/GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.js.map +1 -0
  616. package/dist/GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.cjs +12 -0
  617. package/dist/GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.cjs.map +1 -0
  618. package/dist/GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.js +6 -0
  619. package/dist/GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.js.map +1 -0
  620. package/dist/GlobalFooter/FooterNavLinks/index.cjs +37 -0
  621. package/dist/GlobalFooter/FooterNavLinks/index.cjs.map +1 -0
  622. package/dist/GlobalFooter/FooterNavLinks/index.js +34 -43
  623. package/dist/GlobalFooter/FooterNavLinks/index.js.map +1 -0
  624. package/dist/GlobalFooter/index.cjs +34 -0
  625. package/dist/GlobalFooter/index.cjs.map +1 -0
  626. package/dist/GlobalFooter/index.d.cts +27 -0
  627. package/dist/GlobalFooter/index.d.cts.map +1 -0
  628. package/dist/GlobalFooter/index.d.ts +26 -21
  629. package/dist/GlobalFooter/index.d.ts.map +1 -0
  630. package/dist/GlobalFooter/index.js +31 -37
  631. package/dist/GlobalFooter/index.js.map +1 -0
  632. package/dist/GlobalFooter/types.d.cts +17 -0
  633. package/dist/GlobalFooter/types.d.cts.map +1 -0
  634. package/dist/GlobalFooter/types.d.ts +15 -11
  635. package/dist/GlobalFooter/types.d.ts.map +1 -0
  636. package/dist/GlobalHeader/GlobalHeaderItems.cjs +439 -0
  637. package/dist/GlobalHeader/GlobalHeaderItems.cjs.map +1 -0
  638. package/dist/GlobalHeader/GlobalHeaderItems.js +371 -377
  639. package/dist/GlobalHeader/GlobalHeaderItems.js.map +1 -0
  640. package/dist/GlobalHeader/GlobalHeaderVariants.cjs +344 -0
  641. package/dist/GlobalHeader/GlobalHeaderVariants.cjs.map +1 -0
  642. package/dist/GlobalHeader/GlobalHeaderVariants.js +297 -325
  643. package/dist/GlobalHeader/GlobalHeaderVariants.js.map +1 -0
  644. package/dist/GlobalHeader/context.cjs +83 -0
  645. package/dist/GlobalHeader/context.cjs.map +1 -0
  646. package/dist/GlobalHeader/context.js +70 -72
  647. package/dist/GlobalHeader/context.js.map +1 -0
  648. package/dist/GlobalHeader/index.cjs +132 -0
  649. package/dist/GlobalHeader/index.cjs.map +1 -0
  650. package/dist/GlobalHeader/index.d.cts +11 -0
  651. package/dist/GlobalHeader/index.d.cts.map +1 -0
  652. package/dist/GlobalHeader/index.d.ts +11 -7
  653. package/dist/GlobalHeader/index.d.ts.map +1 -0
  654. package/dist/GlobalHeader/index.js +126 -180
  655. package/dist/GlobalHeader/index.js.map +1 -0
  656. package/dist/GlobalHeader/types.d.cts +125 -0
  657. package/dist/GlobalHeader/types.d.cts.map +1 -0
  658. package/dist/GlobalHeader/types.d.ts +105 -99
  659. package/dist/GlobalHeader/types.d.ts.map +1 -0
  660. package/dist/GlobalHeader/urlHelpers.cjs +23 -0
  661. package/dist/GlobalHeader/urlHelpers.cjs.map +1 -0
  662. package/dist/GlobalHeader/urlHelpers.js +20 -20
  663. package/dist/GlobalHeader/urlHelpers.js.map +1 -0
  664. package/dist/GlobalPage/index.cjs +29 -0
  665. package/dist/GlobalPage/index.cjs.map +1 -0
  666. package/dist/GlobalPage/index.d.cts +52 -0
  667. package/dist/GlobalPage/index.d.cts.map +1 -0
  668. package/dist/GlobalPage/index.d.ts +47 -43
  669. package/dist/GlobalPage/index.d.ts.map +1 -0
  670. package/dist/GlobalPage/index.js +27 -60
  671. package/dist/GlobalPage/index.js.map +1 -0
  672. package/dist/Grid/GridCollapse.cjs +134 -0
  673. package/dist/Grid/GridCollapse.cjs.map +1 -0
  674. package/dist/Grid/GridCollapse.d.cts +50 -0
  675. package/dist/Grid/GridCollapse.d.cts.map +1 -0
  676. package/dist/Grid/GridCollapse.d.ts +48 -39
  677. package/dist/Grid/GridCollapse.d.ts.map +1 -0
  678. package/dist/Grid/GridCollapse.js +126 -195
  679. package/dist/Grid/GridCollapse.js.map +1 -0
  680. package/dist/Grid/Subgrid.cjs +41 -0
  681. package/dist/Grid/Subgrid.cjs.map +1 -0
  682. package/dist/Grid/Subgrid.d.cts +29 -0
  683. package/dist/Grid/Subgrid.d.cts.map +1 -0
  684. package/dist/Grid/Subgrid.d.ts +11 -5
  685. package/dist/Grid/Subgrid.d.ts.map +1 -0
  686. package/dist/Grid/Subgrid.js +37 -35
  687. package/dist/Grid/Subgrid.js.map +1 -0
  688. package/dist/Grid/getCSSFromColumnCount.cjs +11 -0
  689. package/dist/Grid/getCSSFromColumnCount.cjs.map +1 -0
  690. package/dist/Grid/getCSSFromColumnCount.d.cts +11 -0
  691. package/dist/Grid/getCSSFromColumnCount.d.cts.map +1 -0
  692. package/dist/Grid/getCSSFromColumnCount.d.ts +11 -6
  693. package/dist/Grid/getCSSFromColumnCount.d.ts.map +1 -0
  694. package/dist/Grid/getCSSFromColumnCount.js +10 -7
  695. package/dist/Grid/getCSSFromColumnCount.js.map +1 -0
  696. package/dist/Grid/index.cjs +3 -0
  697. package/dist/Grid/index.d.ts +3 -3
  698. package/dist/Grid/index.js +3 -3
  699. package/dist/HeaderHeightArea/index.cjs +40 -0
  700. package/dist/HeaderHeightArea/index.cjs.map +1 -0
  701. package/dist/HeaderHeightArea/index.js +36 -39
  702. package/dist/HeaderHeightArea/index.js.map +1 -0
  703. package/dist/HeaderHeightArea/useIsInHeaderRegion.cjs +18 -0
  704. package/dist/HeaderHeightArea/useIsInHeaderRegion.cjs.map +1 -0
  705. package/dist/HeaderHeightArea/useIsInHeaderRegion.js +16 -14
  706. package/dist/HeaderHeightArea/useIsInHeaderRegion.js.map +1 -0
  707. package/dist/HorizontalScrollMenu/index.cjs +57 -0
  708. package/dist/HorizontalScrollMenu/index.cjs.map +1 -0
  709. package/dist/HorizontalScrollMenu/index.d.cts +11 -0
  710. package/dist/HorizontalScrollMenu/index.d.cts.map +1 -0
  711. package/dist/HorizontalScrollMenu/index.d.ts +11 -6
  712. package/dist/HorizontalScrollMenu/index.d.ts.map +1 -0
  713. package/dist/HorizontalScrollMenu/index.js +55 -75
  714. package/dist/HorizontalScrollMenu/index.js.map +1 -0
  715. package/dist/HubCard/index.cjs +33 -0
  716. package/dist/HubCard/index.cjs.map +1 -0
  717. package/dist/HubCard/index.d.cts +13 -0
  718. package/dist/HubCard/index.d.cts.map +1 -0
  719. package/dist/HubCard/index.d.ts +12 -7
  720. package/dist/HubCard/index.d.ts.map +1 -0
  721. package/dist/HubCard/index.js +31 -38
  722. package/dist/HubCard/index.js.map +1 -0
  723. package/dist/InfoCard/index.cjs +99 -0
  724. package/dist/InfoCard/index.cjs.map +1 -0
  725. package/dist/InfoCard/index.d.cts +24 -0
  726. package/dist/InfoCard/index.d.cts.map +1 -0
  727. package/dist/InfoCard/index.d.ts +23 -18
  728. package/dist/InfoCard/index.d.ts.map +1 -0
  729. package/dist/InfoCard/index.js +93 -153
  730. package/dist/InfoCard/index.js.map +1 -0
  731. package/dist/InstructorCard/index.cjs +137 -0
  732. package/dist/InstructorCard/index.cjs.map +1 -0
  733. package/dist/InstructorCard/index.d.cts +17 -0
  734. package/dist/InstructorCard/index.d.cts.map +1 -0
  735. package/dist/InstructorCard/index.d.ts +16 -17
  736. package/dist/InstructorCard/index.d.ts.map +1 -0
  737. package/dist/InstructorCard/index.js +130 -171
  738. package/dist/InstructorCard/index.js.map +1 -0
  739. package/dist/Konamimojisplosion/Konamimojisplosion.cjs +11 -0
  740. package/dist/Konamimojisplosion/Konamimojisplosion.cjs.map +1 -0
  741. package/dist/Konamimojisplosion/Konamimojisplosion.d.cts +10 -0
  742. package/dist/Konamimojisplosion/Konamimojisplosion.d.cts.map +1 -0
  743. package/dist/Konamimojisplosion/Konamimojisplosion.d.ts +9 -4
  744. package/dist/Konamimojisplosion/Konamimojisplosion.d.ts.map +1 -0
  745. package/dist/Konamimojisplosion/Konamimojisplosion.js +11 -7
  746. package/dist/Konamimojisplosion/Konamimojisplosion.js.map +1 -0
  747. package/dist/Konamimojisplosion/index.cjs +2 -0
  748. package/dist/Konamimojisplosion/index.d.ts +2 -2
  749. package/dist/Konamimojisplosion/index.js +2 -2
  750. package/dist/Konamimojisplosion/useKonamimojisplosion.cjs +48 -0
  751. package/dist/Konamimojisplosion/useKonamimojisplosion.cjs.map +1 -0
  752. package/dist/Konamimojisplosion/useKonamimojisplosion.d.cts +5 -0
  753. package/dist/Konamimojisplosion/useKonamimojisplosion.d.cts.map +1 -0
  754. package/dist/Konamimojisplosion/useKonamimojisplosion.d.ts +5 -1
  755. package/dist/Konamimojisplosion/useKonamimojisplosion.d.ts.map +1 -0
  756. package/dist/Konamimojisplosion/useKonamimojisplosion.js +45 -32
  757. package/dist/Konamimojisplosion/useKonamimojisplosion.js.map +1 -0
  758. package/dist/LandingPage/Description.cjs +17 -0
  759. package/dist/LandingPage/Description.cjs.map +1 -0
  760. package/dist/LandingPage/Description.d.cts +11 -0
  761. package/dist/LandingPage/Description.d.cts.map +1 -0
  762. package/dist/LandingPage/Description.d.ts +10 -5
  763. package/dist/LandingPage/Description.d.ts.map +1 -0
  764. package/dist/LandingPage/Description.js +15 -14
  765. package/dist/LandingPage/Description.js.map +1 -0
  766. package/dist/LandingPage/PageFAQs.cjs +40 -0
  767. package/dist/LandingPage/PageFAQs.cjs.map +1 -0
  768. package/dist/LandingPage/PageFAQs.d.cts +17 -0
  769. package/dist/LandingPage/PageFAQs.d.cts.map +1 -0
  770. package/dist/LandingPage/PageFAQs.d.ts +14 -10
  771. package/dist/LandingPage/PageFAQs.d.ts.map +1 -0
  772. package/dist/LandingPage/PageFAQs.js +37 -44
  773. package/dist/LandingPage/PageFAQs.js.map +1 -0
  774. package/dist/LandingPage/Title.cjs +32 -0
  775. package/dist/LandingPage/Title.cjs.map +1 -0
  776. package/dist/LandingPage/Title.d.cts +28 -0
  777. package/dist/LandingPage/Title.d.cts.map +1 -0
  778. package/dist/LandingPage/Title.d.ts +24 -19
  779. package/dist/LandingPage/Title.d.ts.map +1 -0
  780. package/dist/LandingPage/Title.js +28 -27
  781. package/dist/LandingPage/Title.js.map +1 -0
  782. package/dist/LandingPage/TitleWithEyebrow.cjs +34 -0
  783. package/dist/LandingPage/TitleWithEyebrow.cjs.map +1 -0
  784. package/dist/LandingPage/TitleWithEyebrow.d.cts +16 -0
  785. package/dist/LandingPage/TitleWithEyebrow.d.cts.map +1 -0
  786. package/dist/LandingPage/TitleWithEyebrow.d.ts +15 -10
  787. package/dist/LandingPage/TitleWithEyebrow.d.ts.map +1 -0
  788. package/dist/LandingPage/TitleWithEyebrow.js +32 -40
  789. package/dist/LandingPage/TitleWithEyebrow.js.map +1 -0
  790. package/dist/LandingPage/index.cjs +5 -0
  791. package/dist/LandingPage/index.d.ts +6 -6
  792. package/dist/LandingPage/index.js +5 -6
  793. package/dist/LandingPage/types.d.cts +36 -0
  794. package/dist/LandingPage/types.d.cts.map +1 -0
  795. package/dist/LandingPage/types.d.ts +34 -30
  796. package/dist/LandingPage/types.d.ts.map +1 -0
  797. package/dist/LayoutMenu/AccordionMenu.cjs +63 -0
  798. package/dist/LayoutMenu/AccordionMenu.cjs.map +1 -0
  799. package/dist/LayoutMenu/AccordionMenu.d.cts +19 -0
  800. package/dist/LayoutMenu/AccordionMenu.d.cts.map +1 -0
  801. package/dist/LayoutMenu/AccordionMenu.d.ts +17 -24
  802. package/dist/LayoutMenu/AccordionMenu.d.ts.map +1 -0
  803. package/dist/LayoutMenu/AccordionMenu.js +57 -69
  804. package/dist/LayoutMenu/AccordionMenu.js.map +1 -0
  805. package/dist/LayoutMenu/LayoutMenu.cjs +87 -0
  806. package/dist/LayoutMenu/LayoutMenu.cjs.map +1 -0
  807. package/dist/LayoutMenu/LayoutMenu.d.cts +49 -0
  808. package/dist/LayoutMenu/LayoutMenu.d.cts.map +1 -0
  809. package/dist/LayoutMenu/LayoutMenu.d.ts +48 -43
  810. package/dist/LayoutMenu/LayoutMenu.d.ts.map +1 -0
  811. package/dist/LayoutMenu/LayoutMenu.js +84 -118
  812. package/dist/LayoutMenu/LayoutMenu.js.map +1 -0
  813. package/dist/LayoutMenu/LayoutMenuSection.cjs +30 -0
  814. package/dist/LayoutMenu/LayoutMenuSection.cjs.map +1 -0
  815. package/dist/LayoutMenu/LayoutMenuSection.js +28 -39
  816. package/dist/LayoutMenu/LayoutMenuSection.js.map +1 -0
  817. package/dist/LayoutMenu/SectionItemLink.cjs +18 -0
  818. package/dist/LayoutMenu/SectionItemLink.cjs.map +1 -0
  819. package/dist/LayoutMenu/SectionItemLink.d.cts +12 -0
  820. package/dist/LayoutMenu/SectionItemLink.d.cts.map +1 -0
  821. package/dist/LayoutMenu/SectionItemLink.d.ts +11 -6
  822. package/dist/LayoutMenu/SectionItemLink.d.ts.map +1 -0
  823. package/dist/LayoutMenu/SectionItemLink.js +16 -16
  824. package/dist/LayoutMenu/SectionItemLink.js.map +1 -0
  825. package/dist/LayoutMenu/SelectedSectionItem.cjs +18 -0
  826. package/dist/LayoutMenu/SelectedSectionItem.cjs.map +1 -0
  827. package/dist/LayoutMenu/SelectedSectionItem.d.cts +8 -0
  828. package/dist/LayoutMenu/SelectedSectionItem.d.cts.map +1 -0
  829. package/dist/LayoutMenu/SelectedSectionItem.d.ts +8 -3
  830. package/dist/LayoutMenu/SelectedSectionItem.d.ts.map +1 -0
  831. package/dist/LayoutMenu/SelectedSectionItem.js +16 -17
  832. package/dist/LayoutMenu/SelectedSectionItem.js.map +1 -0
  833. package/dist/LayoutMenu/index.cjs +3 -0
  834. package/dist/LayoutMenu/index.d.ts +3 -3
  835. package/dist/LayoutMenu/index.js +3 -3
  836. package/dist/LayoutMenuVariant/AccordionMenu.cjs +69 -0
  837. package/dist/LayoutMenuVariant/AccordionMenu.cjs.map +1 -0
  838. package/dist/LayoutMenuVariant/AccordionMenu.d.cts +20 -0
  839. package/dist/LayoutMenuVariant/AccordionMenu.d.cts.map +1 -0
  840. package/dist/LayoutMenuVariant/AccordionMenu.d.ts +18 -19
  841. package/dist/LayoutMenuVariant/AccordionMenu.d.ts.map +1 -0
  842. package/dist/LayoutMenuVariant/AccordionMenu.js +65 -86
  843. package/dist/LayoutMenuVariant/AccordionMenu.js.map +1 -0
  844. package/dist/LayoutMenuVariant/LayoutMenu.cjs +73 -0
  845. package/dist/LayoutMenuVariant/LayoutMenu.cjs.map +1 -0
  846. package/dist/LayoutMenuVariant/LayoutMenu.d.cts +44 -0
  847. package/dist/LayoutMenuVariant/LayoutMenu.d.cts.map +1 -0
  848. package/dist/LayoutMenuVariant/LayoutMenu.d.ts +43 -38
  849. package/dist/LayoutMenuVariant/LayoutMenu.d.ts.map +1 -0
  850. package/dist/LayoutMenuVariant/LayoutMenu.js +69 -92
  851. package/dist/LayoutMenuVariant/LayoutMenu.js.map +1 -0
  852. package/dist/LayoutMenuVariant/LayoutMenuSection.cjs +33 -0
  853. package/dist/LayoutMenuVariant/LayoutMenuSection.cjs.map +1 -0
  854. package/dist/LayoutMenuVariant/LayoutMenuSection.js +30 -42
  855. package/dist/LayoutMenuVariant/LayoutMenuSection.js.map +1 -0
  856. package/dist/LayoutMenuVariant/SectionItemLink.cjs +18 -0
  857. package/dist/LayoutMenuVariant/SectionItemLink.cjs.map +1 -0
  858. package/dist/LayoutMenuVariant/SectionItemLink.d.cts +13 -0
  859. package/dist/LayoutMenuVariant/SectionItemLink.d.cts.map +1 -0
  860. package/dist/LayoutMenuVariant/SectionItemLink.d.ts +12 -7
  861. package/dist/LayoutMenuVariant/SectionItemLink.d.ts.map +1 -0
  862. package/dist/LayoutMenuVariant/SectionItemLink.js +16 -17
  863. package/dist/LayoutMenuVariant/SectionItemLink.js.map +1 -0
  864. package/dist/LayoutMenuVariant/index.cjs +18 -0
  865. package/dist/LayoutMenuVariant/index.cjs.map +1 -0
  866. package/dist/LayoutMenuVariant/index.d.cts +10 -0
  867. package/dist/LayoutMenuVariant/index.d.cts.map +1 -0
  868. package/dist/LayoutMenuVariant/index.d.ts +10 -2
  869. package/dist/LayoutMenuVariant/index.d.ts.map +1 -0
  870. package/dist/LayoutMenuVariant/index.js +13 -2
  871. package/dist/LayoutMenuVariant/index.js.map +1 -0
  872. package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.cjs +41 -0
  873. package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.cjs.map +1 -0
  874. package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.js +39 -55
  875. package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.js.map +1 -0
  876. package/dist/LearningOutcomeAssessmentScores/index.cjs +24 -0
  877. package/dist/LearningOutcomeAssessmentScores/index.cjs.map +1 -0
  878. package/dist/LearningOutcomeAssessmentScores/index.d.cts +11 -0
  879. package/dist/LearningOutcomeAssessmentScores/index.d.cts.map +1 -0
  880. package/dist/LearningOutcomeAssessmentScores/index.d.ts +9 -6
  881. package/dist/LearningOutcomeAssessmentScores/index.d.ts.map +1 -0
  882. package/dist/LearningOutcomeAssessmentScores/index.js +23 -24
  883. package/dist/LearningOutcomeAssessmentScores/index.js.map +1 -0
  884. package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.cjs +53 -0
  885. package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.cjs.map +1 -0
  886. package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.d.cts +22 -0
  887. package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.d.cts.map +1 -0
  888. package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.d.ts +18 -14
  889. package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.d.ts.map +1 -0
  890. package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.js +43 -56
  891. package/dist/LearningOutcomeBadges/LearningOutcomeLevelBadge.js.map +1 -0
  892. package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.cjs +37 -0
  893. package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.cjs.map +1 -0
  894. package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.d.cts +19 -0
  895. package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.d.cts.map +1 -0
  896. package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.d.ts +17 -8
  897. package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.d.ts.map +1 -0
  898. package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.js +32 -33
  899. package/dist/LearningOutcomeBadges/LearningOutcomeLowAssessmentBadge.js.map +1 -0
  900. package/dist/LearningOutcomeBadges/index.cjs +2 -0
  901. package/dist/LearningOutcomeBadges/index.d.ts +2 -2
  902. package/dist/LearningOutcomeBadges/index.js +2 -2
  903. package/dist/LearningOutcomeCard/index.cjs +163 -0
  904. package/dist/LearningOutcomeCard/index.cjs.map +1 -0
  905. package/dist/LearningOutcomeCard/index.d.cts +31 -0
  906. package/dist/LearningOutcomeCard/index.d.cts.map +1 -0
  907. package/dist/LearningOutcomeCard/index.d.ts +28 -23
  908. package/dist/LearningOutcomeCard/index.d.ts.map +1 -0
  909. package/dist/LearningOutcomeCard/index.js +155 -197
  910. package/dist/LearningOutcomeCard/index.js.map +1 -0
  911. package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.cjs +39 -0
  912. package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.cjs.map +1 -0
  913. package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.js +38 -42
  914. package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.js.map +1 -0
  915. package/dist/LearningOutcomeFlyout/index.cjs +277 -0
  916. package/dist/LearningOutcomeFlyout/index.cjs.map +1 -0
  917. package/dist/LearningOutcomeFlyout/index.d.cts +13 -0
  918. package/dist/LearningOutcomeFlyout/index.d.cts.map +1 -0
  919. package/dist/LearningOutcomeFlyout/index.d.ts +13 -7
  920. package/dist/LearningOutcomeFlyout/index.d.ts.map +1 -0
  921. package/dist/LearningOutcomeFlyout/index.js +264 -346
  922. package/dist/LearningOutcomeFlyout/index.js.map +1 -0
  923. package/dist/LearningOutcomeFlyout/types.cjs +16 -0
  924. package/dist/LearningOutcomeFlyout/types.cjs.map +1 -0
  925. package/dist/LearningOutcomeFlyout/types.d.cts +67 -0
  926. package/dist/LearningOutcomeFlyout/types.d.cts.map +1 -0
  927. package/dist/LearningOutcomeFlyout/types.d.ts +59 -54
  928. package/dist/LearningOutcomeFlyout/types.d.ts.map +1 -0
  929. package/dist/LearningOutcomeFlyout/types.js +10 -5
  930. package/dist/LearningOutcomeFlyout/types.js.map +1 -0
  931. package/dist/LearningOutcomePopover/index.cjs +96 -0
  932. package/dist/LearningOutcomePopover/index.cjs.map +1 -0
  933. package/dist/LearningOutcomePopover/index.js +92 -122
  934. package/dist/LearningOutcomePopover/index.js.map +1 -0
  935. package/dist/LearningOutcomeTile/Tile.cjs +72 -0
  936. package/dist/LearningOutcomeTile/Tile.cjs.map +1 -0
  937. package/dist/LearningOutcomeTile/Tile.js +66 -75
  938. package/dist/LearningOutcomeTile/Tile.js.map +1 -0
  939. package/dist/LearningOutcomeTile/index.cjs +97 -0
  940. package/dist/LearningOutcomeTile/index.cjs.map +1 -0
  941. package/dist/LearningOutcomeTile/index.d.cts +8 -0
  942. package/dist/LearningOutcomeTile/index.d.cts.map +1 -0
  943. package/dist/LearningOutcomeTile/index.d.ts +8 -3
  944. package/dist/LearningOutcomeTile/index.d.ts.map +1 -0
  945. package/dist/LearningOutcomeTile/index.js +93 -114
  946. package/dist/LearningOutcomeTile/index.js.map +1 -0
  947. package/dist/LearningOutcomeTile/types.cjs +17 -0
  948. package/dist/LearningOutcomeTile/types.cjs.map +1 -0
  949. package/dist/LearningOutcomeTile/types.d.cts +46 -0
  950. package/dist/LearningOutcomeTile/types.d.cts.map +1 -0
  951. package/dist/LearningOutcomeTile/types.d.ts +36 -36
  952. package/dist/LearningOutcomeTile/types.d.ts.map +1 -0
  953. package/dist/LearningOutcomeTile/types.js +10 -10
  954. package/dist/LearningOutcomeTile/types.js.map +1 -0
  955. package/dist/ListSection/index.cjs +52 -0
  956. package/dist/ListSection/index.cjs.map +1 -0
  957. package/dist/ListSection/index.d.cts +26 -0
  958. package/dist/ListSection/index.d.cts.map +1 -0
  959. package/dist/ListSection/index.d.ts +26 -20
  960. package/dist/ListSection/index.d.ts.map +1 -0
  961. package/dist/ListSection/index.js +50 -64
  962. package/dist/ListSection/index.js.map +1 -0
  963. package/dist/Loading/index.cjs +81 -0
  964. package/dist/Loading/index.cjs.map +1 -0
  965. package/dist/Loading/index.d.cts +10 -0
  966. package/dist/Loading/index.d.cts.map +1 -0
  967. package/dist/Loading/index.d.ts +9 -4
  968. package/dist/Loading/index.d.ts.map +1 -0
  969. package/dist/Loading/index.js +76 -81
  970. package/dist/Loading/index.js.map +1 -0
  971. package/dist/LoadingCurriculumCard/index.cjs +71 -0
  972. package/dist/LoadingCurriculumCard/index.cjs.map +1 -0
  973. package/dist/LoadingCurriculumCard/index.d.cts +11 -0
  974. package/dist/LoadingCurriculumCard/index.d.cts.map +1 -0
  975. package/dist/LoadingCurriculumCard/index.d.ts +9 -5
  976. package/dist/LoadingCurriculumCard/index.d.ts.map +1 -0
  977. package/dist/LoadingCurriculumCard/index.js +69 -82
  978. package/dist/LoadingCurriculumCard/index.js.map +1 -0
  979. package/dist/Logos/LogoCodecademy/index.cjs +20 -0
  980. package/dist/Logos/LogoCodecademy/index.cjs.map +1 -0
  981. package/dist/Logos/LogoCodecademy/index.d.cts +7 -0
  982. package/dist/Logos/LogoCodecademy/index.d.cts.map +1 -0
  983. package/dist/Logos/LogoCodecademy/index.d.ts +7 -2
  984. package/dist/Logos/LogoCodecademy/index.d.ts.map +1 -0
  985. package/dist/Logos/LogoCodecademy/index.js +20 -22
  986. package/dist/Logos/LogoCodecademy/index.js.map +1 -0
  987. package/dist/Logos/LogoCodecademyMini/index.cjs +17 -0
  988. package/dist/Logos/LogoCodecademyMini/index.cjs.map +1 -0
  989. package/dist/Logos/LogoCodecademyMini/index.d.cts +7 -0
  990. package/dist/Logos/LogoCodecademyMini/index.d.cts.map +1 -0
  991. package/dist/Logos/LogoCodecademyMini/index.d.ts +7 -2
  992. package/dist/Logos/LogoCodecademyMini/index.d.ts.map +1 -0
  993. package/dist/Logos/LogoCodecademyMini/index.js +17 -18
  994. package/dist/Logos/LogoCodecademyMini/index.js.map +1 -0
  995. package/dist/Logos/LogoCodecademyPro/index.cjs +23 -0
  996. package/dist/Logos/LogoCodecademyPro/index.cjs.map +1 -0
  997. package/dist/Logos/LogoCodecademyPro/index.d.cts +7 -0
  998. package/dist/Logos/LogoCodecademyPro/index.d.cts.map +1 -0
  999. package/dist/Logos/LogoCodecademyPro/index.d.ts +7 -2
  1000. package/dist/Logos/LogoCodecademyPro/index.d.ts.map +1 -0
  1001. package/dist/Logos/LogoCodecademyPro/index.js +23 -25
  1002. package/dist/Logos/LogoCodecademyPro/index.js.map +1 -0
  1003. package/dist/Logos/LogoCodecademyTeams/index.cjs +41 -0
  1004. package/dist/Logos/LogoCodecademyTeams/index.cjs.map +1 -0
  1005. package/dist/Logos/LogoCodecademyTeams/index.d.cts +7 -0
  1006. package/dist/Logos/LogoCodecademyTeams/index.d.cts.map +1 -0
  1007. package/dist/Logos/LogoCodecademyTeams/index.d.ts +7 -2
  1008. package/dist/Logos/LogoCodecademyTeams/index.d.ts.map +1 -0
  1009. package/dist/Logos/LogoCodecademyTeams/index.js +41 -46
  1010. package/dist/Logos/LogoCodecademyTeams/index.js.map +1 -0
  1011. package/dist/Logos/LogoFromSkillsoft/index.cjs +42 -0
  1012. package/dist/Logos/LogoFromSkillsoft/index.cjs.map +1 -0
  1013. package/dist/Logos/LogoFromSkillsoft/index.d.cts +8 -0
  1014. package/dist/Logos/LogoFromSkillsoft/index.d.cts.map +1 -0
  1015. package/dist/Logos/LogoFromSkillsoft/index.d.ts +8 -3
  1016. package/dist/Logos/LogoFromSkillsoft/index.d.ts.map +1 -0
  1017. package/dist/Logos/LogoFromSkillsoft/index.js +40 -48
  1018. package/dist/Logos/LogoFromSkillsoft/index.js.map +1 -0
  1019. package/dist/Logos/LogoLXStudio/index.cjs +29 -0
  1020. package/dist/Logos/LogoLXStudio/index.cjs.map +1 -0
  1021. package/dist/Logos/LogoLXStudio/index.d.cts +8 -0
  1022. package/dist/Logos/LogoLXStudio/index.d.cts.map +1 -0
  1023. package/dist/Logos/LogoLXStudio/index.d.ts +8 -3
  1024. package/dist/Logos/LogoLXStudio/index.d.ts.map +1 -0
  1025. package/dist/Logos/LogoLXStudio/index.js +28 -40
  1026. package/dist/Logos/LogoLXStudio/index.js.map +1 -0
  1027. package/dist/Logos/ProLabel/ProLabelCutout/index.cjs +32 -0
  1028. package/dist/Logos/ProLabel/ProLabelCutout/index.cjs.map +1 -0
  1029. package/dist/Logos/ProLabel/ProLabelCutout/index.js +30 -31
  1030. package/dist/Logos/ProLabel/ProLabelCutout/index.js.map +1 -0
  1031. package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.cjs +33 -0
  1032. package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.cjs.map +1 -0
  1033. package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.js +31 -31
  1034. package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.js.map +1 -0
  1035. package/dist/Logos/ProLabel/index.cjs +27 -0
  1036. package/dist/Logos/ProLabel/index.cjs.map +1 -0
  1037. package/dist/Logos/ProLabel/index.d.cts +19 -0
  1038. package/dist/Logos/ProLabel/index.d.cts.map +1 -0
  1039. package/dist/Logos/ProLabel/index.d.ts +15 -11
  1040. package/dist/Logos/ProLabel/index.d.ts.map +1 -0
  1041. package/dist/Logos/ProLabel/index.js +25 -27
  1042. package/dist/Logos/ProLabel/index.js.map +1 -0
  1043. package/dist/Logos/index.cjs +7 -0
  1044. package/dist/Logos/index.d.ts +7 -7
  1045. package/dist/Logos/index.js +7 -7
  1046. package/dist/Logos/shared.cjs +23 -0
  1047. package/dist/Logos/shared.cjs.map +1 -0
  1048. package/dist/Logos/shared.d.cts +352 -0
  1049. package/dist/Logos/shared.d.cts.map +1 -0
  1050. package/dist/Logos/shared.d.ts +355 -989
  1051. package/dist/Logos/shared.d.ts.map +1 -0
  1052. package/dist/Logos/shared.js +19 -14
  1053. package/dist/Logos/shared.js.map +1 -0
  1054. package/dist/MarketingToaster/index.cjs +51 -0
  1055. package/dist/MarketingToaster/index.cjs.map +1 -0
  1056. package/dist/MarketingToaster/index.d.cts +12 -0
  1057. package/dist/MarketingToaster/index.d.cts.map +1 -0
  1058. package/dist/MarketingToaster/index.d.ts +10 -6
  1059. package/dist/MarketingToaster/index.d.ts.map +1 -0
  1060. package/dist/MarketingToaster/index.js +47 -66
  1061. package/dist/MarketingToaster/index.js.map +1 -0
  1062. package/dist/NotFoundContent/404.cjs +12 -0
  1063. package/dist/NotFoundContent/404.cjs.map +1 -0
  1064. package/dist/NotFoundContent/404.js +6 -0
  1065. package/dist/NotFoundContent/404.js.map +1 -0
  1066. package/dist/NotFoundContent/index.cjs +40 -0
  1067. package/dist/NotFoundContent/index.cjs.map +1 -0
  1068. package/dist/NotFoundContent/index.d.cts +12 -0
  1069. package/dist/NotFoundContent/index.d.cts.map +1 -0
  1070. package/dist/NotFoundContent/index.d.ts +10 -6
  1071. package/dist/NotFoundContent/index.d.ts.map +1 -0
  1072. package/dist/NotFoundContent/index.js +37 -55
  1073. package/dist/NotFoundContent/index.js.map +1 -0
  1074. package/dist/NotificationList/EmptyNotification/emptyNotificationContents.cjs +35 -0
  1075. package/dist/NotificationList/EmptyNotification/emptyNotificationContents.cjs.map +1 -0
  1076. package/dist/NotificationList/EmptyNotification/emptyNotificationContents.js +34 -23
  1077. package/dist/NotificationList/EmptyNotification/emptyNotificationContents.js.map +1 -0
  1078. package/dist/NotificationList/EmptyNotification/index.cjs +35 -0
  1079. package/dist/NotificationList/EmptyNotification/index.cjs.map +1 -0
  1080. package/dist/NotificationList/EmptyNotification/index.js +33 -38
  1081. package/dist/NotificationList/EmptyNotification/index.js.map +1 -0
  1082. package/dist/NotificationList/NotificationItem.cjs +122 -0
  1083. package/dist/NotificationList/NotificationItem.cjs.map +1 -0
  1084. package/dist/NotificationList/NotificationItem.d.cts +13 -0
  1085. package/dist/NotificationList/NotificationItem.d.cts.map +1 -0
  1086. package/dist/NotificationList/NotificationItem.d.ts +12 -7
  1087. package/dist/NotificationList/NotificationItem.d.ts.map +1 -0
  1088. package/dist/NotificationList/NotificationItem.js +118 -150
  1089. package/dist/NotificationList/NotificationItem.js.map +1 -0
  1090. package/dist/NotificationList/index.cjs +48 -0
  1091. package/dist/NotificationList/index.cjs.map +1 -0
  1092. package/dist/NotificationList/index.d.cts +14 -0
  1093. package/dist/NotificationList/index.d.cts.map +1 -0
  1094. package/dist/NotificationList/index.d.ts +13 -8
  1095. package/dist/NotificationList/index.d.ts.map +1 -0
  1096. package/dist/NotificationList/index.js +43 -45
  1097. package/dist/NotificationList/index.js.map +1 -0
  1098. package/dist/NotificationList/typings.d.cts +20 -0
  1099. package/dist/NotificationList/typings.d.cts.map +1 -0
  1100. package/dist/NotificationList/typings.d.ts +18 -14
  1101. package/dist/NotificationList/typings.d.ts.map +1 -0
  1102. package/dist/Notifications/NotificationBell.cjs +59 -0
  1103. package/dist/Notifications/NotificationBell.cjs.map +1 -0
  1104. package/dist/Notifications/NotificationBell.js +58 -72
  1105. package/dist/Notifications/NotificationBell.js.map +1 -0
  1106. package/dist/Notifications/NotificationsContents.cjs +67 -0
  1107. package/dist/Notifications/NotificationsContents.cjs.map +1 -0
  1108. package/dist/Notifications/NotificationsContents.js +66 -85
  1109. package/dist/Notifications/NotificationsContents.js.map +1 -0
  1110. package/dist/Notifications/NotificationsDropdown.cjs +23 -0
  1111. package/dist/Notifications/NotificationsDropdown.cjs.map +1 -0
  1112. package/dist/Notifications/NotificationsDropdown.js +22 -25
  1113. package/dist/Notifications/NotificationsDropdown.js.map +1 -0
  1114. package/dist/Notifications/constants.cjs +9 -0
  1115. package/dist/Notifications/constants.cjs.map +1 -0
  1116. package/dist/Notifications/constants.js +7 -3
  1117. package/dist/Notifications/constants.js.map +1 -0
  1118. package/dist/Notifications/elements.cjs +30 -0
  1119. package/dist/Notifications/elements.cjs.map +1 -0
  1120. package/dist/Notifications/elements.js +24 -18
  1121. package/dist/Notifications/elements.js.map +1 -0
  1122. package/dist/Notifications/types.d.cts +18 -0
  1123. package/dist/Notifications/types.d.cts.map +1 -0
  1124. package/dist/Notifications/types.d.ts +17 -22
  1125. package/dist/Notifications/types.d.ts.map +1 -0
  1126. package/dist/Notifications/useHeaderNotifications.cjs +39 -0
  1127. package/dist/Notifications/useHeaderNotifications.cjs.map +1 -0
  1128. package/dist/Notifications/useHeaderNotifications.js +38 -37
  1129. package/dist/Notifications/useHeaderNotifications.js.map +1 -0
  1130. package/dist/Notifications/useNotificationButtons.cjs +46 -0
  1131. package/dist/Notifications/useNotificationButtons.cjs.map +1 -0
  1132. package/dist/Notifications/useNotificationButtons.js +45 -56
  1133. package/dist/Notifications/useNotificationButtons.js.map +1 -0
  1134. package/dist/PageAlerts/PageAlerts.cjs +60 -0
  1135. package/dist/PageAlerts/PageAlerts.cjs.map +1 -0
  1136. package/dist/PageAlerts/PageAlerts.d.cts +17 -0
  1137. package/dist/PageAlerts/PageAlerts.d.cts.map +1 -0
  1138. package/dist/PageAlerts/PageAlerts.d.ts +16 -9
  1139. package/dist/PageAlerts/PageAlerts.d.ts.map +1 -0
  1140. package/dist/PageAlerts/PageAlerts.js +56 -74
  1141. package/dist/PageAlerts/PageAlerts.js.map +1 -0
  1142. package/dist/PageAlerts/PageAlertsProvider.cjs +38 -0
  1143. package/dist/PageAlerts/PageAlertsProvider.cjs.map +1 -0
  1144. package/dist/PageAlerts/PageAlertsProvider.d.cts +16 -0
  1145. package/dist/PageAlerts/PageAlertsProvider.d.cts.map +1 -0
  1146. package/dist/PageAlerts/PageAlertsProvider.d.ts +15 -10
  1147. package/dist/PageAlerts/PageAlertsProvider.d.ts.map +1 -0
  1148. package/dist/PageAlerts/PageAlertsProvider.js +33 -33
  1149. package/dist/PageAlerts/PageAlertsProvider.js.map +1 -0
  1150. package/dist/PageAlerts/index.cjs +2 -0
  1151. package/dist/PageAlerts/index.d.ts +3 -3
  1152. package/dist/PageAlerts/index.js +2 -3
  1153. package/dist/PageAlerts/types.d.cts +19 -0
  1154. package/dist/PageAlerts/types.d.cts.map +1 -0
  1155. package/dist/PageAlerts/types.d.ts +16 -14
  1156. package/dist/PageAlerts/types.d.ts.map +1 -0
  1157. package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.cjs +37 -0
  1158. package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.cjs.map +1 -0
  1159. package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.d.cts +23 -0
  1160. package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.d.cts.map +1 -0
  1161. package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.d.ts +21 -17
  1162. package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.d.ts.map +1 -0
  1163. package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.js +35 -53
  1164. package/dist/PageLayoutWithSidebarMenu/PageLayoutWithSidebarMenu.js.map +1 -0
  1165. package/dist/PageLayoutWithSidebarMenu/index.cjs +1 -0
  1166. package/dist/PageLayoutWithSidebarMenu/index.d.ts +1 -1
  1167. package/dist/PageLayoutWithSidebarMenu/index.js +1 -1
  1168. package/dist/PageSection/index.cjs +50 -0
  1169. package/dist/PageSection/index.cjs.map +1 -0
  1170. package/dist/PageSection/index.d.cts +21 -0
  1171. package/dist/PageSection/index.d.cts.map +1 -0
  1172. package/dist/PageSection/index.d.ts +18 -14
  1173. package/dist/PageSection/index.d.ts.map +1 -0
  1174. package/dist/PageSection/index.js +46 -65
  1175. package/dist/PageSection/index.js.map +1 -0
  1176. package/dist/PastDue/PastDueModalContents/index.cjs +18 -0
  1177. package/dist/PastDue/PastDueModalContents/index.cjs.map +1 -0
  1178. package/dist/PastDue/PastDueModalContents/index.d.cts +13 -0
  1179. package/dist/PastDue/PastDueModalContents/index.d.cts.map +1 -0
  1180. package/dist/PastDue/PastDueModalContents/index.d.ts +12 -7
  1181. package/dist/PastDue/PastDueModalContents/index.d.ts.map +1 -0
  1182. package/dist/PastDue/PastDueModalContents/index.js +16 -30
  1183. package/dist/PastDue/PastDueModalContents/index.js.map +1 -0
  1184. package/dist/PastDue/index.cjs +2 -0
  1185. package/dist/PastDue/index.d.ts +2 -2
  1186. package/dist/PastDue/index.js +2 -2
  1187. package/dist/PastDue/pastDueMessages.cjs +49 -0
  1188. package/dist/PastDue/pastDueMessages.cjs.map +1 -0
  1189. package/dist/PastDue/pastDueMessages.d.cts +9 -0
  1190. package/dist/PastDue/pastDueMessages.d.cts.map +1 -0
  1191. package/dist/PastDue/pastDueMessages.d.ts +7 -4
  1192. package/dist/PastDue/pastDueMessages.d.ts.map +1 -0
  1193. package/dist/PastDue/pastDueMessages.js +47 -48
  1194. package/dist/PastDue/pastDueMessages.js.map +1 -0
  1195. package/dist/PausableImage/BaseImage/index.cjs +55 -0
  1196. package/dist/PausableImage/BaseImage/index.cjs.map +1 -0
  1197. package/dist/PausableImage/BaseImage/index.js +48 -53
  1198. package/dist/PausableImage/BaseImage/index.js.map +1 -0
  1199. package/dist/PausableImage/index.cjs +32 -0
  1200. package/dist/PausableImage/index.cjs.map +1 -0
  1201. package/dist/PausableImage/index.d.cts +17 -0
  1202. package/dist/PausableImage/index.d.cts.map +1 -0
  1203. package/dist/PausableImage/index.d.ts +15 -9
  1204. package/dist/PausableImage/index.d.ts.map +1 -0
  1205. package/dist/PausableImage/index.js +26 -35
  1206. package/dist/PausableImage/index.js.map +1 -0
  1207. package/dist/PlanCard/PlanCardBanner.cjs +29 -0
  1208. package/dist/PlanCard/PlanCardBanner.cjs.map +1 -0
  1209. package/dist/PlanCard/PlanCardBanner.d.cts +11 -0
  1210. package/dist/PlanCard/PlanCardBanner.d.cts.map +1 -0
  1211. package/dist/PlanCard/PlanCardBanner.d.ts +9 -5
  1212. package/dist/PlanCard/PlanCardBanner.d.ts.map +1 -0
  1213. package/dist/PlanCard/PlanCardBanner.js +25 -27
  1214. package/dist/PlanCard/PlanCardBanner.js.map +1 -0
  1215. package/dist/PlanCard/PlanFeature.cjs +72 -0
  1216. package/dist/PlanCard/PlanFeature.cjs.map +1 -0
  1217. package/dist/PlanCard/PlanFeature.js +69 -105
  1218. package/dist/PlanCard/PlanFeature.js.map +1 -0
  1219. package/dist/PlanCard/PopularBadge.cjs +18 -0
  1220. package/dist/PlanCard/PopularBadge.cjs.map +1 -0
  1221. package/dist/PlanCard/PopularBadge.js +16 -13
  1222. package/dist/PlanCard/PopularBadge.js.map +1 -0
  1223. package/dist/PlanCard/PricingAmount.cjs +85 -0
  1224. package/dist/PlanCard/PricingAmount.cjs.map +1 -0
  1225. package/dist/PlanCard/PricingAmount.js +82 -117
  1226. package/dist/PlanCard/PricingAmount.js.map +1 -0
  1227. package/dist/PlanCard/RecommendedBadge.cjs +29 -0
  1228. package/dist/PlanCard/RecommendedBadge.cjs.map +1 -0
  1229. package/dist/PlanCard/RecommendedBadge.js +27 -24
  1230. package/dist/PlanCard/RecommendedBadge.js.map +1 -0
  1231. package/dist/PlanCard/consts.cjs +221 -0
  1232. package/dist/PlanCard/consts.cjs.map +1 -0
  1233. package/dist/PlanCard/consts.js +220 -167
  1234. package/dist/PlanCard/consts.js.map +1 -0
  1235. package/dist/PlanCard/index.cjs +290 -0
  1236. package/dist/PlanCard/index.cjs.map +1 -0
  1237. package/dist/PlanCard/index.d.cts +23 -0
  1238. package/dist/PlanCard/index.d.cts.map +1 -0
  1239. package/dist/PlanCard/index.d.ts +22 -17
  1240. package/dist/PlanCard/index.d.ts.map +1 -0
  1241. package/dist/PlanCard/index.js +285 -373
  1242. package/dist/PlanCard/index.js.map +1 -0
  1243. package/dist/PlanCard/types.cjs +86 -0
  1244. package/dist/PlanCard/types.cjs.map +1 -0
  1245. package/dist/PlanCard/types.d.cts +44 -0
  1246. package/dist/PlanCard/types.d.cts.map +1 -0
  1247. package/dist/PlanCard/types.d.ts +42 -38
  1248. package/dist/PlanCard/types.d.ts.map +1 -0
  1249. package/dist/PlanCard/types.js +69 -71
  1250. package/dist/PlanCard/types.js.map +1 -0
  1251. package/dist/PlanCardTeams/consts.cjs +23 -0
  1252. package/dist/PlanCardTeams/consts.cjs.map +1 -0
  1253. package/dist/PlanCardTeams/consts.js +22 -8
  1254. package/dist/PlanCardTeams/consts.js.map +1 -0
  1255. package/dist/PlanCardTeams/index.cjs +112 -0
  1256. package/dist/PlanCardTeams/index.cjs.map +1 -0
  1257. package/dist/PlanCardTeams/index.d.cts +13 -0
  1258. package/dist/PlanCardTeams/index.d.cts.map +1 -0
  1259. package/dist/PlanCardTeams/index.d.ts +12 -7
  1260. package/dist/PlanCardTeams/index.d.ts.map +1 -0
  1261. package/dist/PlanCardTeams/index.js +108 -166
  1262. package/dist/PlanCardTeams/index.js.map +1 -0
  1263. package/dist/PricingSection/ConditionalColorMode.cjs +11 -0
  1264. package/dist/PricingSection/ConditionalColorMode.cjs.map +1 -0
  1265. package/dist/PricingSection/ConditionalColorMode.js +10 -13
  1266. package/dist/PricingSection/ConditionalColorMode.js.map +1 -0
  1267. package/dist/PricingSection/PricingCard/PricingAmount.cjs +82 -0
  1268. package/dist/PricingSection/PricingCard/PricingAmount.cjs.map +1 -0
  1269. package/dist/PricingSection/PricingCard/PricingAmount.js +79 -115
  1270. package/dist/PricingSection/PricingCard/PricingAmount.js.map +1 -0
  1271. package/dist/PricingSection/PricingCard/RecommendedBadge.cjs +28 -0
  1272. package/dist/PricingSection/PricingCard/RecommendedBadge.cjs.map +1 -0
  1273. package/dist/PricingSection/PricingCard/RecommendedBadge.js +27 -24
  1274. package/dist/PricingSection/PricingCard/RecommendedBadge.js.map +1 -0
  1275. package/dist/PricingSection/PricingCard/index.cjs +149 -0
  1276. package/dist/PricingSection/PricingCard/index.cjs.map +1 -0
  1277. package/dist/PricingSection/PricingCard/index.js +142 -197
  1278. package/dist/PricingSection/PricingCard/index.js.map +1 -0
  1279. package/dist/PricingSection/PricingCard/types.cjs +68 -0
  1280. package/dist/PricingSection/PricingCard/types.cjs.map +1 -0
  1281. package/dist/PricingSection/PricingCard/types.d.cts +27 -0
  1282. package/dist/PricingSection/PricingCard/types.d.cts.map +1 -0
  1283. package/dist/PricingSection/PricingCard/types.d.ts +25 -38
  1284. package/dist/PricingSection/PricingCard/types.d.ts.map +1 -0
  1285. package/dist/PricingSection/PricingCard/types.js +65 -61
  1286. package/dist/PricingSection/PricingCard/types.js.map +1 -0
  1287. package/dist/PricingSection/ProductCTA.cjs +96 -0
  1288. package/dist/PricingSection/ProductCTA.cjs.map +1 -0
  1289. package/dist/PricingSection/ProductCTA.js +93 -133
  1290. package/dist/PricingSection/ProductCTA.js.map +1 -0
  1291. package/dist/PricingSection/Products.cjs +90 -0
  1292. package/dist/PricingSection/Products.cjs.map +1 -0
  1293. package/dist/PricingSection/Products.js +89 -92
  1294. package/dist/PricingSection/Products.js.map +1 -0
  1295. package/dist/PricingSection/config.cjs +34 -0
  1296. package/dist/PricingSection/config.cjs.map +1 -0
  1297. package/dist/PricingSection/config.js +30 -36
  1298. package/dist/PricingSection/config.js.map +1 -0
  1299. package/dist/PricingSection/index.cjs +32 -0
  1300. package/dist/PricingSection/index.cjs.map +1 -0
  1301. package/dist/PricingSection/index.d.cts +23 -0
  1302. package/dist/PricingSection/index.d.cts.map +1 -0
  1303. package/dist/PricingSection/index.d.ts +21 -14
  1304. package/dist/PricingSection/index.d.ts.map +1 -0
  1305. package/dist/PricingSection/index.js +31 -41
  1306. package/dist/PricingSection/index.js.map +1 -0
  1307. package/dist/PricingSection/types.cjs +20 -0
  1308. package/dist/PricingSection/types.cjs.map +1 -0
  1309. package/dist/PricingSection/types.d.cts +18 -0
  1310. package/dist/PricingSection/types.d.cts.map +1 -0
  1311. package/dist/PricingSection/types.d.ts +16 -29
  1312. package/dist/PricingSection/types.d.ts.map +1 -0
  1313. package/dist/PricingSection/types.js +14 -9
  1314. package/dist/PricingSection/types.js.map +1 -0
  1315. package/dist/ProLogoAlt/index.cjs +26 -0
  1316. package/dist/ProLogoAlt/index.cjs.map +1 -0
  1317. package/dist/ProLogoAlt/index.d.cts +14 -0
  1318. package/dist/ProLogoAlt/index.d.cts.map +1 -0
  1319. package/dist/ProLogoAlt/index.d.ts +13 -8
  1320. package/dist/ProLogoAlt/index.d.ts.map +1 -0
  1321. package/dist/ProLogoAlt/index.js +24 -26
  1322. package/dist/ProLogoAlt/index.js.map +1 -0
  1323. package/dist/ProductFeatureShowcase/index.cjs +85 -0
  1324. package/dist/ProductFeatureShowcase/index.cjs.map +1 -0
  1325. package/dist/ProductFeatureShowcase/index.d.cts +20 -0
  1326. package/dist/ProductFeatureShowcase/index.d.cts.map +1 -0
  1327. package/dist/ProductFeatureShowcase/index.d.ts +19 -15
  1328. package/dist/ProductFeatureShowcase/index.d.ts.map +1 -0
  1329. package/dist/ProductFeatureShowcase/index.js +83 -120
  1330. package/dist/ProductFeatureShowcase/index.js.map +1 -0
  1331. package/dist/QuizScore/index.cjs +67 -0
  1332. package/dist/QuizScore/index.cjs.map +1 -0
  1333. package/dist/QuizScore/index.js +65 -84
  1334. package/dist/QuizScore/index.js.map +1 -0
  1335. package/dist/RatingsBar/index.cjs +36 -0
  1336. package/dist/RatingsBar/index.cjs.map +1 -0
  1337. package/dist/RatingsBar/index.d.cts +17 -0
  1338. package/dist/RatingsBar/index.d.cts.map +1 -0
  1339. package/dist/RatingsBar/index.d.ts +16 -11
  1340. package/dist/RatingsBar/index.d.ts.map +1 -0
  1341. package/dist/RatingsBar/index.js +33 -34
  1342. package/dist/RatingsBar/index.js.map +1 -0
  1343. package/dist/Recurly/context/NoProvider.cjs +12 -0
  1344. package/dist/Recurly/context/NoProvider.cjs.map +1 -0
  1345. package/dist/Recurly/context/NoProvider.js +10 -6
  1346. package/dist/Recurly/context/NoProvider.js.map +1 -0
  1347. package/dist/Recurly/context/elements/index.cjs +40 -0
  1348. package/dist/Recurly/context/elements/index.cjs.map +1 -0
  1349. package/dist/Recurly/context/elements/index.d.cts +15 -0
  1350. package/dist/Recurly/context/elements/index.d.cts.map +1 -0
  1351. package/dist/Recurly/context/elements/index.d.ts +10 -21
  1352. package/dist/Recurly/context/elements/index.d.ts.map +1 -0
  1353. package/dist/Recurly/context/elements/index.js +34 -42
  1354. package/dist/Recurly/context/elements/index.js.map +1 -0
  1355. package/dist/Recurly/context/index.cjs +2 -0
  1356. package/dist/Recurly/context/index.d.ts +2 -2
  1357. package/dist/Recurly/context/index.js +2 -2
  1358. package/dist/Recurly/context/recurly/index.cjs +44 -0
  1359. package/dist/Recurly/context/recurly/index.cjs.map +1 -0
  1360. package/dist/Recurly/context/recurly/index.d.cts +39 -0
  1361. package/dist/Recurly/context/recurly/index.d.cts.map +1 -0
  1362. package/dist/Recurly/context/recurly/index.d.ts +16 -7
  1363. package/dist/Recurly/context/recurly/index.d.ts.map +1 -0
  1364. package/dist/Recurly/context/recurly/index.js +39 -47
  1365. package/dist/Recurly/context/recurly/index.js.map +1 -0
  1366. package/dist/Recurly/context/recurly/loadRecurly.cjs +22 -0
  1367. package/dist/Recurly/context/recurly/loadRecurly.cjs.map +1 -0
  1368. package/dist/Recurly/context/recurly/loadRecurly.d.cts +10 -0
  1369. package/dist/Recurly/context/recurly/loadRecurly.d.cts.map +1 -0
  1370. package/dist/Recurly/context/recurly/loadRecurly.d.ts +9 -5
  1371. package/dist/Recurly/context/recurly/loadRecurly.d.ts.map +1 -0
  1372. package/dist/Recurly/context/recurly/loadRecurly.js +22 -22
  1373. package/dist/Recurly/context/recurly/loadRecurly.js.map +1 -0
  1374. package/dist/Recurly/context/recurly/w.cjs +7 -0
  1375. package/dist/Recurly/context/recurly/w.cjs.map +1 -0
  1376. package/dist/Recurly/context/recurly/w.js +5 -3
  1377. package/dist/Recurly/context/recurly/w.js.map +1 -0
  1378. package/dist/Recurly/fields/RecurlyField.cjs +40 -0
  1379. package/dist/Recurly/fields/RecurlyField.cjs.map +1 -0
  1380. package/dist/Recurly/fields/RecurlyField.d.cts +19 -0
  1381. package/dist/Recurly/fields/RecurlyField.d.cts.map +1 -0
  1382. package/dist/Recurly/fields/RecurlyField.d.ts +14 -4
  1383. package/dist/Recurly/fields/RecurlyField.d.ts.map +1 -0
  1384. package/dist/Recurly/fields/RecurlyField.js +36 -55
  1385. package/dist/Recurly/fields/RecurlyField.js.map +1 -0
  1386. package/dist/Recurly/fields/elements.cjs +64 -0
  1387. package/dist/Recurly/fields/elements.cjs.map +1 -0
  1388. package/dist/Recurly/fields/elements.d.cts +23 -0
  1389. package/dist/Recurly/fields/elements.d.cts.map +1 -0
  1390. package/dist/Recurly/fields/elements.d.ts +21 -15
  1391. package/dist/Recurly/fields/elements.d.ts.map +1 -0
  1392. package/dist/Recurly/fields/elements.js +50 -96
  1393. package/dist/Recurly/fields/elements.js.map +1 -0
  1394. package/dist/Recurly/fields/index.cjs +2 -0
  1395. package/dist/Recurly/fields/index.d.ts +2 -2
  1396. package/dist/Recurly/fields/index.js +2 -2
  1397. package/dist/Recurly/index.cjs +6 -0
  1398. package/dist/Recurly/index.d.ts +6 -2
  1399. package/dist/Recurly/index.js +6 -2
  1400. package/dist/ResourceCard/index.cjs +58 -0
  1401. package/dist/ResourceCard/index.cjs.map +1 -0
  1402. package/dist/ResourceCard/index.d.cts +20 -0
  1403. package/dist/ResourceCard/index.d.cts.map +1 -0
  1404. package/dist/ResourceCard/index.d.ts +18 -13
  1405. package/dist/ResourceCard/index.d.ts.map +1 -0
  1406. package/dist/ResourceCard/index.js +51 -59
  1407. package/dist/ResourceCard/index.js.map +1 -0
  1408. package/dist/ScoreSummary/SubScores.cjs +109 -0
  1409. package/dist/ScoreSummary/SubScores.cjs.map +1 -0
  1410. package/dist/ScoreSummary/SubScores.d.cts +41 -0
  1411. package/dist/ScoreSummary/SubScores.d.cts.map +1 -0
  1412. package/dist/ScoreSummary/SubScores.d.ts +39 -26
  1413. package/dist/ScoreSummary/SubScores.d.ts.map +1 -0
  1414. package/dist/ScoreSummary/SubScores.js +106 -164
  1415. package/dist/ScoreSummary/SubScores.js.map +1 -0
  1416. package/dist/ScoreSummary/helpers.cjs +21 -0
  1417. package/dist/ScoreSummary/helpers.cjs.map +1 -0
  1418. package/dist/ScoreSummary/helpers.js +18 -19
  1419. package/dist/ScoreSummary/helpers.js.map +1 -0
  1420. package/dist/ScoreSummary/index.cjs +89 -0
  1421. package/dist/ScoreSummary/index.cjs.map +1 -0
  1422. package/dist/ScoreSummary/index.d.cts +26 -0
  1423. package/dist/ScoreSummary/index.d.cts.map +1 -0
  1424. package/dist/ScoreSummary/index.d.ts +25 -20
  1425. package/dist/ScoreSummary/index.d.ts.map +1 -0
  1426. package/dist/ScoreSummary/index.js +87 -108
  1427. package/dist/ScoreSummary/index.js.map +1 -0
  1428. package/dist/ScoreSummary/types.d.cts +314 -0
  1429. package/dist/ScoreSummary/types.d.cts.map +1 -0
  1430. package/dist/ScoreSummary/types.d.ts +309 -305
  1431. package/dist/ScoreSummary/types.d.ts.map +1 -0
  1432. package/dist/SkillPathCard/index.cjs +33 -0
  1433. package/dist/SkillPathCard/index.cjs.map +1 -0
  1434. package/dist/SkillPathCard/index.d.cts +26 -0
  1435. package/dist/SkillPathCard/index.d.cts.map +1 -0
  1436. package/dist/SkillPathCard/index.d.ts +25 -19
  1437. package/dist/SkillPathCard/index.d.ts.map +1 -0
  1438. package/dist/SkillPathCard/index.js +32 -46
  1439. package/dist/SkillPathCard/index.js.map +1 -0
  1440. package/dist/SocialMediaSharing/SocialShareIconLink.cjs +42 -0
  1441. package/dist/SocialMediaSharing/SocialShareIconLink.cjs.map +1 -0
  1442. package/dist/SocialMediaSharing/SocialShareIconLink.d.cts +10 -0
  1443. package/dist/SocialMediaSharing/SocialShareIconLink.d.cts.map +1 -0
  1444. package/dist/SocialMediaSharing/SocialShareIconLink.d.ts +10 -12
  1445. package/dist/SocialMediaSharing/SocialShareIconLink.d.ts.map +1 -0
  1446. package/dist/SocialMediaSharing/SocialShareIconLink.js +38 -48
  1447. package/dist/SocialMediaSharing/SocialShareIconLink.js.map +1 -0
  1448. package/dist/SocialMediaSharing/index.cjs +84 -0
  1449. package/dist/SocialMediaSharing/index.cjs.map +1 -0
  1450. package/dist/SocialMediaSharing/index.d.cts +65 -0
  1451. package/dist/SocialMediaSharing/index.d.cts.map +1 -0
  1452. package/dist/SocialMediaSharing/index.d.ts +60 -44
  1453. package/dist/SocialMediaSharing/index.d.ts.map +1 -0
  1454. package/dist/SocialMediaSharing/index.js +78 -114
  1455. package/dist/SocialMediaSharing/index.js.map +1 -0
  1456. package/dist/SocialMediaSharingDropdown/index.cjs +94 -0
  1457. package/dist/SocialMediaSharingDropdown/index.cjs.map +1 -0
  1458. package/dist/SocialMediaSharingDropdown/index.d.cts +20 -0
  1459. package/dist/SocialMediaSharingDropdown/index.d.cts.map +1 -0
  1460. package/dist/SocialMediaSharingDropdown/index.d.ts +19 -14
  1461. package/dist/SocialMediaSharingDropdown/index.d.ts.map +1 -0
  1462. package/dist/SocialMediaSharingDropdown/index.js +91 -110
  1463. package/dist/SocialMediaSharingDropdown/index.js.map +1 -0
  1464. package/dist/Testimonial/index.cjs +131 -0
  1465. package/dist/Testimonial/index.cjs.map +1 -0
  1466. package/dist/Testimonial/index.d.cts +54 -0
  1467. package/dist/Testimonial/index.d.cts.map +1 -0
  1468. package/dist/Testimonial/index.d.ts +51 -42
  1469. package/dist/Testimonial/index.d.ts.map +1 -0
  1470. package/dist/Testimonial/index.js +117 -151
  1471. package/dist/Testimonial/index.js.map +1 -0
  1472. package/dist/_virtual/_rolldown/runtime.cjs +43 -0
  1473. package/dist/_virtual/_rolldown/runtime.js +18 -0
  1474. package/dist/assets/navyQuotes.cjs +12 -0
  1475. package/dist/assets/navyQuotes.cjs.map +1 -0
  1476. package/dist/assets/navyQuotes.js +6 -0
  1477. package/dist/assets/navyQuotes.js.map +1 -0
  1478. package/dist/index.cjs +319 -0
  1479. package/dist/index.d.cts +114 -0
  1480. package/dist/index.d.ts +124 -89
  1481. package/dist/index.js +118 -86
  1482. package/dist/lib/breakpointHooks/index.cjs +61 -0
  1483. package/dist/lib/breakpointHooks/index.cjs.map +1 -0
  1484. package/dist/lib/breakpointHooks/index.d.cts +47 -0
  1485. package/dist/lib/breakpointHooks/index.d.cts.map +1 -0
  1486. package/dist/lib/breakpointHooks/index.d.ts +11 -7
  1487. package/dist/lib/breakpointHooks/index.d.ts.map +1 -0
  1488. package/dist/lib/breakpointHooks/index.js +48 -53
  1489. package/dist/lib/breakpointHooks/index.js.map +1 -0
  1490. package/dist/lib/catalogList/index.cjs +30 -0
  1491. package/dist/lib/catalogList/index.cjs.map +1 -0
  1492. package/dist/lib/catalogList/index.js +30 -61
  1493. package/dist/lib/catalogList/index.js.map +1 -0
  1494. package/dist/lib/resourcesList/index.cjs +73 -0
  1495. package/dist/lib/resourcesList/index.cjs.map +1 -0
  1496. package/dist/lib/resourcesList/index.js +71 -237
  1497. package/dist/lib/resourcesList/index.js.map +1 -0
  1498. package/dist/remoteAssets/components.cjs +7 -0
  1499. package/dist/remoteAssets/components.cjs.map +1 -0
  1500. package/dist/remoteAssets/components.js +6 -1
  1501. package/dist/remoteAssets/components.js.map +1 -0
  1502. package/package.json +18 -6
  1503. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.d.ts +0 -13
  1504. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.d.ts +0 -8
  1505. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.d.ts +0 -17
  1506. package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.d.ts +0 -11
  1507. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.d.ts +0 -13
  1508. package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.d.ts +0 -4
  1509. package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/elements.d.ts +0 -42
  1510. package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.d.ts +0 -8
  1511. package/dist/AppHeader/AppHeaderElements/AppHeaderListItem/index.d.ts +0 -14
  1512. package/dist/AppHeader/AppHeaderElements/AppHeaderMenuProvider/index.d.ts +0 -14
  1513. package/dist/AppHeader/AppHeaderElements/AppHeaderNavButton/index.d.ts +0 -12
  1514. package/dist/AppHeader/AppHeaderElements/AppHeaderProvider/index.d.ts +0 -10
  1515. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.d.ts +0 -10
  1516. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.d.ts +0 -18
  1517. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSectionContext.d.ts +0 -7
  1518. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.d.ts +0 -6
  1519. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileNavMenu.d.ts +0 -11
  1520. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.d.ts +0 -20
  1521. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.d.ts +0 -9
  1522. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.d.ts +0 -88
  1523. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.d.ts +0 -24
  1524. package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.d.ts +0 -6
  1525. package/dist/AppHeader/Search/DefaultResults.d.ts +0 -10
  1526. package/dist/AppHeader/Search/QuizAndHelpCenterLinks.d.ts +0 -7
  1527. package/dist/AppHeader/Search/SearchButton.d.ts +0 -2
  1528. package/dist/AppHeader/Search/SearchPane.d.ts +0 -6
  1529. package/dist/AppHeader/Search/SearchTrackingProvider/index.d.ts +0 -17
  1530. package/dist/AppHeader/Search/SearchWorker/PromiseLookup.d.ts +0 -18
  1531. package/dist/AppHeader/Search/SearchWorker/src.d.ts +0 -1
  1532. package/dist/AppHeader/Search/SearchWorker/worker.d.ts +0 -2
  1533. package/dist/AppHeader/Search/hooks/useUrlChangeDetection.d.ts +0 -5
  1534. package/dist/AppHeader/Search/safelyRedirect.d.ts +0 -5
  1535. package/dist/AppHeader/Search/types.js +0 -1
  1536. package/dist/AppHeader/Search/useHeaderSearch.d.ts +0 -6
  1537. package/dist/AppHeader/shared/mockAppHeaderItems.js +0 -10
  1538. package/dist/AppHeader/shared/utils.d.ts +0 -14
  1539. package/dist/AppHeader/utils/types.d.ts +0 -8
  1540. package/dist/AppHeader/utils/types.js +0 -1
  1541. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/elements.d.ts +0 -13
  1542. package/dist/AppHeaderMobile/AppHeaderSubMenuTarget/index.d.ts +0 -7
  1543. package/dist/Avatar/Avatar.stories.js +0 -15
  1544. package/dist/Carousel/elements.d.ts +0 -27
  1545. package/dist/CertificationPathCard/__tests__/__fixtures__/index.d.ts +0 -2
  1546. package/dist/CommunityEventCard/EventTypeIcon.d.ts +0 -11
  1547. package/dist/ContentGroupBaseCard/shared.d.ts +0 -7
  1548. package/dist/CourseCard/__tests__/__fixtures__/index.d.ts +0 -3
  1549. package/dist/CurriculumCard/Footer/index.d.ts +0 -10
  1550. package/dist/CurriculumCard/Image/index.d.ts +0 -9
  1551. package/dist/CurriculumCard/Subtitle/helpers.d.ts +0 -1
  1552. package/dist/DropdownButton/useDynamicPopoverPosition.d.ts +0 -14
  1553. package/dist/DropdownButton/useDynamicPopoverPosition.test.js +0 -85
  1554. package/dist/GlobalFooter/FooterHeading.d.ts +0 -9
  1555. package/dist/GlobalFooter/FooterLegal/LegalLinks.d.ts +0 -6
  1556. package/dist/GlobalFooter/FooterLegal/MadeIn.d.ts +0 -5
  1557. package/dist/GlobalFooter/FooterLegal/index.d.ts +0 -7
  1558. package/dist/GlobalFooter/FooterLinks.d.ts +0 -18
  1559. package/dist/GlobalFooter/FooterNavLinks/CatalogLinks.d.ts +0 -7
  1560. package/dist/GlobalFooter/FooterNavLinks/CompanyLinks.d.ts +0 -11
  1561. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferAFriendLinkWithModal.d.ts +0 -7
  1562. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralFields.d.ts +0 -2
  1563. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralForm.d.ts +0 -4
  1564. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/ReferralLinkSocialMediaSharing.d.ts +0 -3
  1565. package/dist/GlobalFooter/FooterNavLinks/ReferralRock/types.js +0 -1
  1566. package/dist/GlobalFooter/FooterNavLinks/SocialMediaLinks.d.ts +0 -2
  1567. package/dist/GlobalFooter/FooterNavLinks/index.d.ts +0 -4
  1568. package/dist/GlobalFooter/FooterSubHeading.d.ts +0 -9
  1569. package/dist/GlobalFooter/FooterSubHeading.js +0 -22
  1570. package/dist/GlobalFooter/types.js +0 -1
  1571. package/dist/GlobalHeader/GlobalHeaderItems.d.ts +0 -28
  1572. package/dist/GlobalHeader/GlobalHeaderVariants.d.ts +0 -83
  1573. package/dist/GlobalHeader/context.d.ts +0 -34
  1574. package/dist/GlobalHeader/types.js +0 -1
  1575. package/dist/GlobalHeader/urlHelpers.d.ts +0 -2
  1576. package/dist/Grid/GridCollapse.test.js +0 -96
  1577. package/dist/HeaderHeightArea/index.d.ts +0 -9
  1578. package/dist/HeaderHeightArea/useIsInHeaderRegion.d.ts +0 -1
  1579. package/dist/InstructorCard/__tests__/__fixtures__/index.d.ts +0 -2
  1580. package/dist/LandingPage/types.js +0 -1
  1581. package/dist/LayoutMenu/LayoutMenuSection.d.ts +0 -16
  1582. package/dist/LayoutMenuVariant/LayoutMenuSection.d.ts +0 -10
  1583. package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.d.ts +0 -8
  1584. package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.d.ts +0 -7
  1585. package/dist/LearningOutcomePopover/index.d.ts +0 -10
  1586. package/dist/LearningOutcomeTile/Tile.d.ts +0 -7
  1587. package/dist/Logos/ProLabel/ProLabelCutout/index.d.ts +0 -8
  1588. package/dist/Logos/ProLabel/ProLabelCutoutTransparent/index.d.ts +0 -7
  1589. package/dist/NotificationList/EmptyNotification/emptyNotificationContents.d.ts +0 -7
  1590. package/dist/NotificationList/EmptyNotification/index.d.ts +0 -1
  1591. package/dist/NotificationList/typings.js +0 -1
  1592. package/dist/Notifications/NotificationBell.d.ts +0 -10
  1593. package/dist/Notifications/NotificationsContents.d.ts +0 -3
  1594. package/dist/Notifications/NotificationsDropdown.d.ts +0 -2
  1595. package/dist/Notifications/__fixtures__/NotificationTestComponent.d.ts +0 -2
  1596. package/dist/Notifications/__fixtures__/NotificationTestComponent.js +0 -12
  1597. package/dist/Notifications/__fixtures__/stubs.d.ts +0 -2
  1598. package/dist/Notifications/__fixtures__/stubs.js +0 -8
  1599. package/dist/Notifications/constants.d.ts +0 -4
  1600. package/dist/Notifications/elements.d.ts +0 -12
  1601. package/dist/Notifications/types.js +0 -1
  1602. package/dist/Notifications/useHeaderNotifications.d.ts +0 -10
  1603. package/dist/Notifications/useNotificationButtons.d.ts +0 -9
  1604. package/dist/PageAlerts/types.js +0 -1
  1605. package/dist/PausableImage/BaseImage/index.d.ts +0 -15
  1606. package/dist/PlanCard/PlanFeature.d.ts +0 -10
  1607. package/dist/PlanCard/PopularBadge.d.ts +0 -3
  1608. package/dist/PlanCard/PricingAmount.d.ts +0 -14
  1609. package/dist/PlanCard/RecommendedBadge.d.ts +0 -3
  1610. package/dist/PlanCard/consts.d.ts +0 -15
  1611. package/dist/PlanCardTeams/consts.d.ts +0 -9
  1612. package/dist/PricingSection/ConditionalColorMode.d.ts +0 -4
  1613. package/dist/PricingSection/PricingCard/PricingAmount.d.ts +0 -14
  1614. package/dist/PricingSection/PricingCard/RecommendedBadge.d.ts +0 -3
  1615. package/dist/PricingSection/PricingCard/consts.d.ts +0 -14
  1616. package/dist/PricingSection/PricingCard/consts.js +0 -96
  1617. package/dist/PricingSection/PricingCard/index.d.ts +0 -16
  1618. package/dist/PricingSection/ProductCTA.d.ts +0 -12
  1619. package/dist/PricingSection/Products.d.ts +0 -15
  1620. package/dist/PricingSection/config.d.ts +0 -8
  1621. package/dist/QuizScore/index.d.ts +0 -12
  1622. package/dist/Recurly/context/NoProvider.d.ts +0 -8
  1623. package/dist/Recurly/context/recurly/w.d.ts +0 -14
  1624. package/dist/Recurly/fields/elements.test.js +0 -79
  1625. package/dist/ScoreSummary/helpers.d.ts +0 -11
  1626. package/dist/ScoreSummary/types.js +0 -1
  1627. package/dist/SkillPathCard/__tests__/__fixtures__/index.d.ts +0 -2
  1628. package/dist/SocialMediaSharingDropdown/__tests__/SocialMediaSharingDropdown-test.d.ts +0 -1
  1629. package/dist/assets/darkQuotes.svg +0 -1
  1630. package/dist/assets/lightQuotes.svg +0 -1
  1631. package/dist/assets/orange_squiggle.svg +0 -1
  1632. package/dist/lib/catalogList/index.d.ts +0 -3
  1633. package/dist/lib/resourcesList/index.d.ts +0 -5
  1634. package/dist/png.d.ts +0 -4
  1635. package/dist/react-freezeframe.d.ts +0 -1
  1636. package/dist/remoteAssets/components.d.ts +0 -1
  1637. package/dist/stories/Atoms/Avatar.stories.js +0 -16
  1638. package/dist/stories/Atoms/BetaSticker.stories.js +0 -21
  1639. package/dist/stories/Atoms/Logos/LogoCodecademy.stories.js +0 -8
  1640. package/dist/stories/Atoms/Logos/LogoCodecademyMini.stories.js +0 -8
  1641. package/dist/stories/Atoms/Logos/LogoCodecademyPro.stories.js +0 -8
  1642. package/dist/stories/Atoms/Logos/LogoCodecademyTeams.stories.js +0 -8
  1643. package/dist/stories/Atoms/Logos/LogoFromSkillsoft.stories.js +0 -9
  1644. package/dist/stories/Atoms/Logos/LogoLXStudio.stories.js +0 -11
  1645. package/dist/stories/Atoms/Logos/ProLabel.stories.js +0 -29
  1646. package/dist/stories/Atoms/RatingsBar.stories.js +0 -16
  1647. package/dist/stories/Atoms/Subgrid.stories.js +0 -87
  1648. package/dist/stories/Molecules/AppBar.stories.js +0 -31
  1649. package/dist/stories/Molecules/AppHeader/AppHeader.stories.js +0 -84
  1650. package/dist/stories/Molecules/AppHeader/AppHeaderDropdown.stories.js +0 -67
  1651. package/dist/stories/Molecules/AppHeader/AppHeaderLink.stories.js +0 -50
  1652. package/dist/stories/Molecules/AppHeader/AppHeaderLogo.stories.js +0 -43
  1653. package/dist/stories/Molecules/AppHeader/AppHeaderMainMenuMobile.stories.js +0 -34
  1654. package/dist/stories/Molecules/AppHeader/AppHeaderMobile.stories.js +0 -40
  1655. package/dist/stories/Molecules/AppHeader/AppHeaderSubMenuMobile.stories.js +0 -25
  1656. package/dist/stories/Molecules/AppHeader/LXStudioHeader.stories.js +0 -176
  1657. package/dist/stories/Molecules/AppHeader/LXStudioMobileHeader.stories.js +0 -84
  1658. package/dist/stories/Molecules/AppHeader/MockAppHeaderElements.d.ts +0 -5
  1659. package/dist/stories/Molecules/AppHeader/MockAppHeaderElements.js +0 -90
  1660. package/dist/stories/Molecules/AvatarChooser.stories.js +0 -22
  1661. package/dist/stories/Molecules/BackToTopAnchor.stories.js +0 -51
  1662. package/dist/stories/Molecules/Banner.stories.js +0 -112
  1663. package/dist/stories/Molecules/Carousel.stories.js +0 -47
  1664. package/dist/stories/Molecules/ContentGroupBaseCard.stories.js +0 -175
  1665. package/dist/stories/Molecules/CurriculumCard.stories.js +0 -201
  1666. package/dist/stories/Molecules/CurriculumCards/CareerPathCard.stories.js +0 -94
  1667. package/dist/stories/Molecules/CurriculumCards/CertificationPathCard.stories.js +0 -67
  1668. package/dist/stories/Molecules/CurriculumCards/CourseCard.stories.js +0 -85
  1669. package/dist/stories/Molecules/CurriculumCards/LoadingCurriculumCard.stories.js +0 -20
  1670. package/dist/stories/Molecules/CurriculumCards/SkillPathCard.stories.js +0 -92
  1671. package/dist/stories/Molecules/DropdownButton.stories.js +0 -207
  1672. package/dist/stories/Molecules/EmptySection.stories.js +0 -167
  1673. package/dist/stories/Molecules/EnhancedBanner.stories.js +0 -104
  1674. package/dist/stories/Molecules/ErrorContents.stories.js +0 -19
  1675. package/dist/stories/Molecules/GridCollapse.stories.js +0 -42
  1676. package/dist/stories/Molecules/HorizontalScrollMenu.examples.d.ts +0 -1
  1677. package/dist/stories/Molecules/HorizontalScrollMenu.examples.js +0 -67
  1678. package/dist/stories/Molecules/HorizontalScrollMenu.stories.js +0 -11
  1679. package/dist/stories/Molecules/HubCard.stories.js +0 -27
  1680. package/dist/stories/Molecules/InfoCard.stories.js +0 -30
  1681. package/dist/stories/Molecules/InstructorCard.stories.js +0 -125
  1682. package/dist/stories/Molecules/LearningOutcomeAssessmentScores.stories.js +0 -23
  1683. package/dist/stories/Molecules/LearningOutcomeCard.stories.js +0 -189
  1684. package/dist/stories/Molecules/LearningOutcomeFlyout.stories.js +0 -62
  1685. package/dist/stories/Molecules/LearningOutcomeLevelBadge.stories.js +0 -20
  1686. package/dist/stories/Molecules/LearningOutcomeLowAssessmentBadge.stories.js +0 -10
  1687. package/dist/stories/Molecules/LearningOutcomePopover.stories.js +0 -39
  1688. package/dist/stories/Molecules/LearningOutcomeTile.stories.js +0 -276
  1689. package/dist/stories/Molecules/ListSection.stories.js +0 -97
  1690. package/dist/stories/Molecules/Loading.stories.js +0 -10
  1691. package/dist/stories/Molecules/NotificationList.stories.js +0 -99
  1692. package/dist/stories/Molecules/PageSection.stories.js +0 -67
  1693. package/dist/stories/Molecules/PastDueModalContents.stories.js +0 -62
  1694. package/dist/stories/Molecules/PausableImage.stories.js +0 -16
  1695. package/dist/stories/Molecules/Recurly.stories.js +0 -56
  1696. package/dist/stories/Molecules/ResourceCard.stories.js +0 -18
  1697. package/dist/stories/Molecules/SocialMediaSharing.stories.js +0 -20
  1698. package/dist/stories/Molecules/SocialMediaSharingDropdown.stories.js +0 -20
  1699. package/dist/stories/Molecules/Testimonial.stories.js +0 -59
  1700. package/dist/stories/Organisms/GlobalFooter.stories.js +0 -28
  1701. package/dist/stories/Organisms/GlobalHeader/About.stories.js +0 -133
  1702. package/dist/stories/Organisms/GlobalHeader/Anon.stories.js +0 -71
  1703. package/dist/stories/Organisms/GlobalHeader/Bootcamp.stories.js +0 -29
  1704. package/dist/stories/Organisms/GlobalHeader/Enterprise.stories.js +0 -105
  1705. package/dist/stories/Organisms/GlobalHeader/Free.stories.js +0 -131
  1706. package/dist/stories/Organisms/GlobalHeader/Pro.stories.js +0 -197
  1707. package/dist/stories/Organisms/GlobalHeader/Simple.stories.js +0 -28
  1708. package/dist/stories/Organisms/GlobalPage.stories.js +0 -138
  1709. package/dist/stories/Organisms/LayoutMenu.stories.js +0 -239
  1710. package/dist/stories/Organisms/LayoutMenuVariant.stories.js +0 -222
  1711. package/dist/stories/Organisms/PageAlerts.example.d.ts +0 -2
  1712. package/dist/stories/Organisms/PageAlerts.example.js +0 -42
  1713. package/dist/stories/Organisms/PageAlerts.stories.js +0 -15
  1714. package/dist/stories/Organisms/PageLayoutWithSidebarMenu.stories.js +0 -34
  1715. package/dist/stories/Organisms/PlanCard.stories.js +0 -98
  1716. package/dist/stories/Organisms/PlanCardTeams.stories.js +0 -27
  1717. package/dist/stories/Organisms/ScoreSummary.stories.js +0 -295
  1718. package/dist/svg.d.ts +0 -7
  1719. package/dist/theme.d.ts +0 -5
  1720. /package/dist/{NotFoundContent/404.svg → assets/404-D8snV7Lj.svg} +0 -0
  1721. /package/dist/{GlobalFooter/FooterNavLinks/assets/download-on-the-app-store.svg → assets/download-on-the-app-store-87XvXmEX.svg} +0 -0
  1722. /package/dist/{GlobalFooter/FooterNavLinks/assets/get-it-on-google-play.png → assets/get-it-on-google-play-cFfTb9QO.png} +0 -0
  1723. /package/dist/assets/{navyQuotes.svg → navyQuotes-Cfst7AwB.svg} +0 -0
@@ -1,629 +1,469 @@
1
- import _styled from "@emotion/styled/base";
2
- function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
3
- import { Badge, Box, ContentContainer, FlexBox, FocusTrap, IconButton, Menu, MenuItem, Shimmer, StrokeButton, Text } from '@codecademy/gamut';
4
- import { MiniDeleteIcon, SearchIcon } from '@codecademy/gamut-icons';
5
- import { css, theme, useCurrentMode } from '@codecademy/gamut-styles';
6
- import { useTheme } from '@emotion/react';
7
- import * as React from 'react';
8
- import { useEffect, useRef, useState } from 'react';
9
- import { useGlobalHeaderDynamicDataContext } from '../../GlobalHeader/context';
10
- import { MarketingBanner } from '../AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner';
11
- import { useOnEscHandler } from '../shared';
12
- import { searchPlaceholder } from './consts';
13
- import { PopularContent, PopularSearches } from './DefaultResults';
14
- import { useUrlChangeDetection } from './hooks/useUrlChangeDetection';
15
- import { QuizAndHelpCenterLinks } from './QuizAndHelpCenterLinks';
16
- import { safelyRedirect } from './safelyRedirect';
17
- import { useSearchTrackingContext } from './SearchTrackingProvider';
18
- import { searchWorker } from './SearchWorker';
19
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
20
- const Form = Box.withComponent('form', {
21
- target: "e1e5b20r7",
22
- label: "Form"
23
- });
24
- const Input = Box.withComponent('input', {
25
- target: "e1e5b20r8",
26
- label: "Input"
27
- });
28
- const QueryContainer = /*#__PURE__*/_styled(ContentContainer, {
29
- target: "e1e5b20r6",
30
- label: "QueryContainer"
31
- })(({
32
- $compact
33
- }) => css({
34
- display: 'flex',
35
- width: '100%',
36
- pt: 16,
37
- pb: $compact ? {
38
- _: 0,
39
- md: 4
40
- } : {
41
- _: 0,
42
- md: 24
43
- },
44
- px: {
45
- _: 24
46
- }
47
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVDdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */");
48
- const SuggestionContainer = /*#__PURE__*/_styled(ContentContainer, {
49
- target: "e1e5b20r5",
50
- label: "SuggestionContainer"
51
- })(({
52
- $compact
53
- }) => css({
54
- pt: $compact ? 4 : 16,
55
- pb: {
56
- _: 0,
57
- md: 24
58
- },
59
- px: {
60
- _: 24
61
- }
62
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtENEIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */");
63
- const StyledInput = /*#__PURE__*/_styled(Input, {
64
- target: "e1e5b20r4",
65
- label: "StyledInput"
1
+ import { useOnEscHandler } from "../shared/keyboardNav.js";
2
+ import "../shared/index.js";
3
+ import { useSearchTrackingContext } from "./SearchTrackingProvider/index.js";
4
+ import { useGlobalHeaderDynamicDataContext } from "../../GlobalHeader/context.js";
5
+ import { MarketingBanner } from "../AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.js";
6
+ import { searchPlaceholder } from "./consts.js";
7
+ import { PopularContent, PopularSearches } from "./DefaultResults.js";
8
+ import { useUrlChangeDetection } from "./hooks/useUrlChangeDetection.js";
9
+ import { QuizAndHelpCenterLinks } from "./QuizAndHelpCenterLinks.js";
10
+ import { safelyRedirect } from "./safelyRedirect.js";
11
+ import { searchWorker } from "./SearchWorker/index.js";
12
+ import { Badge, Box, ContentContainer, FlexBox, FocusTrap, IconButton, Menu, MenuItem, Shimmer, StrokeButton, Text } from "@codecademy/gamut";
13
+ import { css, theme, useCurrentMode } from "@codecademy/gamut-styles";
14
+ import styled from "@emotion/styled";
15
+ import * as React$1 from "react";
16
+ import { useEffect, useRef, useState } from "react";
17
+ import { MiniDeleteIcon, SearchIcon } from "@codecademy/gamut-icons";
18
+ import { useTheme } from "@emotion/react";
19
+
20
+ //#region src/AppHeader/Search/SearchPane.tsx
21
+ const Form = Box.withComponent("form");
22
+ const Input$1 = Box.withComponent("input");
23
+ const QueryContainer = /* @__PURE__ */ styled(ContentContainer, {
24
+ target: "ebeevrx0",
25
+ label: "brand-QueryContainer"
26
+ })(({ $compact }) => css({
27
+ display: "flex",
28
+ width: "100%",
29
+ pt: 16,
30
+ pb: $compact ? {
31
+ _: 0,
32
+ md: 4
33
+ } : {
34
+ _: 0,
35
+ md: 24
36
+ },
37
+ px: { _: 24 }
38
+ }), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1Q3VCIn0= */");
39
+ const SuggestionContainer = /* @__PURE__ */ styled(ContentContainer, {
40
+ target: "ebeevrx1",
41
+ label: "brand-SuggestionContainer"
42
+ })(({ $compact }) => css({
43
+ pt: $compact ? 4 : 16,
44
+ pb: {
45
+ _: 0,
46
+ md: 24
47
+ },
48
+ px: { _: 24 }
49
+ }), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrRDRCIn0= */");
50
+ const StyledInput = /* @__PURE__ */ styled(Input$1, {
51
+ target: "ebeevrx2",
52
+ label: "brand-StyledInput"
66
53
  })(css({
67
- outline: `none`,
68
- '&::placeholder': {
69
- textColor: theme.colors['text-secondary']
70
- }
71
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJEb0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */");
72
- const InlineResultLi = /*#__PURE__*/_styled(MenuItem, {
73
- target: "e1e5b20r3",
74
- label: "InlineResultLi"
54
+ outline: `none`,
55
+ "&::placeholder": { textColor: theme.colors["text-secondary"] }
56
+ }), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyRG9CIn0= */");
57
+ const InlineResultLi = /* @__PURE__ */ styled(MenuItem, {
58
+ target: "ebeevrx3",
59
+ label: "brand-InlineResultLi"
75
60
  })(css({
76
- pl: 0,
77
- py: 8,
78
- fontSize: 16,
79
- '&:focus-visible:after': {
80
- left: -4
81
- }
82
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9FdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */");
83
- const InlineLoaderLi = /*#__PURE__*/_styled("li", {
84
- target: "e1e5b20r2",
85
- label: "InlineLoaderLi"
61
+ pl: 0,
62
+ py: 8,
63
+ fontSize: 16,
64
+ "&:focus-visible:after": { left: -4 }
65
+ }), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvRXVCIn0= */");
66
+ const InlineLoaderLi = /* @__PURE__ */ styled("li", {
67
+ target: "ebeevrx4",
68
+ label: "brand-InlineLoaderLi"
86
69
  })(css({
87
- listStyleType: 'none',
88
- display: 'flex',
89
- gap: 12,
90
- alignItems: 'center'
91
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStFdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */");
92
- export const SemiboldSearchIcon = /*#__PURE__*/_styled(SearchIcon, {
93
- target: "e1e5b20r1",
94
- label: "SemiboldSearchIcon"
95
- })(process.env.NODE_ENV === "production" ? {
96
- name: "138xhwl",
97
- styles: "overflow:visible!important;circle,path{stroke-width:2px;}rect{transform:translate(-2px, -2px);height:calc(100% + 4px);width:calc(100% + 4px);}"
98
- } : {
99
- name: "138xhwl",
100
- styles: "overflow:visible!important;circle,path{stroke-width:2px;}rect{transform:translate(-2px, -2px);height:calc(100% + 4px);width:calc(100% + 4px);}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdGb0QiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */",
101
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
102
- });
103
- const EllipsisBox = /*#__PURE__*/_styled(Box, {
104
- target: "e1e5b20r0",
105
- label: "EllipsisBox"
106
- })(process.env.NODE_ENV === "production" ? {
107
- name: "rkw162",
108
- styles: "text-overflow:ellipsis"
109
- } : {
110
- name: "rkw162",
111
- styles: "text-overflow:ellipsis/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFHK0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IE1hcmtldGluZ0Jhbm5lciB9IGZyb20gJy4uL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IHsgdXNlT25Fc2NIYW5kbGVyIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IHNlYXJjaFBsYWNlaG9sZGVyIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgUG9wdWxhckNvbnRlbnQsIFBvcHVsYXJTZWFyY2hlcyB9IGZyb20gJy4vRGVmYXVsdFJlc3VsdHMnO1xuaW1wb3J0IHsgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uIH0gZnJvbSAnLi9ob29rcy91c2VVcmxDaGFuZ2VEZXRlY3Rpb24nO1xuaW1wb3J0IHsgUXVpekFuZEhlbHBDZW50ZXJMaW5rcyB9IGZyb20gJy4vUXVpekFuZEhlbHBDZW50ZXJMaW5rcyc7XG5pbXBvcnQgeyBzYWZlbHlSZWRpcmVjdCB9IGZyb20gJy4vc2FmZWx5UmVkaXJlY3QnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0IH0gZnJvbSAnLi9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHNlYXJjaFdvcmtlciB9IGZyb20gJy4vU2VhcmNoV29ya2VyJztcbmltcG9ydCB0eXBlIHtcbiAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbixcbiAgU2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbn0gZnJvbSAnLi9TZWFyY2hXb3JrZXIvdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUGFuZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEZvcm0gPSBCb3gud2l0aENvbXBvbmVudCgnZm9ybScpO1xuY29uc3QgSW5wdXQgPSBCb3gud2l0aENvbXBvbmVudCgnaW5wdXQnKTtcblxuY29uc3QgUXVlcnlDb250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcik8eyAkY29tcGFjdD86IGJvb2xlYW4gfT4oXG4gICh7ICRjb21wYWN0IH0pID0+XG4gICAgY3NzKHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBwdDogMTYsXG4gICAgICBwYjogJGNvbXBhY3QgPyB7IF86IDAsIG1kOiA0IH0gOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgICAgcHg6IHsgXzogMjQgfSxcbiAgICB9KVxuKTtcblxuY29uc3QgU3VnZ2VzdGlvbkNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgcHQ6ICRjb21wYWN0ID8gNCA6IDE2LFxuICAgICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCBbc2VhcmNoUmVzdWx0Q2xpY2tlZCwgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgeyBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyB9ID0gdXNlU2VhcmNoVHJhY2tpbmdDb250ZXh0KCk7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGEgfSA9IHVzZUdsb2JhbEhlYWRlckR5bmFtaWNEYXRhQ29udGV4dCgpO1xuXG4gIGNvbnN0IGJhbm5lciA9IGdsb2JhbEhlYWRlckR5bmFtaWNEYXRhPy5jYXRhbG9nRHJvcGRvd24/LmJhbm5lcjtcbiAgY29uc3Qgc2hvd01hcmtldGluZ0Jhbm5lciA9IGJhbm5lcj8udGV4dCAmJiBiYW5uZXI/LmhyZWYgJiYgTWFya2V0aW5nQmFubmVyO1xuXG4gIGNvbnN0IHNlYXJjaEFzWW91VHlwZUxvYWRlciA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gKHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGwgPyBybmRMb2FkZXIoKSA6IG51bGwpLFxuICAgIFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzXVxuICApO1xuXG4gIGNvbnN0IHZhbHVlVHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcblxuICBjb25zdCBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgPVxuICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMgJiYgIXNlYXJjaFJlc3VsdENsaWNrZWQ7XG5cbiAgY29uc3QgY2xvc2VTZWFyY2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdXNlciBtYWRlIGEgc2VhcmNoIGFuZCB0aGVuIGNsb3NlZCBzZWFyY2ggcGFuZVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdG9nZ2xlU2VhcmNoKCk7XG4gICAgLy8gYWRkcyBhIGxpdHRsZSBkZWxheSBiZXR3ZWVuIGNsb3NpbmcgdGhlIHNlYXJjaCBwYW5lIGFuZCBmb2N1c2luZyBvbiB0aGUgYnV0dG9uXG4gICAgLy8gdG8gcHJldmVudCB0aGUgc2VhcmNoIHBhbmUgZnJvbSBpbW1lZGlhdGVseSBvcGVuaW5nIGFnYWluXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoQnV0dG9uUmVmICYmIHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudCkge1xuICAgICAgICBzZWFyY2hCdXR0b25SZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMCk7XG4gIH07XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlT25Fc2NIYW5kbGVyKGNsb3NlU2VhcmNoKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICAgIC8vIHJlc2V0IHRvIGZhbHNlIHdoZW4gdGhlIHNlYXJjaCBxdWVyeSBjaGFuZ2VzXG4gICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZChmYWxzZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyID0gKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMgdGhlIGZvcm0gdG8gY2FwdHVyZSBjb21wbGV0ZSBxdWVyeVxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2spIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICB9O1xuXG4gIGNvbnN0IGNsZWFySW5wdXQgPSAoKSA9PiB7XG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IGJlZm9yZSB1c2VyIGNsZWFycyBpbnB1dFxuICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUoJycpO1xuICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAvLyByZXNldCB0aGUgY29udGV4dCB3aXRoIGVtcHR5IHZhbHVlc1xuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgIHJlc3VsdHNDb3VudDogMCxcbiAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gd2hlbiB0aGUgY3VycmVudCBVUkwgY2hhbmdlcywgd2Ugd2FudCB0byBjbG9zZSB0aGUgc2VhcmNoIHBhbmUgaWYgaXQncyBvcGVuXG4gIC8vIGFuZCB0cmFjayBzZWFyY2ggZXZlbnQgaWYgdXNlciBtYWRlIGEgc2VhcmNoXG4gIHVzZVVybENoYW5nZURldGVjdGlvbih7XG4gICAgb25VcmxDaGFuZ2U6ICgpID0+IHtcbiAgICAgIGlmIChoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHNXaXRob3V0Q2xpY2sgJiYgdmFsdWVUcmltbWVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgICBvblNlYXJjaEFzWW91VHlwZShxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICB9XG5cbiAgICAgIHRvZ2dsZVNlYXJjaCgpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gZG9uJ3QgdHJhY2sgaWYgYSByZXN1bHQgd2FzIGNsaWNrZWQgb3IgaWYgd2UgZG9uJ3QgaGF2ZSBzZWFyY2ggcmVzdWx0c1xuICAgIGlmIChcbiAgICAgIHNlYXJjaFJlc3VsdENsaWNrZWQgfHxcbiAgICAgICFvblNlYXJjaEFzWW91VHlwZSB8fFxuICAgICAgIXNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfHxcbiAgICAgICF2YWx1ZVRyaW1tZWQubGVuZ3RoXG4gICAgKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICByZXR1cm47XG4gIH0sIFtcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGxldCBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXk6IE5vZGVKUy5UaW1lb3V0O1xuXG4gICAgY29uc3QgbG9hZGVyRGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8qXG4gICAgICAgKiBXYWl0IDEwIG1pbGxpc2Vjb25kcyB0byBnZXQgYSByZXNwb25zZSBmb3Igd29ya2VyIGJlZm9yZSBzaG93aW5nIGxvYWRlcnMuXG4gICAgICAgKiBUaGlzIHByZXZlbnRzIGZsaWNrZXJpbmcgbG9hZGVycyBvbiBxdWljayBvciBjYWNoZWQgcmVzdWx0cy5cbiAgICAgICAqL1xuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuO1xuICAgICAgaWYgKGNsZWFyQXV0b2NvbXBsZXRlKSBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBpZiAoY2xlYXJTZWFyY2hBc1lvdVR5cGUpIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgfSwgMTApO1xuXG4gICAgc2VhcmNoV29ya2VyLmF1dG9jb21wbGV0ZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHN1Z2dlc3Rpb25zKSA9PiB7XG4gICAgICBjbGVhckF1dG9jb21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKHN1Z2dlc3Rpb25zKTtcbiAgICB9KTtcblxuICAgIHNlYXJjaFdvcmtlci5zZWFyY2hBc1lvdVR5cGUodmFsdWVUcmltbWVkKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICBjbGVhclNlYXJjaEFzWW91VHlwZSA9IGZhbHNlO1xuXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47IC8vIHRleHQgaGFzIGNoYW5nZWQgc2luY2UgdGhpcyByZXF1ZXN0IHdhcyBtYWRlXG5cbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMocmVzdWx0cyk7XG5cbiAgICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zKHtcbiAgICAgICAgcXVlcnk6IHJlc3VsdHMucXVlcnksXG4gICAgICAgIHNlYXJjaElkOiByZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICByZXN1bHRzQ291bnQ6IHJlc3VsdHMudG9wLmxlbmd0aCxcbiAgICAgICAgcXVlcnlMb2FkVGltZTogcmVzdWx0cy5xdWVyeUxvYWRUaW1lLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aXRoIGEgc21hbGwgZGVsYXkgd2hlbiB0aGVyZSBhcmUgbm8gcmVzdWx0c1xuICAgICAgaWYgKFxuICAgICAgICBvblNlYXJjaEFzWW91VHlwZSAmJlxuICAgICAgICByZXN1bHRzLnRvcC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgIXNlYXJjaFJlc3VsdENsaWNrZWRcbiAgICAgICkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcXVlcnlMb2FkVGltZSB9ID0gcmVzdWx0cztcbiAgICAgICAgc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjYW5jZWwpIHtcbiAgICAgICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgMCwgcXVlcnlMb2FkVGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAzMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbCA9IHRydWU7XG4gICAgICBjbGVhclRpbWVvdXQobG9hZGVyRGVsYXkpO1xuICAgICAgY2xlYXJUaW1lb3V0KHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheSk7XG4gICAgfTtcbiAgfSwgW1xuICAgIHZhbHVlVHJpbW1lZCxcbiAgICBvblNlYXJjaEFzWW91VHlwZSxcbiAgICBzZWFyY2hSZXN1bHRDbGlja2VkLFxuICAgIHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Qm94XG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIGJnPVwic2hhZG93LXNlY29uZGFyeVwiXG4gICAgICAgIGhlaWdodD1cIjEwMHZoXCJcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIC8vIFdlIGFkZCA2cmVtIGhlcmUgaW4gY2FzZSB0aGVyZSdzIHNvbWUgc29ydCBvZiBicmFuZGVkIGJhbm5lciBhYm92ZSBzZWFyY2hcbiAgICAgICAgLy8gVGhlIHNlYXJjaCBhcmVhIGlzIG11Y2ggdGFsbGVyIHRoYW4gNnJlbSBzbyB0aGlzIGlzIGEgc2FmZSBhbW91bnQgb2YgcGFkZGluZ1xuICAgICAgICB0b3A9e2BjYWxjKCR7dGhlbWUuZWxlbWVudHMuaGVhZGVySGVpZ2h0fSArIDZyZW0pYH1cbiAgICAgICAgd2lkdGg9ezF9XG4gICAgICAvPlxuICAgICAgPEZvY3VzVHJhcFxuICAgICAgICBvbkVzY2FwZUtleT17Y2xvc2VTZWFyY2h9XG4gICAgICAgIG9uQ2xpY2tPdXRzaWRlPXtvbk1vdXNlRG93bk91dHNpZGV9XG4gICAgICAgIGFsbG93UGFnZUludGVyYWN0aW9uXG4gICAgICA+XG4gICAgICAgIDxCb3hcbiAgICAgICAgICBiZz1cImJhY2tncm91bmRcIlxuICAgICAgICAgIGJvcmRlckNvbG9yQm90dG9tPVwiYm9yZGVyLXByaW1hcnlcIlxuICAgICAgICAgIGJvcmRlckNvbG9yVG9wPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICBib3JkZXJTdHlsZT1cInNvbGlkXCJcbiAgICAgICAgICBib3JkZXJXaWR0aD1cIjJweCAwIDFweFwiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJoZWFkZXItc2VhcmNoLWRyb3Bkb3duXCJcbiAgICAgICAgICBwb3NpdGlvbj17eyBfOiAnZml4ZWQnLCBtZDogJ2Fic29sdXRlJyB9fVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgbWF4SGVpZ2h0PXt7IF86ICdjYWxjKDEwMHZoIC0gNjNweCknLCBtZDogJ2NhbGMoMTAwdmggLSA4MHB4KScgfX1cbiAgICAgICAgICBvdmVyZmxvdz1cImF1dG9cIlxuICAgICAgICAgIHpJbmRleD17MTB9IC8vIGVuc3VyZSBkcm9wZG93biBpcyBhYm92ZSB0aGUgcGFnZSBjb250ZW50XG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGJvcmRlcj1cIm5vbmVcIiB3aWR0aD1cImF1dG9cIj5cbiAgICAgICAgICAgIDxRdWVyeUNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiYmFzZWxpbmVcIlxuICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiZ3JheS02MDBcIlxuICAgICAgICAgICAgICAgIGJvcmRlclN0eWxlQm90dG9tPVwic29saWRcIlxuICAgICAgICAgICAgICAgIGJvcmRlcldpZHRoQm90dG9tPVwiMXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb25cbiAgICAgICAgICAgICAgICAgIGhlaWdodD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgICB3aWR0aD17eyBfOiAyMCwgbWQ6IDI0IH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8Rm9ybVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPVwiL3NlYXJjaFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlYXJjaC1mb3JtXCJcbiAgICAgICAgICAgICAgICAgIG1sPXs4fVxuICAgICAgICAgICAgICAgICAgb25TdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcj1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAyMCwgbWQ6IDI2IH19XG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ9XCJib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJoZWFkZXItc2VhcmNoLWJhclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGUpID0+IG9uS2V5RG93bihlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3NlYXJjaFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0+XG4gICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGljb249e01pbmlEZWxldGVJY29ufVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXA9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50OiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgbmFycm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17Y2xlYXJJbnB1dH1cbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9RdWVyeUNvbnRhaW5lcj5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7c2hvd01hcmtldGluZ0Jhbm5lciAmJiAoXG4gICAgICAgICAgICA8Q29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPE1hcmtldGluZ0Jhbm5lclxuICAgICAgICAgICAgICAgIHNvdXJjZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgdGV4dD17YmFubmVyPy50ZXh0fVxuICAgICAgICAgICAgICAgIGhyZWY9e2Jhbm5lcj8uaHJlZn1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICBweT17eyBfOiAxNiwgbGc6IDI0IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0NvbnRlbnRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U3VnZ2VzdGlvbkNvbnRhaW5lciAkY29tcGFjdD17ISFzaG93TWFya2V0aW5nQmFubmVyfT5cbiAgICAgICAgICAgIHt2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8RmxleEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgYXM9XCJ1bFwiIGxpc3RTdHlsZT1cIm5vbmVcIiBwPXswfT5cbiAgICAgICAgICAgICAgICAgIHthdXRvQ29tcGxldGVTdWdnZXN0aW9ucy5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAga2V5PXtzLnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQgPz8gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNlbWlib2xkU2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWI9ezIgYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgbXI9ezEyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPEhpZ2hsaWdodGVkVGV4dCBzdWdnZXN0aW9uPXtzfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgIHsoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubGVuZ3RoID4gMCkgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPFRleHQgYXM9XCJoMlwiIGZvbnRTaXplPXsyMH0gbWI9ezE2fSBtdD17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgIFRvcCByZXN1bHRzXG4gICAgICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICBhcz1cInVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBwPXswfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHMgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2VhcmNoQXNZb3VUeXBlTG9hZGVyPy5zaGltbWVyUm93cy5tYXAoKHIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lTG9hZGVyTGkga2V5PXtyLmtleX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ci5zaGltbWVycy5tYXAoKHdvcmQpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNoaW1tZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezMwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5PXs4IGFzIDB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXt3b3JkLmtleX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17d29yZC53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5PVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPVwidGV4dC1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17eyBfOiAxMCBhcyAxNiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImJvcmRlci1zZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz1cInhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5PXswLjF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVMb2FkZXJMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy50b3AubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPElubGluZVJlc3VsdExpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17KGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlYXJjaFJlc3VsdENsaWNrZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FmZWx5UmVkaXJlY3Qocy51cmxQYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHsgY29udGVudF9pZDogcy5jb250ZW50SWQgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2Ugc2l6ZT1cInNtXCIgdmFyaWFudD1cInRlcnRpYXJ5XCIgbWw9ezEyfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3MudHlwZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JbmxpbmVSZXN1bHRMaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAge3NlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBmb250U2l6ZT17eyBfOiAyMCwgc206IDI2IH19IG10PXswfSBtYj17NDh9PlxuICAgICAgICAgICAgICAgICAgICAgIHtgV2UgY291bGRuJ3QgZmluZCBhIG1hdGNoIGZvciBgfVxuICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGZvbnRXZWlnaHQ9XCJib2xkXCI+e2BcIiR7dmFsdWVUcmltbWVkfS5cImB9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICcgVHJ5IGFub3RoZXIga2V5d29yZCwgb3Igc2VlIHdoYXQgb3VyIG1lbWJlcnMgYXJlIGxlYXJuaW5nLidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgYm9yZGVyPVwibm9uZVwiIHZhcmlhbnQ9XCJwb3BvdmVyXCI+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJTZWFyY2hlc1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaD17bmF2aWdhdGVUb1NlYXJjaH1cbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFBvcHVsYXJDb250ZW50IG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfSAvPlxuICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICB7ISFzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy50b3AubGVuZ3RoICYmIChcbiAgICAgICAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgICAgICAgIG15PXsxNn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3ZpZXdfYWxsX3Jlc3VsdHMnLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF9pZDogc2VhcmNoQXNZb3VUeXBlUmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaCh2YWx1ZSwgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWQpO1xuICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBhbGwgcmVzdWx0c1xuICAgICAgICAgICAgICA8L1N0cm9rZUJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UXVpekFuZEhlbHBDZW50ZXJMaW5rc1xuICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2VEcm9wZG93bj17Y2xvc2VTZWFyY2h9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU3VnZ2VzdGlvbkNvbnRhaW5lcj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0ZvY3VzVHJhcD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXX0= */",
112
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
113
- });
114
- const HighlightedText = ({
115
- suggestion: {
116
- title,
117
- segments
118
- }
119
- }) => {
120
- const mode = useCurrentMode();
121
- const highlightColor = mode === 'dark' ? 'hyper' : 'yellow';
122
- return /*#__PURE__*/_jsxs(FlexBox, {
123
- children: [/*#__PURE__*/_jsx(EllipsisBox, {
124
- maxWidth: "calc(100vw - 128px)",
125
- whiteSpace: "pre",
126
- "aria-hidden": true,
127
- overflow: "hidden",
128
- children: segments.map((segment, i) => /*#__PURE__*/_jsx(Text, {
129
- lineHeight: "title",
130
- ...(segment.highlight ? {
131
- bg: highlightColor,
132
- fontWeight: 'bold'
133
- } : {}),
134
- children: segment.value
135
- }, `${title}:${i.toString()}`))
136
- }), /*#__PURE__*/_jsx(Text, {
137
- screenreader: true,
138
- children: title
139
- })]
140
- });
70
+ listStyleType: "none",
71
+ display: "flex",
72
+ gap: 12,
73
+ alignItems: "center"
74
+ }), "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErRXVCIn0= */");
75
+ const SemiboldSearchIcon = /* @__PURE__ */ styled(SearchIcon, {
76
+ target: "ebeevrx5",
77
+ label: "brand-SemiboldSearchIcon"
78
+ })("overflow:visible !important;circle,path{stroke-width:2px;}rect{transform:translate(-2px,-2px);height:calc(100% + 4px);width:calc(100% + 4px);}", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3RmtDIn0= */");
79
+ const EllipsisBox = /* @__PURE__ */ styled(Box, {
80
+ target: "ebeevrx6",
81
+ label: "brand-EllipsisBox"
82
+ })("text-overflow:ellipsis;", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbW9uby9tb25vL2xpYnMvdWkvYnJhbmQvc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL21vbm8vbW9uby9saWJzL3VpL2JyYW5kL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZGdlLFxuICBCb3gsXG4gIENvbnRlbnRDb250YWluZXIsXG4gIEZsZXhCb3gsXG4gIEZvY3VzVHJhcCxcbiAgSWNvbkJ1dHRvbixcbiAgTWVudSxcbiAgTWVudUl0ZW0sXG4gIFNoaW1tZXIsXG4gIFN0cm9rZUJ1dHRvbixcbiAgVGV4dCxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaURlbGV0ZUljb24sIFNlYXJjaEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lLCB1c2VDdXJyZW50TW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lcic7XG5pbXBvcnQgeyB1c2VPbkVzY0hhbmRsZXIgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgc2VhcmNoUGxhY2Vob2xkZXIgfSBmcm9tICcuL2NvbnN0cyc7XG5pbXBvcnQgeyBQb3B1bGFyQ29udGVudCwgUG9wdWxhclNlYXJjaGVzIH0gZnJvbSAnLi9EZWZhdWx0UmVzdWx0cyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKTx7ICRjb21wYWN0PzogYm9vbGVhbiB9PihcbiAgKHsgJGNvbXBhY3QgfSkgPT5cbiAgICBjc3Moe1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIHB0OiAxNixcbiAgICAgIHBiOiAkY29tcGFjdCA/IHsgXzogMCwgbWQ6IDQgfSA6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgICBweDogeyBfOiAyNCB9LFxuICAgIH0pXG4pO1xuXG5jb25zdCBTdWdnZXN0aW9uQ29udGFpbmVyID0gc3R5bGVkKENvbnRlbnRDb250YWluZXIpPHsgJGNvbXBhY3Q/OiBib29sZWFuIH0+KFxuICAoeyAkY29tcGFjdCB9KSA9PlxuICAgIGNzcyh7XG4gICAgICBwdDogJGNvbXBhY3QgPyA0IDogMTYsXG4gICAgICBwYjogeyBfOiAwLCBtZDogMjQgfSxcbiAgICAgIHB4OiB7IF86IDI0IH0sXG4gICAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KShcbiAgY3NzKHtcbiAgICBvdXRsaW5lOiBgbm9uZWAsXG4gICAgJyY6OnBsYWNlaG9sZGVyJzoge1xuICAgICAgdGV4dENvbG9yOiB0aGVtZS5jb2xvcnNbJ3RleHQtc2Vjb25kYXJ5J10gYXMgbmV2ZXIsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IElubGluZVJlc3VsdExpID0gc3R5bGVkKE1lbnVJdGVtKShcbiAgY3NzKHtcbiAgICBwbDogMCxcbiAgICBweTogOCxcbiAgICBmb250U2l6ZTogMTYsXG4gICAgJyY6Zm9jdXMtdmlzaWJsZTphZnRlcic6IHtcbiAgICAgIGxlZnQ6IC00LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVMb2FkZXJMaSA9IHN0eWxlZC5saShcbiAgY3NzKHtcbiAgICBsaXN0U3R5bGVUeXBlOiAnbm9uZScsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGdhcDogMTIsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2VtaWJvbGRTZWFyY2hJY29uID0gc3R5bGVkKFNlYXJjaEljb24pYFxuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBjaXJjbGUsXG4gIHBhdGgge1xuICAgIHN0cm9rZS13aWR0aDogMnB4O1xuICB9XG4gIHJlY3Qge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0ycHgsIC0ycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgNHB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgfVxuYDtcblxuY29uc3QgRWxsaXBzaXNCb3ggPSBzdHlsZWQoQm94KWBcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuXG5jb25zdCBIaWdobGlnaHRlZFRleHQgPSAoe1xuICBzdWdnZXN0aW9uOiB7IHRpdGxlLCBzZWdtZW50cyB9LFxufToge1xuICBzdWdnZXN0aW9uOiBBdXRvY29tcGxldGVTdWdnZXN0aW9uO1xufSkgPT4ge1xuICBjb25zdCBtb2RlID0gdXNlQ3VycmVudE1vZGUoKTtcbiAgY29uc3QgaGlnaGxpZ2h0Q29sb3IgPSBtb2RlID09PSAnZGFyaycgPyAnaHlwZXInIDogJ3llbGxvdyc7XG5cbiAgcmV0dXJuIChcbiAgICA8RmxleEJveD5cbiAgICAgIDxFbGxpcHNpc0JveFxuICAgICAgICBtYXhXaWR0aD1cImNhbGMoMTAwdncgLSAxMjhweClcIlxuICAgICAgICB3aGl0ZVNwYWNlPVwicHJlXCJcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgb3ZlcmZsb3c9XCJoaWRkZW5cIlxuICAgICAgPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpKSA9PiAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17YCR7dGl0bGV9OiR7aS50b1N0cmluZygpfWB9XG4gICAgICAgICAgICBsaW5lSGVpZ2h0PVwidGl0bGVcIlxuICAgICAgICAgICAgey4uLihzZWdtZW50LmhpZ2hsaWdodFxuICAgICAgICAgICAgICA/IHsgYmc6IGhpZ2hsaWdodENvbG9yLCBmb250V2VpZ2h0OiAnYm9sZCcgfVxuICAgICAgICAgICAgICA6IHt9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7c2VnbWVudC52YWx1ZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkpfVxuICAgICAgPC9FbGxpcHNpc0JveD5cbiAgICAgIDxUZXh0IHNjcmVlbnJlYWRlcj57dGl0bGV9PC9UZXh0PlxuICAgIDwvRmxleEJveD5cbiAgKTtcbn07XG5cbnR5cGUgU2VhcmNoQXNZb3VUeXBlTG9hZGVyID0ge1xuICBzaGltbWVyUm93czoge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHNoaW1tZXJzOiB7XG4gICAgICBrZXk6IHN0cmluZztcbiAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgfVtdO1xuICB9W107XG59O1xuXG5sZXQgbG9hZGVyS2V5ID0gMDtcbmZ1bmN0aW9uIHJuZExvYWRlcigpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBsdXNwbHVzXG4gIGNvbnN0IGtleSA9IGxvYWRlcktleSsrO1xuICBjb25zdCBsb2FkZXI6IFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHsgc2hpbW1lclJvd3M6IFtdIH07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgNTsgaSsrKSB7XG4gICAgY29uc3Qgcm93ID0ge1xuICAgICAga2V5OiBgJHtrZXl9OiR7aX1gLFxuICAgICAgc2hpbW1lcnM6IFtdIGFzIHsga2V5OiBzdHJpbmc7IHdpZHRoOiBudW1iZXIgfVtdLFxuICAgIH07XG4gICAgY29uc3Qgd29yZHMgPSBNYXRoLmNlaWwoTWF0aC5yYW5kb20oKSAqIDMpO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZHM7IGorKykge1xuICAgICAgY29uc3Qgd2lkdGggPSAxMiArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDk2KTtcbiAgICAgIHJvdy5zaGltbWVycy5wdXNoKHtcbiAgICAgICAga2V5OiBgJHtrZXl9OiR7an1gLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2FkZXIuc2hpbW1lclJvd3MucHVzaChyb3cpO1xuICB9XG4gIHJldHVybiBsb2FkZXI7XG59XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hQYW5lOiBSZWFjdC5GQzxTZWFyY2hQYW5lUHJvcHM+ID0gKHtcbiAgb25TZWFyY2gsXG4gIG9uVHJhY2tpbmdDbGljayxcbiAgc2VhcmNoQnV0dG9uUmVmLFxuICB0b2dnbGVTZWFyY2gsXG4gIG9uU2VhcmNoQXNZb3VUeXBlLFxufSkgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgY29uc3QgW2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLCBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9uc10gPSB1c2VTdGF0ZTxcbiAgICBBdXRvY29tcGxldGVTdWdnZXN0aW9uW11cbiAgPihbXSk7XG4gIGNvbnN0IFtzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLCBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzXSA9XG4gICAgdXNlU3RhdGU8U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IFtzZWFyY2hSZXN1bHRDbGlja2VkLCBzZXRTZWFyY2hSZXN1bHRDbGlja2VkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJEeW5hbWljRGF0YSB9ID0gdXNlR2xvYmFsSGVhZGVyRHluYW1pY0RhdGFDb250ZXh0KCk7XG5cbiAgY29uc3QgYmFubmVyID0gZ2xvYmFsSGVhZGVyRHluYW1pY0RhdGE/LmNhdGFsb2dEcm9wZG93bj8uYmFubmVyO1xuICBjb25zdCBzaG93TWFya2V0aW5nQmFubmVyID0gYmFubmVyPy50ZXh0ICYmIGJhbm5lcj8uaHJlZiAmJiBNYXJrZXRpbmdCYW5uZXI7XG5cbiAgY29uc3Qgc2VhcmNoQXNZb3VUeXBlTG9hZGVyID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiAoc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbCA/IHJuZExvYWRlcigpIDogbnVsbCksXG4gICAgW3NlYXJjaEFzWW91VHlwZVJlc3VsdHNdXG4gICk7XG5cbiAgY29uc3QgdmFsdWVUcmltbWVkID0gdmFsdWUudHJpbSgpO1xuXG4gIGNvbnN0IGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayA9XG4gICAgb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyAmJiAhc2VhcmNoUmVzdWx0Q2xpY2tlZDtcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB1c2VyIG1hZGUgYSBzZWFyY2ggYW5kIHRoZW4gY2xvc2VkIHNlYXJjaCBwYW5lXG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0b2dnbGVTZWFyY2goKTtcbiAgICAvLyBhZGRzIGEgbGl0dGxlIGRlbGF5IGJldHdlZW4gY2xvc2luZyB0aGUgc2VhcmNoIHBhbmUgYW5kIGZvY3VzaW5nIG9uIHRoZSBidXR0b25cbiAgICAvLyB0byBwcmV2ZW50IHRoZSBzZWFyY2ggcGFuZSBmcm9tIGltbWVkaWF0ZWx5IG9wZW5pbmcgYWdhaW5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmIChzZWFyY2hCdXR0b25SZWYgJiYgc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50KSB7XG4gICAgICAgIHNlYXJjaEJ1dHRvblJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VPbkVzY0hhbmRsZXIoY2xvc2VTZWFyY2gpO1xuXG4gIGNvbnN0IG9uTW91c2VEb3duT3V0c2lkZSA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlT3V0c2lkZUNsaWNrID0gKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZG9jdW1lbnRcbiAgICAgICAgICAucXVlcnlTZWxlY3RvcignW2RhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXScpXG4gICAgICAgICAgPy5jb250YWlucyh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpICYmXG4gICAgICAgIHRhcmdldCAhPT0gc2VhcmNoQnV0dG9uUmVmPy5jdXJyZW50XG4gICAgICApIHtcbiAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgICB9O1xuXG4gICAgdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgaGFuZGxlT3V0c2lkZUNsaWNrKTtcbiAgfTtcblxuICBjb25zdCBuYXZpZ2F0ZVRvU2VhcmNoID0gKHNlYXJjaFRlcm06IHN0cmluZywgZnJvbVByZXZTZWFyY2g/OiBzdHJpbmcpID0+IHtcbiAgICBvblNlYXJjaChzZWFyY2hUZXJtLCBmcm9tUHJldlNlYXJjaCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgc2V0VmFsdWUoZXZ0LnRhcmdldC52YWx1ZSk7XG4gICAgLy8gcmVzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgc2VhcmNoIHF1ZXJ5IGNoYW5nZXNcbiAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQ6IFJlYWN0LkZvcm1FdmVudEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdoZW4gdGhlIHVzZXIgc3VibWl0cyB0aGUgZm9ybSB0byBjYXB0dXJlIGNvbXBsZXRlIHF1ZXJ5XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljaykge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gIH07XG5cbiAgY29uc3QgY2xlYXJJbnB1dCA9ICgpID0+IHtcbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgYmVmb3JlIHVzZXIgY2xlYXJzIGlucHV0XG4gICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBxdWVyeSwgc2VhcmNoSWQsIHJlc3VsdHNDb3VudCwgcXVlcnlMb2FkVGltZSB9ID1cbiAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICB9XG5cbiAgICBzZXRWYWx1ZSgnJyk7XG4gICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgIC8vIHJlc2V0IHRoZSBjb250ZXh0IHdpdGggZW1wdHkgdmFsdWVzXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgcXVlcnk6ICcnLFxuICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgcXVlcnlMb2FkVGltZTogMCxcbiAgICB9KTtcbiAgfTtcblxuICAvLyB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLCB3ZSB3YW50IHRvIGNsb3NlIHRoZSBzZWFyY2ggcGFuZSBpZiBpdCdzIG9wZW5cbiAgLy8gYW5kIHRyYWNrIHNlYXJjaCBldmVudCBpZiB1c2VyIG1hZGUgYSBzZWFyY2hcbiAgdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uKHtcbiAgICBvblVybENoYW5nZTogKCkgPT4ge1xuICAgICAgaWYgKGhhc1NlYXJjaEV2ZW50QW5kUmVzdWx0c1dpdGhvdXRDbGljayAmJiB2YWx1ZVRyaW1tZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM7XG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlKHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgIH1cblxuICAgICAgdG9nZ2xlU2VhcmNoKCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBkb24ndCB0cmFjayBpZiBhIHJlc3VsdCB3YXMgY2xpY2tlZCBvciBpZiB3ZSBkb24ndCBoYXZlIHNlYXJjaCByZXN1bHRzXG4gICAgaWYgKFxuICAgICAgc2VhcmNoUmVzdWx0Q2xpY2tlZCB8fFxuICAgICAgIW9uU2VhcmNoQXNZb3VUeXBlIHx8XG4gICAgICAhc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyB8fFxuICAgICAgIXZhbHVlVHJpbW1lZC5sZW5ndGhcbiAgICApXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1yZXR1cm5cbiAgICAgIHJldHVybjtcbiAgfSwgW1xuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cyxcbiAgICB2YWx1ZVRyaW1tZWQsXG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICBzZWFyY2hXb3JrZXIuaW5pdCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlVHJpbW1lZC5sZW5ndGgpIHtcbiAgICAgIHNldFNlYXJjaEFzWW91VHlwZVJlc3VsdHMobnVsbCk7XG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiAnJyxcbiAgICAgICAgc2VhcmNoSWQ6ICcnLFxuICAgICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2FuY2VsID0gZmFsc2U7XG4gICAgbGV0IGNsZWFyQXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICBsZXQgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSB0cnVlO1xuXG4gICAgbGV0IHNlYXJjaEV2ZW50Tm9SZXN1bHREZWxheTogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgICBjb25zdCBsb2FkZXJEZWxheSA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLypcbiAgICAgICAqIFdhaXQgMTAgbWlsbGlzZWNvbmRzIHRvIGdldCBhIHJlc3BvbnNlIGZvciB3b3JrZXIgYmVmb3JlIHNob3dpbmcgbG9hZGVycy5cbiAgICAgICAqIFRoaXMgcHJldmVudHMgZmxpY2tlcmluZyBsb2FkZXJzIG9uIHF1aWNrIG9yIGNhY2hlZCByZXN1bHRzLlxuICAgICAgICovXG4gICAgICBpZiAoY2FuY2VsKSByZXR1cm47XG4gICAgICBpZiAoY2xlYXJBdXRvY29tcGxldGUpIHNldEF1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zKFtdKTtcbiAgICAgIGlmIChjbGVhclNlYXJjaEFzWW91VHlwZSkgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhudWxsKTtcbiAgICB9LCAxMCk7XG5cbiAgICBzZWFyY2hXb3JrZXIuYXV0b2NvbXBsZXRlKHZhbHVlVHJpbW1lZCkudGhlbigoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIGNsZWFyQXV0b2NvbXBsZXRlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoc3VnZ2VzdGlvbnMpO1xuICAgIH0pO1xuXG4gICAgc2VhcmNoV29ya2VyLnNlYXJjaEFzWW91VHlwZSh2YWx1ZVRyaW1tZWQpLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgIGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gZmFsc2U7XG5cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjsgLy8gdGV4dCBoYXMgY2hhbmdlZCBzaW5jZSB0aGlzIHJlcXVlc3Qgd2FzIG1hZGVcblxuICAgICAgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0cyhyZXN1bHRzKTtcblxuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogcmVzdWx0cy5xdWVyeSxcbiAgICAgICAgc2VhcmNoSWQ6IHJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgIHJlc3VsdHNDb3VudDogcmVzdWx0cy50b3AubGVuZ3RoLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiByZXN1bHRzLnF1ZXJ5TG9hZFRpbWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gdHJhY2sgc2VhcmNoIGV2ZW50IHdpdGggYSBzbWFsbCBkZWxheSB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzXG4gICAgICBpZiAoXG4gICAgICAgIG9uU2VhcmNoQXNZb3VUeXBlICYmXG4gICAgICAgIHJlc3VsdHMudG9wLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAhc2VhcmNoUmVzdWx0Q2xpY2tlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCBxdWVyeUxvYWRUaW1lIH0gPSByZXN1bHRzO1xuICAgICAgICBzZWFyY2hFdmVudE5vUmVzdWx0RGVsYXkgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIWNhbmNlbCkge1xuICAgICAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCAwLCBxdWVyeUxvYWRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDMwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsID0gdHJ1ZTtcbiAgICAgIGNsZWFyVGltZW91dChsb2FkZXJEZWxheSk7XG4gICAgICBjbGVhclRpbWVvdXQoc2VhcmNoRXZlbnROb1Jlc3VsdERlbGF5KTtcbiAgICB9O1xuICB9LCBbXG4gICAgdmFsdWVUcmltbWVkLFxuICAgIG9uU2VhcmNoQXNZb3VUeXBlLFxuICAgIHNlYXJjaFJlc3VsdENsaWNrZWQsXG4gICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMsXG4gIF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDZyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA2cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNnJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXtjbG9zZVNlYXJjaH1cbiAgICAgICAgb25DbGlja091dHNpZGU9e29uTW91c2VEb3duT3V0c2lkZX1cbiAgICAgICAgYWxsb3dQYWdlSW50ZXJhY3Rpb25cbiAgICAgID5cbiAgICAgICAgPEJveFxuICAgICAgICAgIGJnPVwiYmFja2dyb3VuZFwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JCb3R0b209XCJib3JkZXItcHJpbWFyeVwiXG4gICAgICAgICAgYm9yZGVyQ29sb3JUb3A9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICAgIGJvcmRlclN0eWxlPVwic29saWRcIlxuICAgICAgICAgIGJvcmRlcldpZHRoPVwiMnB4IDAgMXB4XCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIlxuICAgICAgICAgIHBvc2l0aW9uPXt7IF86ICdmaXhlZCcsIG1kOiAnYWJzb2x1dGUnIH19XG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBtYXhIZWlnaHQ9e3sgXzogJ2NhbGMoMTAwdmggLSA2M3B4KScsIG1kOiAnY2FsYygxMDB2aCAtIDgwcHgpJyB9fVxuICAgICAgICAgIG92ZXJmbG93PVwiYXV0b1wiXG4gICAgICAgICAgekluZGV4PXsxMH0gLy8gZW5zdXJlIGRyb3Bkb3duIGlzIGFib3ZlIHRoZSBwYWdlIGNvbnRlbnRcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggYm9yZGVyPVwibm9uZVwiIHdpZHRoPVwiYXV0b1wiPlxuICAgICAgICAgICAgPFF1ZXJ5Q29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM9XCJiYXNlbGluZVwiXG4gICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9XCJncmF5LTYwMFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyU3R5bGVCb3R0b209XCJzb2xpZFwiXG4gICAgICAgICAgICAgICAgYm9yZGVyV2lkdGhCb3R0b209XCIxcHhcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U2VhcmNoSWNvblxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt7IF86IDIwLCBtZDogMjQgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxGb3JtXG4gICAgICAgICAgICAgICAgICBhY3Rpb249XCIvc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwic2VhcmNoLWZvcm1cIlxuICAgICAgICAgICAgICAgICAgbWw9ezh9XG4gICAgICAgICAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDIwLCBtZDogMjYgfX1cbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodD1cImJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImhlYWRlci1zZWFyY2gtYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZSkgPT4gb25LZXlEb3duKGUpfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybT5cbiAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgaWNvbj17TWluaURlbGV0ZUljb259XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcD1cIkNsZWFyIHNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB0aXBQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICBuYXJyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogMixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbGVhcklucHV0fVxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICA8L1F1ZXJ5Q29udGFpbmVyPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICAgIHtzaG93TWFya2V0aW5nQmFubmVyICYmIChcbiAgICAgICAgICAgIDxDb250ZW50Q29udGFpbmVyPlxuICAgICAgICAgICAgICA8TWFya2V0aW5nQmFubmVyXG4gICAgICAgICAgICAgICAgc291cmNlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICB0ZXh0PXtiYW5uZXI/LnRleHR9XG4gICAgICAgICAgICAgICAgaHJlZj17YmFubmVyPy5ocmVmfVxuICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgIHB5PXt7IF86IDE2LCBsZzogMjQgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvQ29udGVudENvbnRhaW5lcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdWdnZXN0aW9uQ29udGFpbmVyICRjb21wYWN0PXshIXNob3dNYXJrZXRpbmdCYW5uZXJ9PlxuICAgICAgICAgICAge3ZhbHVlVHJpbW1lZC5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBhcz1cInVsXCIgbGlzdFN0eWxlPVwibm9uZVwiIHA9ezB9PlxuICAgICAgICAgICAgICAgICAge2F1dG9Db21wbGV0ZVN1Z2dlc3Rpb25zLm1hcCgocywgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3MudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ2F1dG9jb21wbGV0ZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdmlnYXRlVG9TZWFyY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCA/PyAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8uc2VhcmNoSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VhcmNoUmVzdWx0Q2xpY2tlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnOiBzLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlbHlSZWRpcmVjdChzLnVybFBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWFyY2hSZXN1bHRDbGlja2VkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRyYWNraW5nQ2xpY2soJ3NlYXJjaF9hc195b3VfdHlwZV9yZXN1bHQnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc6IHMuc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4ocy5jb250ZW50SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxR29CIn0= */");
83
+ const HighlightedText = ({ suggestion: { title, segments } }) => {
84
+ const highlightColor = useCurrentMode() === "dark" ? "hyper" : "yellow";
85
+ return /* @__PURE__ */ React$1.createElement(FlexBox, null, /* @__PURE__ */ React$1.createElement(EllipsisBox, {
86
+ maxWidth: "calc(100vw - 128px)",
87
+ whiteSpace: "pre",
88
+ "aria-hidden": true,
89
+ overflow: "hidden"
90
+ }, segments.map((segment, i) => /* @__PURE__ */ React$1.createElement(Text, {
91
+ key: `${title}:${i.toString()}`,
92
+ lineHeight: "title",
93
+ ...segment.highlight ? {
94
+ bg: highlightColor,
95
+ fontWeight: "bold"
96
+ } : {}
97
+ }, segment.value))), /* @__PURE__ */ React$1.createElement(Text, { screenreader: true }, title));
141
98
  };
142
99
  let loaderKey = 0;
143
100
  function rndLoader() {
144
- // eslint-disable-next-line no-plusplus
145
- const key = loaderKey++;
146
- const loader = {
147
- shimmerRows: []
148
- };
149
- for (let i = 0; i < 5; i++) {
150
- const row = {
151
- key: `${key}:${i}`,
152
- shimmers: []
153
- };
154
- const words = Math.ceil(Math.random() * 3);
155
- for (let j = 0; j < words; j++) {
156
- const width = 12 + Math.round(Math.random() * 96);
157
- row.shimmers.push({
158
- key: `${key}:${j}`,
159
- width
160
- });
161
- }
162
- loader.shimmerRows.push(row);
163
- }
164
- return loader;
101
+ const key = loaderKey++;
102
+ const loader = { shimmerRows: [] };
103
+ for (let i = 0; i < 5; i++) {
104
+ const row = {
105
+ key: `${key}:${i}`,
106
+ shimmers: []
107
+ };
108
+ const words = Math.ceil(Math.random() * 3);
109
+ for (let j = 0; j < words; j++) {
110
+ const width = 12 + Math.round(Math.random() * 96);
111
+ row.shimmers.push({
112
+ key: `${key}:${j}`,
113
+ width
114
+ });
115
+ }
116
+ loader.shimmerRows.push(row);
117
+ }
118
+ return loader;
165
119
  }
166
- export const SearchPane = ({
167
- onSearch,
168
- onTrackingClick,
169
- searchButtonRef,
170
- toggleSearch,
171
- onSearchAsYouType
172
- }) => {
173
- const theme = useTheme();
174
- const [value, setValue] = useState('');
175
- const inputRef = useRef(null);
176
- const [autoCompleteSuggestions, setAutoCompleteSuggestions] = useState([]);
177
- const [searchAsYouTypeResults, setSearchAsYouTypeResults] = useState(null);
178
- const [searchResultClicked, setSearchResultClicked] = useState(false);
179
- const {
180
- setOnSearchAsYouTypeParams
181
- } = useSearchTrackingContext();
182
- const {
183
- globalHeaderDynamicData
184
- } = useGlobalHeaderDynamicDataContext();
185
- const banner = globalHeaderDynamicData?.catalogDropdown?.banner;
186
- const showMarketingBanner = banner?.text && banner?.href && MarketingBanner;
187
- const searchAsYouTypeLoader = React.useMemo(() => searchAsYouTypeResults === null ? rndLoader() : null, [searchAsYouTypeResults]);
188
- const valueTrimmed = value.trim();
189
- const hasSearchEventAndResultsWithoutClick = onSearchAsYouType && searchAsYouTypeResults && !searchResultClicked;
190
- const closeSearch = async () => {
191
- // track search event when user made a search and then closed search pane
192
- if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
193
- const {
194
- query,
195
- searchId,
196
- resultsCount,
197
- queryLoadTime
198
- } = searchAsYouTypeResults;
199
- onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
200
- }
201
- await toggleSearch();
202
- // adds a little delay between closing the search pane and focusing on the button
203
- // to prevent the search pane from immediately opening again
204
- setTimeout(() => {
205
- if (searchButtonRef && searchButtonRef?.current) {
206
- searchButtonRef.current?.focus();
207
- }
208
- }, 10);
209
- };
210
- const onKeyDown = useOnEscHandler(closeSearch);
211
- const onMouseDownOutside = ({
212
- target
213
- }) => {
214
- const handleOutsideClick = () => {
215
- if (!document.querySelector('[data-testid="header-search-dropdown"]')?.contains(target) && target !== searchButtonRef?.current) {
216
- closeSearch();
217
- }
218
- target?.removeEventListener('mouseup', handleOutsideClick);
219
- };
220
- target?.addEventListener('mouseup', handleOutsideClick);
221
- };
222
- const navigateToSearch = (searchTerm, fromPrevSearch) => {
223
- onSearch(searchTerm, fromPrevSearch);
224
- };
225
- const handleChange = evt => {
226
- setValue(evt.target.value);
227
- // reset to false when the search query changes
228
- setSearchResultClicked(false);
229
- };
230
- const handleSubmit = event => {
231
- event.preventDefault();
232
-
233
- // track search event when the user submits the form to capture complete query
234
- if (hasSearchEventAndResultsWithoutClick) {
235
- const {
236
- query,
237
- searchId,
238
- resultsCount,
239
- queryLoadTime
240
- } = searchAsYouTypeResults;
241
- onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
242
- }
243
- navigateToSearch(value, searchAsYouTypeResults?.searchId);
244
- };
245
- const clearInput = () => {
246
- // track search event before user clears input
247
- if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
248
- const {
249
- query,
250
- searchId,
251
- resultsCount,
252
- queryLoadTime
253
- } = searchAsYouTypeResults;
254
- onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
255
- }
256
- setValue('');
257
- setAutoCompleteSuggestions([]);
258
- // reset the context with empty values
259
- setOnSearchAsYouTypeParams({
260
- query: '',
261
- searchId: '',
262
- resultsCount: 0,
263
- queryLoadTime: 0
264
- });
265
- };
266
-
267
- // when the current URL changes, we want to close the search pane if it's open
268
- // and track search event if user made a search
269
- useUrlChangeDetection({
270
- onUrlChange: () => {
271
- if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
272
- const {
273
- query,
274
- searchId,
275
- resultsCount,
276
- queryLoadTime
277
- } = searchAsYouTypeResults;
278
- onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
279
- }
280
- toggleSearch();
281
- }
282
- });
283
- useEffect(() => {
284
- // don't track if a result was clicked or if we don't have search results
285
- if (searchResultClicked || !onSearchAsYouType || !searchAsYouTypeResults || !valueTrimmed.length)
286
- // eslint-disable-next-line no-useless-return
287
- return;
288
- }, [searchResultClicked, searchAsYouTypeResults, valueTrimmed, onSearchAsYouType]);
289
- useEffect(() => {
290
- inputRef.current?.focus();
291
- searchWorker.init();
292
- }, []);
293
- useEffect(() => {
294
- if (!valueTrimmed.length) {
295
- setSearchAsYouTypeResults(null);
296
- setAutoCompleteSuggestions([]);
297
- setOnSearchAsYouTypeParams({
298
- query: '',
299
- searchId: '',
300
- resultsCount: 0,
301
- queryLoadTime: 0
302
- });
303
- return;
304
- }
305
- let cancel = false;
306
- let clearAutocomplete = true;
307
- let clearSearchAsYouType = true;
308
- let searchEventNoResultDelay;
309
- const loaderDelay = setTimeout(() => {
310
- /*
311
- * Wait 10 milliseconds to get a response for worker before showing loaders.
312
- * This prevents flickering loaders on quick or cached results.
313
- */
314
- if (cancel) return;
315
- if (clearAutocomplete) setAutoCompleteSuggestions([]);
316
- if (clearSearchAsYouType) setSearchAsYouTypeResults(null);
317
- }, 10);
318
- searchWorker.autocomplete(valueTrimmed).then(suggestions => {
319
- clearAutocomplete = false;
320
- if (cancel) return; // text has changed since this request was made
321
-
322
- setAutoCompleteSuggestions(suggestions);
323
- });
324
- searchWorker.searchAsYouType(valueTrimmed).then(results => {
325
- clearSearchAsYouType = false;
326
- if (cancel) return; // text has changed since this request was made
327
-
328
- setSearchAsYouTypeResults(results);
329
- setOnSearchAsYouTypeParams({
330
- query: results.query,
331
- searchId: results.searchId,
332
- resultsCount: results.top.length,
333
- queryLoadTime: results.queryLoadTime
334
- });
120
+ const SearchPane = ({ onSearch, onTrackingClick, searchButtonRef, toggleSearch, onSearchAsYouType }) => {
121
+ const theme = useTheme();
122
+ const [value, setValue] = useState("");
123
+ const inputRef = useRef(null);
124
+ const [autoCompleteSuggestions, setAutoCompleteSuggestions] = useState([]);
125
+ const [searchAsYouTypeResults, setSearchAsYouTypeResults] = useState(null);
126
+ const [searchResultClicked, setSearchResultClicked] = useState(false);
127
+ const { setOnSearchAsYouTypeParams } = useSearchTrackingContext();
128
+ const { globalHeaderDynamicData } = useGlobalHeaderDynamicDataContext();
129
+ const banner = globalHeaderDynamicData?.catalogDropdown?.banner;
130
+ const showMarketingBanner = banner?.text && banner?.href && MarketingBanner;
131
+ const searchAsYouTypeLoader = React$1.useMemo(() => searchAsYouTypeResults === null ? rndLoader() : null, [searchAsYouTypeResults]);
132
+ const valueTrimmed = value.trim();
133
+ const hasSearchEventAndResultsWithoutClick = onSearchAsYouType && searchAsYouTypeResults && !searchResultClicked;
134
+ const closeSearch = async () => {
135
+ if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
136
+ const { query, searchId, resultsCount, queryLoadTime } = searchAsYouTypeResults;
137
+ onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
138
+ }
139
+ await toggleSearch();
140
+ setTimeout(() => {
141
+ if (searchButtonRef && searchButtonRef?.current) searchButtonRef.current?.focus();
142
+ }, 10);
143
+ };
144
+ const onKeyDown = useOnEscHandler(closeSearch);
145
+ const onMouseDownOutside = ({ target }) => {
146
+ const handleOutsideClick = () => {
147
+ if (!document.querySelector("[data-testid=\"header-search-dropdown\"]")?.contains(target) && target !== searchButtonRef?.current) closeSearch();
148
+ target?.removeEventListener("mouseup", handleOutsideClick);
149
+ };
150
+ target?.addEventListener("mouseup", handleOutsideClick);
151
+ };
152
+ const navigateToSearch = (searchTerm, fromPrevSearch) => {
153
+ onSearch(searchTerm, fromPrevSearch);
154
+ };
155
+ const handleChange = (evt) => {
156
+ setValue(evt.target.value);
157
+ setSearchResultClicked(false);
158
+ };
159
+ const handleSubmit = (event) => {
160
+ event.preventDefault();
161
+ if (hasSearchEventAndResultsWithoutClick) {
162
+ const { query, searchId, resultsCount, queryLoadTime } = searchAsYouTypeResults;
163
+ onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
164
+ }
165
+ navigateToSearch(value, searchAsYouTypeResults?.searchId);
166
+ };
167
+ const clearInput = () => {
168
+ if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
169
+ const { query, searchId, resultsCount, queryLoadTime } = searchAsYouTypeResults;
170
+ onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
171
+ }
172
+ setValue("");
173
+ setAutoCompleteSuggestions([]);
174
+ setOnSearchAsYouTypeParams({
175
+ query: "",
176
+ searchId: "",
177
+ resultsCount: 0,
178
+ queryLoadTime: 0
179
+ });
180
+ };
181
+ useUrlChangeDetection({ onUrlChange: () => {
182
+ if (hasSearchEventAndResultsWithoutClick && valueTrimmed.length > 0) {
183
+ const { query, searchId, resultsCount, queryLoadTime } = searchAsYouTypeResults;
184
+ onSearchAsYouType(query, searchId, resultsCount, queryLoadTime);
185
+ }
186
+ toggleSearch();
187
+ } });
188
+ useEffect(() => {
189
+ if (searchResultClicked || !onSearchAsYouType || !searchAsYouTypeResults || !valueTrimmed.length) return;
190
+ }, [
191
+ searchResultClicked,
192
+ searchAsYouTypeResults,
193
+ valueTrimmed,
194
+ onSearchAsYouType
195
+ ]);
196
+ useEffect(() => {
197
+ inputRef.current?.focus();
198
+ searchWorker.init();
199
+ }, []);
200
+ useEffect(() => {
201
+ if (!valueTrimmed.length) {
202
+ setSearchAsYouTypeResults(null);
203
+ setAutoCompleteSuggestions([]);
204
+ setOnSearchAsYouTypeParams({
205
+ query: "",
206
+ searchId: "",
207
+ resultsCount: 0,
208
+ queryLoadTime: 0
209
+ });
210
+ return;
211
+ }
212
+ let cancel = false;
213
+ let clearAutocomplete = true;
214
+ let clearSearchAsYouType = true;
215
+ let searchEventNoResultDelay;
216
+ const loaderDelay = setTimeout(() => {
217
+ if (cancel) return;
218
+ if (clearAutocomplete) setAutoCompleteSuggestions([]);
219
+ if (clearSearchAsYouType) setSearchAsYouTypeResults(null);
220
+ }, 10);
221
+ searchWorker.autocomplete(valueTrimmed).then((suggestions) => {
222
+ clearAutocomplete = false;
223
+ if (cancel) return;
224
+ setAutoCompleteSuggestions(suggestions);
225
+ });
226
+ searchWorker.searchAsYouType(valueTrimmed).then((results) => {
227
+ clearSearchAsYouType = false;
228
+ if (cancel) return;
229
+ setSearchAsYouTypeResults(results);
230
+ setOnSearchAsYouTypeParams({
231
+ query: results.query,
232
+ searchId: results.searchId,
233
+ resultsCount: results.top.length,
234
+ queryLoadTime: results.queryLoadTime
235
+ });
236
+ if (onSearchAsYouType && results.top.length === 0 && !searchResultClicked) {
237
+ const { query, searchId, queryLoadTime } = results;
238
+ searchEventNoResultDelay = setTimeout(() => {
239
+ if (!cancel) onSearchAsYouType(query, searchId, 0, queryLoadTime);
240
+ }, 300);
241
+ }
242
+ });
243
+ return () => {
244
+ cancel = true;
245
+ clearTimeout(loaderDelay);
246
+ clearTimeout(searchEventNoResultDelay);
247
+ };
248
+ }, [
249
+ valueTrimmed,
250
+ onSearchAsYouType,
251
+ searchResultClicked,
252
+ setOnSearchAsYouTypeParams
253
+ ]);
254
+ return /* @__PURE__ */ React$1.createElement(React$1.Fragment, null, /* @__PURE__ */ React$1.createElement(Box, {
255
+ "aria-hidden": true,
256
+ bg: "shadow-secondary",
257
+ height: "100vh",
258
+ position: "fixed",
259
+ top: `calc(${theme.elements.headerHeight} + 6rem)`,
260
+ width: 1
261
+ }), /* @__PURE__ */ React$1.createElement(FocusTrap, {
262
+ onEscapeKey: closeSearch,
263
+ onClickOutside: onMouseDownOutside,
264
+ allowPageInteraction: true
265
+ }, /* @__PURE__ */ React$1.createElement(Box, {
266
+ bg: "background",
267
+ borderColorBottom: "border-primary",
268
+ borderColorTop: "border-tertiary",
269
+ borderStyle: "solid",
270
+ borderWidth: "2px 0 1px",
271
+ "data-testid": "header-search-dropdown",
272
+ position: {
273
+ _: "fixed",
274
+ md: "absolute"
275
+ },
276
+ width: "100%",
277
+ maxHeight: {
278
+ _: "calc(100vh - 63px)",
279
+ md: "calc(100vh - 80px)"
280
+ },
281
+ overflow: "auto",
282
+ zIndex: 10
283
+ }, /* @__PURE__ */ React$1.createElement(Box, {
284
+ border: "none",
285
+ width: "auto"
286
+ }, /* @__PURE__ */ React$1.createElement(QueryContainer, { $compact: !!showMarketingBanner }, /* @__PURE__ */ React$1.createElement(FlexBox, {
287
+ alignItems: "baseline",
288
+ borderColor: "gray-600",
289
+ borderStyleBottom: "solid",
290
+ borderWidthBottom: "1px",
291
+ width: "100%"
292
+ }, /* @__PURE__ */ React$1.createElement(SearchIcon, {
293
+ height: {
294
+ _: 20,
295
+ md: 24
296
+ },
297
+ width: {
298
+ _: 20,
299
+ md: 24
300
+ }
301
+ }), /* @__PURE__ */ React$1.createElement(Form, {
302
+ action: "/search",
303
+ id: "search-form",
304
+ ml: 8,
305
+ onSubmit: handleSubmit,
306
+ width: "100%"
307
+ }, /* @__PURE__ */ React$1.createElement(StyledInput, {
308
+ autoFocus: true,
309
+ background: "none",
310
+ border: "none",
311
+ color: "text",
312
+ fontSize: {
313
+ _: 20,
314
+ md: 26
315
+ },
316
+ fontWeight: "bold",
317
+ id: "header-search-bar",
318
+ name: "query",
319
+ onChange: handleChange,
320
+ onKeyDown: (e) => onKeyDown(e),
321
+ placeholder: searchPlaceholder,
322
+ ref: inputRef,
323
+ type: "search",
324
+ value,
325
+ width: "100%",
326
+ autoComplete: "off"
327
+ })), /* @__PURE__ */ React$1.createElement(IconButton, {
328
+ icon: MiniDeleteIcon,
329
+ "aria-label": "Clear search",
330
+ tip: "Clear search",
331
+ tipProps: {
332
+ alignment: "bottom-center",
333
+ placement: "floating",
334
+ narrow: true,
335
+ zIndex: 2
336
+ },
337
+ onClick: clearInput,
338
+ size: "small"
339
+ })))), showMarketingBanner && /* @__PURE__ */ React$1.createElement(ContentContainer, null, /* @__PURE__ */ React$1.createElement(MarketingBanner, {
340
+ source: "search",
341
+ text: banner?.text,
342
+ href: banner?.href,
343
+ tabIndex: 0,
344
+ py: {
345
+ _: 16,
346
+ lg: 24
347
+ }
348
+ })), /* @__PURE__ */ React$1.createElement(SuggestionContainer, { $compact: !!showMarketingBanner }, valueTrimmed.length > 0 ? /* @__PURE__ */ React$1.createElement(React$1.Fragment, null, /* @__PURE__ */ React$1.createElement(FlexBox, {
349
+ flexDirection: "column",
350
+ as: "ul",
351
+ listStyle: "none",
352
+ p: 0
353
+ }, autoCompleteSuggestions.map((s, i) => /* @__PURE__ */ React$1.createElement(InlineResultLi, {
354
+ key: s.title,
355
+ tabIndex: 0,
356
+ onKeyDown: (evt) => {
357
+ if (evt.key === "Enter") {
358
+ setSearchResultClicked(true);
359
+ onTrackingClick("autocomplete_result", {
360
+ search_id: searchAsYouTypeResults?.searchId ?? "",
361
+ misc: JSON.stringify({ position: i })
362
+ });
363
+ navigateToSearch(s.title, searchAsYouTypeResults?.searchId);
364
+ closeSearch();
365
+ }
366
+ },
367
+ onClick: () => {
368
+ setSearchResultClicked(true);
369
+ onTrackingClick("autocomplete_result", {
370
+ search_id: searchAsYouTypeResults?.searchId ?? "",
371
+ misc: JSON.stringify({ position: i })
372
+ });
373
+ navigateToSearch(s.title, searchAsYouTypeResults?.searchId);
374
+ closeSearch();
375
+ }
376
+ }, /* @__PURE__ */ React$1.createElement(SemiboldSearchIcon, {
377
+ mb: 2,
378
+ size: 14,
379
+ strokeWidth: 8,
380
+ "aria-hidden": true,
381
+ mr: 12
382
+ }), /* @__PURE__ */ React$1.createElement(HighlightedText, { suggestion: s })))), (searchAsYouTypeResults === null || searchAsYouTypeResults.top.length > 0) && /* @__PURE__ */ React$1.createElement(React$1.Fragment, null, /* @__PURE__ */ React$1.createElement(Text, {
383
+ as: "h2",
384
+ fontSize: 20,
385
+ mb: 16,
386
+ mt: 24
387
+ }, "Top results"), /* @__PURE__ */ React$1.createElement(FlexBox, {
388
+ flexDirection: "column",
389
+ as: "ul",
390
+ listStyle: "none",
391
+ p: 0
392
+ }, searchAsYouTypeResults === null ? searchAsYouTypeLoader?.shimmerRows.map((r) => /* @__PURE__ */ React$1.createElement(InlineLoaderLi, { key: r.key }, r.shimmers.map((word) => /* @__PURE__ */ React$1.createElement(Shimmer, {
393
+ height: 30,
394
+ py: 8,
395
+ key: word.key,
396
+ width: word.width
397
+ })), /* @__PURE__ */ React$1.createElement(Box, {
398
+ fontFamily: "accent",
399
+ textColor: "text-secondary",
400
+ fontSize: { _: 10 },
401
+ borderColor: "border-secondary",
402
+ border: 1,
403
+ borderRadius: "xl",
404
+ px: 16,
405
+ opacity: .1
406
+ }, "\xA0"))) : searchAsYouTypeResults.top.map((s, i) => /* @__PURE__ */ React$1.createElement(InlineResultLi, {
407
+ key: `${searchAsYouTypeResults.query}:${i.toString()}`,
408
+ tabIndex: 0,
409
+ role: "link",
410
+ onKeyDown: (evt) => {
411
+ if (evt.key === "Enter") {
412
+ setSearchResultClicked(true);
413
+ onTrackingClick("search_as_you_type_result", {
414
+ search_id: searchAsYouTypeResults.searchId,
415
+ slug: s.slug,
416
+ ...s.contentId ? { content_id: s.contentId } : {},
417
+ misc: JSON.stringify({ position: i })
418
+ });
419
+ closeSearch();
420
+ safelyRedirect(s.urlPath);
421
+ }
422
+ },
423
+ onClick: () => {
424
+ setSearchResultClicked(true);
425
+ onTrackingClick("search_as_you_type_result", {
426
+ search_id: searchAsYouTypeResults.searchId,
427
+ slug: s.slug,
428
+ ...s.contentId ? { content_id: s.contentId } : {},
429
+ misc: JSON.stringify({ position: i })
430
+ });
431
+ closeSearch();
432
+ safelyRedirect(s.urlPath);
433
+ }
434
+ }, /* @__PURE__ */ React$1.createElement(HighlightedText, { suggestion: s }), /* @__PURE__ */ React$1.createElement(Badge, {
435
+ size: "sm",
436
+ variant: "tertiary",
437
+ ml: 12
438
+ }, s.type))))), searchAsYouTypeResults?.top.length === 0 && /* @__PURE__ */ React$1.createElement(React$1.Fragment, null, /* @__PURE__ */ React$1.createElement(Box, {
439
+ fontSize: {
440
+ _: 20,
441
+ sm: 26
442
+ },
443
+ mt: 0,
444
+ mb: 48
445
+ }, `We couldn't find a match for `, /* @__PURE__ */ React$1.createElement(Text, { fontWeight: "bold" }, `"${valueTrimmed}."`), " Try another keyword, or see what our members are learning."), /* @__PURE__ */ React$1.createElement(Menu, {
446
+ border: "none",
447
+ variant: "popover"
448
+ }, /* @__PURE__ */ React$1.createElement(PopularContent, { onTrackingClick })))) : /* @__PURE__ */ React$1.createElement(Menu, {
449
+ border: "none",
450
+ variant: "popover"
451
+ }, /* @__PURE__ */ React$1.createElement(PopularSearches, {
452
+ navigateToSearch,
453
+ onTrackingClick
454
+ }), /* @__PURE__ */ React$1.createElement(PopularContent, { onTrackingClick })), !!searchAsYouTypeResults?.top.length && /* @__PURE__ */ React$1.createElement(StrokeButton, {
455
+ my: 16,
456
+ onClick: () => {
457
+ onTrackingClick("view_all_results", { search_id: searchAsYouTypeResults.searchId });
458
+ navigateToSearch(value, searchAsYouTypeResults?.searchId);
459
+ closeSearch();
460
+ }
461
+ }, "View all results"), /* @__PURE__ */ React$1.createElement(QuizAndHelpCenterLinks, {
462
+ onTrackingClick,
463
+ handleCloseDropdown: closeSearch
464
+ })))));
465
+ };
335
466
 
336
- // track search event with a small delay when there are no results
337
- if (onSearchAsYouType && results.top.length === 0 && !searchResultClicked) {
338
- const {
339
- query,
340
- searchId,
341
- queryLoadTime
342
- } = results;
343
- searchEventNoResultDelay = setTimeout(() => {
344
- if (!cancel) {
345
- onSearchAsYouType(query, searchId, 0, queryLoadTime);
346
- }
347
- }, 300);
348
- }
349
- });
350
- return () => {
351
- cancel = true;
352
- clearTimeout(loaderDelay);
353
- clearTimeout(searchEventNoResultDelay);
354
- };
355
- }, [valueTrimmed, onSearchAsYouType, searchResultClicked, setOnSearchAsYouTypeParams]);
356
- return /*#__PURE__*/_jsxs(_Fragment, {
357
- children: [/*#__PURE__*/_jsx(Box, {
358
- "aria-hidden": true,
359
- bg: "shadow-secondary",
360
- height: "100vh",
361
- position: "fixed"
362
- // We add 6rem here in case there's some sort of branded banner above search
363
- // The search area is much taller than 6rem so this is a safe amount of padding
364
- ,
365
- top: `calc(${theme.elements.headerHeight} + 6rem)`,
366
- width: 1
367
- }), /*#__PURE__*/_jsx(FocusTrap, {
368
- onEscapeKey: closeSearch,
369
- onClickOutside: onMouseDownOutside,
370
- allowPageInteraction: true,
371
- children: /*#__PURE__*/_jsxs(Box, {
372
- bg: "background",
373
- borderColorBottom: "border-primary",
374
- borderColorTop: "border-tertiary",
375
- borderStyle: "solid",
376
- borderWidth: "2px 0 1px",
377
- "data-testid": "header-search-dropdown",
378
- position: {
379
- _: 'fixed',
380
- md: 'absolute'
381
- },
382
- width: "100%",
383
- maxHeight: {
384
- _: 'calc(100vh - 63px)',
385
- md: 'calc(100vh - 80px)'
386
- },
387
- overflow: "auto",
388
- zIndex: 10 // ensure dropdown is above the page content
389
- ,
390
- children: [/*#__PURE__*/_jsx(Box, {
391
- border: "none",
392
- width: "auto",
393
- children: /*#__PURE__*/_jsx(QueryContainer, {
394
- $compact: !!showMarketingBanner,
395
- children: /*#__PURE__*/_jsxs(FlexBox, {
396
- alignItems: "baseline",
397
- borderColor: "gray-600",
398
- borderStyleBottom: "solid",
399
- borderWidthBottom: "1px",
400
- width: "100%",
401
- children: [/*#__PURE__*/_jsx(SearchIcon, {
402
- height: {
403
- _: 20,
404
- md: 24
405
- },
406
- width: {
407
- _: 20,
408
- md: 24
409
- }
410
- }), /*#__PURE__*/_jsx(Form, {
411
- action: "/search",
412
- id: "search-form",
413
- ml: 8,
414
- onSubmit: handleSubmit,
415
- width: "100%",
416
- children: /*#__PURE__*/_jsx(StyledInput, {
417
- autoFocus: true,
418
- background: "none",
419
- border: "none",
420
- color: "text",
421
- fontSize: {
422
- _: 20,
423
- md: 26
424
- },
425
- fontWeight: "bold",
426
- id: "header-search-bar",
427
- name: "query",
428
- onChange: handleChange,
429
- onKeyDown: e => onKeyDown(e),
430
- placeholder: searchPlaceholder,
431
- ref: inputRef,
432
- type: "search",
433
- value: value,
434
- width: "100%",
435
- autoComplete: "off"
436
- })
437
- }), /*#__PURE__*/_jsx(IconButton, {
438
- icon: MiniDeleteIcon,
439
- "aria-label": "Clear search",
440
- tip: "Clear search",
441
- tipProps: {
442
- alignment: 'bottom-center',
443
- placement: 'floating',
444
- narrow: true,
445
- zIndex: 2
446
- },
447
- onClick: clearInput,
448
- size: "small"
449
- })]
450
- })
451
- })
452
- }), showMarketingBanner && /*#__PURE__*/_jsx(ContentContainer, {
453
- children: /*#__PURE__*/_jsx(MarketingBanner, {
454
- source: "search",
455
- text: banner?.text,
456
- href: banner?.href,
457
- tabIndex: 0,
458
- py: {
459
- _: 16,
460
- lg: 24
461
- }
462
- })
463
- }), /*#__PURE__*/_jsxs(SuggestionContainer, {
464
- $compact: !!showMarketingBanner,
465
- children: [valueTrimmed.length > 0 ? /*#__PURE__*/_jsxs(_Fragment, {
466
- children: [/*#__PURE__*/_jsx(FlexBox, {
467
- flexDirection: "column",
468
- as: "ul",
469
- listStyle: "none",
470
- p: 0,
471
- children: autoCompleteSuggestions.map((s, i) => /*#__PURE__*/_jsxs(InlineResultLi, {
472
- tabIndex: 0,
473
- onKeyDown: evt => {
474
- if (evt.key === 'Enter') {
475
- setSearchResultClicked(true);
476
- onTrackingClick('autocomplete_result', {
477
- search_id: searchAsYouTypeResults?.searchId ?? '',
478
- misc: JSON.stringify({
479
- position: i
480
- })
481
- });
482
- navigateToSearch(s.title, searchAsYouTypeResults?.searchId);
483
- closeSearch();
484
- }
485
- },
486
- onClick: () => {
487
- setSearchResultClicked(true);
488
- onTrackingClick('autocomplete_result', {
489
- search_id: searchAsYouTypeResults?.searchId ?? '',
490
- misc: JSON.stringify({
491
- position: i
492
- })
493
- });
494
- navigateToSearch(s.title, searchAsYouTypeResults?.searchId);
495
- closeSearch();
496
- },
497
- children: [/*#__PURE__*/_jsx(SemiboldSearchIcon, {
498
- mb: 2,
499
- size: 14,
500
- strokeWidth: 8,
501
- "aria-hidden": true,
502
- mr: 12
503
- }), /*#__PURE__*/_jsx(HighlightedText, {
504
- suggestion: s
505
- })]
506
- }, s.title))
507
- }), (searchAsYouTypeResults === null || searchAsYouTypeResults.top.length > 0) && /*#__PURE__*/_jsxs(_Fragment, {
508
- children: [/*#__PURE__*/_jsx(Text, {
509
- as: "h2",
510
- fontSize: 20,
511
- mb: 16,
512
- mt: 24,
513
- children: "Top results"
514
- }), /*#__PURE__*/_jsx(FlexBox, {
515
- flexDirection: "column",
516
- as: "ul",
517
- listStyle: "none",
518
- p: 0,
519
- children: searchAsYouTypeResults === null ? searchAsYouTypeLoader?.shimmerRows.map(r => /*#__PURE__*/_jsxs(InlineLoaderLi, {
520
- children: [r.shimmers.map(word => /*#__PURE__*/_jsx(Shimmer, {
521
- height: 30,
522
- py: 8,
523
- width: word.width
524
- }, word.key)), /*#__PURE__*/_jsx(Box, {
525
- fontFamily: "accent",
526
- textColor: "text-secondary",
527
- fontSize: {
528
- _: 10
529
- },
530
- borderColor: "border-secondary",
531
- border: 1,
532
- borderRadius: "xl",
533
- px: 16,
534
- opacity: 0.1,
535
- children: "\xA0"
536
- })]
537
- }, r.key)) : searchAsYouTypeResults.top.map((s, i) => /*#__PURE__*/_jsxs(InlineResultLi, {
538
- tabIndex: 0,
539
- role: "link",
540
- onKeyDown: evt => {
541
- if (evt.key === 'Enter') {
542
- setSearchResultClicked(true);
543
- onTrackingClick('search_as_you_type_result', {
544
- search_id: searchAsYouTypeResults.searchId,
545
- slug: s.slug,
546
- ...(s.contentId ? {
547
- content_id: s.contentId
548
- } : {}),
549
- misc: JSON.stringify({
550
- position: i
551
- })
552
- });
553
- closeSearch();
554
- safelyRedirect(s.urlPath);
555
- }
556
- },
557
- onClick: () => {
558
- setSearchResultClicked(true);
559
- onTrackingClick('search_as_you_type_result', {
560
- search_id: searchAsYouTypeResults.searchId,
561
- slug: s.slug,
562
- ...(s.contentId ? {
563
- content_id: s.contentId
564
- } : {}),
565
- misc: JSON.stringify({
566
- position: i
567
- })
568
- });
569
- closeSearch();
570
- safelyRedirect(s.urlPath);
571
- },
572
- children: [/*#__PURE__*/_jsx(HighlightedText, {
573
- suggestion: s
574
- }), /*#__PURE__*/_jsx(Badge, {
575
- size: "sm",
576
- variant: "tertiary",
577
- ml: 12,
578
- children: s.type
579
- })]
580
- }, `${searchAsYouTypeResults.query}:${i.toString()}`))
581
- })]
582
- }), searchAsYouTypeResults?.top.length === 0 && /*#__PURE__*/_jsxs(_Fragment, {
583
- children: [/*#__PURE__*/_jsxs(Box, {
584
- fontSize: {
585
- _: 20,
586
- sm: 26
587
- },
588
- mt: 0,
589
- mb: 48,
590
- children: [`We couldn't find a match for `, /*#__PURE__*/_jsx(Text, {
591
- fontWeight: "bold",
592
- children: `"${valueTrimmed}."`
593
- }), ' Try another keyword, or see what our members are learning.']
594
- }), /*#__PURE__*/_jsx(Menu, {
595
- border: "none",
596
- variant: "popover",
597
- children: /*#__PURE__*/_jsx(PopularContent, {
598
- onTrackingClick: onTrackingClick
599
- })
600
- })]
601
- })]
602
- }) : /*#__PURE__*/_jsxs(Menu, {
603
- border: "none",
604
- variant: "popover",
605
- children: [/*#__PURE__*/_jsx(PopularSearches, {
606
- navigateToSearch: navigateToSearch,
607
- onTrackingClick: onTrackingClick
608
- }), /*#__PURE__*/_jsx(PopularContent, {
609
- onTrackingClick: onTrackingClick
610
- })]
611
- }), !!searchAsYouTypeResults?.top.length && /*#__PURE__*/_jsx(StrokeButton, {
612
- my: 16,
613
- onClick: () => {
614
- onTrackingClick('view_all_results', {
615
- search_id: searchAsYouTypeResults.searchId
616
- });
617
- navigateToSearch(value, searchAsYouTypeResults?.searchId);
618
- closeSearch();
619
- },
620
- children: "View all results"
621
- }), /*#__PURE__*/_jsx(QuizAndHelpCenterLinks, {
622
- onTrackingClick: onTrackingClick,
623
- handleCloseDropdown: closeSearch
624
- })]
625
- })]
626
- })
627
- })]
628
- });
629
- };
467
+ //#endregion
468
+ export { SearchPane, SemiboldSearchIcon };
469
+ //# sourceMappingURL=SearchPane.js.map