cmat 0.0.14 → 0.0.16

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 (283) hide show
  1. package/README.md +2 -2
  2. package/components/cascade/cascade-list/cascade-list.component.d.ts +3 -3
  3. package/components/cascade/options.interface.d.ts +1 -1
  4. package/components/custom-formly/public-api.d.ts +1 -0
  5. package/components/custom-formly/types/button/button.component.d.ts +19 -3
  6. package/components/custom-formly/types/cascade/cascade.component.d.ts +3 -2
  7. package/components/custom-formly/types/checklist/checklist.component.d.ts +3 -2
  8. package/components/custom-formly/types/chips/chips.component.d.ts +3 -2
  9. package/components/custom-formly/types/date-range/date-range.component.d.ts +3 -2
  10. package/components/custom-formly/types/datepicker/datepicker.component.d.ts +3 -2
  11. package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +3 -3
  12. package/components/custom-formly/types/number/number.component.d.ts +3 -2
  13. package/components/custom-formly/types/quill/quill.component.d.ts +3 -2
  14. package/components/custom-formly/types/radio/radio.component.d.ts +3 -3
  15. package/components/custom-formly/types/rating/rating.component.d.ts +3 -2
  16. package/components/custom-formly/types/repeat/repeat.component.d.ts +3 -2
  17. package/components/custom-formly/types/select/select.component.d.ts +3 -2
  18. package/components/custom-formly/types/select-tree/select-tree.component.d.ts +2 -2
  19. package/components/custom-formly/types/stepper/stepper.type.d.ts +2 -2
  20. package/components/custom-formly/types/table/table.component.d.ts +13 -7
  21. package/components/custom-formly/types/tags/tags.component.d.ts +3 -2
  22. package/components/custom-formly/types/upload/upload.component.d.ts +3 -2
  23. package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +25 -0
  24. package/components/material-datetimepicker/clock.d.ts +2 -2
  25. package/components/material-datetimepicker/datetimepicker.d.ts +4 -3
  26. package/components/navigation/navigation.types.d.ts +1 -1
  27. package/components/password-strength/mat-password-strength-validator.d.ts +1 -1
  28. package/components/popover/popover.component.d.ts +1 -3
  29. package/components/timeline/timeline.component.d.ts +1 -1
  30. package/components/transfer-picker/filter/filter.component.d.ts +1 -1
  31. package/components/transfer-picker/interface.d.ts +4 -4
  32. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +2 -2
  33. package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +1 -1
  34. package/components/transfer-picker/transfer-picker.component.d.ts +5 -5
  35. package/components/transfer-picker/transfer-picker.service.d.ts +6 -6
  36. package/components/upload/upload-queue/upload-queue.component.d.ts +4 -3
  37. package/directives/digit-only/mask.directive.d.ts +2 -0
  38. package/directives/equal-validator/equal-validator.directive.d.ts +1 -3
  39. package/esm2022/animations/dropdown.mjs +1 -1
  40. package/esm2022/components/adapter/dayjs-date-adapter.mjs +5 -5
  41. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +3 -3
  42. package/esm2022/components/adapter/native-datetime-adapter.mjs +3 -3
  43. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
  44. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +6 -6
  45. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +10 -13
  46. package/esm2022/components/card/card.component.mjs +5 -5
  47. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -5
  48. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +13 -11
  49. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -5
  50. package/esm2022/components/cascade/options.interface.mjs +1 -1
  51. package/esm2022/components/chip-input/chip-input.component.mjs +10 -9
  52. package/esm2022/components/custom-formly/extension/addons.extension.mjs +3 -3
  53. package/esm2022/components/custom-formly/public-api.mjs +2 -1
  54. package/esm2022/components/custom-formly/types/button/button.component.mjs +57 -15
  55. package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +4 -4
  56. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +5 -5
  57. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +5 -5
  58. package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +3 -3
  59. package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +4 -4
  60. package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +5 -5
  61. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +4 -5
  62. package/esm2022/components/custom-formly/types/number/number.component.mjs +5 -5
  63. package/esm2022/components/custom-formly/types/quill/quill.component.mjs +7 -7
  64. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +5 -6
  65. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +4 -4
  66. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +5 -5
  67. package/esm2022/components/custom-formly/types/select/select.component.mjs +16 -15
  68. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +4 -4
  69. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +5 -5
  70. package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +1 -1
  71. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +5 -5
  72. package/esm2022/components/custom-formly/types/table/table.component.mjs +28 -14
  73. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +4 -4
  74. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +7 -7
  75. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +3 -3
  76. package/esm2022/components/custom-formly/types/upload/upload.component.mjs +4 -4
  77. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +3 -3
  78. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +3 -3
  79. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +5 -5
  80. package/esm2022/components/custom-formly/wrappers/form-field/form-field.component.mjs +47 -0
  81. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +3 -3
  82. package/esm2022/components/date-range/date-range.component.mjs +20 -15
  83. package/esm2022/components/drawer/drawer.component.mjs +3 -3
  84. package/esm2022/components/drawer/drawer.service.mjs +3 -3
  85. package/esm2022/components/fullscreen/fullscreen.component.mjs +5 -5
  86. package/esm2022/components/highlight/highlight.component.mjs +3 -3
  87. package/esm2022/components/highlight/highlight.service.mjs +3 -3
  88. package/esm2022/components/json-editor/json-editor.component.mjs +12 -12
  89. package/esm2022/components/masonry/masonry.component.mjs +3 -3
  90. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +7 -5
  91. package/esm2022/components/material-datetimepicker/calendar-body.mjs +6 -6
  92. package/esm2022/components/material-datetimepicker/calendar.mjs +6 -6
  93. package/esm2022/components/material-datetimepicker/clock.mjs +5 -5
  94. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +7 -5
  95. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
  96. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +9 -9
  97. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +18 -15
  98. package/esm2022/components/material-datetimepicker/month-view.mjs +5 -5
  99. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +5 -5
  100. package/esm2022/components/material-datetimepicker/time.mjs +10 -10
  101. package/esm2022/components/material-datetimepicker/year-view.mjs +5 -5
  102. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +5 -5
  103. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +5 -5
  104. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +3 -3
  105. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +3 -3
  106. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +4 -4
  107. package/esm2022/components/navigation/navigation.service.mjs +3 -3
  108. package/esm2022/components/navigation/navigation.types.mjs +1 -1
  109. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +5 -5
  110. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +5 -5
  111. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +5 -5
  112. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +3 -3
  113. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +5 -5
  114. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +5 -5
  115. package/esm2022/components/navigation/vertical/vertical.component.mjs +5 -5
  116. package/esm2022/components/pagination/pagination.component.mjs +5 -5
  117. package/esm2022/components/pagination/pagination.directive.mjs +3 -3
  118. package/esm2022/components/pagination/pagination.pipe.mjs +5 -5
  119. package/esm2022/components/pagination/pagination.service.mjs +4 -4
  120. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +5 -5
  121. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +6 -6
  122. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +5 -5
  123. package/esm2022/components/password-strength/mat-password-strength-validator.mjs +2 -2
  124. package/esm2022/components/popover/popover-trigger.mjs +3 -3
  125. package/esm2022/components/popover/popover.component.mjs +6 -6
  126. package/esm2022/components/popover/popover.target.mjs +3 -3
  127. package/esm2022/components/progress-bar/progress-bar.component.mjs +5 -5
  128. package/esm2022/components/rating/rating.component.mjs +11 -7
  129. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
  130. package/esm2022/components/select-search/select-search-clear.directive.mjs +4 -4
  131. package/esm2022/components/select-search/select-search.component.mjs +9 -9
  132. package/esm2022/components/select-tree/select-tree.component.mjs +11 -9
  133. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +11 -11
  134. package/esm2022/components/timeline/timeline.component.mjs +5 -8
  135. package/esm2022/components/toast/toast-modal.component.mjs +6 -6
  136. package/esm2022/components/toast/toast.component.mjs +5 -5
  137. package/esm2022/components/toast/toast.service.mjs +10 -10
  138. package/esm2022/components/transfer-picker/filter/filter.component.mjs +6 -6
  139. package/esm2022/components/transfer-picker/interface.mjs +1 -1
  140. package/esm2022/components/transfer-picker/search/search.component.mjs +5 -5
  141. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +5 -5
  142. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -5
  143. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +5 -5
  144. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +8 -8
  145. package/esm2022/components/upload/files.util.service.mjs +3 -3
  146. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +15 -14
  147. package/esm2022/components/upload/upload.component.mjs +5 -5
  148. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +3 -3
  149. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
  150. package/esm2022/directives/autofocus/autofocus.directive.mjs +3 -3
  151. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
  152. package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
  153. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +3 -3
  154. package/esm2022/directives/digit-only/digit-only.directive.mjs +12 -12
  155. package/esm2022/directives/digit-only/mask.directive.mjs +21 -6
  156. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +4 -4
  157. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +3 -3
  158. package/esm2022/lib/mock-api/mock-api.request-handler.mjs +1 -1
  159. package/esm2022/lib/mock-api/mock-api.service.mjs +4 -4
  160. package/esm2022/lib/mock-api/mock-api.types.mjs +1 -1
  161. package/esm2022/lib/mock-api/mock-api.utils.mjs +1 -2
  162. package/esm2022/pipes/bytes/bytes.pipe.mjs +3 -3
  163. package/esm2022/pipes/date-format/date-format.pipe.mjs +7 -5
  164. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +3 -3
  165. package/esm2022/pipes/group-by/group-by.pipe.mjs +4 -4
  166. package/esm2022/pipes/keys/keys.pipe.mjs +3 -3
  167. package/esm2022/pipes/secure/secure-pipe.mjs +3 -3
  168. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
  169. package/esm2022/public-api.mjs +1 -1
  170. package/esm2022/services/alert/alert.service.mjs +11 -10
  171. package/esm2022/services/config/config.service.mjs +3 -3
  172. package/esm2022/services/config/urlStateConfig.service.mjs +5 -5
  173. package/esm2022/services/confirmation/confirmation.service.mjs +3 -3
  174. package/esm2022/services/confirmation/dialog/dialog.component.mjs +5 -5
  175. package/esm2022/services/data/data.service.mjs +3 -3
  176. package/esm2022/services/loading/loading.interceptor.mjs +5 -5
  177. package/esm2022/services/loading/loading.service.mjs +3 -3
  178. package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
  179. package/esm2022/services/media-watcher/media-watcher.service.mjs +4 -4
  180. package/esm2022/services/platform/platform.service.mjs +3 -3
  181. package/esm2022/services/splash-screen/splash-screen.service.mjs +3 -3
  182. package/esm2022/services/title/title.service.mjs +4 -4
  183. package/esm2022/services/translation/translation.service.mjs +5 -5
  184. package/esm2022/services/utils/utils.service.mjs +13 -14
  185. package/fesm2022/cmat-animations.mjs.map +1 -1
  186. package/fesm2022/cmat-components-adapter.mjs +10 -10
  187. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  188. package/fesm2022/cmat-components-breadcrumb.mjs +17 -20
  189. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  190. package/fesm2022/cmat-components-card.mjs +4 -4
  191. package/fesm2022/cmat-components-card.mjs.map +1 -1
  192. package/fesm2022/cmat-components-cascade.mjs +20 -18
  193. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  194. package/fesm2022/cmat-components-chip-input.mjs +9 -8
  195. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  196. package/fesm2022/cmat-components-custom-formly.mjs +248 -157
  197. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  198. package/fesm2022/cmat-components-date-range.mjs +19 -14
  199. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  200. package/fesm2022/cmat-components-drawer.mjs +6 -6
  201. package/fesm2022/cmat-components-fullscreen.mjs +4 -4
  202. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  203. package/fesm2022/cmat-components-highlight.mjs +6 -6
  204. package/fesm2022/cmat-components-json-editor.mjs +11 -11
  205. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  206. package/fesm2022/cmat-components-masonry.mjs +3 -3
  207. package/fesm2022/cmat-components-material-color-picker.mjs +6 -4
  208. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  209. package/fesm2022/cmat-components-material-datetimepicker.mjs +69 -64
  210. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  211. package/fesm2022/cmat-components-navigation.mjs +47 -47
  212. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  213. package/fesm2022/cmat-components-pagination.mjs +14 -14
  214. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  215. package/fesm2022/cmat-components-password-strength.mjs +14 -14
  216. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  217. package/fesm2022/cmat-components-popover.mjs +11 -11
  218. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  219. package/fesm2022/cmat-components-progress-bar.mjs +4 -4
  220. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  221. package/fesm2022/cmat-components-rating.mjs +9 -5
  222. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  223. package/fesm2022/cmat-components-select-search.mjs +14 -14
  224. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  225. package/fesm2022/cmat-components-select-tree.mjs +10 -8
  226. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  227. package/fesm2022/cmat-components-timeline.mjs +14 -17
  228. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  229. package/fesm2022/cmat-components-toast.mjs +18 -18
  230. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  231. package/fesm2022/cmat-components-transfer-picker.mjs +28 -28
  232. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  233. package/fesm2022/cmat-components-upload.mjs +21 -20
  234. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  235. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  236. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  237. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  238. package/fesm2022/cmat-directives-digit-only.mjs +31 -16
  239. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  240. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  241. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  242. package/fesm2022/cmat-lib-mock-api.mjs +6 -7
  243. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  244. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  245. package/fesm2022/cmat-pipes-date-format.mjs +6 -4
  246. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  247. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  248. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  249. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  250. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  251. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  252. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  253. package/fesm2022/cmat-services-alert.mjs +10 -9
  254. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  255. package/fesm2022/cmat-services-config.mjs +7 -7
  256. package/fesm2022/cmat-services-config.mjs.map +1 -1
  257. package/fesm2022/cmat-services-confirmation.mjs +7 -7
  258. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  259. package/fesm2022/cmat-services-data.mjs +3 -3
  260. package/fesm2022/cmat-services-loading.mjs +7 -7
  261. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  262. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  263. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  264. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  265. package/fesm2022/cmat-services-platform.mjs +3 -3
  266. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  267. package/fesm2022/cmat-services-title.mjs +3 -3
  268. package/fesm2022/cmat-services-title.mjs.map +1 -1
  269. package/fesm2022/cmat-services-translation.mjs +4 -4
  270. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  271. package/fesm2022/cmat-services-utils.mjs +12 -13
  272. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  273. package/icons/material-icons/material-solid.svg +3585 -3585
  274. package/lib/mock-api/mock-api.request-handler.d.ts +1 -3
  275. package/lib/mock-api/mock-api.service.d.ts +1 -3
  276. package/lib/mock-api/mock-api.types.d.ts +2 -4
  277. package/package.json +95 -95
  278. package/pipes/date-format/date-format.pipe.d.ts +1 -1
  279. package/pipes/group-by/group-by.pipe.d.ts +1 -1
  280. package/services/config/urlStateConfig.service.d.ts +0 -1
  281. package/services/translation/translation.service.d.ts +2 -2
  282. package/services/utils/utils.service.d.ts +5 -7
  283. package/styles/overrides/angular-material.scss +6 -0
