@bizdoc/core 1.16.3 → 1.16.4

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 (1033) hide show
  1. package/bizdoc-core.d.ts.map +1 -0
  2. package/esm2020/lib/admin/admin-dismiss.service.mjs +6 -6
  3. package/esm2020/lib/admin/admin-menu.component.mjs +82 -9
  4. package/esm2020/lib/admin/configuration-designer/cube-axes-filter.component.mjs +248 -0
  5. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +192 -29
  6. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +37 -25
  7. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +152 -10
  8. package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +107 -10
  9. package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +447 -7
  10. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +441 -7
  11. package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +25 -7
  12. package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +25 -7
  13. package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +79 -7
  14. package/esm2020/lib/admin/configuration-designer/elements/cube-index-utility.component.mjs +71 -7
  15. package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +98 -7
  16. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +793 -10
  17. package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +52 -7
  18. package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +55 -10
  19. package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +73 -7
  20. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +275 -9
  21. package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +96 -10
  22. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +78 -7
  23. package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +293 -8
  24. package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +210 -8
  25. package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +74 -7
  26. package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +162 -8
  27. package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +58 -7
  28. package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +40 -7
  29. package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +70 -8
  30. package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +20 -7
  31. package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +63 -11
  32. package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +132 -8
  33. package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +101 -7
  34. package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +25 -7
  35. package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +205 -8
  36. package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +24 -7
  37. package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +22 -7
  38. package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +54 -7
  39. package/esm2020/lib/admin/configuration-designer/icon-picker.component.mjs +79 -30
  40. package/esm2020/lib/admin/core/ace.input.mjs +35 -29
  41. package/esm2020/lib/admin/core/color-picker.input.mjs +89 -36
  42. package/esm2020/lib/admin/core/search.input.mjs +23 -13
  43. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +90 -15
  44. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +296 -30
  45. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +63 -10
  46. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +238 -7
  47. package/esm2020/lib/admin/form/designer/designer.component.mjs +492 -10
  48. package/esm2020/lib/admin/form/form.resolve.service.mjs +6 -6
  49. package/esm2020/lib/admin/form/workflow/node.component.mjs +86 -15
  50. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +152 -13
  51. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +219 -18
  52. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +160 -13
  53. package/esm2020/lib/admin/patterns/patterns.component.mjs +280 -19
  54. package/esm2020/lib/admin/permissions/permissions.component.mjs +129 -13
  55. package/esm2020/lib/admin/positions/positions-popup.component.mjs +77 -13
  56. package/esm2020/lib/admin/positions/positions.component.mjs +605 -31
  57. package/esm2020/lib/admin/profiler/outofoffice.component.mjs +184 -16
  58. package/esm2020/lib/admin/profiler/profiler.component.mjs +268 -21
  59. package/esm2020/lib/admin/system.service.mjs +6 -6
  60. package/esm2020/lib/admin/utility-wrapper.component.mjs +9 -9
  61. package/esm2020/lib/admin/utility.pane.component.mjs +23 -15
  62. package/esm2020/lib/app.component.mjs +19 -19
  63. package/esm2020/lib/bizdoc.module.mjs +30 -29
  64. package/esm2020/lib/browse/browse-items.component.mjs +629 -40
  65. package/esm2020/lib/browse/browse.mobile.component.mjs +218 -13
  66. package/esm2020/lib/browse/browse.pane.component.mjs +214 -18
  67. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +161 -11
  68. package/esm2020/lib/browse/filter/filter.component.mjs +184 -27
  69. package/esm2020/lib/browse/folders-menu.component.mjs +74 -11
  70. package/esm2020/lib/chat/chat-info.mjs +10 -10
  71. package/esm2020/lib/chat/chat.mobile.component.mjs +32 -11
  72. package/esm2020/lib/chat/chat.service.mjs +7 -7
  73. package/esm2020/lib/chat/contacts.component.mjs +134 -15
  74. package/esm2020/lib/chat/contacts.pane.component.mjs +16 -12
  75. package/esm2020/lib/chat/conversation.component.mjs +128 -21
  76. package/esm2020/lib/chat/conversation.pane.component.mjs +13 -9
  77. package/esm2020/lib/compose/action/action-picker.component.mjs +107 -14
  78. package/esm2020/lib/compose/action/action.dialog.mjs +78 -13
  79. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +58 -12
  80. package/esm2020/lib/compose/action/assign-action.component.mjs +93 -10
  81. package/esm2020/lib/compose/action/moveto-action.component.mjs +110 -10
  82. package/esm2020/lib/compose/action/return-action.component.mjs +55 -7
  83. package/esm2020/lib/compose/attachments/attachments.component.mjs +140 -13
  84. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +147 -58
  85. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +9 -9
  86. package/esm2020/lib/compose/box/box.component.mjs +160 -7
  87. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +6 -6
  88. package/esm2020/lib/compose/comments/comment.component.mjs +189 -26
  89. package/esm2020/lib/compose/comments/comments.component.mjs +111 -22
  90. package/esm2020/lib/compose/comments/comments.pane.component.mjs +21 -12
  91. package/esm2020/lib/compose/comments/edit-comment.component.mjs +16 -10
  92. package/esm2020/lib/compose/comments/edits.component.mjs +47 -10
  93. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +37 -10
  94. package/esm2020/lib/compose/comments/votes.component.mjs +45 -10
  95. package/esm2020/lib/compose/compose-resolve.service.mjs +11 -11
  96. package/esm2020/lib/compose/compose.mobile.component.mjs +297 -19
  97. package/esm2020/lib/compose/compose.pane.component.mjs +336 -36
  98. package/esm2020/lib/compose/copy/copy.dialog.mjs +58 -7
  99. package/esm2020/lib/compose/dismiss.service.mjs +6 -6
  100. package/esm2020/lib/compose/document-resolver.service.mjs +6 -6
  101. package/esm2020/lib/compose/document.component.mjs +28 -12
  102. package/esm2020/lib/compose/document.mobile.component.mjs +13 -9
  103. package/esm2020/lib/compose/document.pane.component.mjs +13 -9
  104. package/esm2020/lib/compose/events/events.component.mjs +33 -9
  105. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +40 -7
  106. package/esm2020/lib/compose/form.component.mjs +119 -40
  107. package/esm2020/lib/compose/new-menu.component.mjs +45 -9
  108. package/esm2020/lib/compose/privilage.directive.mjs +31 -31
  109. package/esm2020/lib/compose/recipient-resolver.service.mjs +6 -6
  110. package/esm2020/lib/compose/state.component.mjs +9 -9
  111. package/esm2020/lib/compose/tag/tags.component.mjs +73 -16
  112. package/esm2020/lib/compose/trace/flow.component.mjs +13 -13
  113. package/esm2020/lib/compose/trace/people.component.mjs +23 -13
  114. package/esm2020/lib/compose/trace/trace.base.mjs +6 -6
  115. package/esm2020/lib/compose/trace/trace.component.mjs +306 -11
  116. package/esm2020/lib/compose/trace/trace.pane.component.mjs +31 -15
  117. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +14 -14
  118. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +64 -64
  119. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +66 -9
  120. package/esm2020/lib/core/NgComponentOutlet.mjs +18 -18
  121. package/esm2020/lib/core/account.service.mjs +7 -7
  122. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +7 -7
  123. package/esm2020/lib/core/avatar/avatar.component.mjs +43 -16
  124. package/esm2020/lib/core/component-factory-resolver.mjs +6 -6
  125. package/esm2020/lib/core/controls/address.input.mjs +74 -45
  126. package/esm2020/lib/core/controls/auto-complete.input.mjs +129 -65
  127. package/esm2020/lib/core/controls/combination-picker-body.mjs +156 -20
  128. package/esm2020/lib/core/controls/combination-picker.mjs +71 -52
  129. package/esm2020/lib/core/controls/combination-pool.mjs +76 -20
  130. package/esm2020/lib/core/controls/file.input.mjs +316 -51
  131. package/esm2020/lib/core/controls/select.input.mjs +115 -59
  132. package/esm2020/lib/core/controls/time-picker.mjs +49 -25
  133. package/esm2020/lib/core/controls/timespan.input.mjs +59 -37
  134. package/esm2020/lib/core/datasource.service.mjs +7 -7
  135. package/esm2020/lib/core/guide/guide.component.mjs +88 -19
  136. package/esm2020/lib/core/guide/guide.service.mjs +10 -10
  137. package/esm2020/lib/core/guide/help-tip.component.mjs +36 -14
  138. package/esm2020/lib/core/http.interceptor.mjs +12 -12
  139. package/esm2020/lib/core/hub.service.mjs +9 -9
  140. package/esm2020/lib/core/identity/identity.component.mjs +38 -16
  141. package/esm2020/lib/core/info/attachment-info.service.mjs +6 -6
  142. package/esm2020/lib/core/info/document-info.service.mjs +6 -6
  143. package/esm2020/lib/core/info/location-info.component.mjs +12 -12
  144. package/esm2020/lib/core/info/map-info.mjs +6 -6
  145. package/esm2020/lib/core/layout/autocomplete.field.mjs +66 -22
  146. package/esm2020/lib/core/layout/checkbox.field.mjs +56 -18
  147. package/esm2020/lib/core/layout/checkbox.mjs +33 -19
  148. package/esm2020/lib/core/layout/date-range.field.mjs +47 -22
  149. package/esm2020/lib/core/layout/date.field.mjs +67 -23
  150. package/esm2020/lib/core/layout/expression.field.mjs +66 -24
  151. package/esm2020/lib/core/layout/file.field.mjs +64 -20
  152. package/esm2020/lib/core/layout/html.field.mjs +60 -18
  153. package/esm2020/lib/core/layout/input.base.mjs +6 -6
  154. package/esm2020/lib/core/layout/input.field.mjs +64 -20
  155. package/esm2020/lib/core/layout/layout.component.mjs +34 -26
  156. package/esm2020/lib/core/layout/numeric.field.mjs +72 -21
  157. package/esm2020/lib/core/layout/select.field.mjs +100 -33
  158. package/esm2020/lib/core/layout/switch.field.mjs +56 -18
  159. package/esm2020/lib/core/layout/textarea.field.mjs +60 -18
  160. package/esm2020/lib/core/layout/timespan.field.mjs +67 -22
  161. package/esm2020/lib/core/lottie-animation.mjs +22 -20
  162. package/esm2020/lib/core/mailbox.service.mjs +7 -7
  163. package/esm2020/lib/core/models.mjs +1 -1
  164. package/esm2020/lib/core/none.component.mjs +39 -17
  165. package/esm2020/lib/core/pipes/action.pipe.mjs +7 -7
  166. package/esm2020/lib/core/pipes/calendar.pipe.mjs +10 -10
  167. package/esm2020/lib/core/pipes/date-format.pipe.mjs +7 -7
  168. package/esm2020/lib/core/pipes/daterange.pipe.mjs +13 -13
  169. package/esm2020/lib/core/pipes/difference.pipe.mjs +7 -7
  170. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +7 -7
  171. package/esm2020/lib/core/pipes/duration.pipe.mjs +7 -7
  172. package/esm2020/lib/core/pipes/form.pipe.mjs +7 -7
  173. package/esm2020/lib/core/pipes/join.pipe.mjs +7 -7
  174. package/esm2020/lib/core/pipes/role.pipe.mjs +7 -7
  175. package/esm2020/lib/core/pipes/sort.pipe.mjs +17 -17
  176. package/esm2020/lib/core/pipes/state.pipe.mjs +7 -7
  177. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +10 -10
  178. package/esm2020/lib/core/pipes/type-value.pipe.mjs +9 -9
  179. package/esm2020/lib/core/pipes/user-name.pipe.mjs +7 -7
  180. package/esm2020/lib/core/popup/popup.component.mjs +26 -13
  181. package/esm2020/lib/core/popup/popup.service.mjs +7 -7
  182. package/esm2020/lib/core/popup/tooltip.directive.mjs +34 -34
  183. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +34 -10
  184. package/esm2020/lib/core/prompt/mask/mask.component.mjs +18 -10
  185. package/esm2020/lib/core/prompt.service.mjs +7 -7
  186. package/esm2020/lib/core/router.mjs +11 -11
  187. package/esm2020/lib/core/save-changes.dialog.mjs +43 -7
  188. package/esm2020/lib/core/session.service.mjs +10 -10
  189. package/esm2020/lib/core/slots/router.directive.mjs +29 -27
  190. package/esm2020/lib/core/slots/router.service.mjs +7 -7
  191. package/esm2020/lib/core/slots/slots.component.mjs +296 -41
  192. package/esm2020/lib/core/tagging/documents.component.mjs +33 -7
  193. package/esm2020/lib/core/tagging/edit-input.component.mjs +141 -38
  194. package/esm2020/lib/core/tagging/emoji.component.mjs +15 -12
  195. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +31 -23
  196. package/esm2020/lib/core/tagging/tagging.component-base.mjs +14 -9
  197. package/esm2020/lib/core/tagging/tagging.directive.mjs +23 -21
  198. package/esm2020/lib/core/tagging/tagging.pipe.mjs +7 -7
  199. package/esm2020/lib/core/tagging/users.component.mjs +37 -7
  200. package/esm2020/lib/core/translate.service.mjs +7 -7
  201. package/esm2020/lib/core/translations.mjs +4 -1
  202. package/esm2020/lib/core/window-title.service.mjs +10 -10
  203. package/esm2020/lib/cube/accum/accum.component.mjs +41 -39
  204. package/esm2020/lib/cube/chart/chart.component.mjs +47 -45
  205. package/esm2020/lib/cube/cube-info.service.mjs +6 -6
  206. package/esm2020/lib/cube/cube-menu.component.mjs +70 -11
  207. package/esm2020/lib/cube/cube-view.component.mjs +34 -32
  208. package/esm2020/lib/cube/cube.service.mjs +10 -10
  209. package/esm2020/lib/cube/explore/document-item.component.mjs +15 -11
  210. package/esm2020/lib/cube/explore/explore-item.component.mjs +11 -11
  211. package/esm2020/lib/cube/explore/explore-items.component.mjs +167 -37
  212. package/esm2020/lib/cube/explore/explore.pane.component.mjs +65 -12
  213. package/esm2020/lib/cube/explore/item-resolver.service.mjs +11 -11
  214. package/esm2020/lib/cube/explore/item.pane.component.mjs +13 -9
  215. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +59 -15
  216. package/esm2020/lib/cube/filter/filter.component.mjs +153 -17
  217. package/esm2020/lib/cube/grid/grid.component.mjs +33 -31
  218. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +39 -37
  219. package/esm2020/lib/cube/matrix/matrix.base.mjs +6 -6
  220. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +112 -10
  221. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +123 -12
  222. package/esm2020/lib/cube/matrix/popup.component.mjs +120 -16
  223. package/esm2020/lib/cube/matrix/table.component.mjs +178 -45
  224. package/esm2020/lib/cube/parallel/parallel.component.mjs +57 -28
  225. package/esm2020/lib/cube/pivot/pivot.component.mjs +43 -40
  226. package/esm2020/lib/cube/sum/sum.component.mjs +238 -32
  227. package/esm2020/lib/cube/view-base.mjs +6 -6
  228. package/esm2020/lib/cube/view.mobile.component.mjs +177 -19
  229. package/esm2020/lib/cube/view.pane.component.mjs +109 -15
  230. package/esm2020/lib/dashboard/actions/actions.widget.mjs +28 -21
  231. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +17 -15
  232. package/esm2020/lib/dashboard/cube/compare.widget.mjs +25 -18
  233. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +6 -6
  234. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +10 -10
  235. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +17 -15
  236. package/esm2020/lib/dashboard/cube/documents.widget.mjs +114 -19
  237. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +13 -7
  238. package/esm2020/lib/dashboard/dashboard.component.mjs +90 -12
  239. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +9 -7
  240. package/esm2020/lib/dashboard/recents/recents.widget.mjs +164 -19
  241. package/esm2020/lib/dashboard/score/activity.widget.mjs +18 -13
  242. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +25 -18
  243. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +26 -19
  244. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +143 -19
  245. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +23 -18
  246. package/esm2020/lib/dashboard/widget-item.component.mjs +17 -15
  247. package/esm2020/lib/desktop.module.mjs +58 -57
  248. package/esm2020/lib/home/about/about.dialog.mjs +97 -7
  249. package/esm2020/lib/home/home-base.component.mjs +6 -6
  250. package/esm2020/lib/home/home.desktop.component.mjs +336 -16
  251. package/esm2020/lib/home/home.mobile.component.mjs +310 -16
  252. package/esm2020/lib/home/notifications/notifications.component.mjs +78 -7
  253. package/esm2020/lib/home/options/options.component.mjs +171 -7
  254. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +40 -10
  255. package/esm2020/lib/home/search.service.mjs +6 -6
  256. package/esm2020/lib/home/sign/sign.component.mjs +32 -7
  257. package/esm2020/lib/home/tools.component.mjs +87 -13
  258. package/esm2020/lib/impersonate/impersonate.component.mjs +61 -7
  259. package/esm2020/lib/mobile.module.mjs +34 -33
  260. package/esm2020/lib/modules/chart.module.mjs +22 -21
  261. package/esm2020/lib/modules/circular-gauge.module.mjs +13 -12
  262. package/esm2020/lib/modules/datepicker.intl.mjs +6 -6
  263. package/esm2020/lib/modules/dayjs.module.mjs +11 -11
  264. package/esm2020/lib/modules/diagram.module.mjs +24 -23
  265. package/esm2020/lib/modules/gantt.module.mjs +13 -12
  266. package/esm2020/lib/modules/grid.module.mjs +16 -15
  267. package/esm2020/lib/modules/material.module.mjs +87 -86
  268. package/esm2020/lib/modules/paginator.intl.mjs +6 -6
  269. package/esm2020/lib/modules/pivot.module.mjs +17 -16
  270. package/esm2020/lib/modules/schedule.module.mjs +15 -14
  271. package/esm2020/lib/modules/spreadsheet.module.mjs +21 -20
  272. package/esm2020/lib/modules/stepper.intl.mjs +6 -6
  273. package/esm2020/lib/modules/texteditor.module.mjs +19 -18
  274. package/esm2020/lib/notifications/filter.component.mjs +22 -7
  275. package/esm2020/lib/notifications/notifications-table.component.mjs +214 -10
  276. package/esm2020/lib/notifications/notifications.mobile.component.mjs +11 -9
  277. package/esm2020/lib/notifications/notifications.pane.component.mjs +14 -12
  278. package/esm2020/lib/notifications/notifications.service.mjs +6 -6
  279. package/esm2020/lib/notifications/types/commented.notification.mjs +42 -15
  280. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +25 -15
  281. package/esm2020/lib/notifications/types/escalated.notification.mjs +24 -12
  282. package/esm2020/lib/notifications/types/liked.notification.mjs +42 -15
  283. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +17 -13
  284. package/esm2020/lib/notifications/types/notification-base.mjs +11 -9
  285. package/esm2020/lib/notifications/types/nudge.notification.mjs +18 -12
  286. package/esm2020/lib/notifications/types/state-changed.notification.mjs +18 -10
  287. package/esm2020/lib/notifications/types/tagged.notification.mjs +26 -14
  288. package/esm2020/lib/notifications/types/text.notification.mjs +14 -10
  289. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +24 -15
  290. package/esm2020/lib/options/options.component.mjs +350 -25
  291. package/esm2020/lib/options/options.service.mjs +6 -6
  292. package/esm2020/lib/reports/arguments-component.mjs +20 -20
  293. package/esm2020/lib/reports/cube/documents.component.mjs +9 -9
  294. package/esm2020/lib/reports/cube/grid-documents.component.mjs +77 -10
  295. package/esm2020/lib/reports/cube/table-documents.component.mjs +175 -13
  296. package/esm2020/lib/reports/cube/usage-args.component.mjs +13 -7
  297. package/esm2020/lib/reports/cube/usage-base.mjs +6 -6
  298. package/esm2020/lib/reports/cube/usage-chart.component.mjs +15 -13
  299. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +21 -14
  300. package/esm2020/lib/reports/cube/usage.component.mjs +9 -9
  301. package/esm2020/lib/reports/report-viewer.component.mjs +36 -20
  302. package/esm2020/lib/reports/report.mobile.component.mjs +105 -13
  303. package/esm2020/lib/reports/report.pane.component.mjs +92 -15
  304. package/esm2020/lib/reports/reports-menu.component.mjs +40 -11
  305. package/esm2020/lib/reports/substitution/substitution.component.mjs +157 -10
  306. package/esm2020/lib/reports/table/table-view.component.mjs +74 -16
  307. package/esm2020/lib/reports/tasks/tasks.component.mjs +38 -10
  308. package/esm2020/lib/scheduler/schedule.component.mjs +110 -14
  309. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +15 -9
  310. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +19 -12
  311. package/esm2020/lib/shared.module.mjs +197 -196
  312. package/esm2020/lib/system.module.mjs +64 -62
  313. package/esm2020/lib/views/cube/chart.component.mjs +45 -7
  314. package/esm2020/lib/views/cube/cube-base.mjs +6 -6
  315. package/esm2020/lib/views/cube/explore.component.mjs +128 -7
  316. package/esm2020/lib/views/cube/matrix.component.mjs +164 -10
  317. package/esm2020/lib/views/cube/parallel.component.mjs +20 -7
  318. package/esm2020/lib/views/cube/pivot.component.mjs +20 -7
  319. package/esm2020/lib/views/cube/sum.component.mjs +116 -7
  320. package/esm2020/lib/views/cube/view.component.mjs +137 -10
  321. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +14 -12
  322. package/esm2020/lib/views/view-item.component.mjs +20 -18
  323. package/esm2020/lib/views/views.component.mjs +31 -12
  324. package/esm2020/lib/views/views.mobile.component.mjs +11 -7
  325. package/esm2020/lib/views/views.pane.component.mjs +19 -10
  326. package/fesm2015/bizdoc-core.mjs +25737 -2457
  327. package/fesm2015/bizdoc-core.mjs.map +1 -1
  328. package/fesm2020/bizdoc-core.mjs +24051 -5129
  329. package/fesm2020/bizdoc-core.mjs.map +1 -1
  330. package/index.d.ts +1 -0
  331. package/lib/admin/admin-dismiss.service.d.ts +1 -0
  332. package/lib/admin/admin-dismiss.service.d.ts.map +1 -0
  333. package/lib/admin/admin-menu.component.d.ts +1 -0
  334. package/lib/admin/admin-menu.component.d.ts.map +1 -0
  335. package/lib/admin/configuration-designer/cube-axes-filter.component.d.ts +36 -0
  336. package/lib/admin/configuration-designer/cube-axes-filter.component.d.ts.map +1 -0
  337. package/lib/admin/configuration-designer/designer-element.component.d.ts +6 -2
  338. package/lib/admin/configuration-designer/designer-element.component.d.ts.map +1 -0
  339. package/lib/admin/configuration-designer/designer.base.d.ts +25 -3
  340. package/lib/admin/configuration-designer/designer.base.d.ts.map +1 -0
  341. package/lib/admin/configuration-designer/designer.component.d.ts +1 -0
  342. package/lib/admin/configuration-designer/designer.component.d.ts.map +1 -0
  343. package/lib/admin/configuration-designer/elements/action.component.d.ts +16 -1
  344. package/lib/admin/configuration-designer/elements/action.component.d.ts.map +1 -0
  345. package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts +1 -0
  346. package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts.map +1 -0
  347. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts +1 -0
  348. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts.map +1 -0
  349. package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts +1 -0
  350. package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts.map +1 -0
  351. package/lib/admin/configuration-designer/elements/box-form.component.d.ts +1 -0
  352. package/lib/admin/configuration-designer/elements/box-form.component.d.ts.map +1 -0
  353. package/lib/admin/configuration-designer/elements/configuration-datasource.component.d.ts +1 -0
  354. package/lib/admin/configuration-designer/elements/configuration-datasource.component.d.ts.map +1 -0
  355. package/lib/admin/configuration-designer/elements/cube-index-utility.component.d.ts +1 -0
  356. package/lib/admin/configuration-designer/elements/cube-index-utility.component.d.ts.map +1 -0
  357. package/lib/admin/configuration-designer/elements/cube-view.component.d.ts +1 -0
  358. package/lib/admin/configuration-designer/elements/cube-view.component.d.ts.map +1 -0
  359. package/lib/admin/configuration-designer/elements/cube.component.d.ts +1 -0
  360. package/lib/admin/configuration-designer/elements/cube.component.d.ts.map +1 -0
  361. package/lib/admin/configuration-designer/elements/documents-report.component.d.ts +1 -0
  362. package/lib/admin/configuration-designer/elements/documents-report.component.d.ts.map +1 -0
  363. package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts +1 -0
  364. package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts.map +1 -0
  365. package/lib/admin/configuration-designer/elements/explore-view.component.d.ts +1 -0
  366. package/lib/admin/configuration-designer/elements/explore-view.component.d.ts.map +1 -0
  367. package/lib/admin/configuration-designer/elements/folder.component.d.ts +13 -1
  368. package/lib/admin/configuration-designer/elements/folder.component.d.ts.map +1 -0
  369. package/lib/admin/configuration-designer/elements/form.component.d.ts +1 -0
  370. package/lib/admin/configuration-designer/elements/form.component.d.ts.map +1 -0
  371. package/lib/admin/configuration-designer/elements/guide.component.d.ts +1 -0
  372. package/lib/admin/configuration-designer/elements/guide.component.d.ts.map +1 -0
  373. package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts +1 -0
  374. package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts.map +1 -0
  375. package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts +1 -0
  376. package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts.map +1 -0
  377. package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts +1 -0
  378. package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts.map +1 -0
  379. package/lib/admin/configuration-designer/elements/pivot-view.component.d.ts +1 -0
  380. package/lib/admin/configuration-designer/elements/pivot-view.component.d.ts.map +1 -0
  381. package/lib/admin/configuration-designer/elements/report.component.d.ts +1 -0
  382. package/lib/admin/configuration-designer/elements/report.component.d.ts.map +1 -0
  383. package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts +1 -0
  384. package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts.map +1 -0
  385. package/lib/admin/configuration-designer/elements/role.component.d.ts +3 -0
  386. package/lib/admin/configuration-designer/elements/role.component.d.ts.map +1 -0
  387. package/lib/admin/configuration-designer/elements/rule.component.d.ts +1 -0
  388. package/lib/admin/configuration-designer/elements/rule.component.d.ts.map +1 -0
  389. package/lib/admin/configuration-designer/elements/state.component.d.ts +5 -0
  390. package/lib/admin/configuration-designer/elements/state.component.d.ts.map +1 -0
  391. package/lib/admin/configuration-designer/elements/sum-view.component.d.ts +1 -0
  392. package/lib/admin/configuration-designer/elements/sum-view.component.d.ts.map +1 -0
  393. package/lib/admin/configuration-designer/elements/tasks-report.component.d.ts +1 -0
  394. package/lib/admin/configuration-designer/elements/tasks-report.component.d.ts.map +1 -0
  395. package/lib/admin/configuration-designer/elements/type.component.d.ts +1 -0
  396. package/lib/admin/configuration-designer/elements/type.component.d.ts.map +1 -0
  397. package/lib/admin/configuration-designer/elements/usage-report.component.d.ts +1 -0
  398. package/lib/admin/configuration-designer/elements/usage-report.component.d.ts.map +1 -0
  399. package/lib/admin/configuration-designer/elements/utility.component.d.ts +1 -0
  400. package/lib/admin/configuration-designer/elements/utility.component.d.ts.map +1 -0
  401. package/lib/admin/configuration-designer/elements/view.component.d.ts +1 -0
  402. package/lib/admin/configuration-designer/elements/view.component.d.ts.map +1 -0
  403. package/lib/admin/configuration-designer/elements/widget.component.d.ts +1 -0
  404. package/lib/admin/configuration-designer/elements/widget.component.d.ts.map +1 -0
  405. package/lib/admin/configuration-designer/icon-picker.component.d.ts +1 -0
  406. package/lib/admin/configuration-designer/icon-picker.component.d.ts.map +1 -0
  407. package/lib/admin/core/ace.input.d.ts +1 -0
  408. package/lib/admin/core/ace.input.d.ts.map +1 -0
  409. package/lib/admin/core/color-picker.input.d.ts +1 -0
  410. package/lib/admin/core/color-picker.input.d.ts.map +1 -0
  411. package/lib/admin/core/search.input.d.ts +1 -0
  412. package/lib/admin/core/search.input.d.ts.map +1 -0
  413. package/lib/admin/diff/configuration-diff.component.d.ts +1 -0
  414. package/lib/admin/diff/configuration-diff.component.d.ts.map +1 -0
  415. package/lib/admin/document-trace/document-trace.component.d.ts +1 -0
  416. package/lib/admin/document-trace/document-trace.component.d.ts.map +1 -0
  417. package/lib/admin/document-trace/reassign.dialog.d.ts +1 -0
  418. package/lib/admin/document-trace/reassign.dialog.d.ts.map +1 -0
  419. package/lib/admin/document-trace/timeline.d.ts +1 -0
  420. package/lib/admin/document-trace/timeline.d.ts.map +1 -0
  421. package/lib/admin/document-trace/trace-element.component.d.ts +1 -0
  422. package/lib/admin/document-trace/trace-element.component.d.ts.map +1 -0
  423. package/lib/admin/form/designer/designer.component.d.ts +1 -0
  424. package/lib/admin/form/designer/designer.component.d.ts.map +1 -0
  425. package/lib/admin/form/form.resolve.service.d.ts +1 -0
  426. package/lib/admin/form/form.resolve.service.d.ts.map +1 -0
  427. package/lib/admin/form/workflow/node-ref.d.ts +1 -0
  428. package/lib/admin/form/workflow/node-ref.d.ts.map +1 -0
  429. package/lib/admin/form/workflow/node.component.d.ts +1 -0
  430. package/lib/admin/form/workflow/node.component.d.ts.map +1 -0
  431. package/lib/admin/form/workflow/role-node.component.d.ts +1 -0
  432. package/lib/admin/form/workflow/role-node.component.d.ts.map +1 -0
  433. package/lib/admin/form/workflow/workflow.component.d.ts +1 -0
  434. package/lib/admin/form/workflow/workflow.component.d.ts.map +1 -0
  435. package/lib/admin/indices/manage-cube-index.component.d.ts +1 -0
  436. package/lib/admin/indices/manage-cube-index.component.d.ts.map +1 -0
  437. package/lib/admin/patterns/patterns.component.d.ts +1 -0
  438. package/lib/admin/patterns/patterns.component.d.ts.map +1 -0
  439. package/lib/admin/permissions/permissions.component.d.ts +1 -0
  440. package/lib/admin/permissions/permissions.component.d.ts.map +1 -0
  441. package/lib/admin/positions/positions-popup.component.d.ts +1 -0
  442. package/lib/admin/positions/positions-popup.component.d.ts.map +1 -0
  443. package/lib/admin/positions/positions.component.d.ts +1 -0
  444. package/lib/admin/positions/positions.component.d.ts.map +1 -0
  445. package/lib/admin/profiler/outofoffice.component.d.ts +1 -0
  446. package/lib/admin/profiler/outofoffice.component.d.ts.map +1 -0
  447. package/lib/admin/profiler/profiler.component.d.ts +1 -0
  448. package/lib/admin/profiler/profiler.component.d.ts.map +1 -0
  449. package/lib/admin/system.service.d.ts +1 -0
  450. package/lib/admin/system.service.d.ts.map +1 -0
  451. package/lib/admin/utility-ref.d.ts +1 -0
  452. package/lib/admin/utility-ref.d.ts.map +1 -0
  453. package/lib/admin/utility-wrapper.component.d.ts +1 -0
  454. package/lib/admin/utility-wrapper.component.d.ts.map +1 -0
  455. package/lib/admin/utility.pane.component.d.ts +1 -0
  456. package/lib/admin/utility.pane.component.d.ts.map +1 -0
  457. package/lib/app.component.d.ts +1 -0
  458. package/lib/app.component.d.ts.map +1 -0
  459. package/lib/bizdoc.module.d.ts +1 -0
  460. package/lib/bizdoc.module.d.ts.map +1 -0
  461. package/lib/browse/browse-items.component.d.ts +1 -0
  462. package/lib/browse/browse-items.component.d.ts.map +1 -0
  463. package/lib/browse/browse.mobile.component.d.ts +1 -0
  464. package/lib/browse/browse.mobile.component.d.ts.map +1 -0
  465. package/lib/browse/browse.pane.component.d.ts +1 -0
  466. package/lib/browse/browse.pane.component.d.ts.map +1 -0
  467. package/lib/browse/expanded-item/expanded-item.component.d.ts +1 -0
  468. package/lib/browse/expanded-item/expanded-item.component.d.ts.map +1 -0
  469. package/lib/browse/filter/filter.component.d.ts +1 -0
  470. package/lib/browse/filter/filter.component.d.ts.map +1 -0
  471. package/lib/browse/folders-menu.component.d.ts +1 -0
  472. package/lib/browse/folders-menu.component.d.ts.map +1 -0
  473. package/lib/chat/chat-info.d.ts +1 -0
  474. package/lib/chat/chat-info.d.ts.map +1 -0
  475. package/lib/chat/chat.mobile.component.d.ts +1 -0
  476. package/lib/chat/chat.mobile.component.d.ts.map +1 -0
  477. package/lib/chat/chat.service.d.ts +1 -0
  478. package/lib/chat/chat.service.d.ts.map +1 -0
  479. package/lib/chat/contacts.component.d.ts +1 -0
  480. package/lib/chat/contacts.component.d.ts.map +1 -0
  481. package/lib/chat/contacts.pane.component.d.ts +1 -0
  482. package/lib/chat/contacts.pane.component.d.ts.map +1 -0
  483. package/lib/chat/conversation.component.d.ts +1 -0
  484. package/lib/chat/conversation.component.d.ts.map +1 -0
  485. package/lib/chat/conversation.pane.component.d.ts +1 -0
  486. package/lib/chat/conversation.pane.component.d.ts.map +1 -0
  487. package/lib/compose/action/action-picker.component.d.ts +1 -0
  488. package/lib/compose/action/action-picker.component.d.ts.map +1 -0
  489. package/lib/compose/action/action-ref.d.ts +1 -0
  490. package/lib/compose/action/action-ref.d.ts.map +1 -0
  491. package/lib/compose/action/action.base.d.ts +1 -0
  492. package/lib/compose/action/action.base.d.ts.map +1 -0
  493. package/lib/compose/action/action.dialog.d.ts +1 -0
  494. package/lib/compose/action/action.dialog.d.ts.map +1 -0
  495. package/lib/compose/action/action.pane.dialog.exp.d.ts +1 -0
  496. package/lib/compose/action/action.pane.dialog.exp.d.ts.map +1 -0
  497. package/lib/compose/action/assign-action.component.d.ts +1 -0
  498. package/lib/compose/action/assign-action.component.d.ts.map +1 -0
  499. package/lib/compose/action/moveto-action.component.d.ts +1 -0
  500. package/lib/compose/action/moveto-action.component.d.ts.map +1 -0
  501. package/lib/compose/action/return-action.component.d.ts +1 -0
  502. package/lib/compose/action/return-action.component.d.ts.map +1 -0
  503. package/lib/compose/attachments/attachments.component.d.ts +1 -0
  504. package/lib/compose/attachments/attachments.component.d.ts.map +1 -0
  505. package/lib/compose/attachments/preview/attachment-preview.component.d.ts +1 -0
  506. package/lib/compose/attachments/preview/attachment-preview.component.d.ts.map +1 -0
  507. package/lib/compose/attachments/progress-button.directive.d.ts +1 -0
  508. package/lib/compose/attachments/progress-button.directive.d.ts.map +1 -0
  509. package/lib/compose/box/box.component.d.ts +1 -0
  510. package/lib/compose/box/box.component.d.ts.map +1 -0
  511. package/lib/compose/can-deactivate-changes.service.d.ts +1 -0
  512. package/lib/compose/can-deactivate-changes.service.d.ts.map +1 -0
  513. package/lib/compose/comments/comment.component.d.ts +1 -0
  514. package/lib/compose/comments/comment.component.d.ts.map +1 -0
  515. package/lib/compose/comments/comments.component.d.ts +1 -0
  516. package/lib/compose/comments/comments.component.d.ts.map +1 -0
  517. package/lib/compose/comments/comments.pane.component.d.ts +1 -0
  518. package/lib/compose/comments/comments.pane.component.d.ts.map +1 -0
  519. package/lib/compose/comments/edit-comment.component.d.ts +1 -0
  520. package/lib/compose/comments/edit-comment.component.d.ts.map +1 -0
  521. package/lib/compose/comments/edits.component.d.ts +1 -0
  522. package/lib/compose/comments/edits.component.d.ts.map +1 -0
  523. package/lib/compose/comments/quick-comment.component.exp.d.ts +1 -0
  524. package/lib/compose/comments/quick-comment.component.exp.d.ts.map +1 -0
  525. package/lib/compose/comments/votes.component.d.ts +1 -0
  526. package/lib/compose/comments/votes.component.d.ts.map +1 -0
  527. package/lib/compose/compose-resolve.service.d.ts +1 -0
  528. package/lib/compose/compose-resolve.service.d.ts.map +1 -0
  529. package/lib/compose/compose.mobile.component.d.ts +1 -0
  530. package/lib/compose/compose.mobile.component.d.ts.map +1 -0
  531. package/lib/compose/compose.pane.component.d.ts +1 -0
  532. package/lib/compose/compose.pane.component.d.ts.map +1 -0
  533. package/lib/compose/copy/copy.dialog.d.ts +1 -0
  534. package/lib/compose/copy/copy.dialog.d.ts.map +1 -0
  535. package/lib/compose/dismiss.service.d.ts +1 -0
  536. package/lib/compose/dismiss.service.d.ts.map +1 -0
  537. package/lib/compose/document-resolver.service.d.ts +1 -0
  538. package/lib/compose/document-resolver.service.d.ts.map +1 -0
  539. package/lib/compose/document.component.d.ts +1 -0
  540. package/lib/compose/document.component.d.ts.map +1 -0
  541. package/lib/compose/document.mobile.component.d.ts +1 -0
  542. package/lib/compose/document.mobile.component.d.ts.map +1 -0
  543. package/lib/compose/document.pane.component.d.ts +1 -0
  544. package/lib/compose/document.pane.component.d.ts.map +1 -0
  545. package/lib/compose/events/events.component.d.ts +1 -0
  546. package/lib/compose/events/events.component.d.ts.map +1 -0
  547. package/lib/compose/form-ref.d.ts +1 -0
  548. package/lib/compose/form-ref.d.ts.map +1 -0
  549. package/lib/compose/form-selector/form-selector.sheet.d.ts +1 -0
  550. package/lib/compose/form-selector/form-selector.sheet.d.ts.map +1 -0
  551. package/lib/compose/form.component.d.ts +1 -0
  552. package/lib/compose/form.component.d.ts.map +1 -0
  553. package/lib/compose/new-menu.component.d.ts +1 -0
  554. package/lib/compose/new-menu.component.d.ts.map +1 -0
  555. package/lib/compose/privilage.directive.d.ts +1 -0
  556. package/lib/compose/privilage.directive.d.ts.map +1 -0
  557. package/lib/compose/recipient-resolver.service.d.ts +1 -0
  558. package/lib/compose/recipient-resolver.service.d.ts.map +1 -0
  559. package/lib/compose/state.component.d.ts +1 -0
  560. package/lib/compose/state.component.d.ts.map +1 -0
  561. package/lib/compose/tag/tags.component.d.ts +1 -0
  562. package/lib/compose/tag/tags.component.d.ts.map +1 -0
  563. package/lib/compose/trace/flow.component.d.ts +1 -0
  564. package/lib/compose/trace/flow.component.d.ts.map +1 -0
  565. package/lib/compose/trace/people.component.d.ts +1 -0
  566. package/lib/compose/trace/people.component.d.ts.map +1 -0
  567. package/lib/compose/trace/trace.base.d.ts +1 -0
  568. package/lib/compose/trace/trace.base.d.ts.map +1 -0
  569. package/lib/compose/trace/trace.component.d.ts +1 -0
  570. package/lib/compose/trace/trace.component.d.ts.map +1 -0
  571. package/lib/compose/trace/trace.pane.component.d.ts +1 -0
  572. package/lib/compose/trace/trace.pane.component.d.ts.map +1 -0
  573. package/lib/compose/version-compare/version-compare.component.d.ts +1 -0
  574. package/lib/compose/version-compare/version-compare.component.d.ts.map +1 -0
  575. package/lib/compose/version-compare/version-compare.directive.d.ts +1 -0
  576. package/lib/compose/version-compare/version-compare.directive.d.ts.map +1 -0
  577. package/lib/compose/version-compare/version.pane.component.d.ts +1 -0
  578. package/lib/compose/version-compare/version.pane.component.d.ts.map +1 -0
  579. package/lib/core/NgComponentOutlet.d.ts +1 -0
  580. package/lib/core/NgComponentOutlet.d.ts.map +1 -0
  581. package/lib/core/account.service.d.ts +1 -0
  582. package/lib/core/account.service.d.ts.map +1 -0
  583. package/lib/core/animated-icon/animated-icon.directive.d.ts +1 -0
  584. package/lib/core/animated-icon/animated-icon.directive.d.ts.map +1 -0
  585. package/lib/core/animations.d.ts +1 -0
  586. package/lib/core/animations.d.ts.map +1 -0
  587. package/lib/core/authentication.d.ts +1 -0
  588. package/lib/core/authentication.d.ts.map +1 -0
  589. package/lib/core/avatar/avatar.component.d.ts +1 -0
  590. package/lib/core/avatar/avatar.component.d.ts.map +1 -0
  591. package/lib/core/base.d.ts +1 -0
  592. package/lib/core/base.d.ts.map +1 -0
  593. package/lib/core/colors.d.ts +1 -0
  594. package/lib/core/colors.d.ts.map +1 -0
  595. package/lib/core/component-factory-resolver.d.ts +1 -0
  596. package/lib/core/component-factory-resolver.d.ts.map +1 -0
  597. package/lib/core/configuration.d.ts +1 -0
  598. package/lib/core/configuration.d.ts.map +1 -0
  599. package/lib/core/controls/address.input.d.ts +1 -0
  600. package/lib/core/controls/address.input.d.ts.map +1 -0
  601. package/lib/core/controls/auto-complete.input.d.ts +1 -0
  602. package/lib/core/controls/auto-complete.input.d.ts.map +1 -0
  603. package/lib/core/controls/combination-picker-body.d.ts +1 -0
  604. package/lib/core/controls/combination-picker-body.d.ts.map +1 -0
  605. package/lib/core/controls/combination-picker.d.ts +1 -0
  606. package/lib/core/controls/combination-picker.d.ts.map +1 -0
  607. package/lib/core/controls/combination-pool.d.ts +1 -0
  608. package/lib/core/controls/combination-pool.d.ts.map +1 -0
  609. package/lib/core/controls/file.input.d.ts +1 -0
  610. package/lib/core/controls/file.input.d.ts.map +1 -0
  611. package/lib/core/controls/select.input.d.ts +1 -0
  612. package/lib/core/controls/select.input.d.ts.map +1 -0
  613. package/lib/core/controls/time-picker.d.ts +1 -0
  614. package/lib/core/controls/time-picker.d.ts.map +1 -0
  615. package/lib/core/controls/timespan.input.d.ts +1 -0
  616. package/lib/core/controls/timespan.input.d.ts.map +1 -0
  617. package/lib/core/datasource.service.d.ts +1 -0
  618. package/lib/core/datasource.service.d.ts.map +1 -0
  619. package/lib/core/decorators.d.ts +1 -0
  620. package/lib/core/decorators.d.ts.map +1 -0
  621. package/lib/core/firebase.service.d.ts +1 -0
  622. package/lib/core/firebase.service.d.ts.map +1 -0
  623. package/lib/core/functions.d.ts +1 -0
  624. package/lib/core/functions.d.ts.map +1 -0
  625. package/lib/core/guide/guide.component.d.ts +1 -0
  626. package/lib/core/guide/guide.component.d.ts.map +1 -0
  627. package/lib/core/guide/guide.service.d.ts +1 -0
  628. package/lib/core/guide/guide.service.d.ts.map +1 -0
  629. package/lib/core/guide/help-tip.component.d.ts +1 -0
  630. package/lib/core/guide/help-tip.component.d.ts.map +1 -0
  631. package/lib/core/http.interceptor.d.ts +1 -0
  632. package/lib/core/http.interceptor.d.ts.map +1 -0
  633. package/lib/core/hub.service.d.ts +1 -0
  634. package/lib/core/hub.service.d.ts.map +1 -0
  635. package/lib/core/identity/identity.component.d.ts +1 -0
  636. package/lib/core/identity/identity.component.d.ts.map +1 -0
  637. package/lib/core/info/attachment-info.service.d.ts +1 -0
  638. package/lib/core/info/attachment-info.service.d.ts.map +1 -0
  639. package/lib/core/info/document-info.service.d.ts +1 -0
  640. package/lib/core/info/document-info.service.d.ts.map +1 -0
  641. package/lib/core/info/location-info.component.d.ts +1 -0
  642. package/lib/core/info/location-info.component.d.ts.map +1 -0
  643. package/lib/core/info/map-info.d.ts +1 -0
  644. package/lib/core/info/map-info.d.ts.map +1 -0
  645. package/lib/core/layout/autocomplete.field.d.ts +1 -0
  646. package/lib/core/layout/autocomplete.field.d.ts.map +1 -0
  647. package/lib/core/layout/checkbox.d.ts +1 -0
  648. package/lib/core/layout/checkbox.d.ts.map +1 -0
  649. package/lib/core/layout/checkbox.field.d.ts +1 -0
  650. package/lib/core/layout/checkbox.field.d.ts.map +1 -0
  651. package/lib/core/layout/date-range.field.d.ts +1 -0
  652. package/lib/core/layout/date-range.field.d.ts.map +1 -0
  653. package/lib/core/layout/date.field.d.ts +1 -0
  654. package/lib/core/layout/date.field.d.ts.map +1 -0
  655. package/lib/core/layout/expression.field.d.ts +1 -0
  656. package/lib/core/layout/expression.field.d.ts.map +1 -0
  657. package/lib/core/layout/file.field.d.ts +1 -0
  658. package/lib/core/layout/file.field.d.ts.map +1 -0
  659. package/lib/core/layout/html.field.d.ts +1 -0
  660. package/lib/core/layout/html.field.d.ts.map +1 -0
  661. package/lib/core/layout/input.base.d.ts +1 -0
  662. package/lib/core/layout/input.base.d.ts.map +1 -0
  663. package/lib/core/layout/input.field.d.ts +1 -0
  664. package/lib/core/layout/input.field.d.ts.map +1 -0
  665. package/lib/core/layout/layout.component.d.ts +1 -0
  666. package/lib/core/layout/layout.component.d.ts.map +1 -0
  667. package/lib/core/layout/numeric.field.d.ts +1 -0
  668. package/lib/core/layout/numeric.field.d.ts.map +1 -0
  669. package/lib/core/layout/select.field.d.ts +1 -0
  670. package/lib/core/layout/select.field.d.ts.map +1 -0
  671. package/lib/core/layout/switch.field.d.ts +1 -0
  672. package/lib/core/layout/switch.field.d.ts.map +1 -0
  673. package/lib/core/layout/textarea.field.d.ts +1 -0
  674. package/lib/core/layout/textarea.field.d.ts.map +1 -0
  675. package/lib/core/layout/timespan.field.d.ts +1 -0
  676. package/lib/core/layout/timespan.field.d.ts.map +1 -0
  677. package/lib/core/lottie-animation.d.ts +1 -0
  678. package/lib/core/lottie-animation.d.ts.map +1 -0
  679. package/lib/core/mailbox.service.d.ts +1 -0
  680. package/lib/core/mailbox.service.d.ts.map +1 -0
  681. package/lib/core/models.d.ts +6 -4
  682. package/lib/core/models.d.ts.map +1 -0
  683. package/lib/core/none.component.d.ts +1 -0
  684. package/lib/core/none.component.d.ts.map +1 -0
  685. package/lib/core/pipes/action.pipe.d.ts +1 -0
  686. package/lib/core/pipes/action.pipe.d.ts.map +1 -0
  687. package/lib/core/pipes/calendar.pipe.d.ts +1 -0
  688. package/lib/core/pipes/calendar.pipe.d.ts.map +1 -0
  689. package/lib/core/pipes/date-format.pipe.d.ts +1 -0
  690. package/lib/core/pipes/date-format.pipe.d.ts.map +1 -0
  691. package/lib/core/pipes/daterange.pipe.d.ts +1 -0
  692. package/lib/core/pipes/daterange.pipe.d.ts.map +1 -0
  693. package/lib/core/pipes/difference.pipe.d.ts +1 -0
  694. package/lib/core/pipes/difference.pipe.d.ts.map +1 -0
  695. package/lib/core/pipes/duration-format.pipe.d.ts +1 -0
  696. package/lib/core/pipes/duration-format.pipe.d.ts.map +1 -0
  697. package/lib/core/pipes/duration.pipe.d.ts +1 -0
  698. package/lib/core/pipes/duration.pipe.d.ts.map +1 -0
  699. package/lib/core/pipes/form.pipe.d.ts +1 -0
  700. package/lib/core/pipes/form.pipe.d.ts.map +1 -0
  701. package/lib/core/pipes/join.pipe.d.ts +1 -0
  702. package/lib/core/pipes/join.pipe.d.ts.map +1 -0
  703. package/lib/core/pipes/role.pipe.d.ts +1 -0
  704. package/lib/core/pipes/role.pipe.d.ts.map +1 -0
  705. package/lib/core/pipes/sanitize-html.pipe.d.ts.map +1 -0
  706. package/lib/core/pipes/sort.pipe.d.ts +1 -0
  707. package/lib/core/pipes/sort.pipe.d.ts.map +1 -0
  708. package/lib/core/pipes/state.pipe.d.ts +1 -0
  709. package/lib/core/pipes/state.pipe.d.ts.map +1 -0
  710. package/lib/core/pipes/time-ago.pipe.d.ts +1 -0
  711. package/lib/core/pipes/time-ago.pipe.d.ts.map +1 -0
  712. package/lib/core/pipes/translate.pipe.d.ts.map +1 -0
  713. package/lib/core/pipes/type-value.pipe.d.ts +1 -0
  714. package/lib/core/pipes/type-value.pipe.d.ts.map +1 -0
  715. package/lib/core/pipes/user-name.pipe.d.ts +1 -0
  716. package/lib/core/pipes/user-name.pipe.d.ts.map +1 -0
  717. package/lib/core/popup/popup-ref.d.ts +1 -0
  718. package/lib/core/popup/popup-ref.d.ts.map +1 -0
  719. package/lib/core/popup/popup.component.d.ts +1 -0
  720. package/lib/core/popup/popup.component.d.ts.map +1 -0
  721. package/lib/core/popup/popup.service.d.ts +1 -0
  722. package/lib/core/popup/popup.service.d.ts.map +1 -0
  723. package/lib/core/popup/tooltip.directive.d.ts +1 -0
  724. package/lib/core/popup/tooltip.directive.d.ts.map +1 -0
  725. package/lib/core/prompt/ask/ask.dialog.d.ts +1 -0
  726. package/lib/core/prompt/ask/ask.dialog.d.ts.map +1 -0
  727. package/lib/core/prompt/mask/mask.component.d.ts +1 -0
  728. package/lib/core/prompt/mask/mask.component.d.ts.map +1 -0
  729. package/lib/core/prompt.service.d.ts +1 -0
  730. package/lib/core/prompt.service.d.ts.map +1 -0
  731. package/lib/core/router.d.ts +1 -0
  732. package/lib/core/router.d.ts.map +1 -0
  733. package/lib/core/save-changes.dialog.d.ts +1 -0
  734. package/lib/core/save-changes.dialog.d.ts.map +1 -0
  735. package/lib/core/session.service.d.ts +1 -0
  736. package/lib/core/session.service.d.ts.map +1 -0
  737. package/lib/core/slots/pane-ref.d.ts +1 -0
  738. package/lib/core/slots/pane-ref.d.ts.map +1 -0
  739. package/lib/core/slots/router.directive.d.ts +1 -0
  740. package/lib/core/slots/router.directive.d.ts.map +1 -0
  741. package/lib/core/slots/router.service.d.ts +1 -0
  742. package/lib/core/slots/router.service.d.ts.map +1 -0
  743. package/lib/core/slots/slots.component.d.ts +1 -0
  744. package/lib/core/slots/slots.component.d.ts.map +1 -0
  745. package/lib/core/tagging/documents.component.d.ts +1 -0
  746. package/lib/core/tagging/documents.component.d.ts.map +1 -0
  747. package/lib/core/tagging/edit-input.component.d.ts +1 -0
  748. package/lib/core/tagging/edit-input.component.d.ts.map +1 -0
  749. package/lib/core/tagging/emoji.component.d.ts +1 -0
  750. package/lib/core/tagging/emoji.component.d.ts.map +1 -0
  751. package/lib/core/tagging/tagging-item.directive.d.ts +1 -0
  752. package/lib/core/tagging/tagging-item.directive.d.ts.map +1 -0
  753. package/lib/core/tagging/tagging.component-base.d.ts +1 -0
  754. package/lib/core/tagging/tagging.component-base.d.ts.map +1 -0
  755. package/lib/core/tagging/tagging.directive.d.ts +1 -0
  756. package/lib/core/tagging/tagging.directive.d.ts.map +1 -0
  757. package/lib/core/tagging/tagging.pipe.d.ts +1 -0
  758. package/lib/core/tagging/tagging.pipe.d.ts.map +1 -0
  759. package/lib/core/tagging/users.component.d.ts +1 -0
  760. package/lib/core/tagging/users.component.d.ts.map +1 -0
  761. package/lib/core/translate.service.d.ts +1 -0
  762. package/lib/core/translate.service.d.ts.map +1 -0
  763. package/lib/core/translations.d.ts +4 -0
  764. package/lib/core/translations.d.ts.map +1 -0
  765. package/lib/core/window-title.service.d.ts +1 -0
  766. package/lib/core/window-title.service.d.ts.map +1 -0
  767. package/lib/cube/accum/accum.component.d.ts +1 -0
  768. package/lib/cube/accum/accum.component.d.ts.map +1 -0
  769. package/lib/cube/chart/chart.component.d.ts +1 -0
  770. package/lib/cube/chart/chart.component.d.ts.map +1 -0
  771. package/lib/cube/cube-info.service.d.ts +1 -0
  772. package/lib/cube/cube-info.service.d.ts.map +1 -0
  773. package/lib/cube/cube-menu.component.d.ts +1 -0
  774. package/lib/cube/cube-menu.component.d.ts.map +1 -0
  775. package/lib/cube/cube-view.component.d.ts +1 -0
  776. package/lib/cube/cube-view.component.d.ts.map +1 -0
  777. package/lib/cube/cube.service.d.ts +1 -0
  778. package/lib/cube/cube.service.d.ts.map +1 -0
  779. package/lib/cube/declarations.d.ts +1 -0
  780. package/lib/cube/declarations.d.ts.map +1 -0
  781. package/lib/cube/explore/document-item.component.d.ts +1 -0
  782. package/lib/cube/explore/document-item.component.d.ts.map +1 -0
  783. package/lib/cube/explore/explore-item.component.d.ts +1 -0
  784. package/lib/cube/explore/explore-item.component.d.ts.map +1 -0
  785. package/lib/cube/explore/explore-items.component.d.ts +1 -0
  786. package/lib/cube/explore/explore-items.component.d.ts.map +1 -0
  787. package/lib/cube/explore/explore.pane.component.d.ts +1 -0
  788. package/lib/cube/explore/explore.pane.component.d.ts.map +1 -0
  789. package/lib/cube/explore/item-resolver.service.d.ts +1 -0
  790. package/lib/cube/explore/item-resolver.service.d.ts.map +1 -0
  791. package/lib/cube/explore/item.pane.component.d.ts +1 -0
  792. package/lib/cube/explore/item.pane.component.d.ts.map +1 -0
  793. package/lib/cube/filter/filter-tags.component.exp.d.ts +1 -0
  794. package/lib/cube/filter/filter-tags.component.exp.d.ts.map +1 -0
  795. package/lib/cube/filter/filter.component.d.ts +1 -0
  796. package/lib/cube/filter/filter.component.d.ts.map +1 -0
  797. package/lib/cube/grid/grid.component.d.ts +1 -0
  798. package/lib/cube/grid/grid.component.d.ts.map +1 -0
  799. package/lib/cube/grid/spreadsheet.component.d.ts +1 -0
  800. package/lib/cube/grid/spreadsheet.component.d.ts.map +1 -0
  801. package/lib/cube/matrix/matrix.base.d.ts +1 -0
  802. package/lib/cube/matrix/matrix.base.d.ts.map +1 -0
  803. package/lib/cube/matrix/matrix.mobile.component.d.ts +1 -0
  804. package/lib/cube/matrix/matrix.mobile.component.d.ts.map +1 -0
  805. package/lib/cube/matrix/matrix.pane.component.d.ts +1 -0
  806. package/lib/cube/matrix/matrix.pane.component.d.ts.map +1 -0
  807. package/lib/cube/matrix/popup.component.d.ts +1 -0
  808. package/lib/cube/matrix/popup.component.d.ts.map +1 -0
  809. package/lib/cube/matrix/table.component.d.ts +1 -0
  810. package/lib/cube/matrix/table.component.d.ts.map +1 -0
  811. package/lib/cube/parallel/item.d.ts +1 -0
  812. package/lib/cube/parallel/item.d.ts.map +1 -0
  813. package/lib/cube/parallel/parallel.component.d.ts +1 -0
  814. package/lib/cube/parallel/parallel.component.d.ts.map +1 -0
  815. package/lib/cube/pivot/pivot.component.d.ts +1 -0
  816. package/lib/cube/pivot/pivot.component.d.ts.map +1 -0
  817. package/lib/cube/sum/sum.component.d.ts +1 -0
  818. package/lib/cube/sum/sum.component.d.ts.map +1 -0
  819. package/lib/cube/view-base.d.ts +1 -0
  820. package/lib/cube/view-base.d.ts.map +1 -0
  821. package/lib/cube/view.mobile.component.d.ts +1 -0
  822. package/lib/cube/view.mobile.component.d.ts.map +1 -0
  823. package/lib/cube/view.pane.component.d.ts +1 -0
  824. package/lib/cube/view.pane.component.d.ts.map +1 -0
  825. package/lib/dashboard/actions/actions.widget.d.ts +1 -0
  826. package/lib/dashboard/actions/actions.widget.d.ts.map +1 -0
  827. package/lib/dashboard/cube/accum-cube.widget.d.ts +1 -0
  828. package/lib/dashboard/cube/accum-cube.widget.d.ts.map +1 -0
  829. package/lib/dashboard/cube/compare.widget.d.ts +1 -0
  830. package/lib/dashboard/cube/compare.widget.d.ts.map +1 -0
  831. package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -0
  832. package/lib/dashboard/cube/cube-analysis.base.d.ts.map +1 -0
  833. package/lib/dashboard/cube/cube-analysis.widget.d.ts +1 -0
  834. package/lib/dashboard/cube/cube-analysis.widget.d.ts.map +1 -0
  835. package/lib/dashboard/cube/cube-chart.widget.d.ts +1 -0
  836. package/lib/dashboard/cube/cube-chart.widget.d.ts.map +1 -0
  837. package/lib/dashboard/cube/documents.widget.d.ts +1 -0
  838. package/lib/dashboard/cube/documents.widget.d.ts.map +1 -0
  839. package/lib/dashboard/cube/filter/filter.component.d.ts +1 -0
  840. package/lib/dashboard/cube/filter/filter.component.d.ts.map +1 -0
  841. package/lib/dashboard/dashboard.component.d.ts +1 -0
  842. package/lib/dashboard/dashboard.component.d.ts.map +1 -0
  843. package/lib/dashboard/dashboard.pane.component.d.ts +1 -0
  844. package/lib/dashboard/dashboard.pane.component.d.ts.map +1 -0
  845. package/lib/dashboard/recents/recents.widget.d.ts +1 -0
  846. package/lib/dashboard/recents/recents.widget.d.ts.map +1 -0
  847. package/lib/dashboard/score/activity.widget.d.ts +1 -0
  848. package/lib/dashboard/score/activity.widget.d.ts.map +1 -0
  849. package/lib/dashboard/score/compare-groups.widget.d.ts +1 -0
  850. package/lib/dashboard/score/compare-groups.widget.d.ts.map +1 -0
  851. package/lib/dashboard/score/peers-performance.widget.d.ts +1 -0
  852. package/lib/dashboard/score/peers-performance.widget.d.ts.map +1 -0
  853. package/lib/dashboard/score/pending-results.widget.d.ts +1 -0
  854. package/lib/dashboard/score/pending-results.widget.d.ts.map +1 -0
  855. package/lib/dashboard/score/personal-score.widget.d.ts +1 -0
  856. package/lib/dashboard/score/personal-score.widget.d.ts.map +1 -0
  857. package/lib/dashboard/widget-item.component.d.ts +1 -0
  858. package/lib/dashboard/widget-item.component.d.ts.map +1 -0
  859. package/lib/dashboard/widget-ref.d.ts +1 -0
  860. package/lib/dashboard/widget-ref.d.ts.map +1 -0
  861. package/lib/desktop.module.d.ts +1 -0
  862. package/lib/desktop.module.d.ts.map +1 -0
  863. package/lib/home/about/about.dialog.d.ts +1 -0
  864. package/lib/home/about/about.dialog.d.ts.map +1 -0
  865. package/lib/home/home-base.component.d.ts +1 -0
  866. package/lib/home/home-base.component.d.ts.map +1 -0
  867. package/lib/home/home.desktop.component.d.ts +1 -0
  868. package/lib/home/home.desktop.component.d.ts.map +1 -0
  869. package/lib/home/home.mobile.component.d.ts +1 -0
  870. package/lib/home/home.mobile.component.d.ts.map +1 -0
  871. package/lib/home/notifications/notifications.component.d.ts +1 -0
  872. package/lib/home/notifications/notifications.component.d.ts.map +1 -0
  873. package/lib/home/options/options.component.d.ts +1 -0
  874. package/lib/home/options/options.component.d.ts.map +1 -0
  875. package/lib/home/outofoffice/outofoffice.component.d.ts +1 -0
  876. package/lib/home/outofoffice/outofoffice.component.d.ts.map +1 -0
  877. package/lib/home/search.service.d.ts +1 -0
  878. package/lib/home/search.service.d.ts.map +1 -0
  879. package/lib/home/sign/sign.component.d.ts +1 -0
  880. package/lib/home/sign/sign.component.d.ts.map +1 -0
  881. package/lib/home/tools.component.d.ts +1 -0
  882. package/lib/home/tools.component.d.ts.map +1 -0
  883. package/lib/impersonate/impersonate.component.d.ts +1 -0
  884. package/lib/impersonate/impersonate.component.d.ts.map +1 -0
  885. package/lib/mobile.module.d.ts +1 -0
  886. package/lib/mobile.module.d.ts.map +1 -0
  887. package/lib/modules/chart.module.d.ts +1 -0
  888. package/lib/modules/chart.module.d.ts.map +1 -0
  889. package/lib/modules/circular-gauge.module.d.ts +1 -0
  890. package/lib/modules/circular-gauge.module.d.ts.map +1 -0
  891. package/lib/modules/date.adapter.d.ts +1 -0
  892. package/lib/modules/date.adapter.d.ts.map +1 -0
  893. package/lib/modules/datepicker.intl.d.ts +1 -0
  894. package/lib/modules/datepicker.intl.d.ts.map +1 -0
  895. package/lib/modules/dayjs.module.d.ts +1 -0
  896. package/lib/modules/dayjs.module.d.ts.map +1 -0
  897. package/lib/modules/diagram.module.d.ts +1 -0
  898. package/lib/modules/diagram.module.d.ts.map +1 -0
  899. package/lib/modules/gantt.module.d.ts +1 -0
  900. package/lib/modules/gantt.module.d.ts.map +1 -0
  901. package/lib/modules/grid.module.d.ts +1 -0
  902. package/lib/modules/grid.module.d.ts.map +1 -0
  903. package/lib/modules/material.module.d.ts +1 -0
  904. package/lib/modules/material.module.d.ts.map +1 -0
  905. package/lib/modules/paginator.intl.d.ts +1 -0
  906. package/lib/modules/paginator.intl.d.ts.map +1 -0
  907. package/lib/modules/pivot.module.d.ts +1 -0
  908. package/lib/modules/pivot.module.d.ts.map +1 -0
  909. package/lib/modules/schedule.module.d.ts +1 -0
  910. package/lib/modules/schedule.module.d.ts.map +1 -0
  911. package/lib/modules/spreadsheet.module.d.ts +1 -0
  912. package/lib/modules/spreadsheet.module.d.ts.map +1 -0
  913. package/lib/modules/stepper.intl.d.ts +1 -0
  914. package/lib/modules/stepper.intl.d.ts.map +1 -0
  915. package/lib/modules/texteditor.module.d.ts +1 -0
  916. package/lib/modules/texteditor.module.d.ts.map +1 -0
  917. package/lib/notifications/filter.component.d.ts +1 -0
  918. package/lib/notifications/filter.component.d.ts.map +1 -0
  919. package/lib/notifications/notifications-table.component.d.ts +1 -0
  920. package/lib/notifications/notifications-table.component.d.ts.map +1 -0
  921. package/lib/notifications/notifications.component-base.d.ts +1 -0
  922. package/lib/notifications/notifications.component-base.d.ts.map +1 -0
  923. package/lib/notifications/notifications.mobile.component.d.ts +1 -0
  924. package/lib/notifications/notifications.mobile.component.d.ts.map +1 -0
  925. package/lib/notifications/notifications.pane.component.d.ts +1 -0
  926. package/lib/notifications/notifications.pane.component.d.ts.map +1 -0
  927. package/lib/notifications/notifications.service.d.ts +1 -0
  928. package/lib/notifications/notifications.service.d.ts.map +1 -0
  929. package/lib/notifications/types/commented.notification.d.ts +1 -0
  930. package/lib/notifications/types/commented.notification.d.ts.map +1 -0
  931. package/lib/notifications/types/cube-anomaly.notification.d.ts +1 -0
  932. package/lib/notifications/types/cube-anomaly.notification.d.ts.map +1 -0
  933. package/lib/notifications/types/escalated.notification.d.ts +1 -0
  934. package/lib/notifications/types/escalated.notification.d.ts.map +1 -0
  935. package/lib/notifications/types/liked.notification.d.ts +1 -0
  936. package/lib/notifications/types/liked.notification.d.ts.map +1 -0
  937. package/lib/notifications/types/long-running-task.notification.d.ts +1 -0
  938. package/lib/notifications/types/long-running-task.notification.d.ts.map +1 -0
  939. package/lib/notifications/types/notification-base.d.ts +1 -0
  940. package/lib/notifications/types/notification-base.d.ts.map +1 -0
  941. package/lib/notifications/types/nudge.notification.d.ts +1 -0
  942. package/lib/notifications/types/nudge.notification.d.ts.map +1 -0
  943. package/lib/notifications/types/state-changed.notification.d.ts +1 -0
  944. package/lib/notifications/types/state-changed.notification.d.ts.map +1 -0
  945. package/lib/notifications/types/tagged.notification.d.ts +1 -0
  946. package/lib/notifications/types/tagged.notification.d.ts.map +1 -0
  947. package/lib/notifications/types/text.notification.d.ts +1 -0
  948. package/lib/notifications/types/text.notification.d.ts.map +1 -0
  949. package/lib/notifications/types/upcoming-event.notification.d.ts +1 -0
  950. package/lib/notifications/types/upcoming-event.notification.d.ts.map +1 -0
  951. package/lib/options/options.component.d.ts +1 -0
  952. package/lib/options/options.component.d.ts.map +1 -0
  953. package/lib/options/options.service.d.ts +1 -0
  954. package/lib/options/options.service.d.ts.map +1 -0
  955. package/lib/reports/arguments-component.d.ts +1 -0
  956. package/lib/reports/arguments-component.d.ts.map +1 -0
  957. package/lib/reports/cube/documents.component.d.ts +1 -0
  958. package/lib/reports/cube/documents.component.d.ts.map +1 -0
  959. package/lib/reports/cube/grid-documents.component.d.ts +1 -0
  960. package/lib/reports/cube/grid-documents.component.d.ts.map +1 -0
  961. package/lib/reports/cube/table-documents.component.d.ts +1 -0
  962. package/lib/reports/cube/table-documents.component.d.ts.map +1 -0
  963. package/lib/reports/cube/usage-args.component.d.ts +1 -0
  964. package/lib/reports/cube/usage-args.component.d.ts.map +1 -0
  965. package/lib/reports/cube/usage-base.d.ts +1 -0
  966. package/lib/reports/cube/usage-base.d.ts.map +1 -0
  967. package/lib/reports/cube/usage-chart.component.d.ts +1 -0
  968. package/lib/reports/cube/usage-chart.component.d.ts.map +1 -0
  969. package/lib/reports/cube/usage-pivot.component.d.ts +1 -0
  970. package/lib/reports/cube/usage-pivot.component.d.ts.map +1 -0
  971. package/lib/reports/cube/usage.component.d.ts +1 -0
  972. package/lib/reports/cube/usage.component.d.ts.map +1 -0
  973. package/lib/reports/report-ref.d.ts +1 -0
  974. package/lib/reports/report-ref.d.ts.map +1 -0
  975. package/lib/reports/report-viewer.component.d.ts +1 -0
  976. package/lib/reports/report-viewer.component.d.ts.map +1 -0
  977. package/lib/reports/report.mobile.component.d.ts +1 -0
  978. package/lib/reports/report.mobile.component.d.ts.map +1 -0
  979. package/lib/reports/report.pane.component.d.ts +1 -0
  980. package/lib/reports/report.pane.component.d.ts.map +1 -0
  981. package/lib/reports/reports-menu.component.d.ts +1 -0
  982. package/lib/reports/reports-menu.component.d.ts.map +1 -0
  983. package/lib/reports/substitution/substitution.component.d.ts +1 -0
  984. package/lib/reports/substitution/substitution.component.d.ts.map +1 -0
  985. package/lib/reports/table/table-view.component.d.ts +1 -0
  986. package/lib/reports/table/table-view.component.d.ts.map +1 -0
  987. package/lib/reports/tasks/tasks.component.d.ts +1 -0
  988. package/lib/reports/tasks/tasks.component.d.ts.map +1 -0
  989. package/lib/routes.desktop.d.ts +1 -0
  990. package/lib/routes.desktop.d.ts.map +1 -0
  991. package/lib/routes.mobile.d.ts +1 -0
  992. package/lib/routes.mobile.d.ts.map +1 -0
  993. package/lib/scheduler/schedule.component.d.ts +1 -0
  994. package/lib/scheduler/schedule.component.d.ts.map +1 -0
  995. package/lib/scheduler/scheduler.mobile.component.d.ts +1 -0
  996. package/lib/scheduler/scheduler.mobile.component.d.ts.map +1 -0
  997. package/lib/scheduler/scheduler.pane.component.d.ts +1 -0
  998. package/lib/scheduler/scheduler.pane.component.d.ts.map +1 -0
  999. package/lib/shared.module.d.ts +1 -0
  1000. package/lib/shared.module.d.ts.map +1 -0
  1001. package/lib/system.module.d.ts +51 -49
  1002. package/lib/system.module.d.ts.map +1 -0
  1003. package/lib/views/cube/chart.component.d.ts +1 -0
  1004. package/lib/views/cube/chart.component.d.ts.map +1 -0
  1005. package/lib/views/cube/cube-base.d.ts +1 -0
  1006. package/lib/views/cube/cube-base.d.ts.map +1 -0
  1007. package/lib/views/cube/explore.component.d.ts +1 -0
  1008. package/lib/views/cube/explore.component.d.ts.map +1 -0
  1009. package/lib/views/cube/matrix.component.d.ts +1 -0
  1010. package/lib/views/cube/matrix.component.d.ts.map +1 -0
  1011. package/lib/views/cube/parallel.component.d.ts +1 -0
  1012. package/lib/views/cube/parallel.component.d.ts.map +1 -0
  1013. package/lib/views/cube/pivot.component.d.ts +1 -0
  1014. package/lib/views/cube/pivot.component.d.ts.map +1 -0
  1015. package/lib/views/cube/sum.component.d.ts +4 -3
  1016. package/lib/views/cube/sum.component.d.ts.map +1 -0
  1017. package/lib/views/cube/view.component.d.ts +1 -0
  1018. package/lib/views/cube/view.component.d.ts.map +1 -0
  1019. package/lib/views/document-view-ref.d.ts +1 -0
  1020. package/lib/views/document-view-ref.d.ts.map +1 -0
  1021. package/lib/views/timeline/timeline.component.exp.d.ts +1 -0
  1022. package/lib/views/timeline/timeline.component.exp.d.ts.map +1 -0
  1023. package/lib/views/view-item.component.d.ts +1 -0
  1024. package/lib/views/view-item.component.d.ts.map +1 -0
  1025. package/lib/views/views.component.d.ts +1 -0
  1026. package/lib/views/views.component.d.ts.map +1 -0
  1027. package/lib/views/views.mobile.component.d.ts +1 -0
  1028. package/lib/views/views.mobile.component.d.ts.map +1 -0
  1029. package/lib/views/views.pane.component.d.ts +1 -0
  1030. package/lib/views/views.pane.component.d.ts.map +1 -0
  1031. package/package.json +1 -1
  1032. package/public-api.d.ts +1 -0
  1033. package/public-api.d.ts.map +1 -0
