slick-components 5.0.28 → 17.0.2

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 (303) hide show
  1. package/{esm2020 → esm2022}/public-api.mjs +44 -44
  2. package/{esm2020 → esm2022}/slick-accordion/slick-accordion-item-header.component.mjs +14 -14
  3. package/esm2022/slick-accordion/slick-accordion-item.component.mjs +92 -0
  4. package/{esm2020 → esm2022}/slick-accordion/slick-accordion.component.mjs +80 -80
  5. package/{esm2020 → esm2022}/slick-accordion/slick-accordion.module.mjs +23 -23
  6. package/{esm2020 → esm2022}/slick-auto-complete/slick-auto-complete-list-item-template.directive.mjs +22 -22
  7. package/esm2022/slick-auto-complete/slick-auto-complete.component.mjs +388 -0
  8. package/{esm2020 → esm2022}/slick-auto-complete/slick-auto-complete.module.mjs +25 -25
  9. package/esm2022/slick-button-spinner/slick-button-spinner.component.mjs +175 -0
  10. package/{esm2020 → esm2022}/slick-button-spinner/slick-button-spinner.module.mjs +19 -19
  11. package/esm2022/slick-calendar/slick-calendar.component.mjs +271 -0
  12. package/{esm2020 → esm2022}/slick-calendar/slick-calendar.module.mjs +19 -19
  13. package/{esm2020 → esm2022}/slick-card/slick-card-header.component.mjs +14 -14
  14. package/esm2022/slick-card/slick-card.component.mjs +42 -0
  15. package/{esm2020 → esm2022}/slick-card/slick-card.module.mjs +20 -20
  16. package/{esm2020 → esm2022}/slick-components.mjs +4 -4
  17. package/{esm2020 → esm2022}/slick-confirm-dialog/slick-confirm-dialog.component.mjs +65 -65
  18. package/{esm2020 → esm2022}/slick-confirm-dialog/slick-confirm-dialog.module.mjs +20 -20
  19. package/{esm2020 → esm2022}/slick-container/slick-container-body.component.mjs +24 -24
  20. package/{esm2020 → esm2022}/slick-container/slick-container-footer.component.mjs +20 -20
  21. package/{esm2020 → esm2022}/slick-container/slick-container-header.component.mjs +20 -20
  22. package/{esm2020 → esm2022}/slick-container/slick-container.component.mjs +21 -21
  23. package/{esm2020 → esm2022}/slick-container/slick-container.module.mjs +25 -25
  24. package/{esm2020 → esm2022}/slick-context-menu/slick-context-menu-item.component.mjs +14 -14
  25. package/esm2022/slick-context-menu/slick-context-menu.component.mjs +48 -0
  26. package/{esm2020 → esm2022}/slick-context-menu/slick-context-menu.module.mjs +20 -20
  27. package/{esm2020 → esm2022}/slick-currency-mask/slick-currency-mask-options.model.mjs +11 -11
  28. package/esm2022/slick-currency-mask/slick-currency-mask.directive.mjs +233 -0
  29. package/{esm2020 → esm2022}/slick-currency-mask/slick-currency-mask.module.mjs +19 -19
  30. package/esm2022/slick-date-picker/slick-date-picker.component.mjs +278 -0
  31. package/{esm2020 → esm2022}/slick-date-picker/slick-date-picker.module.mjs +21 -21
  32. package/{esm2020 → esm2022}/slick-dialog/slick-dialog-footer.component.mjs +24 -24
  33. package/esm2022/slick-dialog/slick-dialog.component.mjs +294 -0
  34. package/{esm2020 → esm2022}/slick-dialog/slick-dialog.module.mjs +23 -23
  35. package/esm2022/slick-dialog/slick-dialog.service.mjs +68 -0
  36. package/{esm2020 → esm2022}/slick-drag-drop/slick-drag-drop.directive.mjs +13 -13
  37. package/{esm2020 → esm2022}/slick-drag-drop/slick-drag-drop.module.mjs +21 -21
  38. package/{esm2020 → esm2022}/slick-drag-drop/slick-draggable.directive.mjs +13 -13
  39. package/{esm2020 → esm2022}/slick-drop-down/slick-drop-down-button.model.mjs +7 -7
  40. package/esm2022/slick-drop-down/slick-drop-down.component.mjs +447 -0
  41. package/{esm2020 → esm2022}/slick-drop-down/slick-drop-down.module.mjs +24 -24
  42. package/esm2022/slick-drop-down/slick-drop-down.service.mjs +55 -0
  43. package/{esm2020 → esm2022}/slick-drop-list/slick-drop-list-grab.directive.mjs +18 -18
  44. package/{esm2020 → esm2022}/slick-drop-list/slick-drop-list-item.directive.mjs +18 -18
  45. package/esm2022/slick-drop-list/slick-drop-list.directive.mjs +215 -0
  46. package/{esm2020 → esm2022}/slick-drop-list/slick-drop-list.module.mjs +23 -23
  47. package/{esm2020 → esm2022}/slick-email-viewer/slick-email-viewer-dialog.component.mjs +62 -62
  48. package/esm2022/slick-email-viewer/slick-email-viewer.component.mjs +42 -0
  49. package/{esm2020 → esm2022}/slick-email-viewer/slick-email-viewer.module.mjs +26 -26
  50. package/{esm2020 → esm2022}/slick-emailer/slick-emailer-address.model.mjs +2 -2
  51. package/esm2022/slick-emailer/slick-emailer-dialog.component.mjs +153 -0
  52. package/esm2022/slick-emailer/slick-emailer.component.mjs +235 -0
  53. package/{esm2020 → esm2022}/slick-emailer/slick-emailer.model.mjs +2 -2
  54. package/{esm2020 → esm2022}/slick-emailer/slick-emailer.module.mjs +29 -29
  55. package/esm2022/slick-file-drop/slick-file-drop.component.mjs +156 -0
  56. package/{esm2020 → esm2022}/slick-file-drop/slick-file-drop.module.mjs +20 -20
  57. package/esm2022/slick-file-list/slick-file-list-item.component.mjs +190 -0
  58. package/esm2022/slick-file-list/slick-file-list.component.mjs +130 -0
  59. package/{esm2020 → esm2022}/slick-file-list/slick-file-list.module.mjs +23 -23
  60. package/{esm2020 → esm2022}/slick-file-model/slick-file.model.mjs +2 -2
  61. package/esm2022/slick-google-address-search/slick-google-address-search.directive.mjs +78 -0
  62. package/{esm2020 → esm2022}/slick-google-address-search/slick-google-address-search.module.mjs +19 -19
  63. package/esm2022/slick-google-map/slick-google-map-dialog.component.mjs +50 -0
  64. package/esm2022/slick-google-map/slick-google-map.component.mjs +48 -0
  65. package/{esm2020 → esm2022}/slick-google-map/slick-google-map.module.mjs +22 -22
  66. package/{esm2020 → esm2022}/slick-grid/slick-grid-column-template.directive.mjs +19 -19
  67. package/{esm2020 → esm2022}/slick-grid/slick-grid-column.model.mjs +66 -66
  68. package/{esm2020 → esm2022}/slick-grid/slick-grid-favorite.model.mjs +2 -2
  69. package/{esm2020 → esm2022}/slick-grid/slick-grid-request.model.mjs +2 -2
  70. package/{esm2020 → esm2022}/slick-grid/slick-grid-response.model.mjs +2 -2
  71. package/{esm2020 → esm2022}/slick-grid/slick-grid-sanitize.pipe.mjs +20 -20
  72. package/esm2022/slick-grid/slick-grid.component.mjs +793 -0
  73. package/{esm2020 → esm2022}/slick-grid/slick-grid.module.mjs +43 -43
  74. package/{esm2020 → esm2022}/slick-grid/slick-grid.options.mjs +11 -11
  75. package/esm2022/slick-grid/slick-grid.service.mjs +66 -0
  76. package/esm2022/slick-multi-select/slick-multi-select.component.mjs +415 -0
  77. package/{esm2020 → esm2022}/slick-multi-select/slick-multi-select.module.mjs +20 -20
  78. package/esm2022/slick-multi-select/slick-multi-select.service.mjs +78 -0
  79. package/esm2022/slick-ordered-list/slick-ordered-list.component.mjs +200 -0
  80. package/{esm2020 → esm2022}/slick-ordered-list/slick-ordered-list.module.mjs +20 -20
  81. package/esm2022/slick-paging/slick-paging.component.mjs +185 -0
  82. package/{esm2020 → esm2022}/slick-paging/slick-paging.module.mjs +19 -19
  83. package/esm2022/slick-photo-gallery/slick-photo-gallery.component.mjs +98 -0
  84. package/{esm2020 → esm2022}/slick-photo-gallery/slick-photo-gallery.model.mjs +2 -2
  85. package/{esm2020 → esm2022}/slick-photo-gallery/slick-photo-gallery.module.mjs +21 -21
  86. package/{esm2020 → esm2022}/slick-pick-list/slick-pick-list.component.mjs +84 -84
  87. package/{esm2020 → esm2022}/slick-pick-list/slick-pick-list.module.mjs +20 -20
  88. package/esm2022/slick-popover/slick-popover.component.mjs +204 -0
  89. package/{esm2020 → esm2022}/slick-popover/slick-popover.module.mjs +19 -19
  90. package/esm2022/slick-profile-picture/slick-profile-picture.component.mjs +267 -0
  91. package/{esm2020 → esm2022}/slick-profile-picture/slick-profile-picture.module.mjs +20 -20
  92. package/{esm2020 → esm2022}/slick-progress-bar/slick-progress-bar.module.mjs +18 -18
  93. package/esm2022/slick-progress-bar/slick-progress-bar.service.mjs +53 -0
  94. package/{esm2020 → esm2022}/slick-screen-blocker/slick-screen-blocker.module.mjs +18 -18
  95. package/esm2022/slick-screen-blocker/slick-screen-blocker.service.mjs +83 -0
  96. package/esm2022/slick-search-bar/slick-search-bar.component.mjs +130 -0
  97. package/{esm2020 → esm2022}/slick-search-bar/slick-search-bar.module.mjs +20 -20
  98. package/{esm2020 → esm2022}/slick-slider/slick-slider-tick.model.mjs +2 -2
  99. package/esm2022/slick-slider/slick-slider.component.mjs +90 -0
  100. package/{esm2020 → esm2022}/slick-slider/slick-slider.module.mjs +20 -20
  101. package/{esm2020 → esm2022}/slick-split-screen/slick-screen-split-left-content.component.mjs +15 -15
  102. package/{esm2020 → esm2022}/slick-split-screen/slick-screen-split-right-content.component.mjs +15 -15
  103. package/esm2022/slick-split-screen/slick-split-screen.component.mjs +159 -0
  104. package/{esm2020 → esm2022}/slick-split-screen/slick-split-screen.module.mjs +21 -21
  105. package/esm2022/slick-star-rating/slick-star-rating.component.mjs +91 -0
  106. package/{esm2020 → esm2022}/slick-star-rating/slick-star-rating.module.mjs +21 -21
  107. package/{esm2020 → esm2022}/slick-tabs/slick-tab-header.component.mjs +28 -28
  108. package/esm2022/slick-tabs/slick-tab.component.mjs +63 -0
  109. package/{esm2020 → esm2022}/slick-tabs/slick-tab.model.mjs +2 -2
  110. package/esm2022/slick-tabs/slick-tabs.component.mjs +107 -0
  111. package/{esm2020 → esm2022}/slick-tabs/slick-tabs.module.mjs +23 -23
  112. package/{esm2020 → esm2022}/slick-toast/slick-toast.module.mjs +18 -18
  113. package/esm2022/slick-toast/slick-toast.service.mjs +88 -0
  114. package/esm2022/slick-tree-view/slick-tree-node.model.mjs +18 -0
  115. package/esm2022/slick-tree-view/slick-tree-view.component.mjs +293 -0
  116. package/{esm2020 → esm2022}/slick-tree-view/slick-tree-view.module.mjs +22 -22
  117. package/esm2022/slick-type-ahead/slick-type-ahead.directive.mjs +164 -0
  118. package/{esm2020 → esm2022}/slick-type-ahead/slick-type-ahead.module.mjs +18 -18
  119. package/esm2022/slick-validation-indicator/slick-validation-indicator.directive.mjs +66 -0
  120. package/{esm2020 → esm2022}/slick-validation-indicator/slick-validation-indicator.module.mjs +19 -19
  121. package/esm2022/utils/slick-function-lock.service.mjs +55 -0
  122. package/esm2022/utils/slick-init.service.mjs +49 -0
  123. package/{esm2020 → esm2022}/utils/slick-log.service.mjs +23 -23
  124. package/{esm2020 → esm2022}/utils/slick-sleep.service.mjs +14 -14
  125. package/esm2022/utils/slick-utils.service.mjs +247 -0
  126. package/{fesm2020 → fesm2022}/slick-components.mjs +8495 -8495
  127. package/fesm2022/slick-components.mjs.map +1 -0
  128. package/index.d.ts +5 -5
  129. package/package.json +11 -17
  130. package/public-api.d.ts +41 -41
  131. package/slick-accordion/slick-accordion-item-header.component.d.ts +5 -5
  132. package/slick-accordion/slick-accordion-item.component.d.ts +24 -24
  133. package/slick-accordion/slick-accordion.component.d.ts +22 -22
  134. package/slick-accordion/slick-accordion.module.d.ts +16 -16
  135. package/slick-auto-complete/slick-auto-complete-list-item-template.directive.d.ts +10 -10
  136. package/slick-auto-complete/slick-auto-complete.component.d.ts +60 -60
  137. package/slick-auto-complete/slick-auto-complete.module.d.ts +15 -15
  138. package/slick-button-spinner/slick-button-spinner.component.d.ts +28 -28
  139. package/slick-button-spinner/slick-button-spinner.module.d.ts +10 -10
  140. package/slick-calendar/slick-calendar.component.d.ts +53 -53
  141. package/slick-calendar/slick-calendar.module.d.ts +10 -10
  142. package/slick-card/slick-card-header.component.d.ts +5 -5
  143. package/slick-card/slick-card.component.d.ts +13 -13
  144. package/slick-card/slick-card.module.d.ts +12 -12
  145. package/slick-confirm-dialog/slick-confirm-dialog.component.d.ts +26 -26
  146. package/slick-confirm-dialog/slick-confirm-dialog.module.d.ts +11 -11
  147. package/slick-container/slick-container-body.component.d.ts +7 -7
  148. package/slick-container/slick-container-footer.component.d.ts +6 -6
  149. package/slick-container/slick-container-header.component.d.ts +6 -6
  150. package/slick-container/slick-container.component.d.ts +8 -8
  151. package/slick-container/slick-container.module.d.ts +19 -19
  152. package/slick-context-menu/slick-context-menu-item.component.d.ts +5 -5
  153. package/slick-context-menu/slick-context-menu.component.d.ts +13 -13
  154. package/slick-context-menu/slick-context-menu.module.d.ts +12 -12
  155. package/slick-currency-mask/slick-currency-mask-options.model.d.ts +10 -10
  156. package/slick-currency-mask/slick-currency-mask.directive.d.ts +29 -29
  157. package/slick-currency-mask/slick-currency-mask.module.d.ts +10 -10
  158. package/slick-date-picker/slick-date-picker.component.d.ts +45 -45
  159. package/slick-date-picker/slick-date-picker.module.d.ts +12 -12
  160. package/slick-dialog/slick-dialog-footer.component.d.ts +7 -7
  161. package/slick-dialog/slick-dialog.component.d.ts +56 -56
  162. package/slick-dialog/slick-dialog.module.d.ts +13 -13
  163. package/slick-dialog/slick-dialog.service.d.ts +17 -17
  164. package/slick-drag-drop/slick-drag-drop.directive.d.ts +5 -5
  165. package/slick-drag-drop/slick-drag-drop.module.d.ts +13 -13
  166. package/slick-drag-drop/slick-draggable.directive.d.ts +5 -5
  167. package/slick-drop-down/slick-drop-down-button.model.d.ts +13 -13
  168. package/slick-drop-down/slick-drop-down.component.d.ts +78 -78
  169. package/slick-drop-down/slick-drop-down.module.d.ts +14 -14
  170. package/slick-drop-down/slick-drop-down.service.d.ts +12 -12
  171. package/slick-drop-list/slick-drop-list-grab.directive.d.ts +7 -7
  172. package/slick-drop-list/slick-drop-list-item.directive.d.ts +7 -7
  173. package/slick-drop-list/slick-drop-list.directive.d.ts +33 -33
  174. package/slick-drop-list/slick-drop-list.module.d.ts +16 -16
  175. package/slick-email-viewer/slick-email-viewer-dialog.component.d.ts +19 -19
  176. package/slick-email-viewer/slick-email-viewer.component.d.ts +13 -13
  177. package/slick-email-viewer/slick-email-viewer.module.d.ts +18 -18
  178. package/slick-emailer/slick-emailer-address.model.d.ts +10 -10
  179. package/slick-emailer/slick-emailer-dialog.component.d.ts +33 -33
  180. package/slick-emailer/slick-emailer.component.d.ts +50 -50
  181. package/slick-emailer/slick-emailer.model.d.ts +16 -16
  182. package/slick-emailer/slick-emailer.module.d.ts +21 -21
  183. package/slick-file-drop/slick-file-drop.component.d.ts +25 -25
  184. package/slick-file-drop/slick-file-drop.module.d.ts +11 -11
  185. package/slick-file-list/slick-file-list-item.component.d.ts +37 -37
  186. package/slick-file-list/slick-file-list.component.d.ts +31 -31
  187. package/slick-file-list/slick-file-list.module.d.ts +14 -14
  188. package/slick-file-model/slick-file.model.d.ts +28 -28
  189. package/slick-google-address-search/slick-google-address-search.directive.d.ts +16 -17
  190. package/slick-google-address-search/slick-google-address-search.module.d.ts +10 -10
  191. package/slick-google-map/slick-google-map-dialog.component.d.ts +15 -16
  192. package/slick-google-map/slick-google-map.component.d.ts +17 -18
  193. package/slick-google-map/slick-google-map.module.d.ts +14 -14
  194. package/slick-grid/slick-grid-column-template.directive.d.ts +9 -9
  195. package/slick-grid/slick-grid-column.model.d.ts +64 -64
  196. package/slick-grid/slick-grid-favorite.model.d.ts +9 -9
  197. package/slick-grid/slick-grid-request.model.d.ts +33 -33
  198. package/slick-grid/slick-grid-response.model.d.ts +8 -8
  199. package/slick-grid/slick-grid-sanitize.pipe.d.ts +10 -10
  200. package/slick-grid/slick-grid.component.d.ts +119 -119
  201. package/slick-grid/slick-grid.module.d.ts +32 -32
  202. package/slick-grid/slick-grid.options.d.ts +35 -35
  203. package/slick-grid/slick-grid.service.d.ts +12 -12
  204. package/slick-multi-select/slick-multi-select.component.d.ts +69 -69
  205. package/slick-multi-select/slick-multi-select.module.d.ts +11 -11
  206. package/slick-multi-select/slick-multi-select.service.d.ts +9 -9
  207. package/slick-ordered-list/slick-ordered-list.component.d.ts +28 -28
  208. package/slick-ordered-list/slick-ordered-list.module.d.ts +11 -11
  209. package/slick-paging/slick-paging.component.d.ts +31 -31
  210. package/slick-paging/slick-paging.module.d.ts +10 -10
  211. package/slick-photo-gallery/slick-photo-gallery.component.d.ts +26 -26
  212. package/slick-photo-gallery/slick-photo-gallery.model.d.ts +8 -8
  213. package/slick-photo-gallery/slick-photo-gallery.module.d.ts +12 -12
  214. package/slick-pick-list/slick-pick-list.component.d.ts +24 -24
  215. package/slick-pick-list/slick-pick-list.module.d.ts +11 -11
  216. package/slick-popover/slick-popover.component.d.ts +39 -39
  217. package/slick-popover/slick-popover.module.d.ts +10 -10
  218. package/slick-profile-picture/slick-profile-picture.component.d.ts +29 -29
  219. package/slick-profile-picture/slick-profile-picture.module.d.ts +11 -11
  220. package/slick-progress-bar/slick-progress-bar.module.d.ts +9 -9
  221. package/slick-progress-bar/slick-progress-bar.service.d.ts +12 -12
  222. package/slick-screen-blocker/slick-screen-blocker.module.d.ts +9 -9
  223. package/slick-screen-blocker/slick-screen-blocker.service.d.ts +16 -16
  224. package/slick-search-bar/slick-search-bar.component.d.ts +37 -37
  225. package/slick-search-bar/slick-search-bar.module.d.ts +11 -11
  226. package/slick-slider/slick-slider-tick.model.d.ts +10 -10
  227. package/slick-slider/slick-slider.component.d.ts +29 -29
  228. package/slick-slider/slick-slider.module.d.ts +11 -11
  229. package/slick-split-screen/slick-screen-split-left-content.component.d.ts +6 -6
  230. package/slick-split-screen/slick-screen-split-right-content.component.d.ts +6 -6
  231. package/slick-split-screen/slick-split-screen.component.d.ts +40 -40
  232. package/slick-split-screen/slick-split-screen.module.d.ts +14 -14
  233. package/slick-star-rating/slick-star-rating.component.d.ts +28 -28
  234. package/slick-star-rating/slick-star-rating.module.d.ts +12 -12
  235. package/slick-tabs/slick-tab-header.component.d.ts +12 -12
  236. package/slick-tabs/slick-tab.component.d.ts +22 -22
  237. package/slick-tabs/slick-tab.model.d.ts +10 -10
  238. package/slick-tabs/slick-tabs.component.d.ts +25 -25
  239. package/slick-tabs/slick-tabs.module.d.ts +16 -16
  240. package/slick-toast/slick-toast.module.d.ts +9 -9
  241. package/slick-toast/slick-toast.service.d.ts +16 -16
  242. package/slick-tree-view/slick-tree-node.model.d.ts +30 -30
  243. package/slick-tree-view/slick-tree-view.component.d.ts +62 -62
  244. package/slick-tree-view/slick-tree-view.module.d.ts +13 -13
  245. package/slick-type-ahead/slick-type-ahead.directive.d.ts +25 -25
  246. package/slick-type-ahead/slick-type-ahead.module.d.ts +9 -9
  247. package/slick-validation-indicator/slick-validation-indicator.directive.d.ts +22 -22
  248. package/slick-validation-indicator/slick-validation-indicator.module.d.ts +10 -10
  249. package/utils/slick-function-lock.service.d.ts +9 -9
  250. package/utils/slick-init.service.d.ts +21 -21
  251. package/utils/slick-log.service.d.ts +9 -9
  252. package/utils/slick-sleep.service.d.ts +6 -6
  253. package/utils/slick-utils.service.d.ts +24 -24
  254. package/esm2020/slick-accordion/slick-accordion-item.component.mjs +0 -92
  255. package/esm2020/slick-auto-complete/slick-auto-complete.component.mjs +0 -388
  256. package/esm2020/slick-button-spinner/slick-button-spinner.component.mjs +0 -175
  257. package/esm2020/slick-calendar/slick-calendar.component.mjs +0 -271
  258. package/esm2020/slick-card/slick-card.component.mjs +0 -42
  259. package/esm2020/slick-context-menu/slick-context-menu.component.mjs +0 -48
  260. package/esm2020/slick-currency-mask/slick-currency-mask.directive.mjs +0 -233
  261. package/esm2020/slick-date-picker/slick-date-picker.component.mjs +0 -278
  262. package/esm2020/slick-dialog/slick-dialog.component.mjs +0 -294
  263. package/esm2020/slick-dialog/slick-dialog.service.mjs +0 -68
  264. package/esm2020/slick-drop-down/slick-drop-down.component.mjs +0 -447
  265. package/esm2020/slick-drop-down/slick-drop-down.service.mjs +0 -55
  266. package/esm2020/slick-drop-list/slick-drop-list.directive.mjs +0 -215
  267. package/esm2020/slick-email-viewer/slick-email-viewer.component.mjs +0 -42
  268. package/esm2020/slick-emailer/slick-emailer-dialog.component.mjs +0 -153
  269. package/esm2020/slick-emailer/slick-emailer.component.mjs +0 -235
  270. package/esm2020/slick-file-drop/slick-file-drop.component.mjs +0 -156
  271. package/esm2020/slick-file-list/slick-file-list-item.component.mjs +0 -190
  272. package/esm2020/slick-file-list/slick-file-list.component.mjs +0 -130
  273. package/esm2020/slick-google-address-search/slick-google-address-search.directive.mjs +0 -78
  274. package/esm2020/slick-google-map/slick-google-map-dialog.component.mjs +0 -50
  275. package/esm2020/slick-google-map/slick-google-map.component.mjs +0 -48
  276. package/esm2020/slick-grid/slick-grid.component.mjs +0 -793
  277. package/esm2020/slick-grid/slick-grid.service.mjs +0 -66
  278. package/esm2020/slick-multi-select/slick-multi-select.component.mjs +0 -415
  279. package/esm2020/slick-multi-select/slick-multi-select.service.mjs +0 -78
  280. package/esm2020/slick-ordered-list/slick-ordered-list.component.mjs +0 -200
  281. package/esm2020/slick-paging/slick-paging.component.mjs +0 -185
  282. package/esm2020/slick-photo-gallery/slick-photo-gallery.component.mjs +0 -98
  283. package/esm2020/slick-popover/slick-popover.component.mjs +0 -204
  284. package/esm2020/slick-profile-picture/slick-profile-picture.component.mjs +0 -267
  285. package/esm2020/slick-progress-bar/slick-progress-bar.service.mjs +0 -53
  286. package/esm2020/slick-screen-blocker/slick-screen-blocker.service.mjs +0 -83
  287. package/esm2020/slick-search-bar/slick-search-bar.component.mjs +0 -130
  288. package/esm2020/slick-slider/slick-slider.component.mjs +0 -90
  289. package/esm2020/slick-split-screen/slick-split-screen.component.mjs +0 -159
  290. package/esm2020/slick-star-rating/slick-star-rating.component.mjs +0 -91
  291. package/esm2020/slick-tabs/slick-tab.component.mjs +0 -63
  292. package/esm2020/slick-tabs/slick-tabs.component.mjs +0 -107
  293. package/esm2020/slick-toast/slick-toast.service.mjs +0 -88
  294. package/esm2020/slick-tree-view/slick-tree-node.model.mjs +0 -18
  295. package/esm2020/slick-tree-view/slick-tree-view.component.mjs +0 -293
  296. package/esm2020/slick-type-ahead/slick-type-ahead.directive.mjs +0 -164
  297. package/esm2020/slick-validation-indicator/slick-validation-indicator.directive.mjs +0 -66
  298. package/esm2020/utils/slick-function-lock.service.mjs +0 -55
  299. package/esm2020/utils/slick-init.service.mjs +0 -49
  300. package/esm2020/utils/slick-utils.service.mjs +0 -247
  301. package/fesm2015/slick-components.mjs +0 -9084
  302. package/fesm2015/slick-components.mjs.map +0 -1
  303. package/fesm2020/slick-components.mjs.map +0 -1