@@ -527,14 +527,14 @@ export class CmatVerticalNavigationComponent {
527
527
  // Execute the observable
528
528
  this.openedChanged.next(open);
529
529
  }
530
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatVerticalNavigationComponent, deps: [{ token: i1.AnimationBuilder }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.Router }, { token: i3.ScrollStrategyOptions }, { token: i4.CmatNavigationService }, { token: i5.CmatUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
531
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: CmatVerticalNavigationComponent, isStandalone: true, selector: "cmat-vertical-navigation", inputs: { appearance: "appearance", autoCollapse: "autoCollapse", editState: "editState", inner: "inner", mode: "mode", name: "name", navigation: "navigation", opened: "opened", position: "position", transparentOverlay: "transparentOverlay" }, outputs: { appearanceChanged: "appearanceChanged", modeChanged: "modeChanged", openedChanged: "openedChanged", positionChanged: "positionChanged", editSelectedItemChanged: "editSelectedItemChanged" }, host: { listeners: { "mouseenter": "onMouseenter()", "mouseleave": "onMouseleave()" }, properties: { "class": "this.classList", "style": "this.styleList" } }, viewQueries: [{ propertyName: "_navigationContentEl", first: true, predicate: ["navigationContent"], descendants: true }], exportAs: ["cmatVerticalNavigation"], usesOnChanges: true, ngImport: i0, template: "<div class=\"cmat-vertical-navigation-wrapper\">\r\n\r\n <!-- Header -->\r\n <div class=\"cmat-vertical-navigation-header\">\r\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Content -->\r\n <div class=\"cmat-vertical-navigation-content overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\" #navigationContent>\r\n\r\n <!-- Content header -->\r\n <div class=\"cmat-vertical-navigation-content-header\">\r\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside') {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId\"\r\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" (click)=\"toggleAside(item)\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n <!-- Basic -->\r\n @if (item.type === 'basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n <!-- Collapsable -->\r\n @if (item.type === 'collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n [autoCollapse]=\"autoCollapse\"></cmat-vertical-navigation-collapsable-item>\r\n }\r\n <!-- Divider -->\r\n @if (item.type === 'divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n <!-- Group -->\r\n @if (item.type === 'group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n }\r\n <!-- Spacer -->\r\n @if (item.type === 'spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n\r\n <!-- Content footer -->\r\n <div class=\"cmat-vertical-navigation-content-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n <!-- Footer -->\r\n <div class=\"cmat-vertical-navigation-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n\r\n<!-- Aside -->\r\n@if (activeAsideItemId) {\r\n <div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n [@fadeInLeft]=\"position === 'left'\" [@fadeInRight]=\"position === 'right'\" [@fadeOutLeft]=\"position === 'left'\"\r\n [@fadeOutRight]=\"position === 'right'\">\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside' && item.id === activeAsideItemId) {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n }\r\n }\r\n </div>\r\n}", styles: ["cmat-vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:280px;min-width:280px;max-width:280px;height:100%;z-index:200}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled .cmat-vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-mode-over{position:fixed;top:0;bottom:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left .cmat-vertical-navigation-wrapper{left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-wrapper{right:0}cmat-vertical-navigation.cmat-vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{overflow:visible!important}cmat-vertical-navigation .cmat-vertical-navigation-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:100%;height:100%;overflow:hidden;z-index:10;background:inherit;box-shadow:inset -1px 0 0 var(--cmat-border)}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-divider-item{margin:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item{margin-top:24px}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:280px;width:280px;height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item{padding:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item,cmat-vertical-navigation cmat-vertical-navigation-group-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled{cursor:default;opacity:.4}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:16px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{font-size:11px;line-height:1.5}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{margin-left:auto}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}cmat-vertical-navigation cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{margin:0 12px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item{margin-bottom:4px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item{cursor:pointer}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge+.cmat-vertical-navigation-item-arrow{margin-left:8px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{transform:rotate(90deg)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children{margin-top:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:0}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{overflow:hidden}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:56px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:72px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:88px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:104px}cmat-vertical-navigation cmat-vertical-navigation-divider-item{margin:12px 0}cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper{height:1px;box-shadow:0 1px}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{display:none!important}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}cmat-vertical-navigation cmat-vertical-navigation-spacer-item{margin:6px 0}.cmat-vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.cmat-vertical-navigation-overlay+.cmat-vertical-navigation-aside-overlay{background-color:transparent}.cmat-vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact{width:112px;min-width:112px;max-width:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{margin:4px 8px 0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{margin-top:8px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{position:absolute;top:12px;left:64px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-aside-wrapper{left:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over){width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{width:280px-24px;min-width:280px-24px;max-width:280px-24px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item:first-of-type{margin-top:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;opacity:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-aside-wrapper{left:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper{width:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:280px}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin{width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{display:flex;align-items:center;justify-content:center}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{justify-content:center;padding:12px;border-radius:4px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-aside-wrapper{left:80px}\n"], dependencies: [{ kind: "component", type: CmatVerticalNavigationAsideItemComponent, selector: "cmat-vertical-navigation-aside-item", inputs: ["activeItemId", "autoCollapse", "item", "name", "skipChildren", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationBasicItemComponent, selector: "cmat-vertical-navigation-basic-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationCollapsableItemComponent, selector: "cmat-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationDividerItemComponent, selector: "cmat-vertical-navigation-divider-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationGroupItemComponent, selector: "cmat-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationSpacerItemComponent, selector: "cmat-vertical-navigation-spacer-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }], animations: cmatAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
530
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatVerticalNavigationComponent, deps: [{ token: i1.AnimationBuilder }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.Router }, { token: i3.ScrollStrategyOptions }, { token: i4.CmatNavigationService }, { token: i5.CmatUtilsService }], target: i0.ɵɵFactoryTarget.Component }); }
531
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: CmatVerticalNavigationComponent, isStandalone: true, selector: "cmat-vertical-navigation", inputs: { appearance: "appearance", autoCollapse: "autoCollapse", editState: "editState", inner: "inner", mode: "mode", name: "name", navigation: "navigation", opened: "opened", position: "position", transparentOverlay: "transparentOverlay" }, outputs: { appearanceChanged: "appearanceChanged", modeChanged: "modeChanged", openedChanged: "openedChanged", positionChanged: "positionChanged", editSelectedItemChanged: "editSelectedItemChanged" }, host: { listeners: { "mouseenter": "onMouseenter()", "mouseleave": "onMouseleave()" }, properties: { "class": "this.classList", "style": "this.styleList" } }, viewQueries: [{ propertyName: "_navigationContentEl", first: true, predicate: ["navigationContent"], descendants: true }], exportAs: ["cmatVerticalNavigation"], usesOnChanges: true, ngImport: i0, template: "<div class=\"cmat-vertical-navigation-wrapper\">\r\n\r\n <!-- Header -->\r\n <div class=\"cmat-vertical-navigation-header\">\r\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Content -->\r\n <div #navigationContent class=\"cmat-vertical-navigation-content overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n\r\n <!-- Content header -->\r\n <div class=\"cmat-vertical-navigation-content-header\">\r\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside') {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId\"\r\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" [editState]=\"editState\" (click)=\"toggleAside(item)\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n <!-- Basic -->\r\n @if (item.type === 'basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n <!-- Collapsable -->\r\n @if (item.type === 'collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" [autoCollapse]=\"autoCollapse\"\r\n (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-collapsable-item>\r\n }\r\n <!-- Divider -->\r\n @if (item.type === 'divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n <!-- Group -->\r\n @if (item.type === 'group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n }\r\n <!-- Spacer -->\r\n @if (item.type === 'spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n\r\n <!-- Content footer -->\r\n <div class=\"cmat-vertical-navigation-content-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n <!-- Footer -->\r\n <div class=\"cmat-vertical-navigation-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n\r\n<!-- Aside -->\r\n@if (activeAsideItemId) {\r\n <div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n [@fadeInLeft]=\"position === 'left'\" [@fadeInRight]=\"position === 'right'\" [@fadeOutLeft]=\"position === 'left'\"\r\n [@fadeOutRight]=\"position === 'right'\">\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside' && item.id === activeAsideItemId) {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n }\r\n }\r\n </div>\r\n}", styles: ["cmat-vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:280px;min-width:280px;max-width:280px;height:100%;z-index:200}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled .cmat-vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-mode-over{position:fixed;top:0;bottom:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left .cmat-vertical-navigation-wrapper{left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-wrapper{right:0}cmat-vertical-navigation.cmat-vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{overflow:visible!important}cmat-vertical-navigation .cmat-vertical-navigation-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:100%;height:100%;overflow:hidden;z-index:10;background:inherit;box-shadow:inset -1px 0 0 var(--cmat-border)}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-divider-item{margin:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item{margin-top:24px}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:280px;width:280px;height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item{padding:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item,cmat-vertical-navigation cmat-vertical-navigation-group-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled{cursor:default;opacity:.4}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:16px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{font-size:11px;line-height:1.5}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{margin-left:auto}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}cmat-vertical-navigation cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{margin:0 12px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item{margin-bottom:4px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item{cursor:pointer}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge+.cmat-vertical-navigation-item-arrow{margin-left:8px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{transform:rotate(90deg)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children{margin-top:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:0}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{overflow:hidden}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:56px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:72px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:88px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:104px}cmat-vertical-navigation cmat-vertical-navigation-divider-item{margin:12px 0}cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper{height:1px;box-shadow:0 1px}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{display:none!important}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}cmat-vertical-navigation cmat-vertical-navigation-spacer-item{margin:6px 0}.cmat-vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.cmat-vertical-navigation-overlay+.cmat-vertical-navigation-aside-overlay{background-color:transparent}.cmat-vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact{width:112px;min-width:112px;max-width:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{margin:4px 8px 0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{margin-top:8px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{position:absolute;top:12px;left:64px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-aside-wrapper{left:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over){width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{width:280px-24px;min-width:280px-24px;max-width:280px-24px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item:first-of-type{margin-top:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;opacity:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-aside-wrapper{left:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper{width:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:280px}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin{width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{display:flex;align-items:center;justify-content:center}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{justify-content:center;padding:12px;border-radius:4px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-aside-wrapper{left:80px}\n"], dependencies: [{ kind: "component", type: CmatVerticalNavigationAsideItemComponent, selector: "cmat-vertical-navigation-aside-item", inputs: ["activeItemId", "autoCollapse", "item", "name", "skipChildren", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationBasicItemComponent, selector: "cmat-vertical-navigation-basic-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationCollapsableItemComponent, selector: "cmat-vertical-navigation-collapsable-item", inputs: ["autoCollapse", "item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationDividerItemComponent, selector: "cmat-vertical-navigation-divider-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationGroupItemComponent, selector: "cmat-vertical-navigation-group-item", inputs: ["autoCollapse", "item", "name", "editState"], outputs: ["editSelectedItemChanged"] }, { kind: "component", type: CmatVerticalNavigationSpacerItemComponent, selector: "cmat-vertical-navigation-spacer-item", inputs: ["item", "name", "editState"], outputs: ["editSelectedItemChanged"] }], animations: cmatAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
532
532
  }
533
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatVerticalNavigationComponent, decorators: [{
533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatVerticalNavigationComponent, decorators: [{
534
534
  type: Component,
535
535
  args: [{ selector: 'cmat-vertical-navigation', animations: cmatAnimations, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatVerticalNavigation', standalone: true, imports: [CmatVerticalNavigationAsideItemComponent, CmatVerticalNavigationBasicItemComponent,
536
536
  CmatVerticalNavigationCollapsableItemComponent, CmatVerticalNavigationDividerItemComponent,
537
- CmatVerticalNavigationGroupItemComponent, CmatVerticalNavigationSpacerItemComponent], template: "<div class=\"cmat-vertical-navigation-wrapper\">\r\n\r\n <!-- Header -->\r\n <div class=\"cmat-vertical-navigation-header\">\r\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Content -->\r\n <div class=\"cmat-vertical-navigation-content overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\" #navigationContent>\r\n\r\n <!-- Content header -->\r\n <div class=\"cmat-vertical-navigation-content-header\">\r\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside') {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId\"\r\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" (click)=\"toggleAside(item)\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n <!-- Basic -->\r\n @if (item.type === 'basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n <!-- Collapsable -->\r\n @if (item.type === 'collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\"\r\n [autoCollapse]=\"autoCollapse\"></cmat-vertical-navigation-collapsable-item>\r\n }\r\n <!-- Divider -->\r\n @if (item.type === 'divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n <!-- Group -->\r\n @if (item.type === 'group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n }\r\n <!-- Spacer -->\r\n @if (item.type === 'spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n\r\n <!-- Content footer -->\r\n <div class=\"cmat-vertical-navigation-content-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n <!-- Footer -->\r\n <div class=\"cmat-vertical-navigation-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n\r\n<!-- Aside -->\r\n@if (activeAsideItemId) {\r\n <div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n [@fadeInLeft]=\"position === 'left'\" [@fadeInRight]=\"position === 'right'\" [@fadeOutLeft]=\"position === 'left'\"\r\n [@fadeOutRight]=\"position === 'right'\">\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside' && item.id === activeAsideItemId) {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n }\r\n }\r\n </div>\r\n}", styles: ["cmat-vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:280px;min-width:280px;max-width:280px;height:100%;z-index:200}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled .cmat-vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-mode-over{position:fixed;top:0;bottom:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left .cmat-vertical-navigation-wrapper{left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-wrapper{right:0}cmat-vertical-navigation.cmat-vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{overflow:visible!important}cmat-vertical-navigation .cmat-vertical-navigation-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:100%;height:100%;overflow:hidden;z-index:10;background:inherit;box-shadow:inset -1px 0 0 var(--cmat-border)}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-divider-item{margin:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item{margin-top:24px}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:280px;width:280px;height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item{padding:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item,cmat-vertical-navigation cmat-vertical-navigation-group-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled{cursor:default;opacity:.4}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:16px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{font-size:11px;line-height:1.5}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{margin-left:auto}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}cmat-vertical-navigation cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{margin:0 12px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item{margin-bottom:4px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item{cursor:pointer}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge+.cmat-vertical-navigation-item-arrow{margin-left:8px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{transform:rotate(90deg)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children{margin-top:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:0}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{overflow:hidden}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:56px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:72px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:88px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:104px}cmat-vertical-navigation cmat-vertical-navigation-divider-item{margin:12px 0}cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper{height:1px;box-shadow:0 1px}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{display:none!important}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}cmat-vertical-navigation cmat-vertical-navigation-spacer-item{margin:6px 0}.cmat-vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.cmat-vertical-navigation-overlay+.cmat-vertical-navigation-aside-overlay{background-color:transparent}.cmat-vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact{width:112px;min-width:112px;max-width:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{margin:4px 8px 0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{margin-top:8px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{position:absolute;top:12px;left:64px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-aside-wrapper{left:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over){width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{width:280px-24px;min-width:280px-24px;max-width:280px-24px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item:first-of-type{margin-top:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;opacity:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-aside-wrapper{left:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper{width:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:280px}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin{width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{display:flex;align-items:center;justify-content:center}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{justify-content:center;padding:12px;border-radius:4px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-aside-wrapper{left:80px}\n"] }]
537
+ CmatVerticalNavigationGroupItemComponent, CmatVerticalNavigationSpacerItemComponent], template: "<div class=\"cmat-vertical-navigation-wrapper\">\r\n\r\n <!-- Header -->\r\n <div class=\"cmat-vertical-navigation-header\">\r\n <ng-content select=\"[cmatVerticalNavigationHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Content -->\r\n <div #navigationContent class=\"cmat-vertical-navigation-content overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n\r\n <!-- Content header -->\r\n <div class=\"cmat-vertical-navigation-content-header\">\r\n <ng-content select=\"[cmatVerticalNavigationContentHeader]\"></ng-content>\r\n </div>\r\n\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside') {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [activeItemId]=\"activeAsideItemId\"\r\n [autoCollapse]=\"autoCollapse\" [skipChildren]=\"true\" [editState]=\"editState\" (click)=\"toggleAside(item)\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n <!-- Basic -->\r\n @if (item.type === 'basic') {\r\n <cmat-vertical-navigation-basic-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-basic-item>\r\n }\r\n <!-- Collapsable -->\r\n @if (item.type === 'collapsable') {\r\n <cmat-vertical-navigation-collapsable-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" [autoCollapse]=\"autoCollapse\"\r\n (editSelectedItemChanged)=\"selectItem($event)\"></cmat-vertical-navigation-collapsable-item>\r\n }\r\n <!-- Divider -->\r\n @if (item.type === 'divider') {\r\n <cmat-vertical-navigation-divider-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-divider-item>\r\n }\r\n <!-- Group -->\r\n @if (item.type === 'group') {\r\n <cmat-vertical-navigation-group-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-group-item>\r\n }\r\n <!-- Spacer -->\r\n @if (item.type === 'spacer') {\r\n <cmat-vertical-navigation-spacer-item [item]=\"item\" [name]=\"name\" [editState]=\"editState\" (editSelectedItemChanged)=\"selectItem($event)\">\r\n </cmat-vertical-navigation-spacer-item>\r\n }\r\n }\r\n }\r\n\r\n <!-- Content footer -->\r\n <div class=\"cmat-vertical-navigation-content-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationContentFooter]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n <!-- Footer -->\r\n <div class=\"cmat-vertical-navigation-footer\">\r\n <ng-content select=\"[cmatVerticalNavigationFooter]\"></ng-content>\r\n </div>\r\n\r\n</div>\r\n\r\n<!-- Aside -->\r\n@if (activeAsideItemId) {\r\n <div class=\"cmat-vertical-navigation-aside-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\"\r\n [@fadeInLeft]=\"position === 'left'\" [@fadeInRight]=\"position === 'right'\" [@fadeOutLeft]=\"position === 'left'\"\r\n [@fadeOutRight]=\"position === 'right'\">\r\n <!-- Items -->\r\n @for (item of navigation; track trackByFn($index, item)) {\r\n <!-- Skip the hidden items -->\r\n @if ((item.hidden && !item.hidden(item)) || !item.hidden) {\r\n <!-- Aside -->\r\n @if (item.type === 'aside' && item.id === activeAsideItemId) {\r\n <cmat-vertical-navigation-aside-item [item]=\"item\" [name]=\"name\" [autoCollapse]=\"autoCollapse\">\r\n </cmat-vertical-navigation-aside-item>\r\n }\r\n }\r\n }\r\n </div>\r\n}", styles: ["cmat-vertical-navigation{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:280px;min-width:280px;max-width:280px;height:100%;z-index:200}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-animations-enabled .cmat-vertical-navigation-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}cmat-vertical-navigation.cmat-vertical-navigation-mode-over{position:fixed;top:0;bottom:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over{left:0;transform:translate3d(-100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-left .cmat-vertical-navigation-wrapper{left:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-280px}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over{right:0;transform:translate3d(100%,0,0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-over.cmat-vertical-navigation-opened{transform:translateZ(0)}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-wrapper{right:0}cmat-vertical-navigation.cmat-vertical-navigation-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper{position:relative;overflow:visible;height:auto}cmat-vertical-navigation.cmat-vertical-navigation-inner .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{overflow:visible!important}cmat-vertical-navigation .cmat-vertical-navigation-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:100%;height:100%;overflow:hidden;z-index:10;background:inherit;box-shadow:inset -1px 0 0 var(--cmat-border)}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-divider-item{margin:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item{margin-top:24px}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:280px;width:280px;height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item{padding:24px 0}cmat-vertical-navigation .cmat-vertical-navigation-aside-wrapper>cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item,cmat-vertical-navigation cmat-vertical-navigation-group-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item.cmat-vertical-navigation-item-disabled{cursor:default;opacity:.4}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:16px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{font-size:11px;line-height:1.5}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{margin-left:auto}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation cmat-vertical-navigation-spacer-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge .cmat-vertical-navigation-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;height:20px}cmat-vertical-navigation cmat-vertical-navigation-aside-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-basic-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{margin:0 12px}cmat-vertical-navigation cmat-vertical-navigation-aside-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item{margin-bottom:4px}cmat-vertical-navigation cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item,cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item{cursor:pointer}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge+.cmat-vertical-navigation-item-arrow{margin-left:8px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item.cmat-vertical-navigation-item-expanded>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow{transform:rotate(90deg)}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children{margin-top:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:6px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children>*:last-child>.cmat-vertical-navigation-item-children>*:last-child{padding-bottom:0}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item>.cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{overflow:hidden}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:56px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:72px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:88px}cmat-vertical-navigation cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item-children .cmat-vertical-navigation-item{padding-left:104px}cmat-vertical-navigation cmat-vertical-navigation-divider-item{margin:12px 0}cmat-vertical-navigation cmat-vertical-navigation-divider-item .cmat-vertical-navigation-item-wrapper{height:1px;box-shadow:0 1px}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{display:none!important}cmat-vertical-navigation cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}cmat-vertical-navigation cmat-vertical-navigation-spacer-item{margin:6px 0}.cmat-vertical-navigation-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.cmat-vertical-navigation-overlay+.cmat-vertical-navigation-aside-overlay{background-color:transparent}.cmat-vertical-navigation-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact{width:112px;min-width:112px;max-width:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{margin:4px 8px 0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{margin-top:8px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper .cmat-vertical-navigation-item-subtitle{display:none!important}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge{position:absolute;top:12px;left:64px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-collapsable-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-compact .cmat-vertical-navigation-aside-wrapper{left:112px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over){width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-mode-over).cmat-vertical-navigation-position-right.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:auto;right:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{width:280px-24px;min-width:280px-24px;max-width:280px-24px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item:first-of-type{margin-top:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{padding:10px 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;opacity:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-collapsable-item .cmat-vertical-navigation-item-children{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense:not(.cmat-vertical-navigation-hover):not(.cmat-vertical-navigation-mode-over) .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense .cmat-vertical-navigation-aside-wrapper{left:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper{width:280px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge,cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}cmat-vertical-navigation.cmat-vertical-navigation-appearance-dense.cmat-vertical-navigation-hover .cmat-vertical-navigation-aside-wrapper{left:280px}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin{width:80px;min-width:80px;max-width:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-mode-side{margin-left:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-left.cmat-vertical-navigation-opened{margin-left:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-mode-side{margin-right:-80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right.cmat-vertical-navigation-opened{margin-right:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin.cmat-vertical-navigation-position-right .cmat-vertical-navigation-aside-wrapper{left:auto;right:80px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper{display:flex;align-items:center;justify-content:center}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item{justify-content:center;padding:12px;border-radius:4px}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-icon{margin:0}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-aside-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-arrow,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-badge-content,cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-basic-item .cmat-vertical-navigation-item-wrapper .cmat-vertical-navigation-item .cmat-vertical-navigation-item-title-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-collapsable-item{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-wrapper .cmat-vertical-navigation-content>cmat-vertical-navigation-group-item>.cmat-vertical-navigation-item-wrapper{display:none}cmat-vertical-navigation.cmat-vertical-navigation-appearance-thin .cmat-vertical-navigation-aside-wrapper{left:80px}\n"] }]
538
538
  }], ctorParameters: () => [{ type: i1.AnimationBuilder }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i2.Router }, { type: i3.ScrollStrategyOptions }, { type: i4.CmatNavigationService }, { type: i5.CmatUtilsService }], propDecorators: { appearance: [{
539
539
  type: Input
540
540
  }], autoCollapse: [{
@@ -581,4 +581,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
581
581
  type: HostListener,
582
582
  args: ['mouseleave']
583
583
  }] } });