@@ -18,6 +18,243 @@ import * as i12 from "../../core/pipes/duration.pipe";
18
18
  import * as i13 from "../../core/pipes/duration-format.pipe";
19
19
  import * as i14 from "../../core/pipes/translate.pipe";
20
20
  import * as i15 from "../../core/pipes/sanitize-html.pipe";
21
+ function TraceViewComponent_tr_28_span_4_Template(rf, ctx) { if (rf & 1) {
22
+ i0.ɵɵelementStart(0, "span");
23
+ i0.ɵɵtext(1);
24
+ i0.ɵɵpipe(2, "translate");
25
+ i0.ɵɵelementEnd();
26
+ } if (rf & 2) {
27
+ const l_r2 = i0.ɵɵnextContext().$implicit;
28
+ i0.ɵɵadvance(1);
29
+ i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(2, 2, "JoinComma"), "", l_r2.role, "");
30
+ } }
31
+ function TraceViewComponent_tr_28_ng_container_7_Template(rf, ctx) { if (rf & 1) {
32
+ const _r18 = i0.ɵɵgetCurrentView();
33
+ i0.ɵɵelementContainerStart(0);
34
+ i0.ɵɵelementStart(1, "span", 17);
35
+ i0.ɵɵlistener("click", function TraceViewComponent_tr_28_ng_container_7_Template_span_click_1_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r17.chat($event)); });
36
+ i0.ɵɵpipe(2, "sanitizeHtml");
37
+ i0.ɵɵelementEnd();
38
+ i0.ɵɵelementContainerEnd();
39
+ } if (rf & 2) {
40
+ const l_r2 = i0.ɵɵnextContext().$implicit;
41
+ i0.ɵɵadvance(1);
42
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind1(2, 1, l_r2.action), i0.ɵɵsanitizeHtml);
43
+ } }
44
+ function TraceViewComponent_tr_28_span_8_Template(rf, ctx) { if (rf & 1) {
45
+ i0.ɵɵelementStart(0, "span");
46
+ i0.ɵɵtext(1);
47
+ i0.ɵɵpipe(2, "translate");
48
+ i0.ɵɵelementEnd();
49
+ } if (rf & 2) {
50
+ i0.ɵɵadvance(1);
51
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "Issued"));
52
+ } }
53
+ function TraceViewComponent_tr_28_span_9_Template(rf, ctx) { if (rf & 1) {
54
+ i0.ɵɵelementStart(0, "span");
55
+ i0.ɵɵtext(1);
56
+ i0.ɵɵpipe(2, "translate");
57
+ i0.ɵɵelementEnd();
58
+ } if (rf & 2) {
59
+ i0.ɵɵadvance(1);
60
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "IsPending"));
61
+ } }
62
+ function TraceViewComponent_tr_28_span_10_Template(rf, ctx) { if (rf & 1) {
63
+ i0.ɵɵelementStart(0, "span");
64
+ i0.ɵɵtext(1);
65
+ i0.ɵɵpipe(2, "translate");
66
+ i0.ɵɵelementEnd();
67
+ } if (rf & 2) {
68
+ const l_r2 = i0.ɵɵnextContext().$implicit;
69
+ i0.ɵɵadvance(1);
70
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, "CheckedIn", l_r2.fileName));
71
+ } }
72
+ function TraceViewComponent_tr_28_span_11_Template(rf, ctx) { if (rf & 1) {
73
+ i0.ɵɵelementStart(0, "span");
74
+ i0.ɵɵtext(1);
75
+ i0.ɵɵpipe(2, "translate");
76
+ i0.ɵɵelementEnd();
77
+ } if (rf & 2) {
78
+ const l_r2 = i0.ɵɵnextContext().$implicit;
79
+ i0.ɵɵadvance(1);
80
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, "CheckedOut", l_r2.fileName));
81
+ } }
82
+ function TraceViewComponent_tr_28_span_12_Template(rf, ctx) { if (rf & 1) {
83
+ i0.ɵɵelementStart(0, "span");
84
+ i0.ɵɵtext(1);
85
+ i0.ɵɵpipe(2, "translate");
86
+ i0.ɵɵelementEnd();
87
+ } if (rf & 2) {
88
+ i0.ɵɵadvance(1);
89
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "Estimate"));
90
+ } }
91
+ function TraceViewComponent_tr_28_span_13_Template(rf, ctx) { if (rf & 1) {
92
+ i0.ɵɵelementStart(0, "span");
93
+ i0.ɵɵtext(1);
94
+ i0.ɵɵpipe(2, "translate");
95
+ i0.ɵɵelementEnd();
96
+ } if (rf & 2) {
97
+ i0.ɵɵadvance(1);
98
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "Changed"));
99
+ } }
100
+ function TraceViewComponent_tr_28_span_14_Template(rf, ctx) { if (rf & 1) {
101
+ i0.ɵɵelementStart(0, "span");
102
+ i0.ɵɵtext(1);
103
+ i0.ɵɵpipe(2, "translate");
104
+ i0.ɵɵelementEnd();
105
+ } if (rf & 2) {
106
+ i0.ɵɵadvance(1);
107
+ i0.ɵɵtextInterpolate1("\u00A0", i0.ɵɵpipeBind1(2, 1, "FYI"), "");
108
+ } }
109
+ function TraceViewComponent_tr_28_ng_container_16_span_1_Template(rf, ctx) { if (rf & 1) {
110
+ i0.ɵɵelementStart(0, "span", 19);
111
+ i0.ɵɵpipe(1, "amDurationFormat");
112
+ i0.ɵɵtext(2);
113
+ i0.ɵɵpipe(3, "translate");
114
+ i0.ɵɵpipe(4, "amDuration");
115
+ i0.ɵɵelementEnd();
116
+ } if (rf & 2) {
117
+ const l_r2 = i0.ɵɵnextContext(2).$implicit;
118
+ i0.ɵɵproperty("bizdocTooltip", i0.ɵɵpipeBind1(1, 2, l_r2.durationMax));
119
+ i0.ɵɵadvance(2);
120
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(3, 4, "EstimateTime", i0.ɵɵpipeBind2(4, 7, l_r2.durationMax, "s")));
121
+ } }
122
+ function TraceViewComponent_tr_28_ng_container_16_span_2_Template(rf, ctx) { if (rf & 1) {
123
+ i0.ɵɵelementStart(0, "span", 19);
124
+ i0.ɵɵpipe(1, "amDurationFormat");
125
+ i0.ɵɵtext(2);
126
+ i0.ɵɵpipe(3, "translate");
127
+ i0.ɵɵpipe(4, "amDuration");
128
+ i0.ɵɵpipe(5, "amDuration");
129
+ i0.ɵɵelementEnd();
130
+ } if (rf & 2) {
131
+ const l_r2 = i0.ɵɵnextContext(2).$implicit;
132
+ i0.ɵɵproperty("bizdocTooltip", i0.ɵɵpipeBind1(1, 2, l_r2.durationMax));
133
+ i0.ɵɵadvance(2);
134
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind3(3, 4, "EstimateTimeRange", i0.ɵɵpipeBind2(4, 8, l_r2.durationMin, "s"), i0.ɵɵpipeBind2(5, 11, l_r2.durationMax, "s")));
135
+ } }
136
+ function TraceViewComponent_tr_28_ng_container_16_Template(rf, ctx) { if (rf & 1) {
137
+ i0.ɵɵelementContainerStart(0);
138
+ i0.ɵɵtemplate(1, TraceViewComponent_tr_28_ng_container_16_span_1_Template, 5, 10, "span", 18);
139
+ i0.ɵɵtemplate(2, TraceViewComponent_tr_28_ng_container_16_span_2_Template, 6, 14, "span", 18);
140
+ i0.ɵɵelementContainerEnd();
141
+ } if (rf & 2) {
142
+ const l_r2 = i0.ɵɵnextContext().$implicit;
143
+ i0.ɵɵadvance(1);
144
+ i0.ɵɵproperty("ngIf", l_r2.durationMax && l_r2.durationMax === l_r2.durationMin);
145
+ i0.ɵɵadvance(1);
146
+ i0.ɵɵproperty("ngIf", l_r2.durationMax && l_r2.durationMax !== l_r2.durationMin);
147
+ } }
148
+ function TraceViewComponent_tr_28_ng_container_17_span_4_Template(rf, ctx) { if (rf & 1) {
149
+ i0.ɵɵelementStart(0, "span", 21);
150
+ i0.ɵɵpipe(1, "amDurationFormat");
151
+ i0.ɵɵtext(2);
152
+ i0.ɵɵpipe(3, "amDuration");
153
+ i0.ɵɵelementEnd();
154
+ } if (rf & 2) {
155
+ const l_r2 = i0.ɵɵnextContext(2).$implicit;
156
+ i0.ɵɵproperty("bizdocTooltip", i0.ɵɵpipeBind1(1, 2, l_r2.duration));
157
+ i0.ɵɵadvance(2);
158
+ i0.ɵɵtextInterpolate1("\u00A0(", i0.ɵɵpipeBind2(3, 4, l_r2.duration, "s"), ")");
159
+ } }
160
+ function TraceViewComponent_tr_28_ng_container_17_Template(rf, ctx) { if (rf & 1) {
161
+ i0.ɵɵelementContainerStart(0);
162
+ i0.ɵɵelementStart(1, "span");
163
+ i0.ɵɵtext(2);
164
+ i0.ɵɵpipe(3, "amCalendar");
165
+ i0.ɵɵelementEnd();
166
+ i0.ɵɵtemplate(4, TraceViewComponent_tr_28_ng_container_17_span_4_Template, 4, 7, "span", 20);
167
+ i0.ɵɵelementContainerEnd();
168
+ } if (rf & 2) {
169
+ const l_r2 = i0.ɵɵnextContext().$implicit;
170
+ const ctx_r13 = i0.ɵɵnextContext();
171
+ i0.ɵɵadvance(2);
172
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind3(3, 2, l_r2.time, null, ctx_r13.CALENDAR_SPEC));
173
+ i0.ɵɵadvance(2);
174
+ i0.ɵɵproperty("ngIf", l_r2.duration);
175
+ } }
176
+ function TraceViewComponent_tr_28_span_19_Template(rf, ctx) { if (rf & 1) {
177
+ i0.ɵɵelementStart(0, "span");
178
+ i0.ɵɵtext(1);
179
+ i0.ɵɵelementEnd();
180
+ } if (rf & 2) {
181
+ const l_r2 = i0.ɵɵnextContext().$implicit;
182
+ i0.ɵɵadvance(1);
183
+ i0.ɵɵtextInterpolate(l_r2.note);
184
+ } }
185
+ function TraceViewComponent_tr_28_button_20_Template(rf, ctx) { if (rf & 1) {
186
+ const _r33 = i0.ɵɵgetCurrentView();
187
+ i0.ɵɵelementStart(0, "button", 22);
188
+ i0.ɵɵlistener("click", function TraceViewComponent_tr_28_button_20_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r33); const l_r2 = i0.ɵɵnextContext().$implicit; const ctx_r31 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r31.compare(l_r2)); });
189
+ i0.ɵɵpipe(1, "translate");
190
+ i0.ɵɵelementStart(2, "mat-icon");
191
+ i0.ɵɵtext(3, "more_horiz");
192
+ i0.ɵɵelementEnd()();
193
+ } if (rf & 2) {
194
+ i0.ɵɵproperty("bizdocTooltip", i0.ɵɵpipeBind1(1, 1, "Compare"));
195
+ } }
196
+ function TraceViewComponent_tr_28_Template(rf, ctx) { if (rf & 1) {
197
+ const _r35 = i0.ɵɵgetCurrentView();
198
+ i0.ɵɵelementStart(0, "tr", 8)(1, "td", 9)(2, "span", 10);
199
+ i0.ɵɵlistener("click", function TraceViewComponent_tr_28_Template_span_click_2_listener($event) { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.chat($event)); });
200
+ i0.ɵɵpipe(3, "sanitizeHtml");
201
+ i0.ɵɵelementEnd();
202
+ i0.ɵɵtemplate(4, TraceViewComponent_tr_28_span_4_Template, 3, 4, "span", 11);
203
+ i0.ɵɵelementEnd();
204
+ i0.ɵɵelementStart(5, "td", 9);
205
+ i0.ɵɵelementContainerStart(6, 12);
206
+ i0.ɵɵtemplate(7, TraceViewComponent_tr_28_ng_container_7_Template, 3, 3, "ng-container", 13);
207
+ i0.ɵɵtemplate(8, TraceViewComponent_tr_28_span_8_Template, 3, 3, "span", 13);
208
+ i0.ɵɵtemplate(9, TraceViewComponent_tr_28_span_9_Template, 3, 3, "span", 13);
209
+ i0.ɵɵtemplate(10, TraceViewComponent_tr_28_span_10_Template, 3, 4, "span", 13);
210
+ i0.ɵɵtemplate(11, TraceViewComponent_tr_28_span_11_Template, 3, 4, "span", 13);
211
+ i0.ɵɵtemplate(12, TraceViewComponent_tr_28_span_12_Template, 3, 3, "span", 13);
212
+ i0.ɵɵtemplate(13, TraceViewComponent_tr_28_span_13_Template, 3, 3, "span", 13);
213
+ i0.ɵɵelementContainerEnd();
214
+ i0.ɵɵtemplate(14, TraceViewComponent_tr_28_span_14_Template, 3, 3, "span", 11);
215
+ i0.ɵɵelementEnd();
216
+ i0.ɵɵelementStart(15, "td", 14);
217
+ i0.ɵɵtemplate(16, TraceViewComponent_tr_28_ng_container_16_Template, 3, 2, "ng-container", 13);
218
+ i0.ɵɵtemplate(17, TraceViewComponent_tr_28_ng_container_17_Template, 5, 6, "ng-container", 15);
219
+ i0.ɵɵelementEnd();
220
+ i0.ɵɵelementStart(18, "td", 9);
221
+ i0.ɵɵtemplate(19, TraceViewComponent_tr_28_span_19_Template, 2, 1, "span", 11);
222
+ i0.ɵɵtemplate(20, TraceViewComponent_tr_28_button_20_Template, 4, 3, "button", 16);
223
+ i0.ɵɵelementEnd()();
224
+ } if (rf & 2) {
225
+ const l_r2 = ctx.$implicit;
226
+ i0.ɵɵproperty("@item", undefined);
227
+ i0.ɵɵadvance(2);
228
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind1(3, 16, l_r2.name), i0.ɵɵsanitizeHtml);
229
+ i0.ɵɵadvance(2);
230
+ i0.ɵɵproperty("ngIf", l_r2.role);
231
+ i0.ɵɵadvance(2);
232
+ i0.ɵɵproperty("ngSwitch", l_r2.type);
233
+ i0.ɵɵadvance(1);
234
+ i0.ɵɵproperty("ngSwitchCase", "ActionTaken");
235
+ i0.ɵɵadvance(1);
236
+ i0.ɵɵproperty("ngSwitchCase", "Submit");
237
+ i0.ɵɵadvance(1);
238
+ i0.ɵɵproperty("ngSwitchCase", "Pending");
239
+ i0.ɵɵadvance(1);
240
+ i0.ɵɵproperty("ngSwitchCase", "CheckOut");
241
+ i0.ɵɵadvance(1);
242
+ i0.ɵɵproperty("ngSwitchCase", "CheckIn");
243
+ i0.ɵɵadvance(1);
244
+ i0.ɵɵproperty("ngSwitchCase", "Estimate");
245
+ i0.ɵɵadvance(1);
246
+ i0.ɵɵproperty("ngSwitchCase", "ModelChange");
247
+ i0.ɵɵadvance(1);
248
+ i0.ɵɵproperty("ngIf", l_r2.fyi);
249
+ i0.ɵɵadvance(1);
250
+ i0.ɵɵproperty("ngSwitch", l_r2.estimate);
251
+ i0.ɵɵadvance(1);
252
+ i0.ɵɵproperty("ngSwitchCase", true);
253
+ i0.ɵɵadvance(3);
254
+ i0.ɵɵproperty("ngIf", l_r2.note);
255
+ i0.ɵɵadvance(1);
256
+ i0.ɵɵproperty("ngIf", l_r2.type === "ModelChange");
257
+ } }
21
258
  /** component showing trace table */
