@sunbird-cb/utils-v2 0.0.9 → 0.0.11

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 (311) hide show
  1. package/bundles/sunbird-cb-utils-v2.umd.js +6680 -6693
  2. package/bundles/sunbird-cb-utils-v2.umd.js.map +1 -1
  3. package/bundles/sunbird-cb-utils-v2.umd.min.js +1 -1
  4. package/bundles/sunbird-cb-utils-v2.umd.min.js.map +1 -1
  5. package/esm2015/lib/components/image-crop/image-crop.component.js +194 -194
  6. package/esm2015/lib/components/image-crop/image-crop.module.js +26 -26
  7. package/esm2015/lib/constants/features.enum.js +554 -554
  8. package/esm2015/lib/constants/instances.enum.js +4 -4
  9. package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.js +86 -86
  10. package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.module.js +14 -14
  11. package/esm2015/lib/directives/default-thumbnail/default-thumbnail.directive.js +37 -37
  12. package/esm2015/lib/directives/default-thumbnail/default-thumbnail.module.js +14 -14
  13. package/esm2015/lib/directives/image-responsive/image-responsive.directive.js +91 -91
  14. package/esm2015/lib/directives/image-responsive/image-responsive.module.js +14 -14
  15. package/esm2015/lib/directives/in-view-port/in-view-port.directive.js +67 -67
  16. package/esm2015/lib/directives/in-view-port/in-view-port.module.js +14 -14
  17. package/esm2015/lib/directives/navigation/navigation.directive.js +38 -38
  18. package/esm2015/lib/directives/navigation/navigation.module.js +14 -14
  19. package/esm2015/lib/directives/permission/permission.directive.js +10 -10
  20. package/esm2015/lib/directives/permission/permission.module.js +14 -14
  21. package/esm2015/lib/helpers/functions/getStringifiedQueryParams.js +8 -8
  22. package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.component.js +98 -98
  23. package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.module.js +18 -18
  24. package/esm2015/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.component.js +194 -194
  25. package/esm2015/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.module.js +19 -19
  26. package/esm2015/lib/helpers/logout/logout.component.js +89 -89
  27. package/esm2015/lib/helpers/logout/logout.module.js +19 -19
  28. package/esm2015/lib/models/profile-v3.models.js +104 -104
  29. package/esm2015/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.module.js +15 -15
  30. package/esm2015/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.pipe.js +94 -111
  31. package/esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.js +12 -12
  32. package/esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.js +58 -58
  33. package/esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.module.js +14 -14
  34. package/esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.js +32 -32
  35. package/esm2015/lib/pipes/pipe-coursename/PipeCourseNameModule.js +15 -15
  36. package/esm2015/lib/pipes/pipe-coursename/pipe-coursename.pipe.js +13 -13
  37. package/esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.module.js +14 -14
  38. package/esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.js +42 -42
  39. package/esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.js +14 -14
  40. package/esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.js +81 -81
  41. package/esm2015/lib/pipes/pipe-email/pipe-email.module.js +15 -15
  42. package/esm2015/lib/pipes/pipe-email/pipe-email.pipe.js +12 -12
  43. package/esm2015/lib/pipes/pipe-filter/pipe-filter.module.js +14 -14
  44. package/esm2015/lib/pipes/pipe-filter/pipe-filter.pipe.js +15 -15
  45. package/esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.module.js +14 -14
  46. package/esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.js +37 -37
  47. package/esm2015/lib/pipes/pipe-filter-v2/pipe-filter-v2.module.js +14 -14
  48. package/esm2015/lib/pipes/pipe-filter-v2/pipe-filter-v2.pipe.js +20 -20
  49. package/esm2015/lib/pipes/pipe-filter-v3/pipe-filter-v3.module.js +15 -15
  50. package/esm2015/lib/pipes/pipe-filter-v3/pipe-filter-v3.pipe.js +23 -23
  51. package/esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.js +14 -14
  52. package/esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.js +11 -11
  53. package/esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.module.js +14 -14
  54. package/esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.js +24 -24
  55. package/esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.module.js +14 -14
  56. package/esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.js +16 -16
  57. package/esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.module.js +14 -14
  58. package/esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.js +26 -26
  59. package/esm2015/lib/pipes/pipe-nic-relative/pipe-nic-relative.module.js +15 -15
  60. package/esm2015/lib/pipes/pipe-nic-relative/pipe-nic-relative.pipe.js +39 -39
  61. package/esm2015/lib/pipes/pipe-order-by/pipe-order-by.module.js +14 -14
  62. package/esm2015/lib/pipes/pipe-order-by/pipe-order-by.pipe.js +15 -15
  63. package/esm2015/lib/pipes/pipe-ordinal/pipe-ordinal.module.js +15 -15
  64. package/esm2015/lib/pipes/pipe-ordinal/pipe-ordinal.pipe.js +17 -17
  65. package/esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.module.js +14 -14
  66. package/esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.js +17 -17
  67. package/esm2015/lib/pipes/pipe-public-URL/pipe-public-URL.module.js +15 -15
  68. package/esm2015/lib/pipes/pipe-public-URL/pipe-public-URL.pipe.js +26 -26
  69. package/esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.module.js +14 -14
  70. package/esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.js +15 -15
  71. package/esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.js +14 -14
  72. package/esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.js +34 -34
  73. package/esm2015/lib/resolvers/explore-detail.resolver.js +88 -88
  74. package/esm2015/lib/resolvers/marketing-offering.resolve.js +39 -39
  75. package/esm2015/lib/resolvers/module-name.resolver.js +38 -38
  76. package/esm2015/lib/resolvers/page-name.resolver.js +32 -32
  77. package/esm2015/lib/resolvers/page.constant.js +3 -3
  78. package/esm2015/lib/resolvers/page.model.js +47 -47
  79. package/esm2015/lib/resolvers/page.resolver.js +89 -89
  80. package/esm2015/lib/resolvers/resolver.model.js +5 -5
  81. package/esm2015/lib/services/auth-keycloak.service.js +267 -267
  82. package/esm2015/lib/services/auth-microsoft.service.js +195 -195
  83. package/esm2015/lib/services/card-content.model.js +30 -30
  84. package/esm2015/lib/services/configurations.model.js +550 -550
  85. package/esm2015/lib/services/configurations.service.js +140 -140
  86. package/esm2015/lib/services/content-strip-multiple.model.js +74 -74
  87. package/esm2015/lib/services/event.model.js +257 -257
  88. package/esm2015/lib/services/event.service.js +210 -210
  89. package/esm2015/lib/services/logger.service.js +54 -54
  90. package/esm2015/lib/services/ms-office.model.js +7 -7
  91. package/esm2015/lib/services/multilingual-translations.service.js +136 -136
  92. package/esm2015/lib/services/nps-grid.service.js +45 -45
  93. package/esm2015/lib/services/subapplication-respond.service.js +213 -213
  94. package/esm2015/lib/services/telemetry.service.js +620 -620
  95. package/esm2015/lib/services/user-preference.model.js +37 -37
  96. package/esm2015/lib/services/user-preference.service.js +89 -89
  97. package/esm2015/lib/services/utility.service.js +144 -144
  98. package/esm2015/lib/services/value.service.js +30 -30
  99. package/esm2015/lib/services/widget-content.model.js +372 -372
  100. package/esm2015/lib/services/widget-content.service.js +204 -200
  101. package/esm2015/lib/services/widget-resolver.model.js +56 -56
  102. package/esm2015/lib/services/widget-search.model.js +125 -125
  103. package/esm2015/public-api.js +87 -87
  104. package/esm2015/sunbird-cb-utils-v2.js +9 -9
  105. package/esm5/lib/components/image-crop/image-crop.component.js +199 -199
  106. package/esm5/lib/components/image-crop/image-crop.module.js +30 -30
  107. package/esm5/lib/constants/features.enum.js +554 -554
  108. package/esm5/lib/constants/instances.enum.js +4 -4
  109. package/esm5/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.js +104 -104
  110. package/esm5/lib/directives/class-change-on-scroll/class-change-on-scroll.module.js +18 -18
  111. package/esm5/lib/directives/default-thumbnail/default-thumbnail.directive.js +39 -39
  112. package/esm5/lib/directives/default-thumbnail/default-thumbnail.module.js +18 -18
  113. package/esm5/lib/directives/image-responsive/image-responsive.directive.js +94 -94
  114. package/esm5/lib/directives/image-responsive/image-responsive.module.js +18 -18
  115. package/esm5/lib/directives/in-view-port/in-view-port.directive.js +72 -72
  116. package/esm5/lib/directives/in-view-port/in-view-port.module.js +18 -18
  117. package/esm5/lib/directives/navigation/navigation.directive.js +40 -40
  118. package/esm5/lib/directives/navigation/navigation.module.js +18 -18
  119. package/esm5/lib/directives/permission/permission.directive.js +13 -13
  120. package/esm5/lib/directives/permission/permission.module.js +18 -18
  121. package/esm5/lib/helpers/functions/getStringifiedQueryParams.js +8 -8
  122. package/esm5/lib/helpers/horizontal-scroller/horizontal-scroller.component.js +102 -102
  123. package/esm5/lib/helpers/horizontal-scroller/horizontal-scroller.module.js +22 -22
  124. package/esm5/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.component.js +199 -199
  125. package/esm5/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.module.js +23 -23
  126. package/esm5/lib/helpers/logout/logout.component.js +95 -95
  127. package/esm5/lib/helpers/logout/logout.module.js +23 -23
  128. package/esm5/lib/models/profile-v3.models.js +104 -104
  129. package/esm5/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.module.js +19 -19
  130. package/esm5/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.pipe.js +96 -113
  131. package/esm5/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.js +16 -16
  132. package/esm5/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.js +62 -62
  133. package/esm5/lib/pipes/pipe-count-transform/pipe-count-transform.module.js +18 -18
  134. package/esm5/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.js +36 -36
  135. package/esm5/lib/pipes/pipe-coursename/PipeCourseNameModule.js +19 -19
  136. package/esm5/lib/pipes/pipe-coursename/pipe-coursename.pipe.js +17 -17
  137. package/esm5/lib/pipes/pipe-date-concat/pipe-date-concat.module.js +18 -18
  138. package/esm5/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.js +44 -44
  139. package/esm5/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.js +18 -18
  140. package/esm5/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.js +85 -85
  141. package/esm5/lib/pipes/pipe-email/pipe-email.module.js +19 -19
  142. package/esm5/lib/pipes/pipe-email/pipe-email.pipe.js +16 -16
  143. package/esm5/lib/pipes/pipe-filter/pipe-filter.module.js +18 -18
  144. package/esm5/lib/pipes/pipe-filter/pipe-filter.pipe.js +19 -19
  145. package/esm5/lib/pipes/pipe-filter-search/pipe-filter-search.module.js +18 -18
  146. package/esm5/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.js +45 -45
  147. package/esm5/lib/pipes/pipe-filter-v2/pipe-filter-v2.module.js +18 -18
  148. package/esm5/lib/pipes/pipe-filter-v2/pipe-filter-v2.pipe.js +24 -24
  149. package/esm5/lib/pipes/pipe-filter-v3/pipe-filter-v3.module.js +19 -19
  150. package/esm5/lib/pipes/pipe-filter-v3/pipe-filter-v3.pipe.js +31 -31
  151. package/esm5/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.js +18 -18
  152. package/esm5/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.js +15 -15
  153. package/esm5/lib/pipes/pipe-limit-to/pipe-limit-to.module.js +18 -18
  154. package/esm5/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.js +29 -29
  155. package/esm5/lib/pipes/pipe-list-filter/pipe-list-filter.module.js +18 -18
  156. package/esm5/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.js +20 -20
  157. package/esm5/lib/pipes/pipe-name-transform/pipe-name-transform.module.js +18 -18
  158. package/esm5/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.js +30 -30
  159. package/esm5/lib/pipes/pipe-nic-relative/pipe-nic-relative.module.js +19 -19
  160. package/esm5/lib/pipes/pipe-nic-relative/pipe-nic-relative.pipe.js +41 -41
  161. package/esm5/lib/pipes/pipe-order-by/pipe-order-by.module.js +18 -18
  162. package/esm5/lib/pipes/pipe-order-by/pipe-order-by.pipe.js +17 -17
  163. package/esm5/lib/pipes/pipe-ordinal/pipe-ordinal.module.js +19 -19
  164. package/esm5/lib/pipes/pipe-ordinal/pipe-ordinal.pipe.js +21 -21
  165. package/esm5/lib/pipes/pipe-partial-content/pipe-partial-content.module.js +18 -18
  166. package/esm5/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.js +33 -33
  167. package/esm5/lib/pipes/pipe-public-URL/pipe-public-URL.module.js +19 -19
  168. package/esm5/lib/pipes/pipe-public-URL/pipe-public-URL.pipe.js +28 -28
  169. package/esm5/lib/pipes/pipe-relative-time/pipe-relative-time.module.js +18 -18
  170. package/esm5/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.js +19 -19
  171. package/esm5/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.js +18 -18
  172. package/esm5/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.js +37 -37
  173. package/esm5/lib/resolvers/explore-detail.resolver.js +92 -92
  174. package/esm5/lib/resolvers/marketing-offering.resolve.js +42 -42
  175. package/esm5/lib/resolvers/module-name.resolver.js +40 -40
  176. package/esm5/lib/resolvers/page-name.resolver.js +35 -35
  177. package/esm5/lib/resolvers/page.constant.js +3 -3
  178. package/esm5/lib/resolvers/page.model.js +47 -47
  179. package/esm5/lib/resolvers/page.resolver.js +97 -97
  180. package/esm5/lib/resolvers/resolver.model.js +5 -5
  181. package/esm5/lib/services/auth-keycloak.service.js +352 -352
  182. package/esm5/lib/services/auth-microsoft.service.js +250 -250
  183. package/esm5/lib/services/card-content.model.js +30 -30
  184. package/esm5/lib/services/configurations.model.js +550 -550
  185. package/esm5/lib/services/configurations.service.js +142 -142
  186. package/esm5/lib/services/content-strip-multiple.model.js +74 -74
  187. package/esm5/lib/services/event.model.js +257 -257
  188. package/esm5/lib/services/event.service.js +214 -214
  189. package/esm5/lib/services/logger.service.js +72 -72
  190. package/esm5/lib/services/ms-office.model.js +7 -7
  191. package/esm5/lib/services/multilingual-translations.service.js +138 -138
  192. package/esm5/lib/services/nps-grid.service.js +47 -47
  193. package/esm5/lib/services/subapplication-respond.service.js +218 -218
  194. package/esm5/lib/services/telemetry.service.js +669 -669
  195. package/esm5/lib/services/user-preference.model.js +37 -37
  196. package/esm5/lib/services/user-preference.service.js +108 -108
  197. package/esm5/lib/services/utility.service.js +177 -177
  198. package/esm5/lib/services/value.service.js +32 -32
  199. package/esm5/lib/services/widget-content.model.js +372 -372
  200. package/esm5/lib/services/widget-content.service.js +226 -222
  201. package/esm5/lib/services/widget-resolver.model.js +56 -56
  202. package/esm5/lib/services/widget-search.model.js +125 -125
  203. package/esm5/public-api.js +87 -87
  204. package/esm5/sunbird-cb-utils-v2.js +9 -9
  205. package/fesm2015/sunbird-cb-utils-v2.js +6168 -6181
  206. package/fesm2015/sunbird-cb-utils-v2.js.map +1 -1
  207. package/fesm5/sunbird-cb-utils-v2.js +6677 -6690
  208. package/fesm5/sunbird-cb-utils-v2.js.map +1 -1
  209. package/lib/components/image-crop/image-crop.component.d.ts +56 -56
  210. package/lib/components/image-crop/image-crop.module.d.ts +2 -2
  211. package/lib/constants/features.enum.d.ts +553 -553
  212. package/lib/constants/instances.enum.d.ts +3 -3
  213. package/lib/constants/misc.constants.d.ts +2 -2
  214. package/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.d.ts +18 -18
  215. package/lib/directives/class-change-on-scroll/class-change-on-scroll.module.d.ts +2 -2
  216. package/lib/directives/default-thumbnail/default-thumbnail.directive.d.ts +9 -9
  217. package/lib/directives/default-thumbnail/default-thumbnail.module.d.ts +2 -2
  218. package/lib/directives/image-responsive/image-responsive.directive.d.ts +17 -17
  219. package/lib/directives/image-responsive/image-responsive.module.d.ts +2 -2
  220. package/lib/directives/in-view-port/in-view-port.directive.d.ts +11 -11
  221. package/lib/directives/in-view-port/in-view-port.module.d.ts +2 -2
  222. package/lib/directives/navigation/navigation.directive.d.ts +9 -9
  223. package/lib/directives/navigation/navigation.module.d.ts +2 -2
  224. package/lib/directives/permission/permission.directive.d.ts +3 -3
  225. package/lib/directives/permission/permission.module.d.ts +2 -2
  226. package/lib/helpers/functions/getStringifiedQueryParams.d.ts +3 -3
  227. package/lib/helpers/horizontal-scroller/horizontal-scroller.component.d.ts +18 -18
  228. package/lib/helpers/horizontal-scroller/horizontal-scroller.module.d.ts +2 -2
  229. package/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.component.d.ts +36 -36
  230. package/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.module.d.ts +2 -2
  231. package/lib/helpers/logout/logout.component.d.ts +20 -20
  232. package/lib/helpers/logout/logout.module.d.ts +2 -2
  233. package/lib/models/profile-v3.models.d.ts +91 -91
  234. package/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.module.d.ts +2 -2
  235. package/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.pipe.d.ts +6 -6
  236. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.d.ts +2 -2
  237. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.d.ts +10 -10
  238. package/lib/pipes/pipe-count-transform/pipe-count-transform.module.d.ts +2 -2
  239. package/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.d.ts +4 -4
  240. package/lib/pipes/pipe-coursename/PipeCourseNameModule.d.ts +2 -2
  241. package/lib/pipes/pipe-coursename/pipe-coursename.pipe.d.ts +4 -4
  242. package/lib/pipes/pipe-date-concat/pipe-date-concat.module.d.ts +2 -2
  243. package/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.d.ts +13 -13
  244. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.d.ts +2 -2
  245. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.d.ts +6 -6
  246. package/lib/pipes/pipe-email/pipe-email.module.d.ts +2 -2
  247. package/lib/pipes/pipe-email/pipe-email.pipe.d.ts +4 -4
  248. package/lib/pipes/pipe-filter/pipe-filter.module.d.ts +2 -2
  249. package/lib/pipes/pipe-filter/pipe-filter.pipe.d.ts +4 -4
  250. package/lib/pipes/pipe-filter-search/pipe-filter-search.module.d.ts +2 -2
  251. package/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.d.ts +4 -4
  252. package/lib/pipes/pipe-filter-v2/pipe-filter-v2.module.d.ts +2 -2
  253. package/lib/pipes/pipe-filter-v2/pipe-filter-v2.pipe.d.ts +4 -4
  254. package/lib/pipes/pipe-filter-v3/pipe-filter-v3.module.d.ts +2 -2
  255. package/lib/pipes/pipe-filter-v3/pipe-filter-v3.pipe.d.ts +4 -4
  256. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.d.ts +2 -2
  257. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.d.ts +4 -4
  258. package/lib/pipes/pipe-limit-to/pipe-limit-to.module.d.ts +2 -2
  259. package/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.d.ts +4 -4
  260. package/lib/pipes/pipe-list-filter/pipe-list-filter.module.d.ts +2 -2
  261. package/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.d.ts +4 -4
  262. package/lib/pipes/pipe-name-transform/pipe-name-transform.module.d.ts +2 -2
  263. package/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.d.ts +9 -9
  264. package/lib/pipes/pipe-nic-relative/pipe-nic-relative.module.d.ts +2 -2
  265. package/lib/pipes/pipe-nic-relative/pipe-nic-relative.pipe.d.ts +7 -7
  266. package/lib/pipes/pipe-order-by/pipe-order-by.module.d.ts +2 -2
  267. package/lib/pipes/pipe-order-by/pipe-order-by.pipe.d.ts +9 -9
  268. package/lib/pipes/pipe-ordinal/pipe-ordinal.module.d.ts +2 -2
  269. package/lib/pipes/pipe-ordinal/pipe-ordinal.pipe.d.ts +4 -4
  270. package/lib/pipes/pipe-partial-content/pipe-partial-content.module.d.ts +2 -2
  271. package/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.d.ts +4 -4
  272. package/lib/pipes/pipe-public-URL/pipe-public-URL.module.d.ts +2 -2
  273. package/lib/pipes/pipe-public-URL/pipe-public-URL.pipe.d.ts +6 -6
  274. package/lib/pipes/pipe-relative-time/pipe-relative-time.module.d.ts +2 -2
  275. package/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.d.ts +4 -4
  276. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.d.ts +2 -2
  277. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.d.ts +7 -7
  278. package/lib/resolvers/explore-detail.resolver.d.ts +16 -16
  279. package/lib/resolvers/marketing-offering.resolve.d.ts +10 -10
  280. package/lib/resolvers/module-name.resolver.d.ts +6 -6
  281. package/lib/resolvers/page-name.resolver.d.ts +5 -5
  282. package/lib/resolvers/page.constant.d.ts +1 -1
  283. package/lib/resolvers/page.model.d.ts +41 -41
  284. package/lib/resolvers/page.resolver.d.ts +17 -17
  285. package/lib/resolvers/resolver.model.d.ts +4 -4
  286. package/lib/services/auth-keycloak.service.d.ts +31 -31
  287. package/lib/services/auth-microsoft.service.d.ts +30 -30
  288. package/lib/services/card-content.model.d.ts +29 -29
  289. package/lib/services/configurations.model.d.ts +523 -523
  290. package/lib/services/configurations.service.d.ts +73 -73
  291. package/lib/services/content-strip-multiple.model.d.ts +79 -79
  292. package/lib/services/event.model.d.ts +221 -221
  293. package/lib/services/event.service.d.ts +30 -30
  294. package/lib/services/logger.service.d.ts +15 -15
  295. package/lib/services/ms-office.model.d.ts +6 -6
  296. package/lib/services/multilingual-translations.service.d.ts +20 -20
  297. package/lib/services/nps-grid.service.d.ts +12 -12
  298. package/lib/services/subapplication-respond.service.d.ts +23 -23
  299. package/lib/services/telemetry.service.d.ts +56 -56
  300. package/lib/services/user-preference.model.d.ts +34 -34
  301. package/lib/services/user-preference.service.d.ts +11 -11
  302. package/lib/services/utility.service.d.ts +31 -31
  303. package/lib/services/value.service.d.ts +8 -8
  304. package/lib/services/widget-content.model.d.ts +344 -344
  305. package/lib/services/widget-content.service.d.ts +50 -49
  306. package/lib/services/widget-resolver.model.d.ts +48 -48
  307. package/lib/services/widget-search.model.d.ts +114 -114
  308. package/package.json +1 -1
  309. package/public-api.d.ts +87 -87
  310. package/sunbird-cb-utils-v2.d.ts +9 -9
  311. package/sunbird-cb-utils-v2.metadata.json +1 -1
