@bizdoc/core 1.17.5 → 1.17.9

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 (412) hide show
  1. package/assets/themes/brown.min.css +1 -1
  2. package/assets/themes/dark.min.css +7 -2
  3. package/assets/themes/deep-purple-light-blue.min.css +1 -1
  4. package/assets/themes/deep-purple-teal.min.css +1 -1
  5. package/assets/themes/default.min.css +1 -1
  6. package/assets/themes/green.min.css +1 -1
  7. package/assets/themes/indigo.min.css +1 -1
  8. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  9. package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
  10. package/esm2020/lib/admin/architecture/cube-axes-filter.component.mjs +14 -15
  11. package/esm2020/lib/admin/architecture/declarations.mjs +1 -1
  12. package/esm2020/lib/admin/architecture/designer-element.component.mjs +17 -17
  13. package/esm2020/lib/admin/architecture/designer-privileges.component.mjs +3 -3
  14. package/esm2020/lib/admin/architecture/designer.base.mjs +9 -9
  15. package/esm2020/lib/admin/architecture/designer.component.mjs +16 -17
  16. package/esm2020/lib/admin/architecture/elements/action.component.mjs +3 -3
  17. package/esm2020/lib/admin/architecture/elements/analysis-view.component.mjs +3 -3
  18. package/esm2020/lib/admin/architecture/elements/analysis-widget.component.mjs +3 -3
  19. package/esm2020/lib/admin/architecture/elements/anomaly-rule.component.mjs +3 -3
  20. package/esm2020/lib/admin/architecture/elements/attribute.component.mjs +3 -3
  21. package/esm2020/lib/admin/architecture/elements/box-form.component.mjs +3 -3
  22. package/esm2020/lib/admin/architecture/elements/configuration-datasource.component.mjs +3 -3
  23. package/esm2020/lib/admin/architecture/elements/control.component.mjs +3 -3
  24. package/esm2020/lib/admin/architecture/elements/cube-index-utility.component.mjs +3 -3
  25. package/esm2020/lib/admin/architecture/elements/cube-view.component.mjs +3 -3
  26. package/esm2020/lib/admin/architecture/elements/cube.component.mjs +26 -25
  27. package/esm2020/lib/admin/architecture/elements/documents-report.component.mjs +3 -3
  28. package/esm2020/lib/admin/architecture/elements/documents-widget.component.mjs +3 -3
  29. package/esm2020/lib/admin/architecture/elements/explore-view.component.mjs +3 -3
  30. package/esm2020/lib/admin/architecture/elements/feedback-widget.component.mjs +3 -3
  31. package/esm2020/lib/admin/architecture/elements/folder.component.mjs +3 -3
  32. package/esm2020/lib/admin/architecture/elements/form-invite.dialog.mjs +14 -14
  33. package/esm2020/lib/admin/architecture/elements/form.component.mjs +39 -27
  34. package/esm2020/lib/admin/architecture/elements/guide.component.mjs +5 -4
  35. package/esm2020/lib/admin/architecture/elements/matrix-view.component.mjs +3 -3
  36. package/esm2020/lib/admin/architecture/elements/node.component.mjs +3 -3
  37. package/esm2020/lib/admin/architecture/elements/parallel-view.component.mjs +3 -3
  38. package/esm2020/lib/admin/architecture/elements/performance-report.component.mjs +3 -3
  39. package/esm2020/lib/admin/architecture/elements/performance-widget.component.mjs +3 -3
  40. package/esm2020/lib/admin/architecture/elements/pivot-view.component.mjs +3 -3
  41. package/esm2020/lib/admin/architecture/elements/policy.component.mjs +3 -3
  42. package/esm2020/lib/admin/architecture/elements/report.component.mjs +3 -3
  43. package/esm2020/lib/admin/architecture/elements/return-to-role-action.component.mjs +3 -3
  44. package/esm2020/lib/admin/architecture/elements/role.component.mjs +3 -3
  45. package/esm2020/lib/admin/architecture/elements/rule.component.mjs +3 -3
  46. package/esm2020/lib/admin/architecture/elements/state.component.mjs +3 -3
  47. package/esm2020/lib/admin/architecture/elements/sum-view.component.mjs +3 -3
  48. package/esm2020/lib/admin/architecture/elements/tasks-report.component.mjs +3 -3
  49. package/esm2020/lib/admin/architecture/elements/type.component.mjs +3 -3
  50. package/esm2020/lib/admin/architecture/elements/usage-report.component.mjs +3 -3
  51. package/esm2020/lib/admin/architecture/elements/utility.component.mjs +3 -3
  52. package/esm2020/lib/admin/architecture/elements/view.component.mjs +3 -3
  53. package/esm2020/lib/admin/architecture/elements/widget.component.mjs +3 -3
  54. package/esm2020/lib/admin/architecture/icon-picker.component.mjs +3 -3
  55. package/esm2020/lib/admin/core/ace.input.mjs +3 -3
  56. package/esm2020/lib/admin/core/color-picker.input.mjs +3 -3
  57. package/esm2020/lib/admin/core/localized-string.component.mjs +7 -6
  58. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  59. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +19 -20
  60. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +24 -25
  61. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +13 -14
  62. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +14 -15
  63. package/esm2020/lib/admin/form/designer/box-designer.component.mjs +6 -6
  64. package/esm2020/lib/admin/form/designer/properties.component.mjs +3 -3
  65. package/esm2020/lib/admin/form/designer/section.component.mjs +3 -3
  66. package/esm2020/lib/admin/form/designer/settings.component.mjs +3 -3
  67. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  68. package/esm2020/lib/admin/form/workflow/node.component.mjs +11 -12
  69. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +17 -18
  70. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +12 -14
  71. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  72. package/esm2020/lib/admin/patterns/patterns.component.mjs +23 -24
  73. package/esm2020/lib/admin/permissions/permissions.component.mjs +3 -3
  74. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  75. package/esm2020/lib/admin/positions/positions.component.mjs +24 -25
  76. package/esm2020/lib/admin/profiler/outofoffice.component.mjs +16 -17
  77. package/esm2020/lib/admin/profiler/profiler.component.mjs +20 -21
  78. package/esm2020/lib/admin/system.service.mjs +3 -3
  79. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  80. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  81. package/esm2020/lib/app.component.mjs +6 -6
  82. package/esm2020/lib/bizdoc.module.mjs +4 -4
  83. package/esm2020/lib/browse/browse-items.component.mjs +24 -25
  84. package/esm2020/lib/browse/browse.mobile.component.mjs +17 -18
  85. package/esm2020/lib/browse/browse.pane.component.mjs +15 -16
  86. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +15 -16
  87. package/esm2020/lib/browse/filter/filter.component.mjs +15 -16
  88. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  89. package/esm2020/lib/chat/chat-info.mjs +3 -3
  90. package/esm2020/lib/chat/chat.mobile.component.mjs +7 -8
  91. package/esm2020/lib/chat/chat.service.mjs +3 -3
  92. package/esm2020/lib/chat/contacts.component.mjs +6 -6
  93. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  94. package/esm2020/lib/chat/conversation.component.mjs +3 -3
  95. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  96. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  97. package/esm2020/lib/compose/action/action.dialog.mjs +10 -11
  98. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  99. package/esm2020/lib/compose/action/assign-action.component.mjs +12 -13
  100. package/esm2020/lib/compose/action/moveto-action.component.mjs +14 -15
  101. package/esm2020/lib/compose/action/return-action.component.mjs +12 -13
  102. package/esm2020/lib/compose/attachments/attachments.component.mjs +3 -3
  103. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +15 -14
  104. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  105. package/esm2020/lib/compose/box/box.component.mjs +10 -11
  106. package/esm2020/lib/compose/box/control.component.mjs +6 -6
  107. package/esm2020/lib/compose/box/row.component.mjs +3 -3
  108. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  109. package/esm2020/lib/compose/comments/comment.component.mjs +16 -17
  110. package/esm2020/lib/compose/comments/comments.component.mjs +10 -11
  111. package/esm2020/lib/compose/comments/comments.pane.component.mjs +3 -3
  112. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  113. package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
  114. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  115. package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
  116. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  117. package/esm2020/lib/compose/compose.mobile.component.mjs +3 -3
  118. package/esm2020/lib/compose/compose.pane.component.mjs +3 -3
  119. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  120. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  121. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  122. package/esm2020/lib/compose/document.component.mjs +3 -3
  123. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  124. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  125. package/esm2020/lib/compose/events/events.component.mjs +3 -3
  126. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  127. package/esm2020/lib/compose/form.component.mjs +3 -3
  128. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  129. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  130. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  131. package/esm2020/lib/compose/state.component.mjs +3 -3
  132. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  133. package/esm2020/lib/compose/trace/flow.component.mjs +3 -3
  134. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  135. package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
  136. package/esm2020/lib/compose/trace/trace.component.mjs +3 -3
  137. package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
  138. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  139. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +12 -12
  140. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  141. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  142. package/esm2020/lib/core/account.service.mjs +3 -3
  143. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  144. package/esm2020/lib/core/authentication.mjs +1 -1
  145. package/esm2020/lib/core/avatar/avatar.component.mjs +3 -3
  146. package/esm2020/lib/core/checkbox.mjs +3 -3
  147. package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
  148. package/esm2020/lib/core/configuration.mjs +1 -1
  149. package/esm2020/lib/core/datasource.service.mjs +3 -3
  150. package/esm2020/lib/core/fields/address.designer.mjs +3 -3
  151. package/esm2020/lib/core/fields/address.field.mjs +3 -3
  152. package/esm2020/lib/core/fields/autocomplete.field.mjs +6 -6
  153. package/esm2020/lib/core/fields/checkbox.designer.mjs +3 -3
  154. package/esm2020/lib/core/fields/checkbox.field.mjs +3 -3
  155. package/esm2020/lib/core/fields/checklist.designer.mjs +3 -3
  156. package/esm2020/lib/core/fields/checklist.field.mjs +5 -5
  157. package/esm2020/lib/core/fields/date-range.designer.mjs +3 -3
  158. package/esm2020/lib/core/fields/date-range.field.mjs +3 -3
  159. package/esm2020/lib/core/fields/date.designer.mjs +3 -3
  160. package/esm2020/lib/core/fields/date.field.mjs +3 -3
  161. package/esm2020/lib/core/fields/expression.field.mjs +3 -3
  162. package/esm2020/lib/core/fields/file.designer.mjs +3 -3
  163. package/esm2020/lib/core/fields/file.field.mjs +3 -3
  164. package/esm2020/lib/core/fields/html.designer.mjs +3 -3
  165. package/esm2020/lib/core/fields/html.field.mjs +3 -3
  166. package/esm2020/lib/core/fields/input.designer.mjs +3 -3
  167. package/esm2020/lib/core/fields/input.field.mjs +3 -3
  168. package/esm2020/lib/core/fields/localized-string.field.mjs +5 -5
  169. package/esm2020/lib/core/fields/numeric.designer.mjs +3 -3
  170. package/esm2020/lib/core/fields/numeric.field.mjs +3 -3
  171. package/esm2020/lib/core/fields/options.base.mjs +6 -6
  172. package/esm2020/lib/core/fields/options.component.mjs +3 -3
  173. package/esm2020/lib/core/fields/radio-button.designer.mjs +3 -3
  174. package/esm2020/lib/core/fields/radio-button.field.mjs +3 -3
  175. package/esm2020/lib/core/fields/select.designer.mjs +3 -3
  176. package/esm2020/lib/core/fields/select.field.mjs +3 -3
  177. package/esm2020/lib/core/fields/signature.designer.mjs +3 -3
  178. package/esm2020/lib/core/fields/signature.field.mjs +3 -3
  179. package/esm2020/lib/core/fields/switch.field.mjs +3 -3
  180. package/esm2020/lib/core/fields/textarea.designer.mjs +3 -3
  181. package/esm2020/lib/core/fields/textarea.field.mjs +3 -3
  182. package/esm2020/lib/core/fields/timespan.field.mjs +3 -3
  183. package/esm2020/lib/core/fields/yesno.designer.mjs +3 -3
  184. package/esm2020/lib/core/fields/yesno.field.mjs +3 -3
  185. package/esm2020/lib/core/guide/guide.component.mjs +9 -10
  186. package/esm2020/lib/core/guide/guide.service.mjs +3 -3
  187. package/esm2020/lib/core/guide/help-tip.component.mjs +11 -12
  188. package/esm2020/lib/core/http.interceptor.mjs +39 -49
  189. package/esm2020/lib/core/hub.service.mjs +3 -3
  190. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  191. package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
  192. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  193. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  194. package/esm2020/lib/core/info/map-info.mjs +3 -3
  195. package/esm2020/lib/core/inputs/address.input.mjs +3 -3
  196. package/esm2020/lib/core/inputs/auto-complete.input.mjs +3 -3
  197. package/esm2020/lib/core/inputs/combination-picker-body.mjs +3 -3
  198. package/esm2020/lib/core/inputs/combination-picker.mjs +3 -3
  199. package/esm2020/lib/core/inputs/combination-pool.mjs +3 -3
  200. package/esm2020/lib/core/inputs/file.input.mjs +3 -3
  201. package/esm2020/lib/core/inputs/select.input.mjs +3 -3
  202. package/esm2020/lib/core/inputs/signature.input.mjs +3 -3
  203. package/esm2020/lib/core/inputs/time-picker.mjs +3 -3
  204. package/esm2020/lib/core/inputs/timespan.input.mjs +3 -3
  205. package/esm2020/lib/core/layout.component.mjs +4 -4
  206. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  207. package/esm2020/lib/core/mailbox.service.mjs +10 -6
  208. package/esm2020/lib/core/models.mjs +1 -1
  209. package/esm2020/lib/core/none.component.mjs +3 -3
  210. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  211. package/esm2020/lib/core/pipes/calendar.pipe.mjs +3 -3
  212. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  213. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  214. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  215. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  216. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  217. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  218. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  219. package/esm2020/lib/core/pipes/localized-string.pipe.mjs +3 -3
  220. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  221. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  222. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  223. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  224. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +6 -6
  225. package/esm2020/lib/core/pipes/translate.pipe.mjs +9 -9
  226. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  227. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  228. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  229. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  230. package/esm2020/lib/core/popup/tooltip.directive.mjs +6 -6
  231. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  232. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  233. package/esm2020/lib/core/prompt.service.mjs +3 -3
  234. package/esm2020/lib/core/router.mjs +6 -6
  235. package/esm2020/lib/core/save-changes.dialog.mjs +3 -3
  236. package/esm2020/lib/core/session.service.mjs +12 -9
  237. package/esm2020/lib/core/slots/pane-ref.mjs +11 -11
  238. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  239. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  240. package/esm2020/lib/core/slots/slots.component.mjs +7 -8
  241. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  242. package/esm2020/lib/core/tagging/edit-input.component.mjs +14 -15
  243. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  244. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  245. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  246. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  247. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  248. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  249. package/esm2020/lib/core/translate.service.mjs +3 -3
  250. package/esm2020/lib/core/translations.mjs +2 -7
  251. package/esm2020/lib/core/window-title.service.mjs +3 -3
  252. package/esm2020/lib/cube/accum/accum.component.mjs +3 -3
  253. package/esm2020/lib/cube/chart/chart.component.mjs +9 -8
  254. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  255. package/esm2020/lib/cube/cube-menu.component.mjs +3 -3
  256. package/esm2020/lib/cube/cube-view.component.mjs +3 -3
  257. package/esm2020/lib/cube/cube.service.mjs +3 -3
  258. package/esm2020/lib/cube/explore/document-item.component.mjs +3 -3
  259. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  260. package/esm2020/lib/cube/explore/explore-items.component.mjs +3 -3
  261. package/esm2020/lib/cube/explore/explore.pane.component.mjs +3 -3
  262. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  263. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  264. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  265. package/esm2020/lib/cube/filter/filter.component.mjs +14 -15
  266. package/esm2020/lib/cube/grid/grid.component.mjs +3 -3
  267. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +5 -5
  268. package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
  269. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  270. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  271. package/esm2020/lib/cube/matrix/popup.component.mjs +3 -3
  272. package/esm2020/lib/cube/matrix/table.component.mjs +3 -3
  273. package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
  274. package/esm2020/lib/cube/pivot/pivot.component.mjs +7 -6
  275. package/esm2020/lib/cube/sum/sum.component.mjs +3 -3
  276. package/esm2020/lib/cube/view-base.mjs +3 -3
  277. package/esm2020/lib/cube/view.mobile.component.mjs +3 -3
  278. package/esm2020/lib/cube/view.pane.component.mjs +3 -3
  279. package/esm2020/lib/dashboard/actions/actions.widget.mjs +3 -3
  280. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +35 -25
  281. package/esm2020/lib/dashboard/cube/compare.widget.mjs +3 -3
  282. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +8 -6
  283. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  284. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +14 -13
  285. package/esm2020/lib/dashboard/cube/document-state.widget.mjs +3 -3
  286. package/esm2020/lib/dashboard/cube/documents.widget.mjs +3 -3
  287. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  288. package/esm2020/lib/dashboard/dashboard.component.mjs +14 -15
  289. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  290. package/esm2020/lib/dashboard/recents/recents.widget.mjs +3 -3
  291. package/esm2020/lib/dashboard/score/activity.widget.mjs +14 -10
  292. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +3 -3
  293. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  294. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +3 -3
  295. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +3 -3
  296. package/esm2020/lib/dashboard/widget-item.component.mjs +9 -9
  297. package/esm2020/lib/designer.module.mjs +5 -9
  298. package/esm2020/lib/desktop.module.mjs +5 -9
  299. package/esm2020/lib/home/about/about.dialog.mjs +3 -3
  300. package/esm2020/lib/home/home-base.component.mjs +3 -3
  301. package/esm2020/lib/home/home.desktop.component.mjs +19 -20
  302. package/esm2020/lib/home/home.mobile.component.mjs +3 -3
  303. package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
  304. package/esm2020/lib/home/options/options.component.mjs +13 -14
  305. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  306. package/esm2020/lib/home/sign/sign.component.mjs +3 -3
  307. package/esm2020/lib/home/tools.component.mjs +3 -3
  308. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  309. package/esm2020/lib/mobile.module.mjs +5 -9
  310. package/esm2020/lib/modules/chart.module.mjs +4 -4
  311. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  312. package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
  313. package/esm2020/lib/modules/dayjs.module.mjs +4 -4
  314. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  315. package/esm2020/lib/modules/gantt.module.mjs +4 -4
  316. package/esm2020/lib/modules/grid.module.mjs +4 -4
  317. package/esm2020/lib/modules/material.module.mjs +8 -12
  318. package/esm2020/lib/modules/paginator.intl.mjs +3 -3
  319. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  320. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  321. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  322. package/esm2020/lib/modules/stepper.intl.mjs +3 -3
  323. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  324. package/esm2020/lib/notifications/filter.component.mjs +9 -10
  325. package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
  326. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  327. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  328. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  329. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  330. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  331. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  332. package/esm2020/lib/notifications/types/invite.notification.mjs +3 -3
  333. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  334. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  335. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  336. package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
  337. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  338. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  339. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  340. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  341. package/esm2020/lib/options/options.component.mjs +18 -19
  342. package/esm2020/lib/options/options.service.mjs +3 -3
  343. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  344. package/esm2020/lib/reports/cube/documents.component.mjs +3 -3
  345. package/esm2020/lib/reports/cube/grid-documents.component.mjs +3 -3
  346. package/esm2020/lib/reports/cube/role-performance.component.mjs +3 -3
  347. package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
  348. package/esm2020/lib/reports/cube/usage-args.component.mjs +3 -3
  349. package/esm2020/lib/reports/cube/usage-base.mjs +3 -3
  350. package/esm2020/lib/reports/cube/usage-chart.component.mjs +3 -3
  351. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +3 -3
  352. package/esm2020/lib/reports/cube/usage.component.mjs +3 -3
  353. package/esm2020/lib/reports/report-viewer.component.mjs +3 -3
  354. package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
  355. package/esm2020/lib/reports/report.pane.component.mjs +12 -13
  356. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  357. package/esm2020/lib/reports/substitution/substitution.component.mjs +3 -3
  358. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  359. package/esm2020/lib/reports/tasks/tasks.component.mjs +3 -3
  360. package/esm2020/lib/scheduler/schedule.component.mjs +13 -14
  361. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  362. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  363. package/esm2020/lib/search/cube.component.mjs +3 -3
  364. package/esm2020/lib/search/document.component.mjs +3 -3
  365. package/esm2020/lib/search/guide.component.mjs +3 -3
  366. package/esm2020/lib/search/path.component.mjs +3 -3
  367. package/esm2020/lib/search/search.service.mjs +3 -3
  368. package/esm2020/lib/shared.module.mjs +5 -9
  369. package/esm2020/lib/system.module.mjs +27 -11
  370. package/esm2020/lib/views/cube/chart.component.mjs +3 -3
  371. package/esm2020/lib/views/cube/cube-base.mjs +3 -3
  372. package/esm2020/lib/views/cube/explore.component.mjs +3 -3
  373. package/esm2020/lib/views/cube/matrix.component.mjs +3 -3
  374. package/esm2020/lib/views/cube/parallel.component.mjs +3 -3
  375. package/esm2020/lib/views/cube/pivot.component.mjs +3 -3
  376. package/esm2020/lib/views/cube/sum.component.mjs +3 -3
  377. package/esm2020/lib/views/cube/view.component.mjs +3 -3
  378. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +20 -16
  379. package/esm2020/lib/views/view-item.component.mjs +3 -3
  380. package/esm2020/lib/views/views.component.mjs +3 -3
  381. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  382. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  383. package/fesm2015/bizdoc-core.mjs +1487 -1458
  384. package/fesm2015/bizdoc-core.mjs.map +1 -1
  385. package/fesm2020/bizdoc-core.mjs +1486 -1458
  386. package/fesm2020/bizdoc-core.mjs.map +1 -1
  387. package/lib/admin/architecture/declarations.d.ts +2 -0
  388. package/lib/admin/architecture/elements/cube.component.d.ts +3 -1
  389. package/lib/admin/architecture/elements/form.component.d.ts +4 -2
  390. package/lib/admin/architecture/elements/guide.component.d.ts +1 -0
  391. package/lib/admin/core/localized-string.component.d.ts +1 -1
  392. package/lib/core/authentication.d.ts +1 -1
  393. package/lib/core/configuration.d.ts +1 -0
  394. package/lib/core/http.interceptor.d.ts +4 -6
  395. package/lib/core/mailbox.service.d.ts +1 -1
  396. package/lib/core/models.d.ts +2 -2
  397. package/lib/core/session.service.d.ts +1 -0
  398. package/lib/core/slots/pane-ref.d.ts +4 -4
  399. package/lib/core/translations.d.ts +0 -5
  400. package/lib/dashboard/cube/accum-cube.widget.d.ts +4 -2
  401. package/lib/dashboard/cube/cube-analysis.base.d.ts +3 -1
  402. package/lib/dashboard/cube/cube-chart.widget.d.ts +2 -2
  403. package/lib/dashboard/dashboard.component.d.ts +6 -7
  404. package/lib/dashboard/widget-item.component.d.ts +1 -1
  405. package/lib/designer.module.d.ts +2 -3
  406. package/lib/desktop.module.d.ts +3 -4
  407. package/lib/mobile.module.d.ts +3 -4
  408. package/lib/modules/material.module.d.ts +38 -39
  409. package/lib/shared.module.d.ts +15 -16
  410. package/lib/system.module.d.ts +7 -8
  411. package/lib/views/timeline/timeline.component.exp.d.ts +1 -3
  412. package/package.json +14 -15