22
259
  export class TraceViewComponent extends TraceBase {
23
260
  constructor(session, _translate, _accounts, _chat, hub) {
@@ -338,14 +575,72 @@ export class TraceViewComponent extends TraceBase {
338
575
  this.versionSelected.emit(log.time);
339
576
  }
340
577
  }
341
- TraceViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: TraceViewComponent, deps: [{ token: i1.SessionService }, { token: i2.TranslateService }, { token: i3.AccountService }, { token: i4.ChatInfo }, { token: i5.HubService }], target: i0.ɵɵFactoryTarget.Component });
342
- TraceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Submit'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\">&nbsp;{{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.type==='ModelChange'\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i6.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i11.CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: i12.DurationPipe, name: "amDuration" }, { kind: "pipe", type: i13.DurationFormatPipe, name: "amDurationFormat" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }, { kind: "pipe", type: i15.SanitizeHtmlPipe, name: "sanitizeHtml" }], animations: [listAnimation, itemAnimation] });
343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: TraceViewComponent, decorators: [{
344
- type: Component,
345
- args: [{ selector: 'bizdoc-trace', animations: [listAnimation, itemAnimation], template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Submit'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\">&nbsp;{{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.type==='ModelChange'\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"] }]
346
- }], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.TranslateService }, { type: i3.AccountService }, { type: i4.ChatInfo }, { type: i5.HubService }]; }, propDecorators: { model: [{
347
- type: Input
348
- }], versionSelected: [{
349
- type: Output
350
- }] } });
351
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3RyYWNlL3RyYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS90cmFjZS90cmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFNMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFckUsb0NBQW9DO0FBT3BDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUFTO0lBVy9DLFlBQ0UsT0FBdUIsRUFDZixVQUE0QixFQUM1QixTQUF5QixFQUN6QixLQUFlLEVBQ3ZCLEdBQWU7UUFDZixLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSlosZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQWJOLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM5RCxTQUFJLEdBQVksRUFBRSxDQUFDO1FBRVYsa0JBQWEsR0FBaUI7WUFDckMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7WUFDcEQsUUFBUSxFQUFFLFlBQVk7WUFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FB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QUFPLENBQUMsR0FBVTtRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7K0dBeFZVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHdKQ25CL0IsK3hHQXlEQSx5L0REeENjLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQzsyRkFFL0Isa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGNBQWMsY0FHWixDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7aU5BR2pDLEtBQUs7c0JBQWIsS0FBSztnQkFDYSxlQUFlO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IENhbGVuZGFyU3BlYyB9IGZyb20gXCIuLi8uLi9jb3JlL3BpcGVzL2NhbGVuZGFyLnBpcGVcIjtcclxuaW1wb3J0IHsgVXNlckluZm8sIExvZ1R5cGUsIERvY3VtZW50TW9kZWwsIEFjdGlvbiwgR2VuZGVyIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFjZUJhc2UsIFlvdSB9IGZyb20gXCIuL3RyYWNlLmJhc2VcIjtcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2h1Yi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENoYXRJbmZvIH0gZnJvbSBcIi4uLy4uL2NoYXQvY2hhdC1pbmZvXCI7XHJcbmltcG9ydCB7IGl0ZW1BbmltYXRpb24sIGxpc3RBbmltYXRpb24gfSBmcm9tIFwiLi4vLi4vY29yZS9hbmltYXRpb25zXCI7XHJcblxyXG4vKiogY29tcG9uZW50IHNob3dpbmcgdHJhY2UgdGFibGUgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtdHJhY2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAndHJhY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWyd0cmFjZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtsaXN0QW5pbWF0aW9uLCBpdGVtQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhY2VWaWV3Q29tcG9uZW50IGV4dGVuZHMgVHJhY2VCYXNlIHtcclxuICBASW5wdXQoKSBtb2RlbDogRG9jdW1lbnRNb2RlbDxhbnk+O1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSB2ZXJzaW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgZGF0YTogVHJhY2VbXSA9IFtdO1xyXG4gIHByaXZhdGUgX2RhdGE6IFRyYWNlW107XHJcbiAgcmVhZG9ubHkgQ0FMRU5EQVJfU1BFQzogQ2FsZW5kYXJTcGVjID0ge1xyXG4gICAgbGFzdERheTogdGhpcy5fdHJhbnNsYXRlLmdldCgnWWVzdGVyZGF5QXQnLCAnSEg6bW0nKSxcclxuICAgIGxhc3RXZWVrOiAnZGRkZCBISDptbScsXHJcbiAgICBzYW1lRGF5OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdUb2RheUF0JywgJ0hIOm1tJyksXHJcbiAgICBzYW1lRWxzZTogJ01NTSBEIEhIOm1tJ1xyXG4gIH07XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYXQ6IENoYXRJbmZvLFxyXG4gICAgaHViOiBIdWJTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihzZXNzaW9uLCBodWIpO1xyXG4gICAgdGhpcy5fc2hvd01vZGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndHJhY2VNb2RlJykgYXMgU2hvd01vZGUgfHwgJ2V2ZXJ5dGhpbmcnO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgYXN5bmMgX2luaXRpYWxpemUoKSB7XHJcbiAgICBjb25zdCB7IGlzc3VlZCwgbG9nLCByZWNpcGllbnRzLCBhdHRhY2htZW50cyB9ID0gdGhpcy5tb2RlbDtcclxuXHJcbiAgICBjb25zdCBtZSA9IHRoaXM7XHJcbiAgICAvKipcclxuICAgICAqIGFjY291bnQgaW5mbyBhcyBwcm9taXNlXHJcbiAgICAgKiBAcGFyYW0gaWRcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gcHJvZmlsZU9mKGlkKSB7XHJcbiAgICAgIHJldHVybiBtZS5fYWNjb3VudHMuZ2V0KGlkKS50b1Byb21pc2UoKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogdXNlciBuYW1lLCBjaGF0IGFuY2hvciB0YWdcclxuICAgICAqIEBwYXJhbSB1c2VyXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIG5hbWVPZih1c2VyOiBVc2VySW5mbyk6IHN0cmluZyB7XHJcbiAgICAgIHJldHVybiBtZS5fY2hhdC5mb3JtYXQodXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZnVuY3Rpb24gYWN0aW9uQnkoYWN0aW9uOiBBY3Rpb24sIGdlbmRlcjogR2VuZGVyIHwgJ3lvdScsIGlkPzogbnVtYmVyKSB7XHJcbiAgICAgIGxldCBuYW1lOiBzdHJpbmc7XHJcbiAgICAgIGlmIChnZW5kZXIgPT09IFlvdSkge1xyXG4gICAgICAgIGNvbnN0IHsgZ2VuZGVyIH0gPSBtZS5fc2Vzc2lvbjtcclxuICAgICAgICBuYW1lID0gKGdlbmRlciA9PT0gJ01hbGUnID8gKGFjdGlvbi55b3VNYWxlIHx8IGFjdGlvbi55b3UpIDpcclxuICAgICAgICAgIGdlbmRlciA9PT0gJ0ZlbWFsZScgPyAoYWN0aW9uLnlvdUZlbWFsZSB8fCBhY3Rpb24ueW91KSA6XHJcbiAgICAgICAgICAgIGFjdGlvbi55b3UpIHx8XHJcbiAgICAgICAgICBhY3Rpb24ucGFzdCB8fFxyXG4gICAgICAgICAgYWN0aW9uLnRpdGxlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBuYW1lID0gKGdlbmRlciA9PT0gJ01hbGUnID8gKGFjdGlvbi5wYXN0TWFsZSB8fCBhY3Rpb24ucGFzdCkgOlxyXG4gICAgICAgICAgZ2VuZGVyID09PSAnRmVtYWxlJyA/IChhY3Rpb24ucGFzdEZlbWFsZSB8fCBhY3Rpb24ucGFzdCkgOlxyXG4gICAgICAgICAgICBhY3Rpb24ucGFzdClcclxuICAgICAgICAgIHx8IGFjdGlvbi50aXRsZTtcclxuXHJcbiAgICAgIGlmIChpZCkge1xyXG4gICAgICAgIGNvbnN0IHRvID0gbWUubW9kZWwucmVjaXBpZW50cy5maWx0ZXIociA9PiByLm9yaWdpbklkID09PSBpZCk7XHJcbiAgICAgICAgaWYgKHRvLmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc3QgdXNlcnMgPSBbXTtcclxuICAgICAgICAgIGZvciAobGV0IHdobyBvZiB0bykge1xyXG4gICAgICAgICAgICBsZXQgcHJvZmlsZSA9IGF3YWl0IHByb2ZpbGVPZih3aG8uc3Vic3RpdHV0ZUlkIHx8IHdoby51c2VySWQpO1xyXG4gICAgICAgICAgICB1c2Vycy5wdXNoKG5hbWVPZihwcm9maWxlKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gbWUuX3RyYW5zbGF0ZS5nZXQoJ0FjdGlvblRvJywgbmFtZSwgbWUuX3RyYW5zbGF0ZS5qb2luKHVzZXJzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBuYW1lO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdHJhY2U6IFRyYWNlW10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBsIG9mIGxvZykge1xyXG4gICAgICBsZXQgYWN0aW9uOiBBY3Rpb247XHJcblxyXG4gICAgICBzd2l0Y2ggKGwudHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ0FjdGlvblRha2VuJzpcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbC5hY3Rpb24pO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uLmxvZ2dhYmxlID09PSBmYWxzZSlcclxuICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnQ2hlY2tJbic6XHJcbiAgICAgICAgY2FzZSAnQ2hlY2tPdXQnOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnTW9kZWxDaGFuZ2UnOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnU3VibWl0JzpcclxuICAgICAgICAgIGlmIChsLmVzdGltYXRlKSBjb250aW51ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHN0ZXAgPSB7XHJcbiAgICAgICAgZXN0aW1hdGU6IGwuZXN0aW1hdGUsXHJcbiAgICAgICAgdGltZTogbC50aW1lLFxyXG4gICAgICAgIHR5cGU6IGwudHlwZSxcclxuICAgICAgICBkdXJhdGlvbjogbC5kdXJhdGlvbixcclxuICAgICAgICBub3RlOiBsLm5vdGUsXHJcbiAgICAgICAgc3RhdGU6IGwuc3RhdGVcclxuICAgICAgfSBhcyBUcmFjZTtcclxuXHJcbiAgICAgIHRyYWNlLnB1c2goc3RlcCk7XHJcblxyXG4gICAgICBzd2l0Y2ggKGwudHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ0NoZWNrSW4nOlxyXG4gICAgICAgIGNhc2UgJ0NoZWNrT3V0JzpcclxuICAgICAgICAgIGxldCBhdHRhY2htZW50ID0gYXR0YWNobWVudHMuZmluZChmID0+IGYuaWQgPT09IGwuZmlsZUlkKTtcclxuICAgICAgICAgIHN0ZXAuZmlsZU5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChsLnJlY2lwaWVudElkKSB7XHJcbiAgICAgICAgbGV0IHJlY2lwaWVudCA9IHJlY2lwaWVudHMuZmluZChyID0+IHIuaWQgPT09IGwucmVjaXBpZW50SWQpO1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQucm9sZSlcclxuICAgICAgICAgIHN0ZXAucm9sZSA9IHRoaXMuX3JvbGVOYW1lKHJlY2lwaWVudC5yb2xlKTtcclxuICAgICAgICBzdGVwLmZ5aSA9IHJlY2lwaWVudC5meWk7XHJcblxyXG4gICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKSB7XHJcbiAgICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQpIHtcclxuICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCk7XHJcbiAgICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc3Vic3RpdHV0aW5nID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQpO1xyXG4gICAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmdCeVlvdScsIHdoby5nZW5kZXIsIG5hbWVPZih3aG8pLCBuYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgWW91LCByZWNpcGllbnQuaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxldCBieSA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuYnlJZCksXHJcbiAgICAgICAgICAgICAgICB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCksXHJcbiAgICAgICAgICAgICAgICBzdWJzdGl0dXRpbmcgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnN1YnN0aXR1dGVJZCk7XHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU3Vic3RpdHV0aW5nQnknLCBuYW1lT2Yod2hvKSwgbmFtZU9mKHN1YnN0aXR1dGluZyksIG5hbWVPZihieSkpO1xyXG4gICAgICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhd2FpdCBhY3Rpb25CeShhY3Rpb24sIGJ5LmdlbmRlciwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAocmVjaXBpZW50LnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGluZyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdZb3VTdWJzdGl0dXRpbmcnLCB0aGlzLl9zZXNzaW9uLmdlbmRlciwgbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCB0aGlzLl9zZXNzaW9uLmdlbmRlciwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCk7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nRm9yWW91Jywgd2hvLmdlbmRlciwgbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCB3aG8uZ2VuZGVyLCByZWNpcGllbnQuaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCksXHJcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW5nID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQpO1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZycsIHdoby5nZW5kZXIsIG5hbWVPZih3aG8pLCBuYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgd2hvLmdlbmRlciwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocmVjaXBpZW50LmJ5SWQpIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICBsZXQgYnkgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LmJ5SWQpO1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdZb3VCeScsIG5hbWVPZihieSkpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCBieS5nZW5kZXIsIHJlY2lwaWVudC5pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5WW91JywgbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgWW91LCByZWNpcGllbnQuaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxldCBieSA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuYnlJZCk7XHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCBuYW1lT2Yod2hvKSwgbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgICAgICAgaWYgKGJ5LnJvbGUpXHJcbiAgICAgICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgYnkuZ2VuZGVyLCByZWNpcGllbnQuaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHJlY2lwaWVudC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCBZb3UsIHJlY2lwaWVudC5pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gbmFtZU9mKHdobyk7XHJcbiAgICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgd2hvLmdlbmRlciwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAobC5ieUlkKSB7XHJcbiAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihsLnVzZXJJZCk7XHJcbiAgICAgICAgaWYgKGwuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5SWQpXHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIG5hbWVPZih3aG8pKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCBieSA9IGF3YWl0IHByb2ZpbGVPZihsLmJ5SWQpO1xyXG5cclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5JywgbmFtZU9mKHdobyksIG5hbWVPZihieSkpO1xyXG5cclxuICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChsLnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnWW91Jyk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YobC51c2VySWQpO1xyXG4gICAgICAgIHN0ZXAubmFtZSA9IG5hbWVPZih3aG8pO1xyXG4gICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCByZWNpcGllbnQgb2YgcmVjaXBpZW50cykge1xyXG4gICAgICBpZiAoIXJlY2lwaWVudC5wZW5kaW5nICYmICFyZWNpcGllbnQuZXN0aW1hdGUpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgbGV0IHN0ZXAgPSB7XHJcbiAgICAgICAgdGltZTogcmVjaXBpZW50LnJlY2VpdmVkLFxyXG4gICAgICAgIGZ5aTogcmVjaXBpZW50LmZ5aSxcclxuICAgICAgICBlc3RpbWF0ZTogcmVjaXBpZW50LmVzdGltYXRlLFxyXG4gICAgICAgIHBlbmRpbmc6IHJlY2lwaWVudC5wZW5kaW5nLFxyXG4gICAgICAgIGFjdGlvbjogcmVjaXBpZW50LmFjdGlvbixcclxuICAgICAgICBub3RlOiByZWNpcGllbnQubm90ZSxcclxuICAgICAgICB0eXBlOiByZWNpcGllbnQuZXN0aW1hdGUgPyAnRXN0aW1hdGUnIDogJ1BlbmRpbmcnLFxyXG4gICAgICAgIGR1cmF0aW9uOiByZWNpcGllbnQucGVuZGluZyA/IGRheWpzKCkuZGlmZihyZWNpcGllbnQucmVjZWl2ZWQsICdzJykgOiBudWxsLFxyXG4gICAgICAgIHJvbGU6IHJlY2lwaWVudC5yb2xlID8gdGhpcy5fcm9sZU5hbWUocmVjaXBpZW50LnJvbGUpIDogbnVsbFxyXG4gICAgICB9IGFzIFRyYWNlO1xyXG5cclxuICAgICAgaWYgKHJlY2lwaWVudC5ub2RlSWQpIHtcclxuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5tb2RlbC53b3JrZmxvdy5ub2Rlcy5maW5kKG4gPT4gbi5pZCA9PT0gcmVjaXBpZW50Lm5vZGVJZCk7XHJcbiAgICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuZXN0aW1hdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBtaW4sIG1heCB9ID0gc3VwZXIuX2VzdGltYXRlVGltZShub2RlKTtcclxuICAgICAgICAgICAgaWYgKG1heClcclxuICAgICAgICAgICAgICBzdGVwLmR1cmF0aW9uTWluID0gbWluLFxyXG4gICAgICAgICAgICAgICAgc3RlcC5kdXJhdGlvbk1heCA9IG1heDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKSB7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICBsZXQgd2hvID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC51c2VySWQpO1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmdGb3JZb3UnLCB3aG8uZ2VuZGVyLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICBsZXQgc3Vic3RpdHV0aW5nID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQpO1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdZb3VTdWJzdGl0dXRpbmcnLCB0aGlzLl9zZXNzaW9uLmdlbmRlciwgbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCksXHJcbiAgICAgICAgICAgIHN1YnN0aXR1dGluZyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKTtcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nJywgd2hvLmdlbmRlciwgbmFtZU9mKHdobyksIG5hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC5ieUlkKSB7XHJcbiAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBsZXQgYnkgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LmJ5SWQpO1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCBuYW1lT2Yod2hvKSwgbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgICBpZiAoYnkucm9sZSlcclxuICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAocmVjaXBpZW50LmVzY2FsYXRlZCkge1xyXG4gICAgICAgIGxldCBlc2NhbGF0aW9uID0gdGhpcy5tb2RlbC5sb2cuZmluZChsID0+IGwudHlwZSA9PT0gJ0VzY2FsYXRpb24nICYmIGwucmVjaXBpZW50SWQgPT09IHJlY2lwaWVudC5vcmlnaW5JZCk7XHJcblxyXG4gICAgICAgIGxldCB0byA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICBpZiAoZXNjYWxhdGlvbi51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXNjYWxhdGVkQnlZb3UnLCBuYW1lT2YodG8pKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YoZXNjYWxhdGlvbi51c2VySWQpO1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXNjYWxhdGVkQnknLCBuYW1lT2Yod2hvKSxcclxuICAgICAgICAgICAgbmFtZU9mKHRvKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IG5hbWVPZih3aG8pO1xyXG4gICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdHJhY2UucHVzaChzdGVwKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9kYXRhID0gdHJhY2Uuc29ydCgoYSwgYikgPT4gYS50aW1lID4gYi50aW1lID8gMSA6IGEudGltZSA9PT0gYi50aW1lID8gMCA6IC0xKTtcclxuXHJcbiAgICB0aGlzLl9maWx0ZXIoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsdGVyKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLl9zaG93TW9kZSkge1xyXG4gICAgICBjYXNlICdhY3RpdmUnOlxyXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMubW9kZWwuaXNzdWVkID8gdGhpcy5fZGF0YS5maWx0ZXIobCA9PiBsLnRpbWUgPj0gdGhpcy5tb2RlbC5pc3N1ZWQpIDogdGhpcy5fZGF0YS5zbGljZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdyb3V0ZSc6XHJcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5fZGF0YS5maWx0ZXIobCA9PiBsLnR5cGUgPT09ICdBY3Rpb25UYWtlbicgfHwgbC50eXBlID09PSAnRXN0aW1hdGUnIHx8IGwudHlwZSA9PT0gJ1BlbmRpbmcnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLl9kYXRhO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9zaG93TW9kZTogU2hvd01vZGU7XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd01vZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hvd01vZGU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgc2hvd01vZGUodmFsdWU6IFNob3dNb2RlKSB7XHJcbiAgICB0aGlzLl9zaG93TW9kZSA9IHZhbHVlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3RyYWNlTW9kZScsIHZhbHVlKTtcclxuICAgIHRoaXMuX2RhdGEgJiYgdGhpcy5fZmlsdGVyKCk7XHJcbiAgfVxyXG4gIGNoYXQoZTogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gKGUuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWluZm8nKTtcclxuICAgIHVzZXJJZCAmJlxyXG4gICAgICB0aGlzLl9jaGF0Lm9wZW4odXNlcklkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogbW9kZWwgdmVyc2lvbiBjb21wYXJlXHJcbiAgICogQHBhcmFtIGxvZ1xyXG4gICAqL1xyXG4gIGNvbXBhcmUobG9nOiBUcmFjZSkge1xyXG4gICAgdGhpcy52ZXJzaW9uU2VsZWN0ZWQuZW1pdChsb2cudGltZSk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBUcmFjZSB7XHJcbiAgZnlpPzogYm9vbGVhbjtcclxuICB0eXBlOiBMb2dUeXBlIHwgJ1BlbmRpbmcnIHwgJ0VzdGltYXRlJztcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIGVzdGltYXRlPzogYm9vbGVhbjtcclxuICBwZW5kaW5nPzogYm9vbGVhbjtcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgcm9sZT86IHN0cmluZztcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xyXG4gIGR1cmF0aW9uTWluPzogbnVtYmVyO1xyXG4gIGR1cmF0aW9uTWF4PzogbnVtYmVyO1xyXG4gIGZpbGVOYW1lPzogc3RyaW5nO1xyXG4gIHRpbWU/OiBEYXRlO1xyXG59XHJcblxyXG5kZWNsYXJlIHR5cGUgU2hvd01vZGUgPSAnZXZlcnl0aGluZycgfCAnYWN0aXZlJyB8ICdyb3V0ZSc7XHJcbiIsIjxkaXYgY2xhc3M9XCJuYXYtdG9vbGJhciByb3dcIj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbYml6ZG9jVG9vbHRpcF09XCInU2hvd0FsbCd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmZpbHRlcl9saXN0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI21lbnU+IFxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzaG93TW9kZT0ncm91dGUnXCI+XHJcbiAgICAgIDxtYXQtaWNvbj57eyBzaG93TW9kZSA9PT0gJ3JvdXRlJyA/ICdjaGVjayc6JycgfX08L21hdC1pY29uPlxyXG4gICAgICA8c3Bhbj57eydSb3V0ZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2hvd01vZGU9J2FjdGl2ZSdcIj5cclxuICAgICAgPG1hdC1pY29uPnt7IHNob3dNb2RlID09PSAnYWN0aXZlJyA/ICdjaGVjayc6JycgfX08L21hdC1pY29uPlxyXG4gICAgICA8c3Bhbj57eydBY3RpdmVSb3V0ZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2hvd01vZGU9J2V2ZXJ5dGhpbmcnXCI+XHJcbiAgICAgIDxtYXQtaWNvbj57eyBzaG93TW9kZSA9PT0gJ2V2ZXJ5dGhpbmcnID8gJ2NoZWNrJzonJyB9fTwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuPnt7J0V2ZXJ5dGhpbmcnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9kaXY+XHJcbjx0YWJsZSBjbGFzcz1cIm1hdC10YWJsZVwiIEBsaXN0PlxyXG4gIDx0Ym9keSByb2xlPVwicm93Z3JvdXBcIj5cclxuICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIiAqbmdGb3I9XCJsZXQgbCBvZiBkYXRhXCIgQGl0ZW0+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsLm5hbWUgfCBzYW5pdGl6ZUh0bWxcIiAoY2xpY2spPVwiY2hhdCgkZXZlbnQpXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPWwucm9sZT57eydKb2luQ29tbWEnfHRyYW5zbGF0ZX19e3tsLnJvbGV9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJsLnR5cGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidBY3Rpb25UYWtlbidcIj5cclxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsLmFjdGlvbiB8IHNhbml0aXplSHRtbFwiIChjbGljayk9XCJjaGF0KCRldmVudClcIiBjbGFzcz1cInRvXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ1N1Ym1pdCdcIj57eydJc3N1ZWQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ1BlbmRpbmcnXCI+e3snSXNQZW5kaW5nJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidDaGVja091dCdcIj57eydDaGVja2VkSW4nIHwgdHJhbnNsYXRlIDogbC5maWxlTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidDaGVja0luJ1wiPnt7J0NoZWNrZWRPdXQnIHwgdHJhbnNsYXRlIDogbC5maWxlTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidFc3RpbWF0ZSdcIj57eydFc3RpbWF0ZScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInTW9kZWxDaGFuZ2UnXCI+e3snQ2hhbmdlZCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImwuZnlpXCI+Jm5ic3A7e3snRllJJ3x0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIiBbbmdTd2l0Y2hdPVwibC5lc3RpbWF0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInRydWVcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibC5kdXJhdGlvbk1heCAmJiBsLmR1cmF0aW9uTWF4ID09PSBsLmR1cmF0aW9uTWluXCIgW2JpemRvY1Rvb2x0aXBdPVwibC5kdXJhdGlvbk1heHxhbUR1cmF0aW9uRm9ybWF0XCI+e3snRXN0aW1hdGVUaW1lJ3wgdHJhbnNsYXRlIDogKGwuZHVyYXRpb25NYXggfCBhbUR1cmF0aW9uOidzJyl9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibC5kdXJhdGlvbk1heCAmJiBsLmR1cmF0aW9uTWF4ICE9PSBsLmR1cmF0aW9uTWluXCJcclxuICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cImwuZHVyYXRpb25NYXh8YW1EdXJhdGlvbkZvcm1hdFwiPnt7J0VzdGltYXRlVGltZVJhbmdlJ3wgdHJhbnNsYXRlIDogKGwuZHVyYXRpb25NaW4gfCBhbUR1cmF0aW9uOidzJykgOiAobC5kdXJhdGlvbk1heCB8IGFtRHVyYXRpb246J3MnKX19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxzcGFuPnt7bC50aW1lIHwgYW1DYWxlbmRhciA6IG51bGwgOiBDQUxFTkRBUl9TUEVDIH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmR1cmF0aW9uXCIgW2JpemRvY1Rvb2x0aXBdPVwibC5kdXJhdGlvbnxhbUR1cmF0aW9uRm9ybWF0XCIgY2xhc3M9XCJkdXJhdGlvblwiPiZuYnNwOyh7e2wuZHVyYXRpb24gfCBhbUR1cmF0aW9uOidzJ319KTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImwubm90ZVwiPnt7bC5ub3RlfX08L3NwYW4+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJsLnR5cGU9PT0nTW9kZWxDaGFuZ2UnXCIgKGNsaWNrKT1cImNvbXBhcmUobClcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29tcGFyZSd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwic3RhcnRcIj48bWF0LWljb24+bW9yZV9ob3JpejwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGJvZHk+XHJcbjwvdGFibGU+XHJcbiJdfQ==
578
+ TraceViewComponent.ɵfac = function TraceViewComponent_Factory(t) { return new (t || TraceViewComponent)(i0.ɵɵdirectiveInject(i1.SessionService), i0.ɵɵdirectiveInject(i2.TranslateService), i0.ɵɵdirectiveInject(i3.AccountService), i0.ɵɵdirectiveInject(i4.ChatInfo), i0.ɵɵdirectiveInject(i5.HubService)); };
579
+ TraceViewComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TraceViewComponent, selectors: [["bizdoc-trace"]], inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 29, vars: 18, consts: [[1, "nav-toolbar", "row"], [1, "divider"], ["mat-icon-button", "", 3, "matMenuTriggerFor", "bizdocTooltip"], ["menu", ""], ["mat-menu-item", "", 3, "click"], [1, "mat-table"], ["role", "rowgroup"], ["class", "mat-row", 4, "ngFor", "ngForOf"], [1, "mat-row"], [1, "mat-cell"], [3, "innerHTML", "click"], [4, "ngIf"], [3, "ngSwitch"], [4, "ngSwitchCase"], [1, "mat-cell", 3, "ngSwitch"], [4, "ngSwitchDefault"], ["mat-icon-button", "", "bizdocTooltipPosition", "start", 3, "bizdocTooltip", "click", 4, "ngIf"], [1, "to", 3, "innerHTML", "click"], [3, "bizdocTooltip", 4, "ngIf"], [3, "bizdocTooltip"], ["class", "duration", 3, "bizdocTooltip", 4, "ngIf"], [1, "duration", 3, "bizdocTooltip"], ["mat-icon-button", "", "bizdocTooltipPosition", "start", 3, "bizdocTooltip", "click"]], template: function TraceViewComponent_Template(rf, ctx) { if (rf & 1) {
580
+ i0.ɵɵelementStart(0, "div", 0);
581
+ i0.ɵɵelement(1, "span", 1);
582
+ i0.ɵɵelementStart(2, "button", 2);
583
+ i0.ɵɵpipe(3, "translate");
584
+ i0.ɵɵelementStart(4, "mat-icon");
585
+ i0.ɵɵtext(5, "filter_list");
586
+ i0.ɵɵelementEnd()();
587
+ i0.ɵɵelementStart(6, "mat-menu", null, 3)(8, "button", 4);
588
+ i0.ɵɵlistener("click", function TraceViewComponent_Template_button_click_8_listener() { return ctx.showMode = "route"; });
589
+ i0.ɵɵelementStart(9, "mat-icon");
590
+ i0.ɵɵtext(10);
591
+ i0.ɵɵelementEnd();
592
+ i0.ɵɵelementStart(11, "span");
593
+ i0.ɵɵtext(12);
594
+ i0.ɵɵpipe(13, "translate");
595
+ i0.ɵɵelementEnd()();
596
+ i0.ɵɵelementStart(14, "button", 4);
597
+ i0.ɵɵlistener("click", function TraceViewComponent_Template_button_click_14_listener() { return ctx.showMode = "active"; });
598
+ i0.ɵɵelementStart(15, "mat-icon");
599
+ i0.ɵɵtext(16);
600
+ i0.ɵɵelementEnd();
601
+ i0.ɵɵelementStart(17, "span");
602
+ i0.ɵɵtext(18);
603
+ i0.ɵɵpipe(19, "translate");
604
+ i0.ɵɵelementEnd()();
605
+ i0.ɵɵelementStart(20, "button", 4);
606
+ i0.ɵɵlistener("click", function TraceViewComponent_Template_button_click_20_listener() { return ctx.showMode = "everything"; });
607
+ i0.ɵɵelementStart(21, "mat-icon");
608
+ i0.ɵɵtext(22);
609
+ i0.ɵɵelementEnd();
610
+ i0.ɵɵelementStart(23, "span");
611
+ i0.ɵɵtext(24);
612
+ i0.ɵɵpipe(25, "translate");
613
+ i0.ɵɵelementEnd()()()();
614
+ i0.ɵɵelementStart(26, "table", 5)(27, "tbody", 6);
615
+ i0.ɵɵtemplate(28, TraceViewComponent_tr_28_Template, 21, 18, "tr", 7);
616
+ i0.ɵɵelementEnd()();
617
+ } if (rf & 2) {
618
+ const _r0 = i0.ɵɵreference(7);
619
+ i0.ɵɵadvance(2);
620
+ i0.ɵɵproperty("matMenuTriggerFor", _r0)("bizdocTooltip", i0.ɵɵpipeBind1(3, 10, "ShowAll"));
621
+ i0.ɵɵadvance(8);
622
+ i0.ɵɵtextInterpolate(ctx.showMode === "route" ? "check" : "");
623
+ i0.ɵɵadvance(2);
624
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 12, "Route"));
625
+ i0.ɵɵadvance(4);
626
+ i0.ɵɵtextInterpolate(ctx.showMode === "active" ? "check" : "");
627
+ i0.ɵɵadvance(2);
628
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(19, 14, "ActiveRoute"));
629
+ i0.ɵɵadvance(4);
630
+ i0.ɵɵtextInterpolate(ctx.showMode === "everything" ? "check" : "");
631
+ i0.ɵɵadvance(2);
632
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(25, 16, "Everything"));
633
+ i0.ɵɵadvance(2);
634
+ i0.ɵɵproperty("@list", undefined);
635
+ i0.ɵɵadvance(2);
636
+ i0.ɵɵproperty("ngForOf", ctx.data);
637
+ } }, dependencies: [i6.NgForOf, i6.NgIf, i6.NgSwitch, i6.NgSwitchCase, i6.NgSwitchDefault, i7.MatButton, i8.MatIcon, i9.MatMenu, i9.MatMenuItem, i9.MatMenuTrigger, i10.TooltipDirective, i11.CalendarPipe, i12.DurationPipe, i13.DurationFormatPipe, i14.TranslatePipe, i15.SanitizeHtmlPipe], styles: ["[_nghost-%COMP%]{width:100%}table[_ngcontent-%COMP%]{width:100%;background:transparent}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0 4px}.duration[_ngcontent-%COMP%]{white-space:nowrap}"], data: { animation: [listAnimation, itemAnimation] } });
638
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TraceViewComponent, [{
639
+ type: Component,
640
+ args: [{ selector: 'bizdoc-trace', animations: [listAnimation, itemAnimation], template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Submit'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\">&nbsp;{{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.type==='ModelChange'\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"] }]
641
+ }], function () { return [{ type: i1.SessionService }, { type: i2.TranslateService }, { type: i3.AccountService }, { type: i4.ChatInfo }, { type: i5.HubService }]; }, { model: [{
642
+ type: Input
643
+ }], versionSelected: [{
644
+ type: Output
645
+ }] }); })();
646
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3RyYWNlL3RyYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS90cmFjZS90cmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFNMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDYTdELDRCQUFtQjtJQUFBLFlBQW1DOztJQUFBLGlCQUFPOzs7SUFBMUMsZUFBbUM7SUFBbkMsK0VBQW1DOzs7O0lBSXBELDZCQUE0QztJQUMxQyxnQ0FBOEU7SUFBbEMscUxBQVMsZUFBQSxvQkFBWSxDQUFBLElBQUM7O0lBQVksaUJBQU87SUFDdkYsMEJBQWU7OztJQURQLGVBQXFDO0lBQXJDLGdGQUFxQzs7O0lBRTdDLDRCQUErQjtJQUFBLFlBQXdCOztJQUFBLGlCQUFPOztJQUEvQixlQUF3QjtJQUF4QixvREFBd0I7OztJQUN2RCw0QkFBZ0M7SUFBQSxZQUEyQjs7SUFBQSxpQkFBTzs7SUFBbEMsZUFBMkI7SUFBM0IsdURBQTJCOzs7SUFDM0QsNEJBQWlDO0lBQUEsWUFBd0M7O0lBQUEsaUJBQU87OztJQUEvQyxlQUF3QztJQUF4QyxzRUFBd0M7OztJQUN6RSw0QkFBZ0M7SUFBQSxZQUF5Qzs7SUFBQSxpQkFBTzs7O0lBQWhELGVBQXlDO0lBQXpDLHVFQUF5Qzs7O0lBQ3pFLDRCQUFpQztJQUFBLFlBQTBCOztJQUFBLGlCQUFPOztJQUFqQyxlQUEwQjtJQUExQixzREFBMEI7OztJQUMzRCw0QkFBb0M7SUFBQSxZQUF5Qjs7SUFBQSxpQkFBTzs7SUFBaEMsZUFBeUI7SUFBekIscURBQXlCOzs7SUFFL0QsNEJBQW9CO0lBQUEsWUFBeUI7O0lBQUEsaUJBQU87O0lBQWhDLGVBQXlCO0lBQXpCLGdFQUF5Qjs7O0lBSTNDLGdDQUFnSDs7SUFBQSxZQUFnRTs7O0lBQUEsaUJBQU87OztJQUF4SCxzRUFBZ0Q7SUFBQyxlQUFnRTtJQUFoRSx1R0FBZ0U7OztJQUNoTCxnQ0FDdUQ7O0lBQUEsWUFBd0c7Ozs7SUFBQSxpQkFBTzs7O0lBQWhLLHNFQUFnRDtJQUFDLGVBQXdHO0lBQXhHLDBKQUF3Rzs7O0lBSGpLLDZCQUFtQztJQUNqQyw2RkFBdUw7SUFDdkwsNkZBQ3NLO0lBQ3hLLDBCQUFlOzs7SUFITixlQUFzRDtJQUF0RCxnRkFBc0Q7SUFDdEQsZUFBc0Q7SUFBdEQsZ0ZBQXNEOzs7SUFLN0QsZ0NBQXdGOztJQUFBLFlBQXVDOztJQUFBLGlCQUFPOzs7SUFBN0csbUVBQTZDO0lBQWtCLGVBQXVDO0lBQXZDLCtFQUF1Qzs7O0lBRmpJLDZCQUErQjtJQUM3Qiw0QkFBTTtJQUFBLFlBQStDOztJQUFBLGlCQUFPO0lBQzVELDRGQUFzSTtJQUN4SSwwQkFBZTs7OztJQUZQLGVBQStDO0lBQS9DLGtGQUErQztJQUM5QyxlQUFnQjtJQUFoQixvQ0FBZ0I7OztJQUl6Qiw0QkFBcUI7SUFBQSxZQUFVO0lBQUEsaUJBQU87OztJQUFqQixlQUFVO0lBQVYsK0JBQVU7Ozs7SUFDL0Isa0NBQWdKO0lBQXpGLHNOQUFTLGVBQUEscUJBQVUsQ0FBQSxJQUFDOztJQUFxRSxnQ0FBVTtJQUFBLDBCQUFVO0lBQUEsaUJBQVcsRUFBQTs7SUFBbkcsK0RBQXFDOzs7O0lBaENySCw2QkFBaUQsWUFBQSxlQUFBO0lBRUgscUtBQVMsZUFBQSxvQkFBWSxDQUFBLElBQUM7O0lBQUMsaUJBQU87SUFDeEUsNEVBQTZEO0lBQy9ELGlCQUFLO0lBQ0wsNkJBQXFCO0lBQ25CLGlDQUFrQztJQUNoQyw0RkFFZTtJQUNmLDRFQUE4RDtJQUM5RCw0RUFBa0U7SUFDbEUsOEVBQWdGO0lBQ2hGLDhFQUFnRjtJQUNoRiw4RUFBa0U7SUFDbEUsOEVBQW9FO0lBQ3RFLDBCQUFlO0lBQ2YsOEVBQW9EO0lBQ3RELGlCQUFLO0lBQ0wsK0JBQTZDO0lBQzNDLDhGQUllO0lBQ2YsOEZBR2U7SUFDakIsaUJBQUs7SUFDTCw4QkFBcUI7SUFDbkIsOEVBQXNDO0lBQ3RDLGtGQUF3TDtJQUMxTCxpQkFBSyxFQUFBOzs7SUFqQ29DLGlDQUFLO0lBRXRDLGVBQW1DO0lBQW5DLCtFQUFtQztJQUNsQyxlQUFXO0lBQVgsZ0NBQVc7SUFHSixlQUFtQjtJQUFuQixvQ0FBbUI7SUFDaEIsZUFBMkI7SUFBM0IsNENBQTJCO0lBR25DLGVBQXNCO0lBQXRCLHVDQUFzQjtJQUN0QixlQUF1QjtJQUF2Qix3Q0FBdUI7SUFDdkIsZUFBd0I7SUFBeEIseUNBQXdCO0lBQ3hCLGVBQXVCO0lBQXZCLHdDQUF1QjtJQUN2QixlQUF3QjtJQUF4Qix5Q0FBd0I7SUFDeEIsZUFBMkI7SUFBM0IsNENBQTJCO0lBRTdCLGVBQVc7SUFBWCwrQkFBVztJQUVDLGVBQXVCO0lBQXZCLHdDQUF1QjtJQUMzQixlQUFrQjtJQUFsQixtQ0FBa0I7SUFXMUIsZUFBWTtJQUFaLGdDQUFZO0lBQ00sZUFBNEI7SUFBNUIsa0RBQTRCOztBRHhDN0Qsb0NBQW9DO0FBT3BDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUFTO0lBVy9DLFlBQ0UsT0FBdUIsRUFDZixVQUE0QixFQUM1QixTQUF5QixFQUN6QixLQUFlLEVBQ3ZCLEdBQWU7UUFDZixLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSlosZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQWJOLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM5RCxTQUFJLEdBQVksRUFBRSxDQUFDO1FBRVYsa0JBQWEsR0FBaUI7WUFDckMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7WUFDcEQsUUFBUSxFQUFFLFlBQVk7WUFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7WUFDaEQsUUFBUSxFQUFFLGFBQWE7U0FDeEIsQ0FBQztRQVFBLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQWEsSUFBSSxZQUFZLENBQUM7SUFDakYsQ0FBQztJQUNTLEtBQUssQ0FBQyxXQUFXO1FBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRTVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztRQUNoQjs7O1dBR0c7UUFDSCxTQUFTLFNBQVMsQ0FBQyxFQUFFO1lBQ25CLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUNEOzs7V0FHRztRQUNILFNBQVMsTUFBTSxDQUFDLElBQWM7WUFDNUIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBRUQsS0FBSyxVQUFVLFFBQVEsQ0FBQyxNQUFjLEVBQUUsTUFBc0IsRUFBRSxFQUFXO1lBQ3pFLElBQUksSUFBWSxDQUFDO1lBQ2pCLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDbEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQy9CLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDMUQsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3dCQUN0RCxNQUFNLENBQUMsR0FBRyxDQUFDO29CQUNiLE1BQU0sQ0FBQyxJQUFJO29CQUNYLE1BQU0sQ0FBQyxLQUFLLENBQUM7YUFDaEI7O2dCQUVDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDNUQsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dCQUN4RCxNQUFNLENBQUMsSUFBSSxDQUFDO3VCQUNYLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFFcEIsSUFBSSxFQUFFLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO29CQUNiLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDakIsS0FBSyxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7d0JBQ2xCLElBQUksT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUM5RCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDdkU7YUFDRjtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFZLEVBQUUsQ0FBQztRQUUxQixLQUFLLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRTtZQUNqQixJQUFJLE1BQWMsQ0FBQztZQUVuQixRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2QsS0FBSyxhQUFhO29CQUNoQjt3QkFDRSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUN0RSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSzs0QkFDM0IsU0FBUzt3QkFDWCxNQUFNO3FCQUNQO2dCQUNILEtBQUssU0FBUyxDQUFDO2dCQUNmLEtBQUssVUFBVTtvQkFDYixNQUFNO2dCQUNSLEtBQUssYUFBYTtvQkFDaEIsTUFBTTtnQkFDUixLQUFLLFFBQVE7b0JBQ1gsSUFBSSxDQUFDLENBQUMsUUFBUTt3QkFBRSxTQUFTO29CQUN6QixNQUFNO2dCQUNSO29CQUNFLFNBQVM7YUFDWjtZQUVELElBQUksSUFBSSxHQUFHO2dCQUNULFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtnQkFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dCQUNaLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtnQkFDWixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7Z0JBQ3BCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtnQkFDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7YUFDTixDQUFDO1lBRVgsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVqQixRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2QsS0FBSyxTQUFTLENBQUM7Z0JBQ2YsS0FBSyxVQUFVO29CQUNiLElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO29CQUNwQyxNQUFNO2FBQ1Q7WUFFRCxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUU7Z0JBQ2pCLElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxTQUFTLENBQUMsSUFBSTtvQkFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO2dCQUV6QixJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUU7b0JBQzFCLElBQUksU0FBUyxDQUFDLElBQUksRUFBRTt3QkFDbEIsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFOzRCQUMzQyxJQUFJLEdBQUcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7NEJBQzVDLElBQUksU0FBUyxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07Z0NBQ2pELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lDQUNuRDtnQ0FDSCxJQUFJLFlBQVksR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7Z0NBQzNELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7NkJBQzdHOzRCQUNELElBQUksTUFBTTtnQ0FDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3lCQUMzRDs2QkFDSTs0QkFDSCxJQUFJLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ3RDLEdBQUcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQ3ZDLFlBQVksR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7NEJBQ3pELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs0QkFDakcsSUFBSSxFQUFFLENBQUMsSUFBSTtnQ0FDVCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7NEJBQ3RCLElBQUksTUFBTTtnQ0FDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt5QkFDakU7cUJBQ0Y7eUJBQ0ksSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO3dCQUNsRCxJQUFJLFlBQVksR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBQzNELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7d0JBQ3ZHLElBQUksTUFBTTs0QkFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQzVFO3lCQUNJLElBQUksU0FBUyxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTt3QkFDeEQsSUFBSSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBQ3ZGLElBQUksTUFBTTs0QkFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDbEU7eUJBQ0k7d0JBQ0gsSUFBSSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUN6QyxZQUFZLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUN6RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQzt3QkFDdkcsSUFBSSxHQUFHLENBQUMsSUFBSTs0QkFDVixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7d0JBQ3ZCLElBQUksTUFBTTs0QkFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDbEU7aUJBQ0Y7cUJBQ0ksSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFO29CQUN2QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7d0JBQzdDLElBQUksRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ3JELElBQUksTUFBTTs0QkFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDakU7eUJBQ0k7d0JBQ0gsSUFBSSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUM1QyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7NEJBQzNDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDOzRCQUN0RCxJQUFJLE1BQU07Z0NBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt5QkFDM0Q7NkJBQ0k7NEJBQ0gsSUFBSSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7NEJBQy9ELElBQUksRUFBRSxDQUFDLElBQUk7Z0NBQ1QsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOzRCQUN0QixJQUFJLE1BQU07Z0NBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7eUJBQ2pFO3FCQUNGO2lCQUNGO3FCQUNJO29CQUNILElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTt3QkFDN0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDdkMsSUFBSSxNQUFNOzRCQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQzNEO3lCQUNJO3dCQUNILElBQUksR0FBRyxHQUFHLE1BQU0sU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDNUMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ3hCLElBQUksR0FBRyxDQUFDLElBQUk7NEJBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO3dCQUN2QixJQUFJLE1BQU07NEJBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ2xFO2lCQUNGO2FBQ0Y7aUJBQ0ksSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFO2dCQUNmLElBQUksR0FBRyxHQUFHLE1BQU0sU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUk7b0JBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUNuRDtvQkFDSCxJQUFJLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRWpDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFFL0QsSUFBSSxFQUFFLENBQUMsSUFBSTt3QkFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ3ZCO2FBQ0Y7aUJBQ0ksSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtnQkFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDcEM7Z0JBQ0gsSUFBSSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxHQUFHLENBQUMsSUFBSTtvQkFDVixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7YUFDeEI7U0FDRjtRQUNELEtBQUssSUFBSSxTQUFTLElBQUksVUFBVSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVE7Z0JBQUUsU0FBUztZQUV4RCxJQUFJLElBQUksR0FBRztnQkFDVCxJQUFJLEVBQUUsU0FBUyxDQUFDLFFBQVE7Z0JBQ3hCLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRztnQkFDbEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO2dCQUM1QixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87Z0JBQzFCLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTtnQkFDeEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO2dCQUNwQixJQUFJLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUNqRCxRQUFRLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQzFFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTthQUNwRCxDQUFDO1lBRVgsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzVFLElBQUksSUFBSSxFQUFFO29CQUNSLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTt3QkFDdEIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUMvQyxJQUFJLEdBQUc7NEJBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHO2dDQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztxQkFDNUI7aUJBQ0Y7YUFDRjtZQUVELElBQUksU0FBUyxDQUFDLFlBQVksRUFBRTtnQkFDMUIsSUFBSSxTQUFTLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO29CQUNuRCxJQUFJLEdBQUcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDeEY7cUJBQ0ksSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO29CQUNsRCxJQUFJLFlBQVksR0FBRyxNQUFNLFNBQVMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzNELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7aUJBQ3hHO3FCQUNJO29CQUNILElBQUksR0FBRyxHQUFHLE1BQU0sU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFDekMsWUFBWSxHQUFHLE1BQU0sU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDekQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7b0JBQ3ZHLElBQUksR0FBRyxDQUFDLElBQUk7d0JBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2lCQUN4QjthQUNGO2lCQUNJLElBQUksU0FBUyxDQUFDLElBQUksRUFBRTtnQkFDdkIsSUFBSSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO29CQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDbkQ7b0JBQ0gsSUFBSSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQy9ELElBQUksRUFBRSxDQUFDLElBQUk7d0JBQ1QsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO2lCQUN2QjthQUNGO2lCQUNJLElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRTtnQkFDNUIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRTNHLElBQUksRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtvQkFDNUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDM0Q7b0JBQ0gsSUFBSSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQ3hELE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNmO2FBQ0Y7aUJBQ0k7Z0JBQ0gsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtvQkFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDcEM7b0JBQ0gsSUFBSSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEIsSUFBSSxHQUFHLENBQUMsSUFBSTt3QkFDVixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7aUJBQ3hCO2FBQ0Y7WUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ08sT0FBTztRQUNiLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN0QixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pHLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssYUFBYSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUM7Z0JBQzlHLE1BQU07WUFDUjtnQkFDRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ3ZCLE1BQU07U0FDVDtJQUNILENBQUM7SUFHRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxLQUFlO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLENBQUMsQ0FBYTtRQUNoQixNQUFNLE1BQU0sR0FBSSxDQUFDLENBQUMsVUFBMEIsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkUsTUFBTTtZQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRDs7O09BR0c7SUFDSCxPQUFPLENBQUMsR0FBVTtRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7b0ZBeFZVLGtCQUFrQjtxRUFBbEIsa0JBQWtCO1FDbkIvQiw4QkFBNkI7UUFDM0IsMEJBQTZCO1FBQzdCLGlDQUF5Rjs7UUFBQSxnQ0FBVTtRQUFBLDJCQUFXO1FBQUEsaUJBQVcsRUFBQTtRQUN6SCx5Q0FBZ0IsZ0JBQUE7UUFDUSw4R0FBa0IsT0FBTyxJQUFDO1FBQzlDLGdDQUFVO1FBQUEsYUFBdUM7UUFBQSxpQkFBVztRQUM1RCw2QkFBTTtRQUFBLGFBQXdCOztRQUFBLGlCQUFPLEVBQUE7UUFFdkMsa0NBQWtEO1FBQTVCLCtHQUFrQixRQUFRLElBQUM7UUFDL0MsaUNBQVU7UUFBQSxhQUF3QztRQUFBLGlCQUFXO1FBQzdELDZCQUFNO1FBQUEsYUFBOEI7O1FBQUEsaUJBQU8sRUFBQTtRQUU3QyxrQ0FBc0Q7UUFBaEMsK0dBQWtCLFlBQVksSUFBQztRQUNuRCxpQ0FBVTtRQUFBLGFBQTRDO1FBQUEsaUJBQVc7UUFDakUsNkJBQU07UUFBQSxhQUE2Qjs7UUFBQSxpQkFBTyxFQUFBLEVBQUEsRUFBQTtRQUloRCxpQ0FBK0IsZ0JBQUE7UUFFM0IscUVBa0NLO1FBQ1AsaUJBQVEsRUFBQTs7O1FBckRnQixlQUEwQjtRQUExQix1Q0FBMEIsbURBQUE7UUFHcEMsZUFBdUM7UUFBdkMsNkRBQXVDO1FBQzNDLGVBQXdCO1FBQXhCLHFEQUF3QjtRQUdwQixlQUF3QztRQUF4Qyw4REFBd0M7UUFDNUMsZUFBOEI7UUFBOUIsMkRBQThCO1FBRzFCLGVBQTRDO1FBQTVDLGtFQUE0QztRQUNoRCxlQUE2QjtRQUE3QiwwREFBNkI7UUFJaEIsZUFBSztRQUFMLGlDQUFLO1FBRVEsZUFBTztRQUFQLGtDQUFPOzJnQkRIL0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDO3VGQUUvQixrQkFBa0I7Y0FOOUIsU0FBUzsyQkFDRSxjQUFjLGNBR1osQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDOzZLQUdqQyxLQUFLO2tCQUFiLEtBQUs7WUFDYSxlQUFlO2tCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IENhbGVuZGFyU3BlYyB9IGZyb20gXCIuLi8uLi9jb3JlL3BpcGVzL2NhbGVuZGFyLnBpcGVcIjtcclxuaW1wb3J0IHsgVXNlckluZm8sIExvZ1R5cGUsIERvY3VtZW50TW9kZWwsIEFjdGlvbiwgR2VuZGVyIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFjZUJhc2UsIFlvdSB9IGZyb20gXCIuL3RyYWNlLmJhc2VcIjtcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2h1Yi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENoYXRJbmZvIH0gZnJvbSBcIi4uLy4uL2NoYXQvY2hhdC1pbmZvXCI7XHJcbmltcG9ydCB7IGl0ZW1BbmltYXRpb24sIGxpc3RBbmltYXRpb24gfSBmcm9tIFwiLi4vLi4vY29yZS9hbmltYXRpb25zXCI7XHJcblxyXG4vKiogY29tcG9uZW50IHNob3dpbmcgdHJhY2UgdGFibGUgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtdHJhY2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAndHJhY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWyd0cmFjZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtsaXN0QW5pbWF0aW9uLCBpdGVtQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhY2VWaWV3Q29tcG9uZW50IGV4dGVuZHMgVHJhY2VCYXNlIHtcclxuICBASW5wdXQoKSBtb2RlbDogRG9jdW1lbnRNb2RlbDxhbnk+O1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSB2ZXJzaW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgZGF0YTogVHJhY2VbXSA9IFtdO1xyXG4gIHByaXZhdGUgX2RhdGE6IFRyYWNlW107XHJcbiAgcmVhZG9ubHkgQ0FMRU5EQVJfU1BFQzogQ2FsZW5kYXJTcGVjID0ge1xyXG4gICAgbGFzdERheTogdGhpcy5fdHJhbnNsYXRlLmdldCgnWWVzdGVyZGF5QXQnLCAnSEg6bW0nKSxcclxuICAgIGxhc3RXZWVrOiAnZGRkZCBISDptbScsXHJcbiAgICBzYW1lRGF5OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdUb2RheUF0JywgJ0hIOm1tJyksXHJcbiAgICBzYW1lRWxzZTogJ01NTSBEIEhIOm1tJ1xyXG4gIH07XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYXQ6IENoYXRJbmZvLFxyXG4gICAgaHViOiBIdWJTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihzZXNzaW9uLCBodWIpO1xyXG4gICAgdGhpcy5fc2hvd01vZGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndHJhY2VNb2RlJykgYXMgU2hvd01vZGUgfHwgJ2V2ZXJ5dGhpbmcnO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgYXN5bmMgX2luaXRpYWxpemUoKSB7XHJcbiAgICBjb25zdCB7IGlzc3VlZCwgbG9nLCByZWNpcGllbnRzLCBhdHRhY2htZW50cyB9ID0gdGhpcy5tb2RlbDtcclxuXHJcbiAgICBjb25zdCBtZSA9IHRoaXM7XHJcbiAgICAvKipcclxuICAgICAqIGFjY291bnQgaW5mbyBhcyBwcm9taXNlXHJcbiAgICAgKiBAcGFyYW0gaWRcclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gcHJvZmlsZU9mKGlkKSB7XHJcbiAgICAgIHJldHVybiBtZS5fYWNjb3VudHMuZ2V0KGlkKS50b1Byb21pc2UoKTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogdXNlciBuYW1lLCBjaGF0IGFuY2hvciB0YWdcclxuICAgICAqIEBwYXJhbSB1c2VyXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIG5hbWVPZih1c2VyOiBVc2VySW5mbyk6IHN0cmluZyB7XHJcbiAgICAgIHJldHVybiBtZS5fY2hhdC5mb3JtYXQodXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZnVuY3Rpb24gYWN0aW9uQnkoYWN0aW9uOiBBY3Rpb24sIGdlbmRlcjogR2VuZGVyIHwgJ3lvdScsIGlkPzogbnVtYmVyKSB7XHJcbiAgICAgIGxldCBuYW1lOiBzdHJpbmc7XHJcbiAgICAgIGlmIChnZW5kZXIgPT09IFlvdSkge1xyXG4gICAgICAgIGNvbnN0IHsgZ2VuZGVyIH0gPSBtZS5fc2Vzc2lvbjtcclxuICAgICAgICBuYW1lID0gKGdlbmRlciA9PT0gJ01hbGUnID8gKGFjdGlvbi55b3VNYWxlIHx8IGFjdGlvbi55b3UpIDpcclxuICAgICAgICAgIGdlbmRlciA9PT0gJ0ZlbWFsZScgPyAoYWN0aW9uLnlvdUZlbWFsZSB8fCBhY3Rpb24ueW91KSA6XHJcbiAgICAgICAgICAgIGFjdGlvbi55b3UpIHx8XHJcbiAgICAgICAgICBhY3Rpb24ucGFzdCB8fFxyXG4gICAgICAgICAgYWN0aW9uLnRpdGxlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBuYW1lID0gKGdlbmRlciA9PT0gJ01hbGUnID8gKGFjdGlvbi5wYXN0TWFsZSB8fCBhY3Rpb24ucGFzdCkgOlxyXG4gICAgICAgICAgZ2VuZGVyID09PSAnRmVtYWxlJyA/IChhY3Rpb24ucGFzdEZlbWFsZSB8fCBhY3Rpb24ucGFzdCkgOlxyXG4gICAgICAgICAgICBhY3Rpb24ucGFzdClcclxuICAgICAgICAgIHx8IGFjdGlvbi50aXRsZTtcclxuXHJcbiAgICAgIGlmIChpZCkge1xyXG4gICAgICAgIGNvbnN0IHRvID0gbWUubW9kZWwucmVjaXBpZW50cy5maWx0ZXIociA9PiByLm9yaWdpbklkID09PSBpZCk7XHJcbiAgICAgICAgaWYgKHRvLmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc3QgdXNlcnMgPSBbXTtcclxuICAgICAgICAgIGZvciAobGV0IHdobyBvZiB0bykge1xyXG4gICAgICAgICAgICBsZXQgcHJvZmlsZSA9IGF3YWl0IHByb2ZpbGVPZih3aG8uc3Vic3RpdHV0ZUlkIHx8IHdoby51c2VySWQpO1xyXG4gICAgICAgICAgICB1c2Vycy5wdXNoKG5hbWVPZihwcm9maWxlKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gbWUuX3RyYW5zbGF0ZS5nZXQoJ0FjdGlvblRvJywgbmFtZSwgbWUuX3RyYW5zbGF0ZS5qb2luKHVzZXJzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBuYW1lO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdHJhY2U6IFRyYWNlW10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBsIG9mIGxvZykge1xyXG4gICAgICBsZXQgYWN0aW9uOiBBY3Rpb247XHJcblxyXG4gICAgICBzd2l0Y2ggKGwudHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ0FjdGlvblRha2VuJzpcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbC5hY3Rpb24pO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uLmxvZ2dhYmxlID09PSBmYWxzZSlcclxuICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgY2FzZSAnQ2hlY2tJbic6XHJcbiAgICAgICAgY2FzZSAnQ2hlY2tPdXQnOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnTW9kZWxDaGFuZ2UnOlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnU3VibWl0JzpcclxuICAgICAgICAgIGlmIChsLmVzdGltYXRlKSBjb250aW51ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHN0ZXAgPSB7XHJcbiAgICAgICAgZXN0aW1hdGU6IGwuZXN0aW1hdGUsXHJcbiAgICAgICAgdGltZTogbC50aW1lLFxyXG4gICAgICAgIHR5cGU6IGwudHlwZSxcclxuICAgICAgICBkdXJhdGlvbjogbC5kdXJhdGlvbixcclxuICAgICAgICBub3RlOiBsLm5vdGUsXHJcbiAgICAgICAgc3RhdGU6IGwuc3RhdGVcclxuICAgICAgfSBhcyBUcmFjZTtcclxuXHJcbiAgICAgIHRyYWNlLnB1c2goc3RlcCk7XHJcblxyXG4gICAgICBzd2l0Y2ggKGwudHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ0NoZWNrSW4nOlxyXG4gICAgICAgIGNhc2UgJ0NoZWNrT3V0JzpcclxuICAgICAgICAgIGxldCBhdHRhY2htZW50ID0gYXR0YWNobWVudHMuZmluZChmID0+IGYuaWQgPT09IGwuZmlsZUlkKTtcclxuICAgICAgICAgIHN0ZXAuZmlsZU5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChsLnJlY2lwaWVudElkKSB7XHJcbiAgICAgICAgbGV0IHJlY2lwaWVudCA9IHJlY2lwaWVudHMuZmluZChyID0+IHIuaWQgPT09IGwucmVjaXBpZW50SWQpO1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQucm9sZSlcclxuICAgICAgICAgIHN0ZXAucm9sZSA9IHRoaXMuX3JvbGVOYW1lKHJlY2lwaWVudC5yb2xlKTtcclxuICAgICAgICBzdGVwLmZ5aSA9IHJlY2lwaWVudC5meWk7XHJcblxyXG4gICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKSB7XHJcbiAgICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQpIHtcclxuICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCk7XHJcbiAgICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc3Vic3RpdHV0aW5nID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQpO1xyXG4gICAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmdCeVlvdScsIHdoby5nZW5kZXIsIG5hbWVPZih3aG8pLCBuYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgWW91LCByZWNpcGllbnQuaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxldCBieSA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuYnlJZCksXHJcbiAgICAgICAgICAgICAgICB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCksXHJcbiAgICAgICAgICAgICAgICBzdWJzdGl0dXRpbmcgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnN1YnN0aXR1dGVJZCk7XHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU3Vic3RpdHV0aW5nQnknLCBuYW1lT2Yod2hvKSwgbmFtZU9mKHN1YnN0aXR1dGluZyksIG5hbWVPZihieSkpO1xyXG4gICAgICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhd2FpdCBhY3Rpb25CeShhY3Rpb24sIGJ5LmdlbmRlciwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAocmVjaXBpZW50LnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGluZyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdZb3VTdWJzdGl0dXRpbmcnLCB0aGlzLl9zZXNzaW9uLmdlbmRlciwgbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCB0aGlzLl9zZXNzaW9uLmdlbmRlciwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCk7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nRm9yWW91Jywgd2hvLmdlbmRlciwgbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCB3aG8uZ2VuZGVyLCByZWNpcGllbnQuaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCksXHJcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW5nID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQpO1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZycsIHdoby5nZW5kZXIsIG5hbWVPZih3aG8pLCBuYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgd2hvLmdlbmRlciwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocmVjaXBpZW50LmJ5SWQpIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICBsZXQgYnkgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LmJ5SWQpO1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdZb3VCeScsIG5hbWVPZihieSkpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCBieS5nZW5kZXIsIHJlY2lwaWVudC5pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5WW91JywgbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgWW91LCByZWNpcGllbnQuaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxldCBieSA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuYnlJZCk7XHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCBuYW1lT2Yod2hvKSwgbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgICAgICAgaWYgKGJ5LnJvbGUpXHJcbiAgICAgICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgYnkuZ2VuZGVyLCByZWNpcGllbnQuaWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHJlY2lwaWVudC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYXdhaXQgYWN0aW9uQnkoYWN0aW9uLCBZb3UsIHJlY2lwaWVudC5pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gbmFtZU9mKHdobyk7XHJcbiAgICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGF3YWl0IGFjdGlvbkJ5KGFjdGlvbiwgd2hvLmdlbmRlciwgcmVjaXBpZW50LmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAobC5ieUlkKSB7XHJcbiAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihsLnVzZXJJZCk7XHJcbiAgICAgICAgaWYgKGwuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5SWQpXHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIG5hbWVPZih3aG8pKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCBieSA9IGF3YWl0IHByb2ZpbGVPZihsLmJ5SWQpO1xyXG5cclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5JywgbmFtZU9mKHdobyksIG5hbWVPZihieSkpO1xyXG5cclxuICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChsLnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnWW91Jyk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YobC51c2VySWQpO1xyXG4gICAgICAgIHN0ZXAubmFtZSA9IG5hbWVPZih3aG8pO1xyXG4gICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCByZWNpcGllbnQgb2YgcmVjaXBpZW50cykge1xyXG4gICAgICBpZiAoIXJlY2lwaWVudC5wZW5kaW5nICYmICFyZWNpcGllbnQuZXN0aW1hdGUpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgbGV0IHN0ZXAgPSB7XHJcbiAgICAgICAgdGltZTogcmVjaXBpZW50LnJlY2VpdmVkLFxyXG4gICAgICAgIGZ5aTogcmVjaXBpZW50LmZ5aSxcclxuICAgICAgICBlc3RpbWF0ZTogcmVjaXBpZW50LmVzdGltYXRlLFxyXG4gICAgICAgIHBlbmRpbmc6IHJlY2lwaWVudC5wZW5kaW5nLFxyXG4gICAgICAgIGFjdGlvbjogcmVjaXBpZW50LmFjdGlvbixcclxuICAgICAgICBub3RlOiByZWNpcGllbnQubm90ZSxcclxuICAgICAgICB0eXBlOiByZWNpcGllbnQuZXN0aW1hdGUgPyAnRXN0aW1hdGUnIDogJ1BlbmRpbmcnLFxyXG4gICAgICAgIGR1cmF0aW9uOiByZWNpcGllbnQucGVuZGluZyA/IGRheWpzKCkuZGlmZihyZWNpcGllbnQucmVjZWl2ZWQsICdzJykgOiBudWxsLFxyXG4gICAgICAgIHJvbGU6IHJlY2lwaWVudC5yb2xlID8gdGhpcy5fcm9sZU5hbWUocmVjaXBpZW50LnJvbGUpIDogbnVsbFxyXG4gICAgICB9IGFzIFRyYWNlO1xyXG5cclxuICAgICAgaWYgKHJlY2lwaWVudC5ub2RlSWQpIHtcclxuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5tb2RlbC53b3JrZmxvdy5ub2Rlcy5maW5kKG4gPT4gbi5pZCA9PT0gcmVjaXBpZW50Lm5vZGVJZCk7XHJcbiAgICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuZXN0aW1hdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBtaW4sIG1heCB9ID0gc3VwZXIuX2VzdGltYXRlVGltZShub2RlKTtcclxuICAgICAgICAgICAgaWYgKG1heClcclxuICAgICAgICAgICAgICBzdGVwLmR1cmF0aW9uTWluID0gbWluLFxyXG4gICAgICAgICAgICAgICAgc3RlcC5kdXJhdGlvbk1heCA9IG1heDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKSB7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICBsZXQgd2hvID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC51c2VySWQpO1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmdGb3JZb3UnLCB3aG8uZ2VuZGVyLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSB7XHJcbiAgICAgICAgICBsZXQgc3Vic3RpdHV0aW5nID0gYXdhaXQgcHJvZmlsZU9mKHJlY2lwaWVudC5zdWJzdGl0dXRlSWQpO1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdZb3VTdWJzdGl0dXRpbmcnLCB0aGlzLl9zZXNzaW9uLmdlbmRlciwgbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LnVzZXJJZCksXHJcbiAgICAgICAgICAgIHN1YnN0aXR1dGluZyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQuc3Vic3RpdHV0ZUlkKTtcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nJywgd2hvLmdlbmRlciwgbmFtZU9mKHdobyksIG5hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC5ieUlkKSB7XHJcbiAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCBuYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBsZXQgYnkgPSBhd2FpdCBwcm9maWxlT2YocmVjaXBpZW50LmJ5SWQpO1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnknLCBuYW1lT2Yod2hvKSwgbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgICBpZiAoYnkucm9sZSlcclxuICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAocmVjaXBpZW50LmVzY2FsYXRlZCkge1xyXG4gICAgICAgIGxldCBlc2NhbGF0aW9uID0gdGhpcy5tb2RlbC5sb2cuZmluZChsID0+IGwudHlwZSA9PT0gJ0VzY2FsYXRpb24nICYmIGwucmVjaXBpZW50SWQgPT09IHJlY2lwaWVudC5vcmlnaW5JZCk7XHJcblxyXG4gICAgICAgIGxldCB0byA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICBpZiAoZXNjYWxhdGlvbi51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXNjYWxhdGVkQnlZb3UnLCBuYW1lT2YodG8pKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCBwcm9maWxlT2YoZXNjYWxhdGlvbi51c2VySWQpO1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXNjYWxhdGVkQnknLCBuYW1lT2Yod2hvKSxcclxuICAgICAgICAgICAgbmFtZU9mKHRvKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHdobyA9IGF3YWl0IHByb2ZpbGVPZihyZWNpcGllbnQudXNlcklkKTtcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IG5hbWVPZih3aG8pO1xyXG4gICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdHJhY2UucHVzaChzdGVwKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9kYXRhID0gdHJhY2Uuc29ydCgoYSwgYikgPT4gYS50aW1lID4gYi50aW1lID8gMSA6IGEudGltZSA9PT0gYi50aW1lID8gMCA6IC0xKTtcclxuXHJcbiAgICB0aGlzLl9maWx0ZXIoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsdGVyKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLl9zaG93TW9kZSkge1xyXG4gICAgICBjYXNlICdhY3RpdmUnOlxyXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMubW9kZWwuaXNzdWVkID8gdGhpcy5fZGF0YS5maWx0ZXIobCA9PiBsLnRpbWUgPj0gdGhpcy5tb2RlbC5pc3N1ZWQpIDogdGhpcy5fZGF0YS5zbGljZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdyb3V0ZSc6XHJcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5fZGF0YS5maWx0ZXIobCA9PiBsLnR5cGUgPT09ICdBY3Rpb25UYWtlbicgfHwgbC50eXBlID09PSAnRXN0aW1hdGUnIHx8IGwudHlwZSA9PT0gJ1BlbmRpbmcnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLmRhdGEgPSB0aGlzLl9kYXRhO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9zaG93TW9kZTogU2hvd01vZGU7XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd01vZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hvd01vZGU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgc2hvd01vZGUodmFsdWU6IFNob3dNb2RlKSB7XHJcbiAgICB0aGlzLl9zaG93TW9kZSA9IHZhbHVlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3RyYWNlTW9kZScsIHZhbHVlKTtcclxuICAgIHRoaXMuX2RhdGEgJiYgdGhpcy5fZmlsdGVyKCk7XHJcbiAgfVxyXG4gIGNoYXQoZTogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gKGUuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWluZm8nKTtcclxuICAgIHVzZXJJZCAmJlxyXG4gICAgICB0aGlzLl9jaGF0Lm9wZW4odXNlcklkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogbW9kZWwgdmVyc2lvbiBjb21wYXJlXHJcbiAgICogQHBhcmFtIGxvZ1xyXG4gICAqL1xyXG4gIGNvbXBhcmUobG9nOiBUcmFjZSkge1xyXG4gICAgdGhpcy52ZXJzaW9uU2VsZWN0ZWQuZW1pdChsb2cudGltZSk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBUcmFjZSB7XHJcbiAgZnlpPzogYm9vbGVhbjtcclxuICB0eXBlOiBMb2dUeXBlIHwgJ1BlbmRpbmcnIHwgJ0VzdGltYXRlJztcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIGVzdGltYXRlPzogYm9vbGVhbjtcclxuICBwZW5kaW5nPzogYm9vbGVhbjtcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgcm9sZT86IHN0cmluZztcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xyXG4gIGR1cmF0aW9uTWluPzogbnVtYmVyO1xyXG4gIGR1cmF0aW9uTWF4PzogbnVtYmVyO1xyXG4gIGZpbGVOYW1lPzogc3RyaW5nO1xyXG4gIHRpbWU/OiBEYXRlO1xyXG59XHJcblxyXG5kZWNsYXJlIHR5cGUgU2hvd01vZGUgPSAnZXZlcnl0aGluZycgfCAnYWN0aXZlJyB8ICdyb3V0ZSc7XHJcbiIsIjxkaXYgY2xhc3M9XCJuYXYtdG9vbGJhciByb3dcIj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbYml6ZG9jVG9vbHRpcF09XCInU2hvd0FsbCd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmZpbHRlcl9saXN0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI21lbnU+IFxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzaG93TW9kZT0ncm91dGUnXCI+XHJcbiAgICAgIDxtYXQtaWNvbj57eyBzaG93TW9kZSA9PT0gJ3JvdXRlJyA/ICdjaGVjayc6JycgfX08L21hdC1pY29uPlxyXG4gICAgICA8c3Bhbj57eydSb3V0ZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2hvd01vZGU9J2FjdGl2ZSdcIj5cclxuICAgICAgPG1hdC1pY29uPnt7IHNob3dNb2RlID09PSAnYWN0aXZlJyA/ICdjaGVjayc6JycgfX08L21hdC1pY29uPlxyXG4gICAgICA8c3Bhbj57eydBY3RpdmVSb3V0ZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2hvd01vZGU9J2V2ZXJ5dGhpbmcnXCI+XHJcbiAgICAgIDxtYXQtaWNvbj57eyBzaG93TW9kZSA9PT0gJ2V2ZXJ5dGhpbmcnID8gJ2NoZWNrJzonJyB9fTwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuPnt7J0V2ZXJ5dGhpbmcnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9kaXY+XHJcbjx0YWJsZSBjbGFzcz1cIm1hdC10YWJsZVwiIEBsaXN0PlxyXG4gIDx0Ym9keSByb2xlPVwicm93Z3JvdXBcIj5cclxuICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIiAqbmdGb3I9XCJsZXQgbCBvZiBkYXRhXCIgQGl0ZW0+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsLm5hbWUgfCBzYW5pdGl6ZUh0bWxcIiAoY2xpY2spPVwiY2hhdCgkZXZlbnQpXCI+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPWwucm9sZT57eydKb2luQ29tbWEnfHRyYW5zbGF0ZX19e3tsLnJvbGV9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJsLnR5cGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidBY3Rpb25UYWtlbidcIj5cclxuICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsLmFjdGlvbiB8IHNhbml0aXplSHRtbFwiIChjbGljayk9XCJjaGF0KCRldmVudClcIiBjbGFzcz1cInRvXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ1N1Ym1pdCdcIj57eydJc3N1ZWQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ1BlbmRpbmcnXCI+e3snSXNQZW5kaW5nJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidDaGVja091dCdcIj57eydDaGVja2VkSW4nIHwgdHJhbnNsYXRlIDogbC5maWxlTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidDaGVja0luJ1wiPnt7J0NoZWNrZWRPdXQnIHwgdHJhbnNsYXRlIDogbC5maWxlTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidFc3RpbWF0ZSdcIj57eydFc3RpbWF0ZScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInTW9kZWxDaGFuZ2UnXCI+e3snQ2hhbmdlZCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImwuZnlpXCI+Jm5ic3A7e3snRllJJ3x0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIiBbbmdTd2l0Y2hdPVwibC5lc3RpbWF0ZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInRydWVcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibC5kdXJhdGlvbk1heCAmJiBsLmR1cmF0aW9uTWF4ID09PSBsLmR1cmF0aW9uTWluXCIgW2JpemRvY1Rvb2x0aXBdPVwibC5kdXJhdGlvbk1heHxhbUR1cmF0aW9uRm9ybWF0XCI+e3snRXN0aW1hdGVUaW1lJ3wgdHJhbnNsYXRlIDogKGwuZHVyYXRpb25NYXggfCBhbUR1cmF0aW9uOidzJyl9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibC5kdXJhdGlvbk1heCAmJiBsLmR1cmF0aW9uTWF4ICE9PSBsLmR1cmF0aW9uTWluXCJcclxuICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cImwuZHVyYXRpb25NYXh8YW1EdXJhdGlvbkZvcm1hdFwiPnt7J0VzdGltYXRlVGltZVJhbmdlJ3wgdHJhbnNsYXRlIDogKGwuZHVyYXRpb25NaW4gfCBhbUR1cmF0aW9uOidzJykgOiAobC5kdXJhdGlvbk1heCB8IGFtRHVyYXRpb246J3MnKX19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxzcGFuPnt7bC50aW1lIHwgYW1DYWxlbmRhciA6IG51bGwgOiBDQUxFTkRBUl9TUEVDIH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmR1cmF0aW9uXCIgW2JpemRvY1Rvb2x0aXBdPVwibC5kdXJhdGlvbnxhbUR1cmF0aW9uRm9ybWF0XCIgY2xhc3M9XCJkdXJhdGlvblwiPiZuYnNwOyh7e2wuZHVyYXRpb24gfCBhbUR1cmF0aW9uOidzJ319KTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImwubm90ZVwiPnt7bC5ub3RlfX08L3NwYW4+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJsLnR5cGU9PT0nTW9kZWxDaGFuZ2UnXCIgKGNsaWNrKT1cImNvbXBhcmUobClcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29tcGFyZSd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwic3RhcnRcIj48bWF0LWljb24+bW9yZV9ob3JpejwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGJvZHk+XHJcbjwvdGFibGU+XHJcbiJdfQ==