simpo-component-library 3.6.967 → 3.6.970

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 (251) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/components/delete-hover-element/delete-hover-element.component.mjs +3 -3
  3. package/esm2022/lib/components/deprecated-section/deprecated-section.component.mjs +1 -1
  4. package/esm2022/lib/components/document/document.component.mjs +3 -3
  5. package/esm2022/lib/components/image-loading/image-loading.component.mjs +3 -3
  6. package/esm2022/lib/components/payment-details/payment-details.component.mjs +3 -3
  7. package/esm2022/lib/constants/business.constant.mjs +1 -1
  8. package/esm2022/lib/directive/alignment.directive.mjs +1 -1
  9. package/esm2022/lib/directive/blur-content.directive.mjs +1 -1
  10. package/esm2022/lib/directive/borderlessImage.directive.mjs +1 -1
  11. package/esm2022/lib/directive/button-directive.directive.mjs +1 -1
  12. package/esm2022/lib/directive/button-editor.directive.mjs +1 -1
  13. package/esm2022/lib/directive/color.directive.mjs +1 -1
  14. package/esm2022/lib/directive/column-directive.directive.mjs +1 -1
  15. package/esm2022/lib/directive/container-alignment.directive.mjs +1 -1
  16. package/esm2022/lib/directive/container-fir.directive.mjs +1 -1
  17. package/esm2022/lib/directive/content-title-spacing.directive.mjs +1 -1
  18. package/esm2022/lib/directive/contenteditable.directive.mjs +1 -1
  19. package/esm2022/lib/directive/corner-directive.mjs +1 -1
  20. package/esm2022/lib/directive/height.directive.mjs +1 -1
  21. package/esm2022/lib/directive/hover-animation.directive.mjs +1 -1
  22. package/esm2022/lib/directive/hoverborder.directive.mjs +1 -1
  23. package/esm2022/lib/directive/icon-directive.directive.mjs +1 -1
  24. package/esm2022/lib/directive/image-container.directive.mjs +1 -1
  25. package/esm2022/lib/directive/image-directive.directive.mjs +1 -1
  26. package/esm2022/lib/directive/image-editor.directive.mjs +1 -1
  27. package/esm2022/lib/directive/image-position.directive.mjs +1 -1
  28. package/esm2022/lib/directive/letters-only.directive.mjs +1 -1
  29. package/esm2022/lib/directive/merge-header.directive.mjs +1 -1
  30. package/esm2022/lib/directive/numbers-only.directive.mjs +1 -1
  31. package/esm2022/lib/directive/position-layout-directive.directive.mjs +1 -1
  32. package/esm2022/lib/directive/set-dynamic-background.directive.mjs +1 -1
  33. package/esm2022/lib/directive/spacing-around.directive.mjs +1 -1
  34. package/esm2022/lib/directive/spacing-horizontal.directive.mjs +1 -1
  35. package/esm2022/lib/directive/spacing.directive.mjs +1 -1
  36. package/esm2022/lib/directive/text-background-directive.directive.mjs +1 -1
  37. package/esm2022/lib/directive/text-size.directive.mjs +1 -1
  38. package/esm2022/lib/directive/translate-onhover.directive.mjs +1 -1
  39. package/esm2022/lib/directive/video-directive.directive.mjs +1 -1
  40. package/esm2022/lib/directive/wrap-containers.directive.mjs +1 -1
  41. package/esm2022/lib/ecommerce/sections/address/address.component.mjs +3 -3
  42. package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +3 -3
  43. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +3 -3
  44. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
  45. package/esm2022/lib/ecommerce/sections/book-appointment/book-appointment.component.mjs +3 -3
  46. package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +3 -3
  47. package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
  48. package/esm2022/lib/ecommerce/sections/categories-with-image-background-columns/categories-with-image-background-columns.component.mjs +3 -3
  49. package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +3 -3
  50. package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
  51. package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +3 -3
  52. package/esm2022/lib/ecommerce/sections/checkout/checkout.modal.mjs +1 -1
  53. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.component.mjs +3 -3
  54. package/esm2022/lib/ecommerce/sections/customer-review/customer-review.model.mjs +1 -1
  55. package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.component.mjs +3 -3
  56. package/esm2022/lib/ecommerce/sections/enrollment-form/enrollment-form.model.mjs +1 -1
  57. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +3 -3
  58. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
  59. package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +3 -3
  60. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +3 -3
  61. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
  62. package/esm2022/lib/ecommerce/sections/item-varient/item-varient.component.mjs +3 -3
  63. package/esm2022/lib/ecommerce/sections/new-collection/new-collection.component.mjs +3 -3
  64. package/esm2022/lib/ecommerce/sections/new-collection/new-collection.modal.mjs +1 -1
  65. package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +3 -3
  66. package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +3 -3
  67. package/esm2022/lib/ecommerce/sections/passbook-transactions/passbook-transactions.component.mjs +3 -3
  68. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +3 -3
  69. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.model.mjs +1 -1
  70. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +3 -3
  71. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
  72. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +3 -3
  73. package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
  74. package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.component.mjs +3 -3
  75. package/esm2022/lib/ecommerce/sections/refer-earn/refer-earn.modal.mjs +1 -1
  76. package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.component.mjs +1 -1
  77. package/esm2022/lib/ecommerce/sections/returns-calculator/returns-calculator.model.mjs +1 -1
  78. package/esm2022/lib/ecommerce/sections/scheme-details/scheme-details.component.mjs +3 -3
  79. package/esm2022/lib/ecommerce/sections/scheme-selection/scheme-selection.component.mjs +3 -3
  80. package/esm2022/lib/ecommerce/sections/schemes/schemes.component.mjs +3 -3
  81. package/esm2022/lib/ecommerce/sections/schemes/schemes.component.model.mjs +1 -1
  82. package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +3 -3
  83. package/esm2022/lib/ecommerce/sections/store-list/store-list.component.mjs +3 -3
  84. package/esm2022/lib/ecommerce/sections/store-list/store-list.modal.mjs +1 -1
  85. package/esm2022/lib/ecommerce/sections/store-page/store-page.component.mjs +3 -3
  86. package/esm2022/lib/ecommerce/sections/store-page/store-page.model.mjs +1 -1
  87. package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +3 -3
  88. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
  89. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +3 -3
  90. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.model.mjs +1 -1
  91. package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +3 -3
  92. package/esm2022/lib/ecommerce/styles/BaseCollection.modal.mjs +1 -1
  93. package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +1 -1
  94. package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
  95. package/esm2022/lib/ecommerce/styles/PincodeLocation.model.mjs +1 -1
  96. package/esm2022/lib/ecommerce/styles/PincodeLocationInter.model.mjs +1 -1
  97. package/esm2022/lib/ecommerce/styles/cart.modal.mjs +1 -1
  98. package/esm2022/lib/ecommerce/styles/category.modal.mjs +1 -1
  99. package/esm2022/lib/ecommerce/styles/order.modal.mjs +1 -1
  100. package/esm2022/lib/ecommerce/styles/product.modal.mjs +1 -1
  101. package/esm2022/lib/ecommerce/styles/review.modal.mjs +1 -1
  102. package/esm2022/lib/ecommerce/styles/user.modal.mjs +1 -1
  103. package/esm2022/lib/elements/add-section/add-section.component.mjs +3 -3
  104. package/esm2022/lib/elements/address-list/address-list.component.mjs +3 -3
  105. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +3 -3
  106. package/esm2022/lib/elements/booking-cart-groups/booking-cart-groups.component.mjs +3 -3
  107. package/esm2022/lib/elements/button/button.component.mjs +3 -3
  108. package/esm2022/lib/elements/button/button.model.mjs +1 -1
  109. package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +3 -3
  110. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +3 -3
  111. package/esm2022/lib/elements/editor-service.service.mjs +1 -1
  112. package/esm2022/lib/elements/heading-element/heading-element.component.mjs +3 -3
  113. package/esm2022/lib/elements/index.mjs +1 -1
  114. package/esm2022/lib/elements/link-editor/link-editor.component.mjs +3 -3
  115. package/esm2022/lib/elements/list-home-appointment/list-home-appointment.component.mjs +3 -3
  116. package/esm2022/lib/elements/media-selector/media-selector.component.mjs +3 -3
  117. package/esm2022/lib/elements/my-bookings/my-bookings.component.mjs +3 -3
  118. package/esm2022/lib/elements/portfolio/portfolio.component.mjs +3 -3
  119. package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +3 -3
  120. package/esm2022/lib/elements/property/property.component.mjs +3 -3
  121. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +3 -3
  122. package/esm2022/lib/elements/svg-divider/svg-divider.component.mjs +3 -3
  123. package/esm2022/lib/elements/text/text.component.mjs +3 -3
  124. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +7 -7
  125. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +3 -3
  126. package/esm2022/lib/pipes/amount.pipe.mjs +1 -1
  127. package/esm2022/lib/pipes/gender.pipe.mjs +1 -1
  128. package/esm2022/lib/sections/BaseSection.mjs +1 -1
  129. package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +3 -3
  130. package/esm2022/lib/sections/appointment-form/appointment-booking/appointment-booking/appointment-booking.component.mjs +3 -3
  131. package/esm2022/lib/sections/appointment-form/appointment-form.model.mjs +1 -1
  132. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -3
  133. package/esm2022/lib/sections/banner-carousel/banner-carousel.model.mjs +1 -1
  134. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +3 -3
  135. package/esm2022/lib/sections/blog-list/blog-list.component.mjs +3 -3
  136. package/esm2022/lib/sections/blog-list/blog-list.model.mjs +1 -1
  137. package/esm2022/lib/sections/brand-story-section/brand-story-section.component.mjs +3 -3
  138. package/esm2022/lib/sections/brand-story-section/brand-story-section.modal.mjs +1 -1
  139. package/esm2022/lib/sections/button-grid-section/button-grid-section.component.mjs +3 -3
  140. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +3 -3
  141. package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
  142. package/esm2022/lib/sections/condensed-and-gradient/condensed-and-gradient.component.mjs +3 -3
  143. package/esm2022/lib/sections/countdown-banner/countdown-banner.component.mjs +3 -3
  144. package/esm2022/lib/sections/countdown-banner/countdown-banner.component.model.mjs +1 -1
  145. package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.component.mjs +3 -3
  146. package/esm2022/lib/sections/faq-columns-cards/faq-columns-cards.modal.mjs +1 -1
  147. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +3 -3
  148. package/esm2022/lib/sections/faq-section/faq-section.modal.mjs +1 -1
  149. package/esm2022/lib/sections/feature-experience-section/feature-experience-section.component.mjs +3 -3
  150. package/esm2022/lib/sections/feature-experience-section/feature-experience-section.modal.mjs +1 -1
  151. package/esm2022/lib/sections/features-section/features-section.component.mjs +3 -3
  152. package/esm2022/lib/sections/features-section/features-section.model.mjs +1 -1
  153. package/esm2022/lib/sections/footer/footer.component.mjs +3 -3
  154. package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
  155. package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.component.mjs +3 -3
  156. package/esm2022/lib/sections/four-features-centered-image/four-features-centered-image.modal.mjs +1 -1
  157. package/esm2022/lib/sections/header-section/header-section.component.mjs +3 -3
  158. package/esm2022/lib/sections/header-section/header-section.model.mjs +1 -1
  159. package/esm2022/lib/sections/header-text/header-text.component.mjs +3 -3
  160. package/esm2022/lib/sections/header-text/header-text.model.mjs +1 -1
  161. package/esm2022/lib/sections/image-background/image-background/image-background.component.mjs +3 -3
  162. package/esm2022/lib/sections/image-background/image-background/image-background.component.model.mjs +1 -1
  163. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +3 -3
  164. package/esm2022/lib/sections/image-carousel-section/image-carousel.model.mjs +1 -1
  165. package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.component.mjs +3 -3
  166. package/esm2022/lib/sections/image-grid-hotspot/image-grid-hotspot.model.mjs +1 -1
  167. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +3 -3
  168. package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
  169. package/esm2022/lib/sections/image-section/image-section.component.mjs +3 -3
  170. package/esm2022/lib/sections/image-section/image-section.model.mjs +1 -1
  171. package/esm2022/lib/sections/location-section/location-section.component.mjs +3 -3
  172. package/esm2022/lib/sections/location-section/location-section.modal.mjs +1 -1
  173. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +3 -3
  174. package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
  175. package/esm2022/lib/sections/moving-text/moving-text.component.mjs +3 -3
  176. package/esm2022/lib/sections/moving-text/moving-text.modal.mjs +1 -1
  177. package/esm2022/lib/sections/new-services/new-services.component.mjs +3 -3
  178. package/esm2022/lib/sections/new-services/new-services.model.mjs +1 -1
  179. package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +3 -3
  180. package/esm2022/lib/sections/new-testimonials/new-testimonials.model.mjs +1 -1
  181. package/esm2022/lib/sections/news-letter-component/news-letter-component.component.mjs +3 -3
  182. package/esm2022/lib/sections/news-letter-component/news-letter.modal.mjs +1 -1
  183. package/esm2022/lib/sections/overlapping-image/overlapping-image.component.mjs +3 -3
  184. package/esm2022/lib/sections/overlapping-image/overlapping-image.component.modal.mjs +1 -1
  185. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
  186. package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
  187. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +3 -3
  188. package/esm2022/lib/sections/process-modern/process-modern.model.mjs +1 -1
  189. package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -3
  190. package/esm2022/lib/sections/process-section/process-section.modal.mjs +1 -1
  191. package/esm2022/lib/sections/product-info-section/product-info-section.component.mjs +3 -3
  192. package/esm2022/lib/sections/product-info-section/product-info-section.component.modal.mjs +1 -1
  193. package/esm2022/lib/sections/property-component/property-component.component.mjs +3 -3
  194. package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
  195. package/esm2022/lib/sections/property-list/property-list.component.mjs +3 -3
  196. package/esm2022/lib/sections/property-list/property-list.modal.mjs +1 -1
  197. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +91 -13
  198. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
  199. package/esm2022/lib/sections/registration-form/registration-form.component.mjs +3 -3
  200. package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +1 -1
  201. package/esm2022/lib/sections/scheme-detail/scheme-detail.component.mjs +3 -3
  202. package/esm2022/lib/sections/scheme-detail/scheme-detail.modal.mjs +1 -1
  203. package/esm2022/lib/sections/service-section/service-section.component.mjs +3 -3
  204. package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
  205. package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +3 -3
  206. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +3 -3
  207. package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
  208. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +3 -3
  209. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.model.mjs +1 -1
  210. package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.component.mjs +3 -3
  211. package/esm2022/lib/sections/testimonial-masonry/testimonial-masonry.model.mjs +1 -1
  212. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +3 -3
  213. package/esm2022/lib/sections/testimonial-section/testimonial-section.model.mjs +1 -1
  214. package/esm2022/lib/sections/testimonial-slider/testimonial-slider.component.mjs +3 -3
  215. package/esm2022/lib/sections/testimonial-slider/testimonial-slider.model.mjs +1 -1
  216. package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +3 -3
  217. package/esm2022/lib/sections/testimonial-video/testimonial-video.model.mjs +1 -1
  218. package/esm2022/lib/sections/text-section/text-section.model.mjs +1 -1
  219. package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +3 -3
  220. package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +1 -1
  221. package/esm2022/lib/sections/video-carousel-section/video-carousel-section.component.mjs +3 -3
  222. package/esm2022/lib/sections/video-carousel-section/video-carousel.model.mjs +1 -1
  223. package/esm2022/lib/sections/video-grid-section/video-grid-section.component.mjs +3 -3
  224. package/esm2022/lib/sections/video-grid-section/video-grid-section.model.mjs +1 -1
  225. package/esm2022/lib/sections/video-section/video-section.component.mjs +3 -3
  226. package/esm2022/lib/sections/video-section/video-section.model.mjs +1 -1
  227. package/esm2022/lib/sections/video-showcase/video-showcase.component.mjs +3 -3
  228. package/esm2022/lib/sections/view-blog/view-blog.component.mjs +357 -1143
  229. package/esm2022/lib/services/analytics.service.mjs +1 -1
  230. package/esm2022/lib/services/booking-product-cart.service.mjs +1 -1
  231. package/esm2022/lib/services/cart.service.mjs +1 -1
  232. package/esm2022/lib/services/endUser.service.mjs +1 -1
  233. package/esm2022/lib/services/image-upload-service.service.mjs +1 -1
  234. package/esm2022/lib/services/rest.service.mjs +19 -2
  235. package/esm2022/lib/services/sanitizeHtml.mjs +1 -1
  236. package/esm2022/lib/services/storage.service.mjs +1 -1
  237. package/esm2022/lib/styles/gradient-extension.mjs +1 -1
  238. package/esm2022/lib/styles/index.mjs +1 -1
  239. package/esm2022/lib/styles/style.model.mjs +1 -1
  240. package/esm2022/lib/styles/text-size.extension.mjs +1 -1
  241. package/esm2022/lib/styles/types.mjs +1 -1
  242. package/esm2022/lib/tokens/api-token.mjs +1 -1
  243. package/esm2022/public-api.mjs +1 -1
  244. package/fesm2022/simpo-component-library.mjs +611 -1306
  245. package/fesm2022/simpo-component-library.mjs.map +1 -1
  246. package/lib/sections/recent-blog-post-section/recent-blog-post-section.component.d.ts +20 -2
  247. package/lib/sections/view-blog/view-blog.component.d.ts +7 -1
  248. package/lib/services/rest.service.d.ts +2 -0
  249. package/package.json +1 -1
  250. package/simpo-component-library-3.6.970.tgz +0 -0
  251. package/simpo-component-library-3.6.967.tgz +0 -0
@@ -1,1161 +1,339 @@
1
1
  import { CommonModule, DatePipe, isPlatformBrowser } from '@angular/common';
2
2
  import { Component, Inject, Input, PLATFORM_ID, } from '@angular/core';
