@sunbird-cb/toc 0.0.34 → 0.0.35

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 (350) hide show
  1. package/esm2022/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.mjs +1 -1
  2. package/esm2022/lib/_collection/_common/content-toc/karma-points/karma-points.component.mjs +44 -2
  3. package/esm2022/lib/_collection/sliders-dynamic/sliders-dynamic.component.mjs +3 -3
  4. package/esm2022/lib/components/app-toc-home-v2/app-toc-home-v2.component.mjs +3 -3
  5. package/fesm2022/sunbird-cb-toc.mjs +48 -6
  6. package/fesm2022/sunbird-cb-toc.mjs.map +1 -1
  7. package/index.d.ts +1 -0
  8. package/lib/_collection/_common/ai-tutor/ai-tutor.component.d.ts +1 -0
  9. package/lib/_collection/_common/ai-tutor/ai-tutor.component.d.ts.map +1 -0
  10. package/lib/_collection/_common/ai-tutor/socket.service.d.ts +1 -0
  11. package/lib/_collection/_common/ai-tutor/socket.service.d.ts.map +1 -0
  12. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts +1 -0
  13. package/lib/_collection/_common/attendance-card/attendance-card.component.d.ts.map +1 -0
  14. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts +1 -0
  15. package/lib/_collection/_common/attendance-card/attendance-card.module.d.ts.map +1 -0
  16. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts +1 -0
  17. package/lib/_collection/_common/attendance-helper/attendance-helper.component.d.ts.map +1 -0
  18. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts +1 -0
  19. package/lib/_collection/_common/attendance-helper/attendance-helper.module.d.ts.map +1 -0
  20. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts +1 -0
  21. package/lib/_collection/_common/avatar-photo/avatar-photo.component.d.ts.map +1 -0
  22. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts +1 -0
  23. package/lib/_collection/_common/avatar-photo/avatar-photo.module.d.ts.map +1 -0
  24. package/lib/_collection/_common/card-competency/card-competency.component.d.ts +1 -0
  25. package/lib/_collection/_common/card-competency/card-competency.component.d.ts.map +1 -0
  26. package/lib/_collection/_common/card-competency/card-competency.module.d.ts +1 -0
  27. package/lib/_collection/_common/card-competency/card-competency.module.d.ts.map +1 -0
  28. package/lib/_collection/_common/card-content-v2/card-content-v2.model.d.ts +1 -0
  29. package/lib/_collection/_common/card-content-v2/card-content-v2.model.d.ts.map +1 -0
  30. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts +1 -0
  31. package/lib/_collection/_common/certificate-dialog/certificate-dialog.component.d.ts.map +1 -0
  32. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts +1 -0
  33. package/lib/_collection/_common/certificate-dialog/certificate-dialog.module.d.ts.map +1 -0
  34. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts +1 -0
  35. package/lib/_collection/_common/certificate-dialog/svg-to-pdf.component.d.ts.map +1 -0
  36. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts +1 -0
  37. package/lib/_collection/_common/confirm-dialog/confirm-dialog.component.d.ts.map +1 -0
  38. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts +1 -0
  39. package/lib/_collection/_common/confirm-dialog/confirm-dialog.module.d.ts.map +1 -0
  40. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts +1 -0
  41. package/lib/_collection/_common/connection-hover-card/connection-hover-card.component.d.ts.map +1 -0
  42. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts +1 -0
  43. package/lib/_collection/_common/connection-hover-card/connection-hover.module.d.ts.map +1 -0
  44. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts +1 -0
  45. package/lib/_collection/_common/connection-hover-card/connection-hover.servive.d.ts.map +1 -0
  46. package/lib/_collection/_common/connection-name/connection-name.component.d.ts +1 -0
  47. package/lib/_collection/_common/connection-name/connection-name.component.d.ts.map +1 -0
  48. package/lib/_collection/_common/connection-name/connection-name.module.d.ts +1 -0
  49. package/lib/_collection/_common/connection-name/connection-name.module.d.ts.map +1 -0
  50. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts +1 -0
  51. package/lib/_collection/_common/connection-name/profile-v2.model.d.ts.map +1 -0
  52. package/lib/_collection/_common/content-progress/content-progress.component.d.ts +1 -0
  53. package/lib/_collection/_common/content-progress/content-progress.component.d.ts.map +1 -0
  54. package/lib/_collection/_common/content-progress/content-progress.module.d.ts +1 -0
  55. package/lib/_collection/_common/content-progress/content-progress.module.d.ts.map +1 -0
  56. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts +1 -0
  57. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.component.d.ts.map +1 -0
  58. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts +1 -0
  59. package/lib/_collection/_common/content-rating-v2-dialog/content-rating-v2-dialog.module.d.ts.map +1 -0
  60. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts +1 -0
  61. package/lib/_collection/_common/content-toc/ai-tutor-confirm-popup/ai-tutor-confirm-popup.component.d.ts.map +1 -0
  62. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts +1 -0
  63. package/lib/_collection/_common/content-toc/app-toc-about/app-toc-about.component.d.ts.map +1 -0
  64. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts +1 -0
  65. package/lib/_collection/_common/content-toc/app-toc-assignment-viewer/app-toc-assignment-viewer.component.d.ts.map +1 -0
  66. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts +1 -0
  67. package/lib/_collection/_common/content-toc/app-toc-assignment-viewerV2/app-toc-assignment-viewerV2.component.d.ts.map +1 -0
  68. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts +1 -0
  69. package/lib/_collection/_common/content-toc/app-toc-batch-assignments/app-toc-batch-assignments.component.d.ts.map +1 -0
  70. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts +1 -0
  71. package/lib/_collection/_common/content-toc/app-toc-content/app-toc-content.component.d.ts.map +1 -0
  72. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts +1 -0
  73. package/lib/_collection/_common/content-toc/app-toc-content-card-v2/app-toc-content-card-v2.component.d.ts.map +1 -0
  74. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts +1 -0
  75. package/lib/_collection/_common/content-toc/app-toc-content-card-v2-skeleton/app-toc-content-card-v2-skeleton.component.d.ts.map +1 -0
  76. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts +1 -0
  77. package/lib/_collection/_common/content-toc/app-toc-reference-notes/app-toc-reference-notes.component.d.ts.map +1 -0
  78. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts +1 -0
  79. package/lib/_collection/_common/content-toc/app-toc-session-card-new/app-toc-session-card-new.component.d.ts.map +1 -0
  80. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts +1 -0
  81. package/lib/_collection/_common/content-toc/app-toc-sessions-new/app-toc-sessions-new.component.d.ts.map +1 -0
  82. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts +1 -0
  83. package/lib/_collection/_common/content-toc/app-toc-teachers-notes/app-toc-teachers-notes.component.d.ts.map +1 -0
  84. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts +1 -0
  85. package/lib/_collection/_common/content-toc/content-services/handle-claim.service.d.ts.map +1 -0
  86. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts +1 -0
  87. package/lib/_collection/_common/content-toc/content-services/review-component-data.service.d.ts.map +1 -0
  88. package/lib/_collection/_common/content-toc/content-toc.component.d.ts +1 -0
  89. package/lib/_collection/_common/content-toc/content-toc.component.d.ts.map +1 -0
  90. package/lib/_collection/_common/content-toc/content-toc.module.d.ts +1 -0
  91. package/lib/_collection/_common/content-toc/content-toc.module.d.ts.map +1 -0
  92. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts +4 -1
  93. package/lib/_collection/_common/content-toc/karma-points/karma-points.component.d.ts.map +1 -0
  94. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts +1 -0
  95. package/lib/_collection/_common/content-toc/karma-points/karma-points.module.d.ts.map +1 -0
  96. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts +1 -0
  97. package/lib/_collection/_common/content-toc/pipes/replace-nbsp.pipe.d.ts.map +1 -0
  98. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts +1 -0
  99. package/lib/_collection/_common/content-toc/pipes/truncate.pipe.d.ts.map +1 -0
  100. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts +1 -0
  101. package/lib/_collection/_common/content-toc/reviews-content/reviews-content.component.d.ts.map +1 -0
  102. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts +1 -0
  103. package/lib/_collection/_common/content-toc/samuhik-charcha-content/samuhik-charcha-content/samuhik-charcha-content.component.d.ts.map +1 -0
  104. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts +1 -0
  105. package/lib/_collection/_common/display-content-type/display-content-type.component.d.ts.map +1 -0
  106. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts +1 -0
  107. package/lib/_collection/_common/display-content-type/display-content-type.module.d.ts.map +1 -0
  108. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts +1 -0
  109. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.component.d.ts.map +1 -0
  110. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts +1 -0
  111. package/lib/_collection/_common/display-content-type-icon/display-content-type-icon.module.d.ts.map +1 -0
  112. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts +1 -0
  113. package/lib/_collection/_common/mark-as-complete/mark-as-complete.component.d.ts.map +1 -0
  114. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts +1 -0
  115. package/lib/_collection/_common/mark-as-complete/mark-as-complete.model.d.ts.map +1 -0
  116. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts +1 -0
  117. package/lib/_collection/_common/mark-as-complete/mark-as-complete.module.d.ts.map +1 -0
  118. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts +1 -0
  119. package/lib/_collection/_common/pipe-content-route/pipe-content-route.module.d.ts.map +1 -0
  120. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts +1 -0
  121. package/lib/_collection/_common/pipe-content-route/pipe-content-route.pipe.d.ts.map +1 -0
  122. package/lib/_collection/_common/player-brief/player-brief.component.d.ts +1 -0
  123. package/lib/_collection/_common/player-brief/player-brief.component.d.ts.map +1 -0
  124. package/lib/_collection/_common/player-brief/player-brief.module.d.ts +1 -0
  125. package/lib/_collection/_common/player-brief/player-brief.module.d.ts.map +1 -0
  126. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts +1 -0
  127. package/lib/_collection/_common/rating-summary/rating-summary.component.d.ts.map +1 -0
  128. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts +1 -0
  129. package/lib/_collection/_common/rating-summary/rating-summary.module.d.ts.map +1 -0
  130. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts +1 -0
  131. package/lib/_collection/_common/skeleton-loader/skeleton-loader.component.d.ts.map +1 -0
  132. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts +1 -0
  133. package/lib/_collection/_common/skeleton-loader/skeleton-loader.module.d.ts.map +1 -0
  134. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts +1 -0
  135. package/lib/_collection/_common/tips-for-learner/tips-for-learner-card/tips-for-learner-card.component.d.ts.map +1 -0
  136. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts +1 -0
  137. package/lib/_collection/_common/tips-for-learner/tips-for-learner.module.d.ts.map +1 -0
  138. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts +1 -0
  139. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.component.d.ts.map +1 -0
  140. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts +1 -0
  141. package/lib/_collection/_common/toc-kpi-values/toc-kpi-values.module.d.ts.map +1 -0
  142. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts +1 -0
  143. package/lib/_collection/_common/user-autocomplete/user-autocomplete.component.d.ts.map +1 -0
  144. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts +1 -0
  145. package/lib/_collection/_common/user-autocomplete/user-autocomplete.model.d.ts.map +1 -0
  146. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts +1 -0
  147. package/lib/_collection/_common/user-autocomplete/user-autocomplete.module.d.ts.map +1 -0
  148. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts +1 -0
  149. package/lib/_collection/_common/user-autocomplete/user-autocomplete.service.d.ts.map +1 -0
  150. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts +1 -0
  151. package/lib/_collection/_common/user-content-rating/user-content-rating.component.d.ts.map +1 -0
  152. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts +1 -0
  153. package/lib/_collection/_common/user-content-rating/user-content-rating.module.d.ts.map +1 -0
  154. package/lib/_collection/_common/user-image/user-image.component.d.ts +1 -0
  155. package/lib/_collection/_common/user-image/user-image.component.d.ts.map +1 -0
  156. package/lib/_collection/_common/user-image/user-image.module.d.ts +1 -0
  157. package/lib/_collection/_common/user-image/user-image.module.d.ts.map +1 -0
  158. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts +1 -0
  159. package/lib/_collection/btn-page-back/btn-page-back.component.d.ts.map +1 -0
  160. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts +1 -0
  161. package/lib/_collection/btn-page-back/btn-page-back.module.d.ts.map +1 -0
  162. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts +1 -0
  163. package/lib/_collection/btn-page-back/btn-page-back.service.d.ts.map +1 -0
  164. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts +1 -0
  165. package/lib/_collection/card-rating-comment/card-rating-comment.component.d.ts.map +1 -0
  166. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts +1 -0
  167. package/lib/_collection/card-rating-comment/card-rating-comment.module.d.ts.map +1 -0
  168. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts +1 -0
  169. package/lib/_collection/sliders-dynamic/sliders-dynamic.component.d.ts.map +1 -0
  170. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts +1 -0
  171. package/lib/_collection/sliders-dynamic/sliders-dynamic.model.d.ts.map +1 -0
  172. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts +1 -0
  173. package/lib/_collection/sliders-dynamic/sliders-dynamic.module.d.ts.map +1 -0
  174. package/lib/_collection-api.d.ts +1 -0
  175. package/lib/_collection-api.d.ts.map +1 -0
  176. package/lib/_constants/widget-content.constants.d.ts +1 -0
  177. package/lib/_constants/widget-content.constants.d.ts.map +1 -0
  178. package/lib/_directives/tooltip.directive.d.ts +1 -0
  179. package/lib/_directives/tooltip.directive.d.ts.map +1 -0
  180. package/lib/_models/common.model.d.ts +1 -0
  181. package/lib/_models/common.model.d.ts.map +1 -0
  182. package/lib/_models/error.model.d.ts +1 -0
  183. package/lib/_models/error.model.d.ts.map +1 -0
  184. package/lib/_pipes/highlight.pipe.d.ts +1 -0
  185. package/lib/_pipes/highlight.pipe.d.ts.map +1 -0
  186. package/lib/_services/rating.service.d.ts +1 -0
  187. package/lib/_services/rating.service.d.ts.map +1 -0
  188. package/lib/_services/samuhik-charcha.service.d.ts +1 -0
  189. package/lib/_services/samuhik-charcha.service.d.ts.map +1 -0
  190. package/lib/_services/viewer-route-util.d.ts +1 -0
  191. package/lib/_services/viewer-route-util.d.ts.map +1 -0
  192. package/lib/_services/widget-content.model.d.ts +1 -0
  193. package/lib/_services/widget-content.model.d.ts.map +1 -0
  194. package/lib/_services/widget-content.service.d.ts +1 -0
  195. package/lib/_services/widget-content.service.d.ts.map +1 -0
  196. package/lib/_shared/translate-loader.factory.d.ts +1 -0
  197. package/lib/_shared/translate-loader.factory.d.ts.map +1 -0
  198. package/lib/app-toc-lib.module.d.ts +1 -0
  199. package/lib/app-toc-lib.module.d.ts.map +1 -0
  200. package/lib/collection.config.d.ts +1 -0
  201. package/lib/collection.config.d.ts.map +1 -0
  202. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts +1 -0
  203. package/lib/components/app-toc-analytics-tiles/app-toc-analytics-tiles.component.d.ts.map +1 -0
  204. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts +1 -0
  205. package/lib/components/app-toc-banner/app-toc-banner.component.d.ts.map +1 -0
  206. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts +1 -0
  207. package/lib/components/app-toc-cios-home/app-toc-cios-home.component.d.ts.map +1 -0
  208. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts +1 -0
  209. package/lib/components/app-toc-cios-home/consent-dialog.component.d.ts.map +1 -0
  210. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts +1 -0
  211. package/lib/components/app-toc-cohorts/app-toc-cohorts.component.d.ts.map +1 -0
  212. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts +1 -0
  213. package/lib/components/app-toc-content-card/app-toc-content-card.component.d.ts.map +1 -0
  214. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts +1 -0
  215. package/lib/components/app-toc-dialog-intro-video/app-toc-dialog-intro-video.component.d.ts.map +1 -0
  216. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts +1 -0
  217. package/lib/components/app-toc-discussion/app-toc-discussion.component.d.ts.map +1 -0
  218. package/lib/components/app-toc-home/app-toc-home.component.d.ts +1 -0
  219. package/lib/components/app-toc-home/app-toc-home.component.d.ts.map +1 -0
  220. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts +1 -0
  221. package/lib/components/app-toc-home-v2/app-toc-home-v2.component.d.ts.map +1 -0
  222. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts +1 -0
  223. package/lib/components/app-toc-overview/app-toc-overview.component.d.ts.map +1 -0
  224. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts +1 -0
  225. package/lib/components/app-toc-session-card/app-toc-session-card.component.d.ts.map +1 -0
  226. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts +1 -0
  227. package/lib/components/app-toc-sessions/app-toc-sessions.component.d.ts.map +1 -0
  228. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts +1 -0
  229. package/lib/components/app-toc-single-page/app-toc-single-page.component.d.ts.map +1 -0
  230. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts +1 -0
  231. package/lib/components/completion-survey-form/completion-survey-form.component.d.ts.map +1 -0
  232. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts +1 -0
  233. package/lib/components/create-batch-dialog/create-batch-dialog.component.d.ts.map +1 -0
  234. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts +1 -0
  235. package/lib/components/enroll-language-dialogue/enroll-language-dialogue.component.d.ts.map +1 -0
  236. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts +1 -0
  237. package/lib/components/enroll-profile-form/enroll-profile-form.component.d.ts.map +1 -0
  238. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts +1 -0
  239. package/lib/components/enroll-questionnaire/enroll-questionnaire.component.d.ts.map +1 -0
  240. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts +1 -0
  241. package/lib/components/knowledge-artifact-details/knowledge-artifact-details.component.d.ts.map +1 -0
  242. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts +1 -0
  243. package/lib/components/non-relevent-feedback-dialog/non-relevent-feedback-dialog.component.d.ts.map +1 -0
  244. package/lib/components/public-survey-form/public-survey-form.component.d.ts +1 -0
  245. package/lib/components/public-survey-form/public-survey-form.component.d.ts.map +1 -0
  246. package/lib/components/survey-form-question/survey-form-question.component.d.ts +1 -0
  247. package/lib/components/survey-form-question/survey-form-question.component.d.ts.map +1 -0
  248. package/lib/components/survey-form-section/survey-form-section.component.d.ts +1 -0
  249. package/lib/components/survey-form-section/survey-form-section.component.d.ts.map +1 -0
  250. package/lib/models/app-toc-analytics.model.d.ts +1 -0
  251. package/lib/models/app-toc-analytics.model.d.ts.map +1 -0
  252. package/lib/models/app-toc.model.d.ts +1 -0
  253. package/lib/models/app-toc.model.d.ts.map +1 -0
  254. package/lib/models/auto-complete.model.d.ts +1 -0
  255. package/lib/models/auto-complete.model.d.ts.map +1 -0
  256. package/lib/models/card-content.model.d.ts +1 -0
  257. package/lib/models/card-content.model.d.ts.map +1 -0
  258. package/lib/models/content-strip-with-tabs.model.d.ts +1 -0
  259. package/lib/models/content-strip-with-tabs.model.d.ts.map +1 -0
  260. package/lib/models/discussion-forum.model.d.ts +1 -0
  261. package/lib/models/discussion-forum.model.d.ts.map +1 -0
  262. package/lib/models/goal.model.d.ts +1 -0
  263. package/lib/models/goal.model.d.ts.map +1 -0
  264. package/lib/models/meta-tag.model.d.ts +1 -0
  265. package/lib/models/meta-tag.model.d.ts.map +1 -0
  266. package/lib/models/playlist.model.d.ts +1 -0
  267. package/lib/models/playlist.model.d.ts.map +1 -0
  268. package/lib/models/profile-revamp.model.d.ts +1 -0
  269. package/lib/models/profile-revamp.model.d.ts.map +1 -0
  270. package/lib/models/rating.model.d.ts +1 -0
  271. package/lib/models/rating.model.d.ts.map +1 -0
  272. package/lib/models/user-profile.model.d.ts +1 -0
  273. package/lib/models/user-profile.model.d.ts.map +1 -0
  274. package/lib/registration-toc-lib.config.d.ts +1 -0
  275. package/lib/registration-toc-lib.config.d.ts.map +1 -0
  276. package/lib/resolvers/app-toc-cios-resolver.service.d.ts +1 -0
  277. package/lib/resolvers/app-toc-cios-resolver.service.d.ts.map +1 -0
  278. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts +1 -0
  279. package/lib/resolvers/app-toc-cios-user-enroll-resolver.service.d.ts.map +1 -0
  280. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts +1 -0
  281. package/lib/resolvers/app-toc-content-read-resolver.service.d.ts.map +1 -0
  282. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts +1 -0
  283. package/lib/resolvers/app-toc-ext-public-resolver.service.d.ts.map +1 -0
  284. package/lib/resolvers/app-toc-resolver.service.d.ts +1 -0
  285. package/lib/resolvers/app-toc-resolver.service.d.ts.map +1 -0
  286. package/lib/resolvers/config-resolver.service.d.ts +1 -0
  287. package/lib/resolvers/config-resolver.service.d.ts.map +1 -0
  288. package/lib/resolvers/profile-resolver.service.d.ts +1 -0
  289. package/lib/resolvers/profile-resolver.service.d.ts.map +1 -0
  290. package/lib/resolvers/restricted-features-resolver.service.d.ts +1 -0
  291. package/lib/resolvers/restricted-features-resolver.service.d.ts.map +1 -0
  292. package/lib/routes/app-toc-home/app-toc-home.component.d.ts +1 -0
  293. package/lib/routes/app-toc-home/app-toc-home.component.d.ts.map +1 -0
  294. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts +1 -0
  295. package/lib/routes/app-toc-home/app-toc-home.directive.d.ts.map +1 -0
  296. package/lib/routes/app-toc-home/app-toc-home.service.d.ts +1 -0
  297. package/lib/routes/app-toc-home/app-toc-home.service.d.ts.map +1 -0
  298. package/lib/services/access-control.service.d.ts +1 -0
  299. package/lib/services/access-control.service.d.ts.map +1 -0
  300. package/lib/services/action.service.d.ts +1 -0
  301. package/lib/services/action.service.d.ts.map +1 -0
  302. package/lib/services/app-toc-v2.service.d.ts +1 -0
  303. package/lib/services/app-toc-v2.service.d.ts.map +1 -0
  304. package/lib/services/app-toc.service.d.ts +1 -0
  305. package/lib/services/app-toc.service.d.ts.map +1 -0
  306. package/lib/services/certificate.service.d.ts +1 -0
  307. package/lib/services/certificate.service.d.ts.map +1 -0
  308. package/lib/services/discuss-utils.service.d.ts +1 -0
  309. package/lib/services/discuss-utils.service.d.ts.map +1 -0
  310. package/lib/services/editor.service.d.ts +1 -0
  311. package/lib/services/editor.service.d.ts.map +1 -0
  312. package/lib/services/load-check.service.d.ts +1 -0
  313. package/lib/services/load-check.service.d.ts.map +1 -0
  314. package/lib/services/loader.service.d.ts +1 -0
  315. package/lib/services/loader.service.d.ts.map +1 -0
  316. package/lib/services/mobile-apps.service.d.ts +1 -0
  317. package/lib/services/mobile-apps.service.d.ts.map +1 -0
  318. package/lib/services/netcore.service.d.ts +1 -0
  319. package/lib/services/netcore.service.d.ts.map +1 -0
  320. package/lib/services/nps-grid.service.d.ts +1 -0
  321. package/lib/services/nps-grid.service.d.ts.map +1 -0
  322. package/lib/services/otp.service.d.ts +1 -0
  323. package/lib/services/otp.service.d.ts.map +1 -0
  324. package/lib/services/profile-v2.service.d.ts +1 -0
  325. package/lib/services/profile-v2.service.d.ts.map +1 -0
  326. package/lib/services/reset-ratings.service.d.ts +1 -0
  327. package/lib/services/reset-ratings.service.d.ts.map +1 -0
  328. package/lib/services/resource-download-helper.service.d.ts +1 -0
  329. package/lib/services/resource-download-helper.service.d.ts.map +1 -0
  330. package/lib/services/root.service.d.ts +1 -0
  331. package/lib/services/root.service.d.ts.map +1 -0
  332. package/lib/services/timer.service.d.ts +1 -0
  333. package/lib/services/timer.service.d.ts.map +1 -0
  334. package/lib/services/title-tag.service.d.ts +1 -0
  335. package/lib/services/title-tag.service.d.ts.map +1 -0
  336. package/lib/services/user-profile.service.d.ts +1 -0
  337. package/lib/services/user-profile.service.d.ts.map +1 -0
  338. package/lib/services/viewer-data.service.d.ts +1 -0
  339. package/lib/services/viewer-data.service.d.ts.map +1 -0
  340. package/lib/services/viewer-util.service.d.ts +1 -0
  341. package/lib/services/viewer-util.service.d.ts.map +1 -0
  342. package/lib/share-toc/share-toc/share-toc.component.d.ts +1 -0
  343. package/lib/share-toc/share-toc/share-toc.component.d.ts.map +1 -0
  344. package/lib/share-toc/share-toc.module.d.ts +1 -0
  345. package/lib/share-toc/share-toc.module.d.ts.map +1 -0
  346. package/package.json +1 -1
  347. package/public-api.d.ts +1 -0
  348. package/public-api.d.ts.map +1 -0
  349. package/sunbird-cb-toc.d.ts.map +1 -0
  350. package/sunbird-cb-toc-0.0.34.tgz +0 -0