@@ -8,16 +8,15 @@ import * as i1 from "../cube.service";
8
8
  import * as i2 from "@angular/forms";
9
9
  import * as i3 from "../../core/session.service";
10
10
  import * as i4 from "@angular/common";
11
- import * as i5 from "@angular/flex-layout/flex";
12
- import * as i6 from "@angular/material/autocomplete";
13
- import * as i7 from "@angular/material/core";
14
- import * as i8 from "@angular/material/form-field";
15
- import * as i9 from "@angular/material/select";
16
- import * as i10 from "@angular/material/button";
17
- import * as i11 from "@angular/material/input";
18
- import * as i12 from "@angular/material/icon";
19
- import * as i13 from "../../core/pipes/translate.pipe";
20
- import * as i14 from "../../core/pipes/sort.pipe";
11
+ import * as i5 from "@angular/material/autocomplete";
12
+ import * as i6 from "@angular/material/core";
13
+ import * as i7 from "@angular/material/form-field";
14
+ import * as i8 from "@angular/material/select";
15
+ import * as i9 from "@angular/material/button";
16
+ import * as i10 from "@angular/material/input";
17
+ import * as i11 from "@angular/material/icon";
18
+ import * as i12 from "../../core/pipes/translate.pipe";
19
+ import * as i13 from "../../core/pipes/sort.pipe";
21
20
  /** filter component*/
22
21
  export class CubeFilterComponent {
23
22
  /** filter ctor */
@@ -118,11 +117,11 @@ export class CubeFilterComponent {
118
117
  this._destroy.complete();
119
118
  }
120
119
  }