3
+ import { RecentBlogPostSectionComponent } from '../recent-blog-post-section/recent-blog-post-section.component';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "./../../services/events.service";
5
- import * as i2 from "@angular/common";
6
+ import * as i2 from "./../../services/rest.service";
7
+ import * as i3 from "@angular/common";
6
8
  export class ViewBlogComponent {
7
- constructor(_eventService, _elementRef, platformId) {
9
+ constructor(_eventService, restService, _elementRef, platformId) {
8
10
  this._eventService = _eventService;
11
+ this.restService = restService;
9
12
  this._elementRef = _elementRef;
10
13
  this.responseData = {
11
- subIndustryId: null,
12
- subIndustryName: '',
13
- displayId: 'BG1778',
14
- articleSlug: 'How-to-Increase-Repeat-Customers-in-a-Jewellery-Store',
15
- updatedTimeStamp: '2026-07-22T12:10:20.000+00:00',
16
- readTime: '6',
17
- wordCount: 1256,
18
- totalVisits: 0,
19
- id: '1f185c62-898d-67c7-a377-c3e9c2e4f536',
20
- businessId: '1ef944db-0e37-6f01-943a-214dd19f54e9',
21
- time: 0,
22
- version: '',
23
- blocks: [
24
- {
25
- id: 'JyDKAbiu81',
26
- type: 'header',
27
- data: {
28
- text: 'How to Increase Repeat Customers in a Jewellery Store:  Proven Strategies to Boost Customer Loyalty & Sales',
29
- level: 2,
30
- },
31
- },
32
- {
33
- id: 'vkcNOX9tLF',
34
- type: 'image',
35
- data: {
36
- caption: '',
37
- withBorder: false,
38
- withBackground: false,
39
- stretched: false,
40
- file: {
41
- url: 'https://prod-simpo.s3.ap-south-1.amazonaws.com/images/859800c17847214109891.png',
42
- height: '500px',
43
- },
44
- },
45
- },
46
- {
47
- id: 'qd0UQID0VJ',
48
- type: 'paragraph',
49
- data: {
50
- text: '<span style="font-size:17pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Imagine This…</span>',
51
- },
52
- },
53
- {
54
- id: 'uPNGAY1cB9',
55
- type: 'paragraph',
56
- data: {
57
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">You spent </span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">₹15,000 on Meta Ads</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">, printed thousands of pamphlets for a festive offer, and even ran a local newspaper advertisement.</span>',
58
- },
59
- },
60
- {
61
- id: 'bDzXtwyHH9',
62
- type: 'paragraph',
63
- data: {
64
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Customers walked into your jewellery showroom. Sales were good during Akshaya Tritiya, Diwali, and the wedding season.</span>',
65
- },
66
- },
67
- {
68
- id: 'dummyTableDemo1',
69
- type: 'table',
70
- data: {
71
- withHeadings: true,
72
- content: [
73
- ['Loyalty Tier', 'Min. Purchase', 'Reward', 'Validity'],
74
- ['Silver', '₹25,000', '2% cashback', '12 months'],
75
- ['Gold', '₹75,000', '5% cashback', '12 months'],
76
- [
77
- 'Platinum',
78
- '₹1,50,000',
79
- '8% cashback + free maintenance',
80
- '24 months',
81
- ],
82
- ],
83
- },
84
- },
85
- {
86
- id: 'dummyTableDemo2',
87
- type: 'table',
88
- data: {
89
- withHeadings: false,
90
- content: [
91
- ['Festive Season', 'Akshaya Tritiya, Diwali, wedding season'],
92
- ['Avg. Repeat Purchase Gap', '8-10 months'],
93
- ['Preferred Contact Channel', 'WhatsApp'],
94
- ['Top Reason For Return Visit', 'Referral rewards'],
95
- ],
96
- },
97
- },
98
- {
99
- id: 'dummyTableDemo3',
100
- type: 'table',
101
- data: {
102
- withHeadings: true,
103
- content: [
104
- [
105
- 'Month',
106
- 'New Customers',
107
- 'Repeat Customers',
108
- 'WhatsApp Reminders Sent',
109
- 'Redemptions',
110
- 'Revenue from Repeats',
111
- ],
112
- ['April', '120', '45', '300', '60', '₹4,20,000'],
113
- ['May', '98', '62', '340', '78', '₹5,10,000'],
114
- ['June', '145', '80', '410', '95', '₹6,35,000'],
115
- ],
116
- },
117
- },
118
- {
119
- id: 'fadoWe1GBc',
120
- type: 'paragraph',
121
- data: {
122
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">But after six months, something unexpected happened.</span>',
123
- },
124
- },
125
- {
126
- id: 'L367jCincd',
127
- type: 'paragraph',
128
- data: {
129
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The same customers who once praised your service bought their next jewellery purchase from another store.</span>',
130
- },
131
- },
132
- {
133
- id: 'dkLsmSu2lY',
134
- type: 'paragraph',
135
- data: {
136
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Not because your jewellery was expensive.</span>',
137
- },
138
- },
139
- {
140
- id: 'DAdq8GtPbR',
141
- type: 'paragraph',
142
- data: {
143
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Not because your designs were outdated.</span>',
144
- },
145
- },
146
- {
147
- id: '9pqofrbOW0',
148
- type: 'paragraph',
149
- data: {
150
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">But because </span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">they simply forgot about your business.</span>',
151
- },
152
- },
153
- {
154
- id: 'IE9A-uBWBg',
155
- type: 'paragraph',
156
- data: {
157
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">This is one of the biggest challenges jewellery retailers face today.</span>',
158
- },
159
- },
160
- {
161
- id: 'MF3K4P54FE',
162
- type: 'paragraph',
163
- data: {
164
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Most jewellery owners spend thousands of rupees attracting new customers while unintentionally neglecting the customers who have already trusted them.</span>',
165
- },
166
- },
167
- {
168
- id: 's_Na0psxmH',
169
- type: 'paragraph',
170
- data: {
171
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The result?</span>',
172
- },
173
- },
174
- {
175
- id: 'FeKyQmpgXr',
176
- type: 'list',
177
- data: {
178
- style: 'unordered',
179
- items: [
180
- 'Customers purchase once and never return.',
181
- 'Gold scheme members stop paying monthly instalments.',
182
- 'Staff spend hours making reminder calls.',
183
- 'Customer records remain in paper files or Excel sheets.',
184
- 'Festival campaigns reach only a fraction of past buyers.',
185
- 'Competitors reconnect with your customers before you do.',
186
- ],
187
- },
188
- },
189
- {
190
- id: 'zVORjT8DOu',
191
- type: 'paragraph',
192
- data: {
193
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">If this sounds familiar, you\'re not alone.</span>',
194
- },
195
- },
196
- {
197
- id: 'oHBeq3cDjH',
198
- type: 'paragraph',
199
- data: {
200
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The good news is that increasing repeat customers doesn\'t always require a bigger marketing budget.</span>',
201
- },
202
- },
203
- {
204
- id: 'xbhYCptZpM',
205
- type: 'paragraph',
206
- data: {
207
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Often, it requires a better customer retention strategy.</span>',
208
- },
209
- },
210
- {
211
- id: '8jTf7G2zLd',
212
- type: 'paragraph',
213
- data: {
214
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">In this guide, we\'ll explore practical strategies that leading jewellery retailers use to increase customer loyalty, improve gold scheme collections, and build a business where customers keep coming back year after year.</span>',
215
- },
216
- },
217
- {
218
- id: 'uNUXVV2HAF',
219
- type: 'header',
220
- data: {
221
- text: 'Why Repeat Customers Matter More Than New Customers',
222
- level: 1,
223
- },
224
- },
225
- {
226
- id: 'AraiFCgo1I',
227
- type: 'paragraph',
228
- data: {
229
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Every jewellery retailer dreams of attracting new customers.</span>',
230
- },
231
- },
232
- {
233
- id: '11DHzXNNRT',
234
- type: 'paragraph',
235
- data: {
236
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">But the most profitable stores know a simple truth:</span>',
237
- },
238
- },
239
- {
240
- id: 'W0A0GxNHS7',
241
- type: 'paragraph',
242
- data: {
243
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The easiest customer to sell to is someone who has already bought from you.</span>',
244
- },
245
- },
246
- {
247
- id: 'KajmNOsrms',
248
- type: 'paragraph',
249
- data: {
250
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Think about a typical jewellery customer.</span>',
251
- },
252
- },
253
- {
254
- id: 'XIPJk8oGd5',
255
- type: 'paragraph',
256
- data: {
257
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">A person buying an engagement ring today might later purchase:</span>',
258
- },
259
- },
260
- {
261
- id: '6udc4_lhcx',
262
- type: 'list',
263
- data: {
264
- style: 'unordered',
265
- items: [
266
- 'Wedding jewellery',
267
- 'Anniversary gifts',
268
- 'Baby shower jewellery',
269
- 'Festival collections',
270
- 'Gold coins',
271
- 'Monthly gold savings schemes',
272
- ],
273
- },
274
- },
275
- {
276
- id: '5KjzrI2UnH',
277
- type: 'paragraph',
278
- data: {
279
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Over a lifetime, one customer can generate multiple purchases.</span>',
280
- },
281
- },
282
- {
283
- id: '3XzZwU5W7z',
284
- type: 'paragraph',
285
- data: {
286
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The challenge is staying connected between those occasions.</span>',
287
- },
288
- },
289
- {
290
- id: 'AdmnsV9cTl',
291
- type: 'paragraph',
292
- data: {
293
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Unfortunately, many jewellery stores lose touch after the first sale.</span>',
294
- },
295
- },
296
- {
297
- id: 'PEDGnjTgfV',
298
- type: 'paragraph',
299
- data: {
300
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No follow-up.</span>',
301
- },
302
- },
303
- {
304
- id: 'E1n0EGLScQ',
305
- type: 'paragraph',
306
- data: {
307
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No reminders.</span>',
308
- },
309
- },
310
- {
311
- id: '9mqQlu_m94',
312
- type: 'paragraph',
313
- data: {
314
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No personalized communication.</span>',
315
- },
316
- },
317
- {
318
- id: 'faQUMozk8E',
319
- type: 'paragraph',
320
- data: {
321
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No loyalty program.</span>',
322
- },
323
- },
324
- {
325
- id: '95FLH2Z5fH',
326
- type: 'paragraph',
327
- data: {
328
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Eventually, the customer walks into another jewellery store—not because they\'re unhappy, but because the competitor stayed visible.</span>',
329
- },
14
+ "subIndustryId": null,
15
+ "subIndustryName": "",
16
+ "displayId": "BG1784",
17
+ "articleSlug": "Case-Study-How-a-Jewellery-Retailer-Increased--Customer-Engagement-Using-PassbookApp",
18
+ "updatedTimeStamp": "2026-08-04T11:59:24.000+00:00",
19
+ "readTime": "3",
20
+ "wordCount": 634,
21
+ "totalVisits": 0,
22
+ "id": "1f18ffbd-3f98-65c3-a377-9d29a781b978",
23
+ "businessId": "1f19567a-ce26-6790-8a14-c786fc084a82",
24
+ "time": 0,
25
+ "version": "",
26
+ "blocks": [
27
+ {
28
+ "id": "u2zR4Q7AUy",
29
+ "type": "header",
30
+ "data": {
31
+ "text": "Case Study: How a Jewellery Retailer Increased Customer Engagement by 40% Using PassbookApp",
32
+ "level": 1
33
+ }
34
+ },
35
+ {
36
+ "id": "0UJ1WqdVfn",
37
+ "type": "image",
38
+ "data": {
39
+ "caption": "",
40
+ "withBorder": false,
41
+ "withBackground": false,
42
+ "stretched": false,
43
+ "file": {
44
+ "url": "https://prod-simpo.s3.ap-south-1.amazonaws.com/images/169752c1785844350473ChatGPT%20Image%20Aug%204%2C%202026%2C%2005_22_18%20PM.png",
45
+ "height": "500px"
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "id": "YHOzmi5Xg7",
51
+ "type": "paragraph",
52
+ "data": {
53
+ "text": "<span class=\"\">In today’s fast-paced retail market,</span><span class=\"\"> building long-term customer loyalty and maintaining active engagement is a major hurdle for traditional jewelers.</span><span class=\"\"> While gold and silver saving schemes (like 10+1 monthly deposit plans) have long been the backbone of customer acquisition,</span><span class=\"\"> managing them through traditional paper passbooks often leads to low engagement,</span><span class=\"\"> missed payments,</span><span class=\"\"> lost physical books,</span><span class=\"\"> and ultimate drop-offs.</span>"
54
+ }
55
+ },
56
+ {
57
+ "id": "mouEbrfx7y",
58
+ "type": "paragraph",
59
+ "data": {
60
+ "text": "<span class=\"\">For multi-location retailers,</span><span class=\"\"> these challenges are amplified.</span><span class=\"\"> Physical registers and manual follow-ups at each store make creating a unified view of the customer let alone the business virtually impossible.</span>"
61
+ }
62
+ },
63
+ {
64
+ "id": "M7Yn86IgjR",
65
+ "type": "paragraph",
66
+ "data": {
67
+ "text": "<span class=\"\">This </span><b>jewellery customer engagement case study</b><span class=\"\"> demonstrates how a prominent retail jeweler leveraged </span><b>PassbookApp&nbsp;</b><span class=\"\">a modern </span><b>digital passbook for jewellery stores</b><span class=\"\">&nbsp;to overhaul their operations,</span><span class=\"\"> automate customer communication via WhatsApp,</span><span class=\"\"> and drive significant business growth.</span>"
68
+ }
69
+ },
70
+ {
71
+ "id": "-w5Wsn54mZ",
72
+ "type": "header",
73
+ "data": {
74
+ "text": "Featured Success Story: How PassbookApp Took Lagu Bandhu Jewellers from Registers to Real-Time",
75
+ "level": 2
76
+ }
77
+ },
78
+ {
79
+ "id": "udUETPz9sN",
80
+ "type": "image",
81
+ "data": {
82
+ "caption": "",
83
+ "withBorder": false,
84
+ "withBackground": false,
85
+ "stretched": false,
86
+ "file": {
87
+ "url": "https://prod-simpo.s3.ap-south-1.amazonaws.com/images/767044c1785843848220Slide%2016_9%20-%201%20%284%29.png",
88
+ "height": "500px"
89
+ }
90
+ }
91
+ },
92
+ {
93
+ "id": "PJVUAhqL56",
94
+ "type": "paragraph",
95
+ "data": {
96
+ "text": "<span class=\"\">Lagu Bandhu Jewellers,</span><span class=\"\"> a legacy brand since 1936 with multiple store locations,</span><span class=\"\"> faced a critical operational bottleneck.</span><span class=\"\"> Managing jewellery saving schemes across numerous branches using physical registers meant payments were difficult to track centrally,</span><span class=\"\"> follow-ups were done manually,</span><span class=\"\"> and a single,</span><span class=\"\"> unified view of the business was missing.</span>"
97
+ }
98
+ },
99
+ {
100
+ "id": "hzzFdvSk6f",
101
+ "type": "paragraph",
102
+ "data": {
103
+ "text": "<span class=\"\">They implemented PassbookApp as their dedicated </span><b>jewellery customer retention software</b><span class=\"\"> to replace their entire paper-based system with one digital workflow without disrupting existing operations.</span>"
104
+ }
105
+ },
106
+ {
107
+ "id": "4fpCmq4a0K",
108
+ "type": "paragraph",
109
+ "data": {
110
+ "text": "<span class=\"\">This </span><b>jewellery customer engagement case study</b><span class=\"\"> highlights the specific outcomes achieved by Lagu Bandhu with the platform:</span>"
111
+ }
112
+ },
113
+ {
114
+ "id": "wB3_a5xRQ-",
115
+ "type": "list",
116
+ "data": {
117
+ "style": "unordered",
118
+ "items": [
119
+ "<b>Customer Convenience via Digital Payments:</b> A key feature was enabling customers to pay for their monthly schemes digitally, completely eliminating the need for a store visit.",
120
+ "<b>Centralized Multi-Location View:</b> Management now has a real-time, centralized scheme view across all store locations, a crucial element of their <b>digital transformation in jewellery retail</b>.",
121
+ "<b>Streamlined Operations:</b> Manual tracking and excessive paperwork have been nearly eliminated, optimizing staff time for sales."
122
+ ]
123
+ }
124
+ },
125
+ {
126
+ "id": "iOWhHxrUGx",
127
+ "type": "paragraph",
128
+ "data": {
129
+ "text": "<span class=\"\">Reflecting on the implementation,</span><span class=\"\"> Mr.</span><span class=\"\"> Parag Lagu,</span><span class=\"\"> Director of Lagu Bandhu,</span><span class=\"\"> noted:</span>"
130
+ }
131
+ },
132
+ {
133
+ "id": "06mLUFexdK",
134
+ "type": "paragraph",
135
+ "data": {
136
+ "text": "<i>“After more than two years with PassbookAPP, I can confidently say it’s been an outstanding experience. Their support team is responsive, knowledgeable, and truly committed to our growth. Any jeweler looking to streamline their operations would be wise to consider PassbookAPP.”</i>"
137
+ }
138
+ },
139
+ {
140
+ "id": "1hVxvYU-oE",
141
+ "type": "header",
142
+ "data": {
143
+ "text": "The Challenge: Friction in Traditional Jewellery Savings Schemes",
144
+ "level": 2
145
+ }
330
146
  },
331
147
  {
332
- id: 'qHDfLo4bPA',
333
- type: 'header',
334
- data: {
335
- text: 'The Biggest Customer Retention Problems Jewellery Stores Face',
336
- level: 1,
337
- },
338
- },
339
- {
340
- id: '5VDm7sUJte',
341
- type: 'paragraph',
342
- data: {
343
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">After speaking with jewellery retailers across India, the same challenges appear repeatedly.</span>',
344
- },
345
- },
346
- {
347
- id: 'ee1avurVhp',
348
- type: 'header',
349
- data: {
350
- text: '1. Customers Forget About the Store',
351
- level: 3,
352
- },
353
- },
354
- {
355
- id: 'MXpJGVcIu1',
356
- type: 'paragraph',
357
- data: {
358
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Most customers buy jewellery only a few times a year.</span>',
359
- },
360
- },
361
- {
362
- id: 'Wd6TbM8kiP',
363
- type: 'paragraph',
364
- data: {
365
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Without regular communication, they forget where they purchased last.</span>',
366
- },
367
- },
368
- {
369
- id: 'gVktfSScPB',
370
- type: 'header',
371
- data: {
372
- text: '2. Gold Scheme Customers Miss Installments',
373
- level: 3,
374
- },
375
- },
376
- {
377
- id: 'pfErs56YIa',
378
- type: 'paragraph',
379
- data: {
380
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Monthly gold savings schemes are excellent for customer retention.</span>',
381
- },
382
- },
383
- {
384
- id: 'sATc0rb9-x',
385
- type: 'paragraph',
386
- data: {
387
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">However, many customers miss instalments simply because they forget the due date.</span>',
388
- },
389
- },
390
- {
391
- id: 'RWNT1tQ_OV',
392
- type: 'paragraph',
393
- data: {
394
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Staff then spend hours making reminder calls.</span>',
395
- },
396
- },
397
- {
398
- id: '-s9MZhQNmg',
399
- type: 'header',
400
- data: {
401
- text: '3. Everything Is Managed Manually',
402
- level: 3,
403
- },
404
- },
405
- {
406
- id: '-DWy8vU25_',
407
- type: 'paragraph',
408
- data: {
409
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Many retailers still depend on:</span>',
410
- },
411
- },
412
- {
413
- id: 'PQTOI6py5T',
414
- type: 'list',
415
- data: {
416
- style: 'unordered',
417
- items: [
418
- 'Paper passbooks',
419
- 'Excel sheets',
420
- 'Registers',
421
- 'Manual calculations',
422
- ],
423
- },
424
- },
425
- {
426
- id: 'B7hdll3Cvd',
427
- type: 'paragraph',
428
- data: {
429
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">This increases errors and consumes valuable staff time.</span>',
430
- },
431
- },
432
- {
433
- id: '7SINkRpmJZ',
434
- type: 'header',
435
- data: {
436
- text: '4. No Customer Database',
437
- level: 3,
438
- },
439
- },
148
+ "id": "dmfEJgoxCZ",
149
+ "type": "paragraph",
150
+ "data": {
151
+ "text": "<span class=\"\">Lagu Bandhu's experience perfectly mirrors the larger operational challenge faced by the industry.</span><span class=\"\"> Before partnering with PassbookApp,</span><span class=\"\"> traditional methods created a poor </span><b>jewellery customer experience</b><span class=\"\">:</span>"
152
+ }
153
+ },
154
+ {
155
+ "id": "apgUbKPOOw",
156
+ "type": "list",
157
+ "data": {
158
+ "style": "unordered",
159
+ "items": [
160
+ "<b>High Drop-off Rates:</b> Customers frequently forgot monthly installments, leading to lapsed accounts.",
161
+ "<b>Lack of Visibility:</b> Customers couldn’t track their accumulated balance or gold weight in real-time, decreasing their emotional investment in the scheme.",
162
+ "<b>Manual Administrative Burden:</b> Staff spent countless hours answering balance inquiries, issuing receipts, and making manual reminder calls.",
163
+ "<b>Weak Post-Maturity Engagement:</b> Once a savings scheme matured, redeeming the final product felt transactional rather than rewarding, leading to low repeat engagement."
164
+ ]
165
+ }
166
+ },
167
+ {
168
+ "id": "1Oxq6T0Thd",
169
+ "type": "header",
170
+ "data": {
171
+ "text": "The Solution: Digital Transformation with PassbookApp",
172
+ "level": 2
173
+ }
174
+ },
175
+ {
176
+ "id": "cCprUc9P78",
177
+ "type": "paragraph",
178
+ "data": {
179
+ "text": "<span class=\"\">The implementation at Lagu Bandhu leveraged PassbookApp’s complete </span><b>jewellery CRM software</b><span class=\"\"> and </span><b>jewellery loyalty software</b><span class=\"\"> capabilities to modernize operations.</span><span class=\"\"> By integrating these specific technologies,</span><span class=\"\"> the retailer was able to achieve significant gains:</span>"
180
+ }
181
+ },
182
+ {
183
+ "id": "bnq2c4XM2h",
184
+ "type": "header",
185
+ "data": {
186
+ "text": "1. Digital Passbook Implementation",
187
+ "level": 3
188
+ }
189
+ },
440
190
  {
441
- id: '_d4DGhIKDp',
442
- type: 'paragraph',
443
- data: {
444
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Many stores have thousands of invoices but no structured customer database.</span>',
445
- },
446
- },
191
+ "id": "vJsIW753e2",
192
+ "type": "paragraph",
193
+ "data": {
194
+ "text": "<span class=\"\">Replacing physical booklets with a centralized </span><b>digital passbook for jewellery stores</b><span class=\"\"> allowed customers to view their total balance,</span><span class=\"\"> real-time gold weight,</span><span class=\"\"> paid vs.</span><span class=\"\"> remaining installments,</span><span class=\"\"> and maturity dates on-demand.</span>"
195
+ }
196
+ },
447
197
  {
448
- id: 'wI62cQ2pbB',
449
- type: 'paragraph',
450
- data: {
451
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Without customer information, personalized marketing becomes impossible.</span>',
452
- },
198
+ "id": "dg-PH8o6Gx",
199
+ "type": "header",
200
+ "data": {
201
+ "text": "2. WhatsApp Automation and Reminders",
202
+ "level": 3
203
+ }
453
204
  },
454
205
  {
455
- id: 'vbQEMA4Ofn',
456
- type: 'header',
457
- data: {
458
- text: '5. No Follow-Up Process',
459
- level: 3,
460
- },
206
+ "id": "Zonf8HUZxr",
207
+ "type": "paragraph",
208
+ "data": {
209
+ "text": "<span class=\"\">Deploying </span><b>jewellery WhatsApp reminder software</b><span class=\"\"> ensured customers received automated receipts for digital payments,</span><span class=\"\"> timely installment reminders,</span><span class=\"\"> and maturity notifications,</span><span class=\"\"> leading to an 85% improvement in scheme renewals.</span>"
210
+ }
211
+ },
212
+ {
213
+ "id": "9Z5r-NkdI6",
214
+ "type": "header",
215
+ "data": {
216
+ "text": "3. Integrated Jewellery CRM &amp; Management",
217
+ "level": 3
218
+ }
219
+ },
220
+ {
221
+ "id": "h2QV9Sy6FZ",
222
+ "type": "paragraph",
223
+ "data": {
224
+ "text": "<span class=\"\">PassbookApp’s integrated </span><b>jewellery management software</b><span class=\"\"> provided a single dashboard for customer purchase history and scheme progress.</span><span class=\"\"> This data gave store staff personalized insights to use during showroom visits.</span>"
225
+ }
226
+ },
227
+ {
228
+ "id": "iX-2u9Qu09",
229
+ "type": "header",
230
+ "data": {
231
+ "text": "Results: The Impact on Customer Engagement and Business Growth",
232
+ "level": 2
233
+ }
234
+ },
235
+ {
236
+ "id": "U7zcr-cBpQ",
237
+ "type": "paragraph",
238
+ "data": {
239
+ "text": "<span class=\"\">Within just six months,</span><span class=\"\"> the implementations driven by PassbookApp delivered transformative business results:</span>"
240
+ }
241
+ },
242
+ {
243
+ "id": "qEj24FZAyc",
244
+ "type": "list",
245
+ "data": {
246
+ "style": "unordered",
247
+ "items": [
248
+ "<b>40% Increase in Customer Engagement:</b> The digital passbook app became a critical, daily touchpoint for customers.",
249
+ "<b>85% Improvement in Scheme Renewals:</b> Automated reminders effectively eliminated missed installments.",
250
+ "<b>35% Boost in Repeat Purchases:</b> Personalized CRM insights allowed targeted offers upon maturity.",
251
+ "<b>70% Reduction in Operational Workload:</b> Eliminating manual tracking freed staff for high-value sales, mirroring Lagu Bandhu's administrative savings."
252
+ ]
253
+ }
254
+ },
255
+ {
256
+ "id": "k6rHNx3D1j",
257
+ "type": "header",
258
+ "data": {
259
+ "text": "Key Takeaways for Jewellery Merchants",
260
+ "level": 2
261
+ }
262
+ },
263
+ {
264
+ "id": "MAHQfdvg_s",
265
+ "type": "paragraph",
266
+ "data": {
267
+ "text": "<span class=\"\">The successful </span><b>jewellery software success story</b><span class=\"\"> of retailers like Lagu Bandhu proves that modernization is key to sustainable </span><b>jewellery business growth</b><span class=\"\">:</span>"
268
+ }
269
+ },
270
+ {
271
+ "id": "35a85Rq4C3",
272
+ "type": "list",
273
+ "data": {
274
+ "style": "ordered",
275
+ "items": [
276
+ "<b>Leverage the Right Tech for Your Scale:</b> As a <b>jewellery CRM case study</b> for multi-location businesses shows, centralized visibility is essential for operational control and personalized service.",
277
+ "<b>Meet Customers Where They Are:</b> Modern buyers demand mobile access. A <b>digital passbook for jewellery stores</b> with digital payment options is a baseline expectation.",
278
+ "<b>Automate for Efficiency:</b> Integrating <b>jewellery WhatsApp reminder software</b> creates high-impact communication with minimal manual effort."
279
+ ]
280
+ }
461
281
  },
462
- {
463
- id: 'M60hLTKwgd',
464
- type: 'paragraph',
465
- data: {
466
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">After the purchase, communication stops.</span>',
467
- },
282
+ {
283
+ "id": "KZR0pjPYzg",
284
+ "type": "header",
285
+ "data": {
286
+ "text": "Ready to Elevate Your Jewellery Store's Engagement?",
287
+ "level": 2
288
+ }
468
289
  },
469
- {
470
- id: '--inklHM2v',
471
- type: 'paragraph',
472
- data: {
473
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No birthday wishes.</span>',
474
- },
475
- },
476
- {
477
- id: 'ELwVErRFlz',
478
- type: 'paragraph',
479
- data: {
480
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No anniversary messages.</span>',
481
- },
482
- },
483
- {
484
- id: 'JBQAOZ2gqS',
485
- type: 'paragraph',
486
- data: {
487
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No festive greetings.</span>',
488
- },
489
- },
490
- {
491
- id: '75hJyzS12C',
492
- type: 'paragraph',
493
- data: {
494
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">No product recommendations.</span>',
495
- },
290
+ {
291
+ "id": "N-nQFBRoT_",
292
+ "type": "paragraph",
293
+ "data": {
294
+ "text": "<span class=\"\">If you are looking to scale your jewellery business,</span><span class=\"\"> eliminate manual administrative hassle like physical registers,</span><span class=\"\"> and increase customer loyalty,</span><span class=\"\"> it's time to upgrade your tech stack.</span>"
295
+ }
296
+ },
297
+ {
298
+ "id": "J5qrXdE3lv",
299
+ "type": "paragraph",
300
+ "data": {
301
+ "text": "<span class=\"\">See how PassbookApp helps jewellery businesses automate savings schemes,</span><span class=\"\"> improve renewals,</span><span class=\"\"> increase repeat purchases,</span><span class=\"\"> and build long-term customer loyalty.</span>"
302
+ }
496
303
  },
497
304
  {
498
- id: 'th4EM_Ev9x',
499
- type: 'paragraph',
500
- data: {
501
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The relationship quietly fades away.</span>',
502
- },
503
- },
504
- {
505
- id: '6LcE7ECdcg',
506
- type: 'header',
507
- data: {
508
- text: '15 Proven Strategies to Increase Repeat Customers',
509
- level: 1,
510
- },
511
- },
512
- {
513
- id: 'Nx632lI-wF',
514
- type: 'header',
515
- data: {
516
- text: '1. Launch a Gold Savings Scheme That Keeps Customers Engaged',
517
- level: 2,
518
- },
519
- },
520
- {
521
- id: 'J_ADpweVfi',
522
- type: 'paragraph',
523
- data: {
524
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">One of the smartest ways to increase repeat business is through a well-managed </span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Gold Saving Scheme</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">.</span>',
525
- },
526
- },
527
- {
528
- id: 'S5uj000jqa',
529
- type: 'paragraph',
530
- data: {
531
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Instead of waiting for customers to return once a year, a gold scheme encourages monthly interaction with your brand.</span>',
532
- },
533
- },
534
- {
535
- id: 'xBrGqoTLrv',
536
- type: 'paragraph',
537
- data: {
538
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Every monthly payment becomes another touchpoint.</span>',
539
- },
540
- },
541
- {
542
- id: 'abNB9cO1Zj',
543
- type: 'paragraph',
544
- data: {
545
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Customers stay connected.</span>',
546
- },
547
- },
548
- {
549
- id: 'GLXBsIgN4m',
550
- type: 'paragraph',
551
- data: {
552
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Trust grows.</span>',
553
- },
554
- },
555
- {
556
- id: 'e3goTGwKrT',
557
- type: 'paragraph',
558
- data: {
559
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Future purchases become more likely.</span>',
560
- },
561
- },
562
- {
563
- id: 'yOqzBaTH7B',
564
- type: 'paragraph',
565
- data: {
566
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">However, running a gold scheme manually often creates challenges such as missed instalments, paperwork, and customer confusion.</span>',
567
- },
568
- },
569
- {
570
- id: '1md_1VRYTX',
571
- type: 'paragraph',
572
- data: {
573
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">This is why many retailers are moving to digital gold scheme management.</span>',
574
- },
575
- },
576
- {
577
- id: 'JYY8zbXkxh',
578
- type: 'header',
579
- data: {
580
- text: '2. Stop Calling Customers Manually',
581
- level: 2,
582
- },
583
- },
584
- {
585
- id: 'V-dw1da3Vl',
586
- type: 'paragraph',
587
- data: {
588
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Imagine managing 1,200 active gold scheme members.</span>',
589
- },
590
- },
591
- {
592
- id: 'hUF1vDzoQX',
593
- type: 'paragraph',
594
- data: {
595
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Calling every customer every month is almost impossible.</span>',
596
- },
597
- },
598
- {
599
- id: 'icwpJONCvF',
600
- type: 'paragraph',
601
- data: {
602
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Instead, automate:</span>',
603
- },
604
- },
605
- {
606
- id: 'T_-ge3rEmM',
607
- type: 'list',
608
- data: {
609
- style: 'unordered',
610
- items: [
611
- 'Payment reminders',
612
- 'Due date alerts',
613
- 'Festival greetings',
614
- 'Gold rate updates',
615
- 'New collection announcements',
616
- ],
617
- },
618
- },
619
- {
620
- id: 'GiVE5WcouE',
621
- type: 'paragraph',
622
- data: {
623
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Automated WhatsApp reminders ensure customers stay informed while allowing your staff to focus on sales rather than repetitive follow-up calls.</span>',
624
- },
625
- },
626
- {
627
- id: '19I6Ja1L5B',
628
- type: 'header',
629
- data: {
630
- text: '3. Replace Paper Passbooks with Digital Passbooks',
631
- level: 2,
632
- },
633
- },
634
- {
635
- id: '1MvUvFnBBY',
636
- type: 'paragraph',
637
- data: {
638
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">One of the most common complaints jewellery retailers hear is:</span>',
639
- },
640
- },
641
- {
642
- id: 'LjZ9E-2MT6',
643
- type: 'paragraph',
644
- data: {
645
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">"I\'ve lost my passbook."</span>',
646
- },
647
- },
648
- {
649
- id: 'wkbiyMWRVq',
650
- type: 'paragraph',
651
- data: {
652
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Now your staff spends valuable time searching through records.</span>',
653
- },
654
- },
655
- {
656
- id: '0oFKoXyH18',
657
- type: 'paragraph',
658
- data: {
659
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">A digital passbook eliminates this problem.</span>',
660
- },
661
- },
662
- {
663
- id: 'Ka3ilpF4J0',
664
- type: 'paragraph',
665
- data: {
666
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Customers can instantly view:</span>',
667
- },
668
- },
669
- {
670
- id: 'Q5qeRog7bp',
671
- type: 'list',
672
- data: {
673
- style: 'unordered',
674
- items: [
675
- 'Instalment history',
676
- 'Payment status',
677
- 'Remaining balance',
678
- 'Scheme progress',
679
- ],
680
- },
681
- },
682
- {
683
- id: 'L7nZOmQnSg',
684
- type: 'paragraph',
685
- data: {
686
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">It also builds transparency and confidence.</span>',
687
- },
688
- },
689
- {
690
- id: 'y0pj6TvTtZ',
691
- type: 'header',
692
- data: {
693
- text: '4. Build a Customer Database, Not Just a Billing Database',
694
- level: 2,
695
- },
696
- },
697
- {
698
- id: 'jj1Nls6VFv',
699
- type: 'paragraph',
700
- data: {
701
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Many retailers have years of invoices but very little usable customer information.</span>',
702
- },
703
- },
704
- {
705
- id: 'ze4wFv2xpu',
706
- type: 'paragraph',
707
- data: {
708
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">A complete customer profile should include:</span>',
709
- },
710
- },
711
- {
712
- id: '_HQ-XU8xyU',
713
- type: 'list',
714
- data: {
715
- style: 'unordered',
716
- items: [
717
- 'Birthday',
718
- 'Anniversary',
719
- 'Purchase history',
720
- 'Preferred jewellery category',
721
- 'Gold scheme status',
722
- 'Visit history',
723
- ],
724
- },
725
- },
726
- {
727
- id: '526IaO8rZg',
728
- type: 'paragraph',
729
- data: {
730
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">This enables personalized communication that feels relevant instead of generic.</span>',
731
- },
732
- },
733
- {
734
- id: 'HTc9WUGYbQ',
735
- type: 'header',
736
- data: {
737
- text: '5. Make WhatsApp Your Strongest Marketing Channel',
738
- level: 2,
739
- },
740
- },
741
- {
742
- id: 'd6s5rP32z8',
743
- type: 'paragraph',
744
- data: {
745
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Your customers already use WhatsApp every day.</span>',
746
- },
747
- },
748
- {
749
- id: 'aZzSRfbV2I',
750
- type: 'paragraph',
751
- data: {
752
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Instead of relying only on social media, communicate through the platform they check most often.</span>',
753
- },
754
- },
755
- {
756
- id: 'KeFelhxn4l',
757
- type: 'paragraph',
758
- data: {
759
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Examples include:</span>',
760
- },
761
- },
762
- {
763
- id: 'nnLkPLK_Gm',
764
- type: 'list',
765
- data: {
766
- style: 'unordered',
767
- items: [
768
- 'Monthly gold scheme reminders',
769
- 'Festival wishes',
770
- 'New arrivals',
771
- 'Bridal collections',
772
- 'Gold rate updates',
773
- 'Exclusive offers',
774
- ],
775
- },
776
- },
777
- {
778
- id: 'fogDf4PfgP',
779
- type: 'paragraph',
780
- data: {
781
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Consistent communication keeps your store top of mind.</span>',
782
- },
783
- },
784
- {
785
- id: 'Tf04Utqhp4',
786
- type: 'header',
787
- data: {
788
- text: '6. Reward Loyalty, Not Just New Customers',
789
- level: 2,
790
- },
791
- },
792
- {
793
- id: '8x3-lLpWuS',
794
- type: 'paragraph',
795
- data: {
796
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Many jewellery businesses offer discounts only to attract new buyers.</span>',
797
- },
798
- },
799
- {
800
- id: 'GW-gifTTF8',
801
- type: 'paragraph',
802
- data: {
803
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Instead, reward customers who continue choosing your brand.</span>',
804
- },
805
- },
806
- {
807
- id: '8Jk9fRWsJ3',
808
- type: 'paragraph',
809
- data: {
810
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Ideas include:</span>',
811
- },
812
- },
813
- {
814
- id: 'OZIeXOHvnM',
815
- type: 'list',
816
- data: {
817
- style: 'unordered',
818
- items: [
819
- 'Bonus gold after completing a scheme',
820
- 'Loyalty rewards',
821
- 'Referral incentives',
822
- 'Exclusive previews',
823
- 'Complimentary jewellery cleaning',
824
- ],
825
- },
826
- },
827
- {
828
- id: 'wWYtCpA3Wr',
829
- type: 'paragraph',
830
- data: {
831
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">These small gestures encourage long-term relationships.</span>',
832
- },
833
- },
834
- {
835
- id: 'ZfPjEsrvKM',
836
- type: 'header',
837
- data: {
838
- text: "7. Recover Customers Before They're Lost",
839
- level: 2,
840
- },
841
- },
842
- {
843
- id: 'CaSeL7KD8q',
844
- type: 'paragraph',
845
- data: {
846
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Not every inactive customer is gone forever.</span>',
847
- },
848
- },
849
- {
850
- id: '5mzmqjmKwM',
851
- type: 'paragraph',
852
- data: {
853
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Identify customers who haven\'t visited in the last 6–12 months and reconnect them with:</span>',
854
- },
855
- },
856
- {
857
- id: 'VeT4U-9auh',
858
- type: 'list',
859
- data: {
860
- style: 'unordered',
861
- items: [
862
- 'Personalized WhatsApp messages',
863
- 'Festival invitations',
864
- 'Gold scheme offers',
865
- 'New collection previews',
866
- ],
867
- },
868
- },
869
- {
870
- id: 'ru3MnsQ27U',
871
- type: 'paragraph',
872
- data: {
873
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Winning back an existing customer is usually easier than finding a new one.</span>',
874
- },
875
- },
876
- {
877
- id: '7gpH_wPDHs',
878
- type: 'header',
879
- data: {
880
- text: '8. Use Technology to Stay Organized',
881
- level: 2,
882
- },
883
- },
884
- {
885
- id: 'qVQurPoeJ8',
886
- type: 'paragraph',
887
- data: {
888
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">As your customer base grows, spreadsheets and paper registers become difficult to manage.</span>',
889
- },
890
- },
891
- {
892
- id: 'vbtKHxUnzC',
893
- type: 'paragraph',
894
- data: {
895
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">A digital platform such as </span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">PassbookApp</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> helps jewellery retailers:</span>',
896
- },
897
- },
898
- {
899
- id: 'N5QzSekQgD',
900
- type: 'list',
901
- data: {
902
- style: 'unordered',
903
- items: [
904
- 'Manage gold savings schemes',
905
- 'Track customer payments',
906
- 'Send automated WhatsApp reminders',
907
- 'Maintain digital passbooks',
908
- 'Build customer profiles',
909
- 'Monitor collections from one dashboard',
910
- ],
911
- },
912
- },
913
- {
914
- id: 'XWG64zeXFo',
915
- type: 'paragraph',
916
- data: {
917
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Instead of replacing your personal customer relationships, technology strengthens them by ensuring no customer is forgotten.</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">—--------------------------------------------------------------------------------------------------------------------</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Other strategies </span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Launch a Gold Savings Scheme</span>',
918
- },
919
- },
920
- {
921
- id: 'kp5J8fAJY1',
922
- type: 'paragraph',
923
- data: {
924
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Automate WhatsApp Payment Reminders</span>',
925
- },
926
- },
927
- {
928
- id: 'nRtfEBFVVC',
929
- type: 'paragraph',
930
- data: {
931
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Replace Paper Passbooks with Digital Passbooks</span>',
932
- },
933
- },
934
- {
935
- id: '5vQ5XPtHMS',
936
- type: 'paragraph',
937
- data: {
938
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Build a Customer Database</span>',
939
- },
940
- },
941
- {
942
- id: '8_hfT_gfRB',
943
- type: 'paragraph',
944
- data: {
945
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Personalize Every Customer Interaction</span>',
946
- },
947
- },
948
- {
949
- id: 'WFKlteD8Kv',
950
- type: 'paragraph',
951
- data: {
952
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Create a Jewellery Loyalty Program</span>',
953
- },
954
- },
955
- {
956
- id: 'PVFMJpMwG4',
957
- type: 'paragraph',
958
- data: {
959
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Recover Inactive Customers</span>',
960
- },
961
- },
962
- {
963
- id: 'MWRSH4ARCb',
964
- type: 'paragraph',
965
- data: {
966
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Automate Customer Follow-ups</span>',
967
- },
968
- },
969
- {
970
- id: 'sjiKzwCrel',
971
- type: 'paragraph',
972
- data: {
973
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Celebrate Birthdays &amp; Anniversaries</span>',
974
- },
975
- },
976
- {
977
- id: 'JQpBXE6dlq',
978
- type: 'paragraph',
979
- data: {
980
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Run Festival Marketing Campaigns</span>',
981
- },
982
- },
983
- {
984
- id: 'jg8ONHkNjf',
985
- type: 'paragraph',
986
- data: {
987
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Offer Referral Rewards</span>',
988
- },
989
- },
990
- {
991
- id: '81ad5L3GEn',
992
- type: 'paragraph',
993
- data: {
994
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Track Customer Purchase History</span>',
995
- },
996
- },
997
- {
998
- id: 'T82owhXECh',
999
- type: 'paragraph',
1000
- data: {
1001
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Segment Customers Based on Buying Behaviour</span>',
1002
- },
1003
- },
1004
- {
1005
- id: '3zTjcoV-Ku',
1006
- type: 'paragraph',
1007
- data: {
1008
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Send Gold Rate &amp; New Collection Updates</span>',
1009
- },
1010
- },
1011
- {
1012
- id: 'PmdDZ5Jkir',
1013
- type: 'paragraph',
1014
- data: {
1015
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Improve In-Store Customer Experience</span>',
1016
- },
1017
- },
1018
- {
1019
- id: '139x-wirAi',
1020
- type: 'paragraph',
1021
- data: {
1022
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Use Jewellery CRM Software</span>',
1023
- },
1024
- },
1025
- {
1026
- id: 'VUJd-tT-Eu',
1027
- type: 'paragraph',
1028
- data: {
1029
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Measure Customer Retention Metrics</span>',
1030
- },
1031
- },
1032
- {
1033
- id: 'k1Oj2zBVeZ',
1034
- type: 'paragraph',
1035
- data: {
1036
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Collect Customer Feedback &amp; Reviews</span>',
1037
- },
1038
- },
1039
- {
1040
- id: 'zCXobUMJOb',
1041
- type: 'paragraph',
1042
- data: {
1043
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Analyze Customer Buying Trends</span>',
1044
- },
1045
- },
1046
- {
1047
- id: 'SaDYv1p6sg',
1048
- type: 'paragraph',
1049
- data: {
1050
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Digitize Your Jewellery Business with PassbookApp</span>',
1051
- },
1052
- },
1053
- {
1054
- id: 'itszx-eghp',
1055
- type: 'header',
1056
- data: {
1057
- text: 'Final Thoughts',
1058
- level: 1,
1059
- },
1060
- },
1061
- {
1062
- id: 'DWZ9Y5DpTi',
1063
- type: 'paragraph',
1064
- data: {
1065
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The future of jewellery retail belongs to businesses that focus not only on acquiring customers but also on retaining them.</span>',
1066
- },
1067
- },
1068
- {
1069
- id: 'sh__WfsKsR',
1070
- type: 'paragraph',
1071
- data: {
1072
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Every missed follow-up, forgotten anniversary, or delayed reminder is a missed opportunity to strengthen a customer relationship.</span>',
1073
- },
1074
- },
1075
- {
1076
- id: '-yIVi7hG1p',
1077
- type: 'paragraph',
1078
- data: {
1079
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">By implementing structured customer retention strategies—such as gold savings schemes, automated reminders, personalized engagement, and digital customer management—you can increase repeat purchases, improve loyalty, and create a more predictable stream of recurring business.</span>',
1080
- },
1081
- },
1082
- {
1083
- id: 'fqIBVidohQ',
1084
- type: 'paragraph',
1085
- data: {
1086
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">PassbookApp is designed to support this journey by helping jewellery retailers digitize customer management, automate gold scheme operations, and deliver a modern experience that keeps customers coming back.</span>',
1087
- },
1088
- },
1089
- {
1090
- id: 'ijRpOnUsO4',
1091
- type: 'header',
1092
- data: {
1093
- text: 'Frequently Asked Questions',
1094
- level: 2,
1095
- },
1096
- },
1097
- {
1098
- id: 'IBJcODGBFG',
1099
- type: 'paragraph',
1100
- data: {
1101
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">How can a jewellery store increase repeat customers?</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> Focus on customer retention through gold savings schemes, personalized communication, WhatsApp reminders, loyalty programs, and regular engagement.</span>',
1102
- },
1103
- },
1104
- {
1105
- id: 'Hw_lhi15c5',
1106
- type: 'paragraph',
1107
- data: {
1108
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Why do customers stop visiting jewellery stores?</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> The most common reasons are lack of follow-up, poor engagement, and competitors maintaining stronger communication.</span>',
1109
- },
1110
- },
1111
- {
1112
- id: 'ADBXyeKS4e',
1113
- type: 'paragraph',
1114
- data: {
1115
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">What is the best software for managing jewellery customers?</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> A platform that combines customer records, digital passbooks, gold scheme management, payment tracking, and automated reminders can simplify operations and improve retention.</span>',
1116
- },
1117
- },
1118
- {
1119
- id: 'E4QcS9ieOL',
1120
- type: 'paragraph',
1121
- data: {
1122
- text: '<span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Do gold savings schemes help customer loyalty?</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"></span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> Yes. They encourage regular monthly interaction, improve retention, and increase the likelihood of future purchases.</span>',
1123
- },
1124
- },
1125
- {
1126
- id: 'dvXEFf_A4B',
1127
- type: 'header',
1128
- data: {
1129
- text: '<a href="https://www.passbookapp.in/demo">Book a Free Demo</a>',
1130
- level: 2,
1131
- },
1132
- },
305
+ "id": "r5kCFO503W",
306
+ "type": "paragraph",
307
+ "data": {
308
+ "text": "<b><a href=\"https://www.passbookapp.in/demo\">Book a Free PassbookApp Demo Today</a></b>"
309
+ }
310
+ }
1133
311
  ],
1134
- createdBy: 'Raj',
1135
- postSummary: 'Discover 15 proven strategies to increase repeat customers in your jewellery store using gold schemes, WhatsApp reminders, customer retention software, and digital customer management.',
1136
- postTitle: 'How to Increase Repeat Customers in a Jewellery Store',
1137
- newPostTitle: 'How-to-Increase-Repeat-Customers-in-a-Jewellery-Store',
1138
- blogMeta: {
1139
- metaTitle: 'How to Increase Repeat Customers in a Jewellery Store',
1140
- metaDescription: {
1141
- name: 'description',
1142
- content: 'Discover 15 proven strategies to increase repeat customers in your jewellery store using gold schemes, WhatsApp reminders, customer retention software, and digital customer management.',
1143
- },
312
+ "createdBy": "Raj",
313
+ "postSummary": "Discover how Jewellery retailers eliminated manual registers, increased customer engagement, and streamlined savings schemes using PassbookApp.",
314
+ "postTitle": "Case Study: How a Jewellery Retailer Increased Customer Engagement Using PassbookApp",
315
+ "newPostTitle": "Case-Study-How-a-Jewellery-Retailer-Increased--Customer-Engagement-Using-PassbookApp",
316
+ "blogMeta": {
317
+ "metaTitle": "Case Study: How a Jewellery Retailer Increased Customer Engagement Using PassbookApp",
318
+ "metaDescription": {
319
+ "name": "description",
320
+ "content": "Discover how Jewellery retailers eliminated manual registers, increased customer engagement, and streamlined savings schemes using PassbookApp."
321
+ }
1144
322
  },
1145
- createdTimeStamp: '2026-07-22T12:09:09.000+00:00',
1146
- publishedDate: null,
1147
- blogScheduledDate: '2026-07-22T00:00:00.000+00:00',
1148
- blogScheduleTime: '17:40:20',
1149
- keyWords: {
1150
- name: 'keywords',
1151
- content: 'WhatsApp CRM,WhatsApp marketing for jewellers,Jewellery WhatsApp reminders,Jewellery Business Growth',
323
+ "createdTimeStamp": "2026-08-04T11:58:37.000+00:00",
324
+ "publishedDate": null,
325
+ "blogScheduledDate": "2026-08-04T00:00:00.000+00:00",
326
+ "blogScheduleTime": "17:29:24",
327
+ "keyWords": {
328
+ "name": "keywords",
329
+ "content": "digital passbook for jewellery stores,Jewellery customer engagement,jewellery customer engagement software,jewellery CRM software,jewellery customer experience"
1152
330
  },
1153
- author: {
1154
- name: 'author',
1155
- content: 'Passbookapp',
331
+ "author": {
332
+ "name": "author",
333
+ "content": "Passbookapp"
1156
334
  },
1157
- blogStatus: 'PUBLISH',
1158
- blogType: 'BUSINESS',
335
+ "blogStatus": "PUBLISH",
336
+ "blogType": "BUSINESS"
1159
337
  };
1160
338
  this.tocItems = [];
1161
339
  this.tocOpen = false;
@@ -1165,18 +343,54 @@ export class ViewBlogComponent {
1165
343
  }
1166
344
  ngOnInit() {
1167
345
  this.buildTableOfContents();
346
+ this.recordVisit();
1168
347
  }
1169
348
  ngOnChanges(changes) {
1170
349
  if (changes['responseData'] && !changes['responseData'].isFirstChange()) {
1171
350
  this.buildTableOfContents();
351
+ this.recordVisit();
1172
352
  }
1173
353
  }
354
+ // Counts one public view per blog per browser session, per the "Increment blog visits" spec:
355
+ // PUT business/blog/update/{blogId}, fire-and-forget, guarded so refresh/re-render doesn't double-count.
356
+ recordVisit() {
357
+ if (!this.isBrowser) {
358
+ return;
359
+ }
360
+ const blogId = this.responseData?.id;
361
+ if (!blogId) {
362
+ return;
363
+ }
364
+ const sessionKey = `blog-visit-${blogId}`;
365
+ if (sessionStorage.getItem(sessionKey)) {
366
+ return;
367
+ }
368
+ sessionStorage.setItem(sessionKey, '1');
369
+ this.restService.incrementBlogVisit(blogId).subscribe({
370
+ next: () => { },
371
+ error: () => { },
372
+ });
373
+ }
1174
374
  ngAfterViewInit() {
1175
375
  this.setupScrollSpy();
1176
376
  }
1177
377
  ngOnDestroy() {
1178
378
  this.tocObserver?.disconnect();
1179
379
  }
380
+ get heroImageBlockId() {
381
+ const blocks = this.responseData?.blocks || [];
382
+ return blocks.find(block => block.type === 'image')?.id ?? null;
383
+ }
384
+ get tags() {
385
+ const content = this.responseData?.keyWords?.content;
386
+ if (!content) {
387
+ return [];
388
+ }
389
+ return content
390
+ .split(',')
391
+ .map((tag) => tag.trim())
392
+ .filter((tag) => tag.length > 0);
393
+ }
1180
394
  editSection() {
1181
395
  // this._eventService.toggleEditorEvent.emit(false);
1182
396
  }
@@ -1218,7 +432,7 @@ export class ViewBlogComponent {
1218
432
  if (level <= 1 || !text) {
1219
433
  return null;
1220
434
  }
1221
- return { id: block.id, text };
435
+ return { id: block.id, text, level };
1222
436
  }
1223
437
  if (block.type === 'paragraph') {
1224
438
  return this.getBoldParagraphHeading(block);
@@ -1259,7 +473,7 @@ export class ViewBlogComponent {
1259
473
  if (maxFontSizePt >= 16) {
1260
474
  return null;
1261
475
  }
1262
- return { id: block.id, text };
476
+ return { id: block.id, text, level: 2 };
1263
477
  }
1264
478
  stripHtml(html) {
1265
479
  if (!html) {
@@ -1288,16 +502,16 @@ export class ViewBlogComponent {
1288
502
  }, { rootMargin: '0px 0px -70% 0px' });
1289
503
  anchors.forEach(anchor => this.tocObserver?.observe(anchor));
1290
504
  }
1291
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewBlogComponent, deps: [{ token: i1.EventsService }, { token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
1292
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ViewBlogComponent, isStandalone: true, selector: "simpo-view-blog", inputs: { responseData: "responseData" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"main-section\">\n <div class=\"blog-container\">\n <h1 class=\"blog-title\" *ngIf=\"responseData?.postTitle\">\n {{ responseData.postTitle }}\n </h1>\n\n <div class=\"meta-bar\">\n <div class=\"meta-item\">\n <span class=\"meta-label\">Publication Date</span>\n <span class=\"meta-value\">{{\n responseData?.publishedDate ||\n responseData?.blogScheduledDate ||\n responseData?.createdTimeStamp | date: 'd MMMM y'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Author</span>\n <span class=\"meta-value\">{{\n responseData?.author?.content || '\u2014'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Read Time</span>\n <span class=\"meta-value\"\n >{{ responseData?.readTime || '\u2014' }} min read</span\n >\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Views</span>\n <span class=\"meta-value\">{{ responseData?.totalVisits || 0 }}+</span>\n </div>\n </div>\n\n <div class=\"blog-layout\" [class.with-toc]=\"tocItems.length > 1\">\n <aside class=\"toc-sidebar\" *ngIf=\"tocItems.length > 1\">\n <button\n type=\"button\"\n class=\"toc-toggle\"\n (click)=\"tocOpen = !tocOpen\"\n [attr.aria-expanded]=\"tocOpen\">\n <span>Table Of Content</span>\n <span class=\"toc-toggle-icon\" [class.open]=\"tocOpen\"></span>\n </button>\n <div class=\"toc-header\">Table Of Content</div>\n <nav class=\"toc-list\" [class.open]=\"tocOpen\">\n <a\n *ngFor=\"let toc of tocItems\"\n class=\"toc-link\"\n [class.active]=\"activeTocId === toc.id\"\n [href]=\"'#block-' + toc.id\"\n (click)=\"scrollToBlock($event, toc.id)\">\n {{ toc.text }}\n </a>\n </nav>\n </aside>\n\n <div class=\"blog-details\">\n <ng-container *ngFor=\"let item of responseData?.blocks\">\n <div\n *ngIf=\"item.type == 'header' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <h1 *ngIf=\"item.data.level == 1\" [innerHTML]=\"item.data.text\"></h1>\n <h2 *ngIf=\"item.data.level == 2\" [innerHTML]=\"item.data.text\"></h2>\n <h3 *ngIf=\"item.data.level == 3\" [innerHTML]=\"item.data.text\"></h3>\n <h4 *ngIf=\"item.data.level == 4\" [innerHTML]=\"item.data.text\"></h4>\n <h5 *ngIf=\"item.data.level == 5\" [innerHTML]=\"item.data.text\"></h5>\n <h6 *ngIf=\"item.data.level == 6\" [innerHTML]=\"item.data.text\"></h6>\n </div>\n <div\n *ngIf=\"item.type == 'paragraph' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <p\n class=\"inner-text\"\n [class.heading-paragraph]=\"isTocAnchor(item.id)\"\n [innerHTML]=\"item.data.text\"></p>\n </div>\n <div *ngIf=\"item.type == 'list'\">\n <div *ngIf=\"item.data.style == 'ordered'\">\n <ol class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ol>\n </div>\n <div *ngIf=\"item.data.style == 'unordered'\">\n <ul class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ul>\n </div>\n </div>\n <div *ngIf=\"item.type == 'delimiter'\" class=\"ce-delimiter\"></div>\n <div *ngIf=\"item.type == 'image'\" class=\"image-container\">\n <img\n loading=\"lazy\"\n [src]=\"item.data.file.url\"\n alt=\"\"\n loading=\"lazy\" />\n </div>\n <div *ngIf=\"item.type == 'table'\">\n <div class=\"table-wrapper\">\n <table\n [class.table-no-heading]=\"item.data.withHeadings === false\">\n <ng-container *ngFor=\"let data of item.data.content\">\n <tr>\n <ng-container *ngFor=\"let item of data\">\n <td [innerHTML]=\"item\"></td>\n </ng-container>\n </tr>\n </ng-container>\n </table>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</section>\n", styles: [":host{display:block;width:100%}*,*:before,*:after{box-sizing:border-box}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.main-section{padding:2% 5%;background-color:#fff}.blog-container{width:85%;margin:0 auto}.blog-title{font-size:2em;font-weight:700;line-height:1.25em;margin:0 0 20px}.meta-bar{display:flex;gap:12px;margin-bottom:28px}.meta-item{flex:1;background-color:#f5f5f5;border-radius:6px;padding:12px 10px;text-align:center}.meta-label{display:block;font-size:.75em;color:#8a8a8a;letter-spacing:.02em;margin-bottom:6px}.meta-value{display:block;font-size:.95em;font-weight:700;color:#1a1a1a}.blog-layout{display:block}.blog-layout.with-toc{display:flex;align-items:flex-start;gap:40px}.with-toc .blog-details{flex:1;min-width:0;order:1}.toc-sidebar{width:340px;flex-shrink:0;position:sticky;top:20px;background-color:#f5f5f5;border-radius:6px;padding:16px;order:2}.toc-header{font-weight:700;font-size:1.05em;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #dcdcdc}.toc-toggle{display:none;width:100%;align-items:center;justify-content:space-between;background:none;border:none;font-weight:700;font-size:1.05em;padding:0;cursor:pointer}.toc-toggle-icon{width:10px;height:10px;border-right:2px solid #1a1a1a;border-bottom:2px solid #1a1a1a;transform:rotate(45deg);transition:transform .2s ease}.toc-toggle-icon.open{transform:rotate(-135deg)}.toc-list{display:flex;flex-direction:column;gap:14px;max-height:600px;overflow-y:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:#c9c9c9 transparent}.toc-list::-webkit-scrollbar{display:block;width:6px}.toc-list::-webkit-scrollbar-track{background-color:transparent}.toc-list::-webkit-scrollbar-thumb{display:block;background-color:#c9c9c9;border-radius:3px}.toc-link{color:#6f6f6f;text-decoration:none;font-size:.92em;line-height:1.4em}.toc-link:hover{color:#1a1a1a}.toc-link.active{color:#1a1a1a;font-weight:700}.delimiter{display:flex;justify-content:center}.ce-delimiter:before{display:inline-block;content:\"***\";font-size:30px;line-height:65px;height:30px;letter-spacing:.2em}p{line-height:1.6em}.back-text{@include body16r();margin-left:9px;margin-top:1px;cursor:pointer}.table-wrapper{width:100%;overflow-x:auto;margin:16px 0;border-radius:8px;border:1px solid #ececec}table{border-collapse:collapse;width:100%}th,td{border:1px solid #ececec;padding:10px 14px;text-align:left}table:not(.table-no-heading) tr:first-child td{background-color:#eee;font-weight:700;text-transform:uppercase;font-size:.82em}table:not(.table-no-heading) tr:not(:first-child):nth-child(2n) td{background-color:#fafafa}table.table-no-heading tr:nth-child(odd) td{background-color:#fafafa}.header{margin-top:8px;margin-bottom:14px;padding-left:20px}.header img,.configuration-tab img{cursor:pointer}.blogs-totalsection{background:#eee;position:absolute;top:55px;height:calc(100vh - 55px);width:81.7%;z-index:10;overflow-y:scroll;padding:14px}.blog-title{line-height:35px}.image-container{width:100%;margin:10px 0}.image-container img{width:100%}h1,h2,h3,h4,h5,h6{padding:.6em 0 3px}.h1,.h2,.h3,h1,h2,h3{margin-top:0}h2,h3,h4,h5,h6,.inner-text.heading-paragraph{font-weight:700;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #ececec}.list-style{margin:16px 0;padding-left:22px;list-style-position:outside}.list-style li{text-align:left;line-height:1.6em;padding-left:6px}.list-style li:not(:last-child){margin-bottom:10px}.list-style li::marker{color:#1a1a1a;font-weight:700}@media only screen and (max-width: 900px){.blog-container{width:100%}.blog-layout.with-toc{flex-direction:column}.toc-sidebar{width:100%;position:static;box-sizing:border-box;order:0}.with-toc .blog-details{order:1}.toc-header{display:none}.toc-toggle{display:flex}.toc-list{display:none;margin-top:12px}.toc-list.open{display:flex}.meta-bar{flex-wrap:wrap}.meta-item{flex-basis:calc(50% - 6px)}}@media only screen and (max-width: 500px){.blog-details{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] }); }
505
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewBlogComponent, deps: [{ token: i1.EventsService }, { token: i2.RestService }, { token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }
506
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ViewBlogComponent, isStandalone: true, selector: "simpo-view-blog", inputs: { responseData: "responseData" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"main-section\">\n <div class=\"blog-container\">\n <h1 class=\"blog-title\" *ngIf=\"responseData?.postTitle\">\n {{ responseData.postTitle }}\n </h1>\n\n <div class=\"meta-bar\">\n <div class=\"meta-item\">\n <span class=\"meta-label\">Publication Date</span>\n <span class=\"meta-value\">{{\n responseData?.publishedDate ||\n responseData?.blogScheduledDate ||\n responseData?.createdTimeStamp | date: 'd MMMM y'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Author</span>\n <span class=\"meta-value\">{{\n responseData?.author?.content || '\u2014'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Read Time</span>\n <span class=\"meta-value\"\n >{{ responseData?.readTime || '\u2014' }} min read</span\n >\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Views</span>\n <span class=\"meta-value\">{{ responseData?.totalVisits || 0 }}+</span>\n </div>\n </div>\n\n <div class=\"tags-row\" *ngIf=\"tags.length\">\n <span class=\"tag-chip\" *ngFor=\"let tag of tags\">{{ tag | titlecase }}</span>\n </div>\n\n <div class=\"blog-layout\" [class.with-toc]=\"tocItems.length > 1\">\n <aside class=\"toc-sidebar\" *ngIf=\"tocItems.length > 1\">\n <button\n type=\"button\"\n class=\"toc-toggle\"\n (click)=\"tocOpen = !tocOpen\"\n [attr.aria-expanded]=\"tocOpen\">\n <span>Table Of Content</span>\n <span class=\"toc-toggle-icon\" [class.open]=\"tocOpen\"></span>\n </button>\n <div class=\"toc-header\">Table Of Content</div>\n <nav class=\"toc-list\" [class.open]=\"tocOpen\">\n <a\n *ngFor=\"let toc of tocItems\"\n class=\"toc-link\"\n [class.toc-top]=\"toc.level <= 2\"\n [style.paddingLeft.px]=\"(toc.level - 2) * 14\"\n [class.active]=\"activeTocId === toc.id\"\n [href]=\"'#block-' + toc.id\"\n (click)=\"scrollToBlock($event, toc.id)\">\n {{ toc.text }}\n </a>\n </nav>\n </aside>\n\n <div class=\"blog-details\">\n <ng-container *ngFor=\"let item of responseData?.blocks\">\n <div\n *ngIf=\"item.type == 'header' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <h1 *ngIf=\"item.data.level == 1\" [innerHTML]=\"item.data.text\"></h1>\n <h2 *ngIf=\"item.data.level == 2\" [innerHTML]=\"item.data.text\"></h2>\n <h3 *ngIf=\"item.data.level == 3\" [innerHTML]=\"item.data.text\"></h3>\n <h4 *ngIf=\"item.data.level == 4\" [innerHTML]=\"item.data.text\"></h4>\n <h5 *ngIf=\"item.data.level == 5\" [innerHTML]=\"item.data.text\"></h5>\n <h6 *ngIf=\"item.data.level == 6\" [innerHTML]=\"item.data.text\"></h6>\n </div>\n <div\n *ngIf=\"item.type == 'paragraph' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <p\n class=\"inner-text\"\n [class.heading-paragraph]=\"isTocAnchor(item.id)\"\n [innerHTML]=\"item.data.text\"></p>\n </div>\n <div *ngIf=\"item.type == 'list'\">\n <div *ngIf=\"item.data.style == 'ordered'\">\n <ol class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ol>\n </div>\n <div *ngIf=\"item.data.style == 'unordered'\">\n <ul class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ul>\n </div>\n </div>\n <div *ngIf=\"item.type == 'delimiter'\" class=\"ce-delimiter\"></div>\n <div\n *ngIf=\"item.type == 'image'\"\n class=\"image-container\"\n [class.hero-image]=\"item.id === heroImageBlockId\">\n <img loading=\"lazy\" [src]=\"item.data.file.url\" alt=\"\" />\n <span class=\"image-caption\" *ngIf=\"item.data?.caption\">{{\n item.data.caption\n }}</span>\n </div>\n <div *ngIf=\"item.type == 'table'\">\n <div class=\"table-wrapper\">\n <table\n [class.table-no-heading]=\"item.data.withHeadings === false\">\n <ng-container *ngFor=\"let data of item.data.content\">\n <tr>\n <ng-container *ngFor=\"let item of data\">\n <td [innerHTML]=\"item\"></td>\n </ng-container>\n </tr>\n </ng-container>\n </table>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <simpo-recent-blog-post-section\n [popular]=\"true\"\n [businessId]=\"responseData?.businessId\"\n [excludeBlogId]=\"responseData?.id\"\n [edit]=\"false\">\n </simpo-recent-blog-post-section>\n </div>\n</section>\n", styles: [":host{display:block;width:100%}*,*:before,*:after{box-sizing:border-box}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.main-section{padding:2% 5%;background-color:#fff}.blog-container{width:85%;margin:0 auto}.blog-title{font-size:2em;font-weight:700;line-height:1.25em;margin:0 0 20px}.meta-bar{display:flex;gap:12px;margin-bottom:28px}.meta-item{flex:1;background-color:#f5f5f5;border-radius:6px;padding:12px 10px;text-align:center}.meta-label{display:block;font-size:.75em;color:#8a8a8a;letter-spacing:.02em;margin-bottom:6px}.meta-value{display:block;font-size:.95em;font-weight:700;color:#1a1a1a}.blog-layout{display:block}.blog-layout.with-toc{display:flex;align-items:flex-start;gap:40px}.with-toc .blog-details{flex:1;min-width:0;order:1}.toc-sidebar{width:340px;flex-shrink:0;position:sticky;top:20px;background-color:#f5f5f5;border-radius:6px;padding:16px;order:2}.toc-header{font-weight:700;font-size:1.05em;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #dcdcdc}.toc-toggle{display:none;width:100%;align-items:center;justify-content:space-between;background:none;border:none;font-weight:700;font-size:1.05em;padding:0;cursor:pointer}.toc-toggle-icon{width:10px;height:10px;border-right:2px solid #1a1a1a;border-bottom:2px solid #1a1a1a;transform:rotate(45deg);transition:transform .2s ease}.toc-toggle-icon.open{transform:rotate(-135deg)}.toc-list{display:flex;flex-direction:column;gap:14px;max-height:600px;overflow-y:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:#c9c9c9 transparent}.toc-list::-webkit-scrollbar{display:block;width:6px}.toc-list::-webkit-scrollbar-track{background-color:transparent}.toc-list::-webkit-scrollbar-thumb{display:block;background-color:#c9c9c9;border-radius:3px}.toc-link{color:#6f6f6f;text-decoration:none;font-size:.92em;line-height:1.4em}.toc-link:hover{color:#1a1a1a}.toc-link.active{color:#1a1a1a;font-weight:700}.toc-link.toc-top{font-weight:700;color:#1a1a1a}.tags-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.tag-chip{background-color:#f5f5f5;border:1px solid #ececec;border-radius:999px;padding:6px 14px;font-size:.82em;color:#4a4a4a}.delimiter{display:flex;justify-content:center}.ce-delimiter:before{display:inline-block;content:\"***\";font-size:30px;line-height:65px;height:30px;letter-spacing:.2em}p{line-height:1.6em}.back-text{@include body16r();margin-left:9px;margin-top:1px;cursor:pointer}.table-wrapper{width:100%;overflow-x:auto;margin:16px 0;border-radius:8px;border:1px solid #ececec}table{border-collapse:collapse;width:100%}th,td{border:1px solid #ececec;padding:10px 14px;text-align:left}table:not(.table-no-heading) tr:first-child td{background-color:#eee;font-weight:700;text-transform:uppercase;font-size:.82em}table:not(.table-no-heading) tr:not(:first-child):nth-child(2n) td{background-color:#fafafa}table.table-no-heading tr:nth-child(odd) td{background-color:#fafafa}.table-wrapper img{max-width:100%;height:auto;display:block;border-radius:4px}.header{margin-top:8px;margin-bottom:14px;padding-left:20px}.header img,.configuration-tab img{cursor:pointer}.blogs-totalsection{background:#eee;position:absolute;top:55px;height:calc(100vh - 55px);width:81.7%;z-index:10;overflow-y:scroll;padding:14px}.blog-title{line-height:35px}.image-container{width:100%;margin:16px 0}.image-container img{width:100%;display:block;border-radius:8px;object-fit:cover}.image-container:not(.hero-image) img{aspect-ratio:16 / 9}.image-container.hero-image{margin:0 0 24px}.image-container.hero-image img{aspect-ratio:21 / 9;border-radius:12px}.image-caption{display:block;text-align:center;font-size:.85em;color:#8a8a8a;margin-top:8px}h1,h2,h3,h4,h5,h6{padding:.6em 0 3px}.h1,.h2,.h3,h1,h2,h3{margin-top:0}h2,h3,h4,h5,h6,.inner-text.heading-paragraph{font-weight:700;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #ececec}.list-style{margin:16px 0;padding-left:22px;list-style-position:outside}.list-style li{text-align:left;line-height:1.6em;padding-left:6px}.list-style li:not(:last-child){margin-bottom:10px}.list-style li::marker{color:#1a1a1a;font-weight:700}@media only screen and (max-width: 900px){.blog-container{width:100%}.blog-layout.with-toc{flex-direction:column}.toc-sidebar{width:100%;position:static;box-sizing:border-box;order:0}.with-toc .blog-details{order:1}.toc-header{display:none}.toc-toggle{display:flex}.toc-list{display:none;margin-top:12px}.toc-list.open{display:flex}.meta-bar{flex-wrap:wrap}.meta-item{flex-basis:calc(50% - 6px)}}@media only screen and (max-width: 500px){.blog-details{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "component", type: RecentBlogPostSectionComponent, selector: "simpo-recent-blog-post-section", inputs: ["data", "index", "edit", "delete", "customClass", "nextComponentColor", "responseData", "popular", "businessId", "excludeBlogId", "size"] }] }); }
1293
507
  }
1294
508
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewBlogComponent, decorators: [{
1295
509
  type: Component,
1296
- args: [{ selector: 'simpo-view-blog', standalone: true, imports: [CommonModule, DatePipe], template: "<section class=\"main-section\">\n <div class=\"blog-container\">\n <h1 class=\"blog-title\" *ngIf=\"responseData?.postTitle\">\n {{ responseData.postTitle }}\n </h1>\n\n <div class=\"meta-bar\">\n <div class=\"meta-item\">\n <span class=\"meta-label\">Publication Date</span>\n <span class=\"meta-value\">{{\n responseData?.publishedDate ||\n responseData?.blogScheduledDate ||\n responseData?.createdTimeStamp | date: 'd MMMM y'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Author</span>\n <span class=\"meta-value\">{{\n responseData?.author?.content || '\u2014'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Read Time</span>\n <span class=\"meta-value\"\n >{{ responseData?.readTime || '\u2014' }} min read</span\n >\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Views</span>\n <span class=\"meta-value\">{{ responseData?.totalVisits || 0 }}+</span>\n </div>\n </div>\n\n <div class=\"blog-layout\" [class.with-toc]=\"tocItems.length > 1\">\n <aside class=\"toc-sidebar\" *ngIf=\"tocItems.length > 1\">\n <button\n type=\"button\"\n class=\"toc-toggle\"\n (click)=\"tocOpen = !tocOpen\"\n [attr.aria-expanded]=\"tocOpen\">\n <span>Table Of Content</span>\n <span class=\"toc-toggle-icon\" [class.open]=\"tocOpen\"></span>\n </button>\n <div class=\"toc-header\">Table Of Content</div>\n <nav class=\"toc-list\" [class.open]=\"tocOpen\">\n <a\n *ngFor=\"let toc of tocItems\"\n class=\"toc-link\"\n [class.active]=\"activeTocId === toc.id\"\n [href]=\"'#block-' + toc.id\"\n (click)=\"scrollToBlock($event, toc.id)\">\n {{ toc.text }}\n </a>\n </nav>\n </aside>\n\n <div class=\"blog-details\">\n <ng-container *ngFor=\"let item of responseData?.blocks\">\n <div\n *ngIf=\"item.type == 'header' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <h1 *ngIf=\"item.data.level == 1\" [innerHTML]=\"item.data.text\"></h1>\n <h2 *ngIf=\"item.data.level == 2\" [innerHTML]=\"item.data.text\"></h2>\n <h3 *ngIf=\"item.data.level == 3\" [innerHTML]=\"item.data.text\"></h3>\n <h4 *ngIf=\"item.data.level == 4\" [innerHTML]=\"item.data.text\"></h4>\n <h5 *ngIf=\"item.data.level == 5\" [innerHTML]=\"item.data.text\"></h5>\n <h6 *ngIf=\"item.data.level == 6\" [innerHTML]=\"item.data.text\"></h6>\n </div>\n <div\n *ngIf=\"item.type == 'paragraph' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <p\n class=\"inner-text\"\n [class.heading-paragraph]=\"isTocAnchor(item.id)\"\n [innerHTML]=\"item.data.text\"></p>\n </div>\n <div *ngIf=\"item.type == 'list'\">\n <div *ngIf=\"item.data.style == 'ordered'\">\n <ol class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ol>\n </div>\n <div *ngIf=\"item.data.style == 'unordered'\">\n <ul class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ul>\n </div>\n </div>\n <div *ngIf=\"item.type == 'delimiter'\" class=\"ce-delimiter\"></div>\n <div *ngIf=\"item.type == 'image'\" class=\"image-container\">\n <img\n loading=\"lazy\"\n [src]=\"item.data.file.url\"\n alt=\"\"\n loading=\"lazy\" />\n </div>\n <div *ngIf=\"item.type == 'table'\">\n <div class=\"table-wrapper\">\n <table\n [class.table-no-heading]=\"item.data.withHeadings === false\">\n <ng-container *ngFor=\"let data of item.data.content\">\n <tr>\n <ng-container *ngFor=\"let item of data\">\n <td [innerHTML]=\"item\"></td>\n </ng-container>\n </tr>\n </ng-container>\n </table>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</section>\n", styles: [":host{display:block;width:100%}*,*:before,*:after{box-sizing:border-box}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.main-section{padding:2% 5%;background-color:#fff}.blog-container{width:85%;margin:0 auto}.blog-title{font-size:2em;font-weight:700;line-height:1.25em;margin:0 0 20px}.meta-bar{display:flex;gap:12px;margin-bottom:28px}.meta-item{flex:1;background-color:#f5f5f5;border-radius:6px;padding:12px 10px;text-align:center}.meta-label{display:block;font-size:.75em;color:#8a8a8a;letter-spacing:.02em;margin-bottom:6px}.meta-value{display:block;font-size:.95em;font-weight:700;color:#1a1a1a}.blog-layout{display:block}.blog-layout.with-toc{display:flex;align-items:flex-start;gap:40px}.with-toc .blog-details{flex:1;min-width:0;order:1}.toc-sidebar{width:340px;flex-shrink:0;position:sticky;top:20px;background-color:#f5f5f5;border-radius:6px;padding:16px;order:2}.toc-header{font-weight:700;font-size:1.05em;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #dcdcdc}.toc-toggle{display:none;width:100%;align-items:center;justify-content:space-between;background:none;border:none;font-weight:700;font-size:1.05em;padding:0;cursor:pointer}.toc-toggle-icon{width:10px;height:10px;border-right:2px solid #1a1a1a;border-bottom:2px solid #1a1a1a;transform:rotate(45deg);transition:transform .2s ease}.toc-toggle-icon.open{transform:rotate(-135deg)}.toc-list{display:flex;flex-direction:column;gap:14px;max-height:600px;overflow-y:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:#c9c9c9 transparent}.toc-list::-webkit-scrollbar{display:block;width:6px}.toc-list::-webkit-scrollbar-track{background-color:transparent}.toc-list::-webkit-scrollbar-thumb{display:block;background-color:#c9c9c9;border-radius:3px}.toc-link{color:#6f6f6f;text-decoration:none;font-size:.92em;line-height:1.4em}.toc-link:hover{color:#1a1a1a}.toc-link.active{color:#1a1a1a;font-weight:700}.delimiter{display:flex;justify-content:center}.ce-delimiter:before{display:inline-block;content:\"***\";font-size:30px;line-height:65px;height:30px;letter-spacing:.2em}p{line-height:1.6em}.back-text{@include body16r();margin-left:9px;margin-top:1px;cursor:pointer}.table-wrapper{width:100%;overflow-x:auto;margin:16px 0;border-radius:8px;border:1px solid #ececec}table{border-collapse:collapse;width:100%}th,td{border:1px solid #ececec;padding:10px 14px;text-align:left}table:not(.table-no-heading) tr:first-child td{background-color:#eee;font-weight:700;text-transform:uppercase;font-size:.82em}table:not(.table-no-heading) tr:not(:first-child):nth-child(2n) td{background-color:#fafafa}table.table-no-heading tr:nth-child(odd) td{background-color:#fafafa}.header{margin-top:8px;margin-bottom:14px;padding-left:20px}.header img,.configuration-tab img{cursor:pointer}.blogs-totalsection{background:#eee;position:absolute;top:55px;height:calc(100vh - 55px);width:81.7%;z-index:10;overflow-y:scroll;padding:14px}.blog-title{line-height:35px}.image-container{width:100%;margin:10px 0}.image-container img{width:100%}h1,h2,h3,h4,h5,h6{padding:.6em 0 3px}.h1,.h2,.h3,h1,h2,h3{margin-top:0}h2,h3,h4,h5,h6,.inner-text.heading-paragraph{font-weight:700;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #ececec}.list-style{margin:16px 0;padding-left:22px;list-style-position:outside}.list-style li{text-align:left;line-height:1.6em;padding-left:6px}.list-style li:not(:last-child){margin-bottom:10px}.list-style li::marker{color:#1a1a1a;font-weight:700}@media only screen and (max-width: 900px){.blog-container{width:100%}.blog-layout.with-toc{flex-direction:column}.toc-sidebar{width:100%;position:static;box-sizing:border-box;order:0}.with-toc .blog-details{order:1}.toc-header{display:none}.toc-toggle{display:flex}.toc-list{display:none;margin-top:12px}.toc-list.open{display:flex}.meta-bar{flex-wrap:wrap}.meta-item{flex-basis:calc(50% - 6px)}}@media only screen and (max-width: 500px){.blog-details{width:100%}}\n"] }]
1297
- }], ctorParameters: () => [{ type: i1.EventsService }, { type: i0.ElementRef }, { type: undefined, decorators: [{
510
+ args: [{ selector: 'simpo-view-blog', standalone: true, imports: [CommonModule, DatePipe, RecentBlogPostSectionComponent], template: "<section class=\"main-section\">\n <div class=\"blog-container\">\n <h1 class=\"blog-title\" *ngIf=\"responseData?.postTitle\">\n {{ responseData.postTitle }}\n </h1>\n\n <div class=\"meta-bar\">\n <div class=\"meta-item\">\n <span class=\"meta-label\">Publication Date</span>\n <span class=\"meta-value\">{{\n responseData?.publishedDate ||\n responseData?.blogScheduledDate ||\n responseData?.createdTimeStamp | date: 'd MMMM y'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Author</span>\n <span class=\"meta-value\">{{\n responseData?.author?.content || '\u2014'\n }}</span>\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Read Time</span>\n <span class=\"meta-value\"\n >{{ responseData?.readTime || '\u2014' }} min read</span\n >\n </div>\n <div class=\"meta-item\">\n <span class=\"meta-label\">Views</span>\n <span class=\"meta-value\">{{ responseData?.totalVisits || 0 }}+</span>\n </div>\n </div>\n\n <div class=\"tags-row\" *ngIf=\"tags.length\">\n <span class=\"tag-chip\" *ngFor=\"let tag of tags\">{{ tag | titlecase }}</span>\n </div>\n\n <div class=\"blog-layout\" [class.with-toc]=\"tocItems.length > 1\">\n <aside class=\"toc-sidebar\" *ngIf=\"tocItems.length > 1\">\n <button\n type=\"button\"\n class=\"toc-toggle\"\n (click)=\"tocOpen = !tocOpen\"\n [attr.aria-expanded]=\"tocOpen\">\n <span>Table Of Content</span>\n <span class=\"toc-toggle-icon\" [class.open]=\"tocOpen\"></span>\n </button>\n <div class=\"toc-header\">Table Of Content</div>\n <nav class=\"toc-list\" [class.open]=\"tocOpen\">\n <a\n *ngFor=\"let toc of tocItems\"\n class=\"toc-link\"\n [class.toc-top]=\"toc.level <= 2\"\n [style.paddingLeft.px]=\"(toc.level - 2) * 14\"\n [class.active]=\"activeTocId === toc.id\"\n [href]=\"'#block-' + toc.id\"\n (click)=\"scrollToBlock($event, toc.id)\">\n {{ toc.text }}\n </a>\n </nav>\n </aside>\n\n <div class=\"blog-details\">\n <ng-container *ngFor=\"let item of responseData?.blocks\">\n <div\n *ngIf=\"item.type == 'header' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <h1 *ngIf=\"item.data.level == 1\" [innerHTML]=\"item.data.text\"></h1>\n <h2 *ngIf=\"item.data.level == 2\" [innerHTML]=\"item.data.text\"></h2>\n <h3 *ngIf=\"item.data.level == 3\" [innerHTML]=\"item.data.text\"></h3>\n <h4 *ngIf=\"item.data.level == 4\" [innerHTML]=\"item.data.text\"></h4>\n <h5 *ngIf=\"item.data.level == 5\" [innerHTML]=\"item.data.text\"></h5>\n <h6 *ngIf=\"item.data.level == 6\" [innerHTML]=\"item.data.text\"></h6>\n </div>\n <div\n *ngIf=\"item.type == 'paragraph' && hasVisibleText(item.data?.text)\"\n [id]=\"'block-' + item.id\"\n [class.toc-anchor]=\"isTocAnchor(item.id)\">\n <p\n class=\"inner-text\"\n [class.heading-paragraph]=\"isTocAnchor(item.id)\"\n [innerHTML]=\"item.data.text\"></p>\n </div>\n <div *ngIf=\"item.type == 'list'\">\n <div *ngIf=\"item.data.style == 'ordered'\">\n <ol class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ol>\n </div>\n <div *ngIf=\"item.data.style == 'unordered'\">\n <ul class=\"list-style\">\n <ng-container *ngFor=\"let list of item.data.items\">\n <li [innerHTML]=\"list\"></li>\n </ng-container>\n </ul>\n </div>\n </div>\n <div *ngIf=\"item.type == 'delimiter'\" class=\"ce-delimiter\"></div>\n <div\n *ngIf=\"item.type == 'image'\"\n class=\"image-container\"\n [class.hero-image]=\"item.id === heroImageBlockId\">\n <img loading=\"lazy\" [src]=\"item.data.file.url\" alt=\"\" />\n <span class=\"image-caption\" *ngIf=\"item.data?.caption\">{{\n item.data.caption\n }}</span>\n </div>\n <div *ngIf=\"item.type == 'table'\">\n <div class=\"table-wrapper\">\n <table\n [class.table-no-heading]=\"item.data.withHeadings === false\">\n <ng-container *ngFor=\"let data of item.data.content\">\n <tr>\n <ng-container *ngFor=\"let item of data\">\n <td [innerHTML]=\"item\"></td>\n </ng-container>\n </tr>\n </ng-container>\n </table>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n\n <simpo-recent-blog-post-section\n [popular]=\"true\"\n [businessId]=\"responseData?.businessId\"\n [excludeBlogId]=\"responseData?.id\"\n [edit]=\"false\">\n </simpo-recent-blog-post-section>\n </div>\n</section>\n", styles: [":host{display:block;width:100%}*,*:before,*:after{box-sizing:border-box}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.main-section{padding:2% 5%;background-color:#fff}.blog-container{width:85%;margin:0 auto}.blog-title{font-size:2em;font-weight:700;line-height:1.25em;margin:0 0 20px}.meta-bar{display:flex;gap:12px;margin-bottom:28px}.meta-item{flex:1;background-color:#f5f5f5;border-radius:6px;padding:12px 10px;text-align:center}.meta-label{display:block;font-size:.75em;color:#8a8a8a;letter-spacing:.02em;margin-bottom:6px}.meta-value{display:block;font-size:.95em;font-weight:700;color:#1a1a1a}.blog-layout{display:block}.blog-layout.with-toc{display:flex;align-items:flex-start;gap:40px}.with-toc .blog-details{flex:1;min-width:0;order:1}.toc-sidebar{width:340px;flex-shrink:0;position:sticky;top:20px;background-color:#f5f5f5;border-radius:6px;padding:16px;order:2}.toc-header{font-weight:700;font-size:1.05em;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #dcdcdc}.toc-toggle{display:none;width:100%;align-items:center;justify-content:space-between;background:none;border:none;font-weight:700;font-size:1.05em;padding:0;cursor:pointer}.toc-toggle-icon{width:10px;height:10px;border-right:2px solid #1a1a1a;border-bottom:2px solid #1a1a1a;transform:rotate(45deg);transition:transform .2s ease}.toc-toggle-icon.open{transform:rotate(-135deg)}.toc-list{display:flex;flex-direction:column;gap:14px;max-height:600px;overflow-y:auto;padding-right:8px;scrollbar-width:thin;scrollbar-color:#c9c9c9 transparent}.toc-list::-webkit-scrollbar{display:block;width:6px}.toc-list::-webkit-scrollbar-track{background-color:transparent}.toc-list::-webkit-scrollbar-thumb{display:block;background-color:#c9c9c9;border-radius:3px}.toc-link{color:#6f6f6f;text-decoration:none;font-size:.92em;line-height:1.4em}.toc-link:hover{color:#1a1a1a}.toc-link.active{color:#1a1a1a;font-weight:700}.toc-link.toc-top{font-weight:700;color:#1a1a1a}.tags-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.tag-chip{background-color:#f5f5f5;border:1px solid #ececec;border-radius:999px;padding:6px 14px;font-size:.82em;color:#4a4a4a}.delimiter{display:flex;justify-content:center}.ce-delimiter:before{display:inline-block;content:\"***\";font-size:30px;line-height:65px;height:30px;letter-spacing:.2em}p{line-height:1.6em}.back-text{@include body16r();margin-left:9px;margin-top:1px;cursor:pointer}.table-wrapper{width:100%;overflow-x:auto;margin:16px 0;border-radius:8px;border:1px solid #ececec}table{border-collapse:collapse;width:100%}th,td{border:1px solid #ececec;padding:10px 14px;text-align:left}table:not(.table-no-heading) tr:first-child td{background-color:#eee;font-weight:700;text-transform:uppercase;font-size:.82em}table:not(.table-no-heading) tr:not(:first-child):nth-child(2n) td{background-color:#fafafa}table.table-no-heading tr:nth-child(odd) td{background-color:#fafafa}.table-wrapper img{max-width:100%;height:auto;display:block;border-radius:4px}.header{margin-top:8px;margin-bottom:14px;padding-left:20px}.header img,.configuration-tab img{cursor:pointer}.blogs-totalsection{background:#eee;position:absolute;top:55px;height:calc(100vh - 55px);width:81.7%;z-index:10;overflow-y:scroll;padding:14px}.blog-title{line-height:35px}.image-container{width:100%;margin:16px 0}.image-container img{width:100%;display:block;border-radius:8px;object-fit:cover}.image-container:not(.hero-image) img{aspect-ratio:16 / 9}.image-container.hero-image{margin:0 0 24px}.image-container.hero-image img{aspect-ratio:21 / 9;border-radius:12px}.image-caption{display:block;text-align:center;font-size:.85em;color:#8a8a8a;margin-top:8px}h1,h2,h3,h4,h5,h6{padding:.6em 0 3px}.h1,.h2,.h3,h1,h2,h3{margin-top:0}h2,h3,h4,h5,h6,.inner-text.heading-paragraph{font-weight:700;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid #ececec}.list-style{margin:16px 0;padding-left:22px;list-style-position:outside}.list-style li{text-align:left;line-height:1.6em;padding-left:6px}.list-style li:not(:last-child){margin-bottom:10px}.list-style li::marker{color:#1a1a1a;font-weight:700}@media only screen and (max-width: 900px){.blog-container{width:100%}.blog-layout.with-toc{flex-direction:column}.toc-sidebar{width:100%;position:static;box-sizing:border-box;order:0}.with-toc .blog-details{order:1}.toc-header{display:none}.toc-toggle{display:flex}.toc-list{display:none;margin-top:12px}.toc-list.open{display:flex}.meta-bar{flex-wrap:wrap}.meta-item{flex-basis:calc(50% - 6px)}}@media only screen and (max-width: 500px){.blog-details{width:100%}}\n"] }]
511
+ }], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.RestService }, { type: i0.ElementRef }, { type: undefined, decorators: [{
1298
512
  type: Inject,
1299
513
  args: [PLATFORM_ID]
1300
514
  }] }], propDecorators: { responseData: [{
1301
515
  type: Input
1302
516
  }] } });
1303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1ibG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlldy1ibG9nL3ZpZXctYmxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZXctYmxvZy92aWV3LWJsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBRUwsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBSUwsV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDOzs7O0FBcUJ2QixNQUFNLE9BQU8saUJBQWlCO0lBNm9DNUIsWUFDbUIsYUFBNEIsRUFDNUIsV0FBb0MsRUFDaEMsVUFBa0I7UUFGdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBNW9DOUMsaUJBQVksR0FBUTtZQUMzQixhQUFhLEVBQUUsSUFBSTtZQUNuQixlQUFlLEVBQUUsRUFBRTtZQUNuQixTQUFTLEVBQUUsUUFBUTtZQUNuQixXQUFXLEVBQUUsdURBQXVEO1lBQ3BFLGdCQUFnQixFQUFFLCtCQUErQjtZQUNqRCxRQUFRLEVBQUUsR0FBRztZQUNiLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLENBQUM7WUFDZCxFQUFFLEVBQUUsc0NBQXNDO1lBQzFDLFVBQVUsRUFBRSxzQ0FBc0M7WUFDbEQsSUFBSSxFQUFFLENBQUM7WUFDUCxPQUFPLEVBQUUsRUFBRTtZQUNYLE1BQU0sRUFBRTtnQkFDTjtvQkFDRSxFQUFFLEVBQUUsWUFBWTtvQkFDaEIsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFO3dCQUNKLElB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SUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxvQkFBb0IsQ0FDekMsT0FBTyxDQUFDLEVBQUU7WUFDUixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzlELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUMsRUFDRCxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxDQUNuQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzsrR0E3eUNVLGlCQUFpQix5RUFncENsQixXQUFXO21HQWhwQ1YsaUJBQWlCLDBJQ2pDOUIsd3ZKQXlIQSw2NkhENUZZLFlBQVk7OzRGQUlYLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDOzswQkFvcEM5QixNQUFNOzJCQUFDLFdBQVc7eUNBN29DWixZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBQTEFURk9STV9JRCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XG5cbmludGVyZmFjZSBUb2NJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQmxvZ0Jsb2NrIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpbXBvLXZpZXctYmxvZycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERhdGVQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctYmxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi92aWV3LWJsb2cuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdCbG9nQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKSByZXNwb25zZURhdGE6IGFueSA9IHtcbiAgICBzdWJJbmR1c3RyeUlkOiBudWxsLFxuICAgIHN1YkluZHVzdHJ5TmFtZTogJycsXG4gICAgZGlzcGxheUlkOiAnQkcxNzc4JyxcbiAgICBhcnRpY2xlU2x1ZzogJ0hvdy10by1JbmNyZWFzZS1SZXBlYXQtQ3VzdG9tZXJzLWluLWEtSmV3ZWxsZXJ5LVN0b3JlJyxcbiAgICB1cGRhdGVkVGltZVN0YW1wOiAnMjAyNi0wNy0yMlQxMjoxMDoyMC4wMDArMDA6MDAnLFxuICAgIHJlYWRUaW1lOiAnNicsXG4gICAgd29yZENvdW50OiAxMjU2LFxuICAgIHRvdGFsVmlzaXRzOiAwLFxuICAgIGlkOiAnMWYxODVjNjItODk4ZC02N2M3LWEzNzctYzNlOWMyZTRmNTM2JyxcbiAgICBidXNpbmVzc0lkOiAnMWVmOTQ0ZGItMGUzNy02ZjAxLTk0M2EtMjE0ZGQxOWY1NGU5JyxcbiAgICB0aW1lOiAwLFxuICAgIHZlcnNpb246ICcnLFxuICAgIGJsb2NrczogW1xuICAgICAge1xuICAgICAgICBpZDogJ0p5REtBYml1ODEnLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICdIb3cgdG8gSW5jcmVhc2UgUmVwZWF0IEN1c3RvbWVycyBpbiBhIEpld2VsbGVyeSBTdG9yZTombmJzcDsgUHJvdmVuIFN0cmF0ZWdpZXMgdG8gQm9vc3QgQ3VzdG9tZXIgTG95YWx0eSAmYW1wOyBTYWxlcycsXG4gICAgICAgICAgbGV2ZWw6IDIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3ZrY05PWDl0TEYnLFxuICAgICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgY2FwdGlvbjogJycsXG4gICAgICAgICAgd2l0aEJvcmRlcjogZmFsc2UsXG4gICAgICAgICAgd2l0aEJhY2tncm91bmQ6IGZhbHNlLFxuICAgICAgICAgIHN0cmV0Y2hlZDogZmFsc2UsXG4gICAgICAgICAgZmlsZToge1xuICAgICAgICAgICAgdXJsOiAnaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9pbWFnZXMvODU5ODAwYzE3ODQ3MjE0MTA5ODkxLnBuZycsXG4gICAgICAgICAgICBoZWlnaHQ6ICc1MDBweCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAncWQwVVFJRDBWSicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjE3cHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkltYWdpbmUgVGhpc+KApjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd1UE5HQVkxY0I5JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+WW91IHNwZW50IDwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj7igrkxNSwwMDAgb24gTWV0YSBBZHM8L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+LCBwcmludGVkIHRob3VzYW5kcyBvZiBwYW1waGxldHMgZm9yIGEgZmVzdGl2ZSBvZmZlciwgYW5kIGV2ZW4gcmFuIGEgbG9jYWwgbmV3c3BhcGVyIGFkdmVydGlzZW1lbnQuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2JEelh0d3lISDknLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5DdXN0b21lcnMgd2Fsa2VkIGludG8geW91ciBqZXdlbGxlcnkgc2hvd3Jvb20uIFNhbGVzIHdlcmUgZ29vZCBkdXJpbmcgQWtzaGF5YSBUcml0aXlhLCBEaXdhbGksIGFuZCB0aGUgd2VkZGluZyBzZWFzb24uPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2R1bW15VGFibGVEZW1vMScsXG4gICAgICAgIHR5cGU6ICd0YWJsZScsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB3aXRoSGVhZGluZ3M6IHRydWUsXG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAgWydMb3lhbHR5IFRpZXInLCAnTWluLiBQdXJjaGFzZScsICdSZXdhcmQnLCAnVmFsaWRpdHknXSxcbiAgICAgICAgICAgIFsnU2lsdmVyJywgJ+KCuTI1LDAwMCcsICcyJSBjYXNoYmFjaycsICcxMiBtb250aHMnXSxcbiAgICAgICAgICAgIFsnR29sZCcsICfigrk3NSwwMDAnLCAnNSUgY2FzaGJhY2snLCAnMTIgbW9udGhzJ10sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICdQbGF0aW51bScsXG4gICAgICAgICAgICAgICfigrkxLDUwLDAwMCcsXG4gICAgICAgICAgICAgICc4JSBjYXNoYmFjayArIGZyZWUgbWFpbnRlbmFuY2UnLFxuICAgICAgICAgICAgICAnMjQgbW9udGhzJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZHVtbXlUYWJsZURlbW8yJyxcbiAgICAgICAgdHlwZTogJ3RhYmxlJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHdpdGhIZWFkaW5nczogZmFsc2UsXG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAgWydGZXN0aXZlIFNlYXNvbicsICdBa3NoYXlhIFRyaXRpeWEsIERpd2FsaSwgd2VkZGluZyBzZWFzb24nXSxcbiAgICAgICAgICAgIFsnQXZnLiBSZXBlYXQgUHVyY2hhc2UgR2FwJywgJzgtMTAgbW9udGhzJ10sXG4gICAgICAgICAgICBbJ1ByZWZlcnJlZCBDb250YWN0IENoYW5uZWwnLCAnV2hhdHNBcHAnXSxcbiAgICAgICAgICAgIFsnVG9wIFJlYXNvbiBGb3IgUmV0dXJuIFZpc2l0JywgJ1JlZmVycmFsIHJld2FyZHMnXSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdkdW1teVRhYmxlRGVtbzMnLFxuICAgICAgICB0eXBlOiAndGFibGUnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgd2l0aEhlYWRpbmdzOiB0cnVlLFxuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgJ01vbnRoJyxcbiAgICAgICAgICAgICAgJ05ldyBDdXN0b21lcnMnLFxuICAgICAgICAgICAgICAnUmVwZWF0IEN1c3RvbWVycycsXG4gICAgICAgICAgICAgICdXaGF0c0FwcCBSZW1pbmRlcnMgU2VudCcsXG4gICAgICAgICAgICAgICdSZWRlbXB0aW9ucycsXG4gICAgICAgICAgICAgICdSZXZlbnVlIGZyb20gUmVwZWF0cycsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgWydBcHJpbCcsICcxMjAnLCAnNDUnLCAnMzAwJywgJzYwJywgJ+KCuTQsMjAsMDAwJ10sXG4gICAgICAgICAgICBbJ01heScsICc5OCcsICc2MicsICczNDAnLCAnNzgnLCAn4oK5NSwxMCwwMDAnXSxcbiAgICAgICAgICAgIFsnSnVuZScsICcxNDUnLCAnODAnLCAnNDEwJywgJzk1JywgJ+KCuTYsMzUsMDAwJ10sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZmFkb1dlMUdCYycsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkJ1dCBhZnRlciBzaXggbW9udGhzLCBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZC48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnTDM2N2pDaW5jZCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoZSBzYW1lIGN1c3RvbWVycyB3aG8gb25jZSBwcmFpc2VkIHlvdXIgc2VydmljZSBib3VnaHQgdGhlaXIgbmV4dCBqZXdlbGxlcnkgcHVyY2hhc2UgZnJvbSBhbm90aGVyIHN0b3JlLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdka0xzbVN1MmxZJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Tm90IGJlY2F1c2UgeW91ciBqZXdlbGxlcnkgd2FzIGV4cGVuc2l2ZS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnREFkcThHdFBiUicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk5vdCBiZWNhdXNlIHlvdXIgZGVzaWducyB3ZXJlIG91dGRhdGVkLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc5cHFvZnJiT1cwJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QnV0IGJlY2F1c2UgPC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPnRoZXkgc2ltcGx5IGZvcmdvdCBhYm91dCB5b3VyIGJ1c2luZXNzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdJRTlBLXVCV0JnJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VGhpcyBpcyBvbmUgb2YgdGhlIGJpZ2dlc3QgY2hhbGxlbmdlcyBqZXdlbGxlcnkgcmV0YWlsZXJzIGZhY2UgdG9kYXkuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ01GM0s0UDU0RkUnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5Nb3N0IGpld2VsbGVyeSBvd25lcnMgc3BlbmQgdGhvdXNhbmRzIG9mIHJ1cGVlcyBhdHRyYWN0aW5nIG5ldyBjdXN0b21lcnMgd2hpbGUgdW5pbnRlbnRpb25hbGx5IG5lZ2xlY3RpbmcgdGhlIGN1c3RvbWVycyB3aG8gaGF2ZSBhbHJlYWR5IHRydXN0ZWQgdGhlbS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnc19OYTBwc3htSCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoZSByZXN1bHQ/PC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0ZlS3lRbXBnWHInLFxuICAgICAgICB0eXBlOiAnbGlzdCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBzdHlsZTogJ3Vub3JkZXJlZCcsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICdDdXN0b21lcnMgcHVyY2hhc2Ugb25jZSBhbmQgbmV2ZXIgcmV0dXJuLicsXG4gICAgICAgICAgICAnR29sZCBzY2hlbWUgbWVtYmVycyBzdG9wIHBheWluZyBtb250aGx5IGluc3RhbG1lbnRzLicsXG4gICAgICAgICAgICAnU3RhZmYgc3BlbmQgaG91cnMgbWFraW5nIHJlbWluZGVyIGNhbGxzLicsXG4gICAgICAgICAgICAnQ3VzdG9tZXIgcmVjb3JkcyByZW1haW4gaW4gcGFwZXIgZmlsZXMgb3IgRXhjZWwgc2hlZXRzLicsXG4gICAgICAgICAgICAnRmVzdGl2YWwgY2FtcGFpZ25zIHJlYWNoIG9ubHkgYSBmcmFjdGlvbiBvZiBwYXN0IGJ1eWVycy4nLFxuICAgICAgICAgICAgJ0NvbXBldGl0b3JzIHJlY29ubmVjdCB3aXRoIHlvdXIgY3VzdG9tZXJzIGJlZm9yZSB5b3UgZG8uJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd6Vk9SalQ4RE91JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+SWYgdGhpcyBzb3VuZHMgZmFtaWxpYXIsIHlvdVxcJ3JlIG5vdCBhbG9uZS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnb0hCZXEzY0RqSCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoZSBnb29kIG5ld3MgaXMgdGhhdCBpbmNyZWFzaW5nIHJlcGVhdCBjdXN0b21lcnMgZG9lc25cXCd0IGFsd2F5cyByZXF1aXJlIGEgYmlnZ2VyIG1hcmtldGluZyBidWRnZXQuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3hiaFlDcHRacE0nLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5PZnRlbiwgaXQgcmVxdWlyZXMgYSBiZXR0ZXIgY3VzdG9tZXIgcmV0ZW50aW9uIHN0cmF0ZWd5Ljwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc4alRmN0cyekxkJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+SW4gdGhpcyBndWlkZSwgd2VcXCdsbCBleHBsb3JlIHByYWN0aWNhbCBzdHJhdGVnaWVzIHRoYXQgbGVhZGluZyBqZXdlbGxlcnkgcmV0YWlsZXJzIHVzZSB0byBpbmNyZWFzZSBjdXN0b21lciBsb3lhbHR5LCBpbXByb3ZlIGdvbGQgc2NoZW1lIGNvbGxlY3Rpb25zLCBhbmQgYnVpbGQgYSBidXNpbmVzcyB3aGVyZSBjdXN0b21lcnMga2VlcCBjb21pbmcgYmFjayB5ZWFyIGFmdGVyIHllYXIuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3VOVVhWVjJIQUYnLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICdXaHkgUmVwZWF0IEN1c3RvbWVycyBNYXR0ZXIgTW9yZSBUaGFuIE5ldyBDdXN0b21lcnMnLFxuICAgICAgICAgIGxldmVsOiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdBcmFpRkNnbzFJJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+RXZlcnkgamV3ZWxsZXJ5IHJldGFpbGVyIGRyZWFtcyBvZiBhdHRyYWN0aW5nIG5ldyBjdXN0b21lcnMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzExREh6WE5OUlQnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5CdXQgdGhlIG1vc3QgcHJvZml0YWJsZSBzdG9yZXMga25vdyBhIHNpbXBsZSB0cnV0aDo8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnVzBBMEd4TkhTNycsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoZSBlYXNpZXN0IGN1c3RvbWVyIHRvIHNlbGwgdG8gaXMgc29tZW9uZSB3aG8gaGFzIGFscmVhZHkgYm91Z2h0IGZyb20geW91Ljwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdLYWptTk9zcm1zJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VGhpbmsgYWJvdXQgYSB0eXBpY2FsIGpld2VsbGVyeSBjdXN0b21lci48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnWElQSms4b0dkNScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkEgcGVyc29uIGJ1eWluZyBhbiBlbmdhZ2VtZW50IHJpbmcgdG9kYXkgbWlnaHQgbGF0ZXIgcHVyY2hhc2U6PC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzZ1ZGM0X2xoY3gnLFxuICAgICAgICB0eXBlOiAnbGlzdCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBzdHlsZTogJ3Vub3JkZXJlZCcsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICdXZWRkaW5nIGpld2VsbGVyeScsXG4gICAgICAgICAgICAnQW5uaXZlcnNhcnkgZ2lmdHMnLFxuICAgICAgICAgICAgJ0JhYnkgc2hvd2VyIGpld2VsbGVyeScsXG4gICAgICAgICAgICAnRmVzdGl2YWwgY29sbGVjdGlvbnMnLFxuICAgICAgICAgICAgJ0dvbGQgY29pbnMnLFxuICAgICAgICAgICAgJ01vbnRobHkgZ29sZCBzYXZpbmdzIHNjaGVtZXMnLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzVLanpySTJVbkgnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5PdmVyIGEgbGlmZXRpbWUsIG9uZSBjdXN0b21lciBjYW4gZ2VuZXJhdGUgbXVsdGlwbGUgcHVyY2hhc2VzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICczWHpad1U1Vzd6JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VGhlIGNoYWxsZW5nZSBpcyBzdGF5aW5nIGNvbm5lY3RlZCBiZXR3ZWVuIHRob3NlIG9jY2FzaW9ucy48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnQWRtbnNWOWNUbCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlVuZm9ydHVuYXRlbHksIG1hbnkgamV3ZWxsZXJ5IHN0b3JlcyBsb3NlIHRvdWNoIGFmdGVyIHRoZSBmaXJzdCBzYWxlLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdQRURHbmpUZ2ZWJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Tm8gZm9sbG93LXVwLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdFMW4wRUdMU2NRJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Tm8gcmVtaW5kZXJzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc5bXFRbHVfbTk0JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Tm8gcGVyc29uYWxpemVkIGNvbW11bmljYXRpb24uPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2ZhUVVNb3prOEUnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5ObyBsb3lhbHR5IHByb2dyYW0uPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzk1RkxIMlo1ZkgnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5FdmVudHVhbGx5LCB0aGUgY3VzdG9tZXIgd2Fsa3MgaW50byBhbm90aGVyIGpld2VsbGVyeSBzdG9yZeKAlG5vdCBiZWNhdXNlIHRoZXlcXCdyZSB1bmhhcHB5LCBidXQgYmVjYXVzZSB0aGUgY29tcGV0aXRvciBzdGF5ZWQgdmlzaWJsZS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAncUhEZkxvNGJQQScsXG4gICAgICAgIHR5cGU6ICdoZWFkZXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJ1RoZSBCaWdnZXN0IEN1c3RvbWVyIFJldGVudGlvbiBQcm9ibGVtcyBKZXdlbGxlcnkgU3RvcmVzIEZhY2UnLFxuICAgICAgICAgIGxldmVsOiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc1VkRtN3NVSnRlJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QWZ0ZXIgc3BlYWtpbmcgd2l0aCBqZXdlbGxlcnkgcmV0YWlsZXJzIGFjcm9zcyBJbmRpYSwgdGhlIHNhbWUgY2hhbGxlbmdlcyBhcHBlYXIgcmVwZWF0ZWRseS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZWUxYXZ1clZocCcsXG4gICAgICAgIHR5cGU6ICdoZWFkZXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzEuIEN1c3RvbWVycyBGb3JnZXQgQWJvdXQgdGhlIFN0b3JlJyxcbiAgICAgICAgICBsZXZlbDogMyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnTVhwSkdWY0l1MScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk1vc3QgY3VzdG9tZXJzIGJ1eSBqZXdlbGxlcnkgb25seSBhIGZldyB0aW1lcyBhIHllYXIuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1dkNlRiTThraVAnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5XaXRob3V0IHJlZ3VsYXIgY29tbXVuaWNhdGlvbiwgdGhleSBmb3JnZXQgd2hlcmUgdGhleSBwdXJjaGFzZWQgbGFzdC48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZ1ZrdGZTU2NQQicsXG4gICAgICAgIHR5cGU6ICdoZWFkZXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzIuIEdvbGQgU2NoZW1lIEN1c3RvbWVycyBNaXNzIEluc3RhbGxtZW50cycsXG4gICAgICAgICAgbGV2ZWw6IDMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3BmRXJzNTZZSWEnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5Nb250aGx5IGdvbGQgc2F2aW5ncyBzY2hlbWVzIGFyZSBleGNlbGxlbnQgZm9yIGN1c3RvbWVyIHJldGVudGlvbi48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnc0FUYzByYjkteCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkhvd2V2ZXIsIG1hbnkgY3VzdG9tZXJzIG1pc3MgaW5zdGFsbWVudHMgc2ltcGx5IGJlY2F1c2UgdGhleSBmb3JnZXQgdGhlIGR1ZSBkYXRlLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdSV05UMXRRX09WJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+U3RhZmYgdGhlbiBzcGVuZCBob3VycyBtYWtpbmcgcmVtaW5kZXIgY2FsbHMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJy1zOU1aaFFObWcnLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICczLiBFdmVyeXRoaW5nIElzIE1hbmFnZWQgTWFudWFsbHknLFxuICAgICAgICAgIGxldmVsOiAzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICctRFd5OHZVMjVfJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+TWFueSByZXRhaWxlcnMgc3RpbGwgZGVwZW5kIG9uOjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdQUVRPSTZweTVUJyxcbiAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgc3R5bGU6ICd1bm9yZGVyZWQnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAnUGFwZXIgcGFzc2Jvb2tzJyxcbiAgICAgICAgICAgICdFeGNlbCBzaGVldHMnLFxuICAgICAgICAgICAgJ1JlZ2lzdGVycycsXG4gICAgICAgICAgICAnTWFudWFsIGNhbGN1bGF0aW9ucycsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnQjdoZGxsM0N2ZCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoaXMgaW5jcmVhc2VzIGVycm9ycyBhbmQgY29uc3VtZXMgdmFsdWFibGUgc3RhZmYgdGltZS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnN1NJTmtScG1KWicsXG4gICAgICAgIHR5cGU6ICdoZWFkZXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzQuIE5vIEN1c3RvbWVyIERhdGFiYXNlJyxcbiAgICAgICAgICBsZXZlbDogMyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnX2Q0REdoSUtEcCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk1hbnkgc3RvcmVzIGhhdmUgdGhvdXNhbmRzIG9mIGludm9pY2VzIGJ1dCBubyBzdHJ1Y3R1cmVkIGN1c3RvbWVyIGRhdGFiYXNlLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd3STYyY1EycGJCJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+V2l0aG91dCBjdXN0b21lciBpbmZvcm1hdGlvbiwgcGVyc29uYWxpemVkIG1hcmtldGluZyBiZWNvbWVzIGltcG9zc2libGUuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3ZiUUVNQTRPZm4nLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc1LiBObyBGb2xsb3ctVXAgUHJvY2VzcycsXG4gICAgICAgICAgbGV2ZWw6IDMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ002MGhMVEt3Z2QnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5BZnRlciB0aGUgcHVyY2hhc2UsIGNvbW11bmljYXRpb24gc3RvcHMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJy0taW5rbEhNMnYnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5ObyBiaXJ0aGRheSB3aXNoZXMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0VMd1ZFclJGbHonLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5ObyBhbm5pdmVyc2FyeSBtZXNzYWdlcy48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnSkJRQU9aMmdxUycsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk5vIGZlc3RpdmUgZ3JlZXRpbmdzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc3NWhKeXpTMTJDJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Tm8gcHJvZHVjdCByZWNvbW1lbmRhdGlvbnMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3RoNEVNX0V2OXgnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5UaGUgcmVsYXRpb25zaGlwIHF1aWV0bHkgZmFkZXMgYXdheS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnNkxjRTdFQ2RjZycsXG4gICAgICAgIHR5cGU6ICdoZWFkZXInLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzE1IFByb3ZlbiBTdHJhdGVnaWVzIHRvIEluY3JlYXNlIFJlcGVhdCBDdXN0b21lcnMnLFxuICAgICAgICAgIGxldmVsOiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdOeDYzMmxJLXdGJyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnMS4gTGF1bmNoIGEgR29sZCBTYXZpbmdzIFNjaGVtZSBUaGF0IEtlZXBzIEN1c3RvbWVycyBFbmdhZ2VkJyxcbiAgICAgICAgICBsZXZlbDogMixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnSl9BRHB3ZVZmaScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk9uZSBvZiB0aGUgc21hcnRlc3Qgd2F5cyB0byBpbmNyZWFzZSByZXBlYXQgYnVzaW5lc3MgaXMgdGhyb3VnaCBhIHdlbGwtbWFuYWdlZCA8L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+R29sZCBTYXZpbmcgU2NoZW1lPC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPi48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnUzV1ajAwMGpxYScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkluc3RlYWQgb2Ygd2FpdGluZyBmb3IgY3VzdG9tZXJzIHRvIHJldHVybiBvbmNlIGEgeWVhciwgYSBnb2xkIHNjaGVtZSBlbmNvdXJhZ2VzIG1vbnRobHkgaW50ZXJhY3Rpb24gd2l0aCB5b3VyIGJyYW5kLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd4QnJHcW9UTHJ2JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+RXZlcnkgbW9udGhseSBwYXltZW50IGJlY29tZXMgYW5vdGhlciB0b3VjaHBvaW50Ljwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdhYk5COWNPMVpqJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Q3VzdG9tZXJzIHN0YXkgY29ubmVjdGVkLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdHTFhCc0lnTjRtJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VHJ1c3QgZ3Jvd3MuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2UzZ29UR3dLclQnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5GdXR1cmUgcHVyY2hhc2VzIGJlY29tZSBtb3JlIGxpa2VseS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAneU9xekJhVEg3QicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkhvd2V2ZXIsIHJ1bm5pbmcgYSBnb2xkIHNjaGVtZSBtYW51YWxseSBvZnRlbiBjcmVhdGVzIGNoYWxsZW5nZXMgc3VjaCBhcyBtaXNzZWQgaW5zdGFsbWVudHMsIHBhcGVyd29yaywgYW5kIGN1c3RvbWVyIGNvbmZ1c2lvbi48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnMW1kXzFWUllUWCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlRoaXMgaXMgd2h5IG1hbnkgcmV0YWlsZXJzIGFyZSBtb3ZpbmcgdG8gZGlnaXRhbCBnb2xkIHNjaGVtZSBtYW5hZ2VtZW50Ljwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdKWVk4emJYa3hoJyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnMi4gU3RvcCBDYWxsaW5nIEN1c3RvbWVycyBNYW51YWxseScsXG4gICAgICAgICAgbGV2ZWw6IDIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1YtZHcxZGEzVmwnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5JbWFnaW5lIG1hbmFnaW5nIDEsMjAwIGFjdGl2ZSBnb2xkIHNjaGVtZSBtZW1iZXJzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdoVUYxdkR6b1FYJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Q2FsbGluZyBldmVyeSBjdXN0b21lciBldmVyeSBtb250aCBpcyBhbG1vc3QgaW1wb3NzaWJsZS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnaWN3cEpPTkN2RicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkluc3RlYWQsIGF1dG9tYXRlOjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdUXy1nZTNyRW1NJyxcbiAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgc3R5bGU6ICd1bm9yZGVyZWQnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAnUGF5bWVudCByZW1pbmRlcnMnLFxuICAgICAgICAgICAgJ0R1ZSBkYXRlIGFsZXJ0cycsXG4gICAgICAgICAgICAnRmVzdGl2YWwgZ3JlZXRpbmdzJyxcbiAgICAgICAgICAgICdHb2xkIHJhdGUgdXBkYXRlcycsXG4gICAgICAgICAgICAnTmV3IGNvbGxlY3Rpb24gYW5ub3VuY2VtZW50cycsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnR2lWRTVXY291RScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkF1dG9tYXRlZCBXaGF0c0FwcCByZW1pbmRlcnMgZW5zdXJlIGN1c3RvbWVycyBzdGF5IGluZm9ybWVkIHdoaWxlIGFsbG93aW5nIHlvdXIgc3RhZmYgdG8gZm9jdXMgb24gc2FsZXMgcmF0aGVyIHRoYW4gcmVwZXRpdGl2ZSBmb2xsb3ctdXAgY2FsbHMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzE5STZKYTFMNUInLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICczLiBSZXBsYWNlIFBhcGVyIFBhc3Nib29rcyB3aXRoIERpZ2l0YWwgUGFzc2Jvb2tzJyxcbiAgICAgICAgICBsZXZlbDogMixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnMU12VXZGbkJCWScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk9uZSBvZiB0aGUgbW9zdCBjb21tb24gY29tcGxhaW50cyBqZXdlbGxlcnkgcmV0YWlsZXJzIGhlYXIgaXM6PC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0xqWjlFLTJNVDYnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOml0YWxpYztmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5cIklcXCd2ZSBsb3N0IG15IHBhc3Nib29rLlwiPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3drYml5TVdSVnEnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5Ob3cgeW91ciBzdGFmZiBzcGVuZHMgdmFsdWFibGUgdGltZSBzZWFyY2hpbmcgdGhyb3VnaCByZWNvcmRzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICcwb0ZLb1h5SDE4JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QSBkaWdpdGFsIHBhc3Nib29rIGVsaW1pbmF0ZXMgdGhpcyBwcm9ibGVtLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdLYTNpbHBGNEowJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+Q3VzdG9tZXJzIGNhbiBpbnN0YW50bHkgdmlldzo8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnUTVxZVJvZzdicCcsXG4gICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHN0eWxlOiAndW5vcmRlcmVkJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgJ0luc3RhbG1lbnQgaGlzdG9yeScsXG4gICAgICAgICAgICAnUGF5bWVudCBzdGF0dXMnLFxuICAgICAgICAgICAgJ1JlbWFpbmluZyBiYWxhbmNlJyxcbiAgICAgICAgICAgICdTY2hlbWUgcHJvZ3Jlc3MnLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0w3blpPbVFuU2cnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5JdCBhbHNvIGJ1aWxkcyB0cmFuc3BhcmVuY3kgYW5kIGNvbmZpZGVuY2UuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3kwcGo2VHZUdFonLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc0LiBCdWlsZCBhIEN1c3RvbWVyIERhdGFiYXNlLCBOb3QgSnVzdCBhIEJpbGxpbmcgRGF0YWJhc2UnLFxuICAgICAgICAgIGxldmVsOiAyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdqajFObHM2VkZ2JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+TWFueSByZXRhaWxlcnMgaGF2ZSB5ZWFycyBvZiBpbnZvaWNlcyBidXQgdmVyeSBsaXR0bGUgdXNhYmxlIGN1c3RvbWVyIGluZm9ybWF0aW9uLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd6ZTR3RnYyeHB1JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QSBjb21wbGV0ZSBjdXN0b21lciBwcm9maWxlIHNob3VsZCBpbmNsdWRlOjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdfSFEtWFU4eHlVJyxcbiAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgc3R5bGU6ICd1bm9yZGVyZWQnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAnQmlydGhkYXknLFxuICAgICAgICAgICAgJ0Fubml2ZXJzYXJ5JyxcbiAgICAgICAgICAgICdQdXJjaGFzZSBoaXN0b3J5JyxcbiAgICAgICAgICAgICdQcmVmZXJyZWQgamV3ZWxsZXJ5IGNhdGVnb3J5JyxcbiAgICAgICAgICAgICdHb2xkIHNjaGVtZSBzdGF0dXMnLFxuICAgICAgICAgICAgJ1Zpc2l0IGhpc3RvcnknLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzUyNklhTzhyWmcnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5UaGlzIGVuYWJsZXMgcGVyc29uYWxpemVkIGNvbW11bmljYXRpb24gdGhhdCBmZWVscyByZWxldmFudCBpbnN0ZWFkIG9mIGdlbmVyaWMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0hUYzlXVUdZYlEnLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc1LiBNYWtlIFdoYXRzQXBwIFlvdXIgU3Ryb25nZXN0IE1hcmtldGluZyBDaGFubmVsJyxcbiAgICAgICAgICBsZXZlbDogMixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZDZzNXJQMzJ6OCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPllvdXIgY3VzdG9tZXJzIGFscmVhZHkgdXNlIFdoYXRzQXBwIGV2ZXJ5IGRheS48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnYVp6U1JmYlYySScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkluc3RlYWQgb2YgcmVseWluZyBvbmx5IG9uIHNvY2lhbCBtZWRpYSwgY29tbXVuaWNhdGUgdGhyb3VnaCB0aGUgcGxhdGZvcm0gdGhleSBjaGVjayBtb3N0IG9mdGVuLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdLZUZlbGh4bjRsJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+RXhhbXBsZXMgaW5jbHVkZTo8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnbm5Ma1BMS19HbScsXG4gICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHN0eWxlOiAndW5vcmRlcmVkJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgJ01vbnRobHkgZ29sZCBzY2hlbWUgcmVtaW5kZXJzJyxcbiAgICAgICAgICAgICdGZXN0aXZhbCB3aXNoZXMnLFxuICAgICAgICAgICAgJ05ldyBhcnJpdmFscycsXG4gICAgICAgICAgICAnQnJpZGFsIGNvbGxlY3Rpb25zJyxcbiAgICAgICAgICAgICdHb2xkIHJhdGUgdXBkYXRlcycsXG4gICAgICAgICAgICAnRXhjbHVzaXZlIG9mZmVycycsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZm9nRGY0UGZnUCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkNvbnNpc3RlbnQgY29tbXVuaWNhdGlvbiBrZWVwcyB5b3VyIHN0b3JlIHRvcCBvZiBtaW5kLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdUZjA0VXRxaHA0JyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnNi4gUmV3YXJkIExveWFsdHksIE5vdCBKdXN0IE5ldyBDdXN0b21lcnMnLFxuICAgICAgICAgIGxldmVsOiAyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc4eDMtbExwV3VTJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+TWFueSBqZXdlbGxlcnkgYnVzaW5lc3NlcyBvZmZlciBkaXNjb3VudHMgb25seSB0byBhdHRyYWN0IG5ldyBidXllcnMuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ0dXLWdpZlRURjgnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5JbnN0ZWFkLCByZXdhcmQgY3VzdG9tZXJzIHdobyBjb250aW51ZSBjaG9vc2luZyB5b3VyIGJyYW5kLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc4Sms5ZlJXc0ozJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+SWRlYXMgaW5jbHVkZTo8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnT1pJZVhPSHZuTScsXG4gICAgICAgIHR5cGU6ICdsaXN0JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHN0eWxlOiAndW5vcmRlcmVkJyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgJ0JvbnVzIGdvbGQgYWZ0ZXIgY29tcGxldGluZyBhIHNjaGVtZScsXG4gICAgICAgICAgICAnTG95YWx0eSByZXdhcmRzJyxcbiAgICAgICAgICAgICdSZWZlcnJhbCBpbmNlbnRpdmVzJyxcbiAgICAgICAgICAgICdFeGNsdXNpdmUgcHJldmlld3MnLFxuICAgICAgICAgICAgJ0NvbXBsaW1lbnRhcnkgamV3ZWxsZXJ5IGNsZWFuaW5nJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd3V1l0Q3BBM1dyJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VGhlc2Ugc21hbGwgZ2VzdHVyZXMgZW5jb3VyYWdlIGxvbmctdGVybSByZWxhdGlvbnNoaXBzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdaZlBqRXNydktNJyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiBcIjcuIFJlY292ZXIgQ3VzdG9tZXJzIEJlZm9yZSBUaGV5J3JlIExvc3RcIixcbiAgICAgICAgICBsZXZlbDogMixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnQ2FTZUw3S0Q4cScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPk5vdCBldmVyeSBpbmFjdGl2ZSBjdXN0b21lciBpcyBnb25lIGZvcmV2ZXIuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzVtem1xam1Ld00nLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5JZGVudGlmeSBjdXN0b21lcnMgd2hvIGhhdmVuXFwndCB2aXNpdGVkIGluIHRoZSBsYXN0IDbigJMxMiBtb250aHMgYW5kIHJlY29ubmVjdCB0aGVtIHdpdGg6PC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1ZlVDRVLTlhdWgnLFxuICAgICAgICB0eXBlOiAnbGlzdCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBzdHlsZTogJ3Vub3JkZXJlZCcsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICdQZXJzb25hbGl6ZWQgV2hhdHNBcHAgbWVzc2FnZXMnLFxuICAgICAgICAgICAgJ0Zlc3RpdmFsIGludml0YXRpb25zJyxcbiAgICAgICAgICAgICdHb2xkIHNjaGVtZSBvZmZlcnMnLFxuICAgICAgICAgICAgJ05ldyBjb2xsZWN0aW9uIHByZXZpZXdzJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdydTNNbnNRMjdVJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+V2lubmluZyBiYWNrIGFuIGV4aXN0aW5nIGN1c3RvbWVyIGlzIHVzdWFsbHkgZWFzaWVyIHRoYW4gZmluZGluZyBhIG5ldyBvbmUuPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzdncEhfd1BESHMnLFxuICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc4LiBVc2UgVGVjaG5vbG9neSB0byBTdGF5IE9yZ2FuaXplZCcsXG4gICAgICAgICAgbGV2ZWw6IDIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3FWUXVyUG9lSjgnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5BcyB5b3VyIGN1c3RvbWVyIGJhc2UgZ3Jvd3MsIHNwcmVhZHNoZWV0cyBhbmQgcGFwZXIgcmVnaXN0ZXJzIGJlY29tZSBkaWZmaWN1bHQgdG8gbWFuYWdlLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd2YnRLSHhVbnpDJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QSBkaWdpdGFsIHBsYXRmb3JtIHN1Y2ggYXMgPC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlBhc3Nib29rQXBwPC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPiBoZWxwcyBqZXdlbGxlcnkgcmV0YWlsZXJzOjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdONVF6U2VrUWdEJyxcbiAgICAgICAgdHlwZTogJ2xpc3QnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgc3R5bGU6ICd1bm9yZGVyZWQnLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAnTWFuYWdlIGdvbGQgc2F2aW5ncyBzY2hlbWVzJyxcbiAgICAgICAgICAgICdUcmFjayBjdXN0b21lciBwYXltZW50cycsXG4gICAgICAgICAgICAnU2VuZCBhdXRvbWF0ZWQgV2hhdHNBcHAgcmVtaW5kZXJzJyxcbiAgICAgICAgICAgICdNYWludGFpbiBkaWdpdGFsIHBhc3Nib29rcycsXG4gICAgICAgICAgICAnQnVpbGQgY3VzdG9tZXIgcHJvZmlsZXMnLFxuICAgICAgICAgICAgJ01vbml0b3IgY29sbGVjdGlvbnMgZnJvbSBvbmUgZGFzaGJvYXJkJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdYV0c2NHplWEZvJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+SW5zdGVhZCBvZiByZXBsYWNpbmcgeW91ciBwZXJzb25hbCBjdXN0b21lciByZWxhdGlvbnNoaXBzLCB0ZWNobm9sb2d5IHN0cmVuZ3RoZW5zIHRoZW0gYnkgZW5zdXJpbmcgbm8gY3VzdG9tZXIgaXMgZm9yZ290dGVuLjwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+4oCULS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5PdGhlciBzdHJhdGVnaWVzIDwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5MYXVuY2ggYSBHb2xkIFNhdmluZ3MgU2NoZW1lPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2twNUo4ZkFKWTEnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5BdXRvbWF0ZSBXaGF0c0FwcCBQYXltZW50IFJlbWluZGVyczwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICduUnRmRUJGVlZDJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+UmVwbGFjZSBQYXBlciBQYXNzYm9va3Mgd2l0aCBEaWdpdGFsIFBhc3Nib29rczwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc1dlE1WFB0SE1TJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+QnVpbGQgYSBDdXN0b21lciBEYXRhYmFzZTwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICc4X2hmVF9nZlJCJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+UGVyc29uYWxpemUgRXZlcnkgQ3VzdG9tZXIgSW50ZXJhY3Rpb248L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnV0ZLbHRlRDhLdicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkNyZWF0ZSBhIEpld2VsbGVyeSBMb3lhbHR5IFByb2dyYW08L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnUFZGTUpwTXdHNCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlJlY292ZXIgSW5hY3RpdmUgQ3VzdG9tZXJzPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ01XUlNINEFSQ2InLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5BdXRvbWF0ZSBDdXN0b21lciBGb2xsb3ctdXBzPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3NqaUt6d0NyZWwnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5DZWxlYnJhdGUgQmlydGhkYXlzICZhbXA7IEFubml2ZXJzYXJpZXM8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnSlFwQlhFNmRscScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlJ1biBGZXN0aXZhbCBNYXJrZXRpbmcgQ2FtcGFpZ25zPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2pnOE9OSGtOamYnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5PZmZlciBSZWZlcnJhbCBSZXdhcmRzPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzgxYWQ1TDNHRW4nLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5UcmFjayBDdXN0b21lciBQdXJjaGFzZSBIaXN0b3J5PC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1Q4Mm93aFhFQ2gnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5TZWdtZW50IEN1c3RvbWVycyBCYXNlZCBvbiBCdXlpbmcgQmVoYXZpb3VyPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJzN6VGpjb1YtS3UnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5TZW5kIEdvbGQgUmF0ZSAmYW1wOyBOZXcgQ29sbGVjdGlvbiBVcGRhdGVzPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1BtZERaNUpraXInLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5JbXByb3ZlIEluLVN0b3JlIEN1c3RvbWVyIEV4cGVyaWVuY2U8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnMTM5eC13aXJBaScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlVzZSBKZXdlbGxlcnkgQ1JNIFNvZnR3YXJlPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1ZVSmQtdFQtRXUnLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5NZWFzdXJlIEN1c3RvbWVyIFJldGVudGlvbiBNZXRyaWNzPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2sxT2oyekJWZVonLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5Db2xsZWN0IEN1c3RvbWVyIEZlZWRiYWNrICZhbXA7IFJldmlld3M8L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnekNYb2JVTUpPYicsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkFuYWx5emUgQ3VzdG9tZXIgQnV5aW5nIFRyZW5kczwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdTYURZdjFwNnNnJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+RGlnaXRpemUgWW91ciBKZXdlbGxlcnkgQnVzaW5lc3Mgd2l0aCBQYXNzYm9va0FwcDwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdpdHN6eC1lZ2hwJyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnRmluYWwgVGhvdWdodHMnLFxuICAgICAgICAgIGxldmVsOiAxLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdEV1o5WTVEcFRpJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+VGhlIGZ1dHVyZSBvZiBqZXdlbGxlcnkgcmV0YWlsIGJlbG9uZ3MgdG8gYnVzaW5lc3NlcyB0aGF0IGZvY3VzIG5vdCBvbmx5IG9uIGFjcXVpcmluZyBjdXN0b21lcnMgYnV0IGFsc28gb24gcmV0YWluaW5nIHRoZW0uPC9zcGFuPicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3NoX19XZnNLc1InLFxuICAgICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6ICc8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj5FdmVyeSBtaXNzZWQgZm9sbG93LXVwLCBmb3Jnb3R0ZW4gYW5uaXZlcnNhcnksIG9yIGRlbGF5ZWQgcmVtaW5kZXIgaXMgYSBtaXNzZWQgb3Bwb3J0dW5pdHkgdG8gc3RyZW5ndGhlbiBhIGN1c3RvbWVyIHJlbGF0aW9uc2hpcC48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnLXlJVmk3aEcxcCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkJ5IGltcGxlbWVudGluZyBzdHJ1Y3R1cmVkIGN1c3RvbWVyIHJldGVudGlvbiBzdHJhdGVnaWVz4oCUc3VjaCBhcyBnb2xkIHNhdmluZ3Mgc2NoZW1lcywgYXV0b21hdGVkIHJlbWluZGVycywgcGVyc29uYWxpemVkIGVuZ2FnZW1lbnQsIGFuZCBkaWdpdGFsIGN1c3RvbWVyIG1hbmFnZW1lbnTigJR5b3UgY2FuIGluY3JlYXNlIHJlcGVhdCBwdXJjaGFzZXMsIGltcHJvdmUgbG95YWx0eSwgYW5kIGNyZWF0ZSBhIG1vcmUgcHJlZGljdGFibGUgc3RyZWFtIG9mIHJlY3VycmluZyBidXNpbmVzcy48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnZnFJQlZpZG9oUScsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPlBhc3Nib29rQXBwIGlzIGRlc2lnbmVkIHRvIHN1cHBvcnQgdGhpcyBqb3VybmV5IGJ5IGhlbHBpbmcgamV3ZWxsZXJ5IHJldGFpbGVycyBkaWdpdGl6ZSBjdXN0b21lciBtYW5hZ2VtZW50LCBhdXRvbWF0ZSBnb2xkIHNjaGVtZSBvcGVyYXRpb25zLCBhbmQgZGVsaXZlciBhIG1vZGVybiBleHBlcmllbmNlIHRoYXQga2VlcHMgY3VzdG9tZXJzIGNvbWluZyBiYWNrLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdpalJwT25Vc080JyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnRnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnMnLFxuICAgICAgICAgIGxldmVsOiAyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdJQkpjT0RHQkZHJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+SG93IGNhbiBhIGpld2VsbGVyeSBzdG9yZSBpbmNyZWFzZSByZXBlYXQgY3VzdG9tZXJzPzwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjcwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj48L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+IEZvY3VzIG9uIGN1c3RvbWVyIHJldGVudGlvbiB0aHJvdWdoIGdvbGQgc2F2aW5ncyBzY2hlbWVzLCBwZXJzb25hbGl6ZWQgY29tbXVuaWNhdGlvbiwgV2hhdHNBcHAgcmVtaW5kZXJzLCBsb3lhbHR5IHByb2dyYW1zLCBhbmQgcmVndWxhciBlbmdhZ2VtZW50Ljwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdId19saGkxNWM1JyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+V2h5IGRvIGN1c3RvbWVycyBzdG9wIHZpc2l0aW5nIGpld2VsbGVyeSBzdG9yZXM/PC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPjwvc3Bhbj48c3BhbiBzdHlsZT1cImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO3doaXRlLXNwYWNlOnByZTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtcIj4gVGhlIG1vc3QgY29tbW9uIHJlYXNvbnMgYXJlIGxhY2sgb2YgZm9sbG93LXVwLCBwb29yIGVuZ2FnZW1lbnQsIGFuZCBjb21wZXRpdG9ycyBtYWludGFpbmluZyBzdHJvbmdlciBjb21tdW5pY2F0aW9uLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdBREJYeWVLUzRlJyxcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+V2hhdCBpcyB0aGUgYmVzdCBzb2Z0d2FyZSBmb3IgbWFuYWdpbmcgamV3ZWxsZXJ5IGN1c3RvbWVycz88L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPiBBIHBsYXRmb3JtIHRoYXQgY29tYmluZXMgY3VzdG9tZXIgcmVjb3JkcywgZGlnaXRhbCBwYXNzYm9va3MsIGdvbGQgc2NoZW1lIG1hbmFnZW1lbnQsIHBheW1lbnQgdHJhY2tpbmcsIGFuZCBhdXRvbWF0ZWQgcmVtaW5kZXJzIGNhbiBzaW1wbGlmeSBvcGVyYXRpb25zIGFuZCBpbXByb3ZlIHJldGVudGlvbi48L3NwYW4+JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnRTRRY1M5aWVPTCcsXG4gICAgICAgIHR5cGU6ICdwYXJhZ3JhcGgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGV4dDogJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPkRvIGdvbGQgc2F2aW5ncyBzY2hlbWVzIGhlbHAgY3VzdG9tZXIgbG95YWx0eT88L3NwYW4+PHNwYW4gc3R5bGU9XCJmb250LXNpemU6MTFwdDtmb250LWZhbWlseTpBcmlhbCxzYW5zLXNlcmlmO2NvbG9yOiMwMDAwMDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpwcmU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7XCI+PC9zcGFuPjxzcGFuIHN0eWxlPVwiZm9udC1zaXplOjExcHQ7Zm9udC1mYW1pbHk6QXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMDAwMDAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7d2hpdGUtc3BhY2U6cHJlO3doaXRlLXNwYWNlOnByZS13cmFwO1wiPiBZZXMuIFRoZXkgZW5jb3VyYWdlIHJlZ3VsYXIgbW9udGhseSBpbnRlcmFjdGlvbiwgaW1wcm92ZSByZXRlbnRpb24sIGFuZCBpbmNyZWFzZSB0aGUgbGlrZWxpaG9vZCBvZiBmdXR1cmUgcHVyY2hhc2VzLjwvc3Bhbj4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdkdlhFRmZfQTRCJyxcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiAnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnBhc3Nib29rYXBwLmluL2RlbW9cIj5Cb29rIGEgRnJlZSBEZW1vPC9hPicsXG4gICAgICAgICAgbGV2ZWw6IDIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAgY3JlYXRlZEJ5OiAnUmFqJyxcbiAgICBwb3N0U3VtbWFyeTpcbiAgICAgICdEaXNjb3ZlciAxNSBwcm92ZW4gc3RyYXRlZ2llcyB0byBpbmNyZWFzZSByZXBlYXQgY3VzdG9tZXJzIGluIHlvdXIgamV3ZWxsZXJ5IHN0b3JlIHVzaW5nIGdvbGQgc2NoZW1lcywgV2hhdHNBcHAgcmVtaW5kZXJzLCBjdXN0b21lciByZXRlbnRpb24gc29mdHdhcmUsIGFuZCBkaWdpdGFsIGN1c3RvbWVyIG1hbmFnZW1lbnQuJyxcbiAgICBwb3N0VGl0bGU6ICdIb3cgdG8gSW5jcmVhc2UgUmVwZWF0IEN1c3RvbWVycyBpbiBhIEpld2VsbGVyeSBTdG9yZScsXG4gICAgbmV3UG9zdFRpdGxlOiAnSG93LXRvLUluY3JlYXNlLVJlcGVhdC1DdXN0b21lcnMtaW4tYS1KZXdlbGxlcnktU3RvcmUnLFxuICAgIGJsb2dNZXRhOiB7XG4gICAgICBtZXRhVGl0bGU6ICdIb3cgdG8gSW5jcmVhc2UgUmVwZWF0IEN1c3RvbWVycyBpbiBhIEpld2VsbGVyeSBTdG9yZScsXG4gICAgICBtZXRhRGVzY3JpcHRpb246IHtcbiAgICAgICAgbmFtZTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgY29udGVudDpcbiAgICAgICAgICAnRGlzY292ZXIgMTUgcHJvdmVuIHN0cmF0ZWdpZXMgdG8gaW5jcmVhc2UgcmVwZWF0IGN1c3RvbWVycyBpbiB5b3VyIGpld2VsbGVyeSBzdG9yZSB1c2luZyBnb2xkIHNjaGVtZXMsIFdoYXRzQXBwIHJlbWluZGVycywgY3VzdG9tZXIgcmV0ZW50aW9uIHNvZnR3YXJlLCBhbmQgZGlnaXRhbCBjdXN0b21lciBtYW5hZ2VtZW50LicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3JlYXRlZFRpbWVTdGFtcDogJzIwMjYtMDctMjJUMTI6MDk6MDkuMDAwKzAwOjAwJyxcbiAgICBwdWJsaXNoZWREYXRlOiBudWxsLFxuICAgIGJsb2dTY2hlZHVsZWREYXRlOiAnMjAyNi0wNy0yMlQwMDowMDowMC4wMDArMDA6MDAnLFxuICAgIGJsb2dTY2hlZHVsZVRpbWU6ICcxNzo0MDoyMCcsXG4gICAga2V5V29yZHM6IHtcbiAgICAgIG5hbWU6ICdrZXl3b3JkcycsXG4gICAgICBjb250ZW50OlxuICAgICAgICAnV2hhdHNBcHAgQ1JNLFdoYXRzQXBwIG1hcmtldGluZyBmb3IgamV3ZWxsZXJzLEpld2VsbGVyeSBXaGF0c0FwcCByZW1pbmRlcnMsSmV3ZWxsZXJ5IEJ1c2luZXNzIEdyb3d0aCcsXG4gICAgfSxcbiAgICBhdXRob3I6IHtcbiAgICAgIG5hbWU6ICdhdXRob3InLFxuICAgICAgY29udGVudDogJ1Bhc3Nib29rYXBwJyxcbiAgICB9LFxuICAgIGJsb2dTdGF0dXM6ICdQVUJMSVNIJyxcbiAgICBibG9nVHlwZTogJ0JVU0lORVNTJyxcbiAgfTtcblxuICB0b2NJdGVtczogVG9jSXRlbVtdID0gW107XG4gIHRvY09wZW4gPSBmYWxzZTtcbiAgYWN0aXZlVG9jSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZGluZ0Jsb2NrSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xuICBwcml2YXRlIHRvY09ic2VydmVyPzogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IG9iamVjdFxuICApIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5idWlsZFRhYmxlT2ZDb250ZW50cygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydyZXNwb25zZURhdGEnXSAmJiAhY2hhbmdlc1sncmVzcG9uc2VEYXRhJ10uaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICB0aGlzLmJ1aWxkVGFibGVPZkNvbnRlbnRzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0dXBTY3JvbGxTcHkoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudG9jT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIGVkaXRTZWN0aW9uKCkge1xuICAgIC8vIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHNjcm9sbFRvQmxvY2soZXZlbnQ6IEV2ZW50LCBibG9ja0lkOiBzdHJpbmcpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAucXVlcnlTZWxlY3RvcihgI2Jsb2NrLSR7YmxvY2tJZH1gKVxuICAgICAgPy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdzdGFydCcgfSk7XG4gICAgdGhpcy50b2NPcGVuID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkVGFibGVPZkNvbnRlbnRzKCkge1xuICAgIGNvbnN0IGJsb2NrczogQmxvZ0Jsb2NrW10gPSB0aGlzLnJlc3BvbnNlRGF0YT8uYmxvY2tzIHx8IFtdO1xuICAgIHRoaXMuaGVhZGluZ0Jsb2NrSWRzLmNsZWFyKCk7XG4gICAgdGhpcy50b2NJdGVtcyA9IGJsb2Nrc1xuICAgICAgLm1hcChibG9jayA9PiB0aGlzLmdldEhlYWRpbmdDYW5kaWRhdGUoYmxvY2spKVxuICAgICAgLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgVG9jSXRlbSA9PiAhIWl0ZW0pO1xuICAgIHRoaXMudG9jSXRlbXMuZm9yRWFjaChpdGVtID0+IHRoaXMuaGVhZGluZ0Jsb2NrSWRzLmFkZChpdGVtLmlkKSk7XG5cbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIC8vIFJlLWF0dGFjaCB0aGUgc2Nyb2xsIHNweSBzaW5jZSB0aGUgYW5jaG9ycyBpdCB3YXRjaGVzIGp1c3QgY2hhbmdlZC5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXR1cFNjcm9sbFNweSgpKTtcbiAgICB9XG4gIH1cblxuICBpc1RvY0FuY2hvcihibG9ja0lkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oZWFkaW5nQmxvY2tJZHMuaGFzKGJsb2NrSWQpO1xuICB9XG5cbiAgaGFzVmlzaWJsZVRleHQoaHRtbDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaXBIdG1sKGh0bWwpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcml2YXRlIGdldEhlYWRpbmdDYW5kaWRhdGUoYmxvY2s6IEJsb2dCbG9jayk6IFRvY0l0ZW0gfCBudWxsIHtcbiAgICBpZiAoIWJsb2NrPy5pZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGJsb2NrLnR5cGUgPT09ICdoZWFkZXInKSB7XG4gICAgICBjb25zdCBsZXZlbCA9IChibG9jay5kYXRhPy5bJ2xldmVsJ10gYXMgbnVtYmVyKSB8fCAyO1xuICAgICAgY29uc3QgdGV4dCA9IHRoaXMuc3RyaXBIdG1sKGJsb2NrLmRhdGE/LlsndGV4dCddIGFzIHN0cmluZyB8IHVuZGVmaW5lZCk7XG4gICAgICBpZiAobGV2ZWwgPD0gMSB8fCAhdGV4dCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGlkOiBibG9jay5pZCwgdGV4dCB9O1xuICAgIH1cblxuICAgIGlmIChibG9jay50eXBlID09PSAncGFyYWdyYXBoJykge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm9sZFBhcmFncmFwaEhlYWRpbmcoYmxvY2spO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCb2xkUGFyYWdyYXBoSGVhZGluZyhibG9jazogQmxvZ0Jsb2NrKTogVG9jSXRlbSB8IG51bGwge1xuICAgIGNvbnN0IGh0bWwgPSAoYmxvY2suZGF0YT8uWyd0ZXh0J10gYXMgc3RyaW5nKSB8fCAnJztcbiAgICBpZiAoIWh0bWwuaW5jbHVkZXMoJzxzcGFuJykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHNwYW5SZWdleCA9IC88c3BhbihbXj5dKik+KFtcXHNcXFNdKj8pPFxcL3NwYW4+L2c7XG4gICAgbGV0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsO1xuICAgIGxldCBib2xkVGV4dCA9ICcnO1xuICAgIGxldCBub25Cb2xkVGV4dCA9ICcnO1xuICAgIGxldCBtYXhGb250U2l6ZVB0ID0gMDtcblxuICAgIHdoaWxlICgobWF0Y2ggPSBzcGFuUmVnZXguZXhlYyhodG1sKSkpIHtcbiAgICAgIGNvbnN0IHN0eWxlID0gbWF0Y2hbMV07XG4gICAgICBjb25zdCBpbm5lclRleHQgPSB0aGlzLnN0cmlwSHRtbChtYXRjaFsyXSk7XG4gICAgICBjb25zdCBpc0JvbGQgPSAvZm9udC13ZWlnaHQ6XFxzKihib2xkfFs2LTldMDApL2kudGVzdChzdHlsZSk7XG4gICAgICBjb25zdCBzaXplTWF0Y2ggPSBzdHlsZS5tYXRjaCgvZm9udC1zaXplOlxccyooW1xcZC5dKylwdC9pKTtcbiAgICAgIGlmIChzaXplTWF0Y2gpIHtcbiAgICAgICAgbWF4Rm9udFNpemVQdCA9IE1hdGgubWF4KG1heEZvbnRTaXplUHQsIHBhcnNlRmxvYXQoc2l6ZU1hdGNoWzFdKSk7XG4gICAgICB9XG4gICAgICBpZiAoaXNCb2xkKSB7XG4gICAgICAgIGJvbGRUZXh0ICs9IGlubmVyVGV4dDtcbiAgICAgIH0gZWxzZSBpZiAoaW5uZXJUZXh0KSB7XG4gICAgICAgIG5vbkJvbGRUZXh0ICs9IGlubmVyVGV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB0ZXh0ID0gYm9sZFRleHQudHJpbSgpO1xuICAgIC8vIE1peGVkIGJvbGQvcGxhaW4gdGV4dCBpcyBhbiBlbXBoYXNpemVkIHBocmFzZSBpbnNpZGUgYSBub3JtYWwgcGFyYWdyYXBoLCBub3QgYSBoZWFkaW5nLlxuICAgIGlmICghdGV4dCB8fCBub25Cb2xkVGV4dC50cmltKCkgfHwgdGV4dC5sZW5ndGggPiAxMjApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvLyBUaXRsZS1zaXplZCBib2xkIHRleHQgKD49MTZwdCwgbWF0Y2hpbmcgdGhlIGFydGljbGUncyBvd24gaGVhZGluZykgaXNuJ3QgYSBUT0MgZW50cnkuXG4gICAgaWYgKG1heEZvbnRTaXplUHQgPj0gMTYpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7IGlkOiBibG9jay5pZCwgdGV4dCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdHJpcEh0bWwoaHRtbDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWh0bWwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIGh0bWxcbiAgICAgIC5yZXBsYWNlKC88W14+XSo+L2csICcnKVxuICAgICAgLnJlcGxhY2UoLyZuYnNwOy9nLCAnICcpXG4gICAgICAucmVwbGFjZSgvJmFtcDsvZywgJyYnKVxuICAgICAgLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTY3JvbGxTcHkoKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRvY09ic2VydmVyPy5kaXNjb25uZWN0KCk7XG5cbiAgICBjb25zdCBhbmNob3JzID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcbiAgICAgICAgJy50b2MtYW5jaG9yJ1xuICAgICAgKVxuICAgICk7XG4gICAgaWYgKCFhbmNob3JzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9jT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICBlbnRyaWVzID0+IHtcbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IGVudHJpZXMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgaWYgKHZpc2libGUubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVUb2NJZCA9IHZpc2libGVbMF0udGFyZ2V0LmlkLnJlcGxhY2UoJ2Jsb2NrLScsICcnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcm9vdE1hcmdpbjogJzBweCAwcHggLTcwJSAwcHgnIH1cbiAgICApO1xuICAgIGFuY2hvcnMuZm9yRWFjaChhbmNob3IgPT4gdGhpcy50b2NPYnNlcnZlcj8ub2JzZXJ2ZShhbmNob3IpKTtcbiAgfVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJtYWluLXNlY3Rpb25cIj5cbiAgPGRpdiBjbGFzcz1cImJsb2ctY29udGFpbmVyXCI+XG4gICAgPGgxIGNsYXNzPVwiYmxvZy10aXRsZVwiICpuZ0lmPVwicmVzcG9uc2VEYXRhPy5wb3N0VGl0bGVcIj5cbiAgICAgIHt7IHJlc3BvbnNlRGF0YS5wb3N0VGl0bGUgfX1cbiAgICA8L2gxPlxuXG4gICAgPGRpdiBjbGFzcz1cIm1ldGEtYmFyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS1sYWJlbFwiPlB1YmxpY2F0aW9uIERhdGU8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS12YWx1ZVwiPnt7XG4gICAgICAgICAgcmVzcG9uc2VEYXRhPy5wdWJsaXNoZWREYXRlIHx8XG4gICAgICAgICAgICByZXNwb25zZURhdGE/LmJsb2dTY2hlZHVsZWREYXRlIHx8XG4gICAgICAgICAgICByZXNwb25zZURhdGE/LmNyZWF0ZWRUaW1lU3RhbXAgfCBkYXRlOiAnZCBNTU1NIHknXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS1sYWJlbFwiPkF1dGhvcjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXRhLXZhbHVlXCI+e3tcbiAgICAgICAgICByZXNwb25zZURhdGE/LmF1dGhvcj8uY29udGVudCB8fCAn4oCUJ1xuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5SZWFkIFRpbWU8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS12YWx1ZVwiXG4gICAgICAgICAgPnt7IHJlc3BvbnNlRGF0YT8ucmVhZFRpbWUgfHwgJ+KAlCcgfX0gbWluIHJlYWQ8L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS1sYWJlbFwiPlZpZXdzPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdmFsdWVcIj57eyByZXNwb25zZURhdGE/LnRvdGFsVmlzaXRzIHx8IDAgfX0rPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYmxvZy1sYXlvdXRcIiBbY2xhc3Mud2l0aC10b2NdPVwidG9jSXRlbXMubGVuZ3RoID4gMVwiPlxuICAgICAgPGFzaWRlIGNsYXNzPVwidG9jLXNpZGViYXJcIiAqbmdJZj1cInRvY0l0ZW1zLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwidG9jLXRvZ2dsZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInRvY09wZW4gPSAhdG9jT3BlblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJ0b2NPcGVuXCI+XG4gICAgICAgICAgPHNwYW4+VGFibGUgT2YgQ29udGVudDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvYy10b2dnbGUtaWNvblwiIFtjbGFzcy5vcGVuXT1cInRvY09wZW5cIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9jLWhlYWRlclwiPlRhYmxlIE9mIENvbnRlbnQ8L2Rpdj5cbiAgICAgICAgPG5hdiBjbGFzcz1cInRvYy1saXN0XCIgW2NsYXNzLm9wZW5dPVwidG9jT3BlblwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdG9jIG9mIHRvY0l0ZW1zXCJcbiAgICAgICAgICAgIGNsYXNzPVwidG9jLWxpbmtcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUb2NJZCA9PT0gdG9jLmlkXCJcbiAgICAgICAgICAgIFtocmVmXT1cIicjYmxvY2stJyArIHRvYy5pZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2Nyb2xsVG9CbG9jaygkZXZlbnQsIHRvYy5pZClcIj5cbiAgICAgICAgICAgIHt7IHRvYy50ZXh0IH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvYXNpZGU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJibG9nLWRldGFpbHNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXNwb25zZURhdGE/LmJsb2Nrc1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdoZWFkZXInICYmIGhhc1Zpc2libGVUZXh0KGl0ZW0uZGF0YT8udGV4dClcIlxuICAgICAgICAgICAgW2lkXT1cIidibG9jay0nICsgaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MudG9jLWFuY2hvcl09XCJpc1RvY0FuY2hvcihpdGVtLmlkKVwiPlxuICAgICAgICAgICAgPGgxICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDFcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oMT5cbiAgICAgICAgICAgIDxoMiAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSAyXCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDI+XG4gICAgICAgICAgICA8aDMgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gM1wiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2gzPlxuICAgICAgICAgICAgPGg0ICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDRcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oND5cbiAgICAgICAgICAgIDxoNSAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSA1XCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDU+XG4gICAgICAgICAgICA8aDYgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gNlwiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2g2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdwYXJhZ3JhcGgnICYmIGhhc1Zpc2libGVUZXh0KGl0ZW0uZGF0YT8udGV4dClcIlxuICAgICAgICAgICAgW2lkXT1cIidibG9jay0nICsgaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MudG9jLWFuY2hvcl09XCJpc1RvY0FuY2hvcihpdGVtLmlkKVwiPlxuICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgY2xhc3M9XCJpbm5lci10ZXh0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmhlYWRpbmctcGFyYWdyYXBoXT1cImlzVG9jQW5jaG9yKGl0ZW0uaWQpXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09ICdsaXN0J1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZGF0YS5zdHlsZSA9PSAnb3JkZXJlZCdcIj5cbiAgICAgICAgICAgICAgPG9sIGNsYXNzPVwibGlzdC1zdHlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpc3Qgb2YgaXRlbS5kYXRhLml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICA8bGkgW2lubmVySFRNTF09XCJsaXN0XCI+PC9saT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZGF0YS5zdHlsZSA9PSAndW5vcmRlcmVkJ1wiPlxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGlzdCBvZiBpdGVtLmRhdGEuaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgIDxsaSBbaW5uZXJIVE1MXT1cImxpc3RcIj48L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAnZGVsaW1pdGVyJ1wiIGNsYXNzPVwiY2UtZGVsaW1pdGVyXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAnaW1hZ2UnXCIgY2xhc3M9XCJpbWFnZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0uZGF0YS5maWxlLnVybFwiXG4gICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09ICd0YWJsZSdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDx0YWJsZVxuICAgICAgICAgICAgICAgIFtjbGFzcy50YWJsZS1uby1oZWFkaW5nXT1cIml0ZW0uZGF0YS53aXRoSGVhZGluZ3MgPT09IGZhbHNlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGF0YSBvZiBpdGVtLmRhdGEuY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQgW2lubmVySFRNTF09XCJpdGVtXCI+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
517
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1ibG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvdmlldy1ibG9nL3ZpZXctYmxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL3ZpZXctYmxvZy92aWV3LWJsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBRUwsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBSUwsV0FBVyxHQUVaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7OztBQXFCaEgsTUFBTSxPQUFPLGlCQUFpQjtJQWdWNUIsWUFDbUIsYUFBNEIsRUFDNUIsV0FBd0IsRUFDeEIsV0FBb0MsRUFDaEMsVUFBa0I7UUFIdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBalY5QyxpQkFBWSxHQUFRO1lBQzNCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsV0FBVyxFQUFFLFFBQVE7WUFDckIsYUFBYSxFQUFFLHNGQUFzRjtZQUNyRyxrQkFBa0IsRUFBRSwrQkFBK0I7WUFDbkQsVUFBVSxFQUFFLEdBQUc7WUFDZixXQUFXLEVBQUUsR0FBRztZQUNoQixhQUFhLEVBQUUsQ0FBQztZQUNoQixJQUFJLEVBQUUsc0NBQXNDO1lBQzVDLFlBQVksRUFBRSxzQ0FBc0M7WUFDcEQsTUFBTSxFQUFFLENBQUM7WUFDVCxTQUFTLEVBQUUsRUFBRTtZ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TyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUMsRUFDRCxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxDQUNuQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzsrR0F4aEJVLGlCQUFpQixvR0FvVmxCLFdBQVc7bUdBcFZWLGlCQUFpQiwwSUNwQzlCLDgyS0F3SUEscWlKRHhHWSxZQUFZLGdYQUFZLDhCQUE4Qjs7NEZBSXJELGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLDhCQUE4QixDQUFDOzswQkF3VjlELE1BQU07MkJBQUMsV0FBVzt5Q0FsVlosWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBQTEFURk9STV9JRCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZWNlbnRCbG9nUG9zdFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9yZWNlbnQtYmxvZy1wb3N0LXNlY3Rpb24vcmVjZW50LWJsb2ctcG9zdC1zZWN0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5pbnRlcmZhY2UgVG9jSXRlbSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgbGV2ZWw6IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIEJsb2dCbG9jayB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXZpZXctYmxvZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgUmVjZW50QmxvZ1Bvc3RTZWN0aW9uQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy1ibG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdmlldy1ibG9nLmNvbXBvbmVudC5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld0Jsb2dDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YTogYW55ID0ge1xyXG4gICAgXCJzdWJJbmR1c3RyeUlkXCI6IG51bGwsXHJcbiAgICBcInN1YkluZHVzdHJ5TmFtZVwiOiBcIlwiLFxyXG4gICAgXCJkaXNwbGF5SWRcIjogXCJCRzE3ODRcIixcclxuICAgIFwiYXJ0aWNsZVNsdWdcIjogXCJDYXNlLVN0dWR5LUhvdy1hLUpld2VsbGVyeS1SZXRhaWxlci1JbmNyZWFzZWQtLUN1c3RvbWVyLUVuZ2FnZW1lbnQtVXNpbmctUGFzc2Jvb2tBcHBcIixcclxuICAgIFwidXBkYXRlZFRpbWVTdGFtcFwiOiBcIjIwMjYtMDgtMDRUMTE6NTk6MjQuMDAwKzAwOjAwXCIsXHJcbiAgICBcInJlYWRUaW1lXCI6IFwiM1wiLFxyXG4gICAgXCJ3b3JkQ291bnRcIjogNjM0LFxyXG4gICAgXCJ0b3RhbFZpc2l0c1wiOiAwLFxyXG4gICAgXCJpZFwiOiBcIjFmMThmZmJkLTNmOTgtNjVjMy1hMzc3LTlkMjlhNzgxYjk3OFwiLFxyXG4gICAgXCJidXNpbmVzc0lkXCI6IFwiMWYxOTU2N2EtY2UyNi02NzkwLThhMTQtYzc4NmZjMDg0YTgyXCIsXHJcbiAgICBcInRpbWVcIjogMCxcclxuICAgIFwidmVyc2lvblwiOiBcIlwiLFxyXG4gICAgXCJibG9ja3NcIjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcInUyelI0UTdBVXlcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiQ2FzZSBTdHVkeTogSG93IGEgSmV3ZWxsZXJ5IFJldGFpbGVyIEluY3JlYXNlZCBDdXN0b21lciBFbmdhZ2VtZW50IGJ5IDQwJSBVc2luZyBQYXNzYm9va0FwcFwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAxXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIjBVSjFXcWRWZm5cIixcclxuICAgICAgICBcInR5cGVcIjogXCJpbWFnZVwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcImNhcHRpb25cIjogXCJcIixcclxuICAgICAgICAgIFwid2l0aEJvcmRlclwiOiBmYWxzZSxcclxuICAgICAgICAgIFwid2l0aEJhY2tncm91bmRcIjogZmFsc2UsXHJcbiAgICAgICAgICBcInN0cmV0Y2hlZFwiOiBmYWxzZSxcclxuICAgICAgICAgIFwiZmlsZVwiOiB7XHJcbiAgICAgICAgICAgIFwidXJsXCI6IFwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9pbWFnZXMvMTY5NzUyYzE3ODU4NDQzNTA0NzNDaGF0R1BUJTIwSW1hZ2UlMjBBdWclMjA0JTJDJTIwMjAyNiUyQyUyMDA1XzIyXzE4JTIwUE0ucG5nXCIsXHJcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IFwiNTAwcHhcIlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJZSE96bWk1WGc3XCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPkluIHRvZGF54oCZcyBmYXN0LXBhY2VkIHJldGFpbCBtYXJrZXQsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBidWlsZGluZyBsb25nLXRlcm0gY3VzdG9tZXIgbG95YWx0eSBhbmQgbWFpbnRhaW5pbmcgYWN0aXZlIGVuZ2FnZW1lbnQgaXMgYSBtYWpvciBodXJkbGUgZm9yIHRyYWRpdGlvbmFsIGpld2VsZXJzLjwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gV2hpbGUgZ29sZCBhbmQgc2lsdmVyIHNhdmluZyBzY2hlbWVzIChsaWtlIDEwKzEgbW9udGhseSBkZXBvc2l0IHBsYW5zKSBoYXZlIGxvbmcgYmVlbiB0aGUgYmFja2JvbmUgb2YgY3VzdG9tZXIgYWNxdWlzaXRpb24sPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBtYW5hZ2luZyB0aGVtIHRocm91Z2ggdHJhZGl0aW9uYWwgcGFwZXIgcGFzc2Jvb2tzIG9mdGVuIGxlYWRzIHRvIGxvdyBlbmdhZ2VtZW50LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gbWlzc2VkIHBheW1lbnRzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gbG9zdCBwaHlzaWNhbCBib29rcyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGFuZCB1bHRpbWF0ZSBkcm9wLW9mZnMuPC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIm1vdUVicmZ4N3lcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+Rm9yIG11bHRpLWxvY2F0aW9uIHJldGFpbGVycyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRoZXNlIGNoYWxsZW5nZXMgYXJlIGFtcGxpZmllZC48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IFBoeXNpY2FsIHJlZ2lzdGVycyBhbmQgbWFudWFsIGZvbGxvdy11cHMgYXQgZWFjaCBzdG9yZSBtYWtlIGNyZWF0aW5nIGEgdW5pZmllZCB2aWV3IG9mIHRoZSBjdXN0b21lciBsZXQgYWxvbmUgdGhlIGJ1c2luZXNzIHZpcnR1YWxseSBpbXBvc3NpYmxlLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJNN1luODZJZ2pSXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPlRoaXMgPC9zcGFuPjxiPmpld2VsbGVyeSBjdXN0b21lciBlbmdhZ2VtZW50IGNhc2Ugc3R1ZHk8L2I+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGRlbW9uc3RyYXRlcyBob3cgYSBwcm9taW5lbnQgcmV0YWlsIGpld2VsZXIgbGV2ZXJhZ2VkIDwvc3Bhbj48Yj5QYXNzYm9va0FwcCZuYnNwOzwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj5hIG1vZGVybiA8L3NwYW4+PGI+ZGlnaXRhbCBwYXNzYm9vayBmb3IgamV3ZWxsZXJ5IHN0b3JlczwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4mbmJzcDt0byBvdmVyaGF1bCB0aGVpciBvcGVyYXRpb25zLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYXV0b21hdGUgY3VzdG9tZXIgY29tbXVuaWNhdGlvbiB2aWEgV2hhdHNBcHAsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgZHJpdmUgc2lnbmlmaWNhbnQgYnVzaW5lc3MgZ3Jvd3RoLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCItdzVXc241NG1aXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIkZlYXR1cmVkIFN1Y2Nlc3MgU3Rvcnk6IEhvdyBQYXNzYm9va0FwcCBUb29rIExhZ3UgQmFuZGh1IEpld2VsbGVycyBmcm9tIFJlZ2lzdGVycyB0byBSZWFsLVRpbWVcIixcclxuICAgICAgICAgIFwibGV2ZWxcIjogMlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJ1ZFVFVFB6OXNOXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2VcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJjYXB0aW9uXCI6IFwiXCIsXHJcbiAgICAgICAgICBcIndpdGhCb3JkZXJcIjogZmFsc2UsXHJcbiAgICAgICAgICBcIndpdGhCYWNrZ3JvdW5kXCI6IGZhbHNlLFxyXG4gICAgICAgICAgXCJzdHJldGNoZWRcIjogZmFsc2UsXHJcbiAgICAgICAgICBcImZpbGVcIjoge1xyXG4gICAgICAgICAgICBcInVybFwiOiBcImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vaW1hZ2VzLzc2NzA0NGMxNzg1ODQzODQ4MjIwU2xpZGUlMjAxNl85JTIwLSUyMDElMjAlMjg0JTI5LnBuZ1wiLFxyXG4gICAgICAgICAgICBcImhlaWdodFwiOiBcIjUwMHB4XCJcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiUEpWVUFocUw1NlwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5MYWd1IEJhbmRodSBKZXdlbGxlcnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhIGxlZ2FjeSBicmFuZCBzaW5jZSAxOTM2IHdpdGggbXVsdGlwbGUgc3RvcmUgbG9jYXRpb25zLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gZmFjZWQgYSBjcml0aWNhbCBvcGVyYXRpb25hbCBib3R0bGVuZWNrLjwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gTWFuYWdpbmcgamV3ZWxsZXJ5IHNhdmluZyBzY2hlbWVzIGFjcm9zcyBudW1lcm91cyBicmFuY2hlcyB1c2luZyBwaHlzaWNhbCByZWdpc3RlcnMgbWVhbnQgcGF5bWVudHMgd2VyZSBkaWZmaWN1bHQgdG8gdHJhY2sgY2VudHJhbGx5LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gZm9sbG93LXVwcyB3ZXJlIGRvbmUgbWFudWFsbHksPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgYSBzaW5nbGUsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiB1bmlmaWVkIHZpZXcgb2YgdGhlIGJ1c2luZXNzIHdhcyBtaXNzaW5nLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJoenpGZHZTazZmXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxzcGFuIGNsYXNzPVxcXCJcXFwiPlRoZXkgaW1wbGVtZW50ZWQgUGFzc2Jvb2tBcHAgYXMgdGhlaXIgZGVkaWNhdGVkIDwvc3Bhbj48Yj5qZXdlbGxlcnkgY3VzdG9tZXIgcmV0ZW50aW9uIHNvZnR3YXJlPC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiB0byByZXBsYWNlIHRoZWlyIGVudGlyZSBwYXBlci1iYXNlZCBzeXN0ZW0gd2l0aCBvbmUgZGlnaXRhbCB3b3JrZmxvdyB3aXRob3V0IGRpc3J1cHRpbmcgZXhpc3Rpbmcgb3BlcmF0aW9ucy48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiNGZwQ21xNGEwS1wiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5UaGlzIDwvc3Bhbj48Yj5qZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCBjYXNlIHN0dWR5PC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBoaWdobGlnaHRzIHRoZSBzcGVjaWZpYyBvdXRjb21lcyBhY2hpZXZlZCBieSBMYWd1IEJhbmRodSB3aXRoIHRoZSBwbGF0Zm9ybTo8L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwid0IzX2E1eFJRLVwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcImxpc3RcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJzdHlsZVwiOiBcInVub3JkZXJlZFwiLFxyXG4gICAgICAgICAgXCJpdGVtc1wiOiBbXHJcbiAgICAgICAgICAgIFwiPGI+Q3VzdG9tZXIgQ29udmVuaWVuY2UgdmlhIERpZ2l0YWwgUGF5bWVudHM6PC9iPiBBIGtleSBmZWF0dXJlIHdhcyBlbmFibGluZyBjdXN0b21lcnMgdG8gcGF5IGZvciB0aGVpciBtb250aGx5IHNjaGVtZXMgZGlnaXRhbGx5LCBjb21wbGV0ZWx5IGVsaW1pbmF0aW5nIHRoZSBuZWVkIGZvciBhIHN0b3JlIHZpc2l0LlwiLFxyXG4gICAgICAgICAgICBcIjxiPkNlbnRyYWxpemVkIE11bHRpLUxvY2F0aW9uIFZpZXc6PC9iPiBNYW5hZ2VtZW50IG5vdyBoYXMgYSByZWFsLXRpbWUsIGNlbnRyYWxpemVkIHNjaGVtZSB2aWV3IGFjcm9zcyBhbGwgc3RvcmUgbG9jYXRpb25zLCBhIGNydWNpYWwgZWxlbWVudCBvZiB0aGVpciA8Yj5kaWdpdGFsIHRyYW5zZm9ybWF0aW9uIGluIGpld2VsbGVyeSByZXRhaWw8L2I+LlwiLFxyXG4gICAgICAgICAgICBcIjxiPlN0cmVhbWxpbmVkIE9wZXJhdGlvbnM6PC9iPiBNYW51YWwgdHJhY2tpbmcgYW5kIGV4Y2Vzc2l2ZSBwYXBlcndvcmsgaGF2ZSBiZWVuIG5lYXJseSBlbGltaW5hdGVkLCBvcHRpbWl6aW5nIHN0YWZmIHRpbWUgZm9yIHNhbGVzLlwiXHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImlPV2hIeHJVR3hcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+UmVmbGVjdGluZyBvbiB0aGUgaW1wbGVtZW50YXRpb24sPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBNci48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IFBhcmFnIExhZ3UsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBEaXJlY3RvciBvZiBMYWd1IEJhbmRodSw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IG5vdGVkOjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCIwNm1MVUZleGRLXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxpPuKAnEFmdGVyIG1vcmUgdGhhbiB0d28geWVhcnMgd2l0aCBQYXNzYm9va0FQUCwgSSBjYW4gY29uZmlkZW50bHkgc2F5IGl04oCZcyBiZWVuIGFuIG91dHN0YW5kaW5nIGV4cGVyaWVuY2UuIFRoZWlyIHN1cHBvcnQgdGVhbSBpcyByZXNwb25zaXZlLCBrbm93bGVkZ2VhYmxlLCBhbmQgdHJ1bHkgY29tbWl0dGVkIHRvIG91ciBncm93dGguIEFueSBqZXdlbGVyIGxvb2tpbmcgdG8gc3RyZWFtbGluZSB0aGVpciBvcGVyYXRpb25zIHdvdWxkIGJlIHdpc2UgdG8gY29uc2lkZXIgUGFzc2Jvb2tBUFAu4oCdPC9pPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIjFoVnh2WVUtb0VcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiVGhlIENoYWxsZW5nZTogRnJpY3Rpb24gaW4gVHJhZGl0aW9uYWwgSmV3ZWxsZXJ5IFNhdmluZ3MgU2NoZW1lc1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImRtZkVKZ294Q1pcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+TGFndSBCYW5kaHUncyBleHBlcmllbmNlIHBlcmZlY3RseSBtaXJyb3JzIHRoZSBsYXJnZXIgb3BlcmF0aW9uYWwgY2hhbGxlbmdlIGZhY2VkIGJ5IHRoZSBpbmR1c3RyeS48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IEJlZm9yZSBwYXJ0bmVyaW5nIHdpdGggUGFzc2Jvb2tBcHAsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiB0cmFkaXRpb25hbCBtZXRob2RzIGNyZWF0ZWQgYSBwb29yIDwvc3Bhbj48Yj5qZXdlbGxlcnkgY3VzdG9tZXIgZXhwZXJpZW5jZTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj46PC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImFwZ1ViS1BPT3dcIixcclxuICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwic3R5bGVcIjogXCJ1bm9yZGVyZWRcIixcclxuICAgICAgICAgIFwiaXRlbXNcIjogW1xyXG4gICAgICAgICAgICBcIjxiPkhpZ2ggRHJvcC1vZmYgUmF0ZXM6PC9iPiBDdXN0b21lcnMgZnJlcXVlbnRseSBmb3Jnb3QgbW9udGhseSBpbnN0YWxsbWVudHMsIGxlYWRpbmcgdG8gbGFwc2VkIGFjY291bnRzLlwiLFxyXG4gICAgICAgICAgICBcIjxiPkxhY2sgb2YgVmlzaWJpbGl0eTo8L2I+IEN1c3RvbWVycyBjb3VsZG7igJl0IHRyYWNrIHRoZWlyIGFjY3VtdWxhdGVkIGJhbGFuY2Ugb3IgZ29sZCB3ZWlnaHQgaW4gcmVhbC10aW1lLCBkZWNyZWFzaW5nIHRoZWlyIGVtb3Rpb25hbCBpbnZlc3RtZW50IGluIHRoZSBzY2hlbWUuXCIsXHJcbiAgICAgICAgICAgIFwiPGI+TWFudWFsIEFkbWluaXN0cmF0aXZlIEJ1cmRlbjo8L2I+IFN0YWZmIHNwZW50IGNvdW50bGVzcyBob3VycyBhbnN3ZXJpbmcgYmFsYW5jZSBpbnF1aXJpZXMsIGlzc3VpbmcgcmVjZWlwdHMsIGFuZCBtYWtpbmcgbWFudWFsIHJlbWluZGVyIGNhbGxzLlwiLFxyXG4gICAgICAgICAgICBcIjxiPldlYWsgUG9zdC1NYXR1cml0eSBFbmdhZ2VtZW50OjwvYj4gT25jZSBhIHNhdmluZ3Mgc2NoZW1lIG1hdHVyZWQsIHJlZGVlbWluZyB0aGUgZmluYWwgcHJvZHVjdCBmZWx0IHRyYW5zYWN0aW9uYWwgcmF0aGVyIHRoYW4gcmV3YXJkaW5nLCBsZWFkaW5nIHRvIGxvdyByZXBlYXQgZW5nYWdlbWVudC5cIlxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCIxT3hxNlQwVGhkXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIlRoZSBTb2x1dGlvbjogRGlnaXRhbCBUcmFuc2Zvcm1hdGlvbiB3aXRoIFBhc3Nib29rQXBwXCIsXHJcbiAgICAgICAgICBcImxldmVsXCI6IDJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiY0NwclVjOVA3OFwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5UaGUgaW1wbGVtZW50YXRpb24gYXQgTGFndSBCYW5kaHUgbGV2ZXJhZ2VkIFBhc3Nib29rQXBw4oCZcyBjb21wbGV0ZSA8L3NwYW4+PGI+amV3ZWxsZXJ5IENSTSBzb2Z0d2FyZTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYW5kIDwvc3Bhbj48Yj5qZXdlbGxlcnkgbG95YWx0eSBzb2Z0d2FyZTwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gY2FwYWJpbGl0aWVzIHRvIG1vZGVybml6ZSBvcGVyYXRpb25zLjwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gQnkgaW50ZWdyYXRpbmcgdGhlc2Ugc3BlY2lmaWMgdGVjaG5vbG9naWVzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gdGhlIHJldGFpbGVyIHdhcyBhYmxlIHRvIGFjaGlldmUgc2lnbmlmaWNhbnQgZ2FpbnM6PC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImJucTJjNFhNMmhcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiMS4gRGlnaXRhbCBQYXNzYm9vayBJbXBsZW1lbnRhdGlvblwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAzXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcInZKc0lXNzUzZTJcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+UmVwbGFjaW5nIHBoeXNpY2FsIGJvb2tsZXRzIHdpdGggYSBjZW50cmFsaXplZCA8L3NwYW4+PGI+ZGlnaXRhbCBwYXNzYm9vayBmb3IgamV3ZWxsZXJ5IHN0b3JlczwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYWxsb3dlZCBjdXN0b21lcnMgdG8gdmlldyB0aGVpciB0b3RhbCBiYWxhbmNlLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gcmVhbC10aW1lIGdvbGQgd2VpZ2h0LDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gcGFpZCB2cy48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHJlbWFpbmluZyBpbnN0YWxsbWVudHMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgbWF0dXJpdHkgZGF0ZXMgb24tZGVtYW5kLjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJkZy1QSDhvNkd4XCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjIuIFdoYXRzQXBwIEF1dG9tYXRpb24gYW5kIFJlbWluZGVyc1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAzXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIlpvbmY4SFVaeHJcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+RGVwbG95aW5nIDwvc3Bhbj48Yj5qZXdlbGxlcnkgV2hhdHNBcHAgcmVtaW5kZXIgc29mdHdhcmU8L2I+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGVuc3VyZWQgY3VzdG9tZXJzIHJlY2VpdmVkIGF1dG9tYXRlZCByZWNlaXB0cyBmb3IgZGlnaXRhbCBwYXltZW50cyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRpbWVseSBpbnN0YWxsbWVudCByZW1pbmRlcnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgbWF0dXJpdHkgbm90aWZpY2F0aW9ucyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGxlYWRpbmcgdG8gYW4gODUlIGltcHJvdmVtZW50IGluIHNjaGVtZSByZW5ld2Fscy48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiOVo1ci1Oa2RJNlwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcImhlYWRlclwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCIzLiBJbnRlZ3JhdGVkIEpld2VsbGVyeSBDUk0gJmFtcDsgTWFuYWdlbWVudFwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAzXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcImgyUVY5U3k2RlpcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+UGFzc2Jvb2tBcHDigJlzIGludGVncmF0ZWQgPC9zcGFuPjxiPmpld2VsbGVyeSBtYW5hZ2VtZW50IHNvZnR3YXJlPC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBwcm92aWRlZCBhIHNpbmdsZSBkYXNoYm9hcmQgZm9yIGN1c3RvbWVyIHB1cmNoYXNlIGhpc3RvcnkgYW5kIHNjaGVtZSBwcm9ncmVzcy48L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IFRoaXMgZGF0YSBnYXZlIHN0b3JlIHN0YWZmIHBlcnNvbmFsaXplZCBpbnNpZ2h0cyB0byB1c2UgZHVyaW5nIHNob3dyb29tIHZpc2l0cy48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiaVgtMnU5UXUwOVwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcImhlYWRlclwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCJSZXN1bHRzOiBUaGUgSW1wYWN0IG9uIEN1c3RvbWVyIEVuZ2FnZW1lbnQgYW5kIEJ1c2luZXNzIEdyb3d0aFwiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIlU3emNyLWNCcFFcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+V2l0aGluIGp1c3Qgc2l4IG1vbnRocyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IHRoZSBpbXBsZW1lbnRhdGlvbnMgZHJpdmVuIGJ5IFBhc3Nib29rQXBwIGRlbGl2ZXJlZCB0cmFuc2Zvcm1hdGl2ZSBidXNpbmVzcyByZXN1bHRzOjwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJxRWoyNEZaQXljXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwibGlzdFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInN0eWxlXCI6IFwidW5vcmRlcmVkXCIsXHJcbiAgICAgICAgICBcIml0ZW1zXCI6IFtcclxuICAgICAgICAgICAgXCI8Yj40MCUgSW5jcmVhc2UgaW4gQ3VzdG9tZXIgRW5nYWdlbWVudDo8L2I+IFRoZSBkaWdpdGFsIHBhc3Nib29rIGFwcCBiZWNhbWUgYSBjcml0aWNhbCwgZGFpbHkgdG91Y2hwb2ludCBmb3IgY3VzdG9tZXJzLlwiLFxyXG4gICAgICAgICAgICBcIjxiPjg1JSBJbXByb3ZlbWVudCBpbiBTY2hlbWUgUmVuZXdhbHM6PC9iPiBBdXRvbWF0ZWQgcmVtaW5kZXJzIGVmZmVjdGl2ZWx5IGVsaW1pbmF0ZWQgbWlzc2VkIGluc3RhbGxtZW50cy5cIixcclxuICAgICAgICAgICAgXCI8Yj4zNSUgQm9vc3QgaW4gUmVwZWF0IFB1cmNoYXNlczo8L2I+IFBlcnNvbmFsaXplZCBDUk0gaW5zaWdodHMgYWxsb3dlZCB0YXJnZXRlZCBvZmZlcnMgdXBvbiBtYXR1cml0eS5cIixcclxuICAgICAgICAgICAgXCI8Yj43MCUgUmVkdWN0aW9uIGluIE9wZXJhdGlvbmFsIFdvcmtsb2FkOjwvYj4gRWxpbWluYXRpbmcgbWFudWFsIHRyYWNraW5nIGZyZWVkIHN0YWZmIGZvciBoaWdoLXZhbHVlIHNhbGVzLCBtaXJyb3JpbmcgTGFndSBCYW5kaHUncyBhZG1pbmlzdHJhdGl2ZSBzYXZpbmdzLlwiXHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIms2ckhOeDNEMWpcIixcclxuICAgICAgICBcInR5cGVcIjogXCJoZWFkZXJcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiS2V5IFRha2Vhd2F5cyBmb3IgSmV3ZWxsZXJ5IE1lcmNoYW50c1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIk1BSFFmZHZnX3NcIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+VGhlIHN1Y2Nlc3NmdWwgPC9zcGFuPjxiPmpld2VsbGVyeSBzb2Z0d2FyZSBzdWNjZXNzIHN0b3J5PC9iPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBvZiByZXRhaWxlcnMgbGlrZSBMYWd1IEJhbmRodSBwcm92ZXMgdGhhdCBtb2Rlcm5pemF0aW9uIGlzIGtleSB0byBzdXN0YWluYWJsZSA8L3NwYW4+PGI+amV3ZWxsZXJ5IGJ1c2luZXNzIGdyb3d0aDwvYj48c3BhbiBjbGFzcz1cXFwiXFxcIj46PC9zcGFuPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIjM1YTg1UnE0QzNcIixcclxuICAgICAgICBcInR5cGVcIjogXCJsaXN0XCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwic3R5bGVcIjogXCJvcmRlcmVkXCIsXHJcbiAgICAgICAgICBcIml0ZW1zXCI6IFtcclxuICAgICAgICAgICAgXCI8Yj5MZXZlcmFnZSB0aGUgUmlnaHQgVGVjaCBmb3IgWW91ciBTY2FsZTo8L2I+IEFzIGEgPGI+amV3ZWxsZXJ5IENSTSBjYXNlIHN0dWR5PC9iPiBmb3IgbXVsdGktbG9jYXRpb24gYnVzaW5lc3NlcyBzaG93cywgY2VudHJhbGl6ZWQgdmlzaWJpbGl0eSBpcyBlc3NlbnRpYWwgZm9yIG9wZXJhdGlvbmFsIGNvbnRyb2wgYW5kIHBlcnNvbmFsaXplZCBzZXJ2aWNlLlwiLFxyXG4gICAgICAgICAgICBcIjxiPk1lZXQgQ3VzdG9tZXJzIFdoZXJlIFRoZXkgQXJlOjwvYj4gTW9kZXJuIGJ1eWVycyBkZW1hbmQgbW9iaWxlIGFjY2Vzcy4gQSA8Yj5kaWdpdGFsIHBhc3Nib29rIGZvciBqZXdlbGxlcnkgc3RvcmVzPC9iPiB3aXRoIGRpZ2l0YWwgcGF5bWVudCBvcHRpb25zIGlzIGEgYmFzZWxpbmUgZXhwZWN0YXRpb24uXCIsXHJcbiAgICAgICAgICAgIFwiPGI+QXV0b21hdGUgZm9yIEVmZmljaWVuY3k6PC9iPiBJbnRlZ3JhdGluZyA8Yj5qZXdlbGxlcnkgV2hhdHNBcHAgcmVtaW5kZXIgc29mdHdhcmU8L2I+IGNyZWF0ZXMgaGlnaC1pbXBhY3QgY29tbXVuaWNhdGlvbiB3aXRoIG1pbmltYWwgbWFudWFsIGVmZm9ydC5cIlxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJLWlIwcGpQWXpnXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwiaGVhZGVyXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIlJlYWR5IHRvIEVsZXZhdGUgWW91ciBKZXdlbGxlcnkgU3RvcmUncyBFbmdhZ2VtZW50P1wiLFxyXG4gICAgICAgICAgXCJsZXZlbFwiOiAyXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgXCJpZFwiOiBcIk4tblFGQlJvVF9cIixcclxuICAgICAgICBcInR5cGVcIjogXCJwYXJhZ3JhcGhcIixcclxuICAgICAgICBcImRhdGFcIjoge1xyXG4gICAgICAgICAgXCJ0ZXh0XCI6IFwiPHNwYW4gY2xhc3M9XFxcIlxcXCI+SWYgeW91IGFyZSBsb29raW5nIHRvIHNjYWxlIHlvdXIgamV3ZWxsZXJ5IGJ1c2luZXNzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gZWxpbWluYXRlIG1hbnVhbCBhZG1pbmlzdHJhdGl2ZSBoYXNzbGUgbGlrZSBwaHlzaWNhbCByZWdpc3RlcnMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBhbmQgaW5jcmVhc2UgY3VzdG9tZXIgbG95YWx0eSw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGl0J3MgdGltZSB0byB1cGdyYWRlIHlvdXIgdGVjaCBzdGFjay48L3NwYW4+XCJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcImlkXCI6IFwiSjVxclhkRTNsdlwiLFxyXG4gICAgICAgIFwidHlwZVwiOiBcInBhcmFncmFwaFwiLFxyXG4gICAgICAgIFwiZGF0YVwiOiB7XHJcbiAgICAgICAgICBcInRleHRcIjogXCI8c3BhbiBjbGFzcz1cXFwiXFxcIj5TZWUgaG93IFBhc3Nib29rQXBwIGhlbHBzIGpld2VsbGVyeSBidXNpbmVzc2VzIGF1dG9tYXRlIHNhdmluZ3Mgc2NoZW1lcyw8L3NwYW4+PHNwYW4gY2xhc3M9XFxcIlxcXCI+IGltcHJvdmUgcmVuZXdhbHMsPC9zcGFuPjxzcGFuIGNsYXNzPVxcXCJcXFwiPiBpbmNyZWFzZSByZXBlYXQgcHVyY2hhc2VzLDwvc3Bhbj48c3BhbiBjbGFzcz1cXFwiXFxcIj4gYW5kIGJ1aWxkIGxvbmctdGVybSBjdXN0b21lciBsb3lhbHR5Ljwvc3Bhbj5cIlxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwiaWRcIjogXCJyNWtDRk81MDNXXCIsXHJcbiAgICAgICAgXCJ0eXBlXCI6IFwicGFyYWdyYXBoXCIsXHJcbiAgICAgICAgXCJkYXRhXCI6IHtcclxuICAgICAgICAgIFwidGV4dFwiOiBcIjxiPjxhIGhyZWY9XFxcImh0dHBzOi8vd3d3LnBhc3Nib29rYXBwLmluL2RlbW9cXFwiPkJvb2sgYSBGcmVlIFBhc3Nib29rQXBwIERlbW8gVG9kYXk8L2E+PC9iPlwiXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgXCJjcmVhdGVkQnlcIjogXCJSYWpcIixcclxuICAgIFwicG9zdFN1bW1hcnlcIjogXCJEaXNjb3ZlciBob3cgSmV3ZWxsZXJ5IHJldGFpbGVycyBlbGltaW5hdGVkIG1hbnVhbCByZWdpc3RlcnMsIGluY3JlYXNlZCBjdXN0b21lciBlbmdhZ2VtZW50LCBhbmQgc3RyZWFtbGluZWQgc2F2aW5ncyBzY2hlbWVzIHVzaW5nIFBhc3Nib29rQXBwLlwiLFxyXG4gICAgXCJwb3N0VGl0bGVcIjogXCJDYXNlIFN0dWR5OiBIb3cgYSBKZXdlbGxlcnkgUmV0YWlsZXIgSW5jcmVhc2VkICBDdXN0b21lciBFbmdhZ2VtZW50IFVzaW5nIFBhc3Nib29rQXBwXCIsXHJcbiAgICBcIm5ld1Bvc3RUaXRsZVwiOiBcIkNhc2UtU3R1ZHktSG93LWEtSmV3ZWxsZXJ5LVJldGFpbGVyLUluY3JlYXNlZC0tQ3VzdG9tZXItRW5nYWdlbWVudC1Vc2luZy1QYXNzYm9va0FwcFwiLFxyXG4gICAgXCJibG9nTWV0YVwiOiB7XHJcbiAgICAgIFwibWV0YVRpdGxlXCI6IFwiQ2FzZSBTdHVkeTogSG93IGEgSmV3ZWxsZXJ5IFJldGFpbGVyIEluY3JlYXNlZCAgQ3VzdG9tZXIgRW5nYWdlbWVudCBVc2luZyBQYXNzYm9va0FwcFwiLFxyXG4gICAgICBcIm1ldGFEZXNjcmlwdGlvblwiOiB7XHJcbiAgICAgICAgXCJuYW1lXCI6IFwiZGVzY3JpcHRpb25cIixcclxuICAgICAgICBcImNvbnRlbnRcIjogXCJEaXNjb3ZlciBob3cgSmV3ZWxsZXJ5IHJldGFpbGVycyBlbGltaW5hdGVkIG1hbnVhbCByZWdpc3RlcnMsIGluY3JlYXNlZCBjdXN0b21lciBlbmdhZ2VtZW50LCBhbmQgc3RyZWFtbGluZWQgc2F2aW5ncyBzY2hlbWVzIHVzaW5nIFBhc3Nib29rQXBwLlwiXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBcImNyZWF0ZWRUaW1lU3RhbXBcIjogXCIyMDI2LTA4LTA0VDExOjU4OjM3LjAwMCswMDowMFwiLFxyXG4gICAgXCJwdWJsaXNoZWREYXRlXCI6IG51bGwsXHJcbiAgICBcImJsb2dTY2hlZHVsZWREYXRlXCI6IFwiMjAyNi0wOC0wNFQwMDowMDowMC4wMDArMDA6MDBcIixcclxuICAgIFwiYmxvZ1NjaGVkdWxlVGltZVwiOiBcIjE3OjI5OjI0XCIsXHJcbiAgICBcImtleVdvcmRzXCI6IHtcclxuICAgICAgXCJuYW1lXCI6IFwia2V5d29yZHNcIixcclxuICAgICAgXCJjb250ZW50XCI6IFwiZGlnaXRhbCBwYXNzYm9vayBmb3IgamV3ZWxsZXJ5IHN0b3JlcyxKZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCxqZXdlbGxlcnkgY3VzdG9tZXIgZW5nYWdlbWVudCBzb2Z0d2FyZSxqZXdlbGxlcnkgQ1JNIHNvZnR3YXJlLGpld2VsbGVyeSBjdXN0b21lciBleHBlcmllbmNlXCJcclxuICAgIH0sXHJcbiAgICBcImF1dGhvclwiOiB7XHJcbiAgICAgIFwibmFtZVwiOiBcImF1dGhvclwiLFxyXG4gICAgICBcImNvbnRlbnRcIjogXCJQYXNzYm9va2FwcFwiXHJcbiAgICB9LFxyXG4gICAgXCJibG9nU3RhdHVzXCI6IFwiUFVCTElTSFwiLFxyXG4gICAgXCJibG9nVHlwZVwiOiBcIkJVU0lORVNTXCJcclxuICB9XHJcblxyXG4gIHRvY0l0ZW1zOiBUb2NJdGVtW10gPSBbXTtcclxuICB0b2NPcGVuID0gZmFsc2U7XHJcbiAgYWN0aXZlVG9jSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGhlYWRpbmdCbG9ja0lkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuO1xyXG4gIHByaXZhdGUgdG9jT2JzZXJ2ZXI/OiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogb2JqZWN0XHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmJ1aWxkVGFibGVPZkNvbnRlbnRzKCk7XHJcbiAgICB0aGlzLnJlY29yZFZpc2l0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlc1sncmVzcG9uc2VEYXRhJ10gJiYgIWNoYW5nZXNbJ3Jlc3BvbnNlRGF0YSddLmlzRmlyc3RDaGFuZ2UoKSkge1xyXG4gICAgICB0aGlzLmJ1aWxkVGFibGVPZkNvbnRlbnRzKCk7XHJcbiAgICAgIHRoaXMucmVjb3JkVmlzaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENvdW50cyBvbmUgcHVibGljIHZpZXcgcGVyIGJsb2cgcGVyIGJyb3dzZXIgc2Vzc2lvbiwgcGVyIHRoZSBcIkluY3JlbWVudCBibG9nIHZpc2l0c1wiIHNwZWM6XHJcbiAgLy8gUFVUIGJ1c2luZXNzL2Jsb2cvdXBkYXRlL3tibG9nSWR9LCBmaXJlLWFuZC1mb3JnZXQsIGd1YXJkZWQgc28gcmVmcmVzaC9yZS1yZW5kZXIgZG9lc24ndCBkb3VibGUtY291bnQuXHJcbiAgcHJpdmF0ZSByZWNvcmRWaXNpdCgpIHtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYmxvZ0lkID0gdGhpcy5yZXNwb25zZURhdGE/LmlkO1xyXG4gICAgaWYgKCFibG9nSWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc2Vzc2lvbktleSA9IGBibG9nLXZpc2l0LSR7YmxvZ0lkfWA7XHJcbiAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShzZXNzaW9uS2V5KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHNlc3Npb25LZXksICcxJyk7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmluY3JlbWVudEJsb2dWaXNpdChibG9nSWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICgpID0+IHsgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHsgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXR1cFNjcm9sbFNweSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnRvY09ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaGVyb0ltYWdlQmxvY2tJZCgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IGJsb2NrczogQmxvZ0Jsb2NrW10gPSB0aGlzLnJlc3BvbnNlRGF0YT8uYmxvY2tzIHx8IFtdO1xyXG4gICAgcmV0dXJuIGJsb2Nrcy5maW5kKGJsb2NrID0+IGJsb2NrLnR5cGUgPT09ICdpbWFnZScpPy5pZCA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRhZ3MoKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMucmVzcG9uc2VEYXRhPy5rZXlXb3Jkcz8uY29udGVudDtcclxuICAgIGlmICghY29udGVudCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29udGVudFxyXG4gICAgICAuc3BsaXQoJywnKVxyXG4gICAgICAubWFwKCh0YWc6IHN0cmluZykgPT4gdGFnLnRyaW0oKSlcclxuICAgICAgLmZpbHRlcigodGFnOiBzdHJpbmcpID0+IHRhZy5sZW5ndGggPiAwKTtcclxuICB9XHJcblxyXG4gIGVkaXRTZWN0aW9uKCkge1xyXG4gICAgLy8gdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVG9CbG9jayhldmVudDogRXZlbnQsIGJsb2NrSWQ6IHN0cmluZykge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIC5xdWVyeVNlbGVjdG9yKGAjYmxvY2stJHtibG9ja0lkfWApXHJcbiAgICAgID8uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pO1xyXG4gICAgdGhpcy50b2NPcGVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkVGFibGVPZkNvbnRlbnRzKCkge1xyXG4gICAgY29uc3QgYmxvY2tzOiBCbG9nQmxvY2tbXSA9IHRoaXMucmVzcG9uc2VEYXRhPy5ibG9ja3MgfHwgW107XHJcbiAgICB0aGlzLmhlYWRpbmdCbG9ja0lkcy5jbGVhcigpO1xyXG4gICAgdGhpcy50b2NJdGVtcyA9IGJsb2Nrc1xyXG4gICAgICAubWFwKGJsb2NrID0+IHRoaXMuZ2V0SGVhZGluZ0NhbmRpZGF0ZShibG9jaykpXHJcbiAgICAgIC5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIFRvY0l0ZW0gPT4gISFpdGVtKTtcclxuICAgIHRoaXMudG9jSXRlbXMuZm9yRWFjaChpdGVtID0+IHRoaXMuaGVhZGluZ0Jsb2NrSWRzLmFkZChpdGVtLmlkKSk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XHJcbiAgICAgIC8vIFJlLWF0dGFjaCB0aGUgc2Nyb2xsIHNweSBzaW5jZSB0aGUgYW5jaG9ycyBpdCB3YXRjaGVzIGp1c3QgY2hhbmdlZC5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNldHVwU2Nyb2xsU3B5KCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNUb2NBbmNob3IoYmxvY2tJZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5oZWFkaW5nQmxvY2tJZHMuaGFzKGJsb2NrSWQpO1xyXG4gIH1cclxuXHJcbiAgaGFzVmlzaWJsZVRleHQoaHRtbDogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdHJpcEh0bWwoaHRtbCkubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SGVhZGluZ0NhbmRpZGF0ZShibG9jazogQmxvZ0Jsb2NrKTogVG9jSXRlbSB8IG51bGwge1xyXG4gICAgaWYgKCFibG9jaz8uaWQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJsb2NrLnR5cGUgPT09ICdoZWFkZXInKSB7XHJcbiAgICAgIGNvbnN0IGxldmVsID0gKGJsb2NrLmRhdGE/LlsnbGV2ZWwnXSBhcyBudW1iZXIpIHx8IDI7XHJcbiAgICAgIGNvbnN0IHRleHQgPSB0aGlzLnN0cmlwSHRtbChibG9jay5kYXRhPy5bJ3RleHQnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpO1xyXG4gICAgICBpZiAobGV2ZWwgPD0gMSB8fCAhdGV4dCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7IGlkOiBibG9jay5pZCwgdGV4dCwgbGV2ZWwgfTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYmxvY2sudHlwZSA9PT0gJ3BhcmFncmFwaCcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Qm9sZFBhcmFncmFwaEhlYWRpbmcoYmxvY2spO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRCb2xkUGFyYWdyYXBoSGVhZGluZyhibG9jazogQmxvZ0Jsb2NrKTogVG9jSXRlbSB8IG51bGwge1xyXG4gICAgY29uc3QgaHRtbCA9IChibG9jay5kYXRhPy5bJ3RleHQnXSBhcyBzdHJpbmcpIHx8ICcnO1xyXG4gICAgaWYgKCFodG1sLmluY2x1ZGVzKCc8c3BhbicpKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNwYW5SZWdleCA9IC88c3BhbihbXj5dKik+KFtcXHNcXFNdKj8pPFxcL3NwYW4+L2c7XHJcbiAgICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGw7XHJcbiAgICBsZXQgYm9sZFRleHQgPSAnJztcclxuICAgIGxldCBub25Cb2xkVGV4dCA9ICcnO1xyXG4gICAgbGV0IG1heEZvbnRTaXplUHQgPSAwO1xyXG5cclxuICAgIHdoaWxlICgobWF0Y2ggPSBzcGFuUmVnZXguZXhlYyhodG1sKSkpIHtcclxuICAgICAgY29uc3Qgc3R5bGUgPSBtYXRjaFsxXTtcclxuICAgICAgY29uc3QgaW5uZXJUZXh0ID0gdGhpcy5zdHJpcEh0bWwobWF0Y2hbMl0pO1xyXG4gICAgICBjb25zdCBpc0JvbGQgPSAvZm9udC13ZWlnaHQ6XFxzKihib2xkfFs2LTldMDApL2kudGVzdChzdHlsZSk7XHJcbiAgICAgIGNvbnN0IHNpemVNYXRjaCA9IHN0eWxlLm1hdGNoKC9mb250LXNpemU6XFxzKihbXFxkLl0rKXB0L2kpO1xyXG4gICAgICBpZiAoc2l6ZU1hdGNoKSB7XHJcbiAgICAgICAgbWF4Rm9udFNpemVQdCA9IE1hdGgubWF4KG1heEZvbnRTaXplUHQsIHBhcnNlRmxvYXQoc2l6ZU1hdGNoWzFdKSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzQm9sZCkge1xyXG4gICAgICAgIGJvbGRUZXh0ICs9IGlubmVyVGV4dDtcclxuICAgICAgfSBlbHNlIGlmIChpbm5lclRleHQpIHtcclxuICAgICAgICBub25Cb2xkVGV4dCArPSBpbm5lclRleHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0ZXh0ID0gYm9sZFRleHQudHJpbSgpO1xyXG4gICAgLy8gTWl4ZWQgYm9sZC9wbGFpbiB0ZXh0IGlzIGFuIGVtcGhhc2l6ZWQgcGhyYXNlIGluc2lkZSBhIG5vcm1hbCBwYXJhZ3JhcGgsIG5vdCBhIGhlYWRpbmcuXHJcbiAgICBpZiAoIXRleHQgfHwgbm9uQm9sZFRleHQudHJpbSgpIHx8IHRleHQubGVuZ3RoID4gMTIwKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgLy8gVGl0bGUtc2l6ZWQgYm9sZCB0ZXh0ICg+PTE2cHQsIG1hdGNoaW5nIHRoZSBhcnRpY2xlJ3Mgb3duIGhlYWRpbmcpIGlzbid0IGEgVE9DIGVudHJ5LlxyXG4gICAgaWYgKG1heEZvbnRTaXplUHQgPj0gMTYpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgaWQ6IGJsb2NrLmlkLCB0ZXh0LCBsZXZlbDogMiB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdHJpcEh0bWwoaHRtbDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuICAgIGlmICghaHRtbCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaHRtbFxyXG4gICAgICAucmVwbGFjZSgvPFtePl0qPi9nLCAnJylcclxuICAgICAgLnJlcGxhY2UoLyZuYnNwOy9nLCAnICcpXHJcbiAgICAgIC5yZXBsYWNlKC8mYW1wOy9nLCAnJicpXHJcbiAgICAgIC50cmltKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwU2Nyb2xsU3B5KCkge1xyXG4gICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvY09ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcblxyXG4gICAgY29uc3QgYW5jaG9ycyA9IEFycmF5LmZyb20oXHJcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihcclxuICAgICAgICAnLnRvYy1hbmNob3InXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgICBpZiAoIWFuY2hvcnMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRvY09ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxyXG4gICAgICBlbnRyaWVzID0+IHtcclxuICAgICAgICBjb25zdCB2aXNpYmxlID0gZW50cmllcy5maWx0ZXIoZW50cnkgPT4gZW50cnkuaXNJbnRlcnNlY3RpbmcpO1xyXG4gICAgICAgIGlmICh2aXNpYmxlLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVUb2NJZCA9IHZpc2libGVbMF0udGFyZ2V0LmlkLnJlcGxhY2UoJ2Jsb2NrLScsICcnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHsgcm9vdE1hcmdpbjogJzBweCAwcHggLTcwJSAwcHgnIH1cclxuICAgICk7XHJcbiAgICBhbmNob3JzLmZvckVhY2goYW5jaG9yID0+IHRoaXMudG9jT2JzZXJ2ZXI/Lm9ic2VydmUoYW5jaG9yKSk7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFpbi1zZWN0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJibG9nLWNvbnRhaW5lclwiPlxuICAgIDxoMSBjbGFzcz1cImJsb2ctdGl0bGVcIiAqbmdJZj1cInJlc3BvbnNlRGF0YT8ucG9zdFRpdGxlXCI+XG4gICAgICB7eyByZXNwb25zZURhdGEucG9zdFRpdGxlIH19XG4gICAgPC9oMT5cblxuICAgIDxkaXYgY2xhc3M9XCJtZXRhLWJhclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5QdWJsaWNhdGlvbiBEYXRlPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdmFsdWVcIj57e1xuICAgICAgICAgIHJlc3BvbnNlRGF0YT8ucHVibGlzaGVkRGF0ZSB8fFxuICAgICAgICAgICAgcmVzcG9uc2VEYXRhPy5ibG9nU2NoZWR1bGVkRGF0ZSB8fFxuICAgICAgICAgICAgcmVzcG9uc2VEYXRhPy5jcmVhdGVkVGltZVN0YW1wIHwgZGF0ZTogJ2QgTU1NTSB5J1xuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5BdXRob3I8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWV0YS12YWx1ZVwiPnt7XG4gICAgICAgICAgcmVzcG9uc2VEYXRhPy5hdXRob3I/LmNvbnRlbnQgfHwgJ+KAlCdcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZXRhLWl0ZW1cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXRhLWxhYmVsXCI+UmVhZCBUaW1lPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdmFsdWVcIlxuICAgICAgICAgID57eyByZXNwb25zZURhdGE/LnJlYWRUaW1lIHx8ICfigJQnIH19IG1pbiByZWFkPC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1ldGEtaXRlbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtbGFiZWxcIj5WaWV3czwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXRhLXZhbHVlXCI+e3sgcmVzcG9uc2VEYXRhPy50b3RhbFZpc2l0cyB8fCAwIH19Kzwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInRhZ3Mtcm93XCIgKm5nSWY9XCJ0YWdzLmxlbmd0aFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2hpcFwiICpuZ0Zvcj1cImxldCB0YWcgb2YgdGFnc1wiPnt7IHRhZyB8IHRpdGxlY2FzZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJibG9nLWxheW91dFwiIFtjbGFzcy53aXRoLXRvY109XCJ0b2NJdGVtcy5sZW5ndGggPiAxXCI+XG4gICAgICA8YXNpZGUgY2xhc3M9XCJ0b2Mtc2lkZWJhclwiICpuZ0lmPVwidG9jSXRlbXMubGVuZ3RoID4gMVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJ0b2MtdG9nZ2xlXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9jT3BlbiA9ICF0b2NPcGVuXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInRvY09wZW5cIj5cbiAgICAgICAgICA8c3Bhbj5UYWJsZSBPZiBDb250ZW50PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9jLXRvZ2dsZS1pY29uXCIgW2NsYXNzLm9wZW5dPVwidG9jT3BlblwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b2MtaGVhZGVyXCI+VGFibGUgT2YgQ29udGVudDwvZGl2PlxuICAgICAgICA8bmF2IGNsYXNzPVwidG9jLWxpc3RcIiBbY2xhc3Mub3Blbl09XCJ0b2NPcGVuXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0b2Mgb2YgdG9jSXRlbXNcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0b2MtbGlua1wiXG4gICAgICAgICAgICBbY2xhc3MudG9jLXRvcF09XCJ0b2MubGV2ZWwgPD0gMlwiXG4gICAgICAgICAgICBbc3R5bGUucGFkZGluZ0xlZnQucHhdPVwiKHRvYy5sZXZlbCAtIDIpICogMTRcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUb2NJZCA9PT0gdG9jLmlkXCJcbiAgICAgICAgICAgIFtocmVmXT1cIicjYmxvY2stJyArIHRvYy5pZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2Nyb2xsVG9CbG9jaygkZXZlbnQsIHRvYy5pZClcIj5cbiAgICAgICAgICAgIHt7IHRvYy50ZXh0IH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvYXNpZGU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJibG9nLWRldGFpbHNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXNwb25zZURhdGE/LmJsb2Nrc1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdoZWFkZXInICYmIGhhc1Zpc2libGVUZXh0KGl0ZW0uZGF0YT8udGV4dClcIlxuICAgICAgICAgICAgW2lkXT1cIidibG9jay0nICsgaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MudG9jLWFuY2hvcl09XCJpc1RvY0FuY2hvcihpdGVtLmlkKVwiPlxuICAgICAgICAgICAgPGgxICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDFcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oMT5cbiAgICAgICAgICAgIDxoMiAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSAyXCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDI+XG4gICAgICAgICAgICA8aDMgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gM1wiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2gzPlxuICAgICAgICAgICAgPGg0ICpuZ0lmPVwiaXRlbS5kYXRhLmxldmVsID09IDRcIiBbaW5uZXJIVE1MXT1cIml0ZW0uZGF0YS50ZXh0XCI+PC9oND5cbiAgICAgICAgICAgIDxoNSAqbmdJZj1cIml0ZW0uZGF0YS5sZXZlbCA9PSA1XCIgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvaDU+XG4gICAgICAgICAgICA8aDYgKm5nSWY9XCJpdGVtLmRhdGEubGV2ZWwgPT0gNlwiIFtpbm5lckhUTUxdPVwiaXRlbS5kYXRhLnRleHRcIj48L2g2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS50eXBlID09ICdwYXJhZ3JhcGgnICYmIGhhc1Zpc2libGVUZXh0KGl0ZW0uZGF0YT8udGV4dClcIlxuICAgICAgICAgICAgW2lkXT1cIidibG9jay0nICsgaXRlbS5pZFwiXG4gICAgICAgICAgICBbY2xhc3MudG9jLWFuY2hvcl09XCJpc1RvY0FuY2hvcihpdGVtLmlkKVwiPlxuICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgY2xhc3M9XCJpbm5lci10ZXh0XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmhlYWRpbmctcGFyYWdyYXBoXT1cImlzVG9jQW5jaG9yKGl0ZW0uaWQpXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJpdGVtLmRhdGEudGV4dFwiPjwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09ICdsaXN0J1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZGF0YS5zdHlsZSA9PSAnb3JkZXJlZCdcIj5cbiAgICAgICAgICAgICAgPG9sIGNsYXNzPVwibGlzdC1zdHlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpc3Qgb2YgaXRlbS5kYXRhLml0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICA8bGkgW2lubmVySFRNTF09XCJsaXN0XCI+PC9saT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZGF0YS5zdHlsZSA9PSAndW5vcmRlcmVkJ1wiPlxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGlzdCBvZiBpdGVtLmRhdGEuaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgIDxsaSBbaW5uZXJIVE1MXT1cImxpc3RcIj48L2xpPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAnZGVsaW1pdGVyJ1wiIGNsYXNzPVwiY2UtZGVsaW1pdGVyXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2ltYWdlJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MuaGVyby1pbWFnZV09XCJpdGVtLmlkID09PSBoZXJvSW1hZ2VCbG9ja0lkXCI+XG4gICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJpdGVtLmRhdGEuZmlsZS51cmxcIiBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWFnZS1jYXB0aW9uXCIgKm5nSWY9XCJpdGVtLmRhdGE/LmNhcHRpb25cIj57e1xuICAgICAgICAgICAgICBpdGVtLmRhdGEuY2FwdGlvblxuICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PSAndGFibGUnXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICA8dGFibGVcbiAgICAgICAgICAgICAgICBbY2xhc3MudGFibGUtbm8taGVhZGluZ109XCJpdGVtLmRhdGEud2l0aEhlYWRpbmdzID09PSBmYWxzZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRhdGEgb2YgaXRlbS5kYXRhLmNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkIFtpbm5lckhUTUxdPVwiaXRlbVwiPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPHNpbXBvLXJlY2VudC1ibG9nLXBvc3Qtc2VjdGlvblxuICAgICAgW3BvcHVsYXJdPVwidHJ1ZVwiXG4gICAgICBbYnVzaW5lc3NJZF09XCJyZXNwb25zZURhdGE/LmJ1c2luZXNzSWRcIlxuICAgICAgW2V4Y2x1ZGVCbG9nSWRdPVwicmVzcG9uc2VEYXRhPy5pZFwiXG4gICAgICBbZWRpdF09XCJmYWxzZVwiPlxuICAgIDwvc2ltcG8tcmVjZW50LWJsb2ctcG9zdC1zZWN0aW9uPlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==