@@ -1,200 +1,204 @@
1
- import * as tslib_1 from "tslib";
2
- import { HttpClient } from '@angular/common/http';
3
- import { Injectable } from '@angular/core';
4
- import { of, EMPTY } from 'rxjs';
5
- import { catchError, retry } from 'rxjs/operators';
6
- import { ConfigurationsService } from './configurations.service';
7
- import { NsContent } from './widget-content.model';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common/http";
10
- import * as i2 from "./configurations.service";
11
- const PROTECTED_SLAG_V8 = '/apis/protected/v8';
12
- const ɵ0 = (type, id) => `${PROTECTED_SLAG_V8}/content/collection/${type}/${id}`, ɵ1 = (contentId) => `${PROTECTED_SLAG_V8}/user/progress/${contentId}`, ɵ2 = (contentId) => `/apis/proxies/v8/cios-enroll/v1/readby/useridcourseid/${contentId}`;
13
- const API_END_POINTS = {
14
- CONTENT: `${PROTECTED_SLAG_V8}/content`,
15
- AUTHORING_CONTENT: `/apis/authApi/hierarchy`,
16
- CONTENT_LIKES: `${PROTECTED_SLAG_V8}/content/likeCount`,
17
- SET_S3_COOKIE: `${PROTECTED_SLAG_V8}/content/setCookie`,
18
- SET_S3_IMAGE_COOKIE: `${PROTECTED_SLAG_V8}/content/setImageCookie`,
19
- FETCH_MANIFEST: `${PROTECTED_SLAG_V8}/content/getWebModuleManifest`,
20
- FETCH_WEB_MODULE_FILES: `${PROTECTED_SLAG_V8}/content/getWebModuleFiles`,
21
- MULTIPLE_CONTENT: `${PROTECTED_SLAG_V8}/content/multiple`,
22
- CONTENT_SEARCH_V5: `${PROTECTED_SLAG_V8}/content/searchV5`,
23
- CONTENT_SEARCH_V6: `${PROTECTED_SLAG_V8}/content/searchV6`,
24
- CONTENT_SEARCH_REGION_RECOMMENDATION: `${PROTECTED_SLAG_V8}/content/searchRegionRecommendation`,
25
- CONTENT_HISTORY: `${PROTECTED_SLAG_V8}/user/history`,
26
- USER_CONTINUE_LEARNING: `${PROTECTED_SLAG_V8}/user/history/continue`,
27
- CONTENT_RATING: `${PROTECTED_SLAG_V8}/user/rating`,
28
- COLLECTION_HIERARCHY: (ɵ0),
29
- REGISTRATION_STATUS: `${PROTECTED_SLAG_V8}/admin/userRegistration/checkUserRegistrationContent`,
30
- MARK_AS_COMPLETE_META: (ɵ1),
31
- EXT_USER_COURSE_ENROLL: (ɵ2),
32
- EXT_CONTENT_EROLL: `/apis/proxies/v8/cios-enroll/v1/create`,
33
- };
34
- export class WidgetContentService {
35
- constructor(http, configSvc) {
36
- this.http = http;
37
- this.configSvc = configSvc;
38
- }
39
- fetchMarkAsCompleteMeta(identifier) {
40
- const url = API_END_POINTS.MARK_AS_COMPLETE_META(identifier);
41
- if (url) { }
42
- return of().toPromise();
43
- }
44
- fetchContent(contentId, hierarchyType = 'detail', additionalFields = []) {
45
- const url = `${API_END_POINTS.CONTENT}/${contentId}?hierarchyType=${hierarchyType}`;
46
- return this.http
47
- .post(url, { additionalFields })
48
- .pipe(retry(1));
49
- }
50
- fetchAuthoringContent(contentId) {
51
- const url = `${API_END_POINTS.AUTHORING_CONTENT}/${contentId}`;
52
- return this.http.get(url).pipe(retry(1));
53
- }
54
- fetchMultipleContent(ids) {
55
- return this.http.get(`${API_END_POINTS.MULTIPLE_CONTENT}/${ids.join(',')}`);
56
- }
57
- fetchCollectionHierarchy(type, id, pageNumber = 0, pageSize = 1) {
58
- return this.http.get(`${API_END_POINTS.COLLECTION_HIERARCHY(type, id)}?pageNumber=${pageNumber}&pageSize=${pageSize}`);
59
- }
60
- fetchContentLikes(contentIds) {
61
- return this.http
62
- .post(API_END_POINTS.CONTENT_LIKES, contentIds)
63
- .toPromise();
64
- }
65
- fetchContentRatings(contentIds) {
66
- if (contentIds) { }
67
- return of().toPromise();
68
- }
69
- fetchContentHistory(contentId) {
70
- return this.http.get(`${API_END_POINTS.CONTENT_HISTORY}/${contentId}`);
71
- }
72
- continueLearning(id, collectionId, collectionType) {
73
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
74
- return new Promise(((resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
75
- if (collectionType &&
76
- collectionType.toLowerCase() === 'playlist') {
77
- const reqBody = {
78
- contextPathId: collectionId ? collectionId : id,
79
- resourceId: id,
80
- data: JSON.stringify({
81
- timestamp: Date.now(),
82
- contextFullPath: [collectionId, id],
83
- }),
84
- dateAccessed: Date.now(),
85
- contextType: 'playlist',
86
- };
87
- yield this.saveContinueLearning(reqBody).toPromise().catch().finally((() => {
88
- resolve(true);
89
- }));
90
- }
91
- else {
92
- const reqBody = {
93
- contextPathId: collectionId ? collectionId : id,
94
- resourceId: id,
95
- data: JSON.stringify({ timestamp: Date.now() }),
96
- dateAccessed: Date.now(),
97
- };
98
- yield this.saveContinueLearning(reqBody).toPromise().catch().finally((() => {
99
- resolve(true);
100
- }));
101
- }
102
- })));
103
- });
104
- }
105
- saveContinueLearning(content) {
106
- if (content) {
107
- }
108
- return ((of()));
109
- }
110
- setS3Cookie(_contentId) {
111
- return EMPTY;
112
- }
113
- setS3ImageCookie() {
114
- return this.http.post(API_END_POINTS.SET_S3_IMAGE_COOKIE, {}).pipe(catchError((_err => of(true))));
115
- }
116
- fetchManifest(url) {
117
- return this.http.post(API_END_POINTS.FETCH_MANIFEST, { url });
118
- }
119
- fetchWebModuleContent(url) {
120
- return this.http.get(`${API_END_POINTS.FETCH_WEB_MODULE_FILES}?url=${encodeURIComponent(url)}`);
121
- }
122
- search(req) {
123
- req.query = req.query || '';
124
- return this.http.post(API_END_POINTS.CONTENT_SEARCH_V5, {
125
- request: req,
126
- });
127
- }
128
- searchRegionRecommendation(req) {
129
- req.query = req.query || '';
130
- req.preLabelValue =
131
- (req.preLabelValue || '') +
132
- ((this.configSvc.userProfile && this.configSvc.userProfile.country) || '');
133
- req.filters = Object.assign({}, req.filters, { labels: [req.preLabelValue || ''] });
134
- return this.http.post(API_END_POINTS.CONTENT_SEARCH_REGION_RECOMMENDATION, { request: req });
135
- }
136
- searchV6(req) {
137
- req.query = req.query || '';
138
- return this.http.post(API_END_POINTS.CONTENT_SEARCH_V6, req);
139
- }
140
- fetchContentRating(contentId) {
141
- return this.http.get(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
142
- }
143
- deleteContentRating(contentId) {
144
- return this.http.delete(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
145
- }
146
- addContentRating(contentId, data) {
147
- return this.http.post(`${API_END_POINTS.CONTENT_RATING}/${contentId}`, data);
148
- }
149
- getFirstChildInHierarchy(content) {
150
- if (!(content.children || []).length) {
151
- return content;
152
- }
153
- if (content.primaryCategory === 'Program' &&
154
- !(content.artifactUrl && content.artifactUrl.length)) {
155
- const child = content.children[0];
156
- return this.getFirstChildInHierarchy(child);
157
- }
158
- if (content.primaryCategory === NsContent.EPrimaryCategory.RESOURCE ||
159
- content.primaryCategory === NsContent.EPrimaryCategory.KNOWLEDGE_ARTIFACT ||
160
- content.primaryCategory === NsContent.EPrimaryCategory.PROGRAM ||
161
- content.primaryCategory === NsContent.EPrimaryCategory.PRACTICE_RESOURCE ||
162
- content.primaryCategory === NsContent.EPrimaryCategory.FINAL_ASSESSMENT ||
163
- content.primaryCategory === NsContent.EPrimaryCategory.COMP_ASSESSMENT ||
164
- content.primaryCategory === NsContent.EPrimaryCategory.MANDATORY_COURSE_GOAL ||
165
- content.primaryCategory === NsContent.EPrimaryCategory.OFFLINE_SESSION) {
166
- return content;
167
- }
168
- const firstChild = content.children[0];
169
- const resultContent = this.getFirstChildInHierarchy(firstChild);
170
- return resultContent;
171
- }
172
- getRegistrationStatus(source) {
173
- return this.http.get(`${API_END_POINTS.REGISTRATION_STATUS}/${source}`).toPromise();
174
- }
175
- fetchConfig(url) {
176
- return this.http.get(url);
177
- }
178
- fetchExtUserContentEnroll(contentId) {
179
- return this.http.get(API_END_POINTS.EXT_USER_COURSE_ENROLL(contentId));
180
- }
181
- extContentEnroll(requestBody) {
182
- return this.http.post(`${API_END_POINTS.EXT_CONTENT_EROLL}`, requestBody);
183
- }
184
- }
185
- WidgetContentService.decorators = [
186
- { type: Injectable, args: [{
187
- providedIn: 'root',
188
- },] }
189
- ];
190
- WidgetContentService.ctorParameters = () => [
191
- { type: HttpClient },
192
- { type: ConfigurationsService }
193
- ];
194
- /** @nocollapse */ WidgetContentService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function WidgetContentService_Factory() { return new WidgetContentService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.ConfigurationsService)); }, token: WidgetContentService, providedIn: "root" });
195
- if (false) {
196
- WidgetContentService.prototype.http;
197
- WidgetContentService.prototype.configSvc;
198
- }
199
- export { ɵ0, ɵ1, ɵ2 };
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL3V0aWxzLXYyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFBOzs7O01BSTVDLGlCQUFpQixHQUFHLG9CQUFvQjtXQWlCdEIsQ0FBQyxJQUFZLEVBQUUsRUFBVSxFQUFFLEVBQUUsQ0FDakQsR0FBRyxpQkFBaUIsdUJBQXVCLElBQUksSUFBSSxFQUFFLEVBQUUsT0FFbEMsQ0FBQyxTQUFpQixFQUFFLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixrQkFBa0IsU0FBUyxFQUFFLE9BQ3RFLENBQUMsU0FBYyxFQUFFLEVBQUUsQ0FBQyx5REFBeUQsU0FBUyxFQUFFO01BbkI3RyxjQUFjLEdBQUc7SUFDckIsT0FBTyxFQUFFLEdBQUcsaUJBQWlCLFVBQVU7SUFDdkMsaUJBQWlCLEVBQUUseUJBQXlCO0lBQzVDLGFBQWEsRUFBRSxHQUFHLGlCQUFpQixvQkFBb0I7SUFDdkQsYUFBYSxFQUFFLEdBQUcsaUJBQWlCLG9CQUFvQjtJQUN2RCxtQkFBbUIsRUFBRSxHQUFHLGlCQUFpQix5QkFBeUI7SUFDbEUsY0FBYyxFQUFFLEdBQUcsaUJBQWlCLCtCQUErQjtJQUNuRSxzQkFBc0IsRUFBRSxHQUFH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QUFRLENBQUMsQ0FBQyxDQUFDO2NBQ2hDLGFBQWEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDO1FBQy9ELE9BQU8sYUFBYSxDQUFBO0lBQ3RCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxNQUFjO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxjQUFjLENBQUMsbUJBQW1CLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUMxRixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBRUQseUJBQXlCLENBQUMsU0FBaUI7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxjQUFjLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtJQUM3RSxDQUFDO0lBRUQsZ0JBQWdCLENBQUUsV0FBZ0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQ2hGLENBQUM7OztZQWxORixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQXJDUSxVQUFVO1lBSVYscUJBQXFCOzs7O0lBdUMxQixvQ0FBd0I7SUFDeEIseUNBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIEVNUFRZIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9ucy5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBOc0NvbnRlbnRTdHJpcE11bHRpcGxlIH0gZnJvbSAnLi9jb250ZW50LXN0cmlwLW11bHRpcGxlLm1vZGVsJ1xyXG5pbXBvcnQgeyBOc0NvbnRlbnQgfSBmcm9tICcuL3dpZGdldC1jb250ZW50Lm1vZGVsJ1xyXG5pbXBvcnQgeyBOU1NlYXJjaCB9IGZyb20gJy4vd2lkZ2V0LXNlYXJjaC5tb2RlbCdcclxuXHJcbi8vIFRPRE86IG1vdmUgdGhpcyBpbiBzb21lIGNvbW1vbiBwbGFjZVxyXG5jb25zdCBQUk9URUNURURfU0xBR19WOCA9ICcvYXBpcy9wcm90ZWN0ZWQvdjgnXHJcblxyXG5jb25zdCBBUElfRU5EX1BPSU5UUyA9IHtcclxuICBDT05URU5UOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudGAsXHJcbiAgQVVUSE9SSU5HX0NPTlRFTlQ6IGAvYXBpcy9hdXRoQXBpL2hpZXJhcmNoeWAsXHJcbiAgQ09OVEVOVF9MSUtFUzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvbGlrZUNvdW50YCxcclxuICBTRVRfUzNfQ09PS0lFOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZXRDb29raWVgLFxyXG4gIFNFVF9TM19JTUFHRV9DT09LSUU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NldEltYWdlQ29va2llYCxcclxuICBGRVRDSF9NQU5JRkVTVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvZ2V0V2ViTW9kdWxlTWFuaWZlc3RgLFxyXG4gIEZFVENIX1dFQl9NT0RVTEVfRklMRVM6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2dldFdlYk1vZHVsZUZpbGVzYCxcclxuICBNVUxUSVBMRV9DT05URU5UOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9tdWx0aXBsZWAsXHJcbiAgQ09OVEVOVF9TRUFSQ0hfVjU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFY1YCxcclxuICBDT05URU5UX1NFQVJDSF9WNjogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvc2VhcmNoVjZgLFxyXG4gIENPTlRFTlRfU0VBUkNIX1JFR0lPTl9SRUNPTU1FTkRBVElPTjogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvc2VhcmNoUmVnaW9uUmVjb21tZW5kYXRpb25gLFxyXG4gIENPTlRFTlRfSElTVE9SWTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L3VzZXIvaGlzdG9yeWAsXHJcbiAgVVNFUl9DT05USU5VRV9MRUFSTklORzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L3VzZXIvaGlzdG9yeS9jb250aW51ZWAsXHJcbiAgQ09OVEVOVF9SQVRJTkc6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL3JhdGluZ2AsXHJcbiAgQ09MTEVDVElPTl9ISUVSQVJDSFk6ICh0eXBlOiBzdHJpbmcsIGlkOiBzdHJpbmcpID0+XHJcbiAgICBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9jb2xsZWN0aW9uLyR7dHlwZX0vJHtpZH1gLFxyXG4gIFJFR0lTVFJBVElPTl9TVEFUVVM6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9hZG1pbi91c2VyUmVnaXN0cmF0aW9uL2NoZWNrVXNlclJlZ2lzdHJhdGlvbkNvbnRlbnRgLFxyXG4gIE1BUktfQVNfQ09NUExFVEVfTUVUQTogKGNvbnRlbnRJZDogc3RyaW5nKSA9PiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9wcm9ncmVzcy8ke2NvbnRlbnRJZH1gLFxyXG4gIEVYVF9VU0VSX0NPVVJTRV9FTlJPTEwgOiAoY29udGVudElkOiBhbnkpID0+IGAvYXBpcy9wcm94aWVzL3Y4L2Npb3MtZW5yb2xsL3YxL3JlYWRieS91c2VyaWRjb3Vyc2VpZC8ke2NvbnRlbnRJZH1gLFxyXG4gIEVYVF9DT05URU5UX0VST0xMOiBgL2FwaXMvcHJveGllcy92OC9jaW9zLWVucm9sbC92MS9jcmVhdGVgLFxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgdGhpcyB3aWxsIGJlIGRlcHJpY2F0ZWRcclxuICovXHJcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb250ZW50U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGNvbmZpZ1N2YzogQ29uZmlndXJhdGlvbnNTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgZmV0Y2hNYXJrQXNDb21wbGV0ZU1ldGEoaWRlbnRpZmllcjogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxyXG4gICAgY29uc3QgdXJsID0gQVBJX0VORF9QT0lOVFMuTUFSS19BU19DT01QTEVURV9NRVRBKGlkZW50aWZpZXIpXHJcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnRvUHJvbWlzZSgpXHJcbiAgICBpZiAodXJsKSB7IH1cclxuICAgIHJldHVybiBvZigpLnRvUHJvbWlzZSgpXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRlbnQoXHJcbiAgICBjb250ZW50SWQ6IHN0cmluZyxcclxuICAgIGhpZXJhcmNoeVR5cGU6ICdhbGwnIHwgJ21pbmltYWwnIHwgJ2RldGFpbCcgPSAnZGV0YWlsJyxcclxuICAgIGFkZGl0aW9uYWxGaWVsZHM6IHN0cmluZ1tdID0gW10sXHJcbiAgKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnQ+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlR9LyR7Y29udGVudElkfT9oaWVyYXJjaHlUeXBlPSR7aGllcmFyY2h5VHlwZX1gXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PE5zQ29udGVudC5JQ29udGVudD4odXJsLCB7IGFkZGl0aW9uYWxGaWVsZHMgfSlcclxuICAgICAgLnBpcGUocmV0cnkoMSkpXHJcbiAgfVxyXG4gIGZldGNoQXV0aG9yaW5nQ29udGVudChjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250ZW50PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtBUElfRU5EX1BPSU5UUy5BVVRIT1JJTkdfQ09OVEVOVH0vJHtjb250ZW50SWR9YFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50Pih1cmwpLnBpcGUocmV0cnkoMSkpXHJcbiAgfVxyXG4gIGZldGNoTXVsdGlwbGVDb250ZW50KGlkczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnRbXT4oXHJcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLk1VTFRJUExFX0NPTlRFTlR9LyR7aWRzLmpvaW4oJywnKX1gLFxyXG4gICAgKVxyXG4gIH1cclxuICBmZXRjaENvbGxlY3Rpb25IaWVyYXJjaHkodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nLCBwYWdlTnVtYmVyOiBudW1iZXIgPSAwLCBwYWdlU2l6ZTogbnVtYmVyID0gMSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb2xsZWN0aW9uSGllcmFyY2h5UmVzcG9uc2U+KFxyXG4gICAgICBgJHtBUElfRU5EX1BPSU5UUy5DT0xMRUNUSU9OX0hJRVJBUkNIWShcclxuICAgICAgICB0eXBlLFxyXG4gICAgICAgIGlkLFxyXG4gICAgICApfT9wYWdlTnVtYmVyPSR7cGFnZU51bWJlcn0mcGFnZVNpemU9JHtwYWdlU2l6ZX1gLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50TGlrZXMoY29udGVudElkczogeyBjb250ZW50X2lkOiBzdHJpbmdbXSB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PHsgW2lkZW50aWZpZXI6IHN0cmluZ106IG51bWJlciB9PihBUElfRU5EX1BPSU5UUy5DT05URU5UX0xJS0VTLCBjb250ZW50SWRzKVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICB9XHJcblxyXG4gIGZldGNoQ29udGVudFJhdGluZ3MoY29udGVudElkczogeyBjb250ZW50SWRzOiBzdHJpbmdbXSB9KSB7XHJcbiAgICBpZiAoY29udGVudElkcykgeyB9XHJcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAvLyAgIC5wb3N0KGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkFUSU5HfS9yYXRpbmdgLCBjb250ZW50SWRzKVxyXG4gICAgLy8gICAudG9Qcm9taXNlKClcclxuICAgIHJldHVybiBvZigpLnRvUHJvbWlzZSgpXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRlbnRIaXN0b3J5KGNvbnRlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPihcclxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9ISVNUT1JZfS8ke2NvbnRlbnRJZH1gLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgY29udGludWVMZWFybmluZyhpZDogc3RyaW5nLCBjb2xsZWN0aW9uSWQ/OiBzdHJpbmcsIGNvbGxlY3Rpb25UeXBlPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyByZXNvbHZlID0+IHtcclxuICAgICAgaWYgKGNvbGxlY3Rpb25UeXBlICYmXHJcbiAgICAgICAgY29sbGVjdGlvblR5cGUudG9Mb3dlckNhc2UoKSA9PT0gJ3BsYXlsaXN0Jykge1xyXG4gICAgICAgIGNvbnN0IHJlcUJvZHkgPSB7XHJcbiAgICAgICAgICBjb250ZXh0UGF0aElkOiBjb2xsZWN0aW9uSWQgPyBjb2xsZWN0aW9uSWQgOiBpZCxcclxuICAgICAgICAgIHJlc291cmNlSWQ6IGlkLFxyXG4gICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXHJcbiAgICAgICAgICAgIGNvbnRleHRGdWxsUGF0aDogW2NvbGxlY3Rpb25JZCwgaWRdLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXHJcbiAgICAgICAgICBjb250ZXh0VHlwZTogJ3BsYXlsaXN0JyxcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlQ29udGludWVMZWFybmluZyhyZXFCb2R5KS50b1Byb21pc2UoKS5jYXRjaCgpLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKVxyXG4gICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgcmVxQm9keSA9IHtcclxuICAgICAgICAgIGNvbnRleHRQYXRoSWQ6IGNvbGxlY3Rpb25JZCA/IGNvbGxlY3Rpb25JZCA6IGlkLFxyXG4gICAgICAgICAgcmVzb3VyY2VJZDogaWQsXHJcbiAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHRpbWVzdGFtcDogRGF0ZS5ub3coKSB9KSxcclxuICAgICAgICAgIGRhdGVBY2Nlc3NlZDogRGF0ZS5ub3coKSxcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlQ29udGludWVMZWFybmluZyhyZXFCb2R5KS50b1Byb21pc2UoKS5jYXRjaCgpLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHNhdmVDb250aW51ZUxlYXJuaW5nKGNvbnRlbnQ6IE5zQ29udGVudC5JVmlld2VyQ29udGludWVMZWFybmluZ1JlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gY29uc3QgdXJsID0gQVBJX0VORF9QT0lOVFMuVVNFUl9DT05USU5VRV9MRUFSTklOR1xyXG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBjb250ZW50KVxyXG4gICAgaWYgKGNvbnRlbnQpIHtcclxuXHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2YoKSBhcyBhbnlcclxuICB9XHJcblxyXG4gIHNldFMzQ29va2llKFxyXG4gICAgX2NvbnRlbnRJZDogc3RyaW5nLFxyXG4gICAgLy8gX3BhdGg6IHN0cmluZyxcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgLy8gICAucG9zdChBUElfRU5EX1BPSU5UUy5TRVRfUzNfQ09PS0lFLCB7IGNvbnRlbnRJZCB9KVxyXG4gICAgLy8gICAucGlwZShjYXRjaEVycm9yKF9lcnIgPT4gb2YodHJ1ZSkpKVxyXG4gICAgcmV0dXJuIEVNUFRZXHJcbiAgfVxyXG5cclxuICBzZXRTM0ltYWdlQ29va2llKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuU0VUX1MzX0lNQUdFX0NPT0tJRSwge30pLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSlcclxuICB9XHJcblxyXG4gIGZldGNoTWFuaWZlc3QodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KEFQSV9FTkRfUE9JTlRTLkZFVENIX01BTklGRVNULCB7IHVybCB9KVxyXG4gIH1cclxuICBmZXRjaFdlYk1vZHVsZUNvbnRlbnQodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7QVBJX0VORF9QT0lOVFMuRkVUQ0hfV0VCX01PRFVMRV9GSUxFU30/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHVybCl9YClcclxuICB9XHJcbiAgc2VhcmNoKHJlcTogTlNTZWFyY2guSVNlYXJjaFJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+IHtcclxuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJ1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hBcGlSZXN1bHQ+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y1LCB7XHJcbiAgICAgIHJlcXVlc3Q6IHJlcSxcclxuICAgIH0pXHJcbiAgfVxyXG4gIHNlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uKFxyXG4gICAgcmVxOiBOU1NlYXJjaC5JU2VhcmNoT3JnUmVnaW9uUmVjb21tZW5kYXRpb25SZXF1ZXN0LFxyXG4gICk6IE9ic2VydmFibGU8TnNDb250ZW50U3RyaXBNdWx0aXBsZS5JQ29udGVudFN0cmlwUmVzcG9uc2VBcGk+IHtcclxuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJ1xyXG4gICAgcmVxLnByZUxhYmVsVmFsdWUgPVxyXG4gICAgICAocmVxLnByZUxhYmVsVmFsdWUgfHwgJycpICtcclxuICAgICAgKCh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS5jb3VudHJ5KSB8fCAnJylcclxuICAgIHJlcS5maWx0ZXJzID0ge1xyXG4gICAgICAuLi5yZXEuZmlsdGVycyxcclxuICAgICAgbGFiZWxzOiBbcmVxLnByZUxhYmVsVmFsdWUgfHwgJyddLFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5zQ29udGVudFN0cmlwTXVsdGlwbGUuSUNvbnRlbnRTdHJpcFJlc3BvbnNlQXBpPihcclxuICAgICAgQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9TRUFSQ0hfUkVHSU9OX1JFQ09NTUVOREFUSU9OLFxyXG4gICAgICB7IHJlcXVlc3Q6IHJlcSB9LFxyXG4gICAgKVxyXG4gIH1cclxuICBzZWFyY2hWNihyZXE6IE5TU2VhcmNoLklTZWFyY2hWNlJlcXVlc3QpOiBPYnNlcnZhYmxlPE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdD4ge1xyXG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0PihBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9WNiwgcmVxKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50UmF0aW5nKGNvbnRlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHJhdGluZzogbnVtYmVyIH0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHsgcmF0aW5nOiBudW1iZXIgfT4oYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWApXHJcbiAgfVxyXG4gIGRlbGV0ZUNvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWApXHJcbiAgfVxyXG4gIGFkZENvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcsIGRhdGE6IHsgcmF0aW5nOiBudW1iZXIgfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX1JBVElOR30vJHtjb250ZW50SWR9YCwgZGF0YSlcclxuICB9XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAZGVwcmVjYXRlZCB0aGlzIHdpbGwgYmUgZGVwcmljYXRlZC5cclxuICAgKi9cclxuICBnZXRGaXJzdENoaWxkSW5IaWVyYXJjaHkoY29udGVudDogTnNDb250ZW50LklDb250ZW50KTogTnNDb250ZW50LklDb250ZW50IHtcclxuICAgIGlmICghKGNvbnRlbnQuY2hpbGRyZW4gfHwgW10pLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gY29udGVudFxyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gJ1Byb2dyYW0nICYmXHJcbiAgICAgICEoY29udGVudC5hcnRpZmFjdFVybCAmJiBjb250ZW50LmFydGlmYWN0VXJsLmxlbmd0aClcclxuICAgICkge1xyXG4gICAgICBjb25zdCBjaGlsZCA9IGNvbnRlbnQuY2hpbGRyZW5bMF1cclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rmlyc3RDaGlsZEluSGllcmFyY2h5KGNoaWxkKVxyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuUkVTT1VSQ0UgfHxcclxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LktOT1dMRURHRV9BUlRJRkFDVCB8fFxyXG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuUFJPR1JBTSB8fFxyXG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuUFJBQ1RJQ0VfUkVTT1VSQ0UgfHxcclxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LkZJTkFMX0FTU0VTU01FTlQgfHxcclxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LkNPTVBfQVNTRVNTTUVOVCB8fFxyXG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuTUFOREFUT1JZX0NPVVJTRV9HT0FMIHx8XHJcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5PRkZMSU5FX1NFU1NJT05cclxuICAgICkge1xyXG4gICAgICByZXR1cm4gY29udGVudFxyXG4gICAgfVxyXG4gICAgY29uc3QgZmlyc3RDaGlsZCA9IGNvbnRlbnQuY2hpbGRyZW5bMF1cclxuICAgIGNvbnN0IHJlc3VsdENvbnRlbnQgPSB0aGlzLmdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShmaXJzdENoaWxkKVxyXG4gICAgcmV0dXJuIHJlc3VsdENvbnRlbnRcclxuICB9XHJcblxyXG4gIGdldFJlZ2lzdHJhdGlvblN0YXR1cyhzb3VyY2U6IHN0cmluZyk6IFByb21pc2U8eyBoYXNBY2Nlc3M6IGJvb2xlYW47IHJlZ2lzdHJhdGlvblVybD86IHN0cmluZyB9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLlJFR0lTVFJBVElPTl9TVEFUVVN9LyR7c291cmNlfWApLnRvUHJvbWlzZSgpXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbmZpZyh1cmw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwpXHJcbiAgfVxyXG5cclxuICBmZXRjaEV4dFVzZXJDb250ZW50RW5yb2xsKGNvbnRlbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KEFQSV9FTkRfUE9JTlRTLkVYVF9VU0VSX0NPVVJTRV9FTlJPTEwoY29udGVudElkKSlcclxuICB9XHJcblxyXG4gIGV4dENvbnRlbnRFbnJvbGwgKHJlcXVlc3RCb2R5OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkVYVF9DT05URU5UX0VST0xMfWAsIHJlcXVlc3RCb2R5KVxyXG4gIH1cclxufVxyXG4iXX0=
1
+ import * as tslib_1 from "tslib";
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { Injectable } from '@angular/core';
4
+ import { of, EMPTY } from 'rxjs';
5
+ import { catchError, retry } from 'rxjs/operators';
6
+ import { ConfigurationsService } from './configurations.service';
7
+ import { NsContent } from './widget-content.model';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common/http";
10
+ import * as i2 from "./configurations.service";
11
+ const PROTECTED_SLAG_V8 = '/apis/protected/v8';
12
+ const ɵ0 = (type, id) => `${PROTECTED_SLAG_V8}/content/collection/${type}/${id}`, ɵ1 = (contentId) => `${PROTECTED_SLAG_V8}/user/progress/${contentId}`, ɵ2 = (contentId) => `/apis/proxies/v8/cios-enroll/v1/readby/useridcourseid/${contentId}`, ɵ3 = (certId) => `${PROTECTED_SLAG_V8}/cohorts/course/batch/cert/download/${certId}`;
13
+ const API_END_POINTS = {
14
+ CONTENT: `${PROTECTED_SLAG_V8}/content`,
15
+ AUTHORING_CONTENT: `/apis/authApi/hierarchy`,
16
+ CONTENT_LIKES: `${PROTECTED_SLAG_V8}/content/likeCount`,
17
+ SET_S3_COOKIE: `${PROTECTED_SLAG_V8}/content/setCookie`,
18
+ SET_S3_IMAGE_COOKIE: `${PROTECTED_SLAG_V8}/content/setImageCookie`,
19
+ FETCH_MANIFEST: `${PROTECTED_SLAG_V8}/content/getWebModuleManifest`,
20
+ FETCH_WEB_MODULE_FILES: `${PROTECTED_SLAG_V8}/content/getWebModuleFiles`,
21
+ MULTIPLE_CONTENT: `${PROTECTED_SLAG_V8}/content/multiple`,
22
+ CONTENT_SEARCH_V5: `${PROTECTED_SLAG_V8}/content/searchV5`,
23
+ CONTENT_SEARCH_V6: `${PROTECTED_SLAG_V8}/content/searchV6`,
24
+ CONTENT_SEARCH_REGION_RECOMMENDATION: `${PROTECTED_SLAG_V8}/content/searchRegionRecommendation`,
25
+ CONTENT_HISTORY: `${PROTECTED_SLAG_V8}/user/history`,
26
+ USER_CONTINUE_LEARNING: `${PROTECTED_SLAG_V8}/user/history/continue`,
27
+ CONTENT_RATING: `${PROTECTED_SLAG_V8}/user/rating`,
28
+ COLLECTION_HIERARCHY: (ɵ0),
29
+ REGISTRATION_STATUS: `${PROTECTED_SLAG_V8}/admin/userRegistration/checkUserRegistrationContent`,
30
+ MARK_AS_COMPLETE_META: (ɵ1),
31
+ EXT_USER_COURSE_ENROLL: (ɵ2),
32
+ EXT_CONTENT_EROLL: `/apis/proxies/v8/cios-enroll/v1/create`,
33
+ CERT_DOWNLOAD: (ɵ3),
34
+ };
35
+ export class WidgetContentService {
36
+ constructor(http, configSvc) {
37
+ this.http = http;
38
+ this.configSvc = configSvc;
39
+ }
40
+ fetchMarkAsCompleteMeta(identifier) {
41
+ const url = API_END_POINTS.MARK_AS_COMPLETE_META(identifier);
42
+ if (url) { }
43
+ return of().toPromise();
44
+ }
45
+ fetchContent(contentId, hierarchyType = 'detail', additionalFields = []) {
46
+ const url = `${API_END_POINTS.CONTENT}/${contentId}?hierarchyType=${hierarchyType}`;
47
+ return this.http
48
+ .post(url, { additionalFields })
49
+ .pipe(retry(1));
50
+ }
51
+ fetchAuthoringContent(contentId) {
52
+ const url = `${API_END_POINTS.AUTHORING_CONTENT}/${contentId}`;
53
+ return this.http.get(url).pipe(retry(1));
54
+ }
55
+ fetchMultipleContent(ids) {
56
+ return this.http.get(`${API_END_POINTS.MULTIPLE_CONTENT}/${ids.join(',')}`);
57
+ }
58
+ fetchCollectionHierarchy(type, id, pageNumber = 0, pageSize = 1) {
59
+ return this.http.get(`${API_END_POINTS.COLLECTION_HIERARCHY(type, id)}?pageNumber=${pageNumber}&pageSize=${pageSize}`);
60
+ }
61
+ fetchContentLikes(contentIds) {
62
+ return this.http
63
+ .post(API_END_POINTS.CONTENT_LIKES, contentIds)
64
+ .toPromise();
65
+ }
66
+ fetchContentRatings(contentIds) {
67
+ if (contentIds) { }
68
+ return of().toPromise();
69
+ }
70
+ fetchContentHistory(contentId) {
71
+ return this.http.get(`${API_END_POINTS.CONTENT_HISTORY}/${contentId}`);
72
+ }
73
+ continueLearning(id, collectionId, collectionType) {
74
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
75
+ return new Promise(((resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
76
+ if (collectionType &&
77
+ collectionType.toLowerCase() === 'playlist') {
78
+ const reqBody = {
79
+ contextPathId: collectionId ? collectionId : id,
80
+ resourceId: id,
81
+ data: JSON.stringify({
82
+ timestamp: Date.now(),
83
+ contextFullPath: [collectionId, id],
84
+ }),
85
+ dateAccessed: Date.now(),
86
+ contextType: 'playlist',
87
+ };
88
+ yield this.saveContinueLearning(reqBody).toPromise().catch().finally((() => {
89
+ resolve(true);
90
+ }));
91
+ }
92
+ else {
93
+ const reqBody = {
94
+ contextPathId: collectionId ? collectionId : id,
95
+ resourceId: id,
96
+ data: JSON.stringify({ timestamp: Date.now() }),
97
+ dateAccessed: Date.now(),
98
+ };
99
+ yield this.saveContinueLearning(reqBody).toPromise().catch().finally((() => {
100
+ resolve(true);
101
+ }));
102
+ }
103
+ })));
104
+ });
105
+ }
106
+ saveContinueLearning(content) {
107
+ if (content) {
108
+ }
109
+ return ((of()));
110
+ }
111
+ setS3Cookie(_contentId) {
112
+ return EMPTY;
113
+ }
114
+ setS3ImageCookie() {
115
+ return this.http.post(API_END_POINTS.SET_S3_IMAGE_COOKIE, {}).pipe(catchError((_err => of(true))));
116
+ }
117
+ fetchManifest(url) {
118
+ return this.http.post(API_END_POINTS.FETCH_MANIFEST, { url });
119
+ }
120
+ fetchWebModuleContent(url) {
121
+ return this.http.get(`${API_END_POINTS.FETCH_WEB_MODULE_FILES}?url=${encodeURIComponent(url)}`);
122
+ }
123
+ search(req) {
124
+ req.query = req.query || '';
125
+ return this.http.post(API_END_POINTS.CONTENT_SEARCH_V5, {
126
+ request: req,
127
+ });
128
+ }
129
+ searchRegionRecommendation(req) {
130
+ req.query = req.query || '';
131
+ req.preLabelValue =
132
+ (req.preLabelValue || '') +
133
+ ((this.configSvc.userProfile && this.configSvc.userProfile.country) || '');
134
+ req.filters = Object.assign({}, req.filters, { labels: [req.preLabelValue || ''] });
135
+ return this.http.post(API_END_POINTS.CONTENT_SEARCH_REGION_RECOMMENDATION, { request: req });
136
+ }
137
+ searchV6(req) {
138
+ req.query = req.query || '';
139
+ return this.http.post(API_END_POINTS.CONTENT_SEARCH_V6, req);
140
+ }
141
+ fetchContentRating(contentId) {
142
+ return this.http.get(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
143
+ }
144
+ deleteContentRating(contentId) {
145
+ return this.http.delete(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
146
+ }
147
+ addContentRating(contentId, data) {
148
+ return this.http.post(`${API_END_POINTS.CONTENT_RATING}/${contentId}`, data);
149
+ }
150
+ getFirstChildInHierarchy(content) {
151
+ if (!(content.children || []).length) {
152
+ return content;
153
+ }
154
+ if (content.primaryCategory === 'Program' &&
155
+ !(content.artifactUrl && content.artifactUrl.length)) {
156
+ const child = content.children[0];
157
+ return this.getFirstChildInHierarchy(child);
158
+ }
159
+ if (content.primaryCategory === NsContent.EPrimaryCategory.RESOURCE ||
160
+ content.primaryCategory === NsContent.EPrimaryCategory.KNOWLEDGE_ARTIFACT ||
161
+ content.primaryCategory === NsContent.EPrimaryCategory.PROGRAM ||
162
+ content.primaryCategory === NsContent.EPrimaryCategory.PRACTICE_RESOURCE ||
163
+ content.primaryCategory === NsContent.EPrimaryCategory.FINAL_ASSESSMENT ||
164
+ content.primaryCategory === NsContent.EPrimaryCategory.COMP_ASSESSMENT ||
165
+ content.primaryCategory === NsContent.EPrimaryCategory.MANDATORY_COURSE_GOAL ||
166
+ content.primaryCategory === NsContent.EPrimaryCategory.OFFLINE_SESSION) {
167
+ return content;
168
+ }
169
+ const firstChild = content.children[0];
170
+ const resultContent = this.getFirstChildInHierarchy(firstChild);
171
+ return resultContent;
172
+ }
173
+ getRegistrationStatus(source) {
174
+ return this.http.get(`${API_END_POINTS.REGISTRATION_STATUS}/${source}`).toPromise();
175
+ }
176
+ fetchConfig(url) {
177
+ return this.http.get(url);
178
+ }
179
+ fetchExtUserContentEnroll(contentId) {
180
+ return this.http.get(API_END_POINTS.EXT_USER_COURSE_ENROLL(contentId));
181
+ }
182
+ extContentEnroll(requestBody) {
183
+ return this.http.post(`${API_END_POINTS.EXT_CONTENT_EROLL}`, requestBody);
184
+ }
185
+ downloadCert(certId) {
186
+ return this.http.get(`${API_END_POINTS.CERT_DOWNLOAD(certId)}`);
187
+ }
188
+ }
189
+ WidgetContentService.decorators = [
190
+ { type: Injectable, args: [{
191
+ providedIn: 'root',
192
+ },] }
193
+ ];
194
+ WidgetContentService.ctorParameters = () => [
195
+ { type: HttpClient },
196
+ { type: ConfigurationsService }
197
+ ];
198
+ /** @nocollapse */ WidgetContentService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function WidgetContentService_Factory() { return new WidgetContentService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.ConfigurationsService)); }, token: WidgetContentService, providedIn: "root" });
199
+ if (false) {
200
+ WidgetContentService.prototype.http;
201
+ WidgetContentService.prototype.configSvc;
202
+ }
203
+ export { ɵ0, ɵ1, ɵ2, ɵ3 };
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL3V0aWxzLXYyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFBOzs7O01BSTVDLGlCQUFpQixHQUFHLG9CQUFvQjtXQWlCdEIsQ0FBQyxJQUFZLEVBQUUsRUFBVSxFQUFFLEVBQUUsQ0FDakQsR0FBRyxpQkFBaUIsdUJBQXVCLElBQUksSUFBSSxFQUFFLEVBQUUsT0FFbEMsQ0FBQyxTQUFpQixFQUFFLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixrQkFBa0IsU0FBUyxFQUFFLE9BQ3ZFLENBQUMsU0FBYyxFQUFFLEVBQUUsQ0FBQyx5REFBeUQsU0FBUyxFQUFFLE9BRWpHLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQix1Q0FBdUMsTUFBTSxFQUFFO01BckIvRixjQUFjLEdBQUc7SUFDckIsT0FBTyxFQUFFLEdBQUcsaUJBQWlCLFVBQVU7SUFDdkMsaUJBQWlCLEVBQUUseUJBQXlCO0lBQzVDLGFBQWEsRUFBRSxHQUFHLGlCQUFpQixvQkFBb0I7SUFDdkQsYUFBYSxFQUFFLEdBQUcsaUJBQWlCLG9CQUFvQjtJQUN2RCxtQkFBbUIsRUFBRSxHQUFHLGlCQUFpQix5QkFBeUI7SUFDbEUsY0FBYyxFQUFFLEdBQUcsaUJBQWlCLCtCQUErQjtJQUNuRSxzQkFBc0IsRUFBRSxHQUFHLGlCQUFpQiw0QkFBNEI7SUFDeEUsZ0JBQWdCLEVBQUUsR0FBRyxpQkFBaUIsbUJBQW1CO0lBQ3pELGlCQUFpQixFQUFFLEdBQUcsaUJBQWlCLG1CQUFtQjtJQUMxRCxpQkFBaUIsRUFBRSxHQUFHLGlCQUFpQixtQkFBbUI7SUFDMUQsb0NBQW9DLEVBQUUsR0FBRyxpQkFBaUIscUNBQXFDO0lBQy9GLGVBQWUsRUFBRSxHQUFHLGlCQUFpQixlQUFlO0lBQ3BELHNCQUFzQixFQUFFLEdBQUcsaUJBQWlCLHdCQUF3QjtJQUNwRSxjQUFjLEVBQUUsR0FBRyxpQkFBaUIsY0FBYztJQUNsRCxvQkFBb0IsTUFDcUM7SUFDekQsbUJBQW1CLEVBQUUsR0FBRyxpQkFBaUIsc0RBQXNEO0lBQy9GLHFCQUFxQixNQUEwRTtJQUMvRixzQkFBc0IsTUFBMEY7SUFDaEgsaUJBQWlCLEVBQUUsd0NBQXdDO0lBQzNELGFBQWEsTUFBc0Y7Q0FDcEc7QUFRRCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQ1UsSUFBZ0IsRUFDaEIsU0FBZ0M7UUFEaEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUF1QjtJQUN0QyxDQUFDO0lBRUwsdUJBQXVCLENBQUMsVUFBa0I7Y0FFbEMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUM7UUFFNUQsSUFBSSxHQUFHLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDekIsQ0FBQztJQUVELFlBQVksQ0FDVixTQUFpQixFQUNqQixnQkFBOEMsUUFBUSxFQUN0RCxtQkFBNkIsRUFBRTtjQUV6QixHQUFHLEdBQUcsR0FBRyxjQUFjLENBQUMsT0FBTyxJQUFJLFNBQVMsa0JBQWtCLGFBQWEsRUFBRTtRQUNuRixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUFxQixHQUFHLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO2FBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNuQixDQUFDO0lBQ0QscUJBQXFCLENBQUMsU0FBaUI7Y0FDL0IsR0FBRyxHQUFHLEdBQUcsY0FBYyxDQUFDLGlCQUFpQixJQUFJLFNBQVMsRUFBRTtRQUM5RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFxQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUNELG9CQUFvQixDQUFDLEdBQWE7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUN0RCxDQUFBO0lBQ0gsQ0FBQztJQUNELHdCQUF3QixDQUFDLElBQVksRUFBRSxFQUFVLEVBQUUsYUFBcUIsQ0FBQyxFQUFFLFdBQW1CLENBQUM7UUFDN0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxjQUFjLENBQUMsb0JBQW9CLENBQ3BDLElBQUksRUFDSixFQUFFLENBQ0gsZUFBZSxVQUFVLGFBQWEsUUFBUSxFQUFFLENBQ2xELENBQUE7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsVUFBb0M7UUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FBbUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUM7YUFDaEYsU0FBUyxFQUFFLENBQUE7SUFDaEIsQ0FBQztJQUVELG1CQUFtQixDQUFDLFVBQW9DO1FBQ3RELElBQUksVUFBVSxFQUFFLEdBQUc7UUFJbkIsT0FBTyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUN6QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsU0FBaUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxjQUFjLENBQUMsZUFBZSxJQUFJLFNBQVMsRUFBRSxDQUNqRCxDQUFBO0lBQ0gsQ0FBQztJQUVLLGdCQUFnQixDQUFDLEVBQVUsRUFBRSxZQUFxQixFQUFFLGNBQXVCOztZQUMvRSxPQUFPLElBQUksT0FBTyxFQUFDLENBQU0sT0FBTyxFQUFDLEVBQUU7Z0JBQ2pDLElBQUksY0FBYztvQkFDaEIsY0FBYyxDQUFDLFdBQVcsRUFBRSxLQUFLLFVBQVUsRUFBRTswQkFDdkMsT0FBTyxHQUFHO3dCQUNkLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDL0MsVUFBVSxFQUFFLEVBQUU7d0JBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7NEJBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFOzRCQUNyQixlQUFlLEVBQUUsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO3lCQUNwQyxDQUFDO3dCQUNGLFlBQVksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO3dCQUN4QixXQUFXLEVBQUUsVUFBVTtxQkFDeEI7b0JBQ0QsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFDLEdBQUcsRUFBRTt3QkFDeEUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO29CQUNmLENBQUMsRUFDQSxDQUFBO2lCQUNGO3FCQUFNOzBCQUNDLE9BQU8sR0FBRzt3QkFDZCxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQy9DLFVBQVUsRUFBRSxFQUFFO3dCQUNkLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO3dCQUMvQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTtxQkFDekI7b0JBQ0QsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFDLEdBQUcsRUFBRTt3QkFDeEUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO29CQUNmLENBQUMsRUFBQyxDQUFBO2lCQUNIO1lBQ0gsQ0FBQyxDQUFBLEVBQUMsQ0FBQTtRQUNKLENBQUM7S0FBQTtJQUNELG9CQUFvQixDQUFDLE9BQWlEO1FBR3BFLElBQUksT0FBTyxFQUFFO1NBRVo7UUFDRCxPQUFPLEVBQUEsRUFBRSxFQUFFLEVBQU8sQ0FBQTtJQUNwQixDQUFDO0lBRUQsV0FBVyxDQUNULFVBQWtCO1FBTWxCLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFBO0lBQ2xHLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBVztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFDRCxxQkFBcUIsQ0FBQyxHQUFXO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsc0JBQXNCLFFBQVEsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2pHLENBQUM7SUFDRCxNQUFNLENBQUMsR0FBNEI7UUFDakMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQTtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE0QixjQUFjLENBQUMsaUJBQWlCLEVBQUU7WUFDakYsT0FBTyxFQUFFLEdBQUc7U0FDYixDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsMEJBQTBCLENBQ3hCLEdBQW1EO1FBRW5ELEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7UUFDM0IsR0FBRyxDQUFDLGFBQWE7WUFDZixDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO2dCQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7UUFDNUUsR0FBRyxDQUFDLE9BQU8scUJBQ04sR0FBRyxDQUFDLE9BQU8sSUFDZCxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxHQUNsQyxDQUFBO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsY0FBYyxDQUFDLG9DQUFvQyxFQUNuRCxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FDakIsQ0FBQTtJQUNILENBQUM7SUFDRCxRQUFRLENBQUMsR0FBOEI7UUFDckMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQTtRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE4QixjQUFjLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDM0YsQ0FBQztJQUVELGtCQUFrQixDQUFDLFNBQWlCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXFCLEdBQUcsY0FBYyxDQUFDLGNBQWMsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQzNGLENBQUM7SUFDRCxtQkFBbUIsQ0FBQyxTQUFpQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLGNBQWMsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFBO0lBQzFFLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxTQUFpQixFQUFFLElBQXdCO1FBQzFELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxjQUFjLENBQUMsY0FBYyxJQUFJLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFLRCx3QkFBd0IsQ0FBQyxPQUEyQjtRQUNsRCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNwQyxPQUFPLE9BQU8sQ0FBQTtTQUNmO1FBQ0QsSUFDRSxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVM7WUFDckMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFDcEQ7a0JBQ00sS0FBSyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQzVDO1FBQ0QsSUFDRSxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRO1lBQy9ELE9BQU8sQ0FBQyxlQUFlLEtBQUssU0FBUyxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQjtZQUN6RSxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPO1lBQzlELE9BQU8sQ0FBQyxlQUFlLEtBQUssU0FBUyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQjtZQUN4RSxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0I7WUFDdkUsT0FBTyxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsZUFBZTtZQUN0RSxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUI7WUFDNUUsT0FBTyxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUN0RTtZQUNBLE9BQU8sT0FBTyxDQUFBO1NBQ2Y7Y0FDSyxVQUFVLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Y0FDaEMsYUFBYSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUM7UUFDL0QsT0FBTyxhQUFhLENBQUE7SUFDdEIsQ0FBQztJQUVELHFCQUFxQixDQUFDLE1BQWM7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLGNBQWMsQ0FBQyxtQkFBbUIsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQzFGLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxTQUFpQjtRQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0lBQzdFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxXQUFnQjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsY0FBYyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDaEYsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN0RSxDQUFDOzs7WUF0TkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUF0Q1EsVUFBVTtZQUlWLHFCQUFxQjs7OztJQXdDMUIsb0NBQXdCO0lBQ3hCLHlDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBFTVBUWSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbnMuc2VydmljZSdcclxuaW1wb3J0IHsgTnNDb250ZW50U3RyaXBNdWx0aXBsZSB9IGZyb20gJy4vY29udGVudC1zdHJpcC1tdWx0aXBsZS5tb2RlbCdcclxuaW1wb3J0IHsgTnNDb250ZW50IH0gZnJvbSAnLi93aWRnZXQtY29udGVudC5tb2RlbCdcclxuaW1wb3J0IHsgTlNTZWFyY2ggfSBmcm9tICcuL3dpZGdldC1zZWFyY2gubW9kZWwnXHJcblxyXG4vLyBUT0RPOiBtb3ZlIHRoaXMgaW4gc29tZSBjb21tb24gcGxhY2VcclxuY29uc3QgUFJPVEVDVEVEX1NMQUdfVjggPSAnL2FwaXMvcHJvdGVjdGVkL3Y4J1xyXG5cclxuY29uc3QgQVBJX0VORF9QT0lOVFMgPSB7XHJcbiAgQ09OVEVOVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnRgLFxyXG4gIEFVVEhPUklOR19DT05URU5UOiBgL2FwaXMvYXV0aEFwaS9oaWVyYXJjaHlgLFxyXG4gIENPTlRFTlRfTElLRVM6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2xpa2VDb3VudGAsXHJcbiAgU0VUX1MzX0NPT0tJRTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvc2V0Q29va2llYCxcclxuICBTRVRfUzNfSU1BR0VfQ09PS0lFOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZXRJbWFnZUNvb2tpZWAsXHJcbiAgRkVUQ0hfTUFOSUZFU1Q6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2dldFdlYk1vZHVsZU1hbmlmZXN0YCxcclxuICBGRVRDSF9XRUJfTU9EVUxFX0ZJTEVTOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9nZXRXZWJNb2R1bGVGaWxlc2AsXHJcbiAgTVVMVElQTEVfQ09OVEVOVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvbXVsdGlwbGVgLFxyXG4gIENPTlRFTlRfU0VBUkNIX1Y1OiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZWFyY2hWNWAsXHJcbiAgQ09OVEVOVF9TRUFSQ0hfVjY6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFY2YCxcclxuICBDT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT046IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFJlZ2lvblJlY29tbWVuZGF0aW9uYCxcclxuICBDT05URU5UX0hJU1RPUlk6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL2hpc3RvcnlgLFxyXG4gIFVTRVJfQ09OVElOVUVfTEVBUk5JTkc6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL2hpc3RvcnkvY29udGludWVgLFxyXG4gIENPTlRFTlRfUkFUSU5HOiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9yYXRpbmdgLFxyXG4gIENPTExFQ1RJT05fSElFUkFSQ0hZOiAodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nKSA9PlxyXG4gICAgYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvY29sbGVjdGlvbi8ke3R5cGV9LyR7aWR9YCxcclxuICBSRUdJU1RSQVRJT05fU1RBVFVTOiBgJHtQUk9URUNURURfU0xBR19WOH0vYWRtaW4vdXNlclJlZ2lzdHJhdGlvbi9jaGVja1VzZXJSZWdpc3RyYXRpb25Db250ZW50YCxcclxuICBNQVJLX0FTX0NPTVBMRVRFX01FVEE6IChjb250ZW50SWQ6IHN0cmluZykgPT4gYCR7UFJPVEVDVEVEX1NMQUdfVjh9L3VzZXIvcHJvZ3Jlc3MvJHtjb250ZW50SWR9YCxcclxuICBFWFRfVVNFUl9DT1VSU0VfRU5ST0xMOiAoY29udGVudElkOiBhbnkpID0+IGAvYXBpcy9wcm94aWVzL3Y4L2Npb3MtZW5yb2xsL3YxL3JlYWRieS91c2VyaWRjb3Vyc2VpZC8ke2NvbnRlbnRJZH1gLFxyXG4gIEVYVF9DT05URU5UX0VST0xMOiBgL2FwaXMvcHJveGllcy92OC9jaW9zLWVucm9sbC92MS9jcmVhdGVgLFxyXG4gIENFUlRfRE9XTkxPQUQ6IChjZXJ0SWQ6IGFueSkgPT4gYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvaG9ydHMvY291cnNlL2JhdGNoL2NlcnQvZG93bmxvYWQvJHtjZXJ0SWR9YCxcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIHRoaXMgd2lsbCBiZSBkZXByaWNhdGVkXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgV2lkZ2V0Q29udGVudFNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIGZldGNoTWFya0FzQ29tcGxldGVNZXRhKGlkZW50aWZpZXI6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLk1BUktfQVNfQ09NUExFVEVfTUVUQShpZGVudGlmaWVyKVxyXG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKS50b1Byb21pc2UoKVxyXG4gICAgaWYgKHVybCkgeyB9XHJcbiAgICByZXR1cm4gb2YoKS50b1Byb21pc2UoKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50KFxyXG4gICAgY29udGVudElkOiBzdHJpbmcsXHJcbiAgICBoaWVyYXJjaHlUeXBlOiAnYWxsJyB8ICdtaW5pbWFsJyB8ICdkZXRhaWwnID0gJ2RldGFpbCcsXHJcbiAgICBhZGRpdGlvbmFsRmllbGRzOiBzdHJpbmdbXSA9IFtdLFxyXG4gICk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250ZW50PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UfS8ke2NvbnRlbnRJZH0/aGllcmFyY2h5VHlwZT0ke2hpZXJhcmNoeVR5cGV9YFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxOc0NvbnRlbnQuSUNvbnRlbnQ+KHVybCwgeyBhZGRpdGlvbmFsRmllbGRzIH0pXHJcbiAgICAgIC5waXBlKHJldHJ5KDEpKVxyXG4gIH1cclxuICBmZXRjaEF1dGhvcmluZ0NvbnRlbnQoY29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudD4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7QVBJX0VORF9QT0lOVFMuQVVUSE9SSU5HX0NPTlRFTlR9LyR7Y29udGVudElkfWBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29udGVudD4odXJsKS5waXBlKHJldHJ5KDEpKVxyXG4gIH1cclxuICBmZXRjaE11bHRpcGxlQ29udGVudChpZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250ZW50W10+KFxyXG4gICAgICBgJHtBUElfRU5EX1BPSU5UUy5NVUxUSVBMRV9DT05URU5UfS8ke2lkcy5qb2luKCcsJyl9YCxcclxuICAgIClcclxuICB9XHJcbiAgZmV0Y2hDb2xsZWN0aW9uSGllcmFyY2h5KHR5cGU6IHN0cmluZywgaWQ6IHN0cmluZywgcGFnZU51bWJlcjogbnVtYmVyID0gMCwgcGFnZVNpemU6IG51bWJlciA9IDEpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29sbGVjdGlvbkhpZXJhcmNoeVJlc3BvbnNlPihcclxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuQ09MTEVDVElPTl9ISUVSQVJDSFkoXHJcbiAgICAgICAgdHlwZSxcclxuICAgICAgICBpZCxcclxuICAgICAgKX0/cGFnZU51bWJlcj0ke3BhZ2VOdW1iZXJ9JnBhZ2VTaXplPSR7cGFnZVNpemV9YCxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGZldGNoQ29udGVudExpa2VzKGNvbnRlbnRJZHM6IHsgY29udGVudF9pZDogc3RyaW5nW10gfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDx7IFtpZGVudGlmaWVyOiBzdHJpbmddOiBudW1iZXIgfT4oQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9MSUtFUywgY29udGVudElkcylcclxuICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRlbnRSYXRpbmdzKGNvbnRlbnRJZHM6IHsgY29udGVudElkczogc3RyaW5nW10gfSkge1xyXG4gICAgaWYgKGNvbnRlbnRJZHMpIHsgfVxyXG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgLy8gICAucG9zdChgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX1JBVElOR30vcmF0aW5nYCwgY29udGVudElkcylcclxuICAgIC8vICAgLnRvUHJvbWlzZSgpXHJcbiAgICByZXR1cm4gb2YoKS50b1Byb21pc2UoKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb250ZW50SGlzdG9yeShjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TnNDb250ZW50LklDb250aW51ZUxlYXJuaW5nRGF0YT4oXHJcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfSElTVE9SWX0vJHtjb250ZW50SWR9YCxcclxuICAgIClcclxuICB9XHJcblxyXG4gIGFzeW5jIGNvbnRpbnVlTGVhcm5pbmcoaWQ6IHN0cmluZywgY29sbGVjdGlvbklkPzogc3RyaW5nLCBjb2xsZWN0aW9uVHlwZT86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgcmVzb2x2ZSA9PiB7XHJcbiAgICAgIGlmIChjb2xsZWN0aW9uVHlwZSAmJlxyXG4gICAgICAgIGNvbGxlY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09ICdwbGF5bGlzdCcpIHtcclxuICAgICAgICBjb25zdCByZXFCb2R5ID0ge1xyXG4gICAgICAgICAgY29udGV4dFBhdGhJZDogY29sbGVjdGlvbklkID8gY29sbGVjdGlvbklkIDogaWQsXHJcbiAgICAgICAgICByZXNvdXJjZUlkOiBpZCxcclxuICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgICBjb250ZXh0RnVsbFBhdGg6IFtjb2xsZWN0aW9uSWQsIGlkXSxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgZGF0ZUFjY2Vzc2VkOiBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgY29udGV4dFR5cGU6ICdwbGF5bGlzdCcsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcocmVxQm9keSkudG9Qcm9taXNlKCkuY2F0Y2goKS5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSlcclxuICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHJlcUJvZHkgPSB7XHJcbiAgICAgICAgICBjb250ZXh0UGF0aElkOiBjb2xsZWN0aW9uSWQgPyBjb2xsZWN0aW9uSWQgOiBpZCxcclxuICAgICAgICAgIHJlc291cmNlSWQ6IGlkLFxyXG4gICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoeyB0aW1lc3RhbXA6IERhdGUubm93KCkgfSksXHJcbiAgICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcocmVxQm9keSkudG9Qcm9taXNlKCkuY2F0Y2goKS5maW5hbGx5KCgpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSlcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBzYXZlQ29udGludWVMZWFybmluZyhjb250ZW50OiBOc0NvbnRlbnQuSVZpZXdlckNvbnRpbnVlTGVhcm5pbmdSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIGNvbnN0IHVybCA9IEFQSV9FTkRfUE9JTlRTLlVTRVJfQ09OVElOVUVfTEVBUk5JTkdcclxuICAgIC8vIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgY29udGVudClcclxuICAgIGlmIChjb250ZW50KSB7XHJcblxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9mKCkgYXMgYW55XHJcbiAgfVxyXG5cclxuICBzZXRTM0Nvb2tpZShcclxuICAgIF9jb250ZW50SWQ6IHN0cmluZyxcclxuICAgIC8vIF9wYXRoOiBzdHJpbmcsXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC8vICAgLnBvc3QoQVBJX0VORF9QT0lOVFMuU0VUX1MzX0NPT0tJRSwgeyBjb250ZW50SWQgfSlcclxuICAgIC8vICAgLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSlcclxuICAgIHJldHVybiBFTVBUWVxyXG4gIH1cclxuXHJcbiAgc2V0UzNJbWFnZUNvb2tpZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KEFQSV9FTkRfUE9JTlRTLlNFVF9TM19JTUFHRV9DT09LSUUsIHt9KS5waXBlKGNhdGNoRXJyb3IoX2VyciA9PiBvZih0cnVlKSkpXHJcbiAgfVxyXG5cclxuICBmZXRjaE1hbmlmZXN0KHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChBUElfRU5EX1BPSU5UUy5GRVRDSF9NQU5JRkVTVCwgeyB1cmwgfSlcclxuICB9XHJcbiAgZmV0Y2hXZWJNb2R1bGVDb250ZW50KHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke0FQSV9FTkRfUE9JTlRTLkZFVENIX1dFQl9NT0RVTEVfRklMRVN9P3VybD0ke2VuY29kZVVSSUNvbXBvbmVudCh1cmwpfWApXHJcbiAgfVxyXG4gIHNlYXJjaChyZXE6IE5TU2VhcmNoLklTZWFyY2hSZXF1ZXN0KTogT2JzZXJ2YWJsZTxOU1NlYXJjaC5JU2VhcmNoQXBpUmVzdWx0PiB7XHJcbiAgICByZXEucXVlcnkgPSByZXEucXVlcnkgfHwgJydcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOU1NlYXJjaC5JU2VhcmNoQXBpUmVzdWx0PihBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9WNSwge1xyXG4gICAgICByZXF1ZXN0OiByZXEsXHJcbiAgICB9KVxyXG4gIH1cclxuICBzZWFyY2hSZWdpb25SZWNvbW1lbmRhdGlvbihcclxuICAgIHJlcTogTlNTZWFyY2guSVNlYXJjaE9yZ1JlZ2lvblJlY29tbWVuZGF0aW9uUmVxdWVzdCxcclxuICApOiBPYnNlcnZhYmxlPE5zQ29udGVudFN0cmlwTXVsdGlwbGUuSUNvbnRlbnRTdHJpcFJlc3BvbnNlQXBpPiB7XHJcbiAgICByZXEucXVlcnkgPSByZXEucXVlcnkgfHwgJydcclxuICAgIHJlcS5wcmVMYWJlbFZhbHVlID1cclxuICAgICAgKHJlcS5wcmVMYWJlbFZhbHVlIHx8ICcnKSArXHJcbiAgICAgICgodGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUgJiYgdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUuY291bnRyeSkgfHwgJycpXHJcbiAgICByZXEuZmlsdGVycyA9IHtcclxuICAgICAgLi4ucmVxLmZpbHRlcnMsXHJcbiAgICAgIGxhYmVsczogW3JlcS5wcmVMYWJlbFZhbHVlIHx8ICcnXSxcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOc0NvbnRlbnRTdHJpcE11bHRpcGxlLklDb250ZW50U3RyaXBSZXNwb25zZUFwaT4oXHJcbiAgICAgIEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1JFR0lPTl9SRUNPTU1FTkRBVElPTixcclxuICAgICAgeyByZXF1ZXN0OiByZXEgfSxcclxuICAgIClcclxuICB9XHJcbiAgc2VhcmNoVjYocmVxOiBOU1NlYXJjaC5JU2VhcmNoVjZSZXF1ZXN0KTogT2JzZXJ2YWJsZTxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHQ+IHtcclxuICAgIHJlcS5xdWVyeSA9IHJlcS5xdWVyeSB8fCAnJ1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE5TU2VhcmNoLklTZWFyY2hWNkFwaVJlc3VsdD4oQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9TRUFSQ0hfVjYsIHJlcSlcclxuICB9XHJcblxyXG4gIGZldGNoQ29udGVudFJhdGluZyhjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8eyByYXRpbmc6IG51bWJlciB9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDx7IHJhdGluZzogbnVtYmVyIH0+KGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkFUSU5HfS8ke2NvbnRlbnRJZH1gKVxyXG4gIH1cclxuICBkZWxldGVDb250ZW50UmF0aW5nKGNvbnRlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkFUSU5HfS8ke2NvbnRlbnRJZH1gKVxyXG4gIH1cclxuICBhZGRDb250ZW50UmF0aW5nKGNvbnRlbnRJZDogc3RyaW5nLCBkYXRhOiB7IHJhdGluZzogbnVtYmVyIH0pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkd9LyR7Y29udGVudElkfWAsIGRhdGEpXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQGRlcHJlY2F0ZWQgdGhpcyB3aWxsIGJlIGRlcHJpY2F0ZWQuXHJcbiAgICovXHJcbiAgZ2V0Rmlyc3RDaGlsZEluSGllcmFyY2h5KGNvbnRlbnQ6IE5zQ29udGVudC5JQ29udGVudCk6IE5zQ29udGVudC5JQ29udGVudCB7XHJcbiAgICBpZiAoIShjb250ZW50LmNoaWxkcmVuIHx8IFtdKS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGNvbnRlbnRcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09ICdQcm9ncmFtJyAmJlxyXG4gICAgICAhKGNvbnRlbnQuYXJ0aWZhY3RVcmwgJiYgY29udGVudC5hcnRpZmFjdFVybC5sZW5ndGgpXHJcbiAgICApIHtcclxuICAgICAgY29uc3QgY2hpbGQgPSBjb250ZW50LmNoaWxkcmVuWzBdXHJcbiAgICAgIHJldHVybiB0aGlzLmdldEZpcnN0Q2hpbGRJbkhpZXJhcmNoeShjaGlsZClcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LlJFU09VUkNFIHx8XHJcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5LTk9XTEVER0VfQVJUSUZBQ1QgfHxcclxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LlBST0dSQU0gfHxcclxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5LlBSQUNUSUNFX1JFU09VUkNFIHx8XHJcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5GSU5BTF9BU1NFU1NNRU5UIHx8XHJcbiAgICAgIGNvbnRlbnQucHJpbWFyeUNhdGVnb3J5ID09PSBOc0NvbnRlbnQuRVByaW1hcnlDYXRlZ29yeS5DT01QX0FTU0VTU01FTlQgfHxcclxuICAgICAgY29udGVudC5wcmltYXJ5Q2F0ZWdvcnkgPT09IE5zQ29udGVudC5FUHJpbWFyeUNhdGVnb3J5Lk1BTkRBVE9SWV9DT1VSU0VfR09BTCB8fFxyXG4gICAgICBjb250ZW50LnByaW1hcnlDYXRlZ29yeSA9PT0gTnNDb250ZW50LkVQcmltYXJ5Q2F0ZWdvcnkuT0ZGTElORV9TRVNTSU9OXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIGNvbnRlbnRcclxuICAgIH1cclxuICAgIGNvbnN0IGZpcnN0Q2hpbGQgPSBjb250ZW50LmNoaWxkcmVuWzBdXHJcbiAgICBjb25zdCByZXN1bHRDb250ZW50ID0gdGhpcy5nZXRGaXJzdENoaWxkSW5IaWVyYXJjaHkoZmlyc3RDaGlsZClcclxuICAgIHJldHVybiByZXN1bHRDb250ZW50XHJcbiAgfVxyXG5cclxuICBnZXRSZWdpc3RyYXRpb25TdGF0dXMoc291cmNlOiBzdHJpbmcpOiBQcm9taXNlPHsgaGFzQWNjZXNzOiBib29sZWFuOyByZWdpc3RyYXRpb25Vcmw/OiBzdHJpbmcgfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHtBUElfRU5EX1BPSU5UUy5SRUdJU1RSQVRJT05fU1RBVFVTfS8ke3NvdXJjZX1gKS50b1Byb21pc2UoKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hDb25maWcodXJsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odXJsKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hFeHRVc2VyQ29udGVudEVucm9sbChjb250ZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihBUElfRU5EX1BPSU5UUy5FWFRfVVNFUl9DT1VSU0VfRU5ST0xMKGNvbnRlbnRJZCkpXHJcbiAgfVxyXG5cclxuICBleHRDb250ZW50RW5yb2xsKHJlcXVlc3RCb2R5OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkVYVF9DT05URU5UX0VST0xMfWAsIHJlcXVlc3RCb2R5KVxyXG4gIH1cclxuXHJcbiAgZG93bmxvYWRDZXJ0KGNlcnRJZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkNFUlRfRE9XTkxPQUQoY2VydElkKX1gKVxyXG4gIH1cclxufVxyXG4iXX0=