121
- CubeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeFilterComponent, deps: [{ token: i1.CubeService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.FormBuilder }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component });
122
- CubeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: { cube: "cube", exclude: "exclude", include: "include", axes: "axes" }, outputs: { axesChange: "axesChange" }, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field *ngFor=\"let a of visibleAxes\" [ngSwitch]=\"a.selectionMode\" [attr.data-help]=\"'axis-'+a.name\">\r\n <ng-container *ngSwitchCase=\"'Pattern'\">\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" [autofocus]\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'AxisPatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Search'\">\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.name] | async | filter : 'value' : inp.value | slice:0:50\" [value]=\"r\">{{r.value}}</mat-option>\r\n </mat-autocomplete>\r\n <button mat-icon-button *ngIf=\"inp.value\" matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'AxisPatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\" *ngSwitchDefault>\r\n <mat-option *ngIf=\"a.selectionMode !== 'Multiple'\">{{'All' | translate}}</mat-option>\r\n <mat-option *ngFor=\"let r of sources[a.name] | async\" [value]=\"r.key\">{{r.value}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</form>\r\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.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: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SlicePipe, name: "slice" }, { kind: "pipe", type: i13.TranslatePipe, name: "translate" }, { kind: "pipe", type: i14.FilterPipe, name: "filter" }] });
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeFilterComponent, decorators: [{
120
+ CubeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeFilterComponent, deps: [{ token: i1.CubeService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.FormBuilder }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component });
121
+ CubeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: { cube: "cube", exclude: "exclude", include: "include", axes: "axes" }, outputs: { axesChange: "axesChange" }, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngFor=\"let a of visibleAxes\" [ngSwitch]=\"a.selectionMode\" [attr.data-help]=\"'axis-'+a.name\">\r\n <ng-container *ngSwitchCase=\"'Pattern'\">\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" [autofocus]\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'AxisPatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Search'\">\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.name] | async | filter : 'value' : inp.value | slice:0:50\" [value]=\"r\">{{r.value}}</mat-option>\r\n </mat-autocomplete>\r\n <button mat-icon-button *ngIf=\"inp.value\" matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'AxisPatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\" *ngSwitchDefault>\r\n <mat-option *ngIf=\"a.selectionMode !== 'Multiple'\">{{'All' | translate}}</mat-option>\r\n <mat-option *ngFor=\"let r of sources[a.name] | async\" [value]=\"r.key\">{{r.value}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</form>\r\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9.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: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SlicePipe, name: "slice" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }, { kind: "pipe", type: i13.FilterPipe, name: "filter" }] });
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeFilterComponent, decorators: [{
124
123
  type: Component,
125
- args: [{ selector: 'bizdoc-cube-filter', template: "<form [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field *ngFor=\"let a of visibleAxes\" [ngSwitch]=\"a.selectionMode\" [attr.data-help]=\"'axis-'+a.name\">\r\n <ng-container *ngSwitchCase=\"'Pattern'\">\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" [autofocus]\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'AxisPatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Search'\">\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.name] | async | filter : 'value' : inp.value | slice:0:50\" [value]=\"r\">{{r.value}}</mat-option>\r\n </mat-autocomplete>\r\n <button mat-icon-button *ngIf=\"inp.value\" matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'AxisPatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\" *ngSwitchDefault>\r\n <mat-option *ngIf=\"a.selectionMode !== 'Multiple'\">{{'All' | translate}}</mat-option>\r\n <mat-option *ngFor=\"let r of sources[a.name] | async\" [value]=\"r.key\">{{r.value}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</form>\r\n", styles: ["form{padding:8px}\n"] }]
124
+ args: [{ selector: 'bizdoc-cube-filter', template: "<form [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngFor=\"let a of visibleAxes\" [ngSwitch]=\"a.selectionMode\" [attr.data-help]=\"'axis-'+a.name\">\r\n <ng-container *ngSwitchCase=\"'Pattern'\">\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" [autofocus]\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'AxisPatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Search'\">\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.name] | async | filter : 'value' : inp.value | slice:0:50\" [value]=\"r\">{{r.value}}</mat-option>\r\n </mat-autocomplete>\r\n <button mat-icon-button *ngIf=\"inp.value\" matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'AxisPatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\" *ngSwitchDefault>\r\n <mat-option *ngIf=\"a.selectionMode !== 'Multiple'\">{{'All' | translate}}</mat-option>\r\n <mat-option *ngFor=\"let r of sources[a.name] | async\" [value]=\"r.key\">{{r.value}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</form>\r\n", styles: ["form{padding:8px}\n"] }]
126
125
  }], ctorParameters: function () { return [{ type: i1.CubeService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.FormBuilder }, { type: i3.SessionService }]; }, propDecorators: { cube: [{
127
126
  type: Input
128
127
  }], exclude: [{
@@ -134,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
134
133
  }], axesChange: [{
135
134
  type: Output
136
135
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBYSxZQUFZLEVBQTBFLE1BQU0sZUFBZSxDQUFDO0FBRWxLLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFlLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTbEUsc0JBQXNCO0FBQ3RCLE1BQU0sT0FBTyxtQkFBbUI7SUErRTlCLGtCQUFrQjtJQUNsQixZQUE2QixRQUFxQixFQUMvQixRQUFvQyxFQUNwQyxHQUFzQixFQUN0QixHQUFnQixFQUNoQixRQUF3QjtRQUpkLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDL0IsYUFBUSxHQUFSLFFBQVEsQ0FBNEI7UUFDcEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQW5GbEMsWUFBTyxHQUFHLGtCQUFrQixDQUFDO1FBSTdCLFNBQUksR0FBWSxFQUFFLENBQUM7UUFDVCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUU1RCxnQkFBVyxHQUFlLEVB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QUFDLGFBQTZCLENBQUMsZ0JBQWdCLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RyxHQUFHLElBQUssR0FBd0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFRRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sQ0FBQyxRQUFRO1FBQ2QsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQVksRUFBRSxHQUFpQztRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7Z0hBbEdVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHNNQ2hCaEMsMHVEQXlCQTsyRkRUYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0Usb0JBQW9CO2tOQU9yQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ2EsVUFBVTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBPbkRlc3Ryb3ksIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgaXNBcnJheSwgbWFwVG9BcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgQXhlc01hcCwgQ3ViZSwgQ3ViZUF4aXMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEFYSVNfVkFMVUVfUEFUVEVSTiwgQ3ViZVNlcnZpY2UgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIGZpbHRlciBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgQ3ViZUZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHBhdHRlcm4gPSBBWElTX1ZBTFVFX1BBVFRFUk47XHJcbiAgQElucHV0KCkgY3ViZT86IHN0cmluZztcclxuICBASW5wdXQoKSBleGNsdWRlPzogc3RyaW5nW107XHJcbiAgQElucHV0KCkgaW5jbHVkZT86IHN0cmluZ1tdO1xyXG4gIEBJbnB1dCgpIGF4ZXM6IEF4ZXNNYXAgPSB7fTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgYXhlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXhlc01hcD4oKTtcclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgdmlzaWJsZUF4ZXM6IEN1YmVBeGlzW10gPSBbXTtcclxuICByZWFkb25seSBzb3VyY2VzOiB7IFtheGlzOiBzdHJpbmddOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogYW55IH0+IH0gPSB7fTtcclxuICBwcml2YXRlIF9jdWJlOiBDdWJlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlY2VuZGVudHMgPSB7fSBhcyB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FuY2VzdG9ycyA9IHt9IGFzIHsgW25hbWU6IHN0cmluZ106IHN0cmluZ1tdIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiB0aGlzLmN1YmUgPT0gbnVsbCB8fCBjLm5hbWUgPT09IHRoaXMuY3ViZSk7XHJcbiAgICBjb25zdCBjb25maWcgPSB7fTtcclxuICAgIHRoaXMuX2N1YmUuYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICBpZiAoYS5zZWxlY3Rpb25Nb2RlID09PSAnTm9uZScpIHJldHVybjtcclxuICAgICAgbGV0IHsgZGVzY2VuZGVudE9mIH0gPSBhO1xyXG4gICAgICBpZiAoZGVzY2VuZGVudE9mKSB7XHJcbiAgICAgICAgbGV0IGFuY2VzdG9ycyA9IHRoaXMuX2FuY2VzdG9yc1thLm5hbWVdID0gW107XHJcbiAgICAgICAgd2hpbGUgKGRlc2NlbmRlbnRPZikge1xyXG4gICAgICAgICAgbGV0IGF4aXMgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gZGVzY2VuZGVudE9mKTtcclxuICAgICAgICAgIGFuY2VzdG9ycy5wdXNoKGF4aXMubmFtZSk7XHJcbiAgICAgICAgICBpZiAoYS5zZWxlY3Rpb25Nb2RlICE9PSAnUGF0dGVybicpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kZWNlbmRlbnRzW2Rlc2NlbmRlbnRPZl0pIHRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXSA9IFthLm5hbWVdO1xyXG4gICAgICAgICAgICBlbHNlIHRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXS5wdXNoKGEubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkZXNjZW5kZW50T2YgPSBheGlzLmRlc2NlbmRlbnRPZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY3RybCA9IGNvbmZpZ1thLm5hbWVdID0gdGhpcy5fZmIuY29udHJvbCh0aGlzLmF4ZXNbYS5uYW1lXSk7XHJcbiAgICAgIGN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoZmlsdGVyKCgpID0+IGN0cmwudmFsaWQpLCBkZWJvdW5jZVRpbWUoMjAwKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCB8fCAoaXNBcnJheSh2KSAmJiAhdi5sZW5ndGgpKVxyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5heGVzW2EubmFtZV07XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuYXhlc1thLm5hbWVdID0gdjtcclxuICAgICAgICAgIGlmICh0aGlzLl9kZWNlbmRlbnRzW2EubmFtZV0pXHJcbiAgICAgICAgICAgIGZvciAobGV0IGF4aXMgb2YgdGhpcy5fZGVjZW5kZW50c1thLm5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGRlcHMgPSB7fTtcclxuICAgICAgICAgICAgICBmb3IgKGxldCBuYW1lIG9mIHRoaXMuX2FuY2VzdG9yc1theGlzXSlcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF4ZXNbbmFtZV0pIGRlcHNbbmFtZV0gPSB0aGlzLmF4ZXNbbmFtZV07XHJcbiAgICAgICAgICAgICAgdGhpcy5zb3VyY2VzW2F4aXNdID0gdGhpcy5fc2VydmljZS52YWx1ZXModGhpcy5fY3ViZS5uYW1lLCBheGlzLCBkZXBzKS5cclxuICAgICAgICAgICAgICAgIHBpcGUobWFwKG1hcFRvQXJyYXkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5heGVzQ2hhbmdlLmVtaXQodGhpcy5heGVzKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5fZmIuZ3JvdXAoY29uZmlnKTtcclxuICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMuX2luaXRpYWxpemUoKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY2hhbmdlc1snZXhjbHVkZSddICYmICFjaGFuZ2VzWydleGNsdWRlJ10uZmlyc3RDaGFuZ2UgJiYgdGhpcy5faW5pdGlhbGl6ZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbml0aWFsaXplKCkge1xyXG4gICAgY29uc3QgdmlzaWJsZUF4ZXMgPSBbXSwgdmFsdWVzID0ge307XHJcbiAgICB0aGlzLl9jdWJlLmF4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgaWYgKGEuc2VsZWN0aW9uTW9kZSA9PT0gJ05vbmUnKSByZXR1cm47XHJcbiAgICAgIGlmICgodGhpcy5pbmNsdWRlICYmIHRoaXMuaW5jbHVkZS5pbmRleE9mKGEubmFtZSkgPiAtMSkgfHxcclxuICAgICAgICAodGhpcy5leGNsdWRlICYmIHRoaXMuZXhjbHVkZS5pbmRleE9mKGEubmFtZSkgPCAwKSB8fCAoIXRoaXMuaW5jbHVkZSAmJiAhdGhpcy5leGNsdWRlKSkge1xyXG4gICAgICAgIGlmICghdGhpcy5zb3VyY2VzW2EubmFtZV0gJiYgYS5zZWxlY3Rpb25Nb2RlICE9PSAnUGF0dGVybicpIHtcclxuICAgICAgICAgIHRoaXMuc291cmNlc1thLm5hbWVdID0gdGhpcy5fc2VydmljZS52YWx1ZXModGhpcy5fY3ViZS5uYW1lLCBhLm5hbWUpLnBpcGUobWFwKG1hcFRvQXJyYXkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmlzaWJsZUF4ZXMucHVzaChhKTtcclxuICAgICAgfVxyXG4gICAgICB2YWx1ZXNbYS5uYW1lXSA9IHRoaXMuYXhlc1thLm5hbWVdIHx8IG51bGw7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudmlzaWJsZUF4ZXMgPSB2aXNpYmxlQXhlcztcclxuICAgIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh2YWx1ZXMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICB9XHJcblxyXG4gIGZvY3VzKCkge1xyXG4gICAgY29uc3QgaW5wID0gKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvckFsbCgnLm1hdC1zZWxlY3QsIHRleHRhcmVhLCBpbnB1dCcpWzBdO1xyXG4gICAgaW5wICYmIChpbnAgYXMgSFRNTElucHV0RWxlbWVudCkuZm9jdXMoKTtcclxuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgLyoqIGZpbHRlciBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICB9XHJcbiAgZGlzcGxheShrZXlWYWx1ZSkge1xyXG4gICAgcmV0dXJuIGtleVZhbHVlID8ga2V5VmFsdWUudmFsdWUgOiBudWxsO1xyXG4gIH1cclxuICBjaGFuZ2UoYXhpczogc3RyaW5nLCBldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sc1theGlzXS5zZXRWYWx1ZShldnQub3B0aW9uLnZhbHVlLmtleSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0Zvcj1cImxldCBhIG9mIHZpc2libGVBeGVzXCIgW25nU3dpdGNoXT1cImEuc2VsZWN0aW9uTW9kZVwiIFthdHRyLmRhdGEtaGVscF09XCInYXhpcy0nK2EubmFtZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1BhdHRlcm4nXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgW3BhdHRlcm5dPVwicGF0dGVyblwiIFthdXRvZm9jdXNdXHJcbiAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImEubmFtZVwiIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiAvPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9sc1thLm5hbWVdLmludmFsaWRcIj57eydBeGlzUGF0dGVybkVycicgfHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidTZWFyY2gnXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiB0eXBlPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwic2VnbWVudFwiICNpbnBcclxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiAvPlxyXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjc2VnbWVudCBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJjaGFuZ2UoYS5uYW1lLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygc291cmNlc1thLm5hbWVdIHwgYXN5bmMgfCBmaWx0ZXIgOiAndmFsdWUnIDogaW5wLnZhbHVlIHwgc2xpY2U6MDo1MFwiIFt2YWx1ZV09XCJyXCI+e3tyLnZhbHVlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJpbnAudmFsdWVcIiBtYXRTdWZmaXggYXJpYS1sYWJlbD1cIlwiIChjbGljayk9XCJpbnAudmFsdWUgPSAnJzsgZm9ybS5jb250cm9sc1thLm5hbWVdLnNldFZhbHVlKG51bGwpXCI+PG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHNbYS5uYW1lXS5pbnZhbGlkXCI+e3snQXhpc1BhdHRlcm5FcnInIHx0cmFuc2xhdGV9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cImEubmFtZVwiIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiBbbXVsdGlwbGVdPVwiYS5zZWxlY3Rpb25Nb2RlID09PSAnTXVsdGlwbGUnXCIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJhLnNlbGVjdGlvbk1vZGUgIT09ICdNdWx0aXBsZSdcIj57eydBbGwnIHwgdHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCByIG9mIHNvdXJjZXNbYS5uYW1lXSB8IGFzeW5jXCIgW3ZhbHVlXT1cInIua2V5XCI+e3tyLnZhbHVlfX08L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9mb3JtPlxyXG4iXX0=
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBYSxZQUFZLEVBQTBFLE1BQU0sZUFBZSxDQUFDO0FBRWxLLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFlLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVNsRSxzQkFBc0I7QUFDdEIsTUFBTSxPQUFPLG1CQUFtQjtJQStFOUIsa0JBQWtCO0lBQ2xCLFlBQTZCLFFBQXFCLEVBQy9CLFFBQW9DLEVBQ3BDLEdBQXNCLEVBQ3RCLEdBQWdCLEVBQ2hCLFFBQXdCO1FBSmQsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUE0QjtRQUNwQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBbkZsQyxZQUFPLEdBQUcsa0JBQWtCLENBQUM7UUFJN0IsU0FBSSxHQUFZLEVBQUUsQ0FBQztRQUNULGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTVELGdCQUFXLEdBQWUsRUFB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QUMsYUFBNkIsQ0FBQyxnQkFBZ0IsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdHLEdBQUcsSUFBSyxHQUF3QixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQVFELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxDQUFDLFFBQVE7UUFDZCxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBWSxFQUFFLEdBQWlDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOztnSEFsR1UsbUJBQW1CO29HQUFuQixtQkFBbUIsc01DaEJoQyx1dURBeUJBOzJGRFRhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxvQkFBb0I7a05BT3JCLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDYSxVQUFVO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIE9uRGVzdHJveSwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBpc0FycmF5LCBtYXBUb0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBBeGVzTWFwLCBDdWJlLCBDdWJlQXhpcyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQVhJU19WQUxVRV9QQVRURVJOLCBDdWJlU2VydmljZSB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWN1YmUtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG4vKiogZmlsdGVyIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBDdWJlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgcGF0dGVybiA9IEFYSVNfVkFMVUVfUEFUVEVSTjtcclxuICBASW5wdXQoKSBjdWJlPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGV4Y2x1ZGU/OiBzdHJpbmdbXTtcclxuICBASW5wdXQoKSBpbmNsdWRlPzogc3RyaW5nW107XHJcbiAgQElucHV0KCkgYXhlczogQXhlc01hcCA9IHt9O1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBheGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBeGVzTWFwPigpO1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICB2aXNpYmxlQXhlczogQ3ViZUF4aXNbXSA9IFtdO1xyXG4gIHJlYWRvbmx5IHNvdXJjZXM6IHsgW2F4aXM6IHN0cmluZ106IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBhbnkgfT4gfSA9IHt9O1xyXG4gIHByaXZhdGUgX2N1YmU6IEN1YmU7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVjZW5kZW50cyA9IHt9IGFzIHsgW25hbWU6IHN0cmluZ106IHN0cmluZ1tdIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYW5jZXN0b3JzID0ge30gYXMgeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2N1YmUgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IHRoaXMuY3ViZSA9PSBudWxsIHx8IGMubmFtZSA9PT0gdGhpcy5jdWJlKTtcclxuICAgIGNvbnN0IGNvbmZpZyA9IHt9O1xyXG4gICAgdGhpcy5fY3ViZS5heGVzLmZvckVhY2goYSA9PiB7XHJcbiAgICAgIGlmIChhLnNlbGVjdGlvbk1vZGUgPT09ICdOb25lJykgcmV0dXJuO1xyXG4gICAgICBsZXQgeyBkZXNjZW5kZW50T2YgfSA9IGE7XHJcbiAgICAgIGlmIChkZXNjZW5kZW50T2YpIHtcclxuICAgICAgICBsZXQgYW5jZXN0b3JzID0gdGhpcy5fYW5jZXN0b3JzW2EubmFtZV0gPSBbXTtcclxuICAgICAgICB3aGlsZSAoZGVzY2VuZGVudE9mKSB7XHJcbiAgICAgICAgICBsZXQgYXhpcyA9IHRoaXMuX2N1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSBkZXNjZW5kZW50T2YpO1xyXG4gICAgICAgICAgYW5jZXN0b3JzLnB1c2goYXhpcy5uYW1lKTtcclxuICAgICAgICAgIGlmIChhLnNlbGVjdGlvbk1vZGUgIT09ICdQYXR0ZXJuJykge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXSkgdGhpcy5fZGVjZW5kZW50c1tkZXNjZW5kZW50T2ZdID0gW2EubmFtZV07XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5fZGVjZW5kZW50c1tkZXNjZW5kZW50T2ZdLnB1c2goYS5uYW1lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRlc2NlbmRlbnRPZiA9IGF4aXMuZGVzY2VuZGVudE9mO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb25zdCBjdHJsID0gY29uZmlnW2EubmFtZV0gPSB0aGlzLl9mYi5jb250cm9sKHRoaXMuYXhlc1thLm5hbWVdKTtcclxuICAgICAgY3RybC52YWx1ZUNoYW5nZXMucGlwZShmaWx0ZXIoKCkgPT4gY3RybC52YWxpZCksIGRlYm91bmNlVGltZSgyMDApLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IChpc0FycmF5KHYpICYmICF2Lmxlbmd0aCkpXHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmF4ZXNbYS5uYW1lXTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5heGVzW2EubmFtZV0gPSB2O1xyXG4gICAgICAgICAgaWYgKHRoaXMuX2RlY2VuZGVudHNbYS5uYW1lXSlcclxuICAgICAgICAgICAgZm9yIChsZXQgYXhpcyBvZiB0aGlzLl9kZWNlbmRlbnRzW2EubmFtZV0pIHtcclxuICAgICAgICAgICAgICBsZXQgZGVwcyA9IHt9O1xyXG4gICAgICAgICAgICAgIGZvciAobGV0IG5hbWUgb2YgdGhpcy5fYW5jZXN0b3JzW2F4aXNdKVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXhlc1tuYW1lXSkgZGVwc1tuYW1lXSA9IHRoaXMuYXhlc1tuYW1lXTtcclxuICAgICAgICAgICAgICB0aGlzLnNvdXJjZXNbYXhpc10gPSB0aGlzLl9zZXJ2aWNlLnZhbHVlcyh0aGlzLl9jdWJlLm5hbWUsIGF4aXMsIGRlcHMpLlxyXG4gICAgICAgICAgICAgICAgcGlwZShtYXAobWFwVG9BcnJheSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmF4ZXNDaGFuZ2UuZW1pdCh0aGlzLmF4ZXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLl9mYi5ncm91cChjb25maWcpO1xyXG4gICAgdGhpcy5mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5faW5pdGlhbGl6ZSgpO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjaGFuZ2VzWydleGNsdWRlJ10gJiYgIWNoYW5nZXNbJ2V4Y2x1ZGUnXS5maXJzdENoYW5nZSAmJiB0aGlzLl9pbml0aWFsaXplKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luaXRpYWxpemUoKSB7XHJcbiAgICBjb25zdCB2aXNpYmxlQXhlcyA9IFtdLCB2YWx1ZXMgPSB7fTtcclxuICAgIHRoaXMuX2N1YmUuYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICBpZiAoYS5zZWxlY3Rpb25Nb2RlID09PSAnTm9uZScpIHJldHVybjtcclxuICAgICAgaWYgKCh0aGlzLmluY2x1ZGUgJiYgdGhpcy5pbmNsdWRlLmluZGV4T2YoYS5uYW1lKSA+IC0xKSB8fFxyXG4gICAgICAgICh0aGlzLmV4Y2x1ZGUgJiYgdGhpcy5leGNsdWRlLmluZGV4T2YoYS5uYW1lKSA8IDApIHx8ICghdGhpcy5pbmNsdWRlICYmICF0aGlzLmV4Y2x1ZGUpKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNvdXJjZXNbYS5uYW1lXSAmJiBhLnNlbGVjdGlvbk1vZGUgIT09ICdQYXR0ZXJuJykge1xyXG4gICAgICAgICAgdGhpcy5zb3VyY2VzW2EubmFtZV0gPSB0aGlzLl9zZXJ2aWNlLnZhbHVlcyh0aGlzLl9jdWJlLm5hbWUsIGEubmFtZSkucGlwZShtYXAobWFwVG9BcnJheSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2aXNpYmxlQXhlcy5wdXNoKGEpO1xyXG4gICAgICB9XHJcbiAgICAgIHZhbHVlc1thLm5hbWVdID0gdGhpcy5heGVzW2EubmFtZV0gfHwgbnVsbDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy52aXNpYmxlQXhlcyA9IHZpc2libGVBeGVzO1xyXG4gICAgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHZhbHVlcywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMoKSB7XHJcbiAgICBjb25zdCBpbnAgPSAodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yQWxsKCcubWF0LXNlbGVjdCwgdGV4dGFyZWEsIGlucHV0JylbMF07XHJcbiAgICBpbnAgJiYgKGlucCBhcyBIVE1MSW5wdXRFbGVtZW50KS5mb2N1cygpO1xyXG4gICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuICAvKiogZmlsdGVyIGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpIHtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1cygpO1xyXG4gIH1cclxuICBkaXNwbGF5KGtleVZhbHVlKSB7XHJcbiAgICByZXR1cm4ga2V5VmFsdWUgPyBrZXlWYWx1ZS52YWx1ZSA6IG51bGw7XHJcbiAgfVxyXG4gIGNoYW5nZShheGlzOiBzdHJpbmcsIGV2dDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzW2F4aXNdLnNldFZhbHVlKGV2dC5vcHRpb24udmFsdWUua2V5KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICA8bWF0LWZvcm0tZmllbGQgKm5nRm9yPVwibGV0IGEgb2YgdmlzaWJsZUF4ZXNcIiBbbmdTd2l0Y2hdPVwiYS5zZWxlY3Rpb25Nb2RlXCIgW2F0dHIuZGF0YS1oZWxwXT1cIidheGlzLScrYS5uYW1lXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUGF0dGVybidcIj5cclxuICAgICAgPGlucHV0IG1hdElucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICBbcGF0dGVybl09XCJwYXR0ZXJuXCIgW2F1dG9mb2N1c11cclxuICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiYS5uYW1lXCIgW3BsYWNlaG9sZGVyXT1cImEudGl0bGV8fGEubmFtZVwiIC8+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzW2EubmFtZV0uaW52YWxpZFwiPnt7J0F4aXNQYXR0ZXJuRXJyJyB8dHJhbnNsYXRlfX08L21hdC1lcnJvcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1NlYXJjaCdcIj5cclxuICAgICAgPGlucHV0IG1hdElucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiIHR5cGU9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJzZWdtZW50XCIgI2lucFxyXG4gICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImEudGl0bGV8fGEubmFtZVwiIC8+XHJcbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNzZWdtZW50IFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cImNoYW5nZShhLm5hbWUsICRldmVudClcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgciBvZiBzb3VyY2VzW2EubmFtZV0gfCBhc3luYyB8IGZpbHRlciA6ICd2YWx1ZScgOiBpbnAudmFsdWUgfCBzbGljZTowOjUwXCIgW3ZhbHVlXT1cInJcIj57e3IudmFsdWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImlucC52YWx1ZVwiIG1hdFN1ZmZpeCBhcmlhLWxhYmVsPVwiXCIgKGNsaWNrKT1cImlucC52YWx1ZSA9ICcnOyBmb3JtLmNvbnRyb2xzW2EubmFtZV0uc2V0VmFsdWUobnVsbClcIj48bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9sc1thLm5hbWVdLmludmFsaWRcIj57eydBeGlzUGF0dGVybkVycicgfHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiYS5uYW1lXCIgW3BsYWNlaG9sZGVyXT1cImEudGl0bGV8fGEubmFtZVwiIFttdWx0aXBsZV09XCJhLnNlbGVjdGlvbk1vZGUgPT09ICdNdWx0aXBsZSdcIiAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImEuc2VsZWN0aW9uTW9kZSAhPT0gJ011bHRpcGxlJ1wiPnt7J0FsbCcgfCB0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygc291cmNlc1thLm5hbWVdIHwgYXN5bmNcIiBbdmFsdWVdPVwici5rZXlcIj57e3IudmFsdWV9fTwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Zvcm0+XHJcbiJdfQ==
@@ -185,9 +185,9 @@ export class CubeGridComponent {
185
185
  }
186
186
  }
187
187
  CubeGridComponent.nextId = 0;
188
- CubeGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeGridComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.DatasourceService }, { token: i4.CubeService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
189
- CubeGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: CubeGridComponent, selector: "bizdoc-cube-grid", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [".nowrap{white-space:nowrap;word-wrap:normal}::ng-deep .e-rowcell:not(.e-headertext){cursor:pointer}::ng-deep .e-grid td.e-cellselectionbackground{background-color:none}\n"] });
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeGridComponent, decorators: [{
188
+ CubeGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeGridComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.DatasourceService }, { token: i4.CubeService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
189
+ CubeGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CubeGridComponent, selector: "bizdoc-cube-grid", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [".nowrap{white-space:nowrap;word-wrap:normal}::ng-deep .e-rowcell:not(.e-headertext){cursor:pointer}::ng-deep .e-grid td.e-cellselectionbackground{background-color:none}\n"] });
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeGridComponent, decorators: [{
191
191
  type: Component,
192
192
  args: [{ selector: 'bizdoc-cube-grid', template: '', host: {
193
193
  class: 'cube-view'
@@ -241,7 +241,7 @@ export class CubeSpreadsheetComponent {
241
241
  this._filly(y - this._indices.length, y1 - this._indices.length, axes);
242
242
  else
243
243
  this._filly(y, y1, axes);
244
- if (x > 1)
244
+ if (x > 0)
245
245
  this._fillx(x, x1, axes);
246
246
  }
247
247
  }
@@ -328,9 +328,9 @@ export class CubeSpreadsheetComponent {
328
328
  }
329
329
  }
330
330
  CubeSpreadsheetComponent.nextId = 0;
331
- CubeSpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeSpreadsheetComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.CubeService }, { token: i4.TranslateService }, { token: i5.DatasourceService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
332
- CubeSpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: CubeSpreadsheetComponent, selector: "bizdoc-cube-spreadsheet", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", yAxis: "yAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeSpreadsheetComponent, decorators: [{
331
+ CubeSpreadsheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeSpreadsheetComponent, deps: [{ token: i1.SessionService }, { token: i2.PromptService }, { token: i3.CubeService }, { token: i4.TranslateService }, { token: i5.DatasourceService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
332
+ CubeSpreadsheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CubeSpreadsheetComponent, selector: "bizdoc-cube-spreadsheet", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", yAxis: "yAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeSpreadsheetComponent, decorators: [{
334
334
  type: Component,
335
335
  args: [{
336
336
  selector: 'bizdoc-cube-spreadsheet',
@@ -364,4 +364,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
364
364
  }], id: [{
365
365
  type: HostBinding
366
366
  }] } });
367
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByZWFkc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2dyaWQvc3ByZWFkc2hlZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxXQUFXLEVBQXlCLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFvQyxXQUFXLEVBQTBELFFBQVEsRUFBdUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzTCxPQUFPLEVBQUUsUUFBUSxFQUFnQyxNQUFNLDhCQUE4QixDQUFDO0FBR3RGLE9BQU8sRUFBZSxXQUFXLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUtuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBU3pELE1BQU0sT0FBTyx3QkFBd0I7SUE0Q25DLDRFQUE0RTtJQUM1RSxZQUNVLFFBQXdCLEVBQ3hCLEdBQWtCLEVBQ2xCLFFBQXFCLEVBQ3JCLFVBQTRCLEVBQzVCLEdBQXNCLEVBQ3RCLFdBQXVCO1FBTHZCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTFCZCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2hELE9BQUUsR0FBRyxvQkFBb0Isd0JBQXdCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUU1RSxlQUFVLEdBQWUsRUFBRSxDQUFDO1FBRW5CLG1CQUFj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V2MsK0JBQU0sR0FBRyxDQUFDLENBQUM7cUhBRGYsd0JBQXdCO3lHQUF4Qix3QkFBd0IsdVlBTHpCLEVBQUU7MkZBS0Qsd0JBQXdCO2tCQVBwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRSxFQUFFO29CQUNaLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsV0FBVztxQkFDbkI7aUJBQ0Y7bVBBSUMsS0FBSztzQkFESixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBSUYsS0FBSztzQkFEUixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFHRixNQUFNO3NCQURULEtBQUs7Z0JBS0YsT0FBTztzQkFEVixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFFYSxPQUFPO3NCQUF6QixNQUFNO2dCQUNFLE9BQU87c0JBQWYsS0FBSztnQkFDYSxhQUFhO3NCQUEvQixNQUFNO2dCQUNRLEVBQUU7c0JBQWhCLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIENvbXBvbmVudCwgT3V0cHV0LCBPbkluaXQsIEhvc3RCaW5kaW5nLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDZWxsTW9kZWwsIENvbHVtbk1vZGVsLCBSb3dNb2RlbCwgU3ByZWFkc2hlZXQsIENlbGxTdHlsZU1vZGVsLCBTZWxlY3RFdmVudEFyZ3MsIEF1dG9GaWxsU2V0dGluZ3NNb2RlbCwgaXNOdW1iZXIsIFNjcm9sbFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItc3ByZWFkc2hlZXRcIjtcclxuaW1wb3J0IHsgV29ya2Jvb2ssIFdvcmtzaGVldCwgUm93LCBDb2x1bW4sIENlbGwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQsIEN1YmVWaWV3ZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUsIEN1YmVBeGlzLCBDdWJlSW5kZXgsIFlBeGlzIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlLCBlcnJSZXNvdXJjZSwgU2VyaWVzIH0gZnJvbSBcIi4uL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzU3RyaW5nIH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLXNwcmVhZHNoZWV0JyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdjdWJlLXZpZXcnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZVNwcmVhZHNoZWV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDdWJlVmlld2VyQ29tcG9uZW50LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASW5wdXQoKVxyXG4gIHdpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGN1YmU6IHN0cmluZztcclxuICBwcml2YXRlIF9jdWJlOiBDdWJlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHhBeGlzKHZhbDogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3hBeGlzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgeUF4aXM/OiBZQXhpcztcclxuICBASW5wdXQoKVxyXG4gIHNldCBzZXJpZXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5fc2VyaWVzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGluZGljZXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5faW5kaWNlcyA9IGlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBleHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4oKTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBIb3N0QmluZGluZygpIGlkID0gYGN1YmUtc3ByZWFkc2hlZXQtJHtDdWJlU3ByZWFkc2hlZXRDb21wb25lbnQubmV4dElkKyt9YDtcclxuICBzcHJlYWRzaGVldDogU3ByZWFkc2hlZXQ7XHJcbiAgZGF0YVNvdXJjZTogUm93TW9kZWxbXSA9IFtdO1xyXG4gIGNvbHVtbnM6IENvbHVtbk1vZGVsW107XHJcbiAgcmVhZG9ubHkgc2Nyb2xsU2V0dGluZ3MgPSB7IGlzRmluaXRlOiB0cnVlIH0gYXMgU2Nyb2xsU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSBudW1iZXJTdHlsZSA9IHsgdGV4dEFsaWduOiAncmlnaHQnIH0gYXMgQ2VsbFN0eWxlTW9kZWw7XHJcbiAgcmVhZG9ubHkgYXV0b0ZpbGxTZXR0aW5ncyA9IHsgc2hvd0ZpbGxPcHRpb25zOiBmYWxzZSB9IGFzIEF1dG9GaWxsU2V0dGluZ3NNb2RlbDtcclxuICBwcml2YXRlIF94QXhpczogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfc2VyaWVzPzogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfaW5kaWNlcz86IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX2F4ZXM6IEN1YmVBeGlzW107XHJcbiAgcHJpdmF0ZSBfY2luZGljZXM6IEN1YmVJbmRleFtdO1xyXG4gIHByaXZhdGUgX3lyb3dzOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3hjb2x1bW5zOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3ByZXBhcmU6IFByb21pc2U8YW55W10+O1xyXG4gIHByaXZhdGUgX251bWJlckZvcm1hdDogc3RyaW5nO1xyXG4gIC8vcHJpdmF0ZSByZWFkb25seSBfaW50bDogSW50ZXJuYXRpb25hbGl6YXRpb24gPSBuZXcgSW50ZXJuYXRpb25hbGl6YXRpb24oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY3ViZSA9IHRoaXMuY3ViZSA/IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpIDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgdGhpcy5fbnVtYmVyRm9ybWF0ID0gYCR7dGhpcy5fY3ViZS5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbid9JHt0aGlzLl9zZXJ2aWNlLmZyYWN0aW9uRGlnaXRzfWBcclxuICAgIGlmICh0aGlzLl9zZXJpZXMpIHtcclxuICAgICAgY29uc3QgeU5hbWUgPSB0aGlzLl9zZXJpZXNbMF0sIHhOYW1lID0gdGhpcy5feEF4aXNbMF0sXHJcbiAgICAgICAgeEF4aXMgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0geE5hbWUpLFxyXG4gICAgICAgIHlBeGlzID0gdGhpcy5fY3ViZS5heGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IHlOYW1lKTtcclxuICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8YW55PltdID0gW107XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IFt7XHJcbiAgICAgICAgd2lkdGg6IDEyMFxyXG4gICAgICB9XTtcclxuICAgICAgLy8gYWNxdWlyZSBjb2x1bW5zIHNvdXJjZVxyXG4gICAgICBsZXQgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh4QXhpcy5kYXRhVHlwZSkudG9Qcm9taXNlKCkuXHJcbiAgICAgICAgdGhlbihjID0+IHtcclxuICAgICAgICAgIHRoaXMuX3hjb2x1bW5zID0gYztcclxuICAgICAgICAgIGMuZm9yRWFjaChfID0+IHRoaXMuY29sdW1ucy5wdXNoKHtcclxuICAgICAgICAgICAgd2lkdGg6IDkwXHJcbiAgICAgICAgICB9IGFzIENvbHVtbk1vZGVsXHJcbiAgICAgICAgICApKTtcclxuICAgICAgICB9KSBhcyBQcm9taXNlPGFueT47XHJcbiAgICAgIHByb21pc2VzLnB1c2gob2JzZXJ2ZSk7XHJcbiAgICAgIC8vIGFjcXVpcmUgcm93cyBzb3VyY2VcclxuICAgICAgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh5QXhpcy5kYXRhVHlwZSkudG9Qcm9taXNlKCkuXHJcbiAgICAgICAgdGhlbihyID0+IHRoaXMuX3lyb3dzID0gcik7XHJcbiAgICAgIHByb21pc2VzLnB1c2gob2JzZXJ2ZSk7XHJcblxyXG4gICAgICB0aGlzLl9wcmVwYXJlID0gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX2F4ZXMgPSB0aGlzLl94QXhpcy5tYXAoYyA9PiB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PSBjKSk7XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuX2F4ZXMubWFwKF8gPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICB3aWR0aDogMTIwXHJcbiAgICAgICAgfSBhcyBDb2x1bW5Nb2RlbDtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuY29sdW1ucy5wdXNoKHtcclxuICAgICAgICB3aWR0aDogOTBcclxuICAgICAgfSAvKiB2YWx1ZSAqLyk7XHJcbiAgICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5faW5kaWNlcy5mb3JFYWNoKF8gPT4gdGhpcy5jb2x1bW5zLnB1c2goe1xyXG4gICAgICAgIHdpZHRoOiA5MFxyXG4gICAgICB9IGFzIENvbHVtbk1vZGVsXHJcbiAgICAgICkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2luZGljZXMpIHRoaXMuX2NpbmRpY2VzID0gdGhpcy5fY3ViZS5pbmRpY2VzLmZpbHRlcihpID0+IHRoaXMuX2luZGljZXMuaW5kZXhPZihpLm5hbWUpID4gLTEpO1xyXG4gICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJzJ10gJiYgIWNoYW5nZXNbJ2ZpbHRlcnMnXS5maXJzdENoYW5nZSlcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGlmIChjaGFuZ2VzWydoZWlnaHQnXSB8fCBjaGFuZ2VzWyd3aWR0aCddKVxyXG4gICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgfVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIGlmICh0aGlzLnNwcmVhZHNoZWV0KSB7XHJcbiAgICAgIHRoaXMuc3ByZWFkc2hlZXQuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XHJcbiAgICAgIHRoaXMuc3ByZWFkc2hlZXQud2lkdGggPSB0aGlzLndpZHRoO1xyXG4gICAgICB0aGlzLnNwcmVhZHNoZWV0LnJlZnJlc2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4ZWN1dGUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIGlmICh0aGlzLl9zZXJpZXMpXHJcbiAgICAgIHRoaXMuX3NlcnZpY2Uuc2VyaWVzKHRoaXMuY3ViZSwgdGhpcy5feEF4aXMsIHsgc2VyaWVzOiB0aGlzLl9zZXJpZXMsIGZpbHRlcnM6IHRoaXMuZmlsdGVycywgaW5kaWNlczogdGhpcy5faW5kaWNlcyB9KS5cclxuICAgICAgICBzdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9wcmVwYXJlLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhc2VyaWVzKGRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoZXJyUmVzb3VyY2UoZSkpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnRhYmxlKHRoaXMuX2N1YmUubmFtZSwgdGhpcy5feEF4aXMsIHsgZmlsdGVyczogdGhpcy5maWx0ZXJzLCBpbmRpY2VzOiB0aGlzLl9pbmRpY2VzIH0pLlxyXG4gICAgICAgIHN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgIHRoaXMuX2RhdGF0YWJsZShkYXRhKTtcclxuICAgICAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICB9LCBlID0+IHtcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKGVyclJlc291cmNlKGUpKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RhdGF0YWJsZShkYXRhOiB7IHZhbHVlOiBudW1iZXI7IH1bXSkge1xyXG4gICAgY29uc3QgY2VsbHMgPSBbXSwgc3R5bGUgPSB7IGZvbnRXZWlnaHQ6ICdib2xkJywgdGV4dEFsaWduOiAnY2VudGVyJyB9IGFzIENlbGxTdHlsZU1vZGVsO1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKGMgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgIHZhbHVlOiBjLnRpdGxlLCBzdHlsZVxyXG4gICAgfSBhcyBDZWxsTW9kZWwpKTtcclxuICAgIHRoaXMuX2NpbmRpY2VzPy5mb3JFYWNoKGkgPT4gY2VsbHMucHVzaCh7IHZhbHVlOiBpLnRpdGxlLCBzdHlsZSB9IGFzIENlbGxNb2RlbCkpO1xyXG4gICAgY2VsbHMucHVzaCh7XHJcbiAgICAgIHZhbHVlOiB0aGlzLnlBeGlzID8gdGhpcy55QXhpcy50aXRsZSA6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJyksXHJcbiAgICAgIHN0eWxlXHJcbiAgICB9IGFzIENlbGxNb2RlbCk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBbe1xyXG4gICAgICBjZWxscywgaGVpZ2h0OiAyNVxyXG4gICAgfSBhcyBSb3dNb2RlbF07XHJcbiAgICBkYXRhLmZvckVhY2goZCA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbGxzID0gW107XHJcbiAgICAgIHRoaXMuX3hBeGlzLmZvckVhY2goYyA9PiBjZWxscy5wdXNoKHtcclxuICAgICAgICB2YWx1ZTogZFtjXSxcclxuICAgICAgfSBhcyBDZWxsTW9kZWwpKTtcclxuICAgICAgdGhpcy5faW5kaWNlcz8uZm9yRWFjaChpID0+IGNlbGxzLnB1c2goe1xyXG4gICAgICAgIHN0eWxlOiB0aGlzLm51bWJlclN0eWxlLFxyXG4gICAgICAgIGZvcm1hdDogdGhpcy5fbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgIHZhbHVlOiAoZFtpXSB8fCAwKSBhcyBhbnksXHJcbiAgICAgIH0gYXMgQ2VsbE1vZGVsKSk7XHJcbiAgICAgIGNlbGxzLnB1c2goe1xyXG4gICAgICAgIHN0eWxlOiB0aGlzLm51bWJlclN0eWxlLFxyXG4gICAgICAgIGZvcm1hdDogdGhpcy5fbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgIHZhbHVlOiAoZC52YWx1ZSB8fCAwKSBhcyBhbnksXHJcbiAgICAgIH0gYXMgQ2VsbE1vZGVsKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLnB1c2goeyBjZWxscywgc291cmNlOiBkLCBoZWlnaHQ6IDI1IH0gYXMgUm93TW9kZWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kYXRhc2VyaWVzKGQ6IFNlcmllc1tdKSB7XHJcbiAgICBjb25zdCBzdHlsZSA9IHsgZm9udFdlaWdodDogJ2JvbGQnLCB0ZXh0QWxpZ246ICdjZW50ZXInIH0gYXMgQ2VsbFN0eWxlTW9kZWw7XHJcbiAgICBjb25zdCBjZWxscyA9IFt7IHZhbHVlOiAnJyB9IGFzIENlbGxNb2RlbF07XHJcbiAgICB0aGlzLl94Y29sdW1ucy5mb3JFYWNoKGMgPT4gY2VsbHMucHVzaCh7IHZhbHVlOiBjLnZhbHVlLCBzdHlsZSB9KSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBbeyBjZWxscywgaGVpZ2h0OiAyNSB9XTtcclxuICAgIHRoaXMuX2NpbmRpY2VzPy5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICBjb25zdCBjZWxscyA9IFt7IHZhbHVlOiBpLnRpdGxlLCBzdHlsZSB9IGFzIENlbGxNb2RlbF0sIHNlcmllcyA9IGQuZmluZChzID0+IHMuaW5kZXggPT09IGkubmFtZSksIG1hcCA9IHt9O1xyXG4gICAgICBpZiAoc2VyaWVzKSB7XHJcbiAgICAgICAgc2VyaWVzLnBvaW50cy5mb3JFYWNoKHAgPT4gbWFwW3AueF0gPSBwLnkpO1xyXG4gICAgICAgIHRoaXMuX3hjb2x1bW5zLmZvckVhY2goYyA9PiBjZWxscy5wdXNoKHtcclxuICAgICAgICAgIHZhbHVlOiAobWFwW2Mua2V5XSB8fCAwKSBhcyBhbnksXHJcbiAgICAgICAgICBmb3JtYXQ6IHRoaXMuX251bWJlckZvcm1hdCxcclxuICAgICAgICAgIHN0eWxlOiB0aGlzLm51bWJlclN0eWxlXHJcbiAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5wdXNoKHsgY2VsbHMsIGhlaWdodDogMjUgfSBhcyBSb3dNb2RlbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5feXJvd3MuZm9yRWFjaChyID0+IHtcclxuICAgICAgY29uc3QgY2VsbHMgPSBbeyB2YWx1ZTogci52YWx1ZSwgc3R5bGUgfSBhcyBDZWxsTW9kZWxdLFxyXG4gICAgICAgIHNlcmllID0gZC5maW5kKHMgPT4gcy5uYW1lID09PSByLmtleSksIG1hcCA9IHt9O1xyXG4gICAgICBpZiAoc2VyaWUpIHtcclxuICAgICAgICBzZXJpZS5wb2ludHMuZm9yRWFjaChwID0+IG1hcFtwLnhdID0gcC55KTtcclxuICAgICAgICB0aGlzLl94Y29sdW1ucy5mb3JFYWNoKGMgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgICAgICB2YWx1ZTogKG1hcFtjLmtleV0gfHwgMCkgYXMgYW55LFxyXG4gICAgICAgICAgZm9ybWF0OiB0aGlzLl9udW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICBzdHlsZTogdGhpcy5udW1iZXJTdHlsZVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5feGNvbHVtbnMuZm9yRWFjaChfID0+IGNlbGxzLnB1c2goeyB2YWx1ZTogMCBhcyBhbnkgfSlcclxuICAgICAgICApO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UucHVzaCh7IGNlbGxzLCBoZWlnaHQ6IDI1IH0gYXMgUm93TW9kZWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5zcHJlYWRzaGVldCAmJiB0aGlzLnNwcmVhZHNoZWV0LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuc3ByZWFkc2hlZXQgPSBuZXcgU3ByZWFkc2hlZXQoe1xyXG4gICAgICBzY3JvbGxTZXR0aW5nczogdGhpcy5zY3JvbGxTZXR0aW5ncyxcclxuICAgICAgaXNQcm90ZWN0ZWQ6IHRydWUsXHJcbiAgICAgIGFsbG93RWRpdGluZzogZmFsc2UsXHJcbiAgICAgIGFsbG93RGVsZXRlOiBmYWxzZSxcclxuICAgICAgYWxsb3dJbnNlcnQ6IGZhbHNlLFxyXG4gICAgICBzaG93UmliYm9uOiBmYWxzZSxcclxuICAgICAgYWxsb3dBdXRvRmlsbDogZmFsc2UsXHJcbiAgICAgIGF1dG9GaWxsU2V0dGluZ3M6IHRoaXMuYXV0b0ZpbGxTZXR0aW5ncyxcclxuICAgICAgZW5hYmxlQ2xpcGJvYXJkOiB0cnVlLFxyXG4gICAgICBlbmFibGVDb250ZXh0TWVudTogZmFsc2UsXHJcbiAgICAgIHNob3dGb3JtdWxhQmFyOiBmYWxzZSxcclxuICAgICAgc2hvd1NoZWV0VGFiczogZmFsc2UsXHJcbiAgICAgIGVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbjogdHJ1ZSxcclxuICAgICAgc2VsZWN0OiB0aGlzLnNlbGVjdC5iaW5kKHRoaXMpLFxyXG4gICAgICBzaGVldHM6IFt7XHJcbiAgICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLFxyXG4gICAgICAgIGZyb3plbkNvbHVtbnM6IHRoaXMuX3NlcmllcyAhPT0gdW5kZWZpbmVkID8gMSA6IDAsXHJcbiAgICAgICAgZnJvemVuUm93czogMSxcclxuICAgICAgICByb3dzOiB0aGlzLmRhdGFTb3VyY2UsXHJcbiAgICAgIH1dLFxyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIHNlbGVjdChldnQ6IFNlbGVjdEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuc3ByZWFkc2hlZXQuZ2V0QWRkcmVzc0luZm8oZXZ0LnJhbmdlKTtcclxuICAgIGxldCBbeSwgeCwgeTEsIHgxXSA9IGFkZHJlc3MuaW5kaWNlcztcclxuICAgIGlmICh5MSA8IHkpIHtcclxuICAgICAgY29uc3QgcmFuZ2UgPSB5O1xyXG4gICAgICB5ID0geTEsIHkxID0gcmFuZ2U7XHJcbiAgICB9XHJcbiAgICBpZiAoeDEgPCB4KSB7XHJcbiAgICAgIGNvbnN0IHJhbmdlID0geDtcclxuICAgICAgeCA9IHgxLCB4MSA9IHJhbmdlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXhlczoge30gPSB7fTtcclxuICAgIGxldCBpbmRleDogc3RyaW5nO1xyXG4gICAgaWYgKHkgPiB0aGlzLmRhdGFTb3VyY2UubGVuZ3RoIC0gMSB8fCB4ID4gdGhpcy5kYXRhU291cmNlW3ldLmNlbGxzLmxlbmd0aCAtIDEpIHJldHVybjtcclxuICAgIGlmICh5ID09PSB5MSAmJiB4ID09PSB4MSAmJiB0aGlzLmRhdGFTb3VyY2VbeV0uY2VsbHNbeF0udmFsdWUgYXMgYW55ID09PSAwKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5fc2VyaWVzKSB7XHJcbiAgICAgIGlmICh5IDwgMSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9pbmRpY2VzKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5fZmlsbHgoeCwgeDEsIGF4ZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuX2luZGljZXMgJiYgeSA8PSB0aGlzLl9pbmRpY2VzLmxlbmd0aCkge1xyXG4gICAgICAgIGluZGV4ID0gdGhpcy5faW5kaWNlc1t5IC0gMV07XHJcbiAgICAgICAgdGhpcy5fZmlsbHgoeCwgeDEsIGF4ZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLl9pbmRpY2VzKVxyXG4gICAgICAgICAgdGhpcy5fZmlsbHkoeSAtIHRoaXMuX2luZGljZXMubGVuZ3RoLCB5MSAtIHRoaXMuX2luZGljZXMubGVuZ3RoLCBheGVzKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLl9maWxseSh5LCB5MSwgYXhlcyk7XHJcbiAgICAgICAgaWYgKHggPiAxKVxyXG4gICAgICAgICAgdGhpcy5fZmlsbHgoeCwgeDEsIGF4ZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHkgPT09IDApIHJldHVybjtcclxuICAgICAgaW5kZXggPSB0aGlzLl9pbmRpY2VzICYmIHggPj0gdGhpcy5fYXhlcy5sZW5ndGggJiYgeCA8IHRoaXMuX2F4ZXMubGVuZ3RoICsgdGhpcy5fY2luZGljZXMubGVuZ3RoID8gdGhpcy5fY2luZGljZXNbeCAtIHRoaXMuX2F4ZXMubGVuZ3RoXS5uYW1lIDogbnVsbDtcclxuICAgICAgbGV0IGkgPSB5O1xyXG4gICAgICBkbyB7XHJcbiAgICAgICAgdGhpcy5fYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgY29uc3Qga2V5ID0gKHRoaXMuZGF0YVNvdXJjZVtpXSBhcyBhbnkpLnNvdXJjZVsnXycgKyBhLm5hbWVdO1xyXG4gICAgICAgICAgaWYgKCFheGVzW2EubmFtZV0pXHJcbiAgICAgICAgICAgIGF4ZXNbYS5uYW1lXSA9IGtleTtcclxuICAgICAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKGF4ZXNbYS5uYW1lXSkpIHtcclxuICAgICAgICAgICAgaWYgKGF4ZXNbYS5uYW1lXSAhPT0ga2V5KSBheGVzW2EubmFtZV0gPSBbYXhlc1thLm5hbWVdLCBrZXldO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAoKGF4ZXNbYS5uYW1lXSBhcyBzdHJpbmdbXSkuaW5kZXhPZihrZXkpIDwgMCkgKGF4ZXNbYS5uYW1lXSBhcyBzdHJpbmdbXSkucHVzaChrZXkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGkrKztcclxuICAgICAgfVxyXG4gICAgICB3aGlsZSAoaSA8PSB5MSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmV4cGxvcmUuZW1pdCh7IGF4ZXMsIGluZGV4IH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9maWxseSh5OiBudW1iZXIsIHkxOiBudW1iZXIsIGF4ZXM6IHt9KSB7XHJcbiAgICBjb25zdCB5TmFtZSA9IHRoaXMuX3Nlcmllc1swXTtcclxuICAgIGxldCBpID0geSAtIDE7XHJcbiAgICB3aGlsZSAoaSA8IHkxKSB7XHJcbiAgICAgIGxldCB7IGtleSB9ID0gdGhpcy5feXJvd3NbaV07XHJcbiAgICAgIGlmICghYXhlc1t5TmFtZV0pXHJcbiAgICAgICAgYXhlc1t5TmFtZV0gPSBrZXk7XHJcbiAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKGF4ZXNbeU5hbWVdKSlcclxuICAgICAgICBheGVzW3lOYW1lXSA9IFtheGVzW3lOYW1lXSwga2V5XTtcclxuICAgICAgZWxzZSBpZiAoKGF4ZXNbeU5hbWVdIGFzIHN0cmluZ1tdKS5pbmRleE9mKGtleSkgPCAwKVxyXG4gICAgICAgIChheGVzW3lOYW1lXSBhcyBzdHJpbmdbXSkucHVzaChrZXkpO1xyXG4gICAgICBpKys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWxseCh4OiBudW1iZXIsIHgxOiBudW1iZXIsIGF4ZXM6IHt9KSB7XHJcbiAgICBjb25zdCB4TmFtZSA9IHRoaXMuX3hBeGlzWzBdO1xyXG4gICAgbGV0IGkgPSB4IC0gMTtcclxuICAgIHdoaWxlIChpIDwgeDEpIHtcclxuICAgICAgbGV0IHsga2V5IH0gPSB0aGlzLl94Y29sdW1uc1tpXTtcclxuICAgICAgaWYgKCFheGVzW3hOYW1lXSlcclxuICAgICAgICBheGVzW3hOYW1lXSA9IGtleTtcclxuICAgICAgZWxzZSBpZiAoaXNTdHJpbmcoYXhlc1t4TmFtZV0pKVxyXG4gICAgICAgIGF4ZXNbeE5hbWVdID0gW2F4ZXNbeE5hbWVdLCBrZXldO1xyXG4gICAgICBlbHNlIGlmICgoYXhlc1t4TmFtZV0gYXMgc3RyaW5nW10pLmluZGV4T2Yoa2V5KSA8IDApXHJcbiAgICAgICAgKGF4ZXNbeE5hbWVdIGFzIHN0cmluZ1tdKS5wdXNoKGtleSk7XHJcbiAgICAgIGkrKztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4cG9ydFRvRXhjZWwodGl0bGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgeyByb3dzIH0gPSB0aGlzLnNwcmVhZHNoZWV0LnNoZWV0c1swXSxcclxuICAgICAgbnVtYmVyRm9ybWF0ID0gdGhpcy5fc2VydmljZS5udW1iZXJGb3JtYXQsXHJcbiAgICAgIGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgd29ya3NoZWV0czogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZW5hYmxlUnRsOiB0aGlzLl9zZXNzaW9uLmludmVyc2UsXHJcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnU2hlZXROJywgMSksXHJcbiAgICAgICAgICAgICAgY29sdW1uczogcm93c1swXS5jZWxscy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDE1MCB9IGFzIENvbHVtbikpLFxyXG4gICAgICAgICAgICAgIHJvd3M6IHJvd3MubWFwKChyLCBpKSA9PiAoXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIGluZGV4OiBpICsgMSxcclxuICAgICAgICAgICAgICAgICAgY2VsbHM6IHIuY2VsbHMubWFwKChjLCBqKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGVhZGVyID0gaSA9PT0gMCB8fCAodGhpcy5fc2VyaWVzICE9PSB1bmRlZmluZWQgJiYgaiA9PT0gMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICBpc251bWJlciA9ICFoZWFkZXIgJiYgaXNOdW1iZXIoYy52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGlzbnVtYmVyID8gJ251bWJlcicgOiAndGV4dCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaiArIDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYy52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaEFsaWduOiBpc251bWJlciA/ICdyaWdodCcgOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9sZDogaGVhZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgfSBhcyBSb3cpKSxcclxuICAgICAgICAgICAgfSBhcyBXb3Jrc2hlZXQsXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgJ3hsc3gnXHJcbiAgICAgICk7XHJcbiAgICBib29rLnNhdmUoYCR7dGl0bGV9Lnhsc3hgKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnNwcmVhZHNoZWV0ICYmIHRoaXMuc3ByZWFkc2hlZXQuZGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
367
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByZWFkc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2dyaWQvc3ByZWFkc2hlZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxXQUFXLEVBQXlCLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFvQyxXQUFXLEVBQTBELFFBQVEsRUFBdUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzTCxPQUFPLEVBQUUsUUFBUSxFQUFnQyxNQUFNLDhCQUE4QixDQUFDO0FBR3RGLE9BQU8sRUFBZSxXQUFXLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUtuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBU3pELE1BQU0sT0FBTyx3QkFBd0I7SUE0Q25DLDRFQUE0RTtJQUM1RSxZQUNVLFFBQXdCLEVBQ3hCLEdBQWtCLEVBQ2xCLFFBQXFCLEVBQ3JCLFVBQTRCLEVBQzVCLEdBQXNCLEVBQ3RCLFdBQXVCO1FBTHZCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTFCZCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2hELE9BQUUsR0FBRyxvQkFBb0Isd0JBQXdCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUU1RSxlQUFVLEdBQWUsRUFBRSxDQUFDO1FBRW5CLG1CQUFjLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUF5QixDQUFDO1FBQzNELGdCQUFXLEdBQUcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFvQixDQUFDO1FBQ3ZELHFCQUFnQixHQUFHLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBMkIsQ0FBQztRQU14RSxXQUFNLEdBQStCLEVBQUUsQ0FBQztRQUN4QyxjQUFTLEdBQStCLEVBQUUsQ0FBQztJQVVkLENBQUM7SUExQ3RDLElBQ0ksS0FBSyxDQUFDLEdBQXNCO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUdELElBQ0ksTUFBTSxDQUFDLEdBQXNCO1FBQy9CLElBQUksR0FBRztZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELElBQ0ksT0FBTyxDQUFDLEdBQXNCO1FBQ2hDLElBQUksR0FBRztZQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQThCRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0SCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUE7UUFDNUYsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQ25ELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUNuRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztZQUN0RCxNQUFNLFFBQVEsR0FBbUIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQztvQkFDZCxLQUFLLEVBQUUsR0FBRztpQkFDWCxDQUFDLENBQUM7WUFDSCx5QkFBeUI7WUFDekIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQy9CLEtBQUssRUFBRSxFQUFFO2lCQUNLLENBQ2YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFpQixDQUFDO1lBQ3JCLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsc0JBQXNCO1lBQ3RCLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFO2dCQUNoRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZDO2FBQ0k7WUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hDLE9BQU87b0JBQ0wsS0FBSyxFQUFFLEdBQUc7aUJBQ0ksQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNoQixLQUFLLEVBQUUsRUFBRTthQUNWLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQzVELEtBQUssRUFBRSxFQUFFO2FBQ0ssQ0FDZixDQUFDLENBQUM7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVc7WUFDdkQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBRWYsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUN2QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU87WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuSCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQzs7WUFFTCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUEwQjtRQUMzQyxNQUFNLEtBQUssR0FBRyxFQUFFLEVBQUUsS0FBSyxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFvQixDQUFDO1FBQ3hGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNqQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLO1NBQ1QsQ0FBQyxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUNuRSxLQUFLO1NBQ08sQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQztnQkFDakIsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO2FBQ04sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNmLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ2xDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ0MsQ0FBQyxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNyQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDMUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBUTthQUNiLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWE7Z0JBQzFCLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFRO2FBQ2hCLENBQUMsQ0FBQztZQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQWMsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxDQUFXO1FBQzdCLE1BQU0sS0FBSyxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFvQixDQUFDO1FBQzVFLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFlLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzFCLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQWUsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUMzRyxJQUFJLE1BQU0sRUFBRTtnQkFDVixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ3JDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFRO29CQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWE7b0JBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVztpQkFDeEIsQ0FBQyxDQUNELENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBYyxDQUFDLENBQUM7YUFDekQ7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQWUsQ0FBQyxFQUNwRCxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDbEQsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNyQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBUTtvQkFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO29CQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVc7aUJBQ3hCLENBQUMsQ0FDRCxDQUFDO2FBQ0g7O2dCQUVDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFRLEVBQUUsQ0FBQyxDQUMxRCxDQUFDO1lBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBYyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDO1lBQ2pDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsS0FBSztZQUNuQixXQUFXLEVBQUUsS0FBSztZQUNsQixXQUFXLEVBQUUsS0FBSztZQUNsQixVQUFVLEVBQUUsS0FBSztZQUNqQixhQUFhLEVBQUUsS0FBSztZQUNwQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGlCQUFpQixFQUFFLEtBQUs7WUFDeEIsY0FBYyxFQUFFLEtBQUs7WUFDckIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsd0JBQXdCLEVBQUUsSUFBSTtZQUM5QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzlCLE1BQU0sRUFBRSxDQUFDO29CQUNQLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDckIsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pELFVBQVUsRUFBRSxDQUFDO29CQUNiLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVTtpQkFDdEIsQ0FBQztZQUNGLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxNQUFNLENBQUMsR0FBb0I7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3JDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNWLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNoQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUM7U0FDcEI7UUFDRCxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDVixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDO1NBQ3BCO1FBQ0QsTUFBTSxJQUFJLEdBQU8sRUFBRSxDQUFDO1FBQ3BCLElBQUksS0FBYSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxPQUFPO1FBQ3RGLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQVksS0FBSyxDQUFDO1lBQUUsT0FBTztRQUNuRixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNULElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsT0FBTztnQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQzFCO2lCQUNJLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25ELEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQzFCO2lCQUNJO2dCQUNILElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDOztvQkFFdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDO29CQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUM1QjtTQUNGO2FBQ0k7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU87WUFDcEIsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNySixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDVixHQUFHO2dCQUNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNyQixNQUFNLEdBQUcsR0FBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQ2YsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7eUJBQ2hCLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTt3QkFDL0IsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUc7NEJBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQzlEO3lCQUNJLElBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQzt3QkFBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0YsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsQ0FBQyxFQUFFLENBQUM7YUFDTCxRQUNNLENBQUMsSUFBSSxFQUFFLEVBQUU7U0FDakI7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDTyxNQUFNLENBQUMsQ0FBUyxFQUFFLEVBQVUsRUFBRSxJQUFRO1FBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNiLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUM7aUJBQ2YsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQzlCLElBQUssSUFBSSxDQUFDLEtBQUssQ0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsRUFBRSxDQUFDO1NBQ0w7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLENBQVMsRUFBRSxFQUFVLEVBQUUsSUFBUTtRQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDYixJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO2lCQUNmLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUM5QixJQUFLLElBQUksQ0FBQyxLQUFLLENBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxDQUFDLEVBQUUsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFDekMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUN6QyxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQ2pCO1lBQ0UsVUFBVSxFQUFFO2dCQUNWO29CQUNFLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87b0JBQ2hDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO29CQUN0QyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBYSxDQUFBLENBQUM7b0JBQzlFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDdkI7d0JBQ0UsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDO3dCQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTs0QkFDMUIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDL0QsUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQzFDLE9BQU87Z0NBQ0wsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNO2dDQUNsQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0NBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO2dDQUNkLEtBQUssRUFBRTtvQ0FDTCxZQUFZO29DQUNaLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUTtvQ0FDckMsSUFBSSxFQUFFLE1BQU07aUNBQ2I7NkJBQ0ssQ0FBQzt3QkFDWCxDQUFDLENBQ0E7cUJBQ00sQ0FBQSxDQUFDO2lCQUNBO2FBQ2Y7U0FDRixFQUNELE1BQU0sQ0FDUCxDQUFDO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakQsQ0FBQzs7QUFuV2MsK0JBQU0sR0FBRyxDQUFDLENBQUM7cUhBRGYsd0JBQXdCO3lHQUF4Qix3QkFBd0IsdVlBTHpCLEVBQUU7MkZBS0Qsd0JBQXdCO2tCQVBwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRSxFQUFFO29CQUNaLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsV0FBVztxQkFDbkI7aUJBQ0Y7bVBBSUMsS0FBSztzQkFESixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBSUYsS0FBSztzQkFEUixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFHRixNQUFNO3NCQURULEtBQUs7Z0JBS0YsT0FBTztzQkFEVixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFFYSxPQUFPO3NCQUF6QixNQUFNO2dCQUNFLE9BQU87c0JBQWYsS0FBSztnQkFDYSxhQUFhO3NCQUEvQixNQUFNO2dCQUNRLEVBQUU7c0JBQWhCLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIENvbXBvbmVudCwgT3V0cHV0LCBPbkluaXQsIEhvc3RCaW5kaW5nLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDZWxsTW9kZWwsIENvbHVtbk1vZGVsLCBSb3dNb2RlbCwgU3ByZWFkc2hlZXQsIENlbGxTdHlsZU1vZGVsLCBTZWxlY3RFdmVudEFyZ3MsIEF1dG9GaWxsU2V0dGluZ3NNb2RlbCwgaXNOdW1iZXIsIFNjcm9sbFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItc3ByZWFkc2hlZXRcIjtcclxuaW1wb3J0IHsgV29ya2Jvb2ssIFdvcmtzaGVldCwgUm93LCBDb2x1bW4sIENlbGwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQsIEN1YmVWaWV3ZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUsIEN1YmVBeGlzLCBDdWJlSW5kZXgsIFlBeGlzIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlLCBlcnJSZXNvdXJjZSwgU2VyaWVzIH0gZnJvbSBcIi4uL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzU3RyaW5nIH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLXNwcmVhZHNoZWV0JyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdjdWJlLXZpZXcnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZVNwcmVhZHNoZWV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDdWJlVmlld2VyQ29tcG9uZW50LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkID0gMDtcclxuICBASW5wdXQoKVxyXG4gIHdpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBoZWlnaHQ6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIGN1YmU6IHN0cmluZztcclxuICBwcml2YXRlIF9jdWJlOiBDdWJlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHhBeGlzKHZhbDogc3RyaW5nW10gfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3hBeGlzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgeUF4aXM/OiBZQXhpcztcclxuICBASW5wdXQoKVxyXG4gIHNldCBzZXJpZXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5fc2VyaWVzID0gaXNBcnJheSh2YWwpID8gdmFsIDogW3ZhbF07XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGluZGljZXModmFsOiBzdHJpbmdbXSB8IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkgdGhpcy5faW5kaWNlcyA9IGlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBleHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4oKTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBIb3N0QmluZGluZygpIGlkID0gYGN1YmUtc3ByZWFkc2hlZXQtJHtDdWJlU3ByZWFkc2hlZXRDb21wb25lbnQubmV4dElkKyt9YDtcclxuICBzcHJlYWRzaGVldDogU3ByZWFkc2hlZXQ7XHJcbiAgZGF0YVNvdXJjZTogUm93TW9kZWxbXSA9IFtdO1xyXG4gIGNvbHVtbnM6IENvbHVtbk1vZGVsW107XHJcbiAgcmVhZG9ubHkgc2Nyb2xsU2V0dGluZ3MgPSB7IGlzRmluaXRlOiB0cnVlIH0gYXMgU2Nyb2xsU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSBudW1iZXJTdHlsZSA9IHsgdGV4dEFsaWduOiAncmlnaHQnIH0gYXMgQ2VsbFN0eWxlTW9kZWw7XHJcbiAgcmVhZG9ubHkgYXV0b0ZpbGxTZXR0aW5ncyA9IHsgc2hvd0ZpbGxPcHRpb25zOiBmYWxzZSB9IGFzIEF1dG9GaWxsU2V0dGluZ3NNb2RlbDtcclxuICBwcml2YXRlIF94QXhpczogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfc2VyaWVzPzogc3RyaW5nW107XHJcbiAgcHJpdmF0ZSBfaW5kaWNlcz86IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX2F4ZXM6IEN1YmVBeGlzW107XHJcbiAgcHJpdmF0ZSBfY2luZGljZXM6IEN1YmVJbmRleFtdO1xyXG4gIHByaXZhdGUgX3lyb3dzOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3hjb2x1bW5zOiB7IGtleTogYW55OyB2YWx1ZTogYW55IH1bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3ByZXBhcmU6IFByb21pc2U8YW55W10+O1xyXG4gIHByaXZhdGUgX251bWJlckZvcm1hdDogc3RyaW5nO1xyXG4gIC8vcHJpdmF0ZSByZWFkb25seSBfaW50bDogSW50ZXJuYXRpb25hbGl6YXRpb24gPSBuZXcgSW50ZXJuYXRpb25hbGl6YXRpb24oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHsgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY3ViZSA9IHRoaXMuY3ViZSA/IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpIDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzWzBdO1xyXG4gICAgdGhpcy5fbnVtYmVyRm9ybWF0ID0gYCR7dGhpcy5fY3ViZS5jdXJyZW5jeUNvZGUgPyAnYycgOiAnbid9JHt0aGlzLl9zZXJ2aWNlLmZyYWN0aW9uRGlnaXRzfWBcclxuICAgIGlmICh0aGlzLl9zZXJpZXMpIHtcclxuICAgICAgY29uc3QgeU5hbWUgPSB0aGlzLl9zZXJpZXNbMF0sIHhOYW1lID0gdGhpcy5feEF4aXNbMF0sXHJcbiAgICAgICAgeEF4aXMgPSB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0geE5hbWUpLFxyXG4gICAgICAgIHlBeGlzID0gdGhpcy5fY3ViZS5heGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IHlOYW1lKTtcclxuICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8YW55PltdID0gW107XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IFt7XHJcbiAgICAgICAgd2lkdGg6IDEyMFxyXG4gICAgICB9XTtcclxuICAgICAgLy8gYWNxdWlyZSBjb2x1bW5zIHNvdXJjZVxyXG4gICAgICBsZXQgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh4QXhpcy5kYXRhVHlwZSkudG9Qcm9taXNlKCkuXHJcbiAgICAgICAgdGhlbihjID0+IHtcclxuICAgICAgICAgIHRoaXMuX3hjb2x1bW5zID0gYztcclxuICAgICAgICAgIGMuZm9yRWFjaChfID0+IHRoaXMuY29sdW1ucy5wdXNoKHtcclxuICAgICAgICAgICAgd2lkdGg6IDkwXHJcbiAgICAgICAgICB9IGFzIENvbHVtbk1vZGVsXHJcbiAgICAgICAgICApKTtcclxuICAgICAgICB9KSBhcyBQcm9taXNlPGFueT47XHJcbiAgICAgIHByb21pc2VzLnB1c2gob2JzZXJ2ZSk7XHJcbiAgICAgIC8vIGFjcXVpcmUgcm93cyBzb3VyY2VcclxuICAgICAgb2JzZXJ2ZSA9IHRoaXMuX2RzLmFsbCh5QXhpcy5kYXRhVHlwZSkudG9Qcm9taXNlKCkuXHJcbiAgICAgICAgdGhlbihyID0+IHRoaXMuX3lyb3dzID0gcik7XHJcbiAgICAgIHByb21pc2VzLnB1c2gob2JzZXJ2ZSk7XHJcblxyXG4gICAgICB0aGlzLl9wcmVwYXJlID0gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX2F4ZXMgPSB0aGlzLl94QXhpcy5tYXAoYyA9PiB0aGlzLl9jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PSBjKSk7XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuX2F4ZXMubWFwKF8gPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICB3aWR0aDogMTIwXHJcbiAgICAgICAgfSBhcyBDb2x1bW5Nb2RlbDtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuY29sdW1ucy5wdXNoKHtcclxuICAgICAgICB3aWR0aDogOTBcclxuICAgICAgfSAvKiB2YWx1ZSAqLyk7XHJcbiAgICAgIHRoaXMuX2luZGljZXMgJiYgdGhpcy5faW5kaWNlcy5mb3JFYWNoKF8gPT4gdGhpcy5jb2x1bW5zLnB1c2goe1xyXG4gICAgICAgIHdpZHRoOiA5MFxyXG4gICAgICB9IGFzIENvbHVtbk1vZGVsXHJcbiAgICAgICkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2luZGljZXMpIHRoaXMuX2NpbmRpY2VzID0gdGhpcy5fY3ViZS5pbmRpY2VzLmZpbHRlcihpID0+IHRoaXMuX2luZGljZXMuaW5kZXhPZihpLm5hbWUpID4gLTEpO1xyXG4gICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWx0ZXJzJ10gJiYgIWNoYW5nZXNbJ2ZpbHRlcnMnXS5maXJzdENoYW5nZSlcclxuICAgICAgdGhpcy5leGVjdXRlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGlmIChjaGFuZ2VzWydoZWlnaHQnXSB8fCBjaGFuZ2VzWyd3aWR0aCddKVxyXG4gICAgICAgIHRoaXMucmVzaXplKCk7XHJcbiAgfVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIGlmICh0aGlzLnNwcmVhZHNoZWV0KSB7XHJcbiAgICAgIHRoaXMuc3ByZWFkc2hlZXQuaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XHJcbiAgICAgIHRoaXMuc3ByZWFkc2hlZXQud2lkdGggPSB0aGlzLndpZHRoO1xyXG4gICAgICB0aGlzLnNwcmVhZHNoZWV0LnJlZnJlc2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4ZWN1dGUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIGlmICh0aGlzLl9zZXJpZXMpXHJcbiAgICAgIHRoaXMuX3NlcnZpY2Uuc2VyaWVzKHRoaXMuY3ViZSwgdGhpcy5feEF4aXMsIHsgc2VyaWVzOiB0aGlzLl9zZXJpZXMsIGZpbHRlcnM6IHRoaXMuZmlsdGVycywgaW5kaWNlczogdGhpcy5faW5kaWNlcyB9KS5cclxuICAgICAgICBzdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9wcmVwYXJlLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhc2VyaWVzKGRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIGUgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoZXJyUmVzb3VyY2UoZSkpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLnRhYmxlKHRoaXMuX2N1YmUubmFtZSwgdGhpcy5feEF4aXMsIHsgZmlsdGVyczogdGhpcy5maWx0ZXJzLCBpbmRpY2VzOiB0aGlzLl9pbmRpY2VzIH0pLlxyXG4gICAgICAgIHN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgIHRoaXMuX2RhdGF0YWJsZShkYXRhKTtcclxuICAgICAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICB9LCBlID0+IHtcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKGVyclJlc291cmNlKGUpKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RhdGF0YWJsZShkYXRhOiB7IHZhbHVlOiBudW1iZXI7IH1bXSkge1xyXG4gICAgY29uc3QgY2VsbHMgPSBbXSwgc3R5bGUgPSB7IGZvbnRXZWlnaHQ6ICdib2xkJywgdGV4dEFsaWduOiAnY2VudGVyJyB9IGFzIENlbGxTdHlsZU1vZGVsO1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKGMgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgIHZhbHVlOiBjLnRpdGxlLCBzdHlsZVxyXG4gICAgfSBhcyBDZWxsTW9kZWwpKTtcclxuICAgIHRoaXMuX2NpbmRpY2VzPy5mb3JFYWNoKGkgPT4gY2VsbHMucHVzaCh7IHZhbHVlOiBpLnRpdGxlLCBzdHlsZSB9IGFzIENlbGxNb2RlbCkpO1xyXG4gICAgY2VsbHMucHVzaCh7XHJcbiAgICAgIHZhbHVlOiB0aGlzLnlBeGlzID8gdGhpcy55QXhpcy50aXRsZSA6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1ZhbHVlJyksXHJcbiAgICAgIHN0eWxlXHJcbiAgICB9IGFzIENlbGxNb2RlbCk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBbe1xyXG4gICAgICBjZWxscywgaGVpZ2h0OiAyNVxyXG4gICAgfSBhcyBSb3dNb2RlbF07XHJcbiAgICBkYXRhLmZvckVhY2goZCA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbGxzID0gW107XHJcbiAgICAgIHRoaXMuX3hBeGlzLmZvckVhY2goYyA9PiBjZWxscy5wdXNoKHtcclxuICAgICAgICB2YWx1ZTogZFtjXSxcclxuICAgICAgfSBhcyBDZWxsTW9kZWwpKTtcclxuICAgICAgdGhpcy5faW5kaWNlcz8uZm9yRWFjaChpID0+IGNlbGxzLnB1c2goe1xyXG4gICAgICAgIHN0eWxlOiB0aGlzLm51bWJlclN0eWxlLFxyXG4gICAgICAgIGZvcm1hdDogdGhpcy5fbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgIHZhbHVlOiAoZFtpXSB8fCAwKSBhcyBhbnksXHJcbiAgICAgIH0gYXMgQ2VsbE1vZGVsKSk7XHJcbiAgICAgIGNlbGxzLnB1c2goe1xyXG4gICAgICAgIHN0eWxlOiB0aGlzLm51bWJlclN0eWxlLFxyXG4gICAgICAgIGZvcm1hdDogdGhpcy5fbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgIHZhbHVlOiAoZC52YWx1ZSB8fCAwKSBhcyBhbnksXHJcbiAgICAgIH0gYXMgQ2VsbE1vZGVsKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLnB1c2goeyBjZWxscywgc291cmNlOiBkLCBoZWlnaHQ6IDI1IH0gYXMgUm93TW9kZWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kYXRhc2VyaWVzKGQ6IFNlcmllc1tdKSB7XHJcbiAgICBjb25zdCBzdHlsZSA9IHsgZm9udFdlaWdodDogJ2JvbGQnLCB0ZXh0QWxpZ246ICdjZW50ZXInIH0gYXMgQ2VsbFN0eWxlTW9kZWw7XHJcbiAgICBjb25zdCBjZWxscyA9IFt7IHZhbHVlOiAnJyB9IGFzIENlbGxNb2RlbF07XHJcbiAgICB0aGlzLl94Y29sdW1ucy5mb3JFYWNoKGMgPT4gY2VsbHMucHVzaCh7IHZhbHVlOiBjLnZhbHVlLCBzdHlsZSB9KSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBbeyBjZWxscywgaGVpZ2h0OiAyNSB9XTtcclxuICAgIHRoaXMuX2NpbmRpY2VzPy5mb3JFYWNoKGkgPT4ge1xyXG4gICAgICBjb25zdCBjZWxscyA9IFt7IHZhbHVlOiBpLnRpdGxlLCBzdHlsZSB9IGFzIENlbGxNb2RlbF0sIHNlcmllcyA9IGQuZmluZChzID0+IHMuaW5kZXggPT09IGkubmFtZSksIG1hcCA9IHt9O1xyXG4gICAgICBpZiAoc2VyaWVzKSB7XHJcbiAgICAgICAgc2VyaWVzLnBvaW50cy5mb3JFYWNoKHAgPT4gbWFwW3AueF0gPSBwLnkpO1xyXG4gICAgICAgIHRoaXMuX3hjb2x1bW5zLmZvckVhY2goYyA9PiBjZWxscy5wdXNoKHtcclxuICAgICAgICAgIHZhbHVlOiAobWFwW2Mua2V5XSB8fCAwKSBhcyBhbnksXHJcbiAgICAgICAgICBmb3JtYXQ6IHRoaXMuX251bWJlckZvcm1hdCxcclxuICAgICAgICAgIHN0eWxlOiB0aGlzLm51bWJlclN0eWxlXHJcbiAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5wdXNoKHsgY2VsbHMsIGhlaWdodDogMjUgfSBhcyBSb3dNb2RlbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5feXJvd3MuZm9yRWFjaChyID0+IHtcclxuICAgICAgY29uc3QgY2VsbHMgPSBbeyB2YWx1ZTogci52YWx1ZSwgc3R5bGUgfSBhcyBDZWxsTW9kZWxdLFxyXG4gICAgICAgIHNlcmllID0gZC5maW5kKHMgPT4gcy5uYW1lID09PSByLmtleSksIG1hcCA9IHt9O1xyXG4gICAgICBpZiAoc2VyaWUpIHtcclxuICAgICAgICBzZXJpZS5wb2ludHMuZm9yRWFjaChwID0+IG1hcFtwLnhdID0gcC55KTtcclxuICAgICAgICB0aGlzLl94Y29sdW1ucy5mb3JFYWNoKGMgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgICAgICB2YWx1ZTogKG1hcFtjLmtleV0gfHwgMCkgYXMgYW55LFxyXG4gICAgICAgICAgZm9ybWF0OiB0aGlzLl9udW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICBzdHlsZTogdGhpcy5udW1iZXJTdHlsZVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5feGNvbHVtbnMuZm9yRWFjaChfID0+IGNlbGxzLnB1c2goeyB2YWx1ZTogMCBhcyBhbnkgfSlcclxuICAgICAgICApO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UucHVzaCh7IGNlbGxzLCBoZWlnaHQ6IDI1IH0gYXMgUm93TW9kZWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5zcHJlYWRzaGVldCAmJiB0aGlzLnNwcmVhZHNoZWV0LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuc3ByZWFkc2hlZXQgPSBuZXcgU3ByZWFkc2hlZXQoe1xyXG4gICAgICBzY3JvbGxTZXR0aW5nczogdGhpcy5zY3JvbGxTZXR0aW5ncyxcclxuICAgICAgaXNQcm90ZWN0ZWQ6IHRydWUsXHJcbiAgICAgIGFsbG93RWRpdGluZzogZmFsc2UsXHJcbiAgICAgIGFsbG93RGVsZXRlOiBmYWxzZSxcclxuICAgICAgYWxsb3dJbnNlcnQ6IGZhbHNlLFxyXG4gICAgICBzaG93UmliYm9uOiBmYWxzZSxcclxuICAgICAgYWxsb3dBdXRvRmlsbDogZmFsc2UsXHJcbiAgICAgIGF1dG9GaWxsU2V0dGluZ3M6IHRoaXMuYXV0b0ZpbGxTZXR0aW5ncyxcclxuICAgICAgZW5hYmxlQ2xpcGJvYXJkOiB0cnVlLFxyXG4gICAgICBlbmFibGVDb250ZXh0TWVudTogZmFsc2UsXHJcbiAgICAgIHNob3dGb3JtdWxhQmFyOiBmYWxzZSxcclxuICAgICAgc2hvd1NoZWV0VGFiczogZmFsc2UsXHJcbiAgICAgIGVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbjogdHJ1ZSxcclxuICAgICAgc2VsZWN0OiB0aGlzLnNlbGVjdC5iaW5kKHRoaXMpLFxyXG4gICAgICBzaGVldHM6IFt7XHJcbiAgICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLFxyXG4gICAgICAgIGZyb3plbkNvbHVtbnM6IHRoaXMuX3NlcmllcyAhPT0gdW5kZWZpbmVkID8gMSA6IDAsXHJcbiAgICAgICAgZnJvemVuUm93czogMSxcclxuICAgICAgICByb3dzOiB0aGlzLmRhdGFTb3VyY2UsXHJcbiAgICAgIH1dLFxyXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcclxuICAgIH0sIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG4gIHNlbGVjdChldnQ6IFNlbGVjdEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuc3ByZWFkc2hlZXQuZ2V0QWRkcmVzc0luZm8oZXZ0LnJhbmdlKTtcclxuICAgIGxldCBbeSwgeCwgeTEsIHgxXSA9IGFkZHJlc3MuaW5kaWNlcztcclxuICAgIGlmICh5MSA8IHkpIHtcclxuICAgICAgY29uc3QgcmFuZ2UgPSB5O1xyXG4gICAgICB5ID0geTEsIHkxID0gcmFuZ2U7XHJcbiAgICB9XHJcbiAgICBpZiAoeDEgPCB4KSB7XHJcbiAgICAgIGNvbnN0IHJhbmdlID0geDtcclxuICAgICAgeCA9IHgxLCB4MSA9IHJhbmdlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXhlczoge30gPSB7fTtcclxuICAgIGxldCBpbmRleDogc3RyaW5nO1xyXG4gICAgaWYgKHkgPiB0aGlzLmRhdGFTb3VyY2UubGVuZ3RoIC0gMSB8fCB4ID4gdGhpcy5kYXRhU291cmNlW3ldLmNlbGxzLmxlbmd0aCAtIDEpIHJldHVybjtcclxuICAgIGlmICh5ID09PSB5MSAmJiB4ID09PSB4MSAmJiB0aGlzLmRhdGFTb3VyY2VbeV0uY2VsbHNbeF0udmFsdWUgYXMgYW55ID09PSAwKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5fc2VyaWVzKSB7XHJcbiAgICAgIGlmICh5IDwgMSkge1xyXG4gICAgICAgIGlmICh0aGlzLl9pbmRpY2VzKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5fZmlsbHgoeCwgeDEsIGF4ZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuX2luZGljZXMgJiYgeSA8PSB0aGlzLl9pbmRpY2VzLmxlbmd0aCkge1xyXG4gICAgICAgIGluZGV4ID0gdGhpcy5faW5kaWNlc1t5IC0gMV07XHJcbiAgICAgICAgdGhpcy5fZmlsbHgoeCwgeDEsIGF4ZXMpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLl9pbmRpY2VzKVxyXG4gICAgICAgICAgdGhpcy5fZmlsbHkoeSAtIHRoaXMuX2luZGljZXMubGVuZ3RoLCB5MSAtIHRoaXMuX2luZGljZXMubGVuZ3RoLCBheGVzKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLl9maWxseSh5LCB5MSwgYXhlcyk7XHJcbiAgICAgICAgaWYgKHggPiAwKVxyXG4gICAgICAgICAgdGhpcy5fZmlsbHgoeCwgeDEsIGF4ZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHkgPT09IDApIHJldHVybjtcclxuICAgICAgaW5kZXggPSB0aGlzLl9pbmRpY2VzICYmIHggPj0gdGhpcy5fYXhlcy5sZW5ndGggJiYgeCA8IHRoaXMuX2F4ZXMubGVuZ3RoICsgdGhpcy5fY2luZGljZXMubGVuZ3RoID8gdGhpcy5fY2luZGljZXNbeCAtIHRoaXMuX2F4ZXMubGVuZ3RoXS5uYW1lIDogbnVsbDtcclxuICAgICAgbGV0IGkgPSB5O1xyXG4gICAgICBkbyB7XHJcbiAgICAgICAgdGhpcy5fYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgY29uc3Qga2V5ID0gKHRoaXMuZGF0YVNvdXJjZVtpXSBhcyBhbnkpLnNvdXJjZVsnXycgKyBhLm5hbWVdO1xyXG4gICAgICAgICAgaWYgKCFheGVzW2EubmFtZV0pXHJcbiAgICAgICAgICAgIGF4ZXNbYS5uYW1lXSA9IGtleTtcclxuICAgICAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKGF4ZXNbYS5uYW1lXSkpIHtcclxuICAgICAgICAgICAgaWYgKGF4ZXNbYS5uYW1lXSAhPT0ga2V5KSBheGVzW2EubmFtZV0gPSBbYXhlc1thLm5hbWVdLCBrZXldO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAoKGF4ZXNbYS5uYW1lXSBhcyBzdHJpbmdbXSkuaW5kZXhPZihrZXkpIDwgMCkgKGF4ZXNbYS5uYW1lXSBhcyBzdHJpbmdbXSkucHVzaChrZXkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGkrKztcclxuICAgICAgfVxyXG4gICAgICB3aGlsZSAoaSA8PSB5MSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmV4cGxvcmUuZW1pdCh7IGF4ZXMsIGluZGV4IH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9maWxseSh5OiBudW1iZXIsIHkxOiBudW1iZXIsIGF4ZXM6IHt9KSB7XHJcbiAgICBjb25zdCB5TmFtZSA9IHRoaXMuX3Nlcmllc1swXTtcclxuICAgIGxldCBpID0geSAtIDE7XHJcbiAgICB3aGlsZSAoaSA8IHkxKSB7XHJcbiAgICAgIGxldCB7IGtleSB9ID0gdGhpcy5feXJvd3NbaV07XHJcbiAgICAgIGlmICghYXhlc1t5TmFtZV0pXHJcbiAgICAgICAgYXhlc1t5TmFtZV0gPSBrZXk7XHJcbiAgICAgIGVsc2UgaWYgKGlzU3RyaW5nKGF4ZXNbeU5hbWVdKSlcclxuICAgICAgICBheGVzW3lOYW1lXSA9IFtheGVzW3lOYW1lXSwga2V5XTtcclxuICAgICAgZWxzZSBpZiAoKGF4ZXNbeU5hbWVdIGFzIHN0cmluZ1tdKS5pbmRleE9mKGtleSkgPCAwKVxyXG4gICAgICAgIChheGVzW3lOYW1lXSBhcyBzdHJpbmdbXSkucHVzaChrZXkpO1xyXG4gICAgICBpKys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWxseCh4OiBudW1iZXIsIHgxOiBudW1iZXIsIGF4ZXM6IHt9KSB7XHJcbiAgICBjb25zdCB4TmFtZSA9IHRoaXMuX3hBeGlzWzBdO1xyXG4gICAgbGV0IGkgPSB4IC0gMTtcclxuICAgIHdoaWxlIChpIDwgeDEpIHtcclxuICAgICAgbGV0IHsga2V5IH0gPSB0aGlzLl94Y29sdW1uc1tpXTtcclxuICAgICAgaWYgKCFheGVzW3hOYW1lXSlcclxuICAgICAgICBheGVzW3hOYW1lXSA9IGtleTtcclxuICAgICAgZWxzZSBpZiAoaXNTdHJpbmcoYXhlc1t4TmFtZV0pKVxyXG4gICAgICAgIGF4ZXNbeE5hbWVdID0gW2F4ZXNbeE5hbWVdLCBrZXldO1xyXG4gICAgICBlbHNlIGlmICgoYXhlc1t4TmFtZV0gYXMgc3RyaW5nW10pLmluZGV4T2Yoa2V5KSA8IDApXHJcbiAgICAgICAgKGF4ZXNbeE5hbWVdIGFzIHN0cmluZ1tdKS5wdXNoKGtleSk7XHJcbiAgICAgIGkrKztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4cG9ydFRvRXhjZWwodGl0bGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgeyByb3dzIH0gPSB0aGlzLnNwcmVhZHNoZWV0LnNoZWV0c1swXSxcclxuICAgICAgbnVtYmVyRm9ybWF0ID0gdGhpcy5fc2VydmljZS5udW1iZXJGb3JtYXQsXHJcbiAgICAgIGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgd29ya3NoZWV0czogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZW5hYmxlUnRsOiB0aGlzLl9zZXNzaW9uLmludmVyc2UsXHJcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnU2hlZXROJywgMSksXHJcbiAgICAgICAgICAgICAgY29sdW1uczogcm93c1swXS5jZWxscy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDE1MCB9IGFzIENvbHVtbikpLFxyXG4gICAgICAgICAgICAgIHJvd3M6IHJvd3MubWFwKChyLCBpKSA9PiAoXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIGluZGV4OiBpICsgMSxcclxuICAgICAgICAgICAgICAgICAgY2VsbHM6IHIuY2VsbHMubWFwKChjLCBqKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGVhZGVyID0gaSA9PT0gMCB8fCAodGhpcy5fc2VyaWVzICE9PSB1bmRlZmluZWQgJiYgaiA9PT0gMCksXHJcbiAgICAgICAgICAgICAgICAgICAgICBpc251bWJlciA9ICFoZWFkZXIgJiYgaXNOdW1iZXIoYy52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGlzbnVtYmVyID8gJ251bWJlcicgOiAndGV4dCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaiArIDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYy52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaEFsaWduOiBpc251bWJlciA/ICdyaWdodCcgOiAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9sZDogaGVhZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgfSBhcyBSb3cpKSxcclxuICAgICAgICAgICAgfSBhcyBXb3Jrc2hlZXQsXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgJ3hsc3gnXHJcbiAgICAgICk7XHJcbiAgICBib29rLnNhdmUoYCR7dGl0bGV9Lnhsc3hgKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnNwcmVhZHNoZWV0ICYmIHRoaXMuc3ByZWFkc2hlZXQuZGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -115,9 +115,9 @@ export class CubeMatrixBase {
115
115
  this.axes = { ...this.axes };
116
116
  }
117
117
  }
118
- CubeMatrixBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeMatrixBase, deps: [{ token: i1.CubeService }, { token: i2.DatasourceService }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Directive });
119
- CubeMatrixBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.5", type: CubeMatrixBase, ngImport: i0 });
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeMatrixBase, decorators: [{
118
+ CubeMatrixBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeMatrixBase, deps: [{ token: i1.CubeService }, { token: i2.DatasourceService }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Directive });
119
+ CubeMatrixBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.7", type: CubeMatrixBase, ngImport: i0 });
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeMatrixBase, decorators: [{
121
121
  type: Directive
122
122
  }], ctorParameters: function () { return [{ type: i1.CubeService }, { type: i2.DatasourceService }, { type: i3.SessionService }]; } });
123
123
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvbWF0cml4L21hdHJpeC5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSS9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFLMUUsTUFBTSxPQUFnQixjQUFjO0lBbUVsQyxZQUNZLFFBQXFCLEVBQ3ZCLEdBQXNCLEVBQ3BCLFFBQXdCO1FBRnhCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDdkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUE1QzNCLFlBQU8sR0FBb0UsRUFBRSxDQUFDO1FBQ3ZGLGNBQWM7UUFDTCxXQUFNLEdBQVksRUFBRSxDQUFDO0lBMENVLENBQUM7SUE3RHpDLElBQVcsWUFBWSxDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUNELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsS0FBYztRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN4QixJQUFJLENBQUMsTUFBTSxDQUFD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QyxNQUFNLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7OzJHQXpJbUIsY0FBYzsrRkFBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRG5DLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICcuLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUsIEN1YmVBeGlzIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFDQ09VTlRfREVMSU1JVEVSLCBDdWJlU2VydmljZSwgUGF0dGVybiB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEF4aXNQbGFjZSwgQXhpc1R5cGUgfSBmcm9tICcuLi9kZWNsYXJhdGlvbnMnO1xyXG5pbXBvcnQgeyBDdWJlTWF0cml4Q29tcG9uZW50LCBTdW1TZXR0aW5ncyB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3ViZU1hdHJpeEJhc2Uge1xyXG4gIGFic3RyYWN0IHRhYmxlOiBDdWJlTWF0cml4Q29tcG9uZW50O1xyXG4gIHNlcmllc1RvdGFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgeEF4aXNUb3RhbExhYmVsPzogc3RyaW5nO1xyXG4gIGluZGV4QXQ/OiBBeGlzVHlwZTtcclxuICBwbGFjZUF0PzogQXhpc1BsYWNlO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfYXhlczogQXhlc01hcDtcclxuICBwcml2YXRlIF9vcmlnaW5hbEF4ZXM6IEF4ZXNNYXA7XHJcbiAgcHVibGljIHNldCBvcmlnaW5hbEF4ZXModmFsdWU6IEF4ZXNNYXApIHtcclxuICAgIHRoaXMuX29yaWdpbmFsQXhlcyA9IHsgLi4udmFsdWUgfTtcclxuICB9XHJcbiAgcHVibGljIGdldCBvcmlnaW5hbEF4ZXMoKTogQXhlc01hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5fb3JpZ2luYWxBeGVzO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IGF4ZXMoKTogQXhlc01hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXhlcztcclxuICB9XHJcbiAgcHVibGljIHNldCBheGVzKHZhbHVlOiBBeGVzTWFwKSB7XHJcbiAgICB0aGlzLl9heGVzID0gdmFsdWU7XHJcbiAgICB0aGlzLmZpbHRlcnM/LmZvckVhY2goZiA9PlxyXG4gICAgICB0aGlzLnZhbHVlc1tmLm5hbWVdID0gdmFsdWVbZi5uYW1lXVxyXG4gICAgKTtcclxuICB9XHJcbiAgdGl0bGU6IHN0cmluZztcclxuXHJcbiAgcmVhZG9ubHkgc291cmNlczogeyBbYXhpczogc3RyaW5nXTogT2JzZXJ2YWJsZTx7IGtleTogc3RyaW5nOyB2YWx1ZTogYW55OyB9W10+OyB9ID0ge307XHJcbiAgLyoqIGZpbHRlcnMgKi9cclxuICByZWFkb25seSB2YWx1ZXM6IEF4ZXNNYXAgPSB7fTtcclxuICBmaWx0ZXJzOiBDdWJlQXhpc1tdO1xyXG4gIHBhdHRlcm5zOiBQYXR0ZXJuW107XHJcbiAgcGF0dGVybjogUGF0dGVybjtcclxuICBpbmRpY2VzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgeEF4aXM6IHN0cmluZztcclxuICBzZXJpZXM6IHN0cmluZztcclxuICBwcml2YXRlIF9jdWJlOiBzdHJpbmc7XHJcbiAgcHVibGljIGdldCBjdWJlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3ViZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBjdWJlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB2YWx1ZSk7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlndXJhdGlvbikge1xyXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICAgIHZhbHVlID0gdGhpcy5jb25maWd1cmF0aW9uLm5hbWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnBhdHRlcm5zKHZhbHVlKS5cclxuICAgICAgc3Vic2NyaWJlKHAgPT5cclxuICAgICAgICB0aGlzLnBhdHRlcm5zID0gcCk7XHJcbiAgICB0aGlzLl9jdWJlID0gdmFsdWU7XHJcbiAgfVxyXG4gIHN1bT86IFN1bVNldHRpbmdzIHwgU3VtU2V0dGluZ3NbXTtcclxuICAvKiogb25lIG9yIG1vcmUgYXhpcyAqL1xyXG4gIHByb3RlY3RlZCBhZ2dyZWdhdGlvbj86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIHByaXZhdGUgX3NlbGVjdGlvbjogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgcHJvdGVjdGVkIGdldCBzZWxlY3Rpb24oKTogc3RyaW5nIHwgc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbjtcclxuICB9XHJcbiAgcHJvdGVjdGVkIHNldCBzZWxlY3Rpb24odmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgICAvKiogb25lIG9yIG1vcmUgYXhpcyAqL1xyXG4gICAgdGhpcy5maWx0ZXJzID0gdGhpcy5jb25maWd1cmF0aW9uLmF4ZXMuZmlsdGVyKGEgPT4gaXNBcnJheSh2YWx1ZSkgP1xyXG4gICAgICB2YWx1ZS5pbmRleE9mKGEubmFtZSkgPiAtMSA6XHJcbiAgICAgIGEubmFtZSA9PT0gdmFsdWUpO1xyXG5cclxuICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGYgPT4gdGhpcy5zb3VyY2VzW2YubmFtZV0gPSB0aGlzLl9kcy5hbGwoZi5kYXRhVHlwZSkpO1xyXG4gICAgdGhpcy5fc2VsZWN0aW9uID0gdmFsdWU7XHJcbiAgfVxyXG4gIGNvbmZpZ3VyYXRpb246IEN1YmU7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSkgeyB9XHJcbiAgcHJpdmF0ZSBfcG9wdWxhdGUoKSB7XHJcbiAgICBjb25zdCBheGVzID0geyAuLi50aGlzLl9vcmlnaW5hbEF4ZXMgfTtcclxuICAgIGlmICh0aGlzLmFnZ3JlZ2F0aW9uKVxyXG4gICAgICAoaXNBcnJheSh0aGlzLmFnZ3JlZ2F0aW9uKSA/IHRoaXMuYWdncmVnYXRpb24gOiBbdGhpcy5hZ2dyZWdhdGlvbiBhcyBzdHJpbmddKS5cclxuICAgICAgICBmb3JFYWNoKGcgPT4ge1xyXG4gICAgICAgICAgaWYgKGF4ZXNbZ10pXHJcbiAgICAgICAgICAgIGRlbGV0ZSBheGVzW2ddO1xyXG4gICAgICAgIH0pO1xyXG4gICAgdGhpcy5heGVzID0gYXhlcztcclxuICAgIHRoaXMuX2xpc3RlbigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBjb25zdCBjb21iaW5hdGlvbiA9IHRoaXMuX2NvbWJpbmUoYXhlcyk7XHJcbiAgICAgIHRoaXMudGl0bGUgPSBjb21iaW5hdGlvbi5qb2luKEFDQ09VTlRfREVMSU1JVEVSKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBheGVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfY29tYmluZShheGVzOiBBeGVzTWFwKTogKHN0cmluZyB8IG51bWJlcilbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uLmF4ZXMuXHJcbiAgICAgIGZpbHRlcihhID0+IGEuY29tYmluYXRpb24pLlxyXG4gICAgICBtYXAoYSA9PiBheGVzW2EubmFtZV0gYXMgc3RyaW5nIHwgbnVtYmVyKTtcclxuICB9XHJcbiAgLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB2YWx1ZVxyXG4gKi9cclxuICBmaWx0ZXIobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCB0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBheGVzID0geyAuLi50aGlzLmF4ZXMgfTtcclxuICAgIGF4ZXNbbmFtZV0gPSB2YWx1ZTtcclxuICAgIHRoaXMub25GaWx0ZXIoYXhlcyk7XHJcbiAgICB0aGlzLl9saXN0ZW4oKS50aGVuKCgpID0+XHJcbiAgICAgIHRoaXMudmFsdWVzW25hbWVdID0gdmFsdWVcclxuICAgICk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2xpc3RlbigpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlLmxvYWRpbmdDaGFuZ2UucGlwZShmaWx0ZXIob2sgPT4gIW9rKSwgZmlyc3QoKSkudG9Qcm9taXNlKClcclxuICB9XHJcblxyXG4gIG9uRmlsdGVyKGF4ZXM6IEF4ZXNNYXApIHtcclxuICAgIHRoaXMuYXhlcyA9IGF4ZXM7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAgKlxyXG4gICAgKiBAcGFyYW0gcGF0dGVyblxyXG4gICAgKi9cclxuICBhZ2dyZWdhdGUocGF0dGVybjogUGF0dGVybikge1xyXG4gICAgY29uc3QgYXhlcyA9IHsgLi4ucGF0dGVybi5heGVzIH07XHJcbiAgICB0aGlzLl9zZXJ2aWNlLmJhc2UodGhpcy5jdWJlLCBheGVzLCB0aGlzLm9yaWdpbmFsQXhlcyk7XHJcbiAgICB0aGlzLmF4ZXMgPSB7IC4uLmF4ZXMsIC4uLnRoaXMudmFsdWVzIH07XHJcbiAgICB0aGlzLl9saXN0ZW4oKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy50aXRsZSA9IHBhdHRlcm4udGl0bGU7XHJcbiAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5fcG9wdWxhdGUoKTtcclxuICAgIHRoaXMuX2xpc3RlbigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLnBhdHRlcm4gPSBudWxsO1xyXG4gICAgICB0aGlzLnRpdGxlID0gbnVsbDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMuYXhlcyA9IHsgLi4udGhpcy5heGVzIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -55,9 +55,9 @@ export class CubeMatrixMobileComponent extends CubeMatrixBase {
55
55
  });
56
56
  }
57
57
  }
58
- CubeMatrixMobileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeMatrixMobileComponent, deps: [{ token: i1.WindowTitleService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.CubeService }, { token: i4.DatasourceService }, { token: i5.SessionService }], target: i0.ɵɵFactoryTarget.Component });
59
- CubeMatrixMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: CubeMatrixMobileComponent, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n (loadingChange)=\"loading=$event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\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: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i9.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: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i12.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: i13.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeMatrixMobileComponent, decorators: [{
58
+ CubeMatrixMobileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeMatrixMobileComponent, deps: [{ token: i1.WindowTitleService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.CubeService }, { token: i4.DatasourceService }, { token: i5.SessionService }], target: i0.ɵɵFactoryTarget.Component });
59
+ CubeMatrixMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CubeMatrixMobileComponent, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n (loadingChange)=\"loading=$event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\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: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i9.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: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i12.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: i13.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] });
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeMatrixMobileComponent, decorators: [{
61
61
  type: Component,
62
62
  args: [{ template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n (loadingChange)=\"loading=$event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"] }]
63
63
  }], ctorParameters: function () { return [{ type: i1.WindowTitleService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.CubeService }, { type: i4.DatasourceService }, { type: i5.SessionService }]; }, propDecorators: { table: [{
@@ -66,9 +66,9 @@ export class CubeMatrixPaneComponent extends CubeMatrixBase {
66
66
  });
67
67
  }
68
68
  }