584
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvdmVydGljYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvdmVydGljYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBcUMsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFBaUIsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBNEIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9QLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFB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d0NBQXdDLEVBQUUseUNBQXlDLENBQUM7a1NBU2hGLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNhLGlCQUFpQjtzQkFBbkMsTUFBTTtnQkFDWSxXQUFXO3NCQUE3QixNQUFNO2dCQUNZLGFBQWE7c0JBQS9CLE1BQU07Z0JBQ1ksZUFBZTtzQkFBakMsTUFBTTtnQkFDWSx1QkFBdUI7c0JBQXpDLE1BQU07Z0JBRWlDLG9CQUFvQjtzQkFBM0QsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBMENKLFNBQVM7c0JBQWxDLFdBQVc7dUJBQUMsT0FBTztnQkF5Qk0sU0FBUztzQkFBbEMsV0FBVzt1QkFBQyxPQUFPO2dCQWdCcEIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVk7Z0JBZTFCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgQW5pbWF0aW9uQnVpbGRlciwgQW5pbWF0aW9uUGxheWVyLCBzdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IFNjcm9sbFN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBjbWF0QW5pbWF0aW9ucyB9IGZyb20gJ2NtYXQvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENtYXRVdGlsc1NlcnZpY2UgfSBmcm9tICdjbWF0L3NlcnZpY2VzL3V0aWxzJztcclxuaW1wb3J0IHsgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkFzaWRlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc2lkZS9hc2lkZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbWF0VmVydGljYWxOYXZpZ2F0aW9uQmFzaWNJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Jhc2ljL2Jhc2ljLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Db2xsYXBzYWJsZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGFwc2FibGUvY29sbGFwc2FibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkRpdmlkZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RpdmlkZXIvZGl2aWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbWF0VmVydGljYWxOYXZpZ2F0aW9uR3JvdXBJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dyb3VwL2dyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25TcGFjZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NwYWNlci9zcGFjZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ21hdE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbmF2aWdhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ21hdE5hdmlnYXRpb25JdGVtLCBDbWF0VmVydGljYWxOYXZpZ2F0aW9uQXBwZWFyYW5jZSwgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbk1vZGUsIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Qb3NpdGlvbiB9IGZyb20gJy4uL25hdmlnYXRpb24udHlwZXMnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZlcnRpY2FsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3ZlcnRpY2FsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBhbmltYXRpb25zOiBjbWF0QW5pbWF0aW9ucyxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGV4cG9ydEFzOiAnY21hdFZlcnRpY2FsTmF2aWdhdGlvbicsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW0NtYXRWZXJ0aWNhbE5hdmlnYXRpb25Bc2lkZUl0ZW1Db21wb25lbnQsIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25CYXNpY0l0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Db2xsYXBzYWJsZUl0ZW1Db21wb25lbnQsIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25EaXZpZGVySXRlbUNvbXBvbmVudCwgXHJcbiAgICAgICAgIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Hcm91cEl0ZW1Db21wb25lbnQsIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25TcGFjZXJJdGVtQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXHJcbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaW5uZXI6IEJvb2xlYW5JbnB1dDtcclxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9vcGVuZWQ6IEJvb2xlYW5JbnB1dDtcclxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV90cmFuc3BhcmVudE92ZXJsYXk6IEJvb2xlYW5JbnB1dDtcclxuICAgIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXHJcblxyXG4gICAgQElucHV0KCkgYXBwZWFyYW5jZTogQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkFwcGVhcmFuY2UgPSAnZGVmYXVsdCc7XHJcbiAgICBASW5wdXQoKSBhdXRvQ29sbGFwc2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZWRpdFN0YXRlOmJvb2xlYW49IGZhbHNlO1xyXG4gICAgQElucHV0KCkgaW5uZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIG1vZGU6IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Nb2RlID0gJ3NpZGUnO1xyXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gdGhpcy5fY21hdFV0aWxzU2VydmljZS5yYW5kb21JZCgpO1xyXG4gICAgQElucHV0KCkgbmF2aWdhdGlvbjogQ21hdE5hdmlnYXRpb25JdGVtW107XHJcbiAgICBASW5wdXQoKSBvcGVuZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcG9zaXRpb246IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Qb3NpdGlvbiA9ICdsZWZ0JztcclxuICAgIEBJbnB1dCgpIHRyYW5zcGFyZW50T3ZlcmxheTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGFwcGVhcmFuY2VDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q21hdFZlcnRpY2FsTmF2aWdhdGlvbkFwcGVhcmFuY2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxDbWF0VmVydGljYWxOYXZpZ2F0aW9uQXBwZWFyYW5jZT4oKTtcclxuICAgIEBPdXRwdXQoKSByZWFkb25seSBtb2RlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Nb2RlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q21hdFZlcnRpY2FsTmF2aWdhdGlvbk1vZGU+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb3BlbmVkQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHBvc2l0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Qb3NpdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Qb3NpdGlvbj4oKTtcclxuICAgIEBPdXRwdXQoKSByZWFkb25seSBlZGl0U2VsZWN0ZWRJdGVtQ2hhbmdlZDogRXZlbnRFbWl0dGVyPENtYXROYXZpZ2F0aW9uSXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPENtYXROYXZpZ2F0aW9uSXRlbT4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCduYXZpZ2F0aW9uQ29udGVudCcpIHByaXZhdGUgX25hdmlnYXRpb25Db250ZW50RWw6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICAgIGFjdGl2ZUFzaWRlSXRlbUlkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICAgIG9uQ29sbGFwc2FibGVJdGVtQ29sbGFwc2VkOiBSZXBsYXlTdWJqZWN0PENtYXROYXZpZ2F0aW9uSXRlbT4gPSBuZXcgUmVwbGF5U3ViamVjdDxDbWF0TmF2aWdhdGlvbkl0ZW0+KDEpO1xyXG4gICAgb25Db2xsYXBzYWJsZUl0ZW1FeHBhbmRlZDogUmVwbGF5U3ViamVjdDxDbWF0TmF2aWdhdGlvbkl0ZW0+ID0gbmV3IFJlcGxheVN1YmplY3Q8Q21hdE5hdmlnYXRpb25JdGVtPigxKTtcclxuICAgIG9uUmVmcmVzaGVkOiBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XHJcblxyXG4gICAgcHJpdmF0ZSBfYW5pbWF0aW9uc0VuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX2FzaWRlT3ZlcmxheTogSFRNTEVsZW1lbnQgfCBudWxsO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaGFuZGxlQXNpZGVPdmVybGF5Q2xpY2s6IGFueTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2hhbmRsZU92ZXJsYXlDbGljazogYW55O1xyXG4gICAgcHJpdmF0ZSBfaG92ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogSFRNTEVsZW1lbnQgfCBudWxsO1xyXG4gICAgcHJpdmF0ZSBfcGxheWVyOiBBbmltYXRpb25QbGF5ZXI7XHJcbiAgICBwcml2YXRlIF9zY3JvbGxTdHJhdGVneTogU2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLl9zY3JvbGxTdHJhdGVneU9wdGlvbnMuYmxvY2soKTtcclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9hbmltYXRpb25CdWlsZGVyOiBBbmltYXRpb25CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyMjogUmVuZGVyZXIyLFxyXG4gICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5T3B0aW9uczogU2Nyb2xsU3RyYXRlZ3lPcHRpb25zLFxyXG4gICAgICAgIHByaXZhdGUgX2NtYXROYXZpZ2F0aW9uU2VydmljZTogQ21hdE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2NtYXRVdGlsc1NlcnZpY2U6IENtYXRVdGlsc1NlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZUFzaWRlT3ZlcmxheUNsaWNrID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlQXNpZGUoKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZU92ZXJsYXlDbGljayA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIEAgQWNjZXNzb3JzXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSG9zdCBiaW5kaW5nIGZvciBjb21wb25lbnQgY2xhc3Nlc1xyXG4gICAgICovXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzTGlzdCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuICAgICAgICAgICAgJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hbmltYXRpb25zLWVuYWJsZWQnOiB0aGlzLl9hbmltYXRpb25zRW5hYmxlZCxcclxuICAgICAgICAgICAgW2BjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tYXBwZWFyYW5jZS0ke3RoaXMuYXBwZWFyYW5jZX1gXTogdHJ1ZSxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWhvdmVyJzogdGhpcy5faG92ZXJlZCxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWlubmVyJzogdGhpcy5pbm5lcixcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLW1vZGUtb3Zlcic6IHRoaXMubW9kZSA9PT0gJ292ZXInLFxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbiAgICAgICAgICAgICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tbW9kZS1zaWRlJzogdGhpcy5tb2RlID09PSAnc2lkZScsXHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuICAgICAgICAgICAgJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1vcGVuZWQnOiB0aGlzLm9wZW5lZCxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLXBvc2l0aW9uLWxlZnQnOiB0aGlzLnBvc2l0aW9uID09PSAnbGVmdCcsXHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuICAgICAgICAgICAgJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1wb3NpdGlvbi1yaWdodCc6IHRoaXMucG9zaXRpb24gPT09ICdyaWdodCdcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSG9zdCBiaW5kaW5nIGZvciBjb21wb25lbnQgaW5saW5lIHN0eWxlc1xyXG4gICAgICovXHJcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgZ2V0IHN0eWxlTGlzdCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICd2aXNpYmlsaXR5JzogdGhpcy5vcGVuZWQgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIEAgRGVjb3JhdGVkIG1ldGhvZHNcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPbiBtb3VzZWVudGVyXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXHJcbiAgICBvbk1vdXNlZW50ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gRW5hYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgICAgdGhpcy5fZW5hYmxlQW5pbWF0aW9ucygpO1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIGhvdmVyZWRcclxuICAgICAgICB0aGlzLl9ob3ZlcmVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9uIG1vdXNlbGVhdmVcclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcclxuICAgIG9uTW91c2VsZWF2ZSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBFbmFibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAgICB0aGlzLl9lbmFibGVBbmltYXRpb25zKCk7XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgaG92ZXJlZFxyXG4gICAgICAgIHRoaXMuX2hvdmVyZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8gQCBMaWZlY3ljbGUgaG9va3NcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPbiBjaGFuZ2VzXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIC8vIEFwcGVhcmFuY2VcclxuICAgICAgICBpZiAoJ2FwcGVhcmFuY2UnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICAgICAgICB0aGlzLmFwcGVhcmFuY2VDaGFuZ2VkLm5leHQoY2hhbmdlc1snYXBwZWFyYW5jZSddLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJbm5lclxyXG4gICAgICAgIGlmICgnaW5uZXInIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gQ29lcmNlIHRoZSB2YWx1ZSB0byBhIGJvb2xlYW5cclxuICAgICAgICAgICAgdGhpcy5pbm5lciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzWydpbm5lciddLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBNb2RlXHJcbiAgICAgICAgaWYgKCdtb2RlJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIC8vIEdldCB0aGUgcHJldmlvdXMgYW5kIGN1cnJlbnQgdmFsdWVzXHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlID0gY2hhbmdlc1snbW9kZSddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNNb2RlID0gY2hhbmdlc1snbW9kZSddLnByZXZpb3VzVmFsdWU7XHJcblxyXG4gICAgICAgICAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVBbmltYXRpb25zKCk7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgbW9kZSBjaGFuZ2VzOiAnb3ZlciAtPiBzaWRlJ1xyXG4gICAgICAgICAgICBpZiAocHJldmlvdXNNb2RlID09PSAnb3ZlcicgJiYgY3VycmVudE1vZGUgPT09ICdzaWRlJykge1xyXG4gICAgICAgICAgICAgICAgLy8gSGlkZSB0aGUgb3ZlcmxheVxyXG4gICAgICAgICAgICAgICAgdGhpcy5faGlkZU92ZXJsYXkoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gSWYgdGhlIG1vZGUgY2hhbmdlczogJ3NpZGUgLT4gb3ZlcidcclxuICAgICAgICAgICAgaWYgKHByZXZpb3VzTW9kZSA9PT0gJ3NpZGUnICYmIGN1cnJlbnRNb2RlID09PSAnb3ZlcicpIHtcclxuICAgICAgICAgICAgICAgIC8vIENsb3NlIHRoZSBhc2lkZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFzaWRlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gaXMgb3BlbmVkXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcGVuZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBTaG93IHRoZSBvdmVybGF5XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2hvd092ZXJsYXkoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICAgICAgICB0aGlzLm1vZGVDaGFuZ2VkLm5leHQoY3VycmVudE1vZGUpO1xyXG5cclxuICAgICAgICAgICAgLy8gRW5hYmxlIHRoZSBhbmltYXRpb25zIGFmdGVyIGEgZGVsYXlcclxuICAgICAgICAgICAgLy8gVGhlIGRlbGF5IG11c3QgYmUgYmlnZ2VyIHRoYW4gdGhlIGN1cnJlbnQgdHJhbnNpdGlvbi1kdXJhdGlvblxyXG4gICAgICAgICAgICAvLyB0byBtYWtlIHN1cmUgbm90aGluZyB3aWxsIGJlIGFuaW1hdGVkIHdoaWxlIHRoZSBtb2RlIGNoYW5naW5nXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZW5hYmxlQW5pbWF0aW9ucygpO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTmF2aWdhdGlvblxyXG4gICAgICAgIGlmICgnbmF2aWdhdGlvbicgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xyXG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIE9wZW5lZFxyXG4gICAgICAgIGlmICgnb3BlbmVkJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIC8vIENvZXJjZSB0aGUgdmFsdWUgdG8gYSBib29sZWFuXHJcbiAgICAgICAgICAgIHRoaXMub3BlbmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGNoYW5nZXNbJ29wZW5lZCddLmN1cnJlbnRWYWx1ZSk7XHJcblxyXG4gICAgICAgICAgICAvLyBPcGVuL2Nsb3NlIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgICAgICAgIHRoaXMuX3RvZ2dsZU9wZW5lZCh0aGlzLm9wZW5lZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBQb3NpdGlvblxyXG4gICAgICAgIGlmICgncG9zaXRpb24nIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlZC5uZXh0KGNoYW5nZXNbJ3Bvc2l0aW9uJ10uY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFRyYW5zcGFyZW50IG92ZXJsYXlcclxuICAgICAgICBpZiAoJ3RyYW5zcGFyZW50T3ZlcmxheScgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICAvLyBDb2VyY2UgdGhlIHZhbHVlIHRvIGEgYm9vbGVhblxyXG4gICAgICAgICAgICB0aGlzLnRyYW5zcGFyZW50T3ZlcmxheSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzWyd0cmFuc3BhcmVudE92ZXJsYXknXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9uIGluaXRcclxuICAgICAqL1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBuYW1lIGlucHV0IGlzIG5vdCBhbiBlbXB0eSBzdHJpbmdcclxuICAgICAgICBpZiAodGhpcy5uYW1lID09PSAnJykge1xyXG4gICAgICAgICAgICB0aGlzLm5hbWUgPSB0aGlzLl9jbWF0VXRpbHNTZXJ2aWNlLnJhbmRvbUlkKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBSZWdpc3RlciB0aGUgbmF2aWdhdGlvbiBjb21wb25lbnRcclxuICAgICAgICB0aGlzLl9jbWF0TmF2aWdhdGlvblNlcnZpY2UucmVnaXN0ZXJDb21wb25lbnQodGhpcy5uYW1lLCB0aGlzKTtcclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSAnTmF2aWdhdGlvbkVuZCcgZXZlbnRcclxuICAgICAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG1vZGUgaXMgJ292ZXInIGFuZCB0aGUgbmF2aWdhdGlvbiBpcyBvcGVuZWQuLi5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdvdmVyJyAmJiB0aGlzLm9wZW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIENsb3NlIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBtb2RlIGlzICdzaWRlJyBhbmQgdGhlIGFzaWRlIGlzIGFjdGl2ZS4uLlxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ3NpZGUnICYmIHRoaXMuYWN0aXZlQXNpZGVJdGVtSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBDbG9zZSB0aGUgYXNpZGVcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQXNpZGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZnRlciB2aWV3IGluaXRcclxuICAgICAqL1xyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgLy8gUmV0dXJuIGlmICduYXZpZ2F0aW9uIGNvbnRlbnQnIGVsZW1lbnQgZG9lcyBub3QgZXhpc3RcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1pdGVtLWFjdGl2ZScpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICAvLyBJZiB0aGUgYWN0aXZlIGl0ZW0gZXhpc3RzLCBzY3JvbGwgaXQgaW50byB2aWV3XHJcbiAgICAgICAgICAgIGlmIChhY3RpdmVJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlSXRlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b21cclxuICAgICAgICAgICAgICAgICAgICA8PSAodGhpcy5fbmF2aWdhdGlvbkNvbnRlbnRFbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSAtIE1hdGguYWJzKC0xMjApKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogYWN0aXZlSXRlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gMTIwLCBiZWhhdmlvcjogJ3Ntb290aCdcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT24gZGVzdHJveVxyXG4gICAgICovXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBGb3JjZWZ1bGx5IGNsb3NlIHRoZSBuYXZpZ2F0aW9uIGFuZCBhc2lkZSBpbiBjYXNlIHRoZXkgYXJlIG9wZW5lZFxyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLmNsb3NlQXNpZGUoKTtcclxuXHJcbiAgICAgICAgLy8gRGVyZWdpc3RlciB0aGUgbmF2aWdhdGlvbiBjb21wb25lbnQgZnJvbSB0aGUgcmVnaXN0cnlcclxuICAgICAgICB0aGlzLl9jbWF0TmF2aWdhdGlvblNlcnZpY2UuZGVyZWdpc3RlckNvbXBvbmVudCh0aGlzLm5hbWUpO1xyXG5cclxuICAgICAgICAvLyBVbnN1YnNjcmliZSBmcm9tIGFsbCBzdWJzY3JpcHRpb25zXHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwubmV4dCh2b2lkIDApO1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIEAgUHVibGljIG1ldGhvZHNcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWZyZXNoIHRoZSBjb21wb25lbnQgdG8gYXBwbHkgdGhlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcmVmcmVzaCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgICAgdGhpcy5vblJlZnJlc2hlZC5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3BlbiB0aGUgbmF2aWdhdGlvblxyXG4gICAgICovXHJcbiAgICBvcGVuKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFJldHVybiBpZiB0aGUgbmF2aWdhdGlvbiBpcyBhbHJlYWR5IG9wZW5cclxuICAgICAgICBpZiAodGhpcy5vcGVuZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSBvcGVuZWRcclxuICAgICAgICB0aGlzLl90b2dnbGVPcGVuZWQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbG9zZSB0aGUgbmF2aWdhdGlvblxyXG4gICAgICovXHJcbiAgICBjbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIG5hdmlnYXRpb24gaXMgYWxyZWFkeSBjbG9zZWRcclxuICAgICAgICBpZiAoIXRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENsb3NlIHRoZSBhc2lkZVxyXG4gICAgICAgIHRoaXMuY2xvc2VBc2lkZSgpO1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIG9wZW5lZFxyXG4gICAgICAgIHRoaXMuX3RvZ2dsZU9wZW5lZChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUb2dnbGUgdGhlIG5hdmlnYXRpb25cclxuICAgICAqL1xyXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFRvZ2dsZVxyXG4gICAgICAgIGlmICh0aGlzLm9wZW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcGVuIHRoZSBhc2lkZVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpdGVtXHJcbiAgICAgKi9cclxuICAgIG9wZW5Bc2lkZShpdGVtOiBDbWF0TmF2aWdhdGlvbkl0ZW0pOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIGl0ZW0gaXMgZGlzYWJsZWRcclxuICAgICAgICBpZiAoaXRlbS5kaXNhYmxlZCB8fCAhaXRlbS5pZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBPcGVuXHJcbiAgICAgICAgdGhpcy5hY3RpdmVBc2lkZUl0ZW1JZCA9IGl0ZW0uaWQ7XHJcblxyXG4gICAgICAgIC8vIFNob3cgdGhlIGFzaWRlIG92ZXJsYXlcclxuICAgICAgICB0aGlzLl9zaG93QXNpZGVPdmVybGF5KCk7XHJcblxyXG4gICAgICAgIC8vIE1hcmsgZm9yIGNoZWNrXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbG9zZSB0aGUgYXNpZGVcclxuICAgICAqL1xyXG4gICAgY2xvc2VBc2lkZSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBDbG9zZVxyXG4gICAgICAgIHRoaXMuYWN0aXZlQXNpZGVJdGVtSWQgPSBudWxsO1xyXG5cclxuICAgICAgICAvLyBIaWRlIHRoZSBhc2lkZSBvdmVybGF5XHJcbiAgICAgICAgdGhpcy5faGlkZUFzaWRlT3ZlcmxheSgpO1xyXG5cclxuICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVG9nZ2xlIHRoZSBhc2lkZVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpdGVtXHJcbiAgICAgKi9cclxuICAgIHRvZ2dsZUFzaWRlKGl0ZW06IENtYXROYXZpZ2F0aW9uSXRlbSk6IHZvaWQge1xyXG4gICAgICAgIC8vIFRvZ2dsZVxyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUFzaWRlSXRlbUlkID09PSBpdGVtLmlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VBc2lkZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5vcGVuQXNpZGUoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhY2sgYnkgZnVuY3Rpb24gZm9yIG5nRm9yIGxvb3BzXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKiBAcGFyYW0gaXRlbVxyXG4gICAgICovXHJcbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5pZCB8fCBpbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RJdGVtKGl0ZW06IENtYXROYXZpZ2F0aW9uSXRlbSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdFNlbGVjdGVkSXRlbUNoYW5nZWQubmV4dChpdGVtKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIEAgUHJpdmF0ZSBtZXRob2RzXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW5hYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfZW5hYmxlQW5pbWF0aW9ucygpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIGFuaW1hdGlvbnMgYXJlIGFscmVhZHkgZW5hYmxlZFxyXG4gICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBFbmFibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAgICB0aGlzLl9hbmltYXRpb25zRW5hYmxlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXNhYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfZGlzYWJsZUFuaW1hdGlvbnMoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gUmV0dXJuIGlmIHRoZSBhbmltYXRpb25zIGFyZSBhbHJlYWR5IGRpc2FibGVkXHJcbiAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgICAgdGhpcy5fYW5pbWF0aW9uc0VuYWJsZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgdGhlIG92ZXJsYXlcclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9zaG93T3ZlcmxheSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBvdmVybGF5XHJcbiAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlIG92ZXJsYXkgZWxlbWVudFxyXG4gICAgICAgIHRoaXMuX292ZXJsYXkgPSB0aGlzLl9yZW5kZXJlcjIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9vdmVybGF5KSB7XHJcbiAgICAgICAgICAgIC8vIEFkZCBhIGNsYXNzIHRvIHRoZSBvdmVybGF5IGVsZW1lbnRcclxuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tb3ZlcmxheScpO1xyXG5cclxuICAgICAgICAgICAgLy8gQWRkIGEgY2xhc3MgZGVwZW5kaW5nIG9uIHRoZSB0cmFuc3BhcmVudE92ZXJsYXkgb3B0aW9uXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zcGFyZW50T3ZlcmxheSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tb3ZlcmxheS10cmFuc3BhcmVudCcpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBBcHBlbmQgdGhlIG92ZXJsYXkgdG8gdGhlIHBhcmVudCBvZiB0aGUgbmF2aWdhdGlvblxyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsIHRoaXMuX292ZXJsYXkpO1xyXG5cclxuICAgICAgICAgICAgLy8gRW5hYmxlIGJsb2NrIHNjcm9sbCBzdHJhdGVneVxyXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxTdHJhdGVneS5lbmFibGUoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgZW50ZXIgYW5pbWF0aW9uIGFuZCBhdHRhY2ggaXQgdG8gdGhlIHBsYXllclxyXG4gICAgICAgICAgICB0aGlzLl9wbGF5ZXIgPSB0aGlzLl9hbmltYXRpb25CdWlsZGVyLmJ1aWxkKFtcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKVxyXG4gICAgICAgICAgICBdKS5jcmVhdGUodGhpcy5fb3ZlcmxheSk7XHJcblxyXG4gICAgICAgICAgICAvLyBQbGF5IHRoZSBhbmltYXRpb25cclxuICAgICAgICAgICAgdGhpcy5fcGxheWVyLnBsYXkoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEFkZCBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgb3ZlcmxheVxyXG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlT3ZlcmxheUNsaWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIaWRlIHRoZSBvdmVybGF5XHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfaGlkZU92ZXJsYXkoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9vdmVybGF5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgbGVhdmUgYW5pbWF0aW9uIGFuZCBhdHRhY2ggaXQgdG8gdGhlIHBsYXllclxyXG4gICAgICAgIHRoaXMuX3BsYXllciA9IHRoaXMuX2FuaW1hdGlvbkJ1aWxkZXIuYnVpbGQoW1xyXG4gICAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSlcclxuICAgICAgICBdKS5jcmVhdGUodGhpcy5fb3ZlcmxheSk7XHJcblxyXG4gICAgICAgIC8vIFBsYXkgdGhlIGFuaW1hdGlvblxyXG4gICAgICAgIHRoaXMuX3BsYXllci5wbGF5KCk7XHJcblxyXG4gICAgICAgIC8vIE9uY2UgdGhlIGFuaW1hdGlvbiBpcyBkb25lLi4uXHJcbiAgICAgICAgdGhpcy5fcGxheWVyLm9uRG9uZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgb3ZlcmxheSBzdGlsbCBleGlzdHMuLi5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX292ZXJsYXkpIHtcclxuICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgZXZlbnQgbGlzdGVuZXJcclxuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJsYXkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYW5kbGVPdmVybGF5Q2xpY2spO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgb3ZlcmxheVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheS5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZCh0aGlzLl9vdmVybGF5KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJsYXkgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBEaXNhYmxlIGJsb2NrIHNjcm9sbCBzdHJhdGVneVxyXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxTdHJhdGVneS5kaXNhYmxlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93IHRoZSBhc2lkZSBvdmVybGF5XHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfc2hvd0FzaWRlT3ZlcmxheSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBvdmVybGF5XHJcbiAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlIGFzaWRlIG92ZXJsYXkgZWxlbWVudFxyXG4gICAgICAgIHRoaXMuX2FzaWRlT3ZlcmxheSA9IHRoaXMuX3JlbmRlcmVyMi5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICAvLyBBZGQgYSBjbGFzcyB0byB0aGUgYXNpZGUgb3ZlcmxheSBlbGVtZW50XHJcbiAgICAgICAgICAgIHRoaXMuX2FzaWRlT3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tYXNpZGUtb3ZlcmxheScpO1xyXG5cclxuICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBhc2lkZSBvdmVybGF5IHRvIHRoZSBwYXJlbnQgb2YgdGhlIG5hdmlnYXRpb25cclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LCB0aGlzLl9hc2lkZU92ZXJsYXkpO1xyXG5cclxuICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBlbnRlciBhbmltYXRpb24gYW5kIGF0dGFjaCBpdCB0byB0aGUgcGxheWVyXHJcbiAgICAgICAgICAgIHRoaXMuX3BsYXllciA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25CdWlsZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgLmJ1aWxkKFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXHJcbiAgICAgICAgICAgICAgICAgICAgXSkuY3JlYXRlKHRoaXMuX2FzaWRlT3ZlcmxheSk7XHJcblxyXG4gICAgICAgICAgICAvLyBQbGF5IHRoZSBhbmltYXRpb25cclxuICAgICAgICAgICAgdGhpcy5fcGxheWVyLnBsYXkoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEFkZCBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgYXNpZGUgb3ZlcmxheVxyXG4gICAgICAgICAgICB0aGlzLl9hc2lkZU92ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYW5kbGVBc2lkZU92ZXJsYXlDbGljayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGlkZSB0aGUgYXNpZGUgb3ZlcmxheVxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2hpZGVBc2lkZU92ZXJsYXkoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9hc2lkZU92ZXJsYXkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBsZWF2ZSBhbmltYXRpb24gYW5kIGF0dGFjaCBpdCB0byB0aGUgcGxheWVyXHJcbiAgICAgICAgdGhpcy5fcGxheWVyID1cclxuICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQnVpbGRlclxyXG4gICAgICAgICAgICAgICAgLmJ1aWxkKFtcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSlcclxuICAgICAgICAgICAgICAgIF0pLmNyZWF0ZSh0aGlzLl9hc2lkZU92ZXJsYXkpO1xyXG5cclxuICAgICAgICAvLyBQbGF5IHRoZSBhbmltYXRpb25cclxuICAgICAgICB0aGlzLl9wbGF5ZXIucGxheSgpO1xyXG5cclxuICAgICAgICAvLyBPbmNlIHRoZSBhbmltYXRpb24gaXMgZG9uZS4uLlxyXG4gICAgICAgIHRoaXMuX3BsYXllci5vbkRvbmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBJZiB0aGUgYXNpZGUgb3ZlcmxheSBzdGlsbCBleGlzdHMuLi5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBldmVudCBsaXN0ZW5lclxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYXNpZGVPdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlQXNpZGVPdmVybGF5Q2xpY2spO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgYXNpZGUgb3ZlcmxheVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYXNpZGVPdmVybGF5LnBhcmVudE5vZGU/LnJlbW92ZUNoaWxkKHRoaXMuX2FzaWRlT3ZlcmxheSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hc2lkZU92ZXJsYXkgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcGVuL2Nsb3NlIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wZW5cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3RvZ2dsZU9wZW5lZChvcGVuOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgLy8gU2V0IHRoZSBvcGVuZWRcclxuICAgICAgICB0aGlzLm9wZW5lZCA9IG9wZW47XHJcblxyXG4gICAgICAgIC8vIEVuYWJsZSB0aGUgYW5pbWF0aW9uc1xyXG4gICAgICAgIHRoaXMuX2VuYWJsZUFuaW1hdGlvbnMoKTtcclxuXHJcbiAgICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gb3BlbmVkLCBhbmQgdGhlIG1vZGVcclxuICAgICAgICAvLyBpcyAnb3ZlcicsIHNob3cgdGhlIG92ZXJsYXlcclxuICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnb3ZlcicpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93T3ZlcmxheSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faGlkZU92ZXJsYXkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICAgIHRoaXMub3BlbmVkQ2hhbmdlZC5uZXh0KG9wZW4pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24td3JhcHBlclwiPlxyXG5cclxuICA8IS0tIEhlYWRlciAtLT5cclxuICA8ZGl2IGNsYXNzPVwiY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWhlYWRlclwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NtYXRWZXJ0aWNhbE5hdmlnYXRpb25IZWFkZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIENvbnRlbnQgLS0+XHJcbiAgPGRpdiBjbGFzcz1cImNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1jb250ZW50IG92ZXJmbG93LXktYXV0byBsZzpvdmVyZmxvdy15LWhpZGRlbiBsZzpob3ZlcjpvdmVyZmxvdy15LWF1dG8gc2Nyb2xsYmFyLWN1c3RvbVwiICNuYXZpZ2F0aW9uQ29udGVudD5cclxuXHJcbiAgICA8IS0tIENvbnRlbnQgaGVhZGVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1jb250ZW50LWhlYWRlclwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbnRlbnRIZWFkZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBJdGVtcyAtLT5cclxuICAgIEBmb3IgKGl0ZW0gb2YgbmF2aWdhdGlvbjsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCwgaXRlbSkpIHtcclxuICAgICAgPCEtLSBTa2lwIHRoZSBoaWRkZW4gaXRlbXMgLS0+XHJcbiAgICAgIEBpZiAoKGl0ZW0uaGlkZGVuICYmICFpdGVtLmhpZGRlbihpdGVtKSkgfHwgIWl0ZW0uaGlkZGVuKSB7XHJcbiAgICAgICAgPCEtLSBBc2lkZSAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2FzaWRlJykge1xyXG4gICAgICAgICAgPGNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hc2lkZS1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbbmFtZV09XCJuYW1lXCIgW2FjdGl2ZUl0ZW1JZF09XCJhY3RpdmVBc2lkZUl0ZW1JZFwiXHJcbiAgICAgICAgICAgIFthdXRvQ29sbGFwc2VdPVwiYXV0b0NvbGxhcHNlXCIgW3NraXBDaGlsZHJlbl09XCJ0cnVlXCIgKGNsaWNrKT1cInRvZ2dsZUFzaWRlKGl0ZW0pXCIgW2VkaXRTdGF0ZV09XCJlZGl0U3RhdGVcIiAoZWRpdFNlbGVjdGVkSXRlbUNoYW5nZWQpPVwic2VsZWN0SXRlbSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hc2lkZS1pdGVtPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIEJhc2ljIC0tPlxyXG4gICAgICAgIEBpZiAoaXRlbS50eXBlID09PSAnYmFzaWMnKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWJhc2ljLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtuYW1lXT1cIm5hbWVcIiBbZWRpdFN0YXRlXT1cImVkaXRTdGF0ZVwiIChlZGl0U2VsZWN0ZWRJdGVtQ2hhbmdlZCk9XCJzZWxlY3RJdGVtKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWJhc2ljLWl0ZW0+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gQ29sbGFwc2FibGUgLS0+XHJcbiAgICAgICAgQGlmIChpdGVtLnR5cGUgPT09ICdjb2xsYXBzYWJsZScpIHtcclxuICAgICAgICAgIDxjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tY29sbGFwc2FibGUtaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiXHJcbiAgICAgICAgICBbYXV0b0NvbGxhcHNlXT1cImF1dG9Db2xsYXBzZVwiPjwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWNvbGxhcHNhYmxlLWl0ZW0+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gRGl2aWRlciAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2RpdmlkZXInKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWRpdmlkZXItaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9jbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tZGl2aWRlci1pdGVtPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIEdyb3VwIC0tPlxyXG4gICAgICAgIEBpZiAoaXRlbS50eXBlID09PSAnZ3JvdXAnKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWdyb3VwLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtuYW1lXT1cIm5hbWVcIiBbYXV0b0NvbGxhcHNlXT1cImF1dG9Db2xsYXBzZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9jbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tZ3JvdXAtaXRlbT5cclxuICAgICAgICB9XHJcbiAgICAgICAgPCEtLSBTcGFjZXIgLS0+XHJcbiAgICAgICAgQGlmIChpdGVtLnR5cGUgPT09ICdzcGFjZXInKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLXNwYWNlci1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbbmFtZV09XCJuYW1lXCIgW2VkaXRTdGF0ZV09XCJlZGl0U3RhdGVcIiAoZWRpdFNlbGVjdGVkSXRlbUNoYW5nZWQpPVwic2VsZWN0SXRlbSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1zcGFjZXItaXRlbT5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA8IS0tIENvbnRlbnQgZm9vdGVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1jb250ZW50LWZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbnRlbnRGb290ZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gRm9vdGVyIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tZm9vdGVyXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdFZlcnRpY2FsTmF2aWdhdGlvbkZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwhLS0gQXNpZGUgLS0+XHJcbkBpZiAoYWN0aXZlQXNpZGVJdGVtSWQpIHtcclxuICA8ZGl2IGNsYXNzPVwiY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWFzaWRlLXdyYXBwZXIgb3ZlcmZsb3cteS1hdXRvIGxnOm92ZXJmbG93LXktaGlkZGVuIGxnOmhvdmVyOm92ZXJmbG93LXktYXV0byBzY3JvbGxiYXItY3VzdG9tXCJcclxuICAgIFtAZmFkZUluTGVmdF09XCJwb3NpdGlvbiA9PT0gJ2xlZnQnXCIgW0BmYWRlSW5SaWdodF09XCJwb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiIFtAZmFkZU91dExlZnRdPVwicG9zaXRpb24gPT09ICdsZWZ0J1wiXHJcbiAgICBbQGZhZGVPdXRSaWdodF09XCJwb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiPlxyXG4gICAgPCEtLSBJdGVtcyAtLT5cclxuICAgIEBmb3IgKGl0ZW0gb2YgbmF2aWdhdGlvbjsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCwgaXRlbSkpIHtcclxuICAgICAgPCEtLSBTa2lwIHRoZSBoaWRkZW4gaXRlbXMgLS0+XHJcbiAgICAgIEBpZiAoKGl0ZW0uaGlkZGVuICYmICFpdGVtLmhpZGRlbihpdGVtKSkgfHwgIWl0ZW0uaGlkZGVuKSB7XHJcbiAgICAgICAgPCEtLSBBc2lkZSAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2FzaWRlJyAmJiBpdGVtLmlkID09PSBhY3RpdmVBc2lkZUl0ZW1JZCkge1xyXG4gICAgICAgICAgPGNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hc2lkZS1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbbmFtZV09XCJuYW1lXCIgW2F1dG9Db2xsYXBzZV09XCJhdXRvQ29sbGFwc2VcIj5cclxuICAgICAgICAgIDwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWFzaWRlLWl0ZW0+XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbn0iXX0=
584
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvdmVydGljYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL25hdmlnYXRpb24vdmVydGljYWwvdmVydGljYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBcUMsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFBaUIsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBNEIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9QLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUlqRCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFB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Q0FBd0MsRUFBRSx5Q0FBeUMsQ0FBQztrU0FTaEYsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ2EsaUJBQWlCO3NCQUFuQyxNQUFNO2dCQUNZLFdBQVc7c0JBQTdCLE1BQU07Z0JBQ1ksYUFBYTtzQkFBL0IsTUFBTTtnQkFDWSxlQUFlO3NCQUFqQyxNQUFNO2dCQUNZLHVCQUF1QjtzQkFBekMsTUFBTTtnQkFFaUMsb0JBQW9CO3NCQUEzRCxTQUFTO3VCQUFDLG1CQUFtQjtnQkEwQ0osU0FBUztzQkFBbEMsV0FBVzt1QkFBQyxPQUFPO2dCQXlCTSxTQUFTO3NCQUFsQyxXQUFXO3VCQUFDLE9BQU87Z0JBZ0JwQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFlMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25QbGF5ZXIsIHN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgU2Nyb2xsU3RyYXRlZ3ksIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGNtYXRBbmltYXRpb25zIH0gZnJvbSAnY21hdC9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQ21hdFV0aWxzU2VydmljZSB9IGZyb20gJ2NtYXQvc2VydmljZXMvdXRpbHMnO1xyXG5pbXBvcnQgeyBDbWF0TmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDbWF0TmF2aWdhdGlvbkl0ZW0sIENtYXRWZXJ0aWNhbE5hdmlnYXRpb25BcHBlYXJhbmNlLCBDbWF0VmVydGljYWxOYXZpZ2F0aW9uTW9kZSwgQ21hdFZlcnRpY2FsTmF2aWdhdGlvblBvc2l0aW9uIH0gZnJvbSAnLi4vbmF2aWdhdGlvbi50eXBlcyc7XHJcbmltcG9ydCB7IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25Bc2lkZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNpZGUvYXNpZGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkJhc2ljSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYXNpYy9iYXNpYy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbWF0VmVydGljYWxOYXZpZ2F0aW9uQ29sbGFwc2FibGVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxhcHNhYmxlL2NvbGxhcHNhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENtYXRWZXJ0aWNhbE5hdmlnYXRpb25EaXZpZGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkdyb3VwSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ncm91cC9ncm91cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbWF0VmVydGljYWxOYXZpZ2F0aW9uU3BhY2VySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zcGFjZXIvc3BhY2VyLmNvbXBvbmVudCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmVydGljYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdmVydGljYWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGFuaW1hdGlvbnM6IGNtYXRBbmltYXRpb25zLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZXhwb3J0QXM6ICdjbWF0VmVydGljYWxOYXZpZ2F0aW9uJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkFzaWRlSXRlbUNvbXBvbmVudCwgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkJhc2ljSXRlbUNvbXBvbmVudCxcclxuICAgICAgICAgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbGxhcHNhYmxlSXRlbUNvbXBvbmVudCwgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkRpdmlkZXJJdGVtQ29tcG9uZW50LCBcclxuICAgICAgICAgQ21hdFZlcnRpY2FsTmF2aWdhdGlvbkdyb3VwSXRlbUNvbXBvbmVudCwgQ21hdFZlcnRpY2FsTmF2aWdhdGlvblNwYWNlckl0ZW1Db21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0VmVydGljYWxOYXZpZ2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cclxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9pbm5lcjogQm9vbGVhbklucHV0O1xyXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX29wZW5lZDogQm9vbGVhbklucHV0O1xyXG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3RyYW5zcGFyZW50T3ZlcmxheTogQm9vbGVhbklucHV0O1xyXG4gICAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cclxuXHJcbiAgICBASW5wdXQoKSBhcHBlYXJhbmNlOiBDbWF0VmVydGljYWxOYXZpZ2F0aW9uQXBwZWFyYW5jZSA9ICdkZWZhdWx0JztcclxuICAgIEBJbnB1dCgpIGF1dG9Db2xsYXBzZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBlZGl0U3RhdGU6Ym9vbGVhbj0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBpbm5lcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbW9kZTogQ21hdFZlcnRpY2FsTmF2aWdhdGlvbk1vZGUgPSAnc2lkZSc7XHJcbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSB0aGlzLl9jbWF0VXRpbHNTZXJ2aWNlLnJhbmRvbUlkKCk7XHJcbiAgICBASW5wdXQoKSBuYXZpZ2F0aW9uOiBDbWF0TmF2aWdhdGlvbkl0ZW1bXTtcclxuICAgIEBJbnB1dCgpIG9wZW5lZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogQ21hdFZlcnRpY2FsTmF2aWdhdGlvblBvc2l0aW9uID0gJ2xlZnQnO1xyXG4gICAgQElucHV0KCkgdHJhbnNwYXJlbnRPdmVybGF5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgYXBwZWFyYW5jZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDbWF0VmVydGljYWxOYXZpZ2F0aW9uQXBwZWFyYW5jZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENtYXRWZXJ0aWNhbE5hdmlnYXRpb25BcHBlYXJhbmNlPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG1vZGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q21hdFZlcnRpY2FsTmF2aWdhdGlvbk1vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxDbWF0VmVydGljYWxOYXZpZ2F0aW9uTW9kZT4oKTtcclxuICAgIEBPdXRwdXQoKSByZWFkb25seSBvcGVuZWRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgcG9zaXRpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q21hdFZlcnRpY2FsTmF2aWdhdGlvblBvc2l0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q21hdFZlcnRpY2FsTmF2aWdhdGlvblBvc2l0aW9uPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q21hdE5hdmlnYXRpb25JdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q21hdE5hdmlnYXRpb25JdGVtPigpO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ25hdmlnYXRpb25Db250ZW50JykgcHJpdmF0ZSBfbmF2aWdhdGlvbkNvbnRlbnRFbDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gICAgYWN0aXZlQXNpZGVJdGVtSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gICAgb25Db2xsYXBzYWJsZUl0ZW1Db2xsYXBzZWQ6IFJlcGxheVN1YmplY3Q8Q21hdE5hdmlnYXRpb25JdGVtPiA9IG5ldyBSZXBsYXlTdWJqZWN0PENtYXROYXZpZ2F0aW9uSXRlbT4oMSk7XHJcbiAgICBvbkNvbGxhcHNhYmxlSXRlbUV4cGFuZGVkOiBSZXBsYXlTdWJqZWN0PENtYXROYXZpZ2F0aW9uSXRlbT4gPSBuZXcgUmVwbGF5U3ViamVjdDxDbWF0TmF2aWdhdGlvbkl0ZW0+KDEpO1xyXG4gICAgb25SZWZyZXNoZWQ6IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcclxuXHJcbiAgICBwcml2YXRlIF9hbmltYXRpb25zRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfYXNpZGVPdmVybGF5OiBIVE1MRWxlbWVudCB8IG51bGw7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9oYW5kbGVBc2lkZU92ZXJsYXlDbGljazogYW55O1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaGFuZGxlT3ZlcmxheUNsaWNrOiBhbnk7XHJcbiAgICBwcml2YXRlIF9ob3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9vdmVybGF5OiBIVE1MRWxlbWVudCB8IG51bGw7XHJcbiAgICBwcml2YXRlIF9wbGF5ZXI6IEFuaW1hdGlvblBsYXllcjtcclxuICAgIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiBTY3JvbGxTdHJhdGVneSA9IHRoaXMuX3Njcm9sbFN0cmF0ZWd5T3B0aW9ucy5ibG9jaygpO1xyXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2FuaW1hdGlvbkJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXIyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2Nyb2xsU3RyYXRlZ3lPcHRpb25zOiBTY3JvbGxTdHJhdGVneU9wdGlvbnMsXHJcbiAgICAgICAgcHJpdmF0ZSBfY21hdE5hdmlnYXRpb25TZXJ2aWNlOiBDbWF0TmF2aWdhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfY21hdFV0aWxzU2VydmljZTogQ21hdFV0aWxzU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlQXNpZGVPdmVybGF5Q2xpY2sgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VBc2lkZSgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5faGFuZGxlT3ZlcmxheUNsaWNrID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8gQCBBY2Nlc3NvcnNcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIb3N0IGJpbmRpbmcgZm9yIGNvbXBvbmVudCBjbGFzc2VzXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3NMaXN0KCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWFuaW1hdGlvbnMtZW5hYmxlZCc6IHRoaXMuX2FuaW1hdGlvbnNFbmFibGVkLFxyXG4gICAgICAgICAgICBbYGNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hcHBlYXJhbmNlLSR7dGhpcy5hcHBlYXJhbmNlfWBdOiB0cnVlLFxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbiAgICAgICAgICAgICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24taG92ZXInOiB0aGlzLl9ob3ZlcmVkLFxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbiAgICAgICAgICAgICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24taW5uZXInOiB0aGlzLmlubmVyLFxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbiAgICAgICAgICAgICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tbW9kZS1vdmVyJzogdGhpcy5tb2RlID09PSAnb3ZlcicsXHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuICAgICAgICAgICAgJ2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1tb2RlLXNpZGUnOiB0aGlzLm1vZGUgPT09ICdzaWRlJyxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLW9wZW5lZCc6IHRoaXMub3BlbmVkLFxyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXHJcbiAgICAgICAgICAgICdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tcG9zaXRpb24tbGVmdCc6IHRoaXMucG9zaXRpb24gPT09ICdsZWZ0JyxcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAnY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLXBvc2l0aW9uLXJpZ2h0JzogdGhpcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0J1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIb3N0IGJpbmRpbmcgZm9yIGNvbXBvbmVudCBpbmxpbmUgc3R5bGVzXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUnKSBnZXQgc3R5bGVMaXN0KCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3Zpc2liaWxpdHknOiB0aGlzLm9wZW5lZCA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgLy8gQCBEZWNvcmF0ZWQgbWV0aG9kc1xyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9uIG1vdXNlZW50ZXJcclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcclxuICAgIG9uTW91c2VlbnRlcigpOiB2b2lkIHtcclxuICAgICAgICAvLyBFbmFibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAgICB0aGlzLl9lbmFibGVBbmltYXRpb25zKCk7XHJcblxyXG4gICAgICAgIC8vIFNldCB0aGUgaG92ZXJlZFxyXG4gICAgICAgIHRoaXMuX2hvdmVyZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT24gbW91c2VsZWF2ZVxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxyXG4gICAgb25Nb3VzZWxlYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIEVuYWJsZSB0aGUgYW5pbWF0aW9uc1xyXG4gICAgICAgIHRoaXMuX2VuYWJsZUFuaW1hdGlvbnMoKTtcclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSBob3ZlcmVkXHJcbiAgICAgICAgdGhpcy5faG92ZXJlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAvLyBAIExpZmVjeWNsZSBob29rc1xyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9uIGNoYW5nZXNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgLy8gQXBwZWFyYW5jZVxyXG4gICAgICAgIGlmICgnYXBwZWFyYW5jZScgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgICAgICAgIHRoaXMuYXBwZWFyYW5jZUNoYW5nZWQubmV4dChjaGFuZ2VzWydhcHBlYXJhbmNlJ10uY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIElubmVyXHJcbiAgICAgICAgaWYgKCdpbm5lcicgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICAvLyBDb2VyY2UgdGhlIHZhbHVlIHRvIGEgYm9vbGVhblxyXG4gICAgICAgICAgICB0aGlzLmlubmVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGNoYW5nZXNbJ2lubmVyJ10uY3VycmVudFZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIE1vZGVcclxuICAgICAgICBpZiAoJ21vZGUnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gR2V0IHRoZSBwcmV2aW91cyBhbmQgY3VycmVudCB2YWx1ZXNcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudE1vZGUgPSBjaGFuZ2VzWydtb2RlJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c01vZGUgPSBjaGFuZ2VzWydtb2RlJ10ucHJldmlvdXNWYWx1ZTtcclxuXHJcbiAgICAgICAgICAgIC8vIERpc2FibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZUFuaW1hdGlvbnMoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBtb2RlIGNoYW5nZXM6ICdvdmVyIC0+IHNpZGUnXHJcbiAgICAgICAgICAgIGlmIChwcmV2aW91c01vZGUgPT09ICdvdmVyJyAmJiBjdXJyZW50TW9kZSA9PT0gJ3NpZGUnKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBIaWRlIHRoZSBvdmVybGF5XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9oaWRlT3ZlcmxheSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgbW9kZSBjaGFuZ2VzOiAnc2lkZSAtPiBvdmVyJ1xyXG4gICAgICAgICAgICBpZiAocHJldmlvdXNNb2RlID09PSAnc2lkZScgJiYgY3VycmVudE1vZGUgPT09ICdvdmVyJykge1xyXG4gICAgICAgICAgICAgICAgLy8gQ2xvc2UgdGhlIGFzaWRlXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQXNpZGUoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbmF2aWdhdGlvbiBpcyBvcGVuZWRcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wZW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIFNob3cgdGhlIG92ZXJsYXlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaG93T3ZlcmxheSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgICAgICAgIHRoaXMubW9kZUNoYW5nZWQubmV4dChjdXJyZW50TW9kZSk7XHJcblxyXG4gICAgICAgICAgICAvLyBFbmFibGUgdGhlIGFuaW1hdGlvbnMgYWZ0ZXIgYSBkZWxheVxyXG4gICAgICAgICAgICAvLyBUaGUgZGVsYXkgbXVzdCBiZSBiaWdnZXIgdGhhbiB0aGUgY3VycmVudCB0cmFuc2l0aW9uLWR1cmF0aW9uXHJcbiAgICAgICAgICAgIC8vIHRvIG1ha2Ugc3VyZSBub3RoaW5nIHdpbGwgYmUgYW5pbWF0ZWQgd2hpbGUgdGhlIG1vZGUgY2hhbmdpbmdcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVBbmltYXRpb25zKCk7XHJcbiAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBOYXZpZ2F0aW9uXHJcbiAgICAgICAgaWYgKCduYXZpZ2F0aW9uJyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIC8vIE1hcmsgZm9yIGNoZWNrXHJcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gT3BlbmVkXHJcbiAgICAgICAgaWYgKCdvcGVuZWQnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgLy8gQ29lcmNlIHRoZSB2YWx1ZSB0byBhIGJvb2xlYW5cclxuICAgICAgICAgICAgdGhpcy5vcGVuZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoY2hhbmdlc1snb3BlbmVkJ10uY3VycmVudFZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIE9wZW4vY2xvc2UgdGhlIG5hdmlnYXRpb25cclxuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlT3BlbmVkKHRoaXMub3BlbmVkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFBvc2l0aW9uXHJcbiAgICAgICAgaWYgKCdwb3NpdGlvbicgaW4gY2hhbmdlcykge1xyXG4gICAgICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25DaGFuZ2VkLm5leHQoY2hhbmdlc1sncG9zaXRpb24nXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gVHJhbnNwYXJlbnQgb3ZlcmxheVxyXG4gICAgICAgIGlmICgndHJhbnNwYXJlbnRPdmVybGF5JyBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIC8vIENvZXJjZSB0aGUgdmFsdWUgdG8gYSBib29sZWFuXHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNwYXJlbnRPdmVybGF5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGNoYW5nZXNbJ3RyYW5zcGFyZW50T3ZlcmxheSddLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT24gaW5pdFxyXG4gICAgICovXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIG5hbWUgaW5wdXQgaXMgbm90IGFuIGVtcHR5IHN0cmluZ1xyXG4gICAgICAgIGlmICh0aGlzLm5hbWUgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmFtZSA9IHRoaXMuX2NtYXRVdGlsc1NlcnZpY2UucmFuZG9tSWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJlZ2lzdGVyIHRoZSBuYXZpZ2F0aW9uIGNvbXBvbmVudFxyXG4gICAgICAgIHRoaXMuX2NtYXROYXZpZ2F0aW9uU2VydmljZS5yZWdpc3RlckNvbXBvbmVudCh0aGlzLm5hbWUsIHRoaXMpO1xyXG5cclxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gdGhlICdOYXZpZ2F0aW9uRW5kJyBldmVudFxyXG4gICAgICAgIHRoaXMuX3JvdXRlci5ldmVudHNcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbW9kZSBpcyAnb3ZlcicgYW5kIHRoZSBuYXZpZ2F0aW9uIGlzIG9wZW5lZC4uLlxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ292ZXInICYmIHRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2xvc2UgdGhlIG5hdmlnYXRpb25cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG1vZGUgaXMgJ3NpZGUnIGFuZCB0aGUgYXNpZGUgaXMgYWN0aXZlLi4uXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnc2lkZScgJiYgdGhpcy5hY3RpdmVBc2lkZUl0ZW1JZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIENsb3NlIHRoZSBhc2lkZVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VBc2lkZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFmdGVyIHZpZXcgaW5pdFxyXG4gICAgICovXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBSZXR1cm4gaWYgJ25hdmlnYXRpb24gY29udGVudCcgZWxlbWVudCBkb2VzIG5vdCBleGlzdFxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX25hdmlnYXRpb25Db250ZW50RWwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgYWN0aXZlSXRlbSA9IHRoaXMuX25hdmlnYXRpb25Db250ZW50RWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWl0ZW0tYWN0aXZlJykhO1xyXG4gICAgICAgICAgICAvLyBJZiB0aGUgYWN0aXZlIGl0ZW0gZXhpc3RzLCBzY3JvbGwgaXQgaW50byB2aWV3XHJcbiAgICAgICAgICAgIGlmIChhY3RpdmVJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlSXRlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b21cclxuICAgICAgICAgICAgICAgICAgICA8PSAodGhpcy5fbmF2aWdhdGlvbkNvbnRlbnRFbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSAtIE1hdGguYWJzKC0xMjApKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG8oe1xyXG4gICAgICAgICAgICAgICAgICAgIHRvcDogYWN0aXZlSXRlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQ29udGVudEVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gMTIwLCBiZWhhdmlvcjogJ3Ntb290aCdcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT24gZGVzdHJveVxyXG4gICAgICovXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBGb3JjZWZ1bGx5IGNsb3NlIHRoZSBuYXZpZ2F0aW9uIGFuZCBhc2lkZSBpbiBjYXNlIHRoZXkgYXJlIG9wZW5lZFxyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLmNsb3NlQXNpZGUoKTtcclxuXHJcbiAgICAgICAgLy8gRGVyZWdpc3RlciB0aGUgbmF2aWdhdGlvbiBjb21wb25lbnQgZnJvbSB0aGUgcmVnaXN0cnlcclxuICAgICAgICB0aGlzLl9jbWF0TmF2aWdhdGlvblNlcnZpY2UuZGVyZWdpc3RlckNvbXBvbmVudCh0aGlzLm5hbWUpO1xyXG5cclxuICAgICAgICAvLyBVbnN1YnNjcmliZSBmcm9tIGFsbCBzdWJzY3JpcHRpb25zXHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwubmV4dCh2b2lkIDApO1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIEAgUHVibGljIG1ldGhvZHNcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWZyZXNoIHRoZSBjb21wb25lbnQgdG8gYXBwbHkgdGhlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcmVmcmVzaCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgICAgdGhpcy5vblJlZnJlc2hlZC5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3BlbiB0aGUgbmF2aWdhdGlvblxyXG4gICAgICovXHJcbiAgICBvcGVuKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFJldHVybiBpZiB0aGUgbmF2aWdhdGlvbiBpcyBhbHJlYWR5IG9wZW5cclxuICAgICAgICBpZiAodGhpcy5vcGVuZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSBvcGVuZWRcclxuICAgICAgICB0aGlzLl90b2dnbGVPcGVuZWQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbG9zZSB0aGUgbmF2aWdhdGlvblxyXG4gICAgICovXHJcbiAgICBjbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIG5hdmlnYXRpb24gaXMgYWxyZWFkeSBjbG9zZWRcclxuICAgICAgICBpZiAoIXRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENsb3NlIHRoZSBhc2lkZVxyXG4gICAgICAgIHRoaXMuY2xvc2VBc2lkZSgpO1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIG9wZW5lZFxyXG4gICAgICAgIHRoaXMuX3RvZ2dsZU9wZW5lZChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUb2dnbGUgdGhlIG5hdmlnYXRpb25cclxuICAgICAqL1xyXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFRvZ2dsZVxyXG4gICAgICAgIGlmICh0aGlzLm9wZW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcGVuIHRoZSBhc2lkZVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpdGVtXHJcbiAgICAgKi9cclxuICAgIG9wZW5Bc2lkZShpdGVtOiBDbWF0TmF2aWdhdGlvbkl0ZW0pOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIGl0ZW0gaXMgZGlzYWJsZWRcclxuICAgICAgICBpZiAoaXRlbS5kaXNhYmxlZCB8fCAhaXRlbS5pZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBPcGVuXHJcbiAgICAgICAgdGhpcy5hY3RpdmVBc2lkZUl0ZW1JZCA9IGl0ZW0uaWQ7XHJcblxyXG4gICAgICAgIC8vIFNob3cgdGhlIGFzaWRlIG92ZXJsYXlcclxuICAgICAgICB0aGlzLl9zaG93QXNpZGVPdmVybGF5KCk7XHJcblxyXG4gICAgICAgIC8vIE1hcmsgZm9yIGNoZWNrXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbG9zZSB0aGUgYXNpZGVcclxuICAgICAqL1xyXG4gICAgY2xvc2VBc2lkZSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBDbG9zZVxyXG4gICAgICAgIHRoaXMuYWN0aXZlQXNpZGVJdGVtSWQgPSBudWxsO1xyXG5cclxuICAgICAgICAvLyBIaWRlIHRoZSBhc2lkZSBvdmVybGF5XHJcbiAgICAgICAgdGhpcy5faGlkZUFzaWRlT3ZlcmxheSgpO1xyXG5cclxuICAgICAgICAvLyBNYXJrIGZvciBjaGVja1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVG9nZ2xlIHRoZSBhc2lkZVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpdGVtXHJcbiAgICAgKi9cclxuICAgIHRvZ2dsZUFzaWRlKGl0ZW06IENtYXROYXZpZ2F0aW9uSXRlbSk6IHZvaWQge1xyXG4gICAgICAgIC8vIFRvZ2dsZVxyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUFzaWRlSXRlbUlkID09PSBpdGVtLmlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VBc2lkZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5vcGVuQXNpZGUoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhY2sgYnkgZnVuY3Rpb24gZm9yIG5nRm9yIGxvb3BzXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKiBAcGFyYW0gaXRlbVxyXG4gICAgICovXHJcbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5pZCB8fCBpbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RJdGVtKGl0ZW06IENtYXROYXZpZ2F0aW9uSXRlbSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdFNlbGVjdGVkSXRlbUNoYW5nZWQubmV4dChpdGVtKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIC8vIEAgUHJpdmF0ZSBtZXRob2RzXHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW5hYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfZW5hYmxlQW5pbWF0aW9ucygpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlIGFuaW1hdGlvbnMgYXJlIGFscmVhZHkgZW5hYmxlZFxyXG4gICAgICAgIGlmICh0aGlzLl9hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBFbmFibGUgdGhlIGFuaW1hdGlvbnNcclxuICAgICAgICB0aGlzLl9hbmltYXRpb25zRW5hYmxlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXNhYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfZGlzYWJsZUFuaW1hdGlvbnMoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gUmV0dXJuIGlmIHRoZSBhbmltYXRpb25zIGFyZSBhbHJlYWR5IGRpc2FibGVkXHJcbiAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb25zXHJcbiAgICAgICAgdGhpcy5fYW5pbWF0aW9uc0VuYWJsZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgdGhlIG92ZXJsYXlcclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9zaG93T3ZlcmxheSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBvdmVybGF5XHJcbiAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlIG92ZXJsYXkgZWxlbWVudFxyXG4gICAgICAgIHRoaXMuX292ZXJsYXkgPSB0aGlzLl9yZW5kZXJlcjIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9vdmVybGF5KSB7XHJcbiAgICAgICAgICAgIC8vIEFkZCBhIGNsYXNzIHRvIHRoZSBvdmVybGF5IGVsZW1lbnRcclxuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tb3ZlcmxheScpO1xyXG5cclxuICAgICAgICAgICAgLy8gQWRkIGEgY2xhc3MgZGVwZW5kaW5nIG9uIHRoZSB0cmFuc3BhcmVudE92ZXJsYXkgb3B0aW9uXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zcGFyZW50T3ZlcmxheSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tb3ZlcmxheS10cmFuc3BhcmVudCcpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBBcHBlbmQgdGhlIG92ZXJsYXkgdG8gdGhlIHBhcmVudCBvZiB0aGUgbmF2aWdhdGlvblxyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcjIuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsIHRoaXMuX292ZXJsYXkpO1xyXG5cclxuICAgICAgICAgICAgLy8gRW5hYmxlIGJsb2NrIHNjcm9sbCBzdHJhdGVneVxyXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxTdHJhdGVneS5lbmFibGUoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgZW50ZXIgYW5pbWF0aW9uIGFuZCBhdHRhY2ggaXQgdG8gdGhlIHBsYXllclxyXG4gICAgICAgICAgICB0aGlzLl9wbGF5ZXIgPSB0aGlzLl9hbmltYXRpb25CdWlsZGVyLmJ1aWxkKFtcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKVxyXG4gICAgICAgICAgICBdKS5jcmVhdGUodGhpcy5fb3ZlcmxheSk7XHJcblxyXG4gICAgICAgICAgICAvLyBQbGF5IHRoZSBhbmltYXRpb25cclxuICAgICAgICAgICAgdGhpcy5fcGxheWVyLnBsYXkoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEFkZCBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgb3ZlcmxheVxyXG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlT3ZlcmxheUNsaWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIaWRlIHRoZSBvdmVybGF5XHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfaGlkZU92ZXJsYXkoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9vdmVybGF5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgbGVhdmUgYW5pbWF0aW9uIGFuZCBhdHRhY2ggaXQgdG8gdGhlIHBsYXllclxyXG4gICAgICAgIHRoaXMuX3BsYXllciA9IHRoaXMuX2FuaW1hdGlvbkJ1aWxkZXIuYnVpbGQoW1xyXG4gICAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSlcclxuICAgICAgICBdKS5jcmVhdGUodGhpcy5fb3ZlcmxheSk7XHJcblxyXG4gICAgICAgIC8vIFBsYXkgdGhlIGFuaW1hdGlvblxyXG4gICAgICAgIHRoaXMuX3BsYXllci5wbGF5KCk7XHJcblxyXG4gICAgICAgIC8vIE9uY2UgdGhlIGFuaW1hdGlvbiBpcyBkb25lLi4uXHJcbiAgICAgICAgdGhpcy5fcGxheWVyLm9uRG9uZSgoKSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBJZiB0aGUgb3ZlcmxheSBzdGlsbCBleGlzdHMuLi5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX292ZXJsYXkpIHtcclxuICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgZXZlbnQgbGlzdGVuZXJcclxuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJsYXkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYW5kbGVPdmVybGF5Q2xpY2spO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgb3ZlcmxheVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmxheS5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZCh0aGlzLl9vdmVybGF5KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJsYXkgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBEaXNhYmxlIGJsb2NrIHNjcm9sbCBzdHJhdGVneVxyXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxTdHJhdGVneS5kaXNhYmxlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93IHRoZSBhc2lkZSBvdmVybGF5XHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfc2hvd0FzaWRlT3ZlcmxheSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBSZXR1cm4gaWYgdGhlcmUgaXMgYWxyZWFkeSBhbiBvdmVybGF5XHJcbiAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBDcmVhdGUgdGhlIGFzaWRlIG92ZXJsYXkgZWxlbWVudFxyXG4gICAgICAgIHRoaXMuX2FzaWRlT3ZlcmxheSA9IHRoaXMuX3JlbmRlcmVyMi5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICAvLyBBZGQgYSBjbGFzcyB0byB0aGUgYXNpZGUgb3ZlcmxheSBlbGVtZW50XHJcbiAgICAgICAgICAgIHRoaXMuX2FzaWRlT3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tYXNpZGUtb3ZlcmxheScpO1xyXG5cclxuICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBhc2lkZSBvdmVybGF5IHRvIHRoZSBwYXJlbnQgb2YgdGhlIG5hdmlnYXRpb25cclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIyLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LCB0aGlzLl9hc2lkZU92ZXJsYXkpO1xyXG5cclxuICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBlbnRlciBhbmltYXRpb24gYW5kIGF0dGFjaCBpdCB0byB0aGUgcGxheWVyXHJcbiAgICAgICAgICAgIHRoaXMuX3BsYXllciA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hbmltYXRpb25CdWlsZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgLmJ1aWxkKFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZSgnMzAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXHJcbiAgICAgICAgICAgICAgICAgICAgXSkuY3JlYXRlKHRoaXMuX2FzaWRlT3ZlcmxheSk7XHJcblxyXG4gICAgICAgICAgICAvLyBQbGF5IHRoZSBhbmltYXRpb25cclxuICAgICAgICAgICAgdGhpcy5fcGxheWVyLnBsYXkoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIEFkZCBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgYXNpZGUgb3ZlcmxheVxyXG4gICAgICAgICAgICB0aGlzLl9hc2lkZU92ZXJsYXkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYW5kbGVBc2lkZU92ZXJsYXlDbGljayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGlkZSB0aGUgYXNpZGUgb3ZlcmxheVxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2hpZGVBc2lkZU92ZXJsYXkoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9hc2lkZU92ZXJsYXkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBsZWF2ZSBhbmltYXRpb24gYW5kIGF0dGFjaCBpdCB0byB0aGUgcGxheWVyXHJcbiAgICAgICAgdGhpcy5fcGxheWVyID1cclxuICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uQnVpbGRlclxyXG4gICAgICAgICAgICAgICAgLmJ1aWxkKFtcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSlcclxuICAgICAgICAgICAgICAgIF0pLmNyZWF0ZSh0aGlzLl9hc2lkZU92ZXJsYXkpO1xyXG5cclxuICAgICAgICAvLyBQbGF5IHRoZSBhbmltYXRpb25cclxuICAgICAgICB0aGlzLl9wbGF5ZXIucGxheSgpO1xyXG5cclxuICAgICAgICAvLyBPbmNlIHRoZSBhbmltYXRpb24gaXMgZG9uZS4uLlxyXG4gICAgICAgIHRoaXMuX3BsYXllci5vbkRvbmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBJZiB0aGUgYXNpZGUgb3ZlcmxheSBzdGlsbCBleGlzdHMuLi5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX2FzaWRlT3ZlcmxheSkge1xyXG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBldmVudCBsaXN0ZW5lclxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYXNpZGVPdmVybGF5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlQXNpZGVPdmVybGF5Q2xpY2spO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgYXNpZGUgb3ZlcmxheVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYXNpZGVPdmVybGF5LnBhcmVudE5vZGU/LnJlbW92ZUNoaWxkKHRoaXMuX2FzaWRlT3ZlcmxheSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hc2lkZU92ZXJsYXkgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcGVuL2Nsb3NlIHRoZSBuYXZpZ2F0aW9uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9wZW5cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3RvZ2dsZU9wZW5lZChvcGVuOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgLy8gU2V0IHRoZSBvcGVuZWRcclxuICAgICAgICB0aGlzLm9wZW5lZCA9IG9wZW47XHJcblxyXG4gICAgICAgIC8vIEVuYWJsZSB0aGUgYW5pbWF0aW9uc1xyXG4gICAgICAgIHRoaXMuX2VuYWJsZUFuaW1hdGlvbnMoKTtcclxuXHJcbiAgICAgICAgLy8gSWYgdGhlIG5hdmlnYXRpb24gb3BlbmVkLCBhbmQgdGhlIG1vZGVcclxuICAgICAgICAvLyBpcyAnb3ZlcicsIHNob3cgdGhlIG92ZXJsYXlcclxuICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnb3ZlcicpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93T3ZlcmxheSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faGlkZU92ZXJsYXkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICAgIHRoaXMub3BlbmVkQ2hhbmdlZC5uZXh0KG9wZW4pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24td3JhcHBlclwiPlxyXG5cclxuICA8IS0tIEhlYWRlciAtLT5cclxuICA8ZGl2IGNsYXNzPVwiY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWhlYWRlclwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NtYXRWZXJ0aWNhbE5hdmlnYXRpb25IZWFkZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIENvbnRlbnQgLS0+XHJcbiAgPGRpdiAjbmF2aWdhdGlvbkNvbnRlbnQgY2xhc3M9XCJjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tY29udGVudCBvdmVyZmxvdy15LWF1dG8gbGc6b3ZlcmZsb3cteS1oaWRkZW4gbGc6aG92ZXI6b3ZlcmZsb3cteS1hdXRvIHNjcm9sbGJhci1jdXN0b21cIj5cclxuXHJcbiAgICA8IS0tIENvbnRlbnQgaGVhZGVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1jb250ZW50LWhlYWRlclwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbnRlbnRIZWFkZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBJdGVtcyAtLT5cclxuICAgIEBmb3IgKGl0ZW0gb2YgbmF2aWdhdGlvbjsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCwgaXRlbSkpIHtcclxuICAgICAgPCEtLSBTa2lwIHRoZSBoaWRkZW4gaXRlbXMgLS0+XHJcbiAgICAgIEBpZiAoKGl0ZW0uaGlkZGVuICYmICFpdGVtLmhpZGRlbihpdGVtKSkgfHwgIWl0ZW0uaGlkZGVuKSB7XHJcbiAgICAgICAgPCEtLSBBc2lkZSAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2FzaWRlJykge1xyXG4gICAgICAgICAgPGNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hc2lkZS1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbbmFtZV09XCJuYW1lXCIgW2FjdGl2ZUl0ZW1JZF09XCJhY3RpdmVBc2lkZUl0ZW1JZFwiXHJcbiAgICAgICAgICAgIFthdXRvQ29sbGFwc2VdPVwiYXV0b0NvbGxhcHNlXCIgW3NraXBDaGlsZHJlbl09XCJ0cnVlXCIgW2VkaXRTdGF0ZV09XCJlZGl0U3RhdGVcIiAoY2xpY2spPVwidG9nZ2xlQXNpZGUoaXRlbSlcIiAoZWRpdFNlbGVjdGVkSXRlbUNoYW5nZWQpPVwic2VsZWN0SXRlbSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hc2lkZS1pdGVtPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIEJhc2ljIC0tPlxyXG4gICAgICAgIEBpZiAoaXRlbS50eXBlID09PSAnYmFzaWMnKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWJhc2ljLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtuYW1lXT1cIm5hbWVcIiBbZWRpdFN0YXRlXT1cImVkaXRTdGF0ZVwiIChlZGl0U2VsZWN0ZWRJdGVtQ2hhbmdlZCk9XCJzZWxlY3RJdGVtKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWJhc2ljLWl0ZW0+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gQ29sbGFwc2FibGUgLS0+XHJcbiAgICAgICAgQGlmIChpdGVtLnR5cGUgPT09ICdjb2xsYXBzYWJsZScpIHtcclxuICAgICAgICAgIDxjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tY29sbGFwc2FibGUtaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgW2F1dG9Db2xsYXBzZV09XCJhdXRvQ29sbGFwc2VcIlxyXG4gICAgICAgICAgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPjwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWNvbGxhcHNhYmxlLWl0ZW0+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwhLS0gRGl2aWRlciAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2RpdmlkZXInKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWRpdmlkZXItaXRlbSBbaXRlbV09XCJpdGVtXCIgW25hbWVdPVwibmFtZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9jbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tZGl2aWRlci1pdGVtPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIEdyb3VwIC0tPlxyXG4gICAgICAgIEBpZiAoaXRlbS50eXBlID09PSAnZ3JvdXAnKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWdyb3VwLWl0ZW0gW2l0ZW1dPVwiaXRlbVwiIFtuYW1lXT1cIm5hbWVcIiBbYXV0b0NvbGxhcHNlXT1cImF1dG9Db2xsYXBzZVwiIFtlZGl0U3RhdGVdPVwiZWRpdFN0YXRlXCIgKGVkaXRTZWxlY3RlZEl0ZW1DaGFuZ2VkKT1cInNlbGVjdEl0ZW0oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9jbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tZ3JvdXAtaXRlbT5cclxuICAgICAgICB9XHJcbiAgICAgICAgPCEtLSBTcGFjZXIgLS0+XHJcbiAgICAgICAgQGlmIChpdGVtLnR5cGUgPT09ICdzcGFjZXInKSB7XHJcbiAgICAgICAgICA8Y21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLXNwYWNlci1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbbmFtZV09XCJuYW1lXCIgW2VkaXRTdGF0ZV09XCJlZGl0U3RhdGVcIiAoZWRpdFNlbGVjdGVkSXRlbUNoYW5nZWQpPVwic2VsZWN0SXRlbSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2NtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1zcGFjZXItaXRlbT5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICA8IS0tIENvbnRlbnQgZm9vdGVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1jb250ZW50LWZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdFZlcnRpY2FsTmF2aWdhdGlvbkNvbnRlbnRGb290ZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gRm9vdGVyIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJjbWF0LXZlcnRpY2FsLW5hdmlnYXRpb24tZm9vdGVyXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY21hdFZlcnRpY2FsTmF2aWdhdGlvbkZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwhLS0gQXNpZGUgLS0+XHJcbkBpZiAoYWN0aXZlQXNpZGVJdGVtSWQpIHtcclxuICA8ZGl2IGNsYXNzPVwiY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWFzaWRlLXdyYXBwZXIgb3ZlcmZsb3cteS1hdXRvIGxnOm92ZXJmbG93LXktaGlkZGVuIGxnOmhvdmVyOm92ZXJmbG93LXktYXV0byBzY3JvbGxiYXItY3VzdG9tXCJcclxuICAgIFtAZmFkZUluTGVmdF09XCJwb3NpdGlvbiA9PT0gJ2xlZnQnXCIgW0BmYWRlSW5SaWdodF09XCJwb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiIFtAZmFkZU91dExlZnRdPVwicG9zaXRpb24gPT09ICdsZWZ0J1wiXHJcbiAgICBbQGZhZGVPdXRSaWdodF09XCJwb3NpdGlvbiA9PT0gJ3JpZ2h0J1wiPlxyXG4gICAgPCEtLSBJdGVtcyAtLT5cclxuICAgIEBmb3IgKGl0ZW0gb2YgbmF2aWdhdGlvbjsgdHJhY2sgdHJhY2tCeUZuKCRpbmRleCwgaXRlbSkpIHtcclxuICAgICAgPCEtLSBTa2lwIHRoZSBoaWRkZW4gaXRlbXMgLS0+XHJcbiAgICAgIEBpZiAoKGl0ZW0uaGlkZGVuICYmICFpdGVtLmhpZGRlbihpdGVtKSkgfHwgIWl0ZW0uaGlkZGVuKSB7XHJcbiAgICAgICAgPCEtLSBBc2lkZSAtLT5cclxuICAgICAgICBAaWYgKGl0ZW0udHlwZSA9PT0gJ2FzaWRlJyAmJiBpdGVtLmlkID09PSBhY3RpdmVBc2lkZUl0ZW1JZCkge1xyXG4gICAgICAgICAgPGNtYXQtdmVydGljYWwtbmF2aWdhdGlvbi1hc2lkZS1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbbmFtZV09XCJuYW1lXCIgW2F1dG9Db2xsYXBzZV09XCJhdXRvQ29sbGFwc2VcIj5cclxuICAgICAgICAgIDwvY21hdC12ZXJ0aWNhbC1uYXZpZ2F0aW9uLWFzaWRlLWl0ZW0+XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbn0iXX0=