@@ -1,20 +1,20 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from "@angular/core";
3
- import { FormsModule } from "@angular/forms";
4
- import { SlickFileDropComponent } from "./slick-file-drop.component";
5
- import * as i0 from "@angular/core";
6
- export class SlickFileDropModule {
7
- }
8
- /** @nocollapse */ SlickFileDropModulefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SlickFileDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- /** @nocollapse */ SlickFileDropModulemod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: SlickFileDropModule, declarations: [SlickFileDropComponent], imports: [CommonModule, FormsModule], exports: [CommonModule, FormsModule, SlickFileDropComponent] });
10
- /** @nocollapse */ SlickFileDropModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SlickFileDropModule, imports: [CommonModule, FormsModule, CommonModule, FormsModule] });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SlickFileDropModule, decorators: [{
12
- type: NgModule,
13
- args: [{
14
- imports: [CommonModule, FormsModule],
15
- declarations: [SlickFileDropComponent],
16
- exports: [CommonModule, FormsModule, SlickFileDropComponent]
17
- }]
18
- }] });
19
- export { SlickFileDropComponent };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZmlsZS1kcm9wLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLWZpbGUtZHJvcC9zbGljay1maWxlLWRyb3AubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFPckUsTUFBTSxPQUFPLG1CQUFtQjs7bUlBQW5CLG1CQUFtQjtvSUFBbkIsbUJBQW1CLGlCQUhoQixzQkFBc0IsYUFEM0IsWUFBWSxFQUFFLFdBQVcsYUFFekIsWUFBWSxFQUFFLFdBQVcsRUFBRSxzQkFBc0I7b0lBRS9DLG1CQUFtQixZQUpyQixZQUFZLEVBQUUsV0FBVyxFQUV6QixZQUFZLEVBQUUsV0FBVzsyRkFFdkIsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7b0JBQ3BDLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixDQUFDO2lCQUM1RDs7QUFFRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgU2xpY2tGaWxlRHJvcENvbXBvbmVudCB9IGZyb20gXCIuL3NsaWNrLWZpbGUtZHJvcC5jb21wb25lbnRcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG5cdGRlY2xhcmF0aW9uczogW1NsaWNrRmlsZURyb3BDb21wb25lbnRdLFxyXG5cdGV4cG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTbGlja0ZpbGVEcm9wQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tGaWxlRHJvcE1vZHVsZSB7IH1cclxuZXhwb3J0IHsgU2xpY2tGaWxlRHJvcENvbXBvbmVudCB9XHJcbiJdfQ==
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from "@angular/core";
3
+ import { FormsModule } from "@angular/forms";
4
+ import { SlickFileDropComponent } from "./slick-file-drop.component";
5
+ import * as i0 from "@angular/core";
6
+ export class SlickFileDropModule {
7
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ /** @nocollapse */ static { thismod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: SlickFileDropModule, declarations: [SlickFileDropComponent], imports: [CommonModule, FormsModule], exports: [CommonModule, FormsModule, SlickFileDropComponent] }); }
9
+ /** @nocollapse */ static { thisinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileDropModule, imports: [CommonModule, FormsModule, CommonModule, FormsModule] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileDropModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule, FormsModule],
15
+ declarations: [SlickFileDropComponent],
16
+ exports: [CommonModule, FormsModule, SlickFileDropComponent]
17
+ }]
18
+ }] });
19
+ export { SlickFileDropComponent };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZmlsZS1kcm9wLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLWZpbGUtZHJvcC9zbGljay1maWxlLWRyb3AubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFPckUsTUFBTSxPQUFPLG1CQUFtQjtpSUFBbkIsbUJBQW1CO2tJQUFuQixtQkFBbUIsaUJBSGhCLHNCQUFzQixhQUQzQixZQUFZLEVBQUUsV0FBVyxhQUV6QixZQUFZLEVBQUUsV0FBVyxFQUFFLHNCQUFzQjtrSUFFL0MsbUJBQW1CLFlBSnJCLFlBQVksRUFBRSxXQUFXLEVBRXpCLFlBQVksRUFBRSxXQUFXOzsyRkFFdkIsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7b0JBQ3BDLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixDQUFDO2lCQUM1RDs7QUFFRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgU2xpY2tGaWxlRHJvcENvbXBvbmVudCB9IGZyb20gXCIuL3NsaWNrLWZpbGUtZHJvcC5jb21wb25lbnRcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG5cdGRlY2xhcmF0aW9uczogW1NsaWNrRmlsZURyb3BDb21wb25lbnRdLFxyXG5cdGV4cG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTbGlja0ZpbGVEcm9wQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tGaWxlRHJvcE1vZHVsZSB7IH1cclxuZXhwb3J0IHsgU2xpY2tGaWxlRHJvcENvbXBvbmVudCB9XHJcbiJdfQ==
@@ -0,0 +1,190 @@
1
+ import { Component, Input, Output, ViewChild, EventEmitter } from "@angular/core";
2
+ import { SlickSleepService } from "../utils/slick-sleep.service";
3
+ import { SlickUtilsService } from "../utils/slick-utils.service";
4
+ import moment from "moment";
5
+ import Swal from "sweetalert2";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "../slick-confirm-dialog/slick-confirm-dialog.component";
10
+ const excelExtensions = ['xls', 'xlt', 'xlm', 'xlsx', 'xlsm', 'xltx', 'xltm', 'xlsb', 'xla', 'xlam', 'xll', 'xlw'];
11
+ const wordExtensions = ['doc', 'dot', 'wbk', 'docx', 'docm', 'dotx', 'dotm', 'docb'];
12
+ const pdfExtensions = ['pdf'];
13
+ export class SlickFileListItemComponent {
14
+ constructor() {
15
+ this.allowDelete = true;
16
+ this.showPhotoGallery = false;
17
+ this.showCheckbox = false;
18
+ this.confirmDelete = true;
19
+ this.fileChangeEmitter = new EventEmitter();
20
+ this.fileDeleteEmitter = new EventEmitter();
21
+ this.fileClicked = new EventEmitter();
22
+ this.checkChanged = new EventEmitter();
23
+ this.isEditing = false;
24
+ this.tempTitle = '';
25
+ this.fnDocumentClick = (e) => this.documentClick(e);
26
+ this.itemSize = 120;
27
+ this.itemImgSize = 90;
28
+ this.uuid = SlickUtilsService.newGuid();
29
+ }
30
+ ngOnChanges(changes) {
31
+ if (changes.thumbnailSize) {
32
+ this.itemImgSize = parseInt(this.thumbnailSize.toString());
33
+ this.itemSize = this.itemImgSize + 10;
34
+ }
35
+ if (changes.allowDelete && changes.allowDelete.currentValue)
36
+ this.allowDelete = (changes.allowDelete.currentValue.toString().toLowerCase() !== 'false');
37
+ if (changes.showPhotoGallery && changes.showPhotoGallery.currentValue)
38
+ this.showPhotoGallery = (changes.showPhotoGallery.currentValue.toString().toLowerCase() !== 'false');
39
+ if (changes.showCheckbox && changes.showCheckbox.currentValue)
40
+ this.showCheckbox = (changes.showCheckbox.currentValue.toString().toLowerCase() !== 'false');
41
+ this.confirmDelete = (this.confirmDelete.toString() === 'true') ? true : false;
42
+ if (this.file)
43
+ this.file.title = (this.file.title ?? '');
44
+ if (this.file && this.file.name && !this.file.thumbnailBase64Image && !this.file.url) {
45
+ if (this.file.isChecked === null)
46
+ this.file.isChecked = false;
47
+ let fileNameParts = this.file.name.split('.');
48
+ if (fileNameParts.length > 1) {
49
+ let ext = fileNameParts[fileNameParts.length - 1].toLowerCase();
50
+ if (excelExtensions.indexOf(ext) >= 0) {
51
+ this.file.thumbnailBase64Image = "data:image/jpeg;base64,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";
52
+ }
53
+ else if (wordExtensions.indexOf(ext) >= 0) {
54
+ this.file.thumbnailBase64Image = "data:image/jpeg;base64,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";
55
+ }
56
+ else if (pdfExtensions.indexOf(ext) >= 0) {
57
+ this.file.thumbnailBase64Image = "data:image/png;base64,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";
58
+ }
59
+ else {
60
+ this.file.thumbnailBase64Image = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAA8CAYAAAAgwDn8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA0OEFBMUY4ODUwQTExRTdCRTBEODA1RTkwQkYwRkEzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA0OEFBMUY5ODUwQTExRTdCRTBEODA1RTkwQkYwRkEzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDQ4QUExRjY4NTBBMTFFN0JFMEQ4MDVFOTBCRjBGQTMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDQ4QUExRjc4NTBBMTFFN0JFMEQ4MDVFOTBCRjBGQTMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4yP5ieAAAFD0lEQVR42uxayUsbURh/iaPGfQsKerGuuCAFL54KIip6sVIEe5MeRJHqX9NelCq1SCuFGoPiUpeDoh4UxZPe3SO4a+LW93v6hsmQmJkks0jzwTCTOGa+37f83vd9byxTU1NVa2trPx4fH6OsVuuNxWIh9NpKnoRePtrpOZ4ed/SaSEX+OVi5v7+30VN0RUXFp+zs7P7r62sSFRVFoqOjSVxcHLvGIQgCgX5SEdbX14f29vbeJCQkeP1BfqMvUXKPEsHvuN1usri4+K2qqiouLy/v69XVlaL/FS4uLuypqamiMrBquCyrRKjX2RkGvLm5IUtLS1+opT35+fl9SkAIcNPt7S0DgB87Pz9n1uA/rJXASHhGcnIyO+OzzWYjCJ+FhYVefFdUVNQHXV4E8Bzz5OHhgVmgrq6OFBQUEOoZTQHExsYyY01MTLBnxcTEMD3i4+PJ5eUlmZub66XfucvKygbPzs78A+AxCAA0mQh1HcnNzdUlfOD52dlZ9mxcw9rwCMIJIKanp79TEJ6SkpJfp6envkOQxzsHcXd3p1v8Q2k8D8rScCHl5eXk4OCA6cFJZWxs7OfW1taHjIwMn2FtJSYQJGtiYiJpa2tjIHZ2dlg4JSUlMcM6HI7fm5ubH9PT01mogVI5GFMA4OQB6ezs9AIBYFB4dHR0iFL+e1wj0eE90wCQS1dXF6FxT3Z3d0UQYEun0/lndXW1EbkKrzEm05PzlQqsDBCFhYUiCOQEwolS7JjL5apJS0t7AkBMKrB4d3c3o3RaKbDvkBOw/uTk5N/9/f13LLHNoCxf1HyB6OnpIcXFxeTo6EgEgfVqZGRkhubJW9N4wF9dBRAdHR2MZrGggWJR+ng8HoGy00/BDMqnpKQw1hkYGGAKSvMSIYN4h4cABoJ7sODRFTxbXImNSGY8E2UEQoLGNNne3hZDSeoRzkSolaA8khxnlCOC0WyTk5PDlEPdD2vLew1eHeMAKIDFfRygoQBg0fb2dvEzrOoPAJoZHP39/WRjY4OFleEAuBd8XfsTlBJSoKZdB/wJij9pfrw6AHK6fXUATFlO/9cAArIQuqXl5WVGZUpYIpxNDlpb2hOHBgD1x/DwMAOAlU8vQfGGAUPIAGB1u93OAICD9WQbVJ6BWCggACzbsIbeHjg8PCQvjVMUA0An1NDQoHilDJcg99CRhQwAZWtzc3OERg2l0ZWVFU1CiA+00PdqBkBLGkWz3traqgqAvPFSRKPo/rWgUVSWGOaqLb+lIBTRqMvl0sQDoEqEkaqkfR7FKwaAdq+xsVGTHMA4ERM4tX20dDELCACrYVNTU4RGDaNRuHlmZkZsrLUUTBwwQq+pqQkvgPHxcV1qoZOTE7ZDFFYAsHpmZqYu1SgMBMoOVKWqplHQnV4e8FVCh1yN1tbW6pID2HkJ5IGgqtGWlpYIjRpGo5gez8/PB70S8+a8srLSuHXA6XQGncRoR6urq8MKQFUpEWpT7685D0VU0+jx8XFAAPINCakHlL46o7QaVRVCsB56YnkVKFdUOs+Xjr9RLqutOFXnwEvbSyin6+vrIzQaAeAPQLjeezPcA3y3XM/pWzDit6mH8jiw4Yz6R8lcUldLU92wFQu9pHTuBQAjDjQvDodD85f+gl3AAAJbrJyqBemYAmds58NNZswNHuZeIUQR3WObH3z/GsTj8YgrP6oEobS09DONq0GbzXaLV49fCflY3G53YlZW1sI/AQYA/aOxmPzI7uUAAAAASUVORK5CYII=";
61
+ }
62
+ }
63
+ }
64
+ if (this.file && this.file.fileDate) {
65
+ const dateFormat = 'MMM. D, YYYY';
66
+ const timeFormat = 'h:mm:ss a';
67
+ this.fileDateFormatted = moment(this.file.fileDate).format(dateFormat);
68
+ this.fileTimeFormatted = moment(this.file.fileDate).format(timeFormat);
69
+ // const fileDateFormat = (this.file.fileDateFormat ?? '') !== '' ? this.file.fileDateFormat : 'MMM. D, YYYY h:mm:ss a';
70
+ // this.fileDateFormatted = moment(this.file.fileDate).format(fileDateFormat);
71
+ // this.fileTimeFormatted = moment(this.file.fileDate).format(fileDateFormat);
72
+ }
73
+ }
74
+ onClick() {
75
+ if (this.fileClicked)
76
+ this.fileClicked.emit(this.file);
77
+ }
78
+ async deleteFile(e) {
79
+ e.stopPropagation();
80
+ e.preventDefault();
81
+ if (this.confirmDelete === false) {
82
+ this.fileDeleteEmitter.emit(this.file);
83
+ }
84
+ else {
85
+ Swal.fire({
86
+ title: 'Are you sure you want to delete?',
87
+ text: `${this.file.title}`,
88
+ showDenyButton: false,
89
+ showCancelButton: true,
90
+ confirmButtonText: 'Delete',
91
+ customClass: {
92
+ confirmButton: 'btn btn-outline-danger',
93
+ cancelButton: 'btn btn-outline-secondary',
94
+ },
95
+ heightAuto: false
96
+ }).then((result) => {
97
+ if (result.isConfirmed) {
98
+ this.fileDeleteEmitter.emit(this.file);
99
+ }
100
+ });
101
+ }
102
+ }
103
+ async editTitle() {
104
+ this.isEditing = true;
105
+ this.tempTitle = this.file.title;
106
+ await SlickSleepService.sleep();
107
+ this.editTitleInputRef.nativeElement.setSelectionRange(0, this.editTitleInputRef.nativeElement.value.length);
108
+ this.editTitleInputRef.nativeElement.focus();
109
+ document.addEventListener("click", this.fnDocumentClick, true);
110
+ }
111
+ onKeyDown(e) {
112
+ if (e.which === 13) {
113
+ this.file.title = this.tempTitle;
114
+ this.fileChangeEmitter.emit(this.file);
115
+ this.isEditing = false;
116
+ document.removeEventListener("click", this.fnDocumentClick, true);
117
+ }
118
+ if (e.which === 27) {
119
+ this.tempTitle = null;
120
+ this.isEditing = false;
121
+ document.removeEventListener("click", this.fnDocumentClick, true);
122
+ }
123
+ }
124
+ async documentClick(e) {
125
+ await SlickSleepService.sleep();
126
+ const clickedInside = SlickUtilsService.checkParentClassExists(e.target, 'slick-file-list-item_title');
127
+ if (clickedInside)
128
+ return;
129
+ if (this.isEditing === true) {
130
+ this.file.title = this.tempTitle;
131
+ this.fileChangeEmitter.emit(this.file);
132
+ this.isEditing = false;
133
+ document.removeEventListener("click", this.fnDocumentClick, true);
134
+ }
135
+ }
136
+ async onCheckboxClicked(e) {
137
+ this.file.isChecked = !this.file.isChecked;
138
+ if (this.checkChanged)
139
+ this.checkChanged.emit(e);
140
+ }
141
+ ngOnDestroy() {
142
+ document.removeEventListener("click", this.fnDocumentClick, true);
143
+ }
144
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
145
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: SlickFileListItemComponent, selector: "slick-file-list-item", inputs: { file: "file", allowDelete: "allowDelete", showPhotoGallery: "showPhotoGallery", showCheckbox: "showCheckbox", thumbnailSize: "thumbnailSize", confirmDelete: "confirmDelete" }, outputs: { fileChangeEmitter: "fileChange", fileDeleteEmitter: "fileDelete", fileClicked: "fileClicked", checkChanged: "checkChanged" }, viewQueries: [{ propertyName: "titleDivRef", first: true, predicate: ["titleDivRef"], descendants: true }, { propertyName: "editTitleDivRef", first: true, predicate: ["editTitleDivRef"], descendants: true }, { propertyName: "editTitleInputRef", first: true, predicate: ["editTitleInputRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"slick-file-list-item\" id=\"slick-file-list-item_{{uuid}}\">\r\n\t<div class=\"slick-file-list-item_img gray-block card\" (click)=\"onClick()\" [ngStyle]=\"{ 'cursor': (showPhotoGallery === true) ? 'pointer' : 'default' }\" [style.minHeight.px]=\"itemSize + 2\" [style.minWidth.px]=\"itemSize\">\r\n\t\t<img *ngIf=\"file.thumbnailBase64Image\" [src]=\"file.thumbnailBase64Image\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && file.base64Image\" [src]=\"file.base64Image\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && !file.base64Image && file.thumbnailUrl\" [src]=\"file.thumbnailUrl\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && !file.base64Image && !file.thumbnailUrl && file.url\" [src]=\"file.url\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<i *ngIf=\"allowDelete\" class=\"fas fa-circle-x bg-white text-danger\" (click)=\"deleteFile($event)\"></i>\r\n\t\t<div class=\"file-info\">\r\n\t\t\t<div class=\"slick-file-list-item_title\" [style.minWidth.px]=\"itemSize\" [style.maxWidth.px]=\"itemSize\">\r\n\t\t\t <div class=\"slick-file-list-item_display-title\" #titleDivRef style=\"cursor: pointer\" *ngIf=\"!isEditing\" (click)=\"editTitle()\">\r\n\t\t\t\t{{ (file.title ?? '').length > 18 ? (file.title ?? '').slice(0, 18) + '...' : file.title }}\r\n\t\t\t </div>\r\n\t\t\t <div #editTitleDivRef class=\"slick-file-list-item_edit-title\" *ngIf=\"isEditing\">\r\n\t\t\t\t<input #editTitleInputRef type=\"text\" class=\"form-control\" [(ngModel)]=\"tempTitle\" (keydown)=\"onKeyDown($event)\" [style.width.px]=\"itemSize\" />\r\n\t\t\t </div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"slick-file-list-item_title\" *ngIf=\"fileDateFormatted\" [style.minWidth.px]=\"itemSize\" [style.maxWidth.px]=\"itemSize\">\r\n\t\t\t <div class=\"slick-file-list-item_date\">\r\n\t\t\t\t<div *ngIf=\"fileDateFormatted\" [style.minWidth.px]=\"itemSize\">{{ fileDateFormatted }}</div>\r\n\t\t\t\t<div *ngIf=\"fileTimeFormatted\" [style.minWidth.px]=\"itemSize\">{{ fileTimeFormatted }}</div>\r\n\t\t\t </div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<!-- We want the user to be able to click just a little outside of the checkbox and still have it check -->\r\n\t<div *ngIf=\"showCheckbox === true\" class=\"slick-file-checkbox\" (click)=\"onCheckboxClicked($event)\">\r\n\t\t<input type=\"checkbox\" [ngModel]=\"file.isChecked\" />\r\n\t</div>\r\n</div>\r\n\r\n<slick-confirm-dialog #deleteConfirmRef okButtonText='Delete'>\r\n\t<h4 class=\"p-0 m-0\">Are you sure you want to delete?</h4>\r\n\t<h5 class=\"p-0 m-0\">\"{{file.title}}\"</h5>\r\n</slick-confirm-dialog>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SlickConfirmDialogComponent, selector: "slick-confirm-dialog", inputs: ["width", "okButtonText", "cancelButtonText", "showOkButton", "showCancelButton"] }] }); }
146
+ }
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileListItemComponent, decorators: [{
148
+ type: Component,
149
+ args: [{ selector: 'slick-file-list-item', template: "<div class=\"slick-file-list-item\" id=\"slick-file-list-item_{{uuid}}\">\r\n\t<div class=\"slick-file-list-item_img gray-block card\" (click)=\"onClick()\" [ngStyle]=\"{ 'cursor': (showPhotoGallery === true) ? 'pointer' : 'default' }\" [style.minHeight.px]=\"itemSize + 2\" [style.minWidth.px]=\"itemSize\">\r\n\t\t<img *ngIf=\"file.thumbnailBase64Image\" [src]=\"file.thumbnailBase64Image\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && file.base64Image\" [src]=\"file.base64Image\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && !file.base64Image && file.thumbnailUrl\" [src]=\"file.thumbnailUrl\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<img *ngIf=\"!file.thumbnailBase64Image && !file.base64Image && !file.thumbnailUrl && file.url\" [src]=\"file.url\" [style.maxWidth.px]=\"itemImgSize\" [style.maxHeight.px]=\"itemImgSize\" />\r\n\t\t<i *ngIf=\"allowDelete\" class=\"fas fa-circle-x bg-white text-danger\" (click)=\"deleteFile($event)\"></i>\r\n\t\t<div class=\"file-info\">\r\n\t\t\t<div class=\"slick-file-list-item_title\" [style.minWidth.px]=\"itemSize\" [style.maxWidth.px]=\"itemSize\">\r\n\t\t\t <div class=\"slick-file-list-item_display-title\" #titleDivRef style=\"cursor: pointer\" *ngIf=\"!isEditing\" (click)=\"editTitle()\">\r\n\t\t\t\t{{ (file.title ?? '').length > 18 ? (file.title ?? '').slice(0, 18) + '...' : file.title }}\r\n\t\t\t </div>\r\n\t\t\t <div #editTitleDivRef class=\"slick-file-list-item_edit-title\" *ngIf=\"isEditing\">\r\n\t\t\t\t<input #editTitleInputRef type=\"text\" class=\"form-control\" [(ngModel)]=\"tempTitle\" (keydown)=\"onKeyDown($event)\" [style.width.px]=\"itemSize\" />\r\n\t\t\t </div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"slick-file-list-item_title\" *ngIf=\"fileDateFormatted\" [style.minWidth.px]=\"itemSize\" [style.maxWidth.px]=\"itemSize\">\r\n\t\t\t <div class=\"slick-file-list-item_date\">\r\n\t\t\t\t<div *ngIf=\"fileDateFormatted\" [style.minWidth.px]=\"itemSize\">{{ fileDateFormatted }}</div>\r\n\t\t\t\t<div *ngIf=\"fileTimeFormatted\" [style.minWidth.px]=\"itemSize\">{{ fileTimeFormatted }}</div>\r\n\t\t\t </div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<!-- We want the user to be able to click just a little outside of the checkbox and still have it check -->\r\n\t<div *ngIf=\"showCheckbox === true\" class=\"slick-file-checkbox\" (click)=\"onCheckboxClicked($event)\">\r\n\t\t<input type=\"checkbox\" [ngModel]=\"file.isChecked\" />\r\n\t</div>\r\n</div>\r\n\r\n<slick-confirm-dialog #deleteConfirmRef okButtonText='Delete'>\r\n\t<h4 class=\"p-0 m-0\">Are you sure you want to delete?</h4>\r\n\t<h5 class=\"p-0 m-0\">\"{{file.title}}\"</h5>\r\n</slick-confirm-dialog>" }]
150
+ }], ctorParameters: () => [], propDecorators: { file: [{
151
+ type: Input,
152
+ args: ["file"]
153
+ }], allowDelete: [{
154
+ type: Input,
155
+ args: ["allowDelete"]
156
+ }], showPhotoGallery: [{
157
+ type: Input,
158
+ args: ["showPhotoGallery"]
159
+ }], showCheckbox: [{
160
+ type: Input,
161
+ args: ["showCheckbox"]
162
+ }], thumbnailSize: [{
163
+ type: Input,
164
+ args: ["thumbnailSize"]
165
+ }], confirmDelete: [{
166
+ type: Input,
167
+ args: ["confirmDelete"]
168
+ }], fileChangeEmitter: [{
169
+ type: Output,
170
+ args: ["fileChange"]
171
+ }], fileDeleteEmitter: [{
172
+ type: Output,
173
+ args: ["fileDelete"]
174
+ }], fileClicked: [{
175
+ type: Output,
176
+ args: ["fileClicked"]
177
+ }], checkChanged: [{
178
+ type: Output,
179
+ args: ["checkChanged"]
180
+ }], titleDivRef: [{
181
+ type: ViewChild,
182
+ args: ["titleDivRef"]
183
+ }], editTitleDivRef: [{
184
+ type: ViewChild,
185
+ args: ["editTitleDivRef"]
186
+ }], editTitleInputRef: [{
187
+ type: ViewChild,
188
+ args: ["editTitleInputRef"]
189
+ }] } });
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZmlsZS1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZmlsZS1saXN0L3NsaWNrLWZpbGUtbGlzdC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLWZpbGUtbGlzdC9zbGljay1maWxlLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBZ0UsTUFBTSxlQUFlLENBQUM7QUFDaEosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHakUsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQTs7Ozs7QUFFOUIsTUFBTSxlQUFlLEdBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzdILE1BQU0sY0FBYyxHQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQy9GLE1BQU0sYUFBYSxHQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7QUFNeEMsTUFBTSxPQUFPLDBCQUEwQjtJQTJCdEM7UUF6QnNCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQ3ZCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUN0QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU3QixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUNoQyxzQkFBaUIsR0FBa0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RSxzQkFBaUIsR0FBa0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRSxnQkFBVyxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9ELGlCQUFZLEdBQTZCLElBQUksWUFBWSxFQUFFLENBQUM7UUFRcEYsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBR3ZCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFL0MsYUFBUSxHQUFXLEdBQUcsQ0FBQztRQUN2QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUd4QixJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDakMsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkMsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVk7WUFDMUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDO1FBRTVGLElBQUksT0FBTyxDQUFDLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZO1lBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUM7UUFFdEcsSUFBSSxPQUFPLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWTtZQUM1RCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUM7UUFFOUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRS9FLElBQUksSUFBSSxDQUFDLElBQUk7WUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3RGLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSTtnQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBRTdCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLElBQUksR0FBRyxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUVoRSxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcscTFMQUFxMUwsQ0FBQztnQkFDeDNMLENBQUM7cUJBQ0ksSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLHk1TEFBeTVMLENBQUM7Z0JBQzU3TCxDQUFDO3FCQUNJLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxvMkpBQW8ySixDQUFDO2dCQUN2NEosQ0FBQztxQkFDSSxDQUFDO29CQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsdzVGQUF3NUYsQ0FBQztnQkFDMzdGLENBQUM7WUFDRixDQUFDO1FBQ0YsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRXJDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQztZQUNsQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7WUFFL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRXZFLHdIQUF3SDtZQUN4SCw4RUFBOEU7WUFDOUUsOEVBQThFO1FBQy9FLENBQUM7SUFDRixDQUFDO0lBRUQsT0FBTztRQUNOLElBQUksSUFBSSxDQUFDLFdBQVc7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLENBQVE7UUFDeEIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUVuQixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsQ0FBQzthQUNJLENBQUM7WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNULEtBQUssRUFBRSxrQ0FBa0M7Z0JBQ3pDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUMxQixjQUFjLEVBQUUsS0FBSztnQkFDckIsZ0JBQWdCLEVBQUUsSUFBSTtnQkFDdEIsaUJBQWlCLEVBQUUsUUFBUTtnQkFDM0IsV0FBVyxFQUFFO29CQUNaLGFBQWEsRUFBRSx3QkFBd0I7b0JBQ3ZDLFlBQVksRUFBQywyQkFBMkI7aUJBQ3hDO2dCQUNELFVBQVUsRUFBRSxLQUFLO2FBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQixJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7WUFDQSxDQUFDLENBQUMsQ0FBQTtRQUNMLENBQUM7SUFDRixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2pDLE1BQU0saUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDNUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxDQUFnQjtRQUN6QixJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUVELElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNGLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLENBQWE7UUFDaEMsTUFBTSxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQyxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBYyxDQUFDLENBQUMsTUFBTSxFQUFFLDRCQUE0QixDQUFDLENBQUE7UUFDbkgsSUFBSSxhQUFhO1lBQ2hCLE9BQU87UUFFUixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNGLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBYTtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzNDLElBQUksSUFBSSxDQUFDLFlBQVk7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVc7UUFDVixRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztpSUF0S1csMEJBQTBCO3FIQUExQiwwQkFBMEIsOHNCQ2hCdkMsZ3pGQWtDdUI7OzJGRGxCViwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0Msc0JBQXNCO3dEQUlqQixJQUFJO3NCQUFsQixLQUFLO3VCQUFDLE1BQU07Z0JBQ1MsV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQUNPLGdCQUFnQjtzQkFBMUMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBQ0YsWUFBWTtzQkFBbEMsS0FBSzt1QkFBQyxjQUFjO2dCQUNHLGFBQWE7c0JBQXBDLEtBQUs7dUJBQUMsZUFBZTtnQkFDRSxhQUFhO3NCQUFwQyxLQUFLO3VCQUFDLGVBQWU7Z0JBQ0EsaUJBQWlCO3NCQUF0QyxNQUFNO3VCQUFDLFlBQVk7Z0JBQ0UsaUJBQWlCO3NCQUF0QyxNQUFNO3VCQUFDLFlBQVk7Z0JBQ0csV0FBVztzQkFBakMsTUFBTTt1QkFBQyxhQUFhO2dCQUNHLFlBQVk7c0JBQW5DLE1BQU07dUJBQUMsY0FBYztnQkFFSSxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ00sZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0ksaUJBQWlCO3NCQUFoRCxTQUFTO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT25EZXN0cm95LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNsaWNrU2xlZXBTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXNsZWVwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stdXRpbHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJU2xpY2tGaWxlTW9kZWwgfSBmcm9tIFwiLi4vc2xpY2stZmlsZS1tb2RlbC9zbGljay1maWxlLm1vZGVsXCI7XHJcbmltcG9ydCB7IFNsaWNrQ29uZmlybURpYWxvZ0NvbXBvbmVudCwgU2xpY2tDb25maXJtRGlhbG9nUmVzdWx0cyB9IGZyb20gXCIuLi9zbGljay1jb25maXJtLWRpYWxvZy9zbGljay1jb25maXJtLWRpYWxvZy5tb2R1bGVcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCBTd2FsIGZyb20gXCJzd2VldGFsZXJ0MlwiXHJcblxyXG5jb25zdCBleGNlbEV4dGVuc2lvbnM6IHN0cmluZ1tdID0gWyd4bHMnLCAneGx0JywgJ3hsbScsICd4bHN4JywgJ3hsc20nLCAneGx0eCcsICd4bHRtJywgJ3hsc2InLCAneGxhJywgJ3hsYW0nLCAneGxsJywgJ3hsdyddO1xyXG5jb25zdCB3b3JkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBbJ2RvYycsICdkb3QnLCAnd2JrJywgJ2RvY3gnLCAnZG9jbScsICdkb3R4JywgJ2RvdG0nLCAnZG9jYiddO1xyXG5jb25zdCBwZGZFeHRlbnNpb25zOiBzdHJpbmdbXSA9IFsncGRmJ107XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3NsaWNrLWZpbGUtbGlzdC1pdGVtJyxcclxuXHR0ZW1wbGF0ZVVybDogJ3NsaWNrLWZpbGUtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tGaWxlTGlzdEl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblx0QElucHV0KFwiZmlsZVwiKSBmaWxlOiBJU2xpY2tGaWxlTW9kZWw7XHRcclxuXHRASW5wdXQoXCJhbGxvd0RlbGV0ZVwiKSBhbGxvd0RlbGV0ZTogYm9vbGVhbiA9IHRydWU7XHJcblx0QElucHV0KFwic2hvd1Bob3RvR2FsbGVyeVwiKSBzaG93UGhvdG9HYWxsZXJ5OiBib29sZWFuID0gZmFsc2U7XHJcblx0QElucHV0KFwic2hvd0NoZWNrYm94XCIpIHNob3dDaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dChcInRodW1ibmFpbFNpemVcIikgdGh1bWJuYWlsU2l6ZTogbnVtYmVyO1xyXG5cdEBJbnB1dChcImNvbmZpcm1EZWxldGVcIikgY29uZmlybURlbGV0ZTogYm9vbGVhbiA9IHRydWU7XHJcblx0QE91dHB1dChcImZpbGVDaGFuZ2VcIikgZmlsZUNoYW5nZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxJU2xpY2tGaWxlTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoXCJmaWxlRGVsZXRlXCIpIGZpbGVEZWxldGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8SVNsaWNrRmlsZU1vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KFwiZmlsZUNsaWNrZWRcIikgZmlsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxJU2xpY2tGaWxlTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoXCJjaGVja0NoYW5nZWRcIikgY2hlY2tDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cdEBWaWV3Q2hpbGQoXCJ0aXRsZURpdlJlZlwiKSB0aXRsZURpdlJlZjogRWxlbWVudFJlZjtcclxuXHRAVmlld0NoaWxkKFwiZWRpdFRpdGxlRGl2UmVmXCIpIGVkaXRUaXRsZURpdlJlZjogRWxlbWVudFJlZjtcclxuXHRAVmlld0NoaWxkKFwiZWRpdFRpdGxlSW5wdXRSZWZcIikgZWRpdFRpdGxlSW5wdXRSZWY6IEVsZW1lbnRSZWY7XHJcblx0Ly8gQFZpZXdDaGlsZChcImRlbGV0ZUNvbmZpcm1SZWZcIikgZGVsZXRlQ29uZmlybVJlZjogU2xpY2tDb25maXJtRGlhbG9nQ29tcG9uZW50O1xyXG5cclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0aXNFZGl0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcblx0dGVtcFRpdGxlOiBzdHJpbmcgPSAnJztcclxuXHRmaWxlRGF0ZUZvcm1hdHRlZDogc3RyaW5nO1xyXG5cdGZpbGVUaW1lRm9ybWF0dGVkOiBzdHJpbmc7XHJcblx0Zm5Eb2N1bWVudENsaWNrID0gKGUpID0+IHRoaXMuZG9jdW1lbnRDbGljayhlKTtcclxuXHJcblx0aXRlbVNpemU6IG51bWJlciA9IDEyMDtcclxuXHRpdGVtSW1nU2l6ZTogbnVtYmVyID0gOTA7XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG5cdFx0dGhpcy51dWlkID0gU2xpY2tVdGlsc1NlcnZpY2UubmV3R3VpZCgpO1xyXG5cdH1cclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG5cdFx0aWYgKGNoYW5nZXMudGh1bWJuYWlsU2l6ZSkge1xyXG5cdFx0XHR0aGlzLml0ZW1JbWdTaXplID0gcGFyc2VJbnQodGhpcy50aHVtYm5haWxTaXplLnRvU3RyaW5nKCkpO1xyXG5cdFx0XHR0aGlzLml0ZW1TaXplID0gdGhpcy5pdGVtSW1nU2l6ZSArIDEwO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChjaGFuZ2VzLmFsbG93RGVsZXRlICYmIGNoYW5nZXMuYWxsb3dEZWxldGUuY3VycmVudFZhbHVlKVxyXG5cdFx0XHR0aGlzLmFsbG93RGVsZXRlID0gKGNoYW5nZXMuYWxsb3dEZWxldGUuY3VycmVudFZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSAhPT0gJ2ZhbHNlJyk7XHRcdFxyXG5cclxuXHRcdGlmIChjaGFuZ2VzLnNob3dQaG90b0dhbGxlcnkgJiYgY2hhbmdlcy5zaG93UGhvdG9HYWxsZXJ5LmN1cnJlbnRWYWx1ZSlcclxuXHRcdFx0dGhpcy5zaG93UGhvdG9HYWxsZXJ5ID0gKGNoYW5nZXMuc2hvd1Bob3RvR2FsbGVyeS5jdXJyZW50VmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpICE9PSAnZmFsc2UnKTtcdFxyXG5cclxuXHRcdGlmIChjaGFuZ2VzLnNob3dDaGVja2JveCAmJiBjaGFuZ2VzLnNob3dDaGVja2JveC5jdXJyZW50VmFsdWUpXHJcblx0XHRcdHRoaXMuc2hvd0NoZWNrYm94ID0gKGNoYW5nZXMuc2hvd0NoZWNrYm94LmN1cnJlbnRWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgIT09ICdmYWxzZScpO1xyXG5cclxuXHRcdHRoaXMuY29uZmlybURlbGV0ZSA9ICh0aGlzLmNvbmZpcm1EZWxldGUudG9TdHJpbmcoKSA9PT0gJ3RydWUnKSA/IHRydWUgOiBmYWxzZTtcclxuXHJcblx0XHRpZiAodGhpcy5maWxlKVxyXG5cdFx0XHR0aGlzLmZpbGUudGl0bGUgPSAodGhpcy5maWxlLnRpdGxlID8/ICcnKTtcclxuXHJcblx0XHRpZiAodGhpcy5maWxlICYmIHRoaXMuZmlsZS5uYW1lICYmICF0aGlzLmZpbGUudGh1bWJuYWlsQmFzZTY0SW1hZ2UgJiYgIXRoaXMuZmlsZS51cmwpIHtcclxuXHRcdFx0aWYgKHRoaXMuZmlsZS5pc0NoZWNrZWQgPT09IG51bGwpXHJcblx0XHRcdFx0dGhpcy5maWxlLmlzQ2hlY2tlZCA9IGZhbHNlO1xyXG5cclxuXHRcdFx0bGV0IGZpbGVOYW1lUGFydHMgPSB0aGlzLmZpbGUubmFtZS5zcGxpdCgnLicpO1xyXG5cdFx0XHRpZiAoZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxKSB7XHJcblx0XHRcdFx0bGV0IGV4dCA9IGZpbGVOYW1lUGFydHNbZmlsZU5hbWVQYXJ0cy5sZW5ndGggLSAxXS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuXHRcdFx0XHRpZiAoZXhjZWxFeHRlbnNpb25zLmluZGV4T2YoZXh0KSA+PSAwKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZpbGUudGh1bWJuYWlsQmFzZTY0SW1hZ2UgPSBcImRhdGE6aW1hZ2UvanBlZztiYXNlNjQsLzlqLzRBQVFTa1pKUmdBQkFRQUFBUUFCQUFELzJ3Q0VBQWtHQnhBUUVoSU5EUkFRRFEwUkVBNFBEUTBORUJzUERRME9GUk1XRnhVUkZSVVlLQ2dnR0JzbUhCWVRMVDB0SlNrck15NDNJeDh6UVQ4dU55a3RMaXNCQ2dvS0RnME9HaEFRR3kwbEh4OHZLeXN0TnkwM01pc3RNQ3N0TWkwdE1EVXRMUzB0TFMwdExTc3RMU3N1S3kwdExTMHRMU3N0TFM4dEt5MHRMUzByTGYvQUFCRUlBTmdBNlFNQkVRQUNFUUVERVFIL3hBQWNBQUVBQVFVQkFRQUFBQUFBQUFBQUFBQUFBUUlEQkFVSEJnai94QUJGRUFBQ0FRSUJCQTBLQkFVREJRQUFBQUFBQVFJREJCRVNJVEZSQlFZSEV4UXlRV0Z4Y29HaHNSVWlVbFJpa1pPaTBlRWpRclBCTkRWRGdwSWxNMU1YWTdMUzhQL0VBQm9CQVFBREFRRUJBQUFBQUFBQUFBQUFBQUFCQWdNRUJRYi94QUF2RVFFQUFnRURBZ1VDQlFRREFBQUFBQUFBQVFJUkF4SXhCQk1oTWtGUllWS1JCVE54c2RFaU5JSHdGVVBoLzlvQURBTUJBQUlSQXhFQVB3RHVJQUFBQUFBTEY5ZFJvMDUxNm5FcHdsT1dHbkJMSEJjNFUxTHhTczJuaUhIOW1kbnJpNms1Vlp5akJ2emFNSk5Vb1I1Rmh5dm5mMk1abkw1blc2blUxcHphZkQyOUdySVlBQUFBQUFBQUFBQnNyTGlMcGZpR2R1VjhLZ0FBQUFBQUFBRGE3RGJPMWJhU2VWS2RIRlpkS1R4V1R5dU9PaGt4YkRzNmJyZFRSdHptdnJIOE9oZVVxUDhBeVI5NXJtSDB2ZjAvZGxrdFFBQUFBQU5IdDIvZ2JqcXcvd0RPSlczRGs2NzhpemtCaythQUFBQUFBQUFBQUFCc3JMaUxwZmlHZHVWOEtnQUFBQUFBQUFBQmN5M3JmdkMyNlhYamQ5b0FBQUFBQm85dS93REEzSFZoK3BFcmJoeWRkL2IyY2dNbnpRQUFBQUFBQUFBQUFObFpjUmRMOFF6dHl2aFVBQUFBQUFBQUFBS2dsMkEzZmFnQUFBQUFhUGJ2L0EzSFZoK3BFcmJoeWRkL2IyY2dNbnpRQUFBQUFBQUFBQUFObFpjUmRMOFF6dHl2aFVBQUFBQUFBQUFBS2dsMkEzZmFnQUFBQUFhUGJ2OEF3TngxWWZxUksyNGNuWGYyOW5JREo4MEFBQUFBQUFBQUFBRFpXWEVYUy9FTTdjcjRWQUFBQUFBQUFBQUNvSmRnTjMyb0FBQUFBR2gyOHZDeHVIN01QMUlrVzRjdlcva1djYzM1NmtaWWZPYlRmbnFRd2JUZm5xUXdiVGZucVF3YlRmbnFRd2JUZm5xUXdiVGZucVF3YlRmbnFRd2JVeHJhL2VNSW1xNlFxQWJLeTRpNlg0aG5ibGZDb0FBQUFBQUFBQUFWQkxMMjY3ZGE4NnM3YXpxU29VS2NwVTVWS2J5YXRhYWVFbXBhWXhUeHd3MDZlWEJXdGIyZTUxWFdYbTAxcE9JaDVGN0tYSHJGeDhhZjFLNWx4ZHkvMVQ5NVI1VHVQV0sveHAvVVprN2wvcW43eWVVN2oxaXY4YWYxR1pPNWY2cCs4bzhxWEhyRmY0MC9xTXlkeS8xVDk1UEtseDZ4WCtOUDZqTW5jdjhBVlAzbFJWMlFyeVRqT3RXbkY2WXpxeWxGOUtiR1NiM253bVorN0h4SVVSaUF4Q1RLQ0VZc0pNb0NNV0JZcnR4V1hHVWxobmF4YldIUVRFdGFURS8weXYybXlNSnJ6bmhKYWN6ejg1S21wcFRXZkJuMDd5bmd2TzdtUXdtazVWY01wK2wzTWhHeVd5c2J1R1F2TzVYeVBXU3l0V2NzamhVUFM3bUViWk9GUTlMdVlOc25Db2VsM01HMlRoVVBTN21EYkp3cUhwZHpCdGs0VkQwdTVnMnljS2g2WGN3YlpPRlE5THVZTnNuQ29lbDNNRzJUaFVQUzdtRGJLcmhVUFM3bURiTHpFbmkyM25iYmJldGtPeFNFQUVBQUlBQVFFZ0VBQUFFRUFCYnVPTExxeThDVnErYUdxMlAwdm9KbDFhM0VOcFQwRlhMUEtvSWJTdzRpNlg0a3NMOHNnbFVBQUFBQUFBQUFBS2lVdFN5clpBQUFCQUFKUUFBZ0FCQUFnQUlBb3I4V1hWbDRFclY4ME5Wc2ZwZlIrNU11clc0aHRLZWdxNVo1VkJEYVdIRVhTL0VsaGZsa0VxZ0FBQUFBQUFBQUJVU2xxR1ZiQUVBQVBkYkFiUXFWNVFoYzA3eVNVbGhPRzhwdW5VV2FVSDUzSS9mbWZLWGltWWVqbzlGWFZwRm9zMlAvQUVyajY1TDRDLzhBWW50dGYrTmo2bk85azdLZHZWcVc5VllWS1UzQ1dwNnBMbWF3ZmFaejRQTXZTYVdtcytqR0NwMzlHa0RvdGx1WFNsVGhPcmN1bFZsR01wMGxSVWxUazFpNDQ1V2ZBdjIzcDEvRHN4RXpieFdkbWR6eWphMGFseld2WlpGT09PQ29MS25MUkdDODdTM2doTk1RcnFkRFhUck5wdHg4T2ZHYnpnQUJicjhXWFZsNEV3dFh6UTFleCtsOUg3a3k2dGJpRzBwNkNybG5sVUVOcFljUmRMOFNXRitXUVNxQUFBQUFBQUFBQUZSS1dvWlZzZ0NBa0E5ZnViYllPQzNIQjZqd3Q3aHFMeDBVNitpRXViSFEvd0MzVVdwT0pkdlE2L2J2dG5pZjNkak5udHViYnJXd21hR3lGTmFNbWpjWWFtL3c1dnRlSGJIVVozajFlWCtJYVBHcEg2UzVvWlBMZXgzTTlnZUUzSENhaXhvV3pVcytpZGY4a2V6VC9qckwwak11M29kSGZmZFBFZnU3R2JQYmNnM1R0c1hDSzNBNlR4b1c4bmx0YUtseG9mWkhPdW5LNWpHOXN6aDQzWGErKzJ5T0kvZi9BTWVKS09CQURFSlc2NzgyWFZsNEVwcjVvYXpZL1Mrajl5WmRXdHhEYVU5QlZ5enlxQ0cwc09JdWwrSkxDL0xJSlZBQUFBQUFBQUFBQ29sTFRzcTNRQkFBQ0dCMnpjKzJ3OE10OG1vOGJtaGswNjJPbWF3OHlyMnBQdFROcVd6RDNlazErN1R4NWpsNkRaQ3poWHBUb1ZWbFU2a0pRbXVYQnJERmFtVE1aZE42eGFzMW4xY0F2OWk2dEc0bFpPTG5YalZWS01WL1VsSnJJYTZ5Y1gybUV4NDRmT1gwN1Z2czllSGN0ck93MGJLM3AyMGNISkxLcXpYOVNxK05MNmN5UnZXTVErZzBOS05La1ZocnR2MjJIZ1Z1OTdlRnpXeXFkRFhITjUxWCsxTmRyaVJhMklaZFhyOXFuaHpQRGlCZzhGR0lFWWhLQUxkYml5NnN2QUxWNWhydGo5TDZQM0xTNmRiaUcwcDZDcmxubFVFTnBZY1JkTDhTV0YrV1FTcUFBQUFBQUFBQUFGUktXbVpWdWdBQkFBZ2JiYXRzM0t5dUlYQ3hkUGlWNEw4OUY4WmRLek5jNlJNVGlXM1Q2MDZWNHQ5LzBkN29Wb3pqR3BCcWNKeGpPRW81MUtMV0thN0RvZlF4TVRHWWFtNTJ2VXAzdExaRi93QzVTcFRoazRacFQvSlBzVHFMdGpxSzdmSExLMmhXZFdOVDFqL2Y1Yld2V2pUaktwVWtvUWhHVTV5bG1VWXBZdHZzTE5abUlqTXVDYmF0bkpYMXhPNGVLcDhTaEIva29yUjJ2TzN6dm1PZTA1bDgvd0JScXpxM20zcDZOUGlReFFBQWpFSlc2ejgyWFZsNEV3dFhtR3YyUDB2by9jbVhScmNRMmxQUVZjczhxZ2h0TERpTHBmaVN3dnl5Q1ZRQUFBQUFBQUFBQXFKUzByS3QwQUNBQWdBQjJmY3doWFZqSGY4QS9iYzVPMVQ0Nm9QWHpaV1ZoelljbUJ0VE9IdWREdTdVYnY4QUg2UFhGM1k4anVvMDY3c1pidy93MU9NcnBMak9ndFhNcFpMZk56WWxMNXc0K3VpMDZVN2Y4L280cmlZdkVBSXhDVVlnUUJicnZ6WmRXWGdUQzlJL3FocTdDdG5lYmsxbDVoMmF1bG1PV3loYzV0SGVWdzU1MGZsVndubTd4aEhZK1d3czcvQ0tXVGpwL056OUJIRG4xTkxGdVY3eWo3SHpmWVpaOXY1UEtQc2ZOOWhrN2Z5ZVVmWStiN0RKMi9rOG8reDgzMkdUdC9KNVI5ajV2c01uYitUeWo3SHpmWVpPMzhubEgyUG0rd3lkdjVQS1BzZk45aGs3ZnllVWZZK2I3REoyL2s4byt4ODMyR1R0L0tyeWo3SHpmWVpUMi9saHNoZEFFQUFBRysybDdYM2YzQ3B5VDRQVHduY3lXYnpPU0NldVRXSFJpK1F0V015Nk9tME83ZkU4Unk3ckNDaWxHS1VZcEpSaWxna2xvU1J1K2dlZXBiYktVdGtKYkdMRE5UelZOZHdzWlNwZjQ0ZHFhSzd2SERuanFLenJkdjhBM0wwTlNDa25HU1VvdE5TaTFpcEo2VTBXZEhMZ3UzUFlCMkZ6S2tzZDRualV0cFBQalRiNGpldUx6ZTU4cGhhTVM4RHFkSHRYeDZlalE0bFdDQUdJU2pFQzNYNHN1ckx3Smhhbm1ocDdMUytnMGw2T3B3ejRhQ3JHVlFReTdmaXJ0S3p5NWRYekxwRE1BQUFBQUFBQUFBS2dKWVFnQUFBcW8wcFRsR25UaTV6bktNSVFqcGxKdkJKZG9URVRNNGgzamFqc0RHeHQ0MFZnNnN2UHVKcjg5VnJQaHpMUXVqbk42eGlIMEhUNk1hVk52cjZxdHQyemFzYmFwY1puVTRsQ0wvTldseGV4WjIrWk1XbkVKNmpWN1ZKdDl2MWNGcDNWU05SVjR6ZS9LYXFxbzg4dDl5c3JLZXQ0bUR3SXRNVzNldkw2QTJ1Ykx4dkxlbmRRd1dYSENwQmYwNnF6VGgyUEhwV0RPaUp6RDZIUjFJMUtSYUdGdDMydksvdHBVNHBjSXA0MUxhVHpmaUpjUnZWSlp2YytRaTBaaG4xT2ozYVk5ZlJ3V2NXbTR5VGpKTnFVWkxDVVdzelRYSXpCNFdGT0lFWWdRRXJkZCtiTHF5OENZV3A1b2FteTB2b05KZWhxY00rR2dxeGxVRU11MzRxN1NzOHVYVjh5NlF6QUFBQUFBQUFBQUNvQXdnQWdDTVFsMHJjcDJ0NC82bFdqbTg2RnBGKzZkWHhTL3U1alNsZlY2ZlFhSC9aUCtQNWROTlhxT0o3cFd6L0NycDBxYnh0N1p5cHd3MFRxNC9pVDk2d1hSanltTjV6THhPczF1NWZFY1IrN3lPSlJ5UGNibFd6KzhYRHM2andvM0xXUmpvaGNKWnY4bG02VkV2U2NUaDM5RHJiYmJKNG45M1lqWjY3a202eHRjM3FvdGthTWZ3cXJVYmhKWm9WdVNmUkxEMzlZeXZHUEY1WFhhR0o3a2V2TG5wbTRFWWdSaUJicjhXWFZsNEV3dFR6UTFWbHBmUWFTOURVNFo4TkJWaktvSVpkdnhWMmxaNWN1cjVsMGhtQUFBQUFBQUFBQUZRQmhDbkVKUmlCVlNjY3FPV25LR1VzdU1Ya3lsSEhPaytSNEJNWXo0dWtXKzZsU3B4alRwMkxoVGhHTUlRalhTVVlwWUpMemRScDNQaDZjZmlGWWpFVldkazkxT1ZTbFVwMExaMGFzNE9NS3pyWlc5dDVzcExCWjE5Qk4wWC9FTTFtSzF4TG5CbTgweENTTTJtcFJiakpOT01vdkNVV3M2YWZJd09sMjI2emhDS3Eyam5VVVlxcE9OWlJqT2VHZVNXVG1UZklhZHg2Y2ZpSGg0MVd0a3QwNmpjVXAyOWF3bEtsVWk0VFcvckhCOHE4M00xcEUzeWkzWFZ0RTFtdkxtcmYvQU05Sm04NUFBSlc2NzgyWFZsNEV3dFR6UTFkbHBmUWFTNzlUaG53MEZXTXFnaGwyL0ZYYVZubHk2dm1YU0dZQUFBQUFBQUFBQVZBVXRnUUJHSVNqRUNBQVNqRUNBSUNVWWdSaUFDVVlnUmlCYnJjV1hWbDRFd3ZUelExdGxwZlFhUzd0VGhudzBGV01xZ2hsMi9GWGFWbmx5NnZtWFNHWUFBQUFBQUFBQUFWQVV5V0RhZVpwdE5hbUVxY1FJQWdKUmlCR0lFQkppQkdJRUFSaUVveEFnQmlFcmRaK2JMcXk4Q1lXcDVvYTZ5MHZvTkpkMnB3ejRhQ3JHVlFReTdmaXJ0S3p5NWRYekxwRE1BQUFBQUFBQUFBS2dQYzdldG8xZUZhZDFaVTVWNkZXVXFrcVZOWlZXak9UeGtsSFRLTGVMV0dqUnlZdTlxZXowZXA2UzBXbTFJekV2R1BZbTU5V3VQZ1QraFhFdVB0WCttZnNqeVZjK3JYSHdKL1FZazdWL3BuN0k4bFhQcTF4OENmMEdKTzFmNloreDVLdWZWcmo0RS9vTVNudFg5cCt5UEpWejZ0Y2ZBbjlCaVR0WCttZnN0MTlqNjhJdWRTaFdwd1hHbk9sS0VJOG1kdFlJWWtuVHZIcExDMzJQcFI5NkdFYkxleHZzZlNqNzBNRzJmWkcreDlLUHZRd25iUHNqZlkrbEgzb0cyZlkzMlBwTDNqQnRuMlJ2c2ZTWHZHRTdaOWtPckgwbys5REJ0dDdNRzl2RTFrUWVPUEdrdEdHcEZxMWRPam96RTdyS0xMUytndExXL0RQaG9Lc1pWQkN1TldTeko1dWdZVm1sWm5NcDMrV3Z1UXhDTzFUMk4vbHI3a01RZHFuc2IvTFgzSVlnN1ZQWTMrV3Z1UXhCMnFleHY4QUxYM0lZZzdWUFkzK1d2dVF4QjJxZXh2OHRmY2hpRHRVOWpmNWErNURFSGFwN0cveTE5eUdJTzFUMk4vbHI3a01RZHF2c3EzNld2dVF4QjJxZXo2aE5udUFBQUFBQWVUM1ZZNDdGWGkvN2RQOVdCRXFhazRyTDVxNE05YUs1Y20rRGd6MW9aTjhIQm5yUXliNE9EUFdoazN3Y0dldERKdmc0TTlhR1RmQndaNjBNbStGY0tHSEtNb216S3RvNFprVmxuWm1KRU1raEFBQUFBQUFBQUFBQUFGUVMrcFRaN0FBQUFBQUhsdDA5ZjZYZDlTbityQWllR2V0NUpmT3VSekdiejhtUnpBeVpITURKa2N3TW1SekF5WkhNREprY3dNaXA4d01zaWxUdzZRcGFjcmhDb0FBQUFBQUFBQUFBQUFDb0pmVXBzOWdBQUFBQUR6TzZWL0xicnFVL3dCV0JGdUdXdjhBbHkrZmpKNVlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWQkw2bE5uc0FBQUFBQWVaM1N2NWJkZFNuK3JBaTNETFgvTGw4L0dUeXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFxQ1gxS2JQWUFBQUFBQTh6dWsvd0F0dXVwRDlTQkZ1R1d2K1hMNStNbmxnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCZTNtWG95OXdXeEw2aE5ucmdBQUFBQVl1eWRqQzRvMUxhcmp2ZFduT25QRFNsSllZcm5DTFZpMFlsOCtiWXRxMTNZemxDdFNsS21tOGk1cHhibzFJOGp4WEZmTTgvVHBNc1REeTc2VnFUNHRLUXpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUFNiVTlwbHpmMUlwMDZsRzF4VHJYRTR1RWNqbFZQSGpTZk5tWEx6ekVaYmFlamE4L0R1UGtHMC93Q0NuN2pURDBkc1AvL1pcIjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZWxzZSBpZiAod29yZEV4dGVuc2lvbnMuaW5kZXhPZihleHQpID49IDApIHtcclxuXHRcdFx0XHRcdHRoaXMuZmlsZS50aHVtYm5haWxCYXNlNjRJbWFnZSA9IFwiZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwvOWovNEFBUVNrWkpSZ0FCQVFBQUFRQUJBQUQvMndDRUFBa0dCeEVIQmhJUER4QVFFdzhSRlJNTkVCSVNFZzhURVJBUkZ4UVdJaFlTRlJVWUhpZ2dHaHN4SGhjVExUMGhKU2tyTWk0dUhTc3pPRE1zTnlndE5Tc0JDZ29LRFEwT0d4QVFHaTBsSHlZMk1pOHZMUzAxTFNzdExUQTFOeThyTFMwdExTMDNMUzB0TFMwck5pc3RMUzB0TFMwdExTMHJMUzB0TFMwdExTMHRMZi9BQUJFSUFOY0E2d01CRVFBQ0VRRURFUUgveEFBY0FBRUFBZ01CQVFFQUFBQUFBQUFBQUFBQUJRY0RCZ2dFQVFML3hBQkFFQUFDQVFJQ0JBa0hDd1VCQVFBQUFBQUFBUUlERVFRVEJRWVNJUWNVSWxGeWdaR1NzUlV4TTFOeG90RVdORFpCVkdGemxNSEMwaVF5WW9LaEkwUC94QUFhQVFFQUFnTUJBQUFBQUFBQUFBQUFBQUFBQXdZQ0JBVUIvOFFBTVJFQkFBRURBZ1FFQlFRQ0F3RUFBQUFBQUFFQ0F4RVNVUVFVTTNFRk1sS2hFeUZoa2ZBVkl6RkJKSUhSNGZIQi85b0FEQU1CQUFJUkF4RUFQd0M4UUFBQUFBQVZockhVdHAydjAvMFIyckVmdDB1SnhFL3UxSTdOUkxoRGt6VU1HVE5Rd1pNMURCa3pVTUdUTlF3Wk0xREJrelVNR1ROUXdaTTFEQmt6VU1HVE5Rd1pNMURCa3pVTUdUTlF3Wk0xREJrelVNR1ROUXdaTTFEQmt6VU1HVE5Rd1pNMURCa3pVTUdWd0hBV0VBQUFBQUNwTmFhbHRZc1IwLzBSM2VIajlxbHdPSm45MnBGWnBQaEJrelJneVpvd1pNMFlNbWFNR1ROR0RKbWpCa3pSZ3lab3daTTBZTW1hTUdUTkdESm1qQmt6Umd5Wm93Wk0wWU1tYU1HVE5HREptakJrelJneVpvd1pNMFlNbWFNR1Y0RmJXWUFBQUFBQ29OYXZwSGlPbitpTzl3M1NwVi9pdXRVaWlkQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDOUN0TE9BQUFBQUJVR3RYMGp4SFQvUkhlNGJwVXEveFhXcVJST2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmVoV2xuQUFBQUFBcURXcjZSNGpwL29qdmNOMHFWZjRyclZJb25RQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF1RDVSNEw3YmhQekZIK1JYL2dYZlRQMmxZZVlzK3FQdkI4bzhGOXR3bjVpai9JZkF1K21mdEp6Rm4xUjk0UGxIZ3Z0dUUvTVVmNUQ0RjMwejlwT1lzK3FQdkI4bzhGOXR3bjVpai9JZkF1K21mdEp6Rm4xUjk0UGxIZ3Z0dUUvTVVmNUQ0RjMwejlwT1lzK3FQdkI4bzhGOXR3bjVpai9BQ0h3THZwbjdTY3haOVVmZUZXNnk0NmxXMC9YbENyU2xGenVwUm5CcHF5M3BwbmE0ZW1ZdFV4TU9KeEZVVGRxbUpSbkdhZnJJZDZKTmhCazR6VDlaRHZSR0RKeG1uNnlIZWlNR1RqTlAxa085RVlNbkdhZnJJZDZJd1pPTTAvV1E3MFJneWNacCtzaDNvakJsOVdJaEoyVTROdmNsdFIzZ3l5QjZBQUFBQUFBQUFBQUFBQUFBTlZNMFFBQUFBQUFBQUFBQUFBQUIrWnljSU5wMmFUYWE4NmE4ekk3c3pGRlV4dEtTekVUY3BpZDRiUGc1T2VFZzN2YmpGdDg3c1kyNXpUQ1M1R0s1aUdVellBQUFBQUFBQUFBQUFBQUFHcW1hSUFBQUFBQUFBQUFBQUFBQS9GYjBNdlkvQWp2ZE9ydEtXeDFLZThOaHdWVCtqaDBZK0I1YjhrTXJ2bm51elpobGhnWmd3R1lNQm1EQVpnd0dZTUJtREFaZ3dHWU1CbURBWmd3R1lNQm1EQVpnd05iTTBZQUFBQUFBQUFBQUFBQUFCanIraGw3SDRFZDdwMWRwUzJPcFQzaE5ZUi8wc09qSHdGdnlSMlpYZlBQZG11Wm95NEM0QzRDNEM0QzRDNEM0QzRDNEM0QzRDNEVHZXNBQ1QwYnE5aTlLNGQxTVBRblVnbTRPVWRteWtrbTA5L00xMmtWZCszUk9LcHdtdDhQY3VSbW1Ndlg4ak5JL1k2dnVmRXc1cXo2a25KWC9TaHNYaHA0TEV5cFZZdUZTRDJaUmZuaStZbXBxaXFNeC9EWHJvcW9uVFYvTEVaTVg3b1VaWWl2R25CT1U1eVVJUlhubEtUc2t1dG84bVlpTXk5cHBtcWNRbS9rWnBIN0hWOXo0a0hOV2ZVMmVTditsNDlKNkJ4V2lhS25pS0U2Y0pQWWk1V3M1V2J0dWZNbVowWHJkYzRwbktPNXc5eTNHYW9ScEtoQUpYUjJyZU0wbmhzMmhoNmxTbTI0cVVkbXphOC9uWkRYZnQwVGlxZm1ubzRhN1hHcW1QazlQeU0wajlqcSs1OFRIbXJQcVo4bGY5S0RxUWRPbzR5Vm5GdUxYTTA5Nko0bk1aYTB4TVRpV0d2NkdYc2ZnWVh1blYybEpZNmxQZUUxaFBtc09qSHdGcnlSMmUzZlBQZGxNMkFBQUFBQUFBQUFBQUFBQUJDSHJBQXNyZ1kwanM0akVZVnYrNVJ4TUY5OFhzejhhZlljenhHajVSWC9BS2Rid3k1NXFQOEFhMURsT3NwWGhhd0hGZGFjMUxrMTZjS2wvcTI0OGxyc2pEdE8zd0ZlcTFqWncvRWFNWGRXN1N6ZGM5dHZCZm8vajJ0dE9UWEpvUmxpSHpYVzZQWHRTVDZqVDQ2dlRhbU4vazN2RDZOVjNPeThUaHU4MW5oSDBmNVExUXI3dVZTU3hNZnUyTjhuM052dE5uZzY5TjZQcjhtcnhsdlhabjZmTlE1MzFkQU9oZFR0SCtUTldNTlNhdEpVMU9hNXB6NVVsMnlaWGVJcjEzYXBXYmg2TkZxbWxsMW4wbDVJMWZyNGk5cFFwdlkvRWU2SHZPSjVabzEzSXBlM3E5RnVhbk9oWTFZZml2NkdYc2ZnUjN1blYybExZNmxQZUUxaFBtc09qSHdGcnlSMmUzZlBQZGxNMkFBQUFBQUFBQUFBQUFBQUJDSHJBQW5kUnRJK1ROYThQVWI1TXBxalBtMmFuSnUvdVRhZlVhL0ZVYTdVdzJlRHVhTDBUL3AwQ1Y5WTFmY01tQXp0RFVjUWx2bzFIQi9kQ290NzcwWWRwMFBEcThWelR1NTNpVkdiY1ZiS2lPdzRpMnVCclIrVm91dmlXdDlXYXBSNkZOZWRkYzMzVGtlSTE1cmluWjJ2RGFNVVRWdTMrcGlJMDYwSU44cWUxc3JuMlZkLzhPZkVUTVpkSE1mdy9WV21xMUp3a3J4a25HUzUwMXZRaWNmTjdNWmMyYVJ3ajBmcENyUWwvZFNuT2szejdNbXIvd0RDeTBWYXFZcTNWYTVSb3Jtblo2Tlg4QjVVMDVRb1d1cWxTRVpkQzk1KzZwR042dlJibXBuWW8xM0thWFJ4VzFtVjN3eWFSeWRGMGNNbnZxemRXWFFwcmNuL0FMU1Qvd0JUbytIVVpybXJaemZFcm1LSXAzVktkZHhXT3Y2R1hzZmdSM3VuVjJsTFk2bFBlRTFoUG1zT2pId0ZyeVIyZTNmUFBkbE0yQUFBQUFBQUFBQUFBQUFBQkNIckFBWHQ1dlA0QWljT2p0WDlJZVZkQ1VNUnV2VXB4bkszMVR0eWwyM0szZG8wVnpUc3RGcXZYUkZXN3phNVlEeWxxdmlhVnJ5ZE56Z3VlY09WRmRzVVpjUFhvdTB5eDRpalhhcXBjODMzRmlWbDBOcWZvL3lYcXpocUxWcEttcHpYTk9mS211MlRLN3hGZXU1VlVzM0QwYUxkTkxXTmROT2NSMTgwZEMrNm5lVlRmdXRYZXcyL1lrMzFtMXc5clZZcm44K1h6YTNFWHROK2lQejUvSllCejIrcEhoVndIRTliSlRTNU5lRUt5NXRwTFprdmRUNnp1Y0RYcXRZMmNMeENqVGR6dTlIQkZnT002elNyTmJxRk9VaythYytTdmRkUXg4UXJ4YjA3c3ZEYU0zSnEyWE1jVjIxRjhKdWt2S0d0dFJKM2hRVWNOSDJ4M3o2OXFVbDFIZDRLalRhajYvTndPUHVhcnVOdmsxVTIya3gxL1F5OWo4Q085MDZ1MHBiSFVwN3dtc0o4MWgwWStBdGVTT3oyNzU1N3NwbXdBQUFBQUFBQUFBQUFBQUFJUTlZQUFDNGVCN1NQR05BVk1PM3ZvVkcwdWFuVTNyM2xVT040aFJpNUZXN3VlSFhOVnJUczMxNzBhRG9PZjhQb1BhMTJXQnR5VmlYU2FmMTBZemJiN2liTEJONzlqNG4wOS84QTFYcWJQK1I4UDYrem9BcjZ3dWZ0ZXNmNVIxc3hNMDNhTThtUDNLbWxHNjY0dDlaWU9GbzAycVlWM2k3bXE5TTdMeDFmeC9sVFFsQ3Y5ZFNuQ2N2dW5ibEx0dWNPN1Jvcm1uWjNyVmV1aUt0Mmw4TXVBemRGME1RbHZwVkhTbDBhaXZkOWNGMm03NGRYaXVhZDJqNGxSbWlLdG1UZ2N3T1RvU3RYYTMxcW13bnp3cHgzZTlLWjU0alhtdUtkbnZodEdMYzFidDMwbGpJNlAwZlZyei90cFFsVmw3SXhidC93MGFLWnFxaW1QN2I5ZFVVMHpWUDlPYmE5YVdJcnlxVGQ1ems2a256eWs3dDlyWlpZaUlqRUt2VlZOVXpNdndlc1dPdjZHWHNmZ1IzdW5WMmxMWTZsUGVFMWhQbXNPakh3RnZ5UjJlM2ZQUGRsdVpzQzRDNEM0QzRDNEM0QzRDNEM0QzRDNEM0QzRFSWVzQUFCdW5CTnBEaW10R1UzeWNSQ1ZPMzFiY2VWRjlpbXVzMGVQbzFXczdPaDRkYzAzZE82NmppdTQwakRhR3R3clZhOXVTc1BIRXA4MDVmK2EvNUNvYjAzZjhXS2Zyai9BT3RLTFgrVk5YMC82YlZwckhMUm1pSzFkLzhBeXB6cUpjN1NkbDF1eHFXNk5kY1U3dHE1WG9wbXJaemMyNU83YmJlOXQrZHZuTEtxOHptY3JrNElkSWNaMWJsUmIzMEtra2wvaFBsSjk1MU93NHZpRkdMbXJkM1BEcTlWckd5ZDE1d1BsRFZQRTA3WGFwdXJIbjJxZHBKTHUyNnlEaHE5TjJtV3h4Tkd1MVZCcVBnK0k2cFlXRnJOMDFWZlB0Vk9VNzljaHhOV3E3VlA1c2NOVHB0VXg5RVB3czZSNG5xeGxKOHJFVGpUOCsvWWp5cFAyYm9yL1ltNENqVmR6c2c4UXVhYldOMUxIYmNFQXgxL1FTNkw4Q085MDZ1MHBiSFVwN3dsY0xMK2xoMFkrQjdiOGtkbnQzenozWk5zelJtMkEyd0cyQjkyd1BtMkEyd0cyQTJ3RzJCOTJ3UG0yQTJ3RzJCRkJpQUFQVG92R3ZSMmtxVmVONzBwd3EyWDE3TWsydXRYUmhjbzEwelR1a3RWNks0cTJkSjA2aXEwMUtMdkdTVWsrZFB6TXJVeGhhSDRqUWpIRXlxVzVjb3hwdC80eGNtbDJ6a2U1bkdIbUl6bHBmQzdwRGkycmNhS2ZLeEZTTVd2OEljcHZ0VlB0TjN3K2pOelZzMGZFSzlOckc2bWp0T0UzbmdoMGh4YldTVkZ2azRpbTBsejFJY3FQdTVob2VJVVp0eFZzNlBodHpGeWFkMXh6aXB3Y1h2VFRUWE9tY1oyeWxUVktrb3g4MFVvcjJKYmhNNUkrU25PRjNTWEd0WTQwRStUaDZhVFhOVXFXbEwzY3M3UGg5R0xlcmY4L3dDWEU4U3VadVJUczBZMzNPQU1kZjBFdWkvQWp2ZE9ydEtXeDFLZThKSEMvTm9kRmVCbGI4a2RpNzU1N3NwbXdBQUFBQUFBQUFBQUFBQUFJMDhZZ0FBQmVuQjlwbUdMMVNvYmRTQ25TVHc4azVSVDVEdEh6LzQ3QndlTHR6VGRuRWZ6ODFpNFM1RlZtbjdOaTQ3UzliVDc4ZmlhK21yWnM2bzNWQnd0YVVXTzFoalNoSlNoUXBwYm5kWms5OHQvc3krdzdIQVc5TnVabiszRjhSdWFya1V4L1RTRGVjNTdkQjQ5NkwweFJ4Q3Yvd0NWU0U1Vzg3aW55bDF4dXVzanUwYTZKcDNTMmE5RnlLblJLeDFKcjB0UHZ3K0pYZE5XeXphbzNmSjQrakNMYnEwN0pYZkxqNWwxalJWczgxUnU1MTB2am5wUFNsWEVTdmVyT1ZTeitwTjdvOVNzdW9zZHVqUlJGT3lzM3E5ZGMxYnZJWm93REhYOUJMb3Z3STczVHE3U2xzZFNudkNSd3Z6YUhSWGdaVy9KSFl1K2VlN0tac0FBQUFBQUFBQUFBQUFBQUNOUEdJQUFBZkxBTEF5K2dBQUh5d01sZ1pmUUFBREhYOUJMb3Z3STczVHE3U2xzZFNudkNSd3Z6YUhSWGdaVy9KSFl1K2VlN0tac0FBQUFBQUFBQUFBQUFBQUNOUEdJQUFBQUFBQUFBQUFBQUFCanIrZ2wwWDRFZDdwMWRwUzJPcFQzaEk0WDV0RG9yd01yZmtqc1hmUFBkbE0yQUFBQUFBQUFBQUFBQUFBQkduakVBQUFBQUFBQUFBQUFBQUF4MS9RUzZMOENPOTA2dTBwYkhVcDd3a2NMODJoMFY0R1Z2eVIyTHZubnV5bWJBQUFBQUFBQUFBQUFBQUFBYVMwRGlkR1l0MHF0S1Nta20xSGxxelc3Zkc2TlBuckcvdExiL1Q3KzN2RHk4UnErcm4zWmZBYzlZMzlwUDAvaU52ZURpTlgxYys3TDREbnJHL3RKK244UnQ3d2NScStybjNaZkFjOVkzOXBQMC9pTnZlRGlOWDFjKzdMNERuckcvdEorbjhSdDd3Y1JxK3JuM1pmQWM5WTM5cFAwL2lOdmVIanExbFJxT01ycVMzTmJNdHo3RE9PS3RUR1luMmxIUENYWW5FeDd3L0hHb2M3N3N2Z2U4emIvQUNKZWNyZDI5NE9OUTUzM1pmQWN6Yi9JazVXN3Q3d2NhaHp2dXkrQTVtMytSSnl0M2IzZzQxRG5mZGw4QnpOdjhpVGxidTN2QnhxSE8rN0w0RG1iZjVFbkszZHZlRGpVT2Q5Mlh3SE0yL3lKT1Z1N2U4SEdvYzc3c3ZnT1p0L2tTY3JkMjk0Zml0aVl5b3lTYnUwMHVUTG05aGhjdjBUUk1SdHRLUzF3MXltdW1aM2orNFNHSHEydzhlaXZBbnQrU096WHUrZWU3Sm1rakF6UUdhQXpRR2FBelFHYUF6UUdhQXpRR2FBelFHYUF6UU9sQ3JMV0FBQUFBQnovQUs5L1RERi9pZnRSWU9GNk5LdWNaMXFrRGMyR3NYQVhBWEFYQVhBWEFYQVhBWEFYQVhBWEFYQVhBWEFYQVhBWEFYQVhBWEFYQTZlS3V0Z0FBQUFBSFAydmYwd3hmNG43VVdEaGVqU3JuR2RhcEJHdzFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWRQRlhXd0FBQUFBRG43WHY2WVl2OFQ5cUxCd3ZScFZ6ak90VWdqWWF3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9uaXJyWUFBQUFBQno5cjM5TU1YK0orMUZnNFhvMHE1eG5XcVFSc05ZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhUeFYxc0FBQUFBQTUrMTcrbUdML0FCUDJvc0hDOUdsWE9NNjFTQ05ockFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNmVLdXRnQUFBQUFIUDJ2ZjB3eGY0bjdVV0RoZWpTcm5HZGFwQkd3MWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZi9aXCI7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGVsc2UgaWYgKHBkZkV4dGVuc2lvbnMuaW5kZXhPZihleHQpID49IDApIHtcclxuXHRcdFx0XHRcdHRoaXMuZmlsZS50aHVtYm5haWxCYXNlNjRJbWFnZSA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFNb0FBQUQ1Q0FNQUFBQlJWVnFaQUFBQXcxQk1WRVgxOWZYL0lSYi8vLzhzTEN6L0FBRDErdnI1c0s3L0hBLzdsWlAvVWszNHZyejAvLy81cWFmNysvc2tKQ1QxK1BnYkd4dHJhMnVscGFXZG5aMWtaR1JYVjFlWGw1Y1NFaElBQUFEL0dBbk16TXkrdnI0Z0lDRDhjR3o0eWNqMThQRC9LUi85VjFJTURBei9NaW4zMjlyNXVMYjdscFAzejg3MjV1WC90clQ5WjJQN2pvdjZvWi8rU1VOOGZId1hGeGYrUVRyOGVuZjdoWUwzMXRYK05pNkxpNHV3c0xEWTJOam01dVpNVEV6OVhsbjliR2oyNE4vOGYzczlQVDMvcjZ4MmRuWWZINm43QUFBTmIwbEVRVlI0bk8yZGFWdmlQaGZHUTAyc0VySHFPRXFSVFhaWkZCQlJRWjMvOS85VVQvYW1VQlNrYVp2bjRyN214VWlCNXNmSlNVNjJVK0NzcS9VdzdZL3J1ZVRWUEswTUhsb1JKZHBLWVBXRjdnUVMrVzRLSkxtYzY5T2JWL0p4b0R3MElVd0ZRaGY1SllmN29sVHJNQjFyck1xRjhHd3ZsR1ZHUUpqZ2JGZW5DVkJhZnZwVlM1Y0xPNzlFeVdmSkpGencvbGNvRDJHVHNKWWtCWVYvVGpncjdJNlMxMGxJQzlJZkRNOFMxL0JrTWdyandPWU9MQnlscFpGQS82U0ZNVXBGNUw3ZGs1d0c0Ky9Bd2xGY043RElHVUllU0U4ZXd1MTY4TXY2OWRwT0tFdjFVZGdIS0VVT0xvUUdnV0cyWjZFbzFZQmtpTlBtWU1MUHJxOVljbHV5VUpTbS9BbmdjVFpJaUdGcU03Z3JDMEZwdzR6WmhNb0RHb3ZmMnhKbDVrby95UTRKWlJudnlBS2NyakpLMnFVUFMyZHg0Ullzd1BrVUh5Q3RjTnFsRDJ0WEZ1Q0l0N3R1eGtnSWl6ZmFoUVhJamg1Mk1vZXl3dkx4RTRxTUkyRXJ6VDUrZ3p4MHVqMExHTWozWnFuNUNoUmkrWDR3QnZxOFcvV1gyVVFCNkg1YkZqRGl2UW84eVo2cmNHM05BdW9aYllvRG9ZWEc4dndOaWdxL01vc0NjTUNTKzRiRkJoU0EreHBMMTJxVTdWanNRQUY0cWJGVXJVWUJ1UElqaXkwb1c3Qllnd0x3UkdPSm11dTNCK1ZIRm90UUFQNzhsc1VtbERCTDIyb1VnS2NheTRQVktOK3lXSVlDOEVCaitXYzF5amNzMXFFQWZLS3huRm1OQW5CSFl4bGFqUUx3TUpMRlJwUU5MRmFpaEZrNlZxTUFmTFp1RjB0UndpeHRxMUVBUHRaWVdzWlI2SW92K1JmL0YxTnBMRzdkTkFxdUxpR0UvVFkyTXh1TjFYSmREazdOb3FBS3BKTzRQbXcrbXpHTXp2SmhFb1VPeHZsZUR4ZFdEYkdvT3VZdkRLS2dLaUZaOWtDVkxsMlpXdkVJWW43aStjWlE4TUtIZmVJbENOMzdPYmRwYUowQWorV2E4S2ZCQ2thTVVxTzI4RDZndWJiZVU3dHpvREVVcnd0aGhac0NONG03akUyWlJVN0R3SllwRk5TR3NNMi9FbGQ4MnNTWThSYnZXYUk4R0VNWlF1bnJhR3F3aGdFc1VRWW1VZVIvNlJBV2ZwcENPWlVya01aUVRpQVU3c0ZRL0h0RHpvS0VzN2luU2FEUUNtYXNPVVppMnNJZEdVUHBLQlErQnc4TlZURFVNWTVDZkVXMFdmaWUxbVpvYUljRE9qRmV3WTRoN1BIL1lyWjF6bUtVUElUUG9qRm05N0lYaGZiMmVmYVZMSEF4NkN2bVVYb1FEdGxYSXJFZDIxUUxaaHdGZUJCT1VYQXZZMEZZQWlpNENYbXZpTm1HSUg5aE1VcGZkQ3lZalNpTUJTNEpvTkR1dnVjeHAySGZQN1FZcGMyYk1PSDFNdUtQWFVtNFBXbkM2QjR6RVNNWjI4K1lBQXJBdm4rS1ZSQnVxb2RNQnFVQ1lRM1FNYjdKdGpnUkZCcUZ0WkhIajJFWWE4QVNRU0hPNGkreGRCVmpzK3RKb0FBODlxR0grZUVGYzd1WUUwR2hRNVlxNzFWeTBOalczMFJRYUhNODVadkxmWFBuU1JKQm9lMXdmZWtiN2V1VFFrRm5NTWRuZGd4dStFOEdCZFRVaEs2NVhmSUpvZUNGTUVyRmVoUWtscVZNcnRrbWhTTE9rWm1hKzJiM1NLaUM4UTIxcnNtek1RbWhBR0dVaWZVb1NLeDZHaHQyc1pzazAwV09mT091a2xEZzhpRlhjVDV0cjJCcXVjRG82YjVrZ254ZXZkd1pIeGtiVWlLalNIR01IM1pIdmtISFQyUnN2eFJPajF2UTRGSHJKRkJxcWxQQkF3aU5IYnRNWWtwUGJHK2tXM1hRekZ3VlMyTE9XR1Frb09zcXRGbG1zNjRHbE1oU2tkYW5rSDdmSDVtcFl1WlI1TkVzMkdYR3dBc0lCMFpZektNSXAzZnJXUDF0Wm9PYmNSVGw5REloQWVsbFhMNnBLbVlaUjhGMTRmVEsyZkhVakx1WVJwRTl2VDcvUmVKa09JMmZ4VFNLbXAvUTNNT3JrU29XZis5aUdFVXMyZ1ZPejI5SzJtZllpajNVTTRzaXcvdVZTVWw4RE4wY2lObjFUVnRGanJsV2VuZ2FqTVVkNzV0RmtXUDY5ZFFkZENVczdQcWVweVZ0ODM1aE1iTW9LdnhhN3hQUldBU1dIazgzVjJ0MTg4ZkRZYWR6MGhtZXRiczloSGROR1djVVJiYkVZYWZuSWcyQ0Mxc1kxNTd6dytsaXRwN2k4SFJRM1MwQm5sRVV2cFV0YWlXQ21JS013OXo2YUZPdVJwNGxjdERid1o5TW9xZ04yV3g5V01QQXVKY2ZzS1FzTGp0M2tMdWZETTd5M1ZhTnFkZXFubFY0cGtZSU85dXptRVNSKzdHMTZYdGlqRnAxMktmbDk4blA3dWY4cytvSHdDd2xwSFIxNnYvWU8rYkpEZUZwRmxCazkwaWNuaFdTV0tPV240NEZCWVQzSjlVRmRHZlAwYjg3UW4zQnNxMWRES0tvMmE4WlpoeXQ0U2s5eEVJeHhwL0hMZEpFSWJ3a3ZqOUYwVGNVVTVwYkwvbVpyR0RTS0hsU2Y2cURPczFZVFkzUnFkYXdiSnZva1daWTcwWWVuRkp6VHFtanlJR0tPOEo1bW5xYllvdzZYV29NN1YyNERWMFhWbnBSTUNpWTNrZ1pKZWNLRk1GUmFkY2l1ajMwTWFQSHB5WWY2ekE0TW43YmZFTlRLRWlkSkhNcHgyY1ZiVGhMNkxIa3BSRDJ1NnR2a1BObmc1UlJnZ05MMzNId3R6NlBXWmM0UGdhNmFmRHFVUG9IR1VMeDFQRSt5dkZUL09HUm9CK3lsT1dUcW5JbC9CeHV5MytVRVJRUGQrOVZPYlk2bzRxOElldmZTU3MzemRjdzdUUGwwZUN0VDFZWVFHRWdJdDN0OW91UHlEdWJzY3o4cEVMTytwV0Z6Tkx2YnIwa0V6dUtEa0xhc0IxQ1c0UzduenhMTnVsR2ZRbVMyL3FBYTh3b0hFU2g3RGgzNTlHdWxBZkxQZzl1bXNQdDQveFlVUVFJSEV4L3ZRMkVCRGlnZTN3eVdTNzZrOEh4eHk2SHdXTkVrU0NUbm9vamYvbEZiRnlKOFk2cHgyTkQ4WEJyd1VHd1BBcG5kSlYrWFhHaG9GcEZnSGhxYnNMVVVidE5SWWdGQmRIZGtUNlBDajI1OTh2VWt0REdRc1NCZ3J0TkFySm9zYkJEVGEwbW5WVTBCaFRrVFVqa082N3krRW4yMGlaWDZEZVVZMjhVL0V3NzZEUFJiQWFqNElTclZ3d29KSDUxNGJJbVA0UEdxYlJlN05iN29YaG9TYndrcitxU3pIRm5jby9rSnUySDRnRVNacHdxazZqeGx0dE0zQ1o3b3RDazczQWFESmVRMml4bGN0L1hKdTJGZ2tiVTM5V2ZIcERyanZrVWpMSVhDcDdBMEdNMDhLa2NqS2VTUFh3UEZGUU5UK21xdlFZcFBaRmlEeFE4QzAyQ3lvU0RjSlJHN1FMN29IaFZxSTlWNWZ5STM0eDdqWEZiL1I0RkRhQjJBazJSMUUxc2xOaXVRTDlHSWE0UjlJTXliV0tLSlB0WTVWTlpCU0hwOGJQMFNQWkJvZWRwMlJZdm5CZlBySUwzYWZrSks5QWVqYkhyd2pZWmdlZEgvSUZWYmtyOWlTclBYdjFLRHJwanlLZUtYTmpzcHZ0Y2piMTZlMUxGeE5QWklLd2ZtOHI2dDYzMmk4RStLdUl4Z3BQdHBvYU5hczhnSDROdVBsL3Q0UTNMaVlscTcxR2s5N3NOS1FhVTFLbWlCSFJBeWFJT0tGblVBU1dMT3FCa1VRZVVMT3FBa2tVZFVMS29BMG9XZFVESm9nNG9XZFFCWlZVRjdWRlVCYUlOMTFZdnJYMDJlR2RhS0lXWGE2WEx4NXQ1Q1FSbEtjeERsMTRMSzhVc3pQOWVyK3RxZDVaNFVKekxpM09sY3ZtaTBiaDhkV1JSLzl4cWw1NGFGNDhsUi85czRTcTRydlQwa2g3SytWRlk1OFVYUjZKY2hDK1ZpMy9mdElJV3JsYXVzL2RrQ09Yb3FQSG9SS05Rem5sZ21HeWlsQnRVdDZKb2pYbEJRem0vSmJxUXhNVWJ4U0pSYm5VVkg5TkZLYi9VM29oS1YxOWx6dklXb0p6L2ZTMlY3dWFQNVNmQk1wZGxGU2p2NUxxbTE1M0xFQ3ZLQmYrcFNZUDc5enlvSlFMbGtyWEVUbUgreEMxVGZBdWhuUDlsMTVWMko0a1pSWldBbStWSlE3bVdyY0RiRjJNaFpWOUIrVVhwRTBBUmxhWlJLcXloZ0FJUVZheFVzQUVGdkRWb2FTK3VJbEJBb2NRdXlsZXlqbEpvS0dkWlF3RU9keVhoTFZsSGNiamZQMGFpRk81dW1jMUVZNTF4bEVMNUc2c0ltNUZHelFZVVVHUW9OOUVvempVM21nMG9oVmRXaFo3bUc2eHlVdzZjSmVNb3pnc3JhK04xQThxYzlmbTNyRG1PNkNJemhPSzhGbm5mUVlzZmhWTGlScnNMVUk3ZTk0dGE0a2I1dzRNVGNNVktTdjZPNk8wWnltc2phTUxXdzhuaWY3K3lTNXdvNTljM056Y3ZqMzhiSWpRdTgzS3ZvNERYb0FlTkNQTEx2d2lMWTBZNUlxUEVjdmxjQmZJbExjZ1BvN3hGV0NWYktDSEo0ZFZtcXp5RlVMVFJjS1pRenArTzVBZyswbGZXM2Y3ck1waWorSk0reXZrRjFkTnQ0L1o2cnByVUtKUzdKOVZXQjQzeFhqTkhNYU9jWDE0UnplOUtvUW1pS0JSdWlHSXQrQ05yWGVRZko2S0xpMEo1UEZmZFRrWlJicUpxUmxRTXh2M0prbkF5VUVTUXIvZVFkcU9JQ00yU29aZW1pQXJHbW1KWmVKdFJuRWRtbE5zN082WXBOSzJpT0hNZU5uL1pNWG1rSzR4U2NLNktlb1JtSXdxZG5YUWNjUGN1QmdDUGFsN01OcFNqcjhmSC95N2ZHMkthdGZ3ZXpHaFloOElpWHhsdFhyeHIxKzFEMGVOL2ZaaG9NVXE1OFhXbkZ6dHJLTmZGcDZlbllqVEtEYjNHZGRzb2ZyMlV3a0Y4NFlwZWI3eG5CS1ZRdXFPS25pbDV2Vk1xdlFKbmJXNklYeS85YnBDaUthNTErKy9tcjM1YUFkcG44a3ZUWVRkRkZuVkF5YUlPS0ZuVUFTV0xRcDMvUjVTNlFFazZnMVJjVXBsNjc0RkkzN2x0OHMzTVNXYUM5cGVnenhNditTbWtLNHBGZUNSc01RVlRZWitJOU9sV1NEMWVZQWlPMDB4WXRML0UwNmRwc2t1ZzhxZWJleWl0U2NsOFhqVC91eU96b2xwYXcyVHhadzV3SmhMcndVS3p5RXd5cEFVbUtMS3l1YTU5enVJRmp3ZitJQ2hPWFNhR052bmNVRE9TejN6SSthY09SZm1ueUk0dFkxSFZpN1JmRE1VUlNkVHBDMWF4WUptU091ZVBISTZTbDYva1lOc2lGcGtHaTViN1dhQTRpK0Mxenl3a05ObEdDQ3kxVWpzU1JiVUQ1TlY2ZnVjSDB5UXZEL0ZzN3JKTGRCU0swdzFZWERnN284bG1zaXpjRzlhREV0T0dPRUFKV2pFR0E4ZWZ3M1krbzJvUEowMyt5Qm10OWRKUW5LSEd3bWl5TEZjdksydzdZWlNRWFN5U0MvUE9LZ29KWVB5ZlA1azFRYi9scktNNHRWUGJET1BDdm5hUVQwTnhuQWRvRTR3TGMzbTk5Q0VVNnYyMlZEUHlxLzhMbDMwRnhYSGFDMGdmTDVSMlNiOFRlNGJUc3JwYThqVVUyZ0FNSzZPMGkvdWRUaWZEYmtTeC93ZEVWMlhmTDNNUGJ3QUFBQUJKUlU1RXJrSmdnZz09XCI7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5maWxlLnRodW1ibmFpbEJhc2U2NEltYWdlID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQURBQUFBQThDQVlBQUFBZ3dEbjhBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UTTRJRGM1TGpFMU9UZ3lOQ3dnTWpBeE5pOHdPUzh4TkMwd01Ub3dPVG93TVNBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGNnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pBME9FRkJNVVk0T0RVd1FURXhSVGRDUlRCRU9EQTFSVGt3UWtZd1JrRXpJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPakEwT0VGQk1VWTVPRFV3UVRFeFJUZENSVEJFT0RBMVJUa3dRa1l3UmtFeklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZNRFE0UVVFeFJqWTROVEJCTVRGRk4wSkZNRVE0TURWRk9UQkNSakJHUVRNaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk1EUTRRVUV4UmpjNE5UQkJNVEZGTjBKRk1FUTRNRFZGT1RCQ1JqQkdRVE1pTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0eVA1aWVBQUFGRDBsRVFWUjQydXhheVVzYlVSaC9pYVBHZlFzS2VyR3V1Q0FGTDU0S0lpcDZzVklFZTVNZVJKSHFYOU5lbENxMVNDdUZHb1BpVXBlRG9oNFV4WlBlM1NPNGErTFc5M3Y2aHNtUW1Ka2tzMGp6d1RDVE9HYSszN2Y4M3ZkOWJ5eFRVMU5WYTJ0clB4NGZINk9zVnV1TnhXSWg5TnBLbm9SZVB0cnBPWjRlZC9TYVNFWCtPVmk1djcrMzBWTjBSVVhGcCt6czdQN3I2MnNTRlJWRm9xT2pTVnhjSEx2R0lRZ0NnWDVTRWRiWDE0ZjI5dmJlSkNRa2VQMUJmcU12VVhLUEVzSHZ1TjF1c3JpNCtLMnFxaW91THkvdjY5WFZsYUwvRlM0dUx1eXBxYW1pTXJCcXVDeXJSS2pYMlJrR3ZMbTVJVXRMUzErb3BUMzUrZmw5U2tBSWNOUHQ3UzBEZ0I4N1B6OW4xdUEvckpYQVNIaEdjbkl5TytPenpXWWpDSitGaFlWZWZGZFVWTlFIWFY0RThCeno1T0hoZ1ZtZ3JxNk9GQlFVRU9vWlRRSEV4c1l5WTAxTVRMQm54Y1RFTUQzaTQrUEo1ZVVsbVp1YjY2WGZ1Y3ZLeWdiUHpzNzhBK0F4Q0FBMG1RaDFIY25OemRVbGZPRDUyZGxaOW14Y3c5cndDTUlKSUthbnA3OVRFSjZTa3BKZnA2ZW52a09ReHpzSGNYZDNwMXY4UTJrOEQ4clNjQ0hsNWVYazRPQ0E2Y0ZKWld4czdPZlcxdGFIakl3TW4yRnRKU1lRSkd0aVlpSnBhMnRqSUhaMmRsZzRKU1VsTWNNNkhJN2ZtNXViSDlQVDAxbW9nVkk1R0ZNQTRPUUI2ZXpzOUFJQllGQjRkSFIwaUZMK2Uxd2owZUU5MHdDUVMxZFhGNkZ4VDNaM2QwVVFZRXVuMC9sbmRYVzFFYmtLcnpFbTA1UHpsUXFzREJDRmhZVWlDT1FFd29sUzdKakw1YXBKUzB0N0FrQk1LckI0ZDNjM28zUmFLYkR2a0JPdy91VGs1Ti85L2YxM0xMSE5vQ3hmMUh5QjZPbnBJY1hGeGVUbzZFZ0VnZlZxWkdSa2h1YkpXOU40d0Y5ZEJSQWRIUjJNWnJHZ2dXSlIrbmc4SG9HeTAwL0JETXFucEtRdzFoa1lHR0FLU3ZNU0lZTjRoNGNBQm9KN3NPRFJGVHhiWEltTlNHWThFMlVFUW9MR05ObmUzaFpEU2VvUnprU29sYUE4a2h4bmxDT0MwV3lUazVQRGxFUGREMnZMZXcxZUhlTUFLSURGZlJ5Z29RQmcwZmIyZHZFenJPb1BBSm9aSFAzOS9XUmpZNE9GbGVFQXVCZDhYZnNUbEJKU29LWmRCL3dKaWo5cGZydzZBSEs2ZlhVQVRGbE8vOWNBQXJJUXVxWGw1V1ZHWlVwWUlweE5EbHBiMmhPSEJnRDF4L0R3TUFPQWxVOHZRZkdHQVVQSUFHQjF1OTNPQUlDRDlXUWJWSjZCV0NnZ0FDemJzSWJlSGpnOFBDUXZqVk1VQTBBbjFORFFvSGlsREpjZzk5Q1JoUXdBWld0emMzT0VSZzJsMFpXVkZVMUNpQSswMFBkcUJrQkxHa1d6M3RyYXFncUF2UEZTUktQby9yV2dVVlNXR09hcUxiK2xJQlRScU12bDBzUURvRXFFa2Fxa2ZSN0ZLd2FBZHEreHNWR1RITUE0RVJNNHRYMjBkREVMQ0FDcllWTlRVNFJHRGFOUnVIbG1aa1pzckxVVVRCd3dRcStwcVFrdmdQSHhjVjFxb1pPVEU3WkRGRllBc0hwbVpxWXUxU2dNQk1vT1ZLV3FwbEhRblY0ZThGVkNoMXlOMXRiVzZwSUQySGtKNUlHZ3F0R1dscFlJalJwR281Z2V6OC9QQjcwUzgrYThzckxTdUhYQTZYUUduY1JvUjZ1cnE4TUtRRlVwRVdwVDc2ODVEMFZVMCtqeDhYRkFBUElOQ2FrSGxMNDZvN1FhVlJWQ3NCNTZZbmtWS0ZkVU9zK1hqcjlSTHF1dE9GWG53RXZiU3lpbjYrdnJJelFhQWVBUFFMamVlelBjQTN5M1hNL3BXekRpdDZtSDhqaXc0WXo2UjhsY1VsZExVOTJ3RlF1OXBIVHVCUUFqRGpRdkRvZEQ4NWYrZ2wzQUFBSmJySnlxQmVtWUFtZHM1OE5OWnN3Tkh1WmVJVVFSM1dPYkgzei9Hc1RqOFlnclA2b0VvYlMwOURPTnEwR2J6WGFMVjQ5ZkNmbFkzRzUzWWxaVzFzSS9BUVlBL2FPeG1Qekk3dVVBQUFBQVNVVk9SSzVDWUlJPVwiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLmZpbGUgJiYgdGhpcy5maWxlLmZpbGVEYXRlKSB7XHJcblxyXG5cdFx0XHRjb25zdCBkYXRlRm9ybWF0ID0gJ01NTS4gRCwgWVlZWSc7XHJcblx0XHRcdGNvbnN0IHRpbWVGb3JtYXQgPSAnaDptbTpzcyBhJztcclxuXHJcblx0XHRcdHRoaXMuZmlsZURhdGVGb3JtYXR0ZWQgPSBtb21lbnQodGhpcy5maWxlLmZpbGVEYXRlKS5mb3JtYXQoZGF0ZUZvcm1hdCk7XHJcblx0XHRcdHRoaXMuZmlsZVRpbWVGb3JtYXR0ZWQgPSBtb21lbnQodGhpcy5maWxlLmZpbGVEYXRlKS5mb3JtYXQodGltZUZvcm1hdCk7XHJcblx0XHRcdFxyXG5cdFx0XHQvLyBjb25zdCBmaWxlRGF0ZUZvcm1hdCA9ICh0aGlzLmZpbGUuZmlsZURhdGVGb3JtYXQgPz8gJycpICE9PSAnJyA/IHRoaXMuZmlsZS5maWxlRGF0ZUZvcm1hdCA6ICdNTU0uIEQsIFlZWVkgaDptbTpzcyBhJztcclxuXHRcdFx0Ly8gdGhpcy5maWxlRGF0ZUZvcm1hdHRlZCA9IG1vbWVudCh0aGlzLmZpbGUuZmlsZURhdGUpLmZvcm1hdChmaWxlRGF0ZUZvcm1hdCk7XHJcblx0XHRcdC8vIHRoaXMuZmlsZVRpbWVGb3JtYXR0ZWQgPSBtb21lbnQodGhpcy5maWxlLmZpbGVEYXRlKS5mb3JtYXQoZmlsZURhdGVGb3JtYXQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25DbGljaygpIHtcclxuXHRcdGlmICh0aGlzLmZpbGVDbGlja2VkKVxyXG5cdFx0XHR0aGlzLmZpbGVDbGlja2VkLmVtaXQodGhpcy5maWxlKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGRlbGV0ZUZpbGUoZTogRXZlbnQpIHtcclxuXHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG5cdFx0aWYgKHRoaXMuY29uZmlybURlbGV0ZSA9PT0gZmFsc2UpIHtcclxuXHRcdFx0dGhpcy5maWxlRGVsZXRlRW1pdHRlci5lbWl0KHRoaXMuZmlsZSk7XHJcblx0XHR9XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0U3dhbC5maXJlKHtcclxuXHRcdFx0XHR0aXRsZTogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGU/JyxcclxuXHRcdFx0XHR0ZXh0OiBgJHt0aGlzLmZpbGUudGl0bGV9YCxcclxuXHRcdFx0XHRzaG93RGVueUJ1dHRvbjogZmFsc2UsXHJcblx0XHRcdFx0c2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZSxcclxuXHRcdFx0XHRjb25maXJtQnV0dG9uVGV4dDogJ0RlbGV0ZScsXHJcblx0XHRcdFx0Y3VzdG9tQ2xhc3M6IHtcclxuXHRcdFx0XHRcdGNvbmZpcm1CdXR0b246ICdidG4gYnRuLW91dGxpbmUtZGFuZ2VyJyxcclxuXHRcdFx0XHRcdGNhbmNlbEJ1dHRvbjonYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeScsXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRoZWlnaHRBdXRvOiBmYWxzZVxyXG5cdFx0XHQgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuXHRcdFx0XHRcdHRoaXMuZmlsZURlbGV0ZUVtaXR0ZXIuZW1pdCh0aGlzLmZpbGUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0ICB9KVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YXN5bmMgZWRpdFRpdGxlKCkge1xyXG5cdFx0dGhpcy5pc0VkaXRpbmcgPSB0cnVlO1xyXG5cdFx0dGhpcy50ZW1wVGl0bGUgPSB0aGlzLmZpbGUudGl0bGU7XHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0dGhpcy5lZGl0VGl0bGVJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKDAsIHRoaXMuZWRpdFRpdGxlSW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZS5sZW5ndGgpXHJcblx0XHR0aGlzLmVkaXRUaXRsZUlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuXHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLmZuRG9jdW1lbnRDbGljaywgdHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCkge1xyXG5cdFx0aWYgKGUud2hpY2ggPT09IDEzKSB7XHJcblx0XHRcdHRoaXMuZmlsZS50aXRsZSA9IHRoaXMudGVtcFRpdGxlO1xyXG5cdFx0XHR0aGlzLmZpbGVDaGFuZ2VFbWl0dGVyLmVtaXQodGhpcy5maWxlKTtcclxuXHRcdFx0dGhpcy5pc0VkaXRpbmcgPSBmYWxzZTtcclxuXHRcdFx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuZm5Eb2N1bWVudENsaWNrLCB0cnVlKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoZS53aGljaCA9PT0gMjcpIHtcclxuXHRcdFx0dGhpcy50ZW1wVGl0bGUgPSBudWxsO1xyXG5cdFx0XHR0aGlzLmlzRWRpdGluZyA9IGZhbHNlO1xyXG5cdFx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YXN5bmMgZG9jdW1lbnRDbGljayhlOiBNb3VzZUV2ZW50KSB7XHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0Y29uc3QgY2xpY2tlZEluc2lkZSA9IFNsaWNrVXRpbHNTZXJ2aWNlLmNoZWNrUGFyZW50Q2xhc3NFeGlzdHMoPEhUTUxFbGVtZW50PmUudGFyZ2V0LCAnc2xpY2stZmlsZS1saXN0LWl0ZW1fdGl0bGUnKVxyXG5cdFx0aWYgKGNsaWNrZWRJbnNpZGUpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRpZiAodGhpcy5pc0VkaXRpbmcgPT09IHRydWUpIHtcclxuXHRcdFx0dGhpcy5maWxlLnRpdGxlID0gdGhpcy50ZW1wVGl0bGU7XHJcblx0XHRcdHRoaXMuZmlsZUNoYW5nZUVtaXR0ZXIuZW1pdCh0aGlzLmZpbGUpO1xyXG5cdFx0XHR0aGlzLmlzRWRpdGluZyA9IGZhbHNlO1xyXG5cdFx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YXN5bmMgb25DaGVja2JveENsaWNrZWQoZTogTW91c2VFdmVudCkge1xyXG5cdFx0dGhpcy5maWxlLmlzQ2hlY2tlZCA9ICF0aGlzLmZpbGUuaXNDaGVja2VkO1xyXG5cdFx0aWYgKHRoaXMuY2hlY2tDaGFuZ2VkKVxyXG5cdFx0XHR0aGlzLmNoZWNrQ2hhbmdlZC5lbWl0KGUpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic2xpY2stZmlsZS1saXN0LWl0ZW1cIiBpZD1cInNsaWNrLWZpbGUtbGlzdC1pdGVtX3t7dXVpZH19XCI+XHJcblx0PGRpdiBjbGFzcz1cInNsaWNrLWZpbGUtbGlzdC1pdGVtX2ltZyBncmF5LWJsb2NrIGNhcmRcIiAoY2xpY2spPVwib25DbGljaygpXCIgW25nU3R5bGVdPVwieyAnY3Vyc29yJzogKHNob3dQaG90b0dhbGxlcnkgPT09IHRydWUpID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnIH1cIiBbc3R5bGUubWluSGVpZ2h0LnB4XT1cIml0ZW1TaXplICsgMlwiIFtzdHlsZS5taW5XaWR0aC5weF09XCJpdGVtU2l6ZVwiPlxyXG5cdFx0PGltZyAqbmdJZj1cImZpbGUudGh1bWJuYWlsQmFzZTY0SW1hZ2VcIiBbc3JjXT1cImZpbGUudGh1bWJuYWlsQmFzZTY0SW1hZ2VcIiBbc3R5bGUubWF4V2lkdGgucHhdPVwiaXRlbUltZ1NpemVcIiBbc3R5bGUubWF4SGVpZ2h0LnB4XT1cIml0ZW1JbWdTaXplXCIgLz5cclxuXHRcdDxpbWcgKm5nSWY9XCIhZmlsZS50aHVtYm5haWxCYXNlNjRJbWFnZSAmJiBmaWxlLmJhc2U2NEltYWdlXCIgW3NyY109XCJmaWxlLmJhc2U2NEltYWdlXCIgW3N0eWxlLm1heFdpZHRoLnB4XT1cIml0ZW1JbWdTaXplXCIgW3N0eWxlLm1heEhlaWdodC5weF09XCJpdGVtSW1nU2l6ZVwiIC8+XHJcblx0XHQ8aW1nICpuZ0lmPVwiIWZpbGUudGh1bWJuYWlsQmFzZTY0SW1hZ2UgJiYgIWZpbGUuYmFzZTY0SW1hZ2UgJiYgZmlsZS50aHVtYm5haWxVcmxcIiBbc3JjXT1cImZpbGUudGh1bWJuYWlsVXJsXCIgW3N0eWxlLm1heFdpZHRoLnB4XT1cIml0ZW1JbWdTaXplXCIgW3N0eWxlLm1heEhlaWdodC5weF09XCJpdGVtSW1nU2l6ZVwiIC8+XHJcblx0XHQ8aW1nICpuZ0lmPVwiIWZpbGUudGh1bWJuYWlsQmFzZTY0SW1hZ2UgJiYgIWZpbGUuYmFzZTY0SW1hZ2UgJiYgIWZpbGUudGh1bWJuYWlsVXJsICYmIGZpbGUudXJsXCIgW3NyY109XCJmaWxlLnVybFwiIFtzdHlsZS5tYXhXaWR0aC5weF09XCJpdGVtSW1nU2l6ZVwiIFtzdHlsZS5tYXhIZWlnaHQucHhdPVwiaXRlbUltZ1NpemVcIiAvPlxyXG5cdFx0PGkgKm5nSWY9XCJhbGxvd0RlbGV0ZVwiIGNsYXNzPVwiZmFzIGZhLWNpcmNsZS14IGJnLXdoaXRlIHRleHQtZGFuZ2VyXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoJGV2ZW50KVwiPjwvaT5cclxuXHRcdDxkaXYgY2xhc3M9XCJmaWxlLWluZm9cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cInNsaWNrLWZpbGUtbGlzdC1pdGVtX3RpdGxlXCIgW3N0eWxlLm1pbldpZHRoLnB4XT1cIml0ZW1TaXplXCIgW3N0eWxlLm1heFdpZHRoLnB4XT1cIml0ZW1TaXplXCI+XHJcblx0XHRcdCAgPGRpdiBjbGFzcz1cInNsaWNrLWZpbGUtbGlzdC1pdGVtX2Rpc3BsYXktdGl0bGVcIiAjdGl0bGVEaXZSZWYgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiAqbmdJZj1cIiFpc0VkaXRpbmdcIiAoY2xpY2spPVwiZWRpdFRpdGxlKClcIj5cclxuXHRcdFx0XHR7eyAoZmlsZS50aXRsZSA/PyAnJykubGVuZ3RoID4gMTggPyAoZmlsZS50aXRsZSA/PyAnJykuc2xpY2UoMCwgMTgpICsgJy4uLicgOiBmaWxlLnRpdGxlIH19XHJcblx0XHRcdCAgPC9kaXY+XHJcblx0XHRcdCAgPGRpdiAjZWRpdFRpdGxlRGl2UmVmIGNsYXNzPVwic2xpY2stZmlsZS1saXN0LWl0ZW1fZWRpdC10aXRsZVwiICpuZ0lmPVwiaXNFZGl0aW5nXCI+XHJcblx0XHRcdFx0PGlucHV0ICNlZGl0VGl0bGVJbnB1dFJlZiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJ0ZW1wVGl0bGVcIiAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiIFtzdHlsZS53aWR0aC5weF09XCJpdGVtU2l6ZVwiIC8+XHJcblx0XHRcdCAgPC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwic2xpY2stZmlsZS1saXN0LWl0ZW1fdGl0bGVcIiAqbmdJZj1cImZpbGVEYXRlRm9ybWF0dGVkXCIgW3N0eWxlLm1pbldpZHRoLnB4XT1cIml0ZW1TaXplXCIgW3N0eWxlLm1heFdpZHRoLnB4XT1cIml0ZW1TaXplXCI+XHJcblx0XHRcdCAgPGRpdiBjbGFzcz1cInNsaWNrLWZpbGUtbGlzdC1pdGVtX2RhdGVcIj5cclxuXHRcdFx0XHQ8ZGl2ICpuZ0lmPVwiZmlsZURhdGVGb3JtYXR0ZWRcIiBbc3R5bGUubWluV2lkdGgucHhdPVwiaXRlbVNpemVcIj57eyBmaWxlRGF0ZUZvcm1hdHRlZCB9fTwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgKm5nSWY9XCJmaWxlVGltZUZvcm1hdHRlZFwiIFtzdHlsZS5taW5XaWR0aC5weF09XCJpdGVtU2l6ZVwiPnt7IGZpbGVUaW1lRm9ybWF0dGVkIH19PC9kaXY+XHJcblx0XHRcdCAgPC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblxyXG5cdDwhLS0gV2Ugd2FudCB0aGUgdXNlciB0byBiZSBhYmxlIHRvIGNsaWNrIGp1c3QgYSBsaXR0bGUgb3V0c2lkZSBvZiB0aGUgY2hlY2tib3ggYW5kIHN0aWxsIGhhdmUgaXQgY2hlY2sgLS0+XHJcblx0PGRpdiAqbmdJZj1cInNob3dDaGVja2JveCA9PT0gdHJ1ZVwiIGNsYXNzPVwic2xpY2stZmlsZS1jaGVja2JveFwiIChjbGljayk9XCJvbkNoZWNrYm94Q2xpY2tlZCgkZXZlbnQpXCI+XHJcblx0XHQ8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW25nTW9kZWxdPVwiZmlsZS5pc0NoZWNrZWRcIiAvPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxzbGljay1jb25maXJtLWRpYWxvZyAjZGVsZXRlQ29uZmlybVJlZiBva0J1dHRvblRleHQ9J0RlbGV0ZSc+XHJcblx0PGg0IGNsYXNzPVwicC0wIG0tMFwiPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGU/PC9oND5cclxuXHQ8aDUgY2xhc3M9XCJwLTAgbS0wXCI+XCJ7e2ZpbGUudGl0bGV9fVwiPC9oNT5cclxuPC9zbGljay1jb25maXJtLWRpYWxvZz4iXX0=
@@ -0,0 +1,130 @@
1
+ import { Component, Input, Output, EventEmitter, ViewChild } from "@angular/core";
2
+ import { SlickUtilsService } from "../utils/slick-utils.service";
3
+ import { SlickSleepService } from "../utils/slick-sleep.service";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "../slick-photo-gallery/slick-photo-gallery.component";
7
+ import * as i3 from "./slick-file-list-item.component";
8
+ export class SlickFileListComponent {
9
+ constructor() {
10
+ this.allowDelete = true;
11
+ this.showPhotoGallery = false;
12
+ this.showCheckboxes = false;
13
+ this.thumbnailSize = 90;
14
+ this.confirmDelete = true;
15
+ this.filesEmitter = new EventEmitter();
16
+ this.onFileDeleteEmitter = new EventEmitter();
17
+ this.onFileCheckChanged = new EventEmitter();
18
+ this.onFileClicked = new EventEmitter();
19
+ this.photos = [];
20
+ this.lastCheckedIdx = null;
21
+ this.uuid = SlickUtilsService.newGuid();
22
+ }
23
+ ngOnChanges(changes) {
24
+ if (changes.thumbnailSize)
25
+ this.thumbnailSize = parseInt(this.thumbnailSize.toString());
26
+ if (changes.allowDelete && changes.allowDelete.currentValue)
27
+ this.allowDelete = (changes.allowDelete.currentValue.toString().toLowerCase() !== 'false');
28
+ if (changes.showPhotoGallery && changes.showPhotoGallery.currentValue)
29
+ this.showPhotoGallery = (changes.showPhotoGallery.currentValue.toString().toLowerCase() !== 'false');
30
+ if (changes.showCheckboxes && changes.showCheckboxes.currentValue)
31
+ this.showCheckboxes = (changes.showCheckboxes.currentValue.toString().toLowerCase() !== 'false');
32
+ if (changes.deleteConfirmation && changes.deleteConfirmation.currentValue)
33
+ this.confirmDelete = (this.confirmDelete.toString() === 'true') ? true : false;
34
+ }
35
+ fileClicked(file, idx) {
36
+ if (this.showPhotoGallery === true) {
37
+ this.photoGalleryRef.showPhotoGallery(idx);
38
+ }
39
+ if (this.onFileClicked)
40
+ this.onFileClicked.emit(file);
41
+ }
42
+ onFileChange(file, idx) {
43
+ this.files[idx] = file;
44
+ this.filesEmitter.emit(this.files);
45
+ }
46
+ async onFileDelete(file, idx) {
47
+ this.files.splice(idx, 1);
48
+ this.filesEmitter.emit(this.files);
49
+ if (this.onFileDeleteEmitter)
50
+ this.onFileDeleteEmitter.emit(file);
51
+ }
52
+ async onCheckChanged(e, fileIdx) {
53
+ await SlickSleepService.sleep();
54
+ if (e.shiftKey === true && this.lastCheckedIdx !== null) {
55
+ let startIdx = (this.lastCheckedIdx < fileIdx) ? this.lastCheckedIdx : fileIdx;
56
+ let endIdx = (this.lastCheckedIdx < fileIdx) ? fileIdx : this.lastCheckedIdx;
57
+ for (let i = startIdx; i <= endIdx; i++) {
58
+ this.files[i].isChecked = true;
59
+ if (this.onFileCheckChanged)
60
+ this.onFileCheckChanged.emit(this.files[i]);
61
+ }
62
+ }
63
+ else {
64
+ this.lastCheckedIdx = fileIdx;
65
+ if (this.onFileCheckChanged)
66
+ this.onFileCheckChanged.emit(this.files[fileIdx]);
67
+ }
68
+ }
69
+ checkAllFiles() {
70
+ this.files.forEach(x => {
71
+ if (x.isChecked === false && this.onFileCheckChanged) {
72
+ x.isChecked = true;
73
+ this.onFileCheckChanged.emit(x);
74
+ }
75
+ x.isChecked = true;
76
+ });
77
+ }
78
+ uncheckAllFiles() {
79
+ this.files.forEach(x => {
80
+ if (x.isChecked === true && this.onFileCheckChanged) {
81
+ x.isChecked = false;
82
+ this.onFileCheckChanged.emit(x);
83
+ }
84
+ x.isChecked = false;
85
+ });
86
+ }
87
+ getCheckedFiles() {
88
+ return this.files.filter(x => x.isChecked === true);
89
+ }
90
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
91
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: SlickFileListComponent, selector: "slick-file-list", inputs: { files: "files", allowDelete: "allowDelete", showPhotoGallery: "showPhotoGallery", showCheckboxes: "showCheckboxes", thumbnailSize: "thumbnailSize", confirmDelete: "confirmDelete" }, outputs: { filesEmitter: "filesEmitter", onFileDeleteEmitter: "onFileDelete", onFileCheckChanged: "onFileCheckChanged", onFileClicked: "onFileClicked" }, viewQueries: [{ propertyName: "photoGalleryRef", first: true, predicate: ["photoGalleryRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #containerRef id=\"slick-file-list_{{uuid}}\" class=\"slick-file-list\">\r\n\t<slick-file-list-item *ngFor=\"let file of files; let idx = index\" \r\n\t\t\t\t\t\t [file]=\"file\" \r\n\t\t\t\t\t\t [allowDelete]=\"allowDelete\" \r\n\t\t\t\t\t\t [showPhotoGallery]=\"showPhotoGallery\" \r\n\t\t\t\t\t\t [showCheckbox]=\"showCheckboxes\" \r\n\t\t\t\t\t\t [thumbnailSize]=\"thumbnailSize\" \r\n\t\t\t\t\t\t [confirmDelete]=\"confirmDelete\"\r\n\t\t\t\t\t\t (checkChanged)=\"onCheckChanged($event, idx)\" \r\n\t\t\t\t\t\t (fileClicked)=\"fileClicked($event, idx)\" \r\n\t\t\t\t\t\t (fileChanged)=\"onFileChange($event, idx)\" \r\n\t\t\t\t\t\t (fileDelete)=\"onFileDelete($event, idx)\"></slick-file-list-item>\r\n</div>\r\n\r\n<slick-photo-gallery #photoGalleryRef *ngIf=\"showPhotoGallery === true\" [files]=\"files\"></slick-photo-gallery>\r\n\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SlickPhotoGalleryComponent, selector: "slick-photo-gallery", inputs: ["photos", "files"] }, { kind: "component", type: i3.SlickFileListItemComponent, selector: "slick-file-list-item", inputs: ["file", "allowDelete", "showPhotoGallery", "showCheckbox", "thumbnailSize", "confirmDelete"], outputs: ["fileChange", "fileDelete", "fileClicked", "checkChanged"] }] }); }
92
+ }
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickFileListComponent, decorators: [{
94
+ type: Component,
95
+ args: [{ selector: 'slick-file-list', template: "<div #containerRef id=\"slick-file-list_{{uuid}}\" class=\"slick-file-list\">\r\n\t<slick-file-list-item *ngFor=\"let file of files; let idx = index\" \r\n\t\t\t\t\t\t [file]=\"file\" \r\n\t\t\t\t\t\t [allowDelete]=\"allowDelete\" \r\n\t\t\t\t\t\t [showPhotoGallery]=\"showPhotoGallery\" \r\n\t\t\t\t\t\t [showCheckbox]=\"showCheckboxes\" \r\n\t\t\t\t\t\t [thumbnailSize]=\"thumbnailSize\" \r\n\t\t\t\t\t\t [confirmDelete]=\"confirmDelete\"\r\n\t\t\t\t\t\t (checkChanged)=\"onCheckChanged($event, idx)\" \r\n\t\t\t\t\t\t (fileClicked)=\"fileClicked($event, idx)\" \r\n\t\t\t\t\t\t (fileChanged)=\"onFileChange($event, idx)\" \r\n\t\t\t\t\t\t (fileDelete)=\"onFileDelete($event, idx)\"></slick-file-list-item>\r\n</div>\r\n\r\n<slick-photo-gallery #photoGalleryRef *ngIf=\"showPhotoGallery === true\" [files]=\"files\"></slick-photo-gallery>\r\n\r\n" }]
96
+ }], ctorParameters: () => [], propDecorators: { files: [{
97
+ type: Input,
98
+ args: ["files"]
99
+ }], allowDelete: [{
100
+ type: Input,
101
+ args: ["allowDelete"]
102
+ }], showPhotoGallery: [{
103
+ type: Input,
104
+ args: ["showPhotoGallery"]
105
+ }], showCheckboxes: [{
106
+ type: Input,
107
+ args: ["showCheckboxes"]
108
+ }], thumbnailSize: [{
109
+ type: Input,
110
+ args: ["thumbnailSize"]
111
+ }], confirmDelete: [{
112
+ type: Input,
113
+ args: ["confirmDelete"]
114
+ }], filesEmitter: [{
115
+ type: Output,
116
+ args: ["filesEmitter"]
117
+ }], onFileDeleteEmitter: [{
118
+ type: Output,
119
+ args: ["onFileDelete"]
120
+ }], onFileCheckChanged: [{
121
+ type: Output,
122
+ args: ["onFileCheckChanged"]
123
+ }], onFileClicked: [{
124
+ type: Output,
125
+ args: ["onFileClicked"]
126
+ }], photoGalleryRef: [{
127
+ type: ViewChild,
128
+ args: ["photoGalleryRef"]
129
+ }] } });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZmlsZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLWZpbGUtbGlzdC9zbGljay1maWxlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZmlsZS1saXN0L3NsaWNrLWZpbGUtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBUWpFLE1BQU0sT0FBTyxzQkFBc0I7SUFtQmxDO1FBakJzQixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUN2QixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDakMsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0Isa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsaUJBQVksR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRSx3QkFBbUIsR0FBa0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRSx1QkFBa0IsR0FBa0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1RSxrQkFBYSxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSTNGLFdBQU0sR0FBNkIsRUFBRSxDQUFDO1FBRzlCLG1CQUFjLEdBQVcsSUFBSSxDQUFDO1FBR3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVcsQ0FBQyxP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QUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUVELENBQUMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO2lJQTNHVyxzQkFBc0I7cUhBQXRCLHNCQUFzQiwwaEJDVm5DLDQxQkFnQkE7OzJGRE5hLHNCQUFzQjtrQkFKbEMsU0FBUzsrQkFDQyxpQkFBaUI7d0RBSVgsS0FBSztzQkFBcEIsS0FBSzt1QkFBQyxPQUFPO2dCQUNRLFdBQVc7c0JBQWhDLEtBQUs7dUJBQUMsYUFBYTtnQkFDTyxnQkFBZ0I7c0JBQTFDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUNBLGNBQWM7c0JBQXRDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUNDLGFBQWE7c0JBQXBDLEtBQUs7dUJBQUMsZUFBZTtnQkFDRSxhQUFhO3NCQUFwQyxLQUFLO3VCQUFDLGVBQWU7Z0JBQ0UsWUFBWTtzQkFBbkMsTUFBTTt1QkFBQyxjQUFjO2dCQUNFLG1CQUFtQjtzQkFBMUMsTUFBTTt1QkFBQyxjQUFjO2dCQUNRLGtCQUFrQjtzQkFBL0MsTUFBTTt1QkFBQyxvQkFBb0I7Z0JBQ0gsYUFBYTtzQkFBckMsTUFBTTt1QkFBQyxlQUFlO2dCQUVPLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stdXRpbHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IElTbGlja0ZpbGVNb2RlbCB9IGZyb20gXCIuLi9zbGljay1maWxlLW1vZGVsL3NsaWNrLWZpbGUubW9kZWxcIjtcclxuaW1wb3J0IHsgU2xpY2tQaG90b0dhbGxlcnlDb21wb25lbnQsIFNsaWNrUGhvdG9HYWxsZXJ5TW9kZWwgfSBmcm9tIFwiLi4vc2xpY2stcGhvdG8tZ2FsbGVyeS9zbGljay1waG90by1nYWxsZXJ5Lm1vZHVsZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdzbGljay1maWxlLWxpc3QnLFxyXG5cdHRlbXBsYXRlVXJsOiAnc2xpY2stZmlsZS1saXN0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tGaWxlTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblx0QElucHV0KFwiZmlsZXNcIikgZmlsZXM6IElTbGlja0ZpbGVNb2RlbFtdO1xyXG5cdEBJbnB1dChcImFsbG93RGVsZXRlXCIpIGFsbG93RGVsZXRlOiBib29sZWFuID0gdHJ1ZTtcclxuXHRASW5wdXQoXCJzaG93UGhvdG9HYWxsZXJ5XCIpIHNob3dQaG90b0dhbGxlcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRASW5wdXQoXCJzaG93Q2hlY2tib3hlc1wiKSBzaG93Q2hlY2tib3hlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dChcInRodW1ibmFpbFNpemVcIikgdGh1bWJuYWlsU2l6ZTogbnVtYmVyID0gOTA7XHJcblx0QElucHV0KFwiY29uZmlybURlbGV0ZVwiKSBjb25maXJtRGVsZXRlOiBib29sZWFuID0gdHJ1ZTtcclxuXHRAT3V0cHV0KFwiZmlsZXNFbWl0dGVyXCIpIGZpbGVzRW1pdHRlcjogRXZlbnRFbWl0dGVyPElTbGlja0ZpbGVNb2RlbFtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KFwib25GaWxlRGVsZXRlXCIpIG9uRmlsZURlbGV0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxJU2xpY2tGaWxlTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoXCJvbkZpbGVDaGVja0NoYW5nZWRcIikgb25GaWxlQ2hlY2tDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SVNsaWNrRmlsZU1vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KFwib25GaWxlQ2xpY2tlZFwiKSBvbkZpbGVDbGlja2VkOiBFdmVudEVtaXR0ZXI8SVNsaWNrRmlsZU1vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0QFZpZXdDaGlsZChcInBob3RvR2FsbGVyeVJlZlwiKSBwaG90b0dhbGxlcnlSZWY6IFNsaWNrUGhvdG9HYWxsZXJ5Q29tcG9uZW50O1xyXG5cclxuXHRwaG90b3M6IFNsaWNrUGhvdG9HYWxsZXJ5TW9kZWxbXSA9IFtdO1xyXG5cdHV1aWQ6IHN0cmluZztcclxuXHJcblx0cHJpdmF0ZSBsYXN0Q2hlY2tlZElkeDogbnVtYmVyID0gbnVsbDtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHR0aGlzLnV1aWQgPSBTbGlja1V0aWxzU2VydmljZS5uZXdHdWlkKCk7XHJcblx0fVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRpZiAoY2hhbmdlcy50aHVtYm5haWxTaXplKVxyXG5cdFx0XHR0aGlzLnRodW1ibmFpbFNpemUgPSBwYXJzZUludCh0aGlzLnRodW1ibmFpbFNpemUudG9TdHJpbmcoKSk7XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMuYWxsb3dEZWxldGUgJiYgY2hhbmdlcy5hbGxvd0RlbGV0ZS5jdXJyZW50VmFsdWUpXHJcblx0XHRcdHRoaXMuYWxsb3dEZWxldGUgPSAoY2hhbmdlcy5hbGxvd0RlbGV0ZS5jdXJyZW50VmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpICE9PSAnZmFsc2UnKTtcclxuXHJcblx0XHRpZiAoY2hhbmdlcy5zaG93UGhvdG9HYWxsZXJ5ICYmIGNoYW5nZXMuc2hvd1Bob3RvR2FsbGVyeS5jdXJyZW50VmFsdWUpXHJcblx0XHRcdHRoaXMuc2hvd1Bob3RvR2FsbGVyeSA9IChjaGFuZ2VzLnNob3dQaG90b0dhbGxlcnkuY3VycmVudFZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSAhPT0gJ2ZhbHNlJyk7XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMuc2hvd0NoZWNrYm94ZXMgJiYgY2hhbmdlcy5zaG93Q2hlY2tib3hlcy5jdXJyZW50VmFsdWUpXHJcblx0XHRcdHRoaXMuc2hvd0NoZWNrYm94ZXMgPSAoY2hhbmdlcy5zaG93Q2hlY2tib3hlcy5jdXJyZW50VmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpICE9PSAnZmFsc2UnKTtcclxuXHJcblx0XHRpZiAoY2hhbmdlcy5kZWxldGVDb25maXJtYXRpb24gJiYgY2hhbmdlcy5kZWxldGVDb25maXJtYXRpb24uY3VycmVudFZhbHVlKVxyXG5cdFx0XHR0aGlzLmNvbmZpcm1EZWxldGUgPSAodGhpcy5jb25maXJtRGVsZXRlLnRvU3RyaW5nKCkgPT09ICd0cnVlJykgPyB0cnVlIDogZmFsc2U7XHJcblx0fVxyXG5cclxuXHRmaWxlQ2xpY2tlZChmaWxlOiBJU2xpY2tGaWxlTW9kZWwsIGlkeDogbnVtYmVyKSB7XHJcblx0XHRpZiAodGhpcy5zaG93UGhvdG9HYWxsZXJ5ID09PSB0cnVlKSB7XHJcblx0XHRcdHRoaXMucGhvdG9HYWxsZXJ5UmVmLnNob3dQaG90b0dhbGxlcnkoaWR4KTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5vbkZpbGVDbGlja2VkKVxyXG5cdFx0XHR0aGlzLm9uRmlsZUNsaWNrZWQuZW1pdChmaWxlKTtcclxuXHR9XHJcblxyXG5cdG9uRmlsZUNoYW5nZShmaWxlOiBJU2xpY2tGaWxlTW9kZWwsIGlkeDogbnVtYmVyKSB7XHJcblx0XHR0aGlzLmZpbGVzW2lkeF0gPSBmaWxlO1xyXG5cdFx0dGhpcy5maWxlc0VtaXR0ZXIuZW1pdCh0aGlzLmZpbGVzKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIG9uRmlsZURlbGV0ZShmaWxlOiBJU2xpY2tGaWxlTW9kZWwsIGlkeCkge1xyXG5cdFx0dGhpcy5maWxlcy5zcGxpY2UoaWR4LCAxKTtcclxuXHRcdHRoaXMuZmlsZXNFbWl0dGVyLmVtaXQodGhpcy5maWxlcyk7XHJcblx0XHRpZiAodGhpcy5vbkZpbGVEZWxldGVFbWl0dGVyKVxyXG5cdFx0XHR0aGlzLm9uRmlsZURlbGV0ZUVtaXR0ZXIuZW1pdChmaWxlKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIG9uQ2hlY2tDaGFuZ2VkKGU6IE1vdXNlRXZlbnQsIGZpbGVJZHg6IG51bWJlcikge1xyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHJcblx0XHRpZiAoZS5zaGlmdEtleSA9PT0gdHJ1ZSAmJiB0aGlzLmxhc3RDaGVja2VkSWR4ICE9PSBudWxsKSB7XHJcblx0XHRcdGxldCBzdGFydElkeCA9ICh0aGlzLmxhc3RDaGVja2VkSWR4IDwgZmlsZUlkeCkgPyB0aGlzLmxhc3RDaGVja2VkSWR4IDogZmlsZUlkeDtcclxuXHRcdFx0bGV0IGVuZElkeCA9ICh0aGlzLmxhc3RDaGVja2VkSWR4IDwgZmlsZUlkeCkgPyBmaWxlSWR4IDogdGhpcy5sYXN0Q2hlY2tlZElkeDtcclxuXHJcblx0XHRcdGZvciAobGV0IGkgPSBzdGFydElkeDsgaSA8PSBlbmRJZHg7IGkrKykge1xyXG5cdFx0XHRcdHRoaXMuZmlsZXNbaV0uaXNDaGVja2VkID0gdHJ1ZTtcclxuXHRcdFx0XHRpZiAodGhpcy5vbkZpbGVDaGVja0NoYW5nZWQpXHJcblx0XHRcdFx0XHR0aGlzLm9uRmlsZUNoZWNrQ2hhbmdlZC5lbWl0KHRoaXMuZmlsZXNbaV0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0dGhpcy5sYXN0Q2hlY2tlZElkeCA9IGZpbGVJZHg7XHJcblx0XHRcdGlmICh0aGlzLm9uRmlsZUNoZWNrQ2hhbmdlZClcclxuXHRcdFx0XHR0aGlzLm9uRmlsZUNoZWNrQ2hhbmdlZC5lbWl0KHRoaXMuZmlsZXNbZmlsZUlkeF0pO1xyXG5cdFx0fVxyXG5cclxuXHJcblx0fVxyXG5cclxuXHRjaGVja0FsbEZpbGVzKCkge1xyXG5cdFx0dGhpcy5maWxlcy5mb3JFYWNoKHggPT4ge1xyXG5cdFx0XHRpZiAoeC5pc0NoZWNrZWQgPT09IGZhbHNlICYmIHRoaXMub25GaWxlQ2hlY2tDaGFuZ2VkKSB7XHJcblx0XHRcdFx0eC5pc0NoZWNrZWQgPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMub25GaWxlQ2hlY2tDaGFuZ2VkLmVtaXQoeCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHguaXNDaGVja2VkID0gdHJ1ZTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0dW5jaGVja0FsbEZpbGVzKCkge1xyXG5cdFx0dGhpcy5maWxlcy5mb3JFYWNoKHggPT4ge1xyXG5cdFx0XHRpZiAoeC5pc0NoZWNrZWQgPT09IHRydWUgJiYgdGhpcy5vbkZpbGVDaGVja0NoYW5nZWQpIHtcclxuXHRcdFx0XHR4LmlzQ2hlY2tlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMub25GaWxlQ2hlY2tDaGFuZ2VkLmVtaXQoeCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHguaXNDaGVja2VkID0gZmFsc2U7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGdldENoZWNrZWRGaWxlcygpOiBJU2xpY2tGaWxlTW9kZWxbXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5maWxlcy5maWx0ZXIoeCA9PiB4LmlzQ2hlY2tlZCA9PT0gdHJ1ZSk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgI2NvbnRhaW5lclJlZiBpZD1cInNsaWNrLWZpbGUtbGlzdF97e3V1aWR9fVwiIGNsYXNzPVwic2xpY2stZmlsZS1saXN0XCI+XHJcblx0PHNsaWNrLWZpbGUtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBsZXQgaWR4ID0gaW5kZXhcIiBcclxuXHRcdFx0XHRcdFx0ICBbZmlsZV09XCJmaWxlXCIgXHJcblx0XHRcdFx0XHRcdCAgW2FsbG93RGVsZXRlXT1cImFsbG93RGVsZXRlXCIgXHJcblx0XHRcdFx0XHRcdCAgW3Nob3dQaG90b0dhbGxlcnldPVwic2hvd1Bob3RvR2FsbGVyeVwiIFxyXG5cdFx0XHRcdFx0XHQgIFtzaG93Q2hlY2tib3hdPVwic2hvd0NoZWNrYm94ZXNcIiBcclxuXHRcdFx0XHRcdFx0ICBbdGh1bWJuYWlsU2l6ZV09XCJ0aHVtYm5haWxTaXplXCIgXHJcblx0XHRcdFx0XHRcdCAgW2NvbmZpcm1EZWxldGVdPVwiY29uZmlybURlbGV0ZVwiXHJcblx0XHRcdFx0XHRcdCAgKGNoZWNrQ2hhbmdlZCk9XCJvbkNoZWNrQ2hhbmdlZCgkZXZlbnQsIGlkeClcIiBcclxuXHRcdFx0XHRcdFx0ICAoZmlsZUNsaWNrZWQpPVwiZmlsZUNsaWNrZWQoJGV2ZW50LCBpZHgpXCIgXHJcblx0XHRcdFx0XHRcdCAgKGZpbGVDaGFuZ2VkKT1cIm9uRmlsZUNoYW5nZSgkZXZlbnQsIGlkeClcIiBcclxuXHRcdFx0XHRcdFx0ICAoZmlsZURlbGV0ZSk9XCJvbkZpbGVEZWxldGUoJGV2ZW50LCBpZHgpXCI+PC9zbGljay1maWxlLWxpc3QtaXRlbT5cclxuPC9kaXY+XHJcblxyXG48c2xpY2stcGhvdG8tZ2FsbGVyeSAjcGhvdG9HYWxsZXJ5UmVmICpuZ0lmPVwic2hvd1Bob3RvR2FsbGVyeSA9PT0gdHJ1ZVwiIFtmaWxlc109XCJmaWxlc1wiPjwvc2xpY2stcGhvdG8tZ2FsbGVyeT5cclxuXHJcbiJdfQ==