69
- CubeMatrixPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeMatrixPaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.PanesRouter }, { token: i3.TranslateService }, { token: i4.CubeService }, { token: i5.DatasourceService }, { token: i6.SessionService }], target: i0.ɵɵFactoryTarget.Component });
70
- CubeMatrixPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: CubeMatrixPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"matrix.export()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" #matrix\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n (loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i10.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: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i12.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i12.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i13.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: i14.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i16.TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }] });
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeMatrixPaneComponent, decorators: [{
69
+ CubeMatrixPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeMatrixPaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.PanesRouter }, { token: i3.TranslateService }, { token: i4.CubeService }, { token: i5.DatasourceService }, { token: i6.SessionService }], target: i0.ɵɵFactoryTarget.Component });
70
+ CubeMatrixPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CubeMatrixPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"matrix.export()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" #matrix\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n (loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i10.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: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i12.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i12.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i13.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: i14.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i15.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i16.TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: i17.TranslatePipe, name: "translate" }] });
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeMatrixPaneComponent, decorators: [{
72
72
  type: Component,
73
73
  args: [{ host: {
74
74
  class: 'pane'
@@ -49,9 +49,9 @@ export class CubeMatrixPopupComponent extends CubeMatrixBase {
49
49
  });
50
50
  }
51
51
  }
52
- CubeMatrixPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeMatrixPopupComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: i1.CubeService }, { token: i2.DatasourceService }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component });
53
- CubeMatrixPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: CubeMatrixPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <div class=\"row\" *ngIf=\"!preloading && (patterns?.length || filters?.length)\">\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n <bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\"\r\n [sum]=sum [interactive]=\"false\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n [filters]=\"axes\" (loadingChange)=\"loading=$event\"></bizdoc-cube-matrix>\r\n</div>\r\n", styles: [".container{padding:8px}::ng-deep .cube-table{display:inline}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i6.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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i9.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeMatrixPopupComponent, decorators: [{
52
+ CubeMatrixPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeMatrixPopupComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: i1.CubeService }, { token: i2.DatasourceService }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component });
53
+ CubeMatrixPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: CubeMatrixPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <div class=\"row\" *ngIf=\"!preloading && (patterns?.length || filters?.length)\">\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n <bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\"\r\n [sum]=sum [interactive]=\"false\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n [filters]=\"axes\" (loadingChange)=\"loading=$event\"></bizdoc-cube-matrix>\r\n</div>\r\n", styles: [".container{padding:8px}::ng-deep .cube-table{display:inline}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i6.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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i9.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: CubeMatrixPopupComponent, decorators: [{
55
55
  type: Component,
56
56
  args: [{ template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <div class=\"row\" *ngIf=\"!preloading && (patterns?.length || filters?.length)\">\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n <bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\"\r\n [sum]=sum [interactive]=\"false\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n [filters]=\"axes\" (loadingChange)=\"loading=$event\"></bizdoc-cube-matrix>\r\n</div>\r\n", styles: [".container{padding:8px}::ng-deep .cube-table{display:inline}\n"] }]
57
57
  }], ctorParameters: function () { return [{ type: i13.PopupRef, decorators: [{