@@ -98,15 +98,15 @@ export class SlidersDynamicComponent {
98
98
  return this.langTranslations.translateLabelWithoutspace(label, type, '');
99
99
  }
100
100
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SlidersDynamicComponent, deps: [{ token: i1.EventService }, { token: i2.TranslateService }, { token: i1.MultilingualTranslationsService }], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SlidersDynamicComponent, selector: "ws-widget-sliders-dynamic", inputs: { widgetData: "widgetData" }, host: { properties: { "id": "this.id" } }, ngImport: i0, template: "<div class=\"banner-container\" (swipeleft)=\"slideTo(currentIndex + 1)\" [ngClass]=\"widgetData?.cardClass\" (swiperight)=\"slideTo(currentIndex - 1)\" [ngStyle]=\"{'min-height': widgetData?.height}\" *ngIf=\"widgetData?.sliderData?.length > 0\">\n <ng-container *ngIf=\"widgetData.type === 'image'\">\n <a (click)=\"raiseTelemetry(widgetData.sliderData[currentIndex].redirectUrl)\"\n [routerLink]=\" !isOpenInNewTab ? widgetData.sliderData[currentIndex].redirectUrl : './'\" class=\"banner-overlay\"\n [ngClass]=\"{'cursor-auto': !widgetData.sliderData[currentIndex].redirectUrl}\">\n <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData.sliderData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"banner-image\" />\n </div>\n </a>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.type === 'data'\">\n <div class=\"banner WidgetInstanceId flex margin-bottom-xs\" *ngFor=\"let slide of widgetData.sliderData; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"banner-data flex margin-right-m \">\n {{ widgetData.sliderData[currentIndex].title }}\n </div>\n <div class=\"flex data-analysis flex-middle\" [ngClass]=\"widgetData.sliderData[currentIndex].colorData\" *ngIf=\"widgetData.sliderData[currentIndex].data\">\n <mat-icon class=\"icon-stats\">{{ widgetData.sliderData[currentIndex].icon }}</mat-icon>\n <p class=\"margin-remove text-no-wrap\">{{ widgetData.sliderData[currentIndex].data }}</p>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData?.type === 'tips'\">\n <ng-container *ngFor=\"let slide of widgetData?.sliderData; let i = index\">\n <div class=\"tips banner WidgetInstanceId flex margin-bottom-xs\" [hidden]=\"i !== currentIndex\">\n <div class=\"banner-data flex margin-right-m\">\n {{i + 1}}. {{ slide }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.type === 'karma-points'\">\n <div class=\"flex flex-row items-center gap-2 mb-4\" *ngFor=\"let slide of widgetData.sliderData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img src=\"/assets/icons/home/karma-badge.svg\" width=\"28px\" alt=\"karma-points image\" />\n <div class=\"text-xs\">\n <span *ngIf=\"slide?.textBeforeIcon\">{{ translateLabels(slide?.textBeforeIcon, 'appKarmapointsPanel') }}</span>&nbsp;\n <span *ngIf=\"slide?.points\" class=\"font-bold\">{{ slide?.points }} {{ translateLabels(slide?.textAfterPoints,\n 'appKarmapointsPanel') }}</span>&nbsp;\n <span *ngIf=\"slide?.textAfterIcon\">{{ translateLabels(slide?.textAfterIcon, 'appKarmapointsPanel') }}</span>\n </div>\n <mat-icon class=\"cursor-pointer ws-mat-black60-text info-icon\" [matTooltip]=\"translateLabels(slide?.toolTipText, 'appKarmapointsPanel')\"\n *ngIf=\"slide?.toolTipText\">info_outline</mat-icon>\n </div>\n </ng-container>\n\n <ng-container>\n <div class=\"banner-meta\">\n <ng-container *ngIf=\"widgetData.type === 'image'\">\n <a [routerLink]=\" !isOpenInNewTab ? widgetData.sliderData[currentIndex].redirectUrl : './'\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData.sliderData[currentIndex].title\" [title]=\"widgetData.sliderData[currentIndex].title\">\n {{ widgetData.sliderData[currentIndex].title }}\n </a>\n </ng-container>\n\n <div class=\"dots-container\" *ngIf=\"widgetData.sliderData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex, 'dot-active': j === currentIndex, 'dot-grey': j !== currentIndex }\" *ngFor=\"let slide of widgetData.sliderData; let j = index\" (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.iconsDisplay\">\n <a *ngIf=\"widgetData.sliderData?.length > 1\" role=\"button\" class=\"prev\" (click)=\"slideTo(currentIndex - 1)\">&#10094;</a>\n <a *ngIf=\"widgetData.sliderData?.length > 1\" role=\"button\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\">&#10095;</a>\n </ng-container>\n\n</div>\n", styles: [".banner-container{min-height:243px;overflow:hidden;position:relative;margin:auto;border-radius:12px}.banner-overlay{z-index:1;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left,#00000040,#0000 15% 85%,#00000040)}.banner{-webkit-animation-name:fade;-webkit-animation-duration:1.5s;animation-name:fade;animation-duration:1.5s;min-height:50px}.banner .banner-image{width:100%;min-height:243px;display:block;border-radius:12px}.tips{min-height:30px}.banner-meta{text-align:center;z-index:2;padding:4px 8px;position:absolute;bottom:0;left:50%;border-radius:12px;transform:translate(-50%);box-sizing:border-box}.banner-meta .banner-title{color:#f2f2f2;margin-bottom:4px;font-size:1.1rem}.banner-meta .dots-container{padding:4px;display:flex;align-items:center;justify-content:center}.banner-meta .dots-container .dot{cursor:pointer;height:4px;width:4px;margin:0 6px;background-color:#d3d3d3;box-shadow:1px 1px 4px #0009;border-radius:50%;display:inline-block;transition:background-color .5s ease!important}.banner-meta .dots-container .dot.active{background-color:#f0f0f0;height:5px;width:5px}@keyframes fade{0%{opacity:.25}to{opacity:1}}.prev,.next{cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);padding:16px;color:#fff;font-weight:700;font-size:24px;z-index:2;border-radius:0 3px 3px 0}.next{right:0;border-radius:3px 0 0 3px}.banner-container-solo{overflow:hidden;margin:auto;border-radius:12px}.banner-image-solo{width:100%;display:block;border-radius:12px}.banner-data{opacity:1;color:#000000de;font-family:Lato-Regular;font-size:.75rem;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:left;line-height:16px}.color-green{color:#1d8923}.color-red{color:#c41112}.data-analysis{opacity:1;font-family:Lato-Regular;font-size:.75rem;font-weight:400;font-style:normal;letter-spacing:.21px;text-align:left;line-height:16px}.data-analysis mat-icon{width:18px;height:18px;font-size:1.2rem}.dot-grey{opacity:.2;background-color:#1b2133!important;width:4px!important;height:4px!important;box-shadow:unset!important}.dot-active{width:8px!important;height:4px!important;border-radius:2px!important;opacity:1;background-color:#f3962f!important;box-shadow:unset!important}.slider-container{background:#ef951e29!important;padding:16px}.text-no-wrap{text-wrap:nowrap;margin-top:4px!important}.icon-stats{margin-right:4px}.info-icon{width:16px;height:16px;font-size:16px}.cursor-auto{cursor:auto}.flex{display:flex}.flex-middle{align-items:center}.flex-row{flex-direction:row}.items-center{align-items:center}.gap-2{gap:.5rem}.mb-4{margin-bottom:1rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.margin-bottom-xs{margin-bottom:4px}.margin-right-m{margin-right:16px}.margin-remove{margin:0}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cursor-pointer{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.ImageResponsiveDirective, selector: "[wsUtilsImageResponsive]", inputs: ["src"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SlidersDynamicComponent, selector: "ws-widget-sliders-dynamic", inputs: { widgetData: "widgetData" }, host: { properties: { "id": "this.id" } }, ngImport: i0, template: "<div class=\"banner-container\" (swipeleft)=\"slideTo(currentIndex + 1)\" [ngClass]=\"widgetData?.cardClass\" (swiperight)=\"slideTo(currentIndex - 1)\" [ngStyle]=\"{'min-height': widgetData?.height}\" *ngIf=\"widgetData?.sliderData?.length > 0\">\n <ng-container *ngIf=\"widgetData.type === 'image'\">\n <a (click)=\"raiseTelemetry(widgetData.sliderData[currentIndex].redirectUrl)\"\n [routerLink]=\" !isOpenInNewTab ? widgetData.sliderData[currentIndex].redirectUrl : './'\" class=\"banner-overlay\"\n [ngClass]=\"{'cursor-auto': !widgetData.sliderData[currentIndex].redirectUrl}\">\n <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData.sliderData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"banner-image\" />\n </div>\n </a>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.type === 'data'\">\n <div class=\"banner WidgetInstanceId flex margin-bottom-xs\" *ngFor=\"let slide of widgetData.sliderData; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"banner-data flex margin-right-m \">\n {{ widgetData.sliderData[currentIndex].title }}\n </div>\n <div class=\"flex data-analysis flex-middle\" [ngClass]=\"widgetData.sliderData[currentIndex].colorData\" *ngIf=\"widgetData.sliderData[currentIndex].data\">\n <mat-icon class=\"icon-stats\">{{ widgetData.sliderData[currentIndex].icon }}</mat-icon>\n <p class=\"margin-remove text-no-wrap\">{{ widgetData.sliderData[currentIndex].data }}</p>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData?.type === 'tips'\">\n <ng-container *ngFor=\"let slide of widgetData?.sliderData; let i = index\">\n <div class=\"tips banner WidgetInstanceId flex margin-bottom-xs\" [hidden]=\"i !== currentIndex\">\n <div class=\"banner-data flex margin-right-m\">\n {{i + 1}}. {{ slide }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.type === 'karma-points'\">\n <div class=\"flex flex-row items-center gap-2 mb-4\" *ngFor=\"let slide of widgetData.sliderData; let i = index\"\n [hidden]=\"i !== currentIndex\">\n <img [src]=\"slide?.displayButton === 'Quick Learner Badge'\n ? '/assets/icons/badges/Medal.svg'\n : '/assets/icons/home/karma-badge.svg'\" width=\"28px\" alt=\"karma-points image\" />\n <div class=\"text-xs\">\n <span *ngIf=\"slide?.textBeforeIcon\">\n {{\n slide?.displayButton === 'Quick Learner Badge'\n ? slide?.textBeforeIcon\n : translateLabels(slide?.textBeforeIcon, 'appKarmapointsPanel')\n }}\n </span>&nbsp;\n <span *ngIf=\"slide?.points\" class=\"font-bold\">{{ slide?.points }} {{ translateLabels(slide?.textAfterPoints,\n 'appKarmapointsPanel') }}</span>&nbsp;\n <span *ngIf=\"slide?.textAfterIcon\">{{ translateLabels(slide?.textAfterIcon, 'appKarmapointsPanel') }}</span>\n </div>\n <mat-icon class=\"cursor-pointer ws-mat-black60-text info-icon\" [matTooltip]=\"translateLabels(slide?.toolTipText, 'appKarmapointsPanel')\"\n *ngIf=\"slide?.toolTipText\">info_outline</mat-icon>\n </div>\n </ng-container>\n\n <ng-container>\n <div class=\"banner-meta\">\n <ng-container *ngIf=\"widgetData.type === 'image'\">\n <a [routerLink]=\" !isOpenInNewTab ? widgetData.sliderData[currentIndex].redirectUrl : './'\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData.sliderData[currentIndex].title\" [title]=\"widgetData.sliderData[currentIndex].title\">\n {{ widgetData.sliderData[currentIndex].title }}\n </a>\n </ng-container>\n\n <div class=\"dots-container\" *ngIf=\"widgetData.sliderData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex, 'dot-active': j === currentIndex, 'dot-grey': j !== currentIndex }\" *ngFor=\"let slide of widgetData.sliderData; let j = index\" (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.iconsDisplay\">\n <a *ngIf=\"widgetData.sliderData?.length > 1\" role=\"button\" class=\"prev\" (click)=\"slideTo(currentIndex - 1)\">&#10094;</a>\n <a *ngIf=\"widgetData.sliderData?.length > 1\" role=\"button\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\">&#10095;</a>\n </ng-container>\n\n</div>\n", styles: [".banner-container{min-height:243px;overflow:hidden;position:relative;margin:auto;border-radius:12px}.banner-overlay{z-index:1;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left,#00000040,#0000 15% 85%,#00000040)}.banner{-webkit-animation-name:fade;-webkit-animation-duration:1.5s;animation-name:fade;animation-duration:1.5s;min-height:50px}.banner .banner-image{width:100%;min-height:243px;display:block;border-radius:12px}.tips{min-height:30px}.banner-meta{text-align:center;z-index:2;padding:4px 8px;position:absolute;bottom:0;left:50%;border-radius:12px;transform:translate(-50%);box-sizing:border-box}.banner-meta .banner-title{color:#f2f2f2;margin-bottom:4px;font-size:1.1rem}.banner-meta .dots-container{padding:4px;display:flex;align-items:center;justify-content:center}.banner-meta .dots-container .dot{cursor:pointer;height:4px;width:4px;margin:0 6px;background-color:#d3d3d3;box-shadow:1px 1px 4px #0009;border-radius:50%;display:inline-block;transition:background-color .5s ease!important}.banner-meta .dots-container .dot.active{background-color:#f0f0f0;height:5px;width:5px}@keyframes fade{0%{opacity:.25}to{opacity:1}}.prev,.next{cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);padding:16px;color:#fff;font-weight:700;font-size:24px;z-index:2;border-radius:0 3px 3px 0}.next{right:0;border-radius:3px 0 0 3px}.banner-container-solo{overflow:hidden;margin:auto;border-radius:12px}.banner-image-solo{width:100%;display:block;border-radius:12px}.banner-data{opacity:1;color:#000000de;font-family:Lato-Regular;font-size:.75rem;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:left;line-height:16px}.color-green{color:#1d8923}.color-red{color:#c41112}.data-analysis{opacity:1;font-family:Lato-Regular;font-size:.75rem;font-weight:400;font-style:normal;letter-spacing:.21px;text-align:left;line-height:16px}.data-analysis mat-icon{width:18px;height:18px;font-size:1.2rem}.dot-grey{opacity:.2;background-color:#1b2133!important;width:4px!important;height:4px!important;box-shadow:unset!important}.dot-active{width:8px!important;height:4px!important;border-radius:2px!important;opacity:1;background-color:#f3962f!important;box-shadow:unset!important}.slider-container{background:#ef951e29!important;padding:16px}.text-no-wrap{text-wrap:nowrap;margin-top:4px!important}.icon-stats{margin-right:4px}.info-icon{width:16px;height:16px;font-size:16px}.cursor-auto{cursor:auto}.flex{display:flex}.flex-middle{align-items:center}.flex-row{flex-direction:row}.items-center{align-items:center}.gap-2{gap:.5rem}.mb-4{margin-bottom:1rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.margin-bottom-xs{margin-bottom:4px}.margin-right-m{margin-right:16px}.margin-remove{margin:0}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cursor-pointer{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.ImageResponsiveDirective, selector: "[wsUtilsImageResponsive]", inputs: ["src"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
102
102
  }
103
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SlidersDynamicComponent, decorators: [{
104
104
  type: Component,
105
- args: [{ selector: 'ws-widget-sliders-dynamic', template: "<div class=\"banner-container\" (swipeleft)=\"slideTo(currentIndex + 1)\" [ngClass]=\"widgetData?.cardClass\" (swiperight)=\"slideTo(currentIndex - 1)\" [ngStyle]=\"{'min-height': widgetData?.height}\" *ngIf=\"widgetData?.sliderData?.length > 0\">\n <ng-container *ngIf=\"widgetData.type === 'image'\">\n <a (click)=\"raiseTelemetry(widgetData.sliderData[currentIndex].redirectUrl)\"\n [routerLink]=\" !isOpenInNewTab ? widgetData.sliderData[currentIndex].redirectUrl : './'\" class=\"banner-overlay\"\n [ngClass]=\"{'cursor-auto': !widgetData.sliderData[currentIndex].redirectUrl}\">\n <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData.sliderData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"banner-image\" />\n </div>\n </a>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.type === 'data'\">\n <div class=\"banner WidgetInstanceId flex margin-bottom-xs\" *ngFor=\"let slide of widgetData.sliderData; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"banner-data flex margin-right-m \">\n {{ widgetData.sliderData[currentIndex].title }}\n </div>\n <div class=\"flex data-analysis flex-middle\" [ngClass]=\"widgetData.sliderData[currentIndex].colorData\" *ngIf=\"widgetData.sliderData[currentIndex].data\">\n <mat-icon class=\"icon-stats\">{{ widgetData.sliderData[currentIndex].icon }}</mat-icon>\n <p class=\"margin-remove text-no-wrap\">{{ widgetData.sliderData[currentIndex].data }}</p>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData?.type === 'tips'\">\n <ng-container *ngFor=\"let slide of widgetData?.sliderData; let i = index\">\n <div class=\"tips banner WidgetInstanceId flex margin-bottom-xs\" [hidden]=\"i !== currentIndex\">\n <div class=\"banner-data flex margin-right-m\">\n {{i + 1}}. {{ slide }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.type === 'karma-points'\">\n <div class=\"flex flex-row items-center gap-2 mb-4\" *ngFor=\"let slide of widgetData.sliderData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img src=\"/assets/icons/home/karma-badge.svg\" width=\"28px\" alt=\"karma-points image\" />\n <div class=\"text-xs\">\n <span *ngIf=\"slide?.textBeforeIcon\">{{ translateLabels(slide?.textBeforeIcon, 'appKarmapointsPanel') }}</span>&nbsp;\n <span *ngIf=\"slide?.points\" class=\"font-bold\">{{ slide?.points }} {{ translateLabels(slide?.textAfterPoints,\n 'appKarmapointsPanel') }}</span>&nbsp;\n <span *ngIf=\"slide?.textAfterIcon\">{{ translateLabels(slide?.textAfterIcon, 'appKarmapointsPanel') }}</span>\n </div>\n <mat-icon class=\"cursor-pointer ws-mat-black60-text info-icon\" [matTooltip]=\"translateLabels(slide?.toolTipText, 'appKarmapointsPanel')\"\n *ngIf=\"slide?.toolTipText\">info_outline</mat-icon>\n </div>\n </ng-container>\n\n <ng-container>\n <div class=\"banner-meta\">\n <ng-container *ngIf=\"widgetData.type === 'image'\">\n <a [routerLink]=\" !isOpenInNewTab ? widgetData.sliderData[currentIndex].redirectUrl : './'\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData.sliderData[currentIndex].title\" [title]=\"widgetData.sliderData[currentIndex].title\">\n {{ widgetData.sliderData[currentIndex].title }}\n </a>\n </ng-container>\n\n <div class=\"dots-container\" *ngIf=\"widgetData.sliderData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex, 'dot-active': j === currentIndex, 'dot-grey': j !== currentIndex }\" *ngFor=\"let slide of widgetData.sliderData; let j = index\" (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.iconsDisplay\">\n <a *ngIf=\"widgetData.sliderData?.length > 1\" role=\"button\" class=\"prev\" (click)=\"slideTo(currentIndex - 1)\">&#10094;</a>\n <a *ngIf=\"widgetData.sliderData?.length > 1\" role=\"button\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\">&#10095;</a>\n </ng-container>\n\n</div>\n", styles: [".banner-container{min-height:243px;overflow:hidden;position:relative;margin:auto;border-radius:12px}.banner-overlay{z-index:1;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left,#00000040,#0000 15% 85%,#00000040)}.banner{-webkit-animation-name:fade;-webkit-animation-duration:1.5s;animation-name:fade;animation-duration:1.5s;min-height:50px}.banner .banner-image{width:100%;min-height:243px;display:block;border-radius:12px}.tips{min-height:30px}.banner-meta{text-align:center;z-index:2;padding:4px 8px;position:absolute;bottom:0;left:50%;border-radius:12px;transform:translate(-50%);box-sizing:border-box}.banner-meta .banner-title{color:#f2f2f2;margin-bottom:4px;font-size:1.1rem}.banner-meta .dots-container{padding:4px;display:flex;align-items:center;justify-content:center}.banner-meta .dots-container .dot{cursor:pointer;height:4px;width:4px;margin:0 6px;background-color:#d3d3d3;box-shadow:1px 1px 4px #0009;border-radius:50%;display:inline-block;transition:background-color .5s ease!important}.banner-meta .dots-container .dot.active{background-color:#f0f0f0;height:5px;width:5px}@keyframes fade{0%{opacity:.25}to{opacity:1}}.prev,.next{cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);padding:16px;color:#fff;font-weight:700;font-size:24px;z-index:2;border-radius:0 3px 3px 0}.next{right:0;border-radius:3px 0 0 3px}.banner-container-solo{overflow:hidden;margin:auto;border-radius:12px}.banner-image-solo{width:100%;display:block;border-radius:12px}.banner-data{opacity:1;color:#000000de;font-family:Lato-Regular;font-size:.75rem;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:left;line-height:16px}.color-green{color:#1d8923}.color-red{color:#c41112}.data-analysis{opacity:1;font-family:Lato-Regular;font-size:.75rem;font-weight:400;font-style:normal;letter-spacing:.21px;text-align:left;line-height:16px}.data-analysis mat-icon{width:18px;height:18px;font-size:1.2rem}.dot-grey{opacity:.2;background-color:#1b2133!important;width:4px!important;height:4px!important;box-shadow:unset!important}.dot-active{width:8px!important;height:4px!important;border-radius:2px!important;opacity:1;background-color:#f3962f!important;box-shadow:unset!important}.slider-container{background:#ef951e29!important;padding:16px}.text-no-wrap{text-wrap:nowrap;margin-top:4px!important}.icon-stats{margin-right:4px}.info-icon{width:16px;height:16px;font-size:16px}.cursor-auto{cursor:auto}.flex{display:flex}.flex-middle{align-items:center}.flex-row{flex-direction:row}.items-center{align-items:center}.gap-2{gap:.5rem}.mb-4{margin-bottom:1rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.margin-bottom-xs{margin-bottom:4px}.margin-right-m{margin-right:16px}.margin-remove{margin:0}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cursor-pointer{cursor:pointer}\n"] }]
105
+ args: [{ selector: 'ws-widget-sliders-dynamic', template: "<div class=\"banner-container\" (swipeleft)=\"slideTo(currentIndex + 1)\" [ngClass]=\"widgetData?.cardClass\" (swiperight)=\"slideTo(currentIndex - 1)\" [ngStyle]=\"{'min-height': widgetData?.height}\" *ngIf=\"widgetData?.sliderData?.length > 0\">\n <ng-container *ngIf=\"widgetData.type === 'image'\">\n <a (click)=\"raiseTelemetry(widgetData.sliderData[currentIndex].redirectUrl)\"\n [routerLink]=\" !isOpenInNewTab ? widgetData.sliderData[currentIndex].redirectUrl : './'\" class=\"banner-overlay\"\n [ngClass]=\"{'cursor-auto': !widgetData.sliderData[currentIndex].redirectUrl}\">\n <div class=\"banner WidgetInstanceId\" *ngFor=\"let slide of widgetData.sliderData; let i = index\" [hidden]=\"i !== currentIndex\">\n <img i18n-alt alt=\"Page Banner\" [src]=\"slide.banners\" wsUtilsImageResponsive class=\"banner-image\" />\n </div>\n </a>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.type === 'data'\">\n <div class=\"banner WidgetInstanceId flex margin-bottom-xs\" *ngFor=\"let slide of widgetData.sliderData; let i = index\" [hidden]=\"i !== currentIndex\">\n <div class=\"banner-data flex margin-right-m \">\n {{ widgetData.sliderData[currentIndex].title }}\n </div>\n <div class=\"flex data-analysis flex-middle\" [ngClass]=\"widgetData.sliderData[currentIndex].colorData\" *ngIf=\"widgetData.sliderData[currentIndex].data\">\n <mat-icon class=\"icon-stats\">{{ widgetData.sliderData[currentIndex].icon }}</mat-icon>\n <p class=\"margin-remove text-no-wrap\">{{ widgetData.sliderData[currentIndex].data }}</p>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData?.type === 'tips'\">\n <ng-container *ngFor=\"let slide of widgetData?.sliderData; let i = index\">\n <div class=\"tips banner WidgetInstanceId flex margin-bottom-xs\" [hidden]=\"i !== currentIndex\">\n <div class=\"banner-data flex margin-right-m\">\n {{i + 1}}. {{ slide }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.type === 'karma-points'\">\n <div class=\"flex flex-row items-center gap-2 mb-4\" *ngFor=\"let slide of widgetData.sliderData; let i = index\"\n [hidden]=\"i !== currentIndex\">\n <img [src]=\"slide?.displayButton === 'Quick Learner Badge'\n ? '/assets/icons/badges/Medal.svg'\n : '/assets/icons/home/karma-badge.svg'\" width=\"28px\" alt=\"karma-points image\" />\n <div class=\"text-xs\">\n <span *ngIf=\"slide?.textBeforeIcon\">\n {{\n slide?.displayButton === 'Quick Learner Badge'\n ? slide?.textBeforeIcon\n : translateLabels(slide?.textBeforeIcon, 'appKarmapointsPanel')\n }}\n </span>&nbsp;\n <span *ngIf=\"slide?.points\" class=\"font-bold\">{{ slide?.points }} {{ translateLabels(slide?.textAfterPoints,\n 'appKarmapointsPanel') }}</span>&nbsp;\n <span *ngIf=\"slide?.textAfterIcon\">{{ translateLabels(slide?.textAfterIcon, 'appKarmapointsPanel') }}</span>\n </div>\n <mat-icon class=\"cursor-pointer ws-mat-black60-text info-icon\" [matTooltip]=\"translateLabels(slide?.toolTipText, 'appKarmapointsPanel')\"\n *ngIf=\"slide?.toolTipText\">info_outline</mat-icon>\n </div>\n </ng-container>\n\n <ng-container>\n <div class=\"banner-meta\">\n <ng-container *ngIf=\"widgetData.type === 'image'\">\n <a [routerLink]=\" !isOpenInNewTab ? widgetData.sliderData[currentIndex].redirectUrl : './'\" class=\"banner-title text-truncate\"\n *ngIf=\"widgetData.sliderData[currentIndex].title\" [title]=\"widgetData.sliderData[currentIndex].title\">\n {{ widgetData.sliderData[currentIndex].title }}\n </a>\n </ng-container>\n\n <div class=\"dots-container\" *ngIf=\"widgetData.sliderData?.length > 1\">\n <span class=\"dot\" [ngClass]=\"{ active: j === currentIndex, 'dot-active': j === currentIndex, 'dot-grey': j !== currentIndex }\" *ngFor=\"let slide of widgetData.sliderData; let j = index\" (click)=\"slideTo(j)\"></span>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"widgetData.iconsDisplay\">\n <a *ngIf=\"widgetData.sliderData?.length > 1\" role=\"button\" class=\"prev\" (click)=\"slideTo(currentIndex - 1)\">&#10094;</a>\n <a *ngIf=\"widgetData.sliderData?.length > 1\" role=\"button\" class=\"next\" (click)=\"slideTo(currentIndex + 1)\">&#10095;</a>\n </ng-container>\n\n</div>\n", styles: [".banner-container{min-height:243px;overflow:hidden;position:relative;margin:auto;border-radius:12px}.banner-overlay{z-index:1;top:0;left:0;width:100%;height:100%;background:linear-gradient(to left,#00000040,#0000 15% 85%,#00000040)}.banner{-webkit-animation-name:fade;-webkit-animation-duration:1.5s;animation-name:fade;animation-duration:1.5s;min-height:50px}.banner .banner-image{width:100%;min-height:243px;display:block;border-radius:12px}.tips{min-height:30px}.banner-meta{text-align:center;z-index:2;padding:4px 8px;position:absolute;bottom:0;left:50%;border-radius:12px;transform:translate(-50%);box-sizing:border-box}.banner-meta .banner-title{color:#f2f2f2;margin-bottom:4px;font-size:1.1rem}.banner-meta .dots-container{padding:4px;display:flex;align-items:center;justify-content:center}.banner-meta .dots-container .dot{cursor:pointer;height:4px;width:4px;margin:0 6px;background-color:#d3d3d3;box-shadow:1px 1px 4px #0009;border-radius:50%;display:inline-block;transition:background-color .5s ease!important}.banner-meta .dots-container .dot.active{background-color:#f0f0f0;height:5px;width:5px}@keyframes fade{0%{opacity:.25}to{opacity:1}}.prev,.next{cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);padding:16px;color:#fff;font-weight:700;font-size:24px;z-index:2;border-radius:0 3px 3px 0}.next{right:0;border-radius:3px 0 0 3px}.banner-container-solo{overflow:hidden;margin:auto;border-radius:12px}.banner-image-solo{width:100%;display:block;border-radius:12px}.banner-data{opacity:1;color:#000000de;font-family:Lato-Regular;font-size:.75rem;font-weight:400;font-style:normal;letter-spacing:.25px;text-align:left;line-height:16px}.color-green{color:#1d8923}.color-red{color:#c41112}.data-analysis{opacity:1;font-family:Lato-Regular;font-size:.75rem;font-weight:400;font-style:normal;letter-spacing:.21px;text-align:left;line-height:16px}.data-analysis mat-icon{width:18px;height:18px;font-size:1.2rem}.dot-grey{opacity:.2;background-color:#1b2133!important;width:4px!important;height:4px!important;box-shadow:unset!important}.dot-active{width:8px!important;height:4px!important;border-radius:2px!important;opacity:1;background-color:#f3962f!important;box-shadow:unset!important}.slider-container{background:#ef951e29!important;padding:16px}.text-no-wrap{text-wrap:nowrap;margin-top:4px!important}.icon-stats{margin-right:4px}.info-icon{width:16px;height:16px;font-size:16px}.cursor-auto{cursor:auto}.flex{display:flex}.flex-middle{align-items:center}.flex-row{flex-direction:row}.items-center{align-items:center}.gap-2{gap:.5rem}.mb-4{margin-bottom:1rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.margin-bottom-xs{margin-bottom:4px}.margin-right-m{margin-right:16px}.margin-remove{margin:0}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cursor-pointer{cursor:pointer}\n"] }]
106
106
  }], ctorParameters: function () { return [{ type: i1.EventService }, { type: i2.TranslateService }, { type: i1.MultilingualTranslationsService }]; }, propDecorators: { widgetData: [{
107
107
  type: Input
108
108
  }], id: [{
109
109
  type: HostBinding,
110
110
  args: ['id']
111
111
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVycy1keW5hbWljLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9zbGlkZXJzLWR5bmFtaWMvc2xpZGVycy1keW5hbWljLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9zbGlkZXJzLWR5bmFtaWMvc2xpZGVycy1keW5hbWljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUVyRSxPQUFPLEVBQWdCLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUU3QyxPQUFPLEVBQWlELFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFBOzs7Ozs7OztBQU85RixNQUFNLE9BQU8sdUJBQXVCO0lBT2xDLFlBQ1UsTUFBb0IsRUFDcEIsU0FBMkIsRUFDM0IsZ0JBQWlEO1FBRmpELFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQztRQVBwRCxPQUFFLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQTtRQUNyQyxpQkFBWSxHQUFHLENBQUMsQ0FBQTtRQUNoQixrQkFBYSxHQUF3QixJQUFJLENBQUE7UUFNdkMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDbkMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBRSxDQUFBO1lBQ3JELElB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VyxDQUFDLENBQUE7YUFDckM7U0FDRjtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsU0FBNkI7UUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ25CLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFBO1FBRXpDLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQ2hDO1lBQ0UsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsUUFBUTtTQUNsQixFQUNEO1lBQ0UsT0FBTyxFQUFFLEdBQUc7WUFDWixpQkFBaUIsRUFBRSxTQUFTO1NBQzdCLEVBQ0Q7WUFDRSxTQUFTLEVBQUUsUUFBUTtZQUNuQixNQUFNLEVBQUUsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE9BQU87U0FDaEQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhLEVBQUUsSUFBUztRQUN0QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzFFLENBQUM7K0dBakdVLHVCQUF1QjttR0FBdkIsdUJBQXVCLGtKQ1hwQyw4cElBb0VBOzs0RkR6RGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLDJCQUEyQjtnTEFLNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFFQyxFQUFFO3NCQURSLFdBQVc7dUJBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgSUNhcm91c2VsIH0gZnJvbSAnLi9zbGlkZXJzLWR5bmFtaWMubW9kZWwnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGludGVydmFsIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSwgRXZlbnRTZXJ2aWNlLCBXc0V2ZW50cyB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy13aWRnZXQtc2xpZGVycy1keW5hbWljJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlcnMtZHluYW1pYy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NsaWRlcnMtZHluYW1pYy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlkZXJzRHluYW1pY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHdpZGdldERhdGEhOiBJQ2Fyb3VzZWxcbiAgQEhvc3RCaW5kaW5nKCdpZCcpXG4gIHB1YmxpYyBpZCA9IGBiYW5uZXJfJHtNYXRoLnJhbmRvbSgpfWBcbiAgY3VycmVudEluZGV4ID0gMFxuICBzbGlkZUludGVydmFsOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXZlbnRzOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5nVHJhbnNsYXRpb25zOiBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlKSB7XG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSkge1xuICAgICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcoJ2VuJylcbiAgICAgIGNvbnN0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykhXG4gICAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZylcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlSW5pdGlhdGVTbGlkZUludGVydmFsKClcbiAgfVxuXG4gIHJlSW5pdGlhdGVTbGlkZUludGVydmFsKCkge1xuICAgIGlmICh0aGlzLndpZGdldERhdGEgJiYgdGhpcy53aWRnZXREYXRhLnNsaWRlckRhdGEgJiYgdGhpcy53aWRnZXREYXRhLnNsaWRlckRhdGEubGVuZ3RoID4gMSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHRoaXMuc2xpZGVJbnRlcnZhbCkge1xuICAgICAgICAgIHRoaXMuc2xpZGVJbnRlcnZhbC51bnN1YnNjcmliZSgpXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuc2xpZGVJbnRlcnZhbCA9IGludGVydmFsKDgwMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4ID09PSB0aGlzLndpZGdldERhdGEuc2xpZGVyRGF0YS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDBcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggKz0gMVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzbGlkZVRvKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy53aWRnZXREYXRhICYmIHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhKSB7XG4gICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4XG4gICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSB0aGlzLndpZGdldERhdGEuc2xpZGVyRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAwXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhLmxlbmd0aCArIGluZGV4XG4gICAgICB9XG4gICAgICB0aGlzLnJlSW5pdGlhdGVTbGlkZUludGVydmFsKClcbiAgICB9XG4gIH1cblxuICBnZXQgaXNPcGVuSW5OZXdUYWIoKSB7XG4gICAgaWYgKHRoaXMud2lkZ2V0RGF0YSAmJiB0aGlzLndpZGdldERhdGEuc2xpZGVyRGF0YSkge1xuICAgICAgY29uc3QgY3VycmVudERhdGEgPSB0aGlzLndpZGdldERhdGEuc2xpZGVyRGF0YVt0aGlzLmN1cnJlbnRJbmRleF1cbiAgICAgIGlmIChjdXJyZW50RGF0YSAmJiBjdXJyZW50RGF0YS5yZWRpcmVjdFVybCAmJiBjdXJyZW50RGF0YS5yZWRpcmVjdFVybC5pbmNsdWRlcygnbWFpbHRvJykgfHxcbiAgICAgICB0aGlzLndpZGdldERhdGEuc2xpZGVyRGF0YVt0aGlzLmN1cnJlbnRJbmRleF0/Lm9wZW5Jbk5ld1RhYikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIG9wZW5Jbk5ld1RhYigpIHtcbiAgICBpZiAodGhpcy53aWRnZXREYXRhICYmIHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhKSB7XG4gICAgICBjb25zdCBjdXJyZW50RGF0YSA9IHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhW3RoaXMuY3VycmVudEluZGV4XVxuICAgICAgaWYgKGN1cnJlbnREYXRhICYmIGN1cnJlbnREYXRhLnJlZGlyZWN0VXJsICYmIGN1cnJlbnREYXRhLnJlZGlyZWN0VXJsLmluY2x1ZGVzKCdtYWlsdG8nKSB8fFxuICAgICAgIHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhW3RoaXMuY3VycmVudEluZGV4XT8ub3BlbkluTmV3VGFiKSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKGN1cnJlbnREYXRhLnJlZGlyZWN0VXJsKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJhaXNlVGVsZW1ldHJ5KGJhbm5lclVybDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5vcGVuSW5OZXdUYWIoKVxuICAgIGNvbnN0IHBhdGggPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgnLycsICcnKVxuICAgIGNvbnN0IHVybCA9IHBhdGggKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoXG5cbiAgICB0aGlzLmV2ZW50cy5yYWlzZUludGVyYWN0VGVsZW1ldHJ5KFxuICAgICAge1xuICAgICAgICB0eXBlOiAnY2xpY2snLFxuICAgICAgICBzdWJUeXBlOiAnYmFubmVyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhZ2VVcmw6IHVybCxcbiAgICAgICAgYmFubmVyUmVkaXJlY3RVcmw6IGJhbm5lclVybCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhZ2VJZEV4dDogJ2Jhbm5lcicsXG4gICAgICAgIG1vZHVsZTogV3NFdmVudHMuRW51bVRlbGVtZXRyeW1vZHVsZXMuQ09OVEVOVCxcbiAgICB9KVxuICB9XG5cbiAgdHJhbnNsYXRlTGFiZWxzKGxhYmVsOiBzdHJpbmcsIHR5cGU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmxhbmdUcmFuc2xhdGlvbnMudHJhbnNsYXRlTGFiZWxXaXRob3V0c3BhY2UobGFiZWwsIHR5cGUsICcnKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYmFubmVyLWNvbnRhaW5lclwiIChzd2lwZWxlZnQpPVwic2xpZGVUbyhjdXJyZW50SW5kZXggKyAxKVwiIFtuZ0NsYXNzXT1cIndpZGdldERhdGE/LmNhcmRDbGFzc1wiIChzd2lwZXJpZ2h0KT1cInNsaWRlVG8oY3VycmVudEluZGV4IC0gMSlcIiBbbmdTdHlsZV09XCJ7J21pbi1oZWlnaHQnOiB3aWRnZXREYXRhPy5oZWlnaHR9XCIgKm5nSWY9XCJ3aWRnZXREYXRhPy5zbGlkZXJEYXRhPy5sZW5ndGggPiAwXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aWRnZXREYXRhLnR5cGUgPT09ICdpbWFnZSdcIj5cbiAgICA8YSAoY2xpY2spPVwicmFpc2VUZWxlbWV0cnkod2lkZ2V0RGF0YS5zbGlkZXJEYXRhW2N1cnJlbnRJbmRleF0ucmVkaXJlY3RVcmwpXCJcbiAgICBbcm91dGVyTGlua109XCIgIWlzT3BlbkluTmV3VGFiID8gd2lkZ2V0RGF0YS5zbGlkZXJEYXRhW2N1cnJlbnRJbmRleF0ucmVkaXJlY3RVcmwgOiAnLi8nXCIgY2xhc3M9XCJiYW5uZXItb3ZlcmxheVwiXG4gICAgW25nQ2xhc3NdPVwieydjdXJzb3ItYXV0byc6ICF3aWRnZXREYXRhLnNsaWRlckRhdGFbY3VycmVudEluZGV4XS5yZWRpcmVjdFVybH1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXIgV2lkZ2V0SW5zdGFuY2VJZFwiICpuZ0Zvcj1cImxldCBzbGlkZSBvZiB3aWRnZXREYXRhLnNsaWRlckRhdGE7IGxldCBpID0gaW5kZXhcIiBbaGlkZGVuXT1cImkgIT09IGN1cnJlbnRJbmRleFwiPlxuICAgICAgICA8aW1nIGkxOG4tYWx0IGFsdD1cIlBhZ2UgQmFubmVyXCIgW3NyY109XCJzbGlkZS5iYW5uZXJzXCIgd3NVdGlsc0ltYWdlUmVzcG9uc2l2ZSBjbGFzcz1cImJhbm5lci1pbWFnZVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2E+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aWRnZXREYXRhLnR5cGUgPT09ICdkYXRhJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJiYW5uZXIgV2lkZ2V0SW5zdGFuY2VJZCBmbGV4IG1hcmdpbi1ib3R0b20teHNcIiAqbmdGb3I9XCJsZXQgc2xpZGUgb2Ygd2lkZ2V0RGF0YS5zbGlkZXJEYXRhOyBsZXQgaSA9IGluZGV4XCIgW2hpZGRlbl09XCJpICE9PSBjdXJyZW50SW5kZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXItZGF0YSBmbGV4IG1hcmdpbi1yaWdodC1tIFwiPlxuICAgICAgICB7eyB3aWRnZXREYXRhLnNsaWRlckRhdGFbY3VycmVudEluZGV4XS50aXRsZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBkYXRhLWFuYWx5c2lzIGZsZXgtbWlkZGxlXCIgW25nQ2xhc3NdPVwid2lkZ2V0RGF0YS5zbGlkZXJEYXRhW2N1cnJlbnRJbmRleF0uY29sb3JEYXRhXCIgKm5nSWY9XCJ3aWRnZXREYXRhLnNsaWRlckRhdGFbY3VycmVudEluZGV4XS5kYXRhXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tc3RhdHNcIj57eyB3aWRnZXREYXRhLnNsaWRlckRhdGFbY3VycmVudEluZGV4XS5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgPHAgY2xhc3M9XCJtYXJnaW4tcmVtb3ZlIHRleHQtbm8td3JhcFwiPnt7IHdpZGdldERhdGEuc2xpZGVyRGF0YVtjdXJyZW50SW5kZXhdLmRhdGEgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldERhdGE/LnR5cGUgPT09ICd0aXBzJ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNsaWRlIG9mIHdpZGdldERhdGE/LnNsaWRlckRhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXBzIGJhbm5lciBXaWRnZXRJbnN0YW5jZUlkIGZsZXggbWFyZ2luLWJvdHRvbS14c1wiIFtoaWRkZW5dPVwiaSAhPT0gY3VycmVudEluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXItZGF0YSBmbGV4IG1hcmdpbi1yaWdodC1tXCI+XG4gICAgICAgICAge3tpICsgMX19LiB7eyBzbGlkZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0RGF0YS50eXBlID09PSAna2FybWEtcG9pbnRzJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi00XCIgKm5nRm9yPVwibGV0IHNsaWRlIG9mIHdpZGdldERhdGEuc2xpZGVyRGF0YTsgbGV0IGkgPSBpbmRleFwiIFtoaWRkZW5dPVwiaSAhPT0gY3VycmVudEluZGV4XCI+XG4gICAgICA8aW1nIHNyYz1cIi9hc3NldHMvaWNvbnMvaG9tZS9rYXJtYS1iYWRnZS5zdmdcIiB3aWR0aD1cIjI4cHhcIiBhbHQ9XCJrYXJtYS1wb2ludHMgaW1hZ2VcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQteHNcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzbGlkZT8udGV4dEJlZm9yZUljb25cIj57eyB0cmFuc2xhdGVMYWJlbHMoc2xpZGU/LnRleHRCZWZvcmVJY29uLCAnYXBwS2FybWFwb2ludHNQYW5lbCcpIH19PC9zcGFuPiZuYnNwO1xuICAgICAgICA8c3BhbiAqbmdJZj1cInNsaWRlPy5wb2ludHNcIiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IHNsaWRlPy5wb2ludHMgfX0ge3sgdHJhbnNsYXRlTGFiZWxzKHNsaWRlPy50ZXh0QWZ0ZXJQb2ludHMsXG4gICAgICAgICdhcHBLYXJtYXBvaW50c1BhbmVsJykgfX08L3NwYW4+Jm5ic3A7XG4gICAgICAgIDxzcGFuICpuZ0lmPVwic2xpZGU/LnRleHRBZnRlckljb25cIj57eyB0cmFuc2xhdGVMYWJlbHMoc2xpZGU/LnRleHRBZnRlckljb24sICdhcHBLYXJtYXBvaW50c1BhbmVsJykgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImN1cnNvci1wb2ludGVyIHdzLW1hdC1ibGFjazYwLXRleHQgaW5mby1pY29uXCIgW21hdFRvb2x0aXBdPVwidHJhbnNsYXRlTGFiZWxzKHNsaWRlPy50b29sVGlwVGV4dCwgJ2FwcEthcm1hcG9pbnRzUGFuZWwnKVwiXG4gICAgICAgICpuZ0lmPVwic2xpZGU/LnRvb2xUaXBUZXh0XCI+aW5mb19vdXRsaW5lPC9tYXQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiYmFubmVyLW1ldGFcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aWRnZXREYXRhLnR5cGUgPT09ICdpbWFnZSdcIj5cbiAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiICFpc09wZW5Jbk5ld1RhYiA/IHdpZGdldERhdGEuc2xpZGVyRGF0YVtjdXJyZW50SW5kZXhdLnJlZGlyZWN0VXJsIDogJy4vJ1wiIGNsYXNzPVwiYmFubmVyLXRpdGxlIHRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAqbmdJZj1cIndpZGdldERhdGEuc2xpZGVyRGF0YVtjdXJyZW50SW5kZXhdLnRpdGxlXCIgW3RpdGxlXT1cIndpZGdldERhdGEuc2xpZGVyRGF0YVtjdXJyZW50SW5kZXhdLnRpdGxlXCI+XG4gICAgICAgICAge3sgd2lkZ2V0RGF0YS5zbGlkZXJEYXRhW2N1cnJlbnRJbmRleF0udGl0bGUgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkb3RzLWNvbnRhaW5lclwiICpuZ0lmPVwid2lkZ2V0RGF0YS5zbGlkZXJEYXRhPy5sZW5ndGggPiAxXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZG90XCIgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGogPT09IGN1cnJlbnRJbmRleCwgJ2RvdC1hY3RpdmUnOiBqID09PSBjdXJyZW50SW5kZXgsICdkb3QtZ3JleSc6IGogIT09IGN1cnJlbnRJbmRleCB9XCIgKm5nRm9yPVwibGV0IHNsaWRlIG9mIHdpZGdldERhdGEuc2xpZGVyRGF0YTsgbGV0IGogPSBpbmRleFwiIChjbGljayk9XCJzbGlkZVRvKGopXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aWRnZXREYXRhLmljb25zRGlzcGxheVwiPlxuICAgIDxhICpuZ0lmPVwid2lkZ2V0RGF0YS5zbGlkZXJEYXRhPy5sZW5ndGggPiAxXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwicHJldlwiIChjbGljayk9XCJzbGlkZVRvKGN1cnJlbnRJbmRleCAtIDEpXCI+JiMxMDA5NDs8L2E+XG4gICAgPGEgKm5nSWY9XCJ3aWRnZXREYXRhLnNsaWRlckRhdGE/Lmxlbmd0aCA+IDFcIiByb2xlPVwiYnV0dG9uXCIgY2xhc3M9XCJuZXh0XCIgKGNsaWNrKT1cInNsaWRlVG8oY3VycmVudEluZGV4ICsgMSlcIj4mIzEwMDk1OzwvYT5cbiAgPC9uZy1jb250YWluZXI+XG5cbjwvZGl2PlxuIl19
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVycy1keW5hbWljLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9zbGlkZXJzLWR5bmFtaWMvc2xpZGVycy1keW5hbWljLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90b2Mvc3JjL2xpYi9fY29sbGVjdGlvbi9zbGlkZXJzLWR5bmFtaWMvc2xpZGVycy1keW5hbWljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQTtBQUVyRSxPQUFPLEVBQWdCLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUU3QyxPQUFPLEVBQWlELFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFBOzs7Ozs7OztBQU85RixNQUFNLE9BQU8sdUJBQXVCO0lBT2xDLFlBQ1UsTUFBb0IsRUFDcEIsU0FBMkIsRUFDM0IsZ0JBQWlEO1FBRmpELFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQztRQVBwRCxPQUFFLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQTtRQUNyQyxpQkFBWSxHQUFHLENBQUMsQ0FBQTtRQUNoQixrQkFBYSxHQUF3QixJQUFJLENBQUE7UUFNdkMsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDbkMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBRSxDQUFBO1lBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzFGLElBQUk7Z0JBQ0YsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFBO2lCQUNqQzthQUNGO1lBQUMsT0FBTyxDQUFDLEVBQUU7YUFDWDtvQkFBUztnQkFDUixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNqRCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDL0QsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUE7cUJBQ3RCO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFBO3FCQUN2QjtnQkFDSCxDQUFDLENBQUMsQ0FBQTthQUNIO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFO1lBQ2pELElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUMzRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQTthQUMxQjtpQkFBTSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFBO2FBQ3RCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTthQUM5RDtZQUNELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO1NBQy9CO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUU7WUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQ2pFLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO2dCQUN2RixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsWUFBWSxFQUFFO2dCQUM1RCxPQUFPLElBQUksQ0FBQTthQUNaO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFO1lBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUNqRSxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztnQkFDdkYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFlBQVksRUFBRTtnQkFDNUQsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUE7YUFDckM7U0FDRjtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsU0FBNkI7UUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ25CLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFBO1FBRXpDLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQ2hDO1lBQ0UsSUFBSSxFQUFFLE9BQU87WUFDYixPQUFPLEVBQUUsUUFBUTtTQUNsQixFQUNEO1lBQ0UsT0FBTyxFQUFFLEdBQUc7WUFDWixpQkFBaUIsRUFBRSxTQUFTO1NBQzdCLEVBQ0Q7WUFDRSxTQUFTLEVBQUUsUUFBUTtZQUNuQixNQUFNLEVBQUUsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE9BQU87U0FDaEQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhLEVBQUUsSUFBUztRQUN0QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzFFLENBQUM7K0dBakdVLHVCQUF1QjttR0FBdkIsdUJBQXVCLGtKQ1hwQyxrNUlBNkVBOzs0RkRsRWEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLDJCQUEyQjtnTEFLNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFFQyxFQUFFO3NCQURSLFdBQVc7dUJBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgSUNhcm91c2VsIH0gZnJvbSAnLi9zbGlkZXJzLWR5bmFtaWMubW9kZWwnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGludGVydmFsIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgTXVsdGlsaW5ndWFsVHJhbnNsYXRpb25zU2VydmljZSwgRXZlbnRTZXJ2aWNlLCBXc0V2ZW50cyB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3cy13aWRnZXQtc2xpZGVycy1keW5hbWljJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlcnMtZHluYW1pYy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NsaWRlcnMtZHluYW1pYy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTbGlkZXJzRHluYW1pY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHdpZGdldERhdGEhOiBJQ2Fyb3VzZWxcbiAgQEhvc3RCaW5kaW5nKCdpZCcpXG4gIHB1YmxpYyBpZCA9IGBiYW5uZXJfJHtNYXRoLnJhbmRvbSgpfWBcbiAgY3VycmVudEluZGV4ID0gMFxuICBzbGlkZUludGVydmFsOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXZlbnRzOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5nVHJhbnNsYXRpb25zOiBNdWx0aWxpbmd1YWxUcmFuc2xhdGlvbnNTZXJ2aWNlKSB7XG4gICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3ZWJzaXRlTGFuZ3VhZ2UnKSkge1xuICAgICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcoJ2VuJylcbiAgICAgIGNvbnN0IGxhbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnd2Vic2l0ZUxhbmd1YWdlJykhXG4gICAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZylcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlSW5pdGlhdGVTbGlkZUludGVydmFsKClcbiAgfVxuXG4gIHJlSW5pdGlhdGVTbGlkZUludGVydmFsKCkge1xuICAgIGlmICh0aGlzLndpZGdldERhdGEgJiYgdGhpcy53aWRnZXREYXRhLnNsaWRlckRhdGEgJiYgdGhpcy53aWRnZXREYXRhLnNsaWRlckRhdGEubGVuZ3RoID4gMSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHRoaXMuc2xpZGVJbnRlcnZhbCkge1xuICAgICAgICAgIHRoaXMuc2xpZGVJbnRlcnZhbC51bnN1YnNjcmliZSgpXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuc2xpZGVJbnRlcnZhbCA9IGludGVydmFsKDgwMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4ID09PSB0aGlzLndpZGdldERhdGEuc2xpZGVyRGF0YS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDBcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggKz0gMVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzbGlkZVRvKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy53aWRnZXREYXRhICYmIHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhKSB7XG4gICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4XG4gICAgICB9IGVsc2UgaWYgKGluZGV4ID09PSB0aGlzLndpZGdldERhdGEuc2xpZGVyRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAwXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhLmxlbmd0aCArIGluZGV4XG4gICAgICB9XG4gICAgICB0aGlzLnJlSW5pdGlhdGVTbGlkZUludGVydmFsKClcbiAgICB9XG4gIH1cblxuICBnZXQgaXNPcGVuSW5OZXdUYWIoKSB7XG4gICAgaWYgKHRoaXMud2lkZ2V0RGF0YSAmJiB0aGlzLndpZGdldERhdGEuc2xpZGVyRGF0YSkge1xuICAgICAgY29uc3QgY3VycmVudERhdGEgPSB0aGlzLndpZGdldERhdGEuc2xpZGVyRGF0YVt0aGlzLmN1cnJlbnRJbmRleF1cbiAgICAgIGlmIChjdXJyZW50RGF0YSAmJiBjdXJyZW50RGF0YS5yZWRpcmVjdFVybCAmJiBjdXJyZW50RGF0YS5yZWRpcmVjdFVybC5pbmNsdWRlcygnbWFpbHRvJykgfHxcbiAgICAgICB0aGlzLndpZGdldERhdGEuc2xpZGVyRGF0YVt0aGlzLmN1cnJlbnRJbmRleF0/Lm9wZW5Jbk5ld1RhYikge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIG9wZW5Jbk5ld1RhYigpIHtcbiAgICBpZiAodGhpcy53aWRnZXREYXRhICYmIHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhKSB7XG4gICAgICBjb25zdCBjdXJyZW50RGF0YSA9IHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhW3RoaXMuY3VycmVudEluZGV4XVxuICAgICAgaWYgKGN1cnJlbnREYXRhICYmIGN1cnJlbnREYXRhLnJlZGlyZWN0VXJsICYmIGN1cnJlbnREYXRhLnJlZGlyZWN0VXJsLmluY2x1ZGVzKCdtYWlsdG8nKSB8fFxuICAgICAgIHRoaXMud2lkZ2V0RGF0YS5zbGlkZXJEYXRhW3RoaXMuY3VycmVudEluZGV4XT8ub3BlbkluTmV3VGFiKSB7XG4gICAgICAgIHdpbmRvdy5vcGVuKGN1cnJlbnREYXRhLnJlZGlyZWN0VXJsKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJhaXNlVGVsZW1ldHJ5KGJhbm5lclVybDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5vcGVuSW5OZXdUYWIoKVxuICAgIGNvbnN0IHBhdGggPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgnLycsICcnKVxuICAgIGNvbnN0IHVybCA9IHBhdGggKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoXG5cbiAgICB0aGlzLmV2ZW50cy5yYWlzZUludGVyYWN0VGVsZW1ldHJ5KFxuICAgICAge1xuICAgICAgICB0eXBlOiAnY2xpY2snLFxuICAgICAgICBzdWJUeXBlOiAnYmFubmVyJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhZ2VVcmw6IHVybCxcbiAgICAgICAgYmFubmVyUmVkaXJlY3RVcmw6IGJhbm5lclVybCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhZ2VJZEV4dDogJ2Jhbm5lcicsXG4gICAgICAgIG1vZHVsZTogV3NFdmVudHMuRW51bVRlbGVtZXRyeW1vZHVsZXMuQ09OVEVOVCxcbiAgICB9KVxuICB9XG5cbiAgdHJhbnNsYXRlTGFiZWxzKGxhYmVsOiBzdHJpbmcsIHR5cGU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmxhbmdUcmFuc2xhdGlvbnMudHJhbnNsYXRlTGFiZWxXaXRob3V0c3BhY2UobGFiZWwsIHR5cGUsICcnKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYmFubmVyLWNvbnRhaW5lclwiIChzd2lwZWxlZnQpPVwic2xpZGVUbyhjdXJyZW50SW5kZXggKyAxKVwiIFtuZ0NsYXNzXT1cIndpZGdldERhdGE/LmNhcmRDbGFzc1wiIChzd2lwZXJpZ2h0KT1cInNsaWRlVG8oY3VycmVudEluZGV4IC0gMSlcIiBbbmdTdHlsZV09XCJ7J21pbi1oZWlnaHQnOiB3aWRnZXREYXRhPy5oZWlnaHR9XCIgKm5nSWY9XCJ3aWRnZXREYXRhPy5zbGlkZXJEYXRhPy5sZW5ndGggPiAwXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aWRnZXREYXRhLnR5cGUgPT09ICdpbWFnZSdcIj5cbiAgICA8YSAoY2xpY2spPVwicmFpc2VUZWxlbWV0cnkod2lkZ2V0RGF0YS5zbGlkZXJEYXRhW2N1cnJlbnRJbmRleF0ucmVkaXJlY3RVcmwpXCJcbiAgICBbcm91dGVyTGlua109XCIgIWlzT3BlbkluTmV3VGFiID8gd2lkZ2V0RGF0YS5zbGlkZXJEYXRhW2N1cnJlbnRJbmRleF0ucmVkaXJlY3RVcmwgOiAnLi8nXCIgY2xhc3M9XCJiYW5uZXItb3ZlcmxheVwiXG4gICAgW25nQ2xhc3NdPVwieydjdXJzb3ItYXV0byc6ICF3aWRnZXREYXRhLnNsaWRlckRhdGFbY3VycmVudEluZGV4XS5yZWRpcmVjdFVybH1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXIgV2lkZ2V0SW5zdGFuY2VJZFwiICpuZ0Zvcj1cImxldCBzbGlkZSBvZiB3aWRnZXREYXRhLnNsaWRlckRhdGE7IGxldCBpID0gaW5kZXhcIiBbaGlkZGVuXT1cImkgIT09IGN1cnJlbnRJbmRleFwiPlxuICAgICAgICA8aW1nIGkxOG4tYWx0IGFsdD1cIlBhZ2UgQmFubmVyXCIgW3NyY109XCJzbGlkZS5iYW5uZXJzXCIgd3NVdGlsc0ltYWdlUmVzcG9uc2l2ZSBjbGFzcz1cImJhbm5lci1pbWFnZVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2E+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aWRnZXREYXRhLnR5cGUgPT09ICdkYXRhJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJiYW5uZXIgV2lkZ2V0SW5zdGFuY2VJZCBmbGV4IG1hcmdpbi1ib3R0b20teHNcIiAqbmdGb3I9XCJsZXQgc2xpZGUgb2Ygd2lkZ2V0RGF0YS5zbGlkZXJEYXRhOyBsZXQgaSA9IGluZGV4XCIgW2hpZGRlbl09XCJpICE9PSBjdXJyZW50SW5kZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXItZGF0YSBmbGV4IG1hcmdpbi1yaWdodC1tIFwiPlxuICAgICAgICB7eyB3aWRnZXREYXRhLnNsaWRlckRhdGFbY3VycmVudEluZGV4XS50aXRsZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBkYXRhLWFuYWx5c2lzIGZsZXgtbWlkZGxlXCIgW25nQ2xhc3NdPVwid2lkZ2V0RGF0YS5zbGlkZXJEYXRhW2N1cnJlbnRJbmRleF0uY29sb3JEYXRhXCIgKm5nSWY9XCJ3aWRnZXREYXRhLnNsaWRlckRhdGFbY3VycmVudEluZGV4XS5kYXRhXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tc3RhdHNcIj57eyB3aWRnZXREYXRhLnNsaWRlckRhdGFbY3VycmVudEluZGV4XS5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgPHAgY2xhc3M9XCJtYXJnaW4tcmVtb3ZlIHRleHQtbm8td3JhcFwiPnt7IHdpZGdldERhdGEuc2xpZGVyRGF0YVtjdXJyZW50SW5kZXhdLmRhdGEgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndpZGdldERhdGE/LnR5cGUgPT09ICd0aXBzJ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNsaWRlIG9mIHdpZGdldERhdGE/LnNsaWRlckRhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXBzIGJhbm5lciBXaWRnZXRJbnN0YW5jZUlkIGZsZXggbWFyZ2luLWJvdHRvbS14c1wiIFtoaWRkZW5dPVwiaSAhPT0gY3VycmVudEluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJiYW5uZXItZGF0YSBmbGV4IG1hcmdpbi1yaWdodC1tXCI+XG4gICAgICAgICAge3tpICsgMX19LiB7eyBzbGlkZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0RGF0YS50eXBlID09PSAna2FybWEtcG9pbnRzJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi00XCIgKm5nRm9yPVwibGV0IHNsaWRlIG9mIHdpZGdldERhdGEuc2xpZGVyRGF0YTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBbaGlkZGVuXT1cImkgIT09IGN1cnJlbnRJbmRleFwiPlxuICAgICAgPGltZyBbc3JjXT1cInNsaWRlPy5kaXNwbGF5QnV0dG9uID09PSAnUXVpY2sgTGVhcm5lciBCYWRnZSdcbiAgICA/ICcvYXNzZXRzL2ljb25zL2JhZGdlcy9NZWRhbC5zdmcnXG4gICAgOiAnL2Fzc2V0cy9pY29ucy9ob21lL2thcm1hLWJhZGdlLnN2ZydcIiB3aWR0aD1cIjI4cHhcIiBhbHQ9XCJrYXJtYS1wb2ludHMgaW1hZ2VcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQteHNcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzbGlkZT8udGV4dEJlZm9yZUljb25cIj5cbiAgICAgICAgICB7e1xuICAgICAgICAgIHNsaWRlPy5kaXNwbGF5QnV0dG9uID09PSAnUXVpY2sgTGVhcm5lciBCYWRnZSdcbiAgICAgICAgICA/IHNsaWRlPy50ZXh0QmVmb3JlSWNvblxuICAgICAgICAgIDogdHJhbnNsYXRlTGFiZWxzKHNsaWRlPy50ZXh0QmVmb3JlSWNvbiwgJ2FwcEthcm1hcG9pbnRzUGFuZWwnKVxuICAgICAgICAgIH19XG4gICAgICAgIDwvc3Bhbj4mbmJzcDtcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzbGlkZT8ucG9pbnRzXCIgY2xhc3M9XCJmb250LWJvbGRcIj57eyBzbGlkZT8ucG9pbnRzIH19IHt7IHRyYW5zbGF0ZUxhYmVscyhzbGlkZT8udGV4dEFmdGVyUG9pbnRzLFxuICAgICAgICAnYXBwS2FybWFwb2ludHNQYW5lbCcpIH19PC9zcGFuPiZuYnNwO1xuICAgICAgICA8c3BhbiAqbmdJZj1cInNsaWRlPy50ZXh0QWZ0ZXJJY29uXCI+e3sgdHJhbnNsYXRlTGFiZWxzKHNsaWRlPy50ZXh0QWZ0ZXJJY29uLCAnYXBwS2FybWFwb2ludHNQYW5lbCcpIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB3cy1tYXQtYmxhY2s2MC10ZXh0IGluZm8taWNvblwiIFttYXRUb29sdGlwXT1cInRyYW5zbGF0ZUxhYmVscyhzbGlkZT8udG9vbFRpcFRleHQsICdhcHBLYXJtYXBvaW50c1BhbmVsJylcIlxuICAgICAgICAqbmdJZj1cInNsaWRlPy50b29sVGlwVGV4dFwiPmluZm9fb3V0bGluZTwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cImJhbm5lci1tZXRhXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0RGF0YS50eXBlID09PSAnaW1hZ2UnXCI+XG4gICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIiAhaXNPcGVuSW5OZXdUYWIgPyB3aWRnZXREYXRhLnNsaWRlckRhdGFbY3VycmVudEluZGV4XS5yZWRpcmVjdFVybCA6ICcuLydcIiBjbGFzcz1cImJhbm5lci10aXRsZSB0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgKm5nSWY9XCJ3aWRnZXREYXRhLnNsaWRlckRhdGFbY3VycmVudEluZGV4XS50aXRsZVwiIFt0aXRsZV09XCJ3aWRnZXREYXRhLnNsaWRlckRhdGFbY3VycmVudEluZGV4XS50aXRsZVwiPlxuICAgICAgICAgIHt7IHdpZGdldERhdGEuc2xpZGVyRGF0YVtjdXJyZW50SW5kZXhdLnRpdGxlIH19XG4gICAgICAgIDwvYT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZG90cy1jb250YWluZXJcIiAqbmdJZj1cIndpZGdldERhdGEuc2xpZGVyRGF0YT8ubGVuZ3RoID4gMVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRvdFwiIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBqID09PSBjdXJyZW50SW5kZXgsICdkb3QtYWN0aXZlJzogaiA9PT0gY3VycmVudEluZGV4LCAnZG90LWdyZXknOiBqICE9PSBjdXJyZW50SW5kZXggfVwiICpuZ0Zvcj1cImxldCBzbGlkZSBvZiB3aWRnZXREYXRhLnNsaWRlckRhdGE7IGxldCBqID0gaW5kZXhcIiAoY2xpY2spPVwic2xpZGVUbyhqKVwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwid2lkZ2V0RGF0YS5pY29uc0Rpc3BsYXlcIj5cbiAgICA8YSAqbmdJZj1cIndpZGdldERhdGEuc2xpZGVyRGF0YT8ubGVuZ3RoID4gMVwiIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cInByZXZcIiAoY2xpY2spPVwic2xpZGVUbyhjdXJyZW50SW5kZXggLSAxKVwiPiYjMTAwOTQ7PC9hPlxuICAgIDxhICpuZ0lmPVwid2lkZ2V0RGF0YS5zbGlkZXJEYXRhPy5sZW5ndGggPiAxXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwibmV4dFwiIChjbGljayk9XCJzbGlkZVRvKGN1cnJlbnRJbmRleCArIDEpXCI+JiMxMDA5NTs8L2E+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L2Rpdj5cbiJdfQ==