ontimize-web-ngx 15.7.0 → 15.7.1

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 (384) hide show
  1. package/esm2020/lib/components/app-header/o-app-header.component.mjs +4 -4
  2. package/esm2020/lib/components/app-header/o-app-header.module.mjs +5 -5
  3. package/esm2020/lib/components/app-sidenav/image/o-app-sidenav-image.component.mjs +4 -4
  4. package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +4 -4
  5. package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +4 -4
  6. package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +4 -4
  7. package/esm2020/lib/components/app-sidenav/o-app-sidenav.module.mjs +5 -5
  8. package/esm2020/lib/components/bar-menu/locale-menu-item/o-locale-bar-menu-item.component.mjs +4 -4
  9. package/esm2020/lib/components/bar-menu/menu-group/o-bar-menu-group.component.mjs +4 -4
  10. package/esm2020/lib/components/bar-menu/menu-item/o-bar-menu-item.component.mjs +4 -4
  11. package/esm2020/lib/components/bar-menu/menu-nested/o-bar-menu-nested.component.mjs +4 -4
  12. package/esm2020/lib/components/bar-menu/menu-separator/o-bar-menu-separator.component.mjs +4 -4
  13. package/esm2020/lib/components/bar-menu/o-bar-menu-base.class.mjs +4 -4
  14. package/esm2020/lib/components/bar-menu/o-bar-menu.component.mjs +4 -4
  15. package/esm2020/lib/components/bar-menu/o-bar-menu.module.mjs +5 -5
  16. package/esm2020/lib/components/bar-menu/o-base-menu-item.class.mjs +4 -4
  17. package/esm2020/lib/components/breadcrumb/o-breadcrumb.component.mjs +4 -4
  18. package/esm2020/lib/components/breadcrumb/o-breadcrumb.module.mjs +5 -5
  19. package/esm2020/lib/components/button/o-button.component.mjs +4 -4
  20. package/esm2020/lib/components/button/o-button.module.mjs +5 -5
  21. package/esm2020/lib/components/button-toggle/o-button-toggle-group/o-button-toggle-group.component.mjs +4 -4
  22. package/esm2020/lib/components/button-toggle/o-button-toggle.component.mjs +4 -4
  23. package/esm2020/lib/components/button-toggle/o-button-toggle.module.mjs +5 -5
  24. package/esm2020/lib/components/card-menu-item/o-card-menu-item.component.mjs +4 -4
  25. package/esm2020/lib/components/card-menu-item/o-card-menu-item.module.mjs +5 -5
  26. package/esm2020/lib/components/container/column/o-column.component.mjs +4 -4
  27. package/esm2020/lib/components/container/column/o-column.module.mjs +5 -5
  28. package/esm2020/lib/components/container/column-collapsible/o-column-collapsible.component.mjs +4 -4
  29. package/esm2020/lib/components/container/column-collapsible/o-column-collapsible.module.mjs +5 -5
  30. package/esm2020/lib/components/container/o-container-collapsible-component.class.mjs +4 -4
  31. package/esm2020/lib/components/container/o-container-component.class.mjs +4 -4
  32. package/esm2020/lib/components/container/row/o-row.component.mjs +4 -4
  33. package/esm2020/lib/components/container/row/o-row.module.mjs +5 -5
  34. package/esm2020/lib/components/container/row-collapsible/o-row-collapsible.component.mjs +4 -4
  35. package/esm2020/lib/components/container/row-collapsible/o-row-collapsible.module.mjs +5 -5
  36. package/esm2020/lib/components/contextmenu/context-menu/o-context-menu-content.component.mjs +4 -4
  37. package/esm2020/lib/components/contextmenu/context-menu/o-wrapper-content-menu/o-wrapper-content-menu.component.mjs +4 -4
  38. package/esm2020/lib/components/contextmenu/context-menu-group/o-context-menu-group.component.mjs +4 -4
  39. package/esm2020/lib/components/contextmenu/context-menu-item/o-context-menu-item.component.mjs +4 -4
  40. package/esm2020/lib/components/contextmenu/context-menu-separator/o-context-menu-separator.component.mjs +4 -4
  41. package/esm2020/lib/components/contextmenu/o-content-menu-base-item.class.mjs +4 -4
  42. package/esm2020/lib/components/contextmenu/o-context-menu-overlay.service.mjs +4 -4
  43. package/esm2020/lib/components/contextmenu/o-context-menu.component.mjs +4 -4
  44. package/esm2020/lib/components/contextmenu/o-context-menu.directive.mjs +4 -4
  45. package/esm2020/lib/components/contextmenu/o-context-menu.module.mjs +5 -5
  46. package/esm2020/lib/components/contextmenu/o-context-menu.service.mjs +4 -4
  47. package/esm2020/lib/components/dual-list-selector/dual-list-selector-item/date/o-dual-list-selector-date-item.component.mjs +4 -4
  48. package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.component.mjs +4 -4
  49. package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.module.mjs +5 -5
  50. package/esm2020/lib/components/expandable-container/o-expandable-container.component.mjs +4 -4
  51. package/esm2020/lib/components/expandable-container/o-expandable-container.module.mjs +5 -5
  52. package/esm2020/lib/components/filter-builder/filter-builder-menu/filter-builder-menu.component.mjs +4 -4
  53. package/esm2020/lib/components/filter-builder/o-filter-builder-clear.directive.mjs +4 -4
  54. package/esm2020/lib/components/filter-builder/o-filter-builder-query.directive.mjs +4 -4
  55. package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +4 -4
  56. package/esm2020/lib/components/filter-builder/o-filter-builder.module.mjs +5 -5
  57. package/esm2020/lib/components/form/guards/o-form-can-deactivate.guard.mjs +4 -4
  58. package/esm2020/lib/components/form/navigation/o-form-confirm-exit.service.mjs +4 -4
  59. package/esm2020/lib/components/form/navigation/o-form-navigation.component.mjs +4 -4
  60. package/esm2020/lib/components/form/o-form.component.mjs +4 -4
  61. package/esm2020/lib/components/form/o-form.module.mjs +5 -5
  62. package/esm2020/lib/components/form/services/o-form-message.service.mjs +4 -4
  63. package/esm2020/lib/components/form/toolbar/o-form-toolbar.component.mjs +4 -4
  64. package/esm2020/lib/components/form/toolbar/o-form-toolbar.module.mjs +5 -5
  65. package/esm2020/lib/components/form-container/o-form-container.component.mjs +4 -4
  66. package/esm2020/lib/components/form-container/o-form-container.module.mjs +5 -5
  67. package/esm2020/lib/components/grid/grid-item/o-grid-item.component.mjs +4 -4
  68. package/esm2020/lib/components/grid/grid-item/o-grid-item.directive.mjs +4 -4
  69. package/esm2020/lib/components/grid/o-grid.component.mjs +4 -4
  70. package/esm2020/lib/components/grid/o-grid.module.mjs +5 -5
  71. package/esm2020/lib/components/grid/skeketon/o-grid-skeleton.component.mjs +4 -4
  72. package/esm2020/lib/components/image/fullscreen/fullscreen-dialog.component.mjs +4 -4
  73. package/esm2020/lib/components/image/o-image.component.mjs +4 -4
  74. package/esm2020/lib/components/image/o-image.module.mjs +5 -5
  75. package/esm2020/lib/components/input/checkbox/o-checkbox.component.mjs +4 -4
  76. package/esm2020/lib/components/input/checkbox/o-checkbox.module.mjs +5 -5
  77. package/esm2020/lib/components/input/combo/combo-renderer/boolean/o-combo-renderer-boolean.component.mjs +4 -4
  78. package/esm2020/lib/components/input/combo/combo-renderer/currency/o-combo-renderer-currency.component.mjs +4 -4
  79. package/esm2020/lib/components/input/combo/combo-renderer/date/o-combo-renderer-date.component.mjs +4 -4
  80. package/esm2020/lib/components/input/combo/combo-renderer/icon/o-combo-renderer-icon.component.mjs +4 -4
  81. package/esm2020/lib/components/input/combo/combo-renderer/integer/o-combo-renderer-integer.component.mjs +4 -4
  82. package/esm2020/lib/components/input/combo/combo-renderer/o-combo-renderer.class.mjs +4 -4
  83. package/esm2020/lib/components/input/combo/combo-renderer/percentage/o-combo-renderer-percentage.component.mjs +4 -4
  84. package/esm2020/lib/components/input/combo/combo-renderer/real/o-combo-renderer-real.component.mjs +4 -4
  85. package/esm2020/lib/components/input/combo/combo-search/o-combo-search.component.mjs +4 -4
  86. package/esm2020/lib/components/input/combo/o-combo.component.mjs +4 -4
  87. package/esm2020/lib/components/input/combo/o-combo.module.mjs +5 -5
  88. package/esm2020/lib/components/input/currency-input/o-currency-input.component.mjs +4 -4
  89. package/esm2020/lib/components/input/currency-input/o-currency-input.module.mjs +5 -5
  90. package/esm2020/lib/components/input/date-input/o-date-input.component.mjs +4 -4
  91. package/esm2020/lib/components/input/date-input/o-date-input.module.mjs +5 -5
  92. package/esm2020/lib/components/input/date-range/o-daterange-input.component.mjs +4 -4
  93. package/esm2020/lib/components/input/date-range/o-daterange-input.module.mjs +5 -5
  94. package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.component.mjs +4 -4
  95. package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.directive.mjs +4 -4
  96. package/esm2020/lib/components/input/date-range-legacy/o-daterange-input.module.mjs +5 -5
  97. package/esm2020/lib/components/input/date-range-legacy/o-daterange-picker.component.mjs +4 -4
  98. package/esm2020/lib/components/input/email-input/o-email-input.component.mjs +4 -4
  99. package/esm2020/lib/components/input/email-input/o-email-input.module.mjs +5 -5
  100. package/esm2020/lib/components/input/file-input/o-file-input.component.mjs +4 -4
  101. package/esm2020/lib/components/input/file-input/o-file-input.module.mjs +5 -5
  102. package/esm2020/lib/components/input/hour-input/index.mjs +4 -0
  103. package/esm2020/lib/components/input/hour-input/o-hour-input.component.mjs +38 -9
  104. package/esm2020/lib/components/input/hour-input/o-hour-input.directive.mjs +46 -0
  105. package/esm2020/lib/components/input/hour-input/o-hour-input.module.mjs +8 -7
  106. package/esm2020/lib/components/input/html-input/o-html-input.component.mjs +4 -4
  107. package/esm2020/lib/components/input/html-input/o-html-input.module.mjs +5 -5
  108. package/esm2020/lib/components/input/index.mjs +2 -3
  109. package/esm2020/lib/components/input/integer-input/o-integer-input.component.mjs +4 -4
  110. package/esm2020/lib/components/input/integer-input/o-integer-input.module.mjs +5 -5
  111. package/esm2020/lib/components/input/listpicker/listpicker-renderer/currency/o-list-picker-renderer-currency.component.mjs +4 -4
  112. package/esm2020/lib/components/input/listpicker/listpicker-renderer/date/o-list-picker-renderer-date.component.mjs +4 -4
  113. package/esm2020/lib/components/input/listpicker/listpicker-renderer/integer/o-list-picker-renderer-integer.component.mjs +4 -4
  114. package/esm2020/lib/components/input/listpicker/listpicker-renderer/o-list-picker-renderer.class.mjs +4 -4
  115. package/esm2020/lib/components/input/listpicker/listpicker-renderer/percentage/o-list-picker-renderer-percentage.component.mjs +4 -4
  116. package/esm2020/lib/components/input/listpicker/listpicker-renderer/real/o-list-picker-renderer-real.component.mjs +4 -4
  117. package/esm2020/lib/components/input/listpicker/o-list-picker-dialog.component.mjs +4 -4
  118. package/esm2020/lib/components/input/listpicker/o-list-picker.component.mjs +4 -4
  119. package/esm2020/lib/components/input/listpicker/o-list-picker.module.mjs +5 -5
  120. package/esm2020/lib/components/input/nif-input/o-nif-input.component.mjs +4 -4
  121. package/esm2020/lib/components/input/nif-input/o-nif-input.module.mjs +5 -5
  122. package/esm2020/lib/components/input/o-boolean-form-data-component.class.mjs +4 -4
  123. package/esm2020/lib/components/input/o-form-service-component.class.mjs +4 -4
  124. package/esm2020/lib/components/input/password-input/o-password-input.component.mjs +4 -4
  125. package/esm2020/lib/components/input/password-input/o-password-input.module.mjs +5 -5
  126. package/esm2020/lib/components/input/percent-input/o-percent-input.component.mjs +4 -4
  127. package/esm2020/lib/components/input/percent-input/o-percent-input.module.mjs +5 -5
  128. package/esm2020/lib/components/input/phone-input/data/country-code.mjs +4 -4
  129. package/esm2020/lib/components/input/phone-input/o-phone-input.component.mjs +4 -4
  130. package/esm2020/lib/components/input/phone-input/o-phone-input.module.mjs +5 -5
  131. package/esm2020/lib/components/input/radio/o-radio.component.mjs +4 -4
  132. package/esm2020/lib/components/input/radio/o-radio.module.mjs +5 -5
  133. package/esm2020/lib/components/input/real-input/o-real-input.component.mjs +4 -4
  134. package/esm2020/lib/components/input/real-input/o-real-input.module.mjs +5 -5
  135. package/esm2020/lib/components/input/search-input/o-search-input.component.mjs +4 -4
  136. package/esm2020/lib/components/input/search-input/o-search-input.module.mjs +5 -5
  137. package/esm2020/lib/components/input/slide-toggle/o-slide-toggle.component.mjs +4 -4
  138. package/esm2020/lib/components/input/slide-toggle/o-slide-toggle.module.mjs +5 -5
  139. package/esm2020/lib/components/input/slider/o-slider.component.mjs +4 -4
  140. package/esm2020/lib/components/input/slider/o-slider.module.mjs +5 -5
  141. package/esm2020/lib/components/input/text-input/o-text-input.component.mjs +4 -4
  142. package/esm2020/lib/components/input/text-input/o-text-input.module.mjs +5 -5
  143. package/esm2020/lib/components/input/textarea-input/o-textarea-input.component.mjs +4 -4
  144. package/esm2020/lib/components/input/textarea-input/o-textarea-input.module.mjs +5 -5
  145. package/esm2020/lib/components/input/time-input/o-time-input.component.mjs +4 -4
  146. package/esm2020/lib/components/input/time-input/o-time-input.module.mjs +5 -5
  147. package/esm2020/lib/components/language-selector/o-language-selector.component.mjs +4 -4
  148. package/esm2020/lib/components/language-selector/o-language-selector.module.mjs +5 -5
  149. package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +4 -4
  150. package/esm2020/lib/components/list/list-item/o-list-item.directive.mjs +4 -4
  151. package/esm2020/lib/components/list/o-list.component.mjs +4 -4
  152. package/esm2020/lib/components/list/o-list.module.mjs +5 -5
  153. package/esm2020/lib/components/list/renderers/avatar/o-list-item-avatar.component.mjs +4 -4
  154. package/esm2020/lib/components/list/renderers/card/o-list-item-card.component.mjs +4 -4
  155. package/esm2020/lib/components/list/renderers/card-image/o-list-item-card-image.component.mjs +4 -4
  156. package/esm2020/lib/components/list/renderers/o-list-item-card-renderer.class.mjs +4 -4
  157. package/esm2020/lib/components/list/renderers/o-list-item-text-renderer.class.mjs +4 -4
  158. package/esm2020/lib/components/list/renderers/text/o-list-item-text.component.mjs +4 -4
  159. package/esm2020/lib/components/list/skeleton/o-list-skeleton.component.mjs +4 -4
  160. package/esm2020/lib/components/material/ckeditor/ck-editor.component.mjs +4 -4
  161. package/esm2020/lib/components/material/ckeditor/ck-editor.module.mjs +5 -5
  162. package/esm2020/lib/components/o-data-toolbar/o-data-toolbar.component.mjs +4 -4
  163. package/esm2020/lib/components/o-data-toolbar/o-data-toolbar.module.mjs +5 -5
  164. package/esm2020/lib/components/o-form-data-component.class.mjs +4 -4
  165. package/esm2020/lib/components/o-repeatable-skeleton.component.mjs +4 -4
  166. package/esm2020/lib/components/o-service-base-component.class.mjs +15 -10
  167. package/esm2020/lib/components/o-service-component.class.mjs +7 -7
  168. package/esm2020/lib/components/o-skeleton.component.mjs +4 -4
  169. package/esm2020/lib/components/table/column/calculated/o-table-column-calculated.component.mjs +4 -4
  170. package/esm2020/lib/components/table/column/cell-editor/boolean/o-table-cell-editor-boolean.component.mjs +4 -4
  171. package/esm2020/lib/components/table/column/cell-editor/date/o-table-cell-editor-date.component.mjs +4 -4
  172. package/esm2020/lib/components/table/column/cell-editor/email/o-table-cell-editor-email.component.mjs +4 -4
  173. package/esm2020/lib/components/table/column/cell-editor/integer/o-table-cell-editor-integer.component.mjs +4 -4
  174. package/esm2020/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.mjs +10 -4
  175. package/esm2020/lib/components/table/column/cell-editor/real/o-table-cell-editor-real.component.mjs +4 -4
  176. package/esm2020/lib/components/table/column/cell-editor/text/o-table-cell-editor-text.component.mjs +4 -4
  177. package/esm2020/lib/components/table/column/cell-editor/time/o-table-cell-editor-time.component.mjs +26 -12
  178. package/esm2020/lib/components/table/column/cell-renderer/action/o-table-cell-renderer-action.component.mjs +4 -4
  179. package/esm2020/lib/components/table/column/cell-renderer/boolean/o-table-cell-renderer-boolean.component.mjs +4 -4
  180. package/esm2020/lib/components/table/column/cell-renderer/currency/o-table-cell-renderer-currency.component.mjs +4 -4
  181. package/esm2020/lib/components/table/column/cell-renderer/date/o-table-cell-renderer-date.component.mjs +4 -4
  182. package/esm2020/lib/components/table/column/cell-renderer/image/o-table-cell-renderer-image.component.mjs +4 -4
  183. package/esm2020/lib/components/table/column/cell-renderer/integer/o-table-cell-renderer-integer.component.mjs +4 -4
  184. package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +4 -4
  185. package/esm2020/lib/components/table/column/cell-renderer/percentage/o-table-cell-renderer-percentage.component.mjs +4 -4
  186. package/esm2020/lib/components/table/column/cell-renderer/real/o-table-cell-renderer-real.component.mjs +4 -4
  187. package/esm2020/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.mjs +4 -4
  188. package/esm2020/lib/components/table/column/cell-renderer/time/o-table-cell-renderer-time.component.mjs +4 -4
  189. package/esm2020/lib/components/table/column/cell-renderer/translate/o-table-cell-renderer-translate.component.mjs +4 -4
  190. package/esm2020/lib/components/table/column/o-table-column.component.mjs +4 -4
  191. package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +4 -4
  192. package/esm2020/lib/components/table/extensions/default-o-table.datasource.mjs +137 -66
  193. package/esm2020/lib/components/table/extensions/dialog/apply-configuration/o-table-apply-configuration-dialog.component.mjs +4 -4
  194. package/esm2020/lib/components/table/extensions/dialog/export/o-table-export-dialog.component.mjs +4 -4
  195. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +4 -4
  196. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.mjs +4 -4
  197. package/esm2020/lib/components/table/extensions/dialog/group-by-columns/o-table-group-by-columns-dialog.component.mjs +4 -4
  198. package/esm2020/lib/components/table/extensions/dialog/o-table-base-dialog.class.mjs +4 -4
  199. package/esm2020/lib/components/table/extensions/dialog/store-configuration/o-table-store-configuration-dialog.component.mjs +4 -4
  200. package/esm2020/lib/components/table/extensions/dialog/visible-columns/o-table-visible-columns-dialog.component.mjs +4 -4
  201. package/esm2020/lib/components/table/extensions/export-button/o-table-export-button.component.mjs +4 -4
  202. package/esm2020/lib/components/table/extensions/export-button/o-table-export-button.service.mjs +4 -4
  203. package/esm2020/lib/components/table/extensions/footer/aggregate/o-table-column-aggregate.component.mjs +6 -6
  204. package/esm2020/lib/components/table/extensions/footer/expanded/o-table-expanded-footer.directive.mjs +11 -14
  205. package/esm2020/lib/components/table/extensions/footer/paginator/o-table-mat-paginator-intl.mjs +4 -4
  206. package/esm2020/lib/components/table/extensions/footer/paginator/o-table-paginator.component.mjs +4 -4
  207. package/esm2020/lib/components/table/extensions/header/table-button/o-table-button.component.mjs +4 -4
  208. package/esm2020/lib/components/table/extensions/header/table-buttons/o-table-buttons.component.mjs +4 -4
  209. package/esm2020/lib/components/table/extensions/header/table-column-resizer/o-table-column-resizer.component.mjs +4 -4
  210. package/esm2020/lib/components/table/extensions/header/table-column-select-all/o-table-column-select-all.directive.mjs +4 -4
  211. package/esm2020/lib/components/table/extensions/header/table-columns-filter/columns/o-table-columns-filter-column.component.mjs +4 -4
  212. package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +4 -4
  213. package/esm2020/lib/components/table/extensions/header/table-columns-grouping/columns/o-table-columns-grouping-column.component.mjs +4 -4
  214. package/esm2020/lib/components/table/extensions/header/table-columns-grouping/o-table-columns-grouping.component.mjs +4 -4
  215. package/esm2020/lib/components/table/extensions/header/table-header/o-table-header.component.mjs +4 -4
  216. package/esm2020/lib/components/table/extensions/header/table-header-column-filter-icon/o-table-header-column-filter-icon.component.mjs +5 -5
  217. package/esm2020/lib/components/table/extensions/header/table-header-select-all/o-table-header-select-all.component.mjs +4 -4
  218. package/esm2020/lib/components/table/extensions/header/table-insertable-row/o-table-insertable-row.component.mjs +4 -4
  219. package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +4 -4
  220. package/esm2020/lib/components/table/extensions/header/table-option/o-table-option.component.mjs +4 -4
  221. package/esm2020/lib/components/table/extensions/header/table-quickfilter/o-table-quickfilter.component.mjs +4 -4
  222. package/esm2020/lib/components/table/extensions/o-table-datasource.service.mjs +4 -4
  223. package/esm2020/lib/components/table/extensions/o-table-strategy.service.mjs +10 -4
  224. package/esm2020/lib/components/table/extensions/pipes/o-table-row-class.pipe.mjs +4 -4
  225. package/esm2020/lib/components/table/extensions/row/o-table-row.directive.mjs +4 -4
  226. package/esm2020/lib/components/table/extensions/row/table-row-expandable/o-table-row-expandable.component.mjs +4 -4
  227. package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +19 -19
  228. package/esm2020/lib/components/table/extensions/sort/o-mat-sort-header.mjs +14 -7
  229. package/esm2020/lib/components/table/extensions/sort/o-mat-sort-module.mjs +5 -5
  230. package/esm2020/lib/components/table/extensions/sort/o-mat-sort.mjs +4 -4
  231. package/esm2020/lib/components/table/index.mjs +2 -1
  232. package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
  233. package/esm2020/lib/components/table/o-table-loading.service.mjs +113 -0
  234. package/esm2020/lib/components/table/o-table.component.mjs +66 -61
  235. package/esm2020/lib/components/table/o-table.module.mjs +12 -8
  236. package/esm2020/lib/components/tree/header/tree-menu/o-tree-menu.component.mjs +4 -4
  237. package/esm2020/lib/components/tree/o-tree-dao.service.mjs +4 -4
  238. package/esm2020/lib/components/tree/o-tree.component.mjs +4 -4
  239. package/esm2020/lib/components/tree/o-tree.module.mjs +5 -5
  240. package/esm2020/lib/components/tree/tree-node/tree-node.component.mjs +4 -4
  241. package/esm2020/lib/components/user-info/o-user-info.component.mjs +4 -4
  242. package/esm2020/lib/components/user-info/o-user-info.module.mjs +5 -5
  243. package/esm2020/lib/components/user-info/user-info-configuration/o-user-info-configuration.directive.mjs +4 -4
  244. package/esm2020/lib/components/user-info/user-info-configuration-item/o-user-info-configuration-item.directive.mjs +4 -4
  245. package/esm2020/lib/config/o-modules.mjs +5 -5
  246. package/esm2020/lib/directives/input-regulate.directive.mjs +4 -4
  247. package/esm2020/lib/directives/keyboard-listener.directive.mjs +4 -4
  248. package/esm2020/lib/directives/locker.directive.mjs +4 -4
  249. package/esm2020/lib/directives/o-file-drag-and-drop.directive.mjs +4 -4
  250. package/esm2020/lib/directives/o-hidden.directive.mjs +4 -4
  251. package/esm2020/lib/directives/o-mat-error.directive.mjs +4 -4
  252. package/esm2020/lib/directives/o-mat-prefix.directive.mjs +4 -4
  253. package/esm2020/lib/directives/o-mat-suffix.directive.mjs +4 -4
  254. package/esm2020/lib/directives/o-tab-group.directive.mjs +4 -4
  255. package/esm2020/lib/layouts/app-layout/app-layout-header/o-app-layout-header.component.mjs +4 -4
  256. package/esm2020/lib/layouts/app-layout/app-layout-sidenav/o-app-layout-sidenav.component.mjs +4 -4
  257. package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +4 -4
  258. package/esm2020/lib/layouts/app-layout/o-app-layout.module.mjs +5 -5
  259. package/esm2020/lib/layouts/card-menu-layout/o-card-menu-layout.component.mjs +4 -4
  260. package/esm2020/lib/layouts/card-menu-layout/o-card-menu-layout.module.mjs +5 -5
  261. package/esm2020/lib/layouts/form-layout/dialog/o-form-layout-dialog.component.mjs +4 -4
  262. package/esm2020/lib/layouts/form-layout/dialog/options/o-form-layout-dialog-options.directive.mjs +4 -4
  263. package/esm2020/lib/layouts/form-layout/directives/o-form-layout-manager-content.directive.mjs +4 -4
  264. package/esm2020/lib/layouts/form-layout/guards/o-form-layout-can-activate-child.guard.mjs +4 -4
  265. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +4 -4
  266. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.module.mjs +5 -5
  267. package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +4 -4
  268. package/esm2020/lib/layouts/form-layout/split-pane/options/o-form-layout-split-pane-options.directive.mjs +4 -4
  269. package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +4 -4
  270. package/esm2020/lib/layouts/form-layout/tabgroup/options/o-form-layout-tabgroup-options.directive.mjs +4 -4
  271. package/esm2020/lib/ontimize-web-ngx.module.mjs +5 -5
  272. package/esm2020/lib/pipes/columns-filter.pipe.mjs +4 -4
  273. package/esm2020/lib/pipes/is-empty-value.pipe.mjs +4 -4
  274. package/esm2020/lib/pipes/o-currency.pipe.mjs +4 -4
  275. package/esm2020/lib/pipes/o-icon.pipe.mjs +4 -4
  276. package/esm2020/lib/pipes/o-integer.pipe.mjs +4 -4
  277. package/esm2020/lib/pipes/o-moment.pipe.mjs +4 -4
  278. package/esm2020/lib/pipes/o-percentage.pipe.mjs +4 -4
  279. package/esm2020/lib/pipes/o-real.pipe.mjs +4 -4
  280. package/esm2020/lib/pipes/o-safe.pipe.mjs +4 -4
  281. package/esm2020/lib/pipes/o-translate.pipe.mjs +8 -8
  282. package/esm2020/lib/pipes/order-by.pipe.mjs +4 -4
  283. package/esm2020/lib/services/app-menu.service.mjs +4 -4
  284. package/esm2020/lib/services/appearance.service.mjs +4 -4
  285. package/esm2020/lib/services/auth-guard.service.mjs +4 -4
  286. package/esm2020/lib/services/auth.service.mjs +4 -4
  287. package/esm2020/lib/services/base-service-response.adapter.mjs +4 -4
  288. package/esm2020/lib/services/base-service.class.mjs +4 -4
  289. package/esm2020/lib/services/currency.service.mjs +4 -4
  290. package/esm2020/lib/services/dialog.service.mjs +4 -4
  291. package/esm2020/lib/services/icon.service.mjs +4 -4
  292. package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +4 -4
  293. package/esm2020/lib/services/jsonapi/jsonapi-service-response.adapter.mjs +4 -4
  294. package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +4 -4
  295. package/esm2020/lib/services/local-storage.service.mjs +4 -4
  296. package/esm2020/lib/services/login-storage.service.mjs +4 -4
  297. package/esm2020/lib/services/moment.service.mjs +4 -4
  298. package/esm2020/lib/services/navigation.service.mjs +4 -4
  299. package/esm2020/lib/services/number.service.mjs +4 -4
  300. package/esm2020/lib/services/o-auth.service.mjs +4 -4
  301. package/esm2020/lib/services/o-breadcrumb.service.mjs +4 -4
  302. package/esm2020/lib/services/o-error-dialog-manager.service.mjs +4 -4
  303. package/esm2020/lib/services/o-form-layout-manager.service.mjs +4 -4
  304. package/esm2020/lib/services/o-modules-info.service.mjs +4 -4
  305. package/esm2020/lib/services/o-user-info.service.mjs +4 -4
  306. package/esm2020/lib/services/ontimize/o-preference-response.adapter.mjs +4 -4
  307. package/esm2020/lib/services/ontimize/ontimize-base-service.class.mjs +4 -4
  308. package/esm2020/lib/services/ontimize/ontimize-ee.service.mjs +4 -4
  309. package/esm2020/lib/services/ontimize/ontimize-export-3xx.service.mjs +4 -4
  310. package/esm2020/lib/services/ontimize/ontimize-export.service.mjs +4 -4
  311. package/esm2020/lib/services/ontimize/ontimize-file.service.mjs +4 -4
  312. package/esm2020/lib/services/ontimize/ontimize-preferences.service.mjs +4 -4
  313. package/esm2020/lib/services/ontimize/ontimize-service-response.adapter.mjs +4 -4
  314. package/esm2020/lib/services/ontimize/ontimize.service.mjs +4 -4
  315. package/esm2020/lib/services/ontimize-export-data-base-provider.service.mjs +4 -4
  316. package/esm2020/lib/services/ontimize-export-data-provider-3x.service.mjs +4 -4
  317. package/esm2020/lib/services/ontimize-export-data-provider.service.mjs +4 -4
  318. package/esm2020/lib/services/ontimize-icon-registry.service.mjs +4 -4
  319. package/esm2020/lib/services/pagination-context.service.mjs +4 -4
  320. package/esm2020/lib/services/parser/o-service-response.parser.mjs +4 -4
  321. package/esm2020/lib/services/permissions/o-permissions.module.mjs +5 -5
  322. package/esm2020/lib/services/permissions/ontimize-ee-permissions.service.mjs +4 -4
  323. package/esm2020/lib/services/permissions/ontimize-permissions.service.mjs +4 -4
  324. package/esm2020/lib/services/permissions/permissions-can-activate.guard.mjs +4 -4
  325. package/esm2020/lib/services/permissions/permissions.service.mjs +4 -4
  326. package/esm2020/lib/services/remote-config.service.mjs +5 -5
  327. package/esm2020/lib/services/request-adapter/jsonapi-request-arguments.adapter.mjs +4 -4
  328. package/esm2020/lib/services/request-adapter/ontimize-request-arguments.adapter.mjs +4 -4
  329. package/esm2020/lib/services/share-can-activate-child.service.mjs +4 -4
  330. package/esm2020/lib/services/snackbar.service.mjs +4 -4
  331. package/esm2020/lib/services/state/o-app-menu-component-state.service.mjs +4 -4
  332. package/esm2020/lib/services/state/o-component-state.service.mjs +10 -10
  333. package/esm2020/lib/services/state/o-filter-builder-component-state.service.mjs +4 -4
  334. package/esm2020/lib/services/state/o-form-layout-manager-component-state.service.mjs +4 -4
  335. package/esm2020/lib/services/state/o-grid-component-state.service.mjs +4 -4
  336. package/esm2020/lib/services/state/o-list-component-state.service.mjs +4 -4
  337. package/esm2020/lib/services/state/o-table-component-state.class.mjs +1 -1
  338. package/esm2020/lib/services/state/o-table-component-state.service.mjs +4 -4
  339. package/esm2020/lib/services/state/o-tree-component-state.service.mjs +4 -4
  340. package/esm2020/lib/services/translate/o-translate.parser.mjs +4 -4
  341. package/esm2020/lib/services/translate/o-translate.service.mjs +4 -4
  342. package/esm2020/lib/shared/components/dialog/o-dialog-internal.component.mjs +4 -4
  343. package/esm2020/lib/shared/components/dialog/o-dialog.component.mjs +4 -4
  344. package/esm2020/lib/shared/components/error403/o-error-403.component.mjs +4 -4
  345. package/esm2020/lib/shared/components/filter/load-filter/o-load-filter-dialog.component.mjs +4 -4
  346. package/esm2020/lib/shared/components/filter/store-filter/o-store-filter-dialog.component.mjs +4 -4
  347. package/esm2020/lib/shared/components/snackbar/o-snackbar-base.class.mjs +4 -4
  348. package/esm2020/lib/shared/components/snackbar/o-snackbar.component.mjs +4 -4
  349. package/esm2020/lib/shared/components/validation/o-error.component.mjs +4 -4
  350. package/esm2020/lib/shared/components/validation/o-validator.component.mjs +4 -4
  351. package/esm2020/lib/shared/material/custom.material.module.mjs +5 -5
  352. package/esm2020/lib/shared/material/date/ontimize-moment-date-adapter.mjs +4 -4
  353. package/esm2020/lib/shared/shared.module.mjs +5 -5
  354. package/esm2020/lib/types/aggregate-function.type.mjs +1 -1
  355. package/esm2020/lib/types/table/o-table-global-config.type.mjs +1 -1
  356. package/fesm2015/ontimize-web-ngx.mjs +1582 -1283
  357. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  358. package/fesm2020/ontimize-web-ngx.mjs +1567 -1280
  359. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  360. package/lib/components/dual-list-selector/o-dual-list-selector.component.d.ts +1 -1
  361. package/lib/components/input/hour-input/index.d.ts +3 -0
  362. package/lib/components/input/hour-input/o-hour-input.component.d.ts +6 -2
  363. package/lib/components/input/hour-input/o-hour-input.directive.d.ts +8 -0
  364. package/lib/components/input/hour-input/o-hour-input.module.d.ts +5 -4
  365. package/lib/components/input/index.d.ts +1 -2
  366. package/lib/components/o-service-base-component.class.d.ts +1 -0
  367. package/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.d.ts +5 -3
  368. package/lib/components/table/column/cell-editor/time/o-table-cell-editor-time.component.d.ts +2 -2
  369. package/lib/components/table/extensions/default-o-table.datasource.d.ts +6 -1
  370. package/lib/components/table/extensions/dialog/group-by-columns/o-table-group-by-columns-dialog.component.d.ts +1 -1
  371. package/lib/components/table/extensions/footer/aggregate/o-table-column-aggregate.component.d.ts +1 -1
  372. package/lib/components/table/extensions/footer/expanded/o-table-expanded-footer.directive.d.ts +1 -2
  373. package/lib/components/table/extensions/o-table-strategy.service.d.ts +2 -1
  374. package/lib/components/table/extensions/skeleton/o-table-skeleton.component.d.ts +1 -0
  375. package/lib/components/table/extensions/sort/o-mat-sort-header.d.ts +5 -3
  376. package/lib/components/table/index.d.ts +1 -0
  377. package/lib/components/table/o-table-base.class.d.ts +3 -1
  378. package/lib/components/table/o-table-loading.service.d.ts +28 -0
  379. package/lib/components/table/o-table.component.d.ts +3 -1
  380. package/lib/components/table/o-table.module.d.ts +2 -1
  381. package/lib/services/state/o-table-component-state.class.d.ts +1 -1
  382. package/lib/types/aggregate-function.type.d.ts +2 -1
  383. package/lib/types/table/o-table-global-config.type.d.ts +4 -0
  384. package/package.json +2 -2
@@ -221,15 +221,15 @@ export class OTableCellRendererServiceComponent extends OBaseTableCellRenderer {
221
221
  }
222
222
  }
223
223
  OTableCellRendererServiceComponent.DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_SERVICE = DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_SERVICE;
224
- OTableCellRendererServiceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellRendererServiceComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
225
- OTableCellRendererServiceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableCellRendererServiceComponent, selector: "o-table-cell-renderer-service", inputs: { entity: "entity", service: "service", columns: "columns", translate: "translate", valueColumn: ["value-column", "valueColumn"], valueColumnType: ["value-column-type", "valueColumnType"], parentKeys: ["parent-keys", "parentKeys"], queryMethod: ["query-method", "queryMethod"], serviceType: ["service-type", "serviceType"], translateArgsFn: ["translate-params", "translateArgsFn"], configureServiceArgs: ["configure-service-args", "configureServiceArgs"] }, outputs: { onDataLoaded: "onDataLoaded" }, providers: [
224
+ OTableCellRendererServiceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellRendererServiceComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
225
+ OTableCellRendererServiceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableCellRendererServiceComponent, selector: "o-table-cell-renderer-service", inputs: { entity: "entity", service: "service", columns: "columns", translate: "translate", valueColumn: ["value-column", "valueColumn"], valueColumnType: ["value-column-type", "valueColumnType"], parentKeys: ["parent-keys", "parentKeys"], queryMethod: ["query-method", "queryMethod"], serviceType: ["service-type", "serviceType"], translateArgsFn: ["translate-params", "translateArgsFn"], configureServiceArgs: ["configure-service-args", "configureServiceArgs"] }, outputs: { onDataLoaded: "onDataLoaded" }, providers: [
226
226
  OntimizeServiceProvider
227
227
  ], viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n {{ getDescriptionValue(cellvalue, rowvalue) }}{{ responseValue(responseMap[cellvalue]) }}\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
228
228
  __decorate([
229
229
  BooleanInputConverter(),
230
230
  __metadata("design:type", Boolean)
231
231
  ], OTableCellRendererServiceComponent.prototype, "translate", void 0);
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellRendererServiceComponent, decorators: [{
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellRendererServiceComponent, decorators: [{
233
233
  type: Component,
234
234
  args: [{ selector: 'o-table-cell-renderer-service', inputs: DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_SERVICE, outputs: DEFAULT_OUTPUTS_O_TABLE_CELL_RENDERER_SERVICE, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
235
235
  OntimizeServiceProvider
@@ -238,4 +238,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
238
238
  type: ViewChild,
239
239
  args: ['templateref', { read: TemplateRef, static: true }]
240
240
  }], translate: [] } });
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLXJlbmRlcmVyLXNlcnZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvY29sdW1uL2NlbGwtcmVuZGVyZXIvc2VydmljZS9vLXRhYmxlLWNlbGwtcmVuZGVyZXItc2VydmljZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci9zZXJ2aWNlL28tdGFibGUtY2VsbC1yZW5kZXJlci1zZXJ2aWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFxQixXQUFXLEVBQVEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRWxGLE9BQU8sRUFBMEIsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUdwRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFN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QUVqQyw0Q0FBNEMsV0FDM0MsNkNBQTZDLG1CQUNyQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUVULHVCQUF1QjtxQkFDeEI7K0ZBTXFFLFdBQVc7c0JBQWhGLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVluRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBUeXBlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBTZXJ2aWNlUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9pbnRlcmZhY2VzL3NlcnZpY2UtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IElUcmFuc2xhdGVQaXBlQXJndW1lbnQsIE9UcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcGlwZXMvby10cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9mYWN0b3JpZXMnO1xuaW1wb3J0IHsgT250aW1pemVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvb250aW1pemUvb250aW1pemUuc2VydmljZSc7XG5pbXBvcnQgeyBPQ29uZmlndXJlU2VydmljZUFyZ3MgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90eXBlcy9jb25maWd1cmUtc2VydmljZS1hcmdzLnR5cGUnO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2V4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5pbXBvcnQgeyBTZXJ2aWNlVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3NlcnZpY2UudXRpbHMnO1xuaW1wb3J0IHsgU1FMVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3NxbHR5cGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0Jhc2VUYWJsZUNlbGxSZW5kZXJlciB9IGZyb20gJy4uL28tYmFzZS10YWJsZS1jZWxsLXJlbmRlcmVyLmNsYXNzJztcblxuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vby1jb2x1bW4uY2xhc3MnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9iYXNlLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgRmFjdG9yeVV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL2ZhY3RvcnkudXRpbCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DRUxMX1JFTkRFUkVSX1NFUlZJQ0UgPSBbXG4gICdlbnRpdHknLFxuICAnc2VydmljZScsXG4gICdjb2x1bW5zJyxcbiAgJ3RyYW5zbGF0ZScsXG4gICd2YWx1ZUNvbHVtbjogdmFsdWUtY29sdW1uJyxcbiAgJ3ZhbHVlQ29sdW1uVHlwZTogdmFsdWUtY29sdW1uLXR5cGUnLFxuICAncGFyZW50S2V5czogcGFyZW50LWtleXMnLFxuICAncXVlcnlNZXRob2Q6IHF1ZXJ5LW1ldGhvZCcsXG4gICdzZXJ2aWNlVHlwZSA6IHNlcnZpY2UtdHlwZScsXG4gICd0cmFuc2xhdGVBcmdzRm46IHRyYW5zbGF0ZS1wYXJhbXMnLFxuICAvLyAgY29uZmlndXJlLXNlcnZpY2UtYXJncyBbT0NvbmZpZ3VyZVNlcnZpY2VBcmdzXTogQWxsb3dzIGNvbmZpZ3VyZSBzZXJ2aWNlIC5cbiAgJ2NvbmZpZ3VyZVNlcnZpY2VBcmdzOiBjb25maWd1cmUtc2VydmljZS1hcmdzJ1xuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1VUUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfU0VSVklDRSA9IFtcbiAgJ29uRGF0YUxvYWRlZCdcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tdGFibGUtY2VsbC1yZW5kZXJlci1zZXJ2aWNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1yZW5kZXJlci1zZXJ2aWNlLmNvbXBvbmVudC5odG1sJyxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfU0VSVklDRSxcbiAgb3V0cHV0czogREVGQVVMVF9PVVRQVVRTX09fVEFCTEVfQ0VMTF9SRU5ERVJFUl9TRVJWSUNFLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgLy8gU2VydmljZSByZW5kZXJlciBtdXN0IGhhdmUgaXRzIG93biBzZXJ2aWNlIGluc3RhbmNlIGluIG9yZGVyIHRvIGF2b2lkIG92ZXJyaWRpbmcgdGFibGUgc2VydmljZSBjb25maWd1cmF0aW9uXG4gICAgT250aW1pemVTZXJ2aWNlUHJvdmlkZXJcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPVGFibGVDZWxsUmVuZGVyZXJTZXJ2aWNlQ29tcG9uZW50IGV4dGVuZHMgT0Jhc2VUYWJsZUNlbGxSZW5kZXJlciBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfSU5QVVRTX09fVEFCTEVfQ0VMTF9SRU5ERVJFUl9TRVJWSUNFID0gREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DRUxMX1JFTkRFUkVSX1NFUlZJQ0U7XG5cbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVyZWYnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgcHVibGljIHRlbXBsYXRlcmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHB1YmxpYyByb3dEYXRhOiBhbnk7XG4gIHB1YmxpYyBjZWxsVmFsdWVzID0gW107XG4gIHB1YmxpYyByZW5kZXJWYWx1ZTogYW55O1xuICBwdWJsaWMgcmVzcG9uc2VNYXAgPSB7fTtcblxuICAvKiBJbnB1dHMgKi9cbiAgcHJvdGVjdGVkIGVudGl0eTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgc2VydmljZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgY29sdW1uczogc3RyaW5nO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdmFsdWVDb2x1bW46IHN0cmluZztcbiAgcHVibGljIHZhbHVlQ29sdW1uVHlwZTogc3RyaW5nID0gQ29kZXMuVFlQRV9JTlQ7XG4gIHByb3RlY3RlZCBwYXJlbnRLZXlzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBxdWVyeU1ldGhvZDogc3RyaW5nID0gQ29kZXMuUVVFUllfTUVUSE9EO1xuICBwcm90ZWN0ZWQgc2VydmljZVR5cGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZVNlcnZpY2VBcmdzOiBPQ29uZmlndXJlU2VydmljZUFyZ3M7XG5cbiAgLyogT3V0cHV0cyAqL1xuICBwdWJsaWMgb25EYXRhTG9hZGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyogSW50ZXJuYWwgdmFyaWFibGVzICovXG4gIHByb3RlY3RlZCBjb2xBcnJheTogc3RyaW5nW10gPSBbXTtcbiAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBCYXNlU2VydmljZTxTZXJ2aWNlUmVzcG9uc2U+O1xuICBwcm90ZWN0ZWQgX3BLZXlzRXF1aXYgPSB7fTtcbiAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2U7XG5cbiAgcHVibGljIHRyYW5zbGF0ZUFyZ3NGbjogKHJvd0RhdGE6IGFueSkgPT4gYW55W107XG4gIHByb3RlY3RlZCBjb21wb25lbnRQaXBlOiBPVHJhbnNsYXRlUGlwZTtcbiAgcHJvdGVjdGVkIHBpcGVBcmd1bWVudHM6IElUcmFuc2xhdGVQaXBlQXJndW1lbnQgPSB7fTtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaXRwaW9uczogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy50YWJsZUNvbHVtbi50eXBlID0gJ3NlcnZpY2UnO1xuICAgIHRoaXMuZGlhbG9nU2VydmljZSA9IGluamVjdG9yLmdldDxEaWFsb2dTZXJ2aWNlPihEaWFsb2dTZXJ2aWNlIGFzIFR5cGU8RGlhbG9nU2VydmljZT4pO1xuICAgIHRoaXMuc2V0Q29tcG9uZW50UGlwZSgpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgIGlmICh0aGlzLnRhYmxlKSB7XG4gICAgICBjb25zdCBvQ29sOiBPQ29sdW1uID0gdGhpcy50YWJsZS5nZXRPQ29sdW1uKHRoaXMuY29sdW1uKTtcbiAgICAgIG9Db2wuZGVmaW5pdGlvbi5jb250ZW50QWxpZ24gPSBvQ29sLmRlZmluaXRpb24uY29udGVudEFsaWduID8gb0NvbC5kZWZpbml0aW9uLmNvbnRlbnRBbGlnbiA6ICdzdGFydCc7XG4gICAgfVxuXG4gICAgdGhpcy5jb2xBcnJheSA9IFV0aWwucGFyc2VBcnJheSh0aGlzLmNvbHVtbnMsIHRydWUpO1xuICAgIGNvbnN0IHBrQXJyYXkgPSBVdGlsLnBhcnNlQXJyYXkodGhpcy5wYXJlbnRLZXlzKTtcbiAgICB0aGlzLl9wS2V5c0VxdWl2ID0gVXRpbC5wYXJzZVBhcmVudEtleXNFcXVpdmFsZW5jZXMocGtBcnJheSk7XG4gICAgdGhpcy5jb25maWd1cmVTZXJ2aWNlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG9Db2w6IE9Db2x1bW4gPSB0aGlzLnRhYmxlLmdldE9Db2x1bW4odGhpcy5jb2x1bW4pO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChvQ29sLmVkaXRvcikpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXRwaW9ucy5hZGQob0NvbC5lZGl0b3Iub25Qb3N0VXBkYXRlUmVjb3JkLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucXVlcnlEYXRhKGRhdGFbdGhpcy50YWJsZUNvbHVtbi5hdHRyXSwgZGF0YSk7XG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1YnNjcml0cGlvbnMpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXRwaW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXREZXNjcmlwdGlvblZhbHVlKGNlbGx2YWx1ZTogYW55LCByb3dWYWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY2VsbHZhbHVlKSAmJiB0aGlzLmNlbGxWYWx1ZXMuaW5kZXhPZihjZWxsdmFsdWUpID09PSAtMSkge1xuICAgICAgdGhpcy5xdWVyeURhdGEoY2VsbHZhbHVlLCByb3dWYWx1ZSk7XG4gICAgICB0aGlzLmNlbGxWYWx1ZXMucHVzaChjZWxsdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwdWJsaWMgcXVlcnlEYXRhKGNlbGx2YWx1ZSwgcGFyZW50SXRlbT86IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kYXRhU2VydmljZSB8fCAhKHRoaXMucXVlcnlNZXRob2QgaW4gdGhpcy5kYXRhU2VydmljZSkgfHwgIXRoaXMuZW50aXR5KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1NlcnZpY2Ugbm90IHByb3Blcmx5IGNvbmZpZ3VyZWQhIGFib3J0aW5nIHF1ZXJ5Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZpbHRlciA9IFNlcnZpY2VVdGlscy5nZXRGaWx0ZXJVc2luZ1BhcmVudEtleXMocGFyZW50SXRlbSwgdGhpcy5fcEtleXNFcXVpdik7XG4gICAgY29uc3QgdGFibGVDb2xBbGlhcyA9IE9iamVjdC5rZXlzKHRoaXMuX3BLZXlzRXF1aXYpLmZpbmQoa2V5ID0+IHRoaXMuX3BLZXlzRXF1aXZba2V5XSA9PT0gdGhpcy5jb2x1bW4pO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0YWJsZUNvbEFsaWFzKSkge1xuICAgICAgaWYgKCFmaWx0ZXJbdGFibGVDb2xBbGlhc10pIHtcbiAgICAgICAgZmlsdGVyW3RhYmxlQ29sQWxpYXNdID0gY2VsbHZhbHVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWx0ZXJbdGhpcy5jb2x1bW5dID0gY2VsbHZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBxdWVyeUFyZ3VtZW50cyA9IHRoaXMuZ2V0UXVlcnlBcmd1bWVudHMoZmlsdGVyKTtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlW3RoaXMucXVlcnlNZXRob2RdKC4uLnRoaXMuZGF0YVNlcnZpY2UucmVxdWVzdEFyZ3VtZW50QWRhcHRlci5wYXJzZVF1ZXJ5UGFyYW1ldGVycyhxdWVyeUFyZ3VtZW50cykpXG4gICAgICAuc3Vic2NyaWJlKChyZXNwOiBTZXJ2aWNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3AuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICAgICAgICBsZXQgcmVzcERhdGE7XG4gICAgICAgICAgaWYgKFV0aWwuaXNBcnJheShyZXNwLmRhdGEpKSB7XG4gICAgICAgICAgICByZXNwRGF0YSA9IHJlc3AuZGF0YVswXTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFV0aWwuaXNPYmplY3QocmVzcC5kYXRhKSAmJiBPYmplY3Qua2V5cyhyZXNwLmRhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJlc3BEYXRhID0gcmVzcC5kYXRhO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvbXBvbmVudCBoYXMgcmVjZWl2ZWQgbm90IHN1cHBvcnRlZCBzZXJ2aWNlIGRhdGEuIFN1cHBvcnRlZCBkYXRhIGFyZSBBcnJheSBvciBPYmplY3QnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQocmVzcERhdGEpKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3BvbnNlTWFwW2NlbGx2YWx1ZV0gPSByZXNwRGF0YVt0aGlzLnZhbHVlQ29sdW1uXTtcbiAgICAgICAgICAgIHRoaXMub25EYXRhTG9hZGVkLmVtaXQodGhpcy5yZXNwb25zZU1hcFtjZWxsdmFsdWVdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKGVyciAmJiB0eXBlb2YgZXJyICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5hbGVydCgnRVJST1InLCBlcnIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5hbGVydCgnRVJST1InLCAnTUVTU0FHRVMuRVJST1JfUVVFUlknKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBnZXRRdWVyeUFyZ3VtZW50cyhmaWx0ZXI6IHt9KTogYW55IHtcbiAgICBjb25zdCBzcWxUeXBlcyA9IHRoaXMuZ2V0U3FsVHlwZXNGb3JGaWx0ZXIoZmlsdGVyKTtcblxuICAgIHJldHVybiB7XG4gICAgICBmaWx0ZXI6IGZpbHRlcixcbiAgICAgIGNvbHVtbnM6IHRoaXMuY29sQXJyYXksXG4gICAgICBlbnRpdHk6IHRoaXMuZW50aXR5LFxuICAgICAgc3FsVHlwZXM6IHNxbFR5cGVzXG4gICAgfTtcbiAgfVxuXG4gIGdldFNxbFR5cGVzRm9yRmlsdGVyKGZpbHRlcjogT2JqZWN0KSB7XG4gICAgY29uc3Qgc3FsVHlwZSA9IHt9O1xuICAgIGNvbnN0IHRhYmxlU3FsVHlwZXMgPSB0aGlzLnRhYmxlLmdldFNxbFR5cGVzKCk7XG5cbiAgICBPYmplY3Qua2V5cyhmaWx0ZXIpLmZvckVhY2goZmlsdGVyS2V5ID0+IHtcbiAgICAgIGNvbnN0IHBLZXlFcXVpdiA9IE9iamVjdC5rZXlzKHRoaXMuX3BLZXlzRXF1aXYpLmZpbmQoa2V5RXF1aXYgPT4ga2V5RXF1aXYgPT09IGZpbHRlcktleSk7XG4gICAgICBjb25zdCBrZXlFcXVpdiA9IFV0aWwuaXNEZWZpbmVkKHBLZXlFcXVpdikgPyB0aGlzLl9wS2V5c0VxdWl2W3BLZXlFcXVpdl0gOiBmaWx0ZXJLZXk7XG4gICAgICBzcWxUeXBlW2ZpbHRlcktleV0gPSB0YWJsZVNxbFR5cGVzW2tleUVxdWl2XVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNxbFR5cGU7XG4gIH1cbiAgcHVibGljIGNvbmZpZ3VyZVNlcnZpY2UoKTogdm9pZCB7XG4gICAgbGV0IGNvbmZpZ3VyZVNlcnZpY2VBcmdzOiBPQ29uZmlndXJlU2VydmljZUFyZ3MgPSB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yLCBiYXNlU2VydmljZTogT250aW1pemVTZXJ2aWNlLCBlbnRpdHk6IHRoaXMuZW50aXR5LCBzZXJ2aWNlOiB0aGlzLnNlcnZpY2UsIHNlcnZpY2VUeXBlOiB0aGlzLnNlcnZpY2VUeXBlIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5jb25maWd1cmVTZXJ2aWNlQXJncykpIHtcbiAgICAgIGNvbmZpZ3VyZVNlcnZpY2VBcmdzID0geyAuLi5jb25maWd1cmVTZXJ2aWNlQXJncywgLi4udGhpcy5jb25maWd1cmVTZXJ2aWNlQXJncyB9O1xuICAgIH1cbiAgICB0aGlzLmRhdGFTZXJ2aWNlID0gRmFjdG9yeVV0aWwuY29uZmlndXJlU2VydmljZShjb25maWd1cmVTZXJ2aWNlQXJncyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2VsbERhdGEoY2VsbHZhbHVlOiBhbnksIHJvd3ZhbHVlPzogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZU1hcFtjZWxsdmFsdWVdO1xuICB9XG5cbiAgcHVibGljIGdldEZpbHRlckV4cHJlc3Npb24ocXVpY2tGaWx0ZXI6IHN0cmluZyk6IEV4cHJlc3Npb24ge1xuICAgIGNvbnN0IG9Db2w6IE9Db2x1bW4gPSB0aGlzLnRhYmxlLmdldE9Db2x1bW4odGhpcy5jb2x1bW4pO1xuICAgIGxldCByZXN1bHQ6IEV4cHJlc3Npb247XG4gICAgbGV0IGNhY2hlVmFsdWUgPSBPYmplY3Qua2V5cyh0aGlzLnJlc3BvbnNlTWFwKS5maW5kKGtleSA9PiBVdGlsLm5vcm1hbGl6ZVN0cmluZyh0aGlzLnJlc3BvbnNlTWFwW2tleV0pLmluZGV4T2YoVXRpbC5ub3JtYWxpemVTdHJpbmcocXVpY2tGaWx0ZXIpKSAhPT0gLTEpO1xuICAgIGlmIChjYWNoZVZhbHVlKSB7XG4gICAgICBjYWNoZVZhbHVlID0gdGhpcy5wYXJzZUJ5VmFsdWVDb2x1bW5UeXBlKGNhY2hlVmFsdWUpO1xuICAgICAgcmVzdWx0ID0gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkRXhwcmVzc2lvbkVxdWFscyh0aGlzLmNvbHVtbiwgU1FMVHlwZXMucGFyc2VVc2luZ1NRTFR5cGUoY2FjaGVWYWx1ZSwgU1FMVHlwZXMuZ2V0U1FMVHlwZUtleShvQ29sLnNxbFR5cGUpKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29tcG9uZW50UGlwZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFBpcGUgPSBuZXcgT1RyYW5zbGF0ZVBpcGUodGhpcy5pbmplY3Rvcik7XG4gIH1cblxuICBwdWJsaWMgcmVzcG9uc2VWYWx1ZShjZWxsdmFsdWU6IGFueSwgcm93dmFsdWU/OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnRyYW5zbGF0ZSkge1xuICAgICAgdGhpcy5waXBlQXJndW1lbnRzID0gdGhpcy50cmFuc2xhdGVBcmdzRm4gPyB7IHZhbHVlczogdGhpcy50cmFuc2xhdGVBcmdzRm4ocm93dmFsdWUpIH0gOiB7fTtcbiAgICAgIHJldHVybiBzdXBlci5nZXRDZWxsRGF0YShjZWxsdmFsdWUsIHJvd3ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNlbGx2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VCeVZhbHVlQ29sdW1uVHlwZSh2YWw6IGFueSkge1xuICAgIGxldCB2YWx1ZSA9IHZhbDtcblxuICAgIGlmICh0aGlzLnZhbHVlQ29sdW1uVHlwZSA9PT0gQ29kZXMuVFlQRV9JTlQpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgICBpZiAoIWlzTmFOKHBhcnNlZCkpIHtcbiAgICAgICAgdmFsdWUgPSBwYXJzZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBRdWVyeWluZyBhbGwgZW50aXR5IHJlY29yZHMgdG8gaGF2ZSB0aGUgcmVzcG9uc2VNYXAgZnVsbHkgZmlsbGVkICovXG4gIHF1ZXJ5QWxsRGF0YSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBpZiAoIXRoaXMuZGF0YVNlcnZpY2UgfHwgISh0aGlzLnF1ZXJ5TWV0aG9kIGluIHRoaXMuZGF0YVNlcnZpY2UpIHx8ICF0aGlzLmVudGl0eSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1NlcnZpY2Ugbm90IHByb3Blcmx5IGNvbmZpZ3VyZWQhIGFib3J0aW5nIHF1ZXJ5Jyk7XG4gICAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnlBcmd1bWVudHMgPSB0aGlzLmdldFF1ZXJ5QXJndW1lbnRzKHt9KTtcblxuICAgICAgdGhpcy5kYXRhU2VydmljZVt0aGlzLnF1ZXJ5TWV0aG9kXSguLi50aGlzLmRhdGFTZXJ2aWNlLnJlcXVlc3RBcmd1bWVudEFkYXB0ZXIucGFyc2VRdWVyeVBhcmFtZXRlcnMocXVlcnlBcmd1bWVudHMpKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXNwOiBTZXJ2aWNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcC5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgICAgICAgbGV0IHJlc3BEYXRhID0gW107XG4gICAgICAgICAgICBpZiAoVXRpbC5pc0FycmF5KHJlc3AuZGF0YSkpIHtcbiAgICAgICAgICAgICAgcmVzcERhdGEgPSByZXNwLmRhdGE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFV0aWwuaXNPYmplY3QocmVzcC5kYXRhKSAmJiBPYmplY3Qua2V5cyhyZXNwLmRhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgcmVzcERhdGEgPSBbcmVzcC5kYXRhXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignQ29tcG9uZW50IGhhcyByZWNlaXZlZCBub3Qgc3VwcG9ydGVkIHNlcnZpY2UgZGF0YS4gU3VwcG9ydGVkIGRhdGEgYXJlIEFycmF5IG9yIE9iamVjdCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXNwRGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQoaXRlbVt0aGlzLmNvbHVtbl0pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jZWxsVmFsdWVzLnB1c2goaXRlbVt0aGlzLmNvbHVtbl0pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VNYXBbaXRlbVt0aGlzLmNvbHVtbl1dID0gaXRlbVt0aGlzLnZhbHVlQ29sdW1uXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm9uRGF0YUxvYWRlZC5lbWl0KHRoaXMucmVzcG9uc2VNYXApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvYnNlcnZlci5uZXh0KCk7XG4gICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVyZWYgbGV0LWNlbGx2YWx1ZT1cImNlbGx2YWx1ZVwiIGxldC1yb3d2YWx1ZT1cInJvd3ZhbHVlXCI+XG4gIHt7IGdldERlc2NyaXB0aW9uVmFsdWUoY2VsbHZhbHVlLCByb3d2YWx1ZSkgfX17eyByZXNwb25zZVZhbHVlKHJlc3BvbnNlTWFwW2NlbGx2YWx1ZV0pIH19XG48L25nLXRlbXBsYXRlPlxuIl19
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLXJlbmRlcmVyLXNlcnZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvY29sdW1uL2NlbGwtcmVuZGVyZXIvc2VydmljZS9vLXRhYmxlLWNlbGwtcmVuZGVyZXItc2VydmljZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci9zZXJ2aWNlL28tdGFibGUtY2VsbC1yZW5kZXJlci1zZXJ2aWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFxQixXQUFXLEVBQVEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRWxGLE9BQU8sRUFBMEIsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUdwRixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFN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QUVqQyw0Q0FBNEMsV0FDM0MsNkNBQTZDLG1CQUNyQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUVULHVCQUF1QjtxQkFDeEI7K0ZBTXFFLFdBQVc7c0JBQWhGLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVluRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBUeXBlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBTZXJ2aWNlUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9pbnRlcmZhY2VzL3NlcnZpY2UtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IElUcmFuc2xhdGVQaXBlQXJndW1lbnQsIE9UcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcGlwZXMvby10cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgT250aW1pemVTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9mYWN0b3JpZXMnO1xuaW1wb3J0IHsgT250aW1pemVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvb250aW1pemUvb250aW1pemUuc2VydmljZSc7XG5pbXBvcnQgeyBPQ29uZmlndXJlU2VydmljZUFyZ3MgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi90eXBlcy9jb25maWd1cmUtc2VydmljZS1hcmdzLnR5cGUnO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3R5cGVzL2V4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5pbXBvcnQgeyBTZXJ2aWNlVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3NlcnZpY2UudXRpbHMnO1xuaW1wb3J0IHsgU1FMVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3NxbHR5cGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0Jhc2VUYWJsZUNlbGxSZW5kZXJlciB9IGZyb20gJy4uL28tYmFzZS10YWJsZS1jZWxsLXJlbmRlcmVyLmNsYXNzJztcblxuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vby1jb2x1bW4uY2xhc3MnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9iYXNlLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgRmFjdG9yeVV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsL2ZhY3RvcnkudXRpbCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DRUxMX1JFTkRFUkVSX1NFUlZJQ0UgPSBbXG4gICdlbnRpdHknLFxuICAnc2VydmljZScsXG4gICdjb2x1bW5zJyxcbiAgJ3RyYW5zbGF0ZScsXG4gICd2YWx1ZUNvbHVtbjogdmFsdWUtY29sdW1uJyxcbiAgJ3ZhbHVlQ29sdW1uVHlwZTogdmFsdWUtY29sdW1uLXR5cGUnLFxuICAncGFyZW50S2V5czogcGFyZW50LWtleXMnLFxuICAncXVlcnlNZXRob2Q6IHF1ZXJ5LW1ldGhvZCcsXG4gICdzZXJ2aWNlVHlwZSA6IHNlcnZpY2UtdHlwZScsXG4gICd0cmFuc2xhdGVBcmdzRm46IHRyYW5zbGF0ZS1wYXJhbXMnLFxuICAvLyAgY29uZmlndXJlLXNlcnZpY2UtYXJncyBbT0NvbmZpZ3VyZVNlcnZpY2VBcmdzXTogQWxsb3dzIGNvbmZpZ3VyZSBzZXJ2aWNlIC5cbiAgJ2NvbmZpZ3VyZVNlcnZpY2VBcmdzOiBjb25maWd1cmUtc2VydmljZS1hcmdzJ1xuXTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1VUUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfU0VSVklDRSA9IFtcbiAgJ29uRGF0YUxvYWRlZCdcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tdGFibGUtY2VsbC1yZW5kZXJlci1zZXJ2aWNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1yZW5kZXJlci1zZXJ2aWNlLmNvbXBvbmVudC5odG1sJyxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfU0VSVklDRSxcbiAgb3V0cHV0czogREVGQVVMVF9PVVRQVVRTX09fVEFCTEVfQ0VMTF9SRU5ERVJFUl9TRVJWSUNFLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgLy8gU2VydmljZSByZW5kZXJlciBtdXN0IGhhdmUgaXRzIG93biBzZXJ2aWNlIGluc3RhbmNlIGluIG9yZGVyIHRvIGF2b2lkIG92ZXJyaWRpbmcgdGFibGUgc2VydmljZSBjb25maWd1cmF0aW9uXG4gICAgT250aW1pemVTZXJ2aWNlUHJvdmlkZXJcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPVGFibGVDZWxsUmVuZGVyZXJTZXJ2aWNlQ29tcG9uZW50IGV4dGVuZHMgT0Jhc2VUYWJsZUNlbGxSZW5kZXJlciBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfSU5QVVRTX09fVEFCTEVfQ0VMTF9SRU5ERVJFUl9TRVJWSUNFID0gREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DRUxMX1JFTkRFUkVSX1NFUlZJQ0U7XG5cbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVyZWYnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgcHVibGljIHRlbXBsYXRlcmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHB1YmxpYyByb3dEYXRhOiBhbnk7XG4gIHB1YmxpYyBjZWxsVmFsdWVzID0gW107XG4gIHB1YmxpYyByZW5kZXJWYWx1ZTogYW55O1xuICBwdWJsaWMgcmVzcG9uc2VNYXAgPSB7fTtcblxuICAvKiBJbnB1dHMgKi9cbiAgcHJvdGVjdGVkIGVudGl0eTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgc2VydmljZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgY29sdW1uczogc3RyaW5nO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdmFsdWVDb2x1bW46IHN0cmluZztcbiAgcHVibGljIHZhbHVlQ29sdW1uVHlwZTogc3RyaW5nID0gQ29kZXMuVFlQRV9JTlQ7XG4gIHByb3RlY3RlZCBwYXJlbnRLZXlzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBxdWVyeU1ldGhvZDogc3RyaW5nID0gQ29kZXMuUVVFUllfTUVUSE9EO1xuICBwcm90ZWN0ZWQgc2VydmljZVR5cGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZVNlcnZpY2VBcmdzOiBPQ29uZmlndXJlU2VydmljZUFyZ3M7XG5cbiAgLyogT3V0cHV0cyAqL1xuICBwdWJsaWMgb25EYXRhTG9hZGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLyogSW50ZXJuYWwgdmFyaWFibGVzICovXG4gIHByb3RlY3RlZCBjb2xBcnJheTogc3RyaW5nW10gPSBbXTtcbiAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBCYXNlU2VydmljZTxTZXJ2aWNlUmVzcG9uc2U+O1xuICBwcm90ZWN0ZWQgX3BLZXlzRXF1aXYgPSB7fTtcbiAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2U7XG5cbiAgcHVibGljIHRyYW5zbGF0ZUFyZ3NGbjogKHJvd0RhdGE6IGFueSkgPT4gYW55W107XG4gIHByb3RlY3RlZCBjb21wb25lbnRQaXBlOiBPVHJhbnNsYXRlUGlwZTtcbiAgcHJvdGVjdGVkIHBpcGVBcmd1bWVudHM6IElUcmFuc2xhdGVQaXBlQXJndW1lbnQgPSB7fTtcblxuICBwcm90ZWN0ZWQgc3Vic2NyaXRwaW9uczogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy50YWJsZUNvbHVtbi50eXBlID0gJ3NlcnZpY2UnO1xuICAgIHRoaXMuZGlhbG9nU2VydmljZSA9IGluamVjdG9yLmdldDxEaWFsb2dTZXJ2aWNlPihEaWFsb2dTZXJ2aWNlIGFzIFR5cGU8RGlhbG9nU2VydmljZT4pO1xuICAgIHRoaXMuc2V0Q29tcG9uZW50UGlwZSgpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgIGlmICh0aGlzLnRhYmxlKSB7XG4gICAgICBjb25zdCBvQ29sOiBPQ29sdW1uID0gdGhpcy50YWJsZS5nZXRPQ29sdW1uKHRoaXMuY29sdW1uKTtcbiAgICAgIG9Db2wuZGVmaW5pdGlvbi5jb250ZW50QWxpZ24gPSBvQ29sLmRlZmluaXRpb24uY29udGVudEFsaWduID8gb0NvbC5kZWZpbml0aW9uLmNvbnRlbnRBbGlnbiA6ICdzdGFydCc7XG4gICAgfVxuXG4gICAgdGhpcy5jb2xBcnJheSA9IFV0aWwucGFyc2VBcnJheSh0aGlzLmNvbHVtbnMsIHRydWUpO1xuICAgIGNvbnN0IHBrQXJyYXkgPSBVdGlsLnBhcnNlQXJyYXkodGhpcy5wYXJlbnRLZXlzKTtcbiAgICB0aGlzLl9wS2V5c0VxdWl2ID0gVXRpbC5wYXJzZVBhcmVudEtleXNFcXVpdmFsZW5jZXMocGtBcnJheSk7XG4gICAgdGhpcy5jb25maWd1cmVTZXJ2aWNlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG9Db2w6IE9Db2x1bW4gPSB0aGlzLnRhYmxlLmdldE9Db2x1bW4odGhpcy5jb2x1bW4pO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZChvQ29sLmVkaXRvcikpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXRwaW9ucy5hZGQob0NvbC5lZGl0b3Iub25Qb3N0VXBkYXRlUmVjb3JkLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucXVlcnlEYXRhKGRhdGFbdGhpcy50YWJsZUNvbHVtbi5hdHRyXSwgZGF0YSk7XG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN1YnNjcml0cGlvbnMpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXRwaW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXREZXNjcmlwdGlvblZhbHVlKGNlbGx2YWx1ZTogYW55LCByb3dWYWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoY2VsbHZhbHVlKSAmJiB0aGlzLmNlbGxWYWx1ZXMuaW5kZXhPZihjZWxsdmFsdWUpID09PSAtMSkge1xuICAgICAgdGhpcy5xdWVyeURhdGEoY2VsbHZhbHVlLCByb3dWYWx1ZSk7XG4gICAgICB0aGlzLmNlbGxWYWx1ZXMucHVzaChjZWxsdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwdWJsaWMgcXVlcnlEYXRhKGNlbGx2YWx1ZSwgcGFyZW50SXRlbT86IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kYXRhU2VydmljZSB8fCAhKHRoaXMucXVlcnlNZXRob2QgaW4gdGhpcy5kYXRhU2VydmljZSkgfHwgIXRoaXMuZW50aXR5KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1NlcnZpY2Ugbm90IHByb3Blcmx5IGNvbmZpZ3VyZWQhIGFib3J0aW5nIHF1ZXJ5Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZpbHRlciA9IFNlcnZpY2VVdGlscy5nZXRGaWx0ZXJVc2luZ1BhcmVudEtleXMocGFyZW50SXRlbSwgdGhpcy5fcEtleXNFcXVpdik7XG4gICAgY29uc3QgdGFibGVDb2xBbGlhcyA9IE9iamVjdC5rZXlzKHRoaXMuX3BLZXlzRXF1aXYpLmZpbmQoa2V5ID0+IHRoaXMuX3BLZXlzRXF1aXZba2V5XSA9PT0gdGhpcy5jb2x1bW4pO1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0YWJsZUNvbEFsaWFzKSkge1xuICAgICAgaWYgKCFmaWx0ZXJbdGFibGVDb2xBbGlhc10pIHtcbiAgICAgICAgZmlsdGVyW3RhYmxlQ29sQWxpYXNdID0gY2VsbHZhbHVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWx0ZXJbdGhpcy5jb2x1bW5dID0gY2VsbHZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBxdWVyeUFyZ3VtZW50cyA9IHRoaXMuZ2V0UXVlcnlBcmd1bWVudHMoZmlsdGVyKTtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlW3RoaXMucXVlcnlNZXRob2RdKC4uLnRoaXMuZGF0YVNlcnZpY2UucmVxdWVzdEFyZ3VtZW50QWRhcHRlci5wYXJzZVF1ZXJ5UGFyYW1ldGVycyhxdWVyeUFyZ3VtZW50cykpXG4gICAgICAuc3Vic2NyaWJlKChyZXNwOiBTZXJ2aWNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3AuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICAgICAgICBsZXQgcmVzcERhdGE7XG4gICAgICAgICAgaWYgKFV0aWwuaXNBcnJheShyZXNwLmRhdGEpKSB7XG4gICAgICAgICAgICByZXNwRGF0YSA9IHJlc3AuZGF0YVswXTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFV0aWwuaXNPYmplY3QocmVzcC5kYXRhKSAmJiBPYmplY3Qua2V5cyhyZXNwLmRhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJlc3BEYXRhID0gcmVzcC5kYXRhO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvbXBvbmVudCBoYXMgcmVjZWl2ZWQgbm90IHN1cHBvcnRlZCBzZXJ2aWNlIGRhdGEuIFN1cHBvcnRlZCBkYXRhIGFyZSBBcnJheSBvciBPYmplY3QnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQocmVzcERhdGEpKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3BvbnNlTWFwW2NlbGx2YWx1ZV0gPSByZXNwRGF0YVt0aGlzLnZhbHVlQ29sdW1uXTtcbiAgICAgICAgICAgIHRoaXMub25EYXRhTG9hZGVkLmVtaXQodGhpcy5yZXNwb25zZU1hcFtjZWxsdmFsdWVdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKGVyciAmJiB0eXBlb2YgZXJyICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5hbGVydCgnRVJST1InLCBlcnIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5hbGVydCgnRVJST1InLCAnTUVTU0FHRVMuRVJST1JfUVVFUlknKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBnZXRRdWVyeUFyZ3VtZW50cyhmaWx0ZXI6IHt9KTogYW55IHtcbiAgICBjb25zdCBzcWxUeXBlcyA9IHRoaXMuZ2V0U3FsVHlwZXNGb3JGaWx0ZXIoZmlsdGVyKTtcblxuICAgIHJldHVybiB7XG4gICAgICBmaWx0ZXI6IGZpbHRlcixcbiAgICAgIGNvbHVtbnM6IHRoaXMuY29sQXJyYXksXG4gICAgICBlbnRpdHk6IHRoaXMuZW50aXR5LFxuICAgICAgc3FsVHlwZXM6IHNxbFR5cGVzXG4gICAgfTtcbiAgfVxuXG4gIGdldFNxbFR5cGVzRm9yRmlsdGVyKGZpbHRlcjogT2JqZWN0KSB7XG4gICAgY29uc3Qgc3FsVHlwZSA9IHt9O1xuICAgIGNvbnN0IHRhYmxlU3FsVHlwZXMgPSB0aGlzLnRhYmxlLmdldFNxbFR5cGVzKCk7XG5cbiAgICBPYmplY3Qua2V5cyhmaWx0ZXIpLmZvckVhY2goZmlsdGVyS2V5ID0+IHtcbiAgICAgIGNvbnN0IHBLZXlFcXVpdiA9IE9iamVjdC5rZXlzKHRoaXMuX3BLZXlzRXF1aXYpLmZpbmQoa2V5RXF1aXYgPT4ga2V5RXF1aXYgPT09IGZpbHRlcktleSk7XG4gICAgICBjb25zdCBrZXlFcXVpdiA9IFV0aWwuaXNEZWZpbmVkKHBLZXlFcXVpdikgPyB0aGlzLl9wS2V5c0VxdWl2W3BLZXlFcXVpdl0gOiBmaWx0ZXJLZXk7XG4gICAgICBzcWxUeXBlW2ZpbHRlcktleV0gPSB0YWJsZVNxbFR5cGVzW2tleUVxdWl2XVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNxbFR5cGU7XG4gIH1cbiAgcHVibGljIGNvbmZpZ3VyZVNlcnZpY2UoKTogdm9pZCB7XG4gICAgbGV0IGNvbmZpZ3VyZVNlcnZpY2VBcmdzOiBPQ29uZmlndXJlU2VydmljZUFyZ3MgPSB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yLCBiYXNlU2VydmljZTogT250aW1pemVTZXJ2aWNlLCBlbnRpdHk6IHRoaXMuZW50aXR5LCBzZXJ2aWNlOiB0aGlzLnNlcnZpY2UsIHNlcnZpY2VUeXBlOiB0aGlzLnNlcnZpY2VUeXBlIH1cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5jb25maWd1cmVTZXJ2aWNlQXJncykpIHtcbiAgICAgIGNvbmZpZ3VyZVNlcnZpY2VBcmdzID0geyAuLi5jb25maWd1cmVTZXJ2aWNlQXJncywgLi4udGhpcy5jb25maWd1cmVTZXJ2aWNlQXJncyB9O1xuICAgIH1cbiAgICB0aGlzLmRhdGFTZXJ2aWNlID0gRmFjdG9yeVV0aWwuY29uZmlndXJlU2VydmljZShjb25maWd1cmVTZXJ2aWNlQXJncyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2VsbERhdGEoY2VsbHZhbHVlOiBhbnksIHJvd3ZhbHVlPzogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZU1hcFtjZWxsdmFsdWVdO1xuICB9XG5cbiAgcHVibGljIGdldEZpbHRlckV4cHJlc3Npb24ocXVpY2tGaWx0ZXI6IHN0cmluZyk6IEV4cHJlc3Npb24ge1xuICAgIGNvbnN0IG9Db2w6IE9Db2x1bW4gPSB0aGlzLnRhYmxlLmdldE9Db2x1bW4odGhpcy5jb2x1bW4pO1xuICAgIGxldCByZXN1bHQ6IEV4cHJlc3Npb247XG4gICAgbGV0IGNhY2hlVmFsdWUgPSBPYmplY3Qua2V5cyh0aGlzLnJlc3BvbnNlTWFwKS5maW5kKGtleSA9PiBVdGlsLm5vcm1hbGl6ZVN0cmluZyh0aGlzLnJlc3BvbnNlTWFwW2tleV0pLmluZGV4T2YoVXRpbC5ub3JtYWxpemVTdHJpbmcocXVpY2tGaWx0ZXIpKSAhPT0gLTEpO1xuICAgIGlmIChjYWNoZVZhbHVlKSB7XG4gICAgICBjYWNoZVZhbHVlID0gdGhpcy5wYXJzZUJ5VmFsdWVDb2x1bW5UeXBlKGNhY2hlVmFsdWUpO1xuICAgICAgcmVzdWx0ID0gRmlsdGVyRXhwcmVzc2lvblV0aWxzLmJ1aWxkRXhwcmVzc2lvbkVxdWFscyh0aGlzLmNvbHVtbiwgU1FMVHlwZXMucGFyc2VVc2luZ1NRTFR5cGUoY2FjaGVWYWx1ZSwgU1FMVHlwZXMuZ2V0U1FMVHlwZUtleShvQ29sLnNxbFR5cGUpKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29tcG9uZW50UGlwZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFBpcGUgPSBuZXcgT1RyYW5zbGF0ZVBpcGUodGhpcy5pbmplY3Rvcik7XG4gIH1cblxuICBwdWJsaWMgcmVzcG9uc2VWYWx1ZShjZWxsdmFsdWU6IGFueSwgcm93dmFsdWU/OiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnRyYW5zbGF0ZSkge1xuICAgICAgdGhpcy5waXBlQXJndW1lbnRzID0gdGhpcy50cmFuc2xhdGVBcmdzRm4gPyB7IHZhbHVlczogdGhpcy50cmFuc2xhdGVBcmdzRm4ocm93dmFsdWUpIH0gOiB7fTtcbiAgICAgIHJldHVybiBzdXBlci5nZXRDZWxsRGF0YShjZWxsdmFsdWUsIHJvd3ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNlbGx2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VCeVZhbHVlQ29sdW1uVHlwZSh2YWw6IGFueSkge1xuICAgIGxldCB2YWx1ZSA9IHZhbDtcblxuICAgIGlmICh0aGlzLnZhbHVlQ29sdW1uVHlwZSA9PT0gQ29kZXMuVFlQRV9JTlQpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgICBpZiAoIWlzTmFOKHBhcnNlZCkpIHtcbiAgICAgICAgdmFsdWUgPSBwYXJzZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBRdWVyeWluZyBhbGwgZW50aXR5IHJlY29yZHMgdG8gaGF2ZSB0aGUgcmVzcG9uc2VNYXAgZnVsbHkgZmlsbGVkICovXG4gIHF1ZXJ5QWxsRGF0YSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBpZiAoIXRoaXMuZGF0YVNlcnZpY2UgfHwgISh0aGlzLnF1ZXJ5TWV0aG9kIGluIHRoaXMuZGF0YVNlcnZpY2UpIHx8ICF0aGlzLmVudGl0eSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1NlcnZpY2Ugbm90IHByb3Blcmx5IGNvbmZpZ3VyZWQhIGFib3J0aW5nIHF1ZXJ5Jyk7XG4gICAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnlBcmd1bWVudHMgPSB0aGlzLmdldFF1ZXJ5QXJndW1lbnRzKHt9KTtcblxuICAgICAgdGhpcy5kYXRhU2VydmljZVt0aGlzLnF1ZXJ5TWV0aG9kXSguLi50aGlzLmRhdGFTZXJ2aWNlLnJlcXVlc3RBcmd1bWVudEFkYXB0ZXIucGFyc2VRdWVyeVBhcmFtZXRlcnMocXVlcnlBcmd1bWVudHMpKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXNwOiBTZXJ2aWNlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcC5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgICAgICAgbGV0IHJlc3BEYXRhID0gW107XG4gICAgICAgICAgICBpZiAoVXRpbC5pc0FycmF5KHJlc3AuZGF0YSkpIHtcbiAgICAgICAgICAgICAgcmVzcERhdGEgPSByZXNwLmRhdGE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFV0aWwuaXNPYmplY3QocmVzcC5kYXRhKSAmJiBPYmplY3Qua2V5cyhyZXNwLmRhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgcmVzcERhdGEgPSBbcmVzcC5kYXRhXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignQ29tcG9uZW50IGhhcyByZWNlaXZlZCBub3Qgc3VwcG9ydGVkIHNlcnZpY2UgZGF0YS4gU3VwcG9ydGVkIGRhdGEgYXJlIEFycmF5IG9yIE9iamVjdCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXNwRGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQoaXRlbVt0aGlzLmNvbHVtbl0pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jZWxsVmFsdWVzLnB1c2goaXRlbVt0aGlzLmNvbHVtbl0pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VNYXBbaXRlbVt0aGlzLmNvbHVtbl1dID0gaXRlbVt0aGlzLnZhbHVlQ29sdW1uXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm9uRGF0YUxvYWRlZC5lbWl0KHRoaXMucmVzcG9uc2VNYXApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvYnNlcnZlci5uZXh0KCk7XG4gICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVyZWYgbGV0LWNlbGx2YWx1ZT1cImNlbGx2YWx1ZVwiIGxldC1yb3d2YWx1ZT1cInJvd3ZhbHVlXCI+XG4gIHt7IGdldERlc2NyaXB0aW9uVmFsdWUoY2VsbHZhbHVlLCByb3d2YWx1ZSkgfX17eyByZXNwb25zZVZhbHVlKHJlc3BvbnNlTWFwW2NlbGx2YWx1ZV0pIH19XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -29,13 +29,13 @@ export class OTableCellRendererTimeComponent extends OBaseTableCellRenderer {
29
29
  };
30
30
  }
31
31
  }
32
- OTableCellRendererTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellRendererTimeComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
33
- OTableCellRendererTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableCellRendererTimeComponent, selector: "o-table-cell-renderer-time", inputs: { format: "format" }, viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\">\n {{getCellData(cellvalue)}}\n</ng-template>", changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellRendererTimeComponent, decorators: [{
32
+ OTableCellRendererTimeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellRendererTimeComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
33
+ OTableCellRendererTimeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableCellRendererTimeComponent, selector: "o-table-cell-renderer-time", inputs: { format: "format" }, viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\">\n {{getCellData(cellvalue)}}\n</ng-template>", changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellRendererTimeComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{ selector: 'o-table-cell-renderer-time', changeDetection: ChangeDetectionStrategy.OnPush, inputs: DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_TIME, template: "<ng-template #templateref let-cellvalue=\"cellvalue\">\n {{getCellData(cellvalue)}}\n</ng-template>" }]
37
37
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { templateref: [{
38
38
  type: ViewChild,
39
39
  args: ['templateref', { read: TemplateRef, static: true }]
40
40
  }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLXJlbmRlcmVyLXRpbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvY29sdW1uL2NlbGwtcmVuZGVyZXIvdGltZS9vLXRhYmxlLWNlbGwtcmVuZGVyZXItdGltZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci90aW1lL28tdGFibGUtY2VsbC1yZW5kZXJlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUF1QixXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBRTdFLE1BQU0sQ0FBQyxNQUFNLHlDQUF5QyxHQUFHO0lBQ3ZELFFBQVE7Q0FDVCxDQUFDO0FBUUYsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLHNCQUFzQjtJQVV6RSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTDlCLFlBQU8sR0FBVyxXQUFXLENBQUM7UUFPdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFhO1FBQ3RCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztTQUN0QjtJQUNILENBQUM7SUFDRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsVUFBVTtRQUNSLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztTQUNyQixDQUFDO0lBQ0osQ0FBQzs7NEhBOUJVLCtCQUErQjtnSEFBL0IsK0JBQStCLHVMQVFSLFdBQVcsa0VDeEIvQyx1R0FFYzsyRkRjRCwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUVyQix1QkFBdUIsQ0FBQyxNQUFNLFVBQ3ZDLHlDQUF5QzsrRkFVcUIsV0FBVztzQkFBaEYsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElNb21lbnRQaXBlQXJndW1lbnQsIE9Nb21lbnRQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcGlwZXMvby1tb21lbnQucGlwZSc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9CYXNlVGFibGVDZWxsUmVuZGVyZXIgfSBmcm9tICcuLi9vLWJhc2UtdGFibGUtY2VsbC1yZW5kZXJlci5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfVElNRSA9IFtcbiAgJ2Zvcm1hdCdcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tdGFibGUtY2VsbC1yZW5kZXJlci10aW1lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1yZW5kZXJlci10aW1lLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DRUxMX1JFTkRFUkVSX1RJTUVcbn0pXG5leHBvcnQgY2xhc3MgT1RhYmxlQ2VsbFJlbmRlcmVyVGltZUNvbXBvbmVudCBleHRlbmRzIE9CYXNlVGFibGVDZWxsUmVuZGVyZXIgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByb3RlY3RlZCBjb21wb25lbnRQaXBlOiBPTW9tZW50UGlwZTtcbiAgcHJvdGVjdGVkIHBpcGVBcmd1bWVudHM6IElNb21lbnRQaXBlQXJndW1lbnQ7XG5cbiAgcHJvdGVjdGVkIF9mb3JtYXQ6IHN0cmluZyA9ICdMIEhIOm1tIGEnO1xuICBwcm90ZWN0ZWQgbG9jYWxlOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVyZWYnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgcHVibGljIHRlbXBsYXRlcmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy50YWJsZUNvbHVtbi50eXBlID0gJ3RpbWUnO1xuICAgIHRoaXMuc2V0Q29tcG9uZW50UGlwZSgpO1xuICB9XG5cbiAgc2V0IGZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHZhbHVlKSkge1xuICAgICAgdGhpcy5fZm9ybWF0ID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHNldENvbXBvbmVudFBpcGUoKSB7XG4gICAgdGhpcy5jb21wb25lbnRQaXBlID0gbmV3IE9Nb21lbnRQaXBlKHRoaXMuaW5qZWN0b3IpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgdGhpcy5waXBlQXJndW1lbnRzID0ge1xuICAgICAgZm9ybWF0OiB0aGlzLl9mb3JtYXRcbiAgICB9O1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlcmVmIGxldC1jZWxsdmFsdWU9XCJjZWxsdmFsdWVcIj5cbiAgIHt7Z2V0Q2VsbERhdGEoY2VsbHZhbHVlKX19XG48L25nLXRlbXBsYXRlPiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLXJlbmRlcmVyLXRpbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvY29sdW1uL2NlbGwtcmVuZGVyZXIvdGltZS9vLXRhYmxlLWNlbGwtcmVuZGVyZXItdGltZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci90aW1lL28tdGFibGUtY2VsbC1yZW5kZXJlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUF1QixXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBRTdFLE1BQU0sQ0FBQyxNQUFNLHlDQUF5QyxHQUFHO0lBQ3ZELFFBQVE7Q0FDVCxDQUFDO0FBUUYsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLHNCQUFzQjtJQVV6RSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTDlCLFlBQU8sR0FBVyxXQUFXLENBQUM7UUFPdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFhO1FBQ3RCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztTQUN0QjtJQUNILENBQUM7SUFDRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsVUFBVTtRQUNSLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztTQUNyQixDQUFDO0lBQ0osQ0FBQzs7NkhBOUJVLCtCQUErQjtpSEFBL0IsK0JBQStCLHVMQVFSLFdBQVcsa0VDeEIvQyx1R0FFYzs0RkRjRCwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUVyQix1QkFBdUIsQ0FBQyxNQUFNLFVBQ3ZDLHlDQUF5QzsrRkFVcUIsV0FBVztzQkFBaEYsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElNb21lbnRQaXBlQXJndW1lbnQsIE9Nb21lbnRQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcGlwZXMvby1tb21lbnQucGlwZSc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9CYXNlVGFibGVDZWxsUmVuZGVyZXIgfSBmcm9tICcuLi9vLWJhc2UtdGFibGUtY2VsbC1yZW5kZXJlci5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfVElNRSA9IFtcbiAgJ2Zvcm1hdCdcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tdGFibGUtY2VsbC1yZW5kZXJlci10aW1lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1yZW5kZXJlci10aW1lLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DRUxMX1JFTkRFUkVSX1RJTUVcbn0pXG5leHBvcnQgY2xhc3MgT1RhYmxlQ2VsbFJlbmRlcmVyVGltZUNvbXBvbmVudCBleHRlbmRzIE9CYXNlVGFibGVDZWxsUmVuZGVyZXIgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByb3RlY3RlZCBjb21wb25lbnRQaXBlOiBPTW9tZW50UGlwZTtcbiAgcHJvdGVjdGVkIHBpcGVBcmd1bWVudHM6IElNb21lbnRQaXBlQXJndW1lbnQ7XG5cbiAgcHJvdGVjdGVkIF9mb3JtYXQ6IHN0cmluZyA9ICdMIEhIOm1tIGEnO1xuICBwcm90ZWN0ZWQgbG9jYWxlOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVyZWYnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgcHVibGljIHRlbXBsYXRlcmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy50YWJsZUNvbHVtbi50eXBlID0gJ3RpbWUnO1xuICAgIHRoaXMuc2V0Q29tcG9uZW50UGlwZSgpO1xuICB9XG5cbiAgc2V0IGZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHZhbHVlKSkge1xuICAgICAgdGhpcy5fZm9ybWF0ID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHNldENvbXBvbmVudFBpcGUoKSB7XG4gICAgdGhpcy5jb21wb25lbnRQaXBlID0gbmV3IE9Nb21lbnRQaXBlKHRoaXMuaW5qZWN0b3IpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZSgpIHtcbiAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgdGhpcy5waXBlQXJndW1lbnRzID0ge1xuICAgICAgZm9ybWF0OiB0aGlzLl9mb3JtYXRcbiAgICB9O1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlcmVmIGxldC1jZWxsdmFsdWU9XCJjZWxsdmFsdWVcIj5cbiAgIHt7Z2V0Q2VsbERhdGEoY2VsbHZhbHVlKX19XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -21,13 +21,13 @@ export class OTableCellRendererTranslateComponent extends OBaseTableCellRenderer
21
21
  return super.getCellData(cellvalue, rowvalue);
22
22
  }
23
23
  }
24
- OTableCellRendererTranslateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellRendererTranslateComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
25
- OTableCellRendererTranslateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableCellRendererTranslateComponent, selector: "o-table-cell-renderer-translate", inputs: { translateArgsFn: ["translate-params", "translateArgsFn"] }, viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n {{ getCellData(cellvalue, rowvalue) }}\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableCellRendererTranslateComponent, decorators: [{
24
+ OTableCellRendererTranslateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellRendererTranslateComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
25
+ OTableCellRendererTranslateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableCellRendererTranslateComponent, selector: "o-table-cell-renderer-translate", inputs: { translateArgsFn: ["translate-params", "translateArgsFn"] }, viewQueries: [{ propertyName: "templateref", first: true, predicate: ["templateref"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n {{ getCellData(cellvalue, rowvalue) }}\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableCellRendererTranslateComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{ selector: 'o-table-cell-renderer-translate', changeDetection: ChangeDetectionStrategy.OnPush, inputs: DEFAULT_INPUTS_O_TABLE_CELL_RENDERER_TRANSLATE, template: "<ng-template #templateref let-cellvalue=\"cellvalue\" let-rowvalue=\"rowvalue\">\n {{ getCellData(cellvalue, rowvalue) }}\n</ng-template>\n" }]
29
29
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { templateref: [{
30
30
  type: ViewChild,
31
31
  args: ['templateref', { read: TemplateRef, static: true }]
32
32
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLXJlbmRlcmVyLXRyYW5zbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci90cmFuc2xhdGUvby10YWJsZS1jZWxsLXJlbmRlcmVyLXRyYW5zbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci90cmFuc2xhdGUvby10YWJsZS1jZWxsLXJlbmRlcmVyLXRyYW5zbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJHLE9BQU8sRUFBMEIsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBRTdFLE1BQU0sQ0FBQyxNQUFNLDhDQUE4QyxHQUFHO0lBRTVELG1DQUFtQztDQUNwQyxDQUFDO0FBUUYsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLHNCQUFzQjtJQVU5RSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRjlCLGtCQUFhLEdBQTJCLEVBQUUsQ0FBQztRQUtuRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7UUFFcEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQWMsRUFBRSxRQUFjO1FBQy9DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUYsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDOztpSUF6QlUsb0NBQW9DO3FIQUFwQyxvQ0FBb0Msb09BRWIsV0FBVyxrRUNsQi9DLDhJQUdBOzJGRGFhLG9DQUFvQztrQkFOaEQsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRTFCLHVCQUF1QixDQUFDLE1BQU0sVUFDdkMsOENBQThDOytGQUsvQyxXQUFXO3NCQURqQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdG9yLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElUcmFuc2xhdGVQaXBlQXJndW1lbnQsIE9UcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcGlwZXMvby10cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBPQmFzZVRhYmxlQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi4vby1iYXNlLXRhYmxlLWNlbGwtcmVuZGVyZXIuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DRUxMX1JFTkRFUkVSX1RSQU5TTEFURSA9IFtcbiAgLy8gdHJhbnNsYXRlLXBhcmFtcyBbKHJvd0RhdGE6IGFueSkgPT4gYW55W11dOiBmdW5jdGlvbiB0aGF0IHJlY2VpdmVzIHRoZSByb3cgZGF0YSBhbmQgcmV0dXJuIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgdHJhbnNsYXRlIHBpcGUuXG4gICd0cmFuc2xhdGVBcmdzRm46IHRyYW5zbGF0ZS1wYXJhbXMnXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLWNlbGwtcmVuZGVyZXItdHJhbnNsYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1yZW5kZXJlci10cmFuc2xhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfVFJBTlNMQVRFXG59KVxuZXhwb3J0IGNsYXNzIE9UYWJsZUNlbGxSZW5kZXJlclRyYW5zbGF0ZUNvbXBvbmVudCBleHRlbmRzIE9CYXNlVGFibGVDZWxsUmVuZGVyZXIge1xuXG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlcmVmJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyB0ZW1wbGF0ZXJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgdHJhbnNsYXRlQXJnc0ZuOiAocm93RGF0YTogYW55KSA9PiBhbnlbXTtcblxuICBwcm90ZWN0ZWQgY29tcG9uZW50UGlwZTogT1RyYW5zbGF0ZVBpcGU7XG4gIHByb3RlY3RlZCBwaXBlQXJndW1lbnRzOiBJVHJhbnNsYXRlUGlwZUFyZ3VtZW50ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHN1cGVyKGluamVjdG9yKTtcblxuICAgIHRoaXMudGFibGVDb2x1bW4udHlwZSA9ICd0cmFuc2xhdGUnO1xuXG4gICAgdGhpcy5zZXRDb21wb25lbnRQaXBlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29tcG9uZW50UGlwZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFBpcGUgPSBuZXcgT1RyYW5zbGF0ZVBpcGUodGhpcy5pbmplY3Rvcik7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2VsbERhdGEoY2VsbHZhbHVlOiBhbnksIHJvd3ZhbHVlPzogYW55KTogc3RyaW5nIHtcbiAgICB0aGlzLnBpcGVBcmd1bWVudHMgPSB0aGlzLnRyYW5zbGF0ZUFyZ3NGbiA/IHsgdmFsdWVzOiB0aGlzLnRyYW5zbGF0ZUFyZ3NGbihyb3d2YWx1ZSkgfSA6IHt9O1xuICAgIHJldHVybiBzdXBlci5nZXRDZWxsRGF0YShjZWxsdmFsdWUsIHJvd3ZhbHVlKTtcbiAgfVxuXG59XG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlcmVmIGxldC1jZWxsdmFsdWU9XCJjZWxsdmFsdWVcIiBsZXQtcm93dmFsdWU9XCJyb3d2YWx1ZVwiPlxuICB7eyBnZXRDZWxsRGF0YShjZWxsdmFsdWUsIHJvd3ZhbHVlKSB9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jZWxsLXJlbmRlcmVyLXRyYW5zbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci90cmFuc2xhdGUvby10YWJsZS1jZWxsLXJlbmRlcmVyLXRyYW5zbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9jb2x1bW4vY2VsbC1yZW5kZXJlci90cmFuc2xhdGUvby10YWJsZS1jZWxsLXJlbmRlcmVyLXRyYW5zbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJHLE9BQU8sRUFBMEIsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBRTdFLE1BQU0sQ0FBQyxNQUFNLDhDQUE4QyxHQUFHO0lBRTVELG1DQUFtQztDQUNwQyxDQUFDO0FBUUYsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLHNCQUFzQjtJQVU5RSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFESSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRjlCLGtCQUFhLEdBQTJCLEVBQUUsQ0FBQztRQUtuRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7UUFFcEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQWMsRUFBRSxRQUFjO1FBQy9DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUYsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRCxDQUFDOztrSUF6QlUsb0NBQW9DO3NIQUFwQyxvQ0FBb0Msb09BRWIsV0FBVyxrRUNsQi9DLDhJQUdBOzRGRGFhLG9DQUFvQztrQkFOaEQsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRTFCLHVCQUF1QixDQUFDLE1BQU0sVUFDdkMsOENBQThDOytGQUsvQyxXQUFXO3NCQURqQixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdG9yLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElUcmFuc2xhdGVQaXBlQXJndW1lbnQsIE9UcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcGlwZXMvby10cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBPQmFzZVRhYmxlQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi4vby1iYXNlLXRhYmxlLWNlbGwtcmVuZGVyZXIuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DRUxMX1JFTkRFUkVSX1RSQU5TTEFURSA9IFtcbiAgLy8gdHJhbnNsYXRlLXBhcmFtcyBbKHJvd0RhdGE6IGFueSkgPT4gYW55W11dOiBmdW5jdGlvbiB0aGF0IHJlY2VpdmVzIHRoZSByb3cgZGF0YSBhbmQgcmV0dXJuIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgdHJhbnNsYXRlIHBpcGUuXG4gICd0cmFuc2xhdGVBcmdzRm46IHRyYW5zbGF0ZS1wYXJhbXMnXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXRhYmxlLWNlbGwtcmVuZGVyZXItdHJhbnNsYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY2VsbC1yZW5kZXJlci10cmFuc2xhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX1RBQkxFX0NFTExfUkVOREVSRVJfVFJBTlNMQVRFXG59KVxuZXhwb3J0IGNsYXNzIE9UYWJsZUNlbGxSZW5kZXJlclRyYW5zbGF0ZUNvbXBvbmVudCBleHRlbmRzIE9CYXNlVGFibGVDZWxsUmVuZGVyZXIge1xuXG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlcmVmJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyB0ZW1wbGF0ZXJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgdHJhbnNsYXRlQXJnc0ZuOiAocm93RGF0YTogYW55KSA9PiBhbnlbXTtcblxuICBwcm90ZWN0ZWQgY29tcG9uZW50UGlwZTogT1RyYW5zbGF0ZVBpcGU7XG4gIHByb3RlY3RlZCBwaXBlQXJndW1lbnRzOiBJVHJhbnNsYXRlUGlwZUFyZ3VtZW50ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHN1cGVyKGluamVjdG9yKTtcblxuICAgIHRoaXMudGFibGVDb2x1bW4udHlwZSA9ICd0cmFuc2xhdGUnO1xuXG4gICAgdGhpcy5zZXRDb21wb25lbnRQaXBlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29tcG9uZW50UGlwZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFBpcGUgPSBuZXcgT1RyYW5zbGF0ZVBpcGUodGhpcy5pbmplY3Rvcik7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2VsbERhdGEoY2VsbHZhbHVlOiBhbnksIHJvd3ZhbHVlPzogYW55KTogc3RyaW5nIHtcbiAgICB0aGlzLnBpcGVBcmd1bWVudHMgPSB0aGlzLnRyYW5zbGF0ZUFyZ3NGbiA/IHsgdmFsdWVzOiB0aGlzLnRyYW5zbGF0ZUFyZ3NGbihyb3d2YWx1ZSkgfSA6IHt9O1xuICAgIHJldHVybiBzdXBlci5nZXRDZWxsRGF0YShjZWxsdmFsdWUsIHJvd3ZhbHVlKTtcbiAgfVxuXG59XG4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlcmVmIGxldC1jZWxsdmFsdWU9XCJjZWxsdmFsdWVcIiBsZXQtcm93dmFsdWU9XCJyb3d2YWx1ZVwiPlxuICB7eyBnZXRDZWxsRGF0YShjZWxsdmFsdWUsIHJvd3ZhbHVlKSB9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -364,8 +364,8 @@ export class OTableColumnComponent {
364
364
  return this._filterSource;
365
365
  }
366
366
  }
367
- OTableColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableColumnComponent, deps: [{ token: forwardRef(() => OTableComponent) }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
368
- OTableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OTableColumnComponent, selector: "o-table-column", inputs: { attr: "attr", title: "title", titleAlign: ["title-align", "titleAlign"], contentAlign: ["content-align", "contentAlign"], orderable: "orderable", searchable: "searchable", groupable: "groupable", type: "type", editable: "editable", width: "width", minWidth: ["min-width", "minWidth"], maxWidth: ["max-width", "maxWidth"], asyncLoad: ["async-load", "asyncLoad"], sqlType: ["sql-type", "sqlType"], tooltip: "tooltip", tooltipValue: ["tooltip-value", "tooltipValue"], tooltipFunction: ["tooltip-function", "tooltipFunction"], multiline: "multiline", resizable: "resizable", filterExpressionFunction: ["filter-expression-function", "filterExpressionFunction"], class: "class", angularValidatorsFn: ["validators", "angularValidatorsFn"], angularValidatorsFnErrors: ["validators-errors", "angularValidatorsFnErrors"], angularAsyncValidatorsFn: ["async-validators", "angularAsyncValidatorsFn"], valueColumn: ["value-column", "valueColumn"], trueValue: ["true-value", "trueValue"], falseValue: ["false-value", "falseValue"], booleanType: ["boolean-type", "booleanType"], renderTrueValue: ["render-true-value", "renderTrueValue"], renderFalseValue: ["render-false-value", "renderFalseValue"], renderType: ["render-type", "renderType"], grouping: "grouping", thousandSeparator: ["thousand-separator", "thousandSeparator"], decimalSeparator: ["decimal-separator", "decimalSeparator"], minDecimalDigits: ["min-decimal-digits", "minDecimalDigits"], maxDecimalDigits: ["max-decimal-digits", "maxDecimalDigits"], currencySymbol: ["currency-symbol", "currencySymbol"], currencySymbolPosition: ["currency-symbol-position", "currencySymbolPosition"], format: "format", imageType: ["image-type", "imageType"], emptyImage: ["empty-image", "emptyImage"], avatar: "avatar", icon: "icon", svgIcon: ["svg-icon", "svgIcon"], action: "action", text: "text", iconPosition: ["icon-position", "iconPosition"], entity: "entity", service: "service", columns: "columns", translate: "translate", valueColumnType: ["value-column-type", "valueColumnType"], parentKeys: ["parent-keys", "parentKeys"], queryMethod: ["query-method", "queryMethod"], serviceType: ["service-type", "serviceType"], translateArgsFn: ["translate-params", "translateArgsFn"], configureServiceArgs: ["configure-service-args", "configureServiceArgs"], orequired: ["required", "orequired"], showPlaceHolder: ["show-placeholder", "showPlaceHolder"], olabel: ["label", "olabel"], updateRecordOnEdit: ["update-record-on-edit", "updateRecordOnEdit"], showNotificationOnEdit: ["show-notification-on-edit", "showNotificationOnEdit"], enabled: "enabled", min: "min", max: "max", step: "step", locale: "locale", oStartView: ["start-view", "oStartView"], oTouchUi: ["touch-ui", "oTouchUi"], startAt: ["start-at", "startAt"], filterDate: ["filter-date", "filterDate"], dateValueType: ["date-value-type", "dateValueType"], oDateFormat: ["date-format", "oDateFormat"], oDateLocale: ["date-locale", "oDateLocale"], oDateStartView: ["date-start-view", "oDateStartView"], oMinDate: ["date-min", "oMinDate"], oMaxDate: ["date-max", "oMaxDate"], oDateTouchUi: ["date-touch-ui", "oDateTouchUi"], oDateStartAt: ["date-start-at", "oDateStartAt"], oHourFormat: ["hour-format", "oHourFormat"], oHourMin: ["hour-min", "oHourMin"], oHourMax: ["hour-max", "oHourMax"], oHourPlaceholder: ["hour-placeholder", "oHourPlaceholder"], oDatePlaceholder: ["date-placeholder", "oDatePlaceholder"] }, outputs: { onClick: "onClick", onDataLoaded: "onDataLoaded", editionStarted: "editionStarted", editionCancelled: "editionCancelled", editionCommitted: "editionCommitted", onPostUpdateRecord: "onPostUpdateRecord" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<span #container>\n</span>", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
367
+ OTableColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableColumnComponent, deps: [{ token: forwardRef(() => OTableComponent) }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
368
+ OTableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OTableColumnComponent, selector: "o-table-column", inputs: { attr: "attr", title: "title", titleAlign: ["title-align", "titleAlign"], contentAlign: ["content-align", "contentAlign"], orderable: "orderable", searchable: "searchable", groupable: "groupable", type: "type", editable: "editable", width: "width", minWidth: ["min-width", "minWidth"], maxWidth: ["max-width", "maxWidth"], asyncLoad: ["async-load", "asyncLoad"], sqlType: ["sql-type", "sqlType"], tooltip: "tooltip", tooltipValue: ["tooltip-value", "tooltipValue"], tooltipFunction: ["tooltip-function", "tooltipFunction"], multiline: "multiline", resizable: "resizable", filterExpressionFunction: ["filter-expression-function", "filterExpressionFunction"], class: "class", angularValidatorsFn: ["validators", "angularValidatorsFn"], angularValidatorsFnErrors: ["validators-errors", "angularValidatorsFnErrors"], angularAsyncValidatorsFn: ["async-validators", "angularAsyncValidatorsFn"], valueColumn: ["value-column", "valueColumn"], trueValue: ["true-value", "trueValue"], falseValue: ["false-value", "falseValue"], booleanType: ["boolean-type", "booleanType"], renderTrueValue: ["render-true-value", "renderTrueValue"], renderFalseValue: ["render-false-value", "renderFalseValue"], renderType: ["render-type", "renderType"], grouping: "grouping", thousandSeparator: ["thousand-separator", "thousandSeparator"], decimalSeparator: ["decimal-separator", "decimalSeparator"], minDecimalDigits: ["min-decimal-digits", "minDecimalDigits"], maxDecimalDigits: ["max-decimal-digits", "maxDecimalDigits"], currencySymbol: ["currency-symbol", "currencySymbol"], currencySymbolPosition: ["currency-symbol-position", "currencySymbolPosition"], format: "format", imageType: ["image-type", "imageType"], emptyImage: ["empty-image", "emptyImage"], avatar: "avatar", icon: "icon", svgIcon: ["svg-icon", "svgIcon"], action: "action", text: "text", iconPosition: ["icon-position", "iconPosition"], entity: "entity", service: "service", columns: "columns", translate: "translate", valueColumnType: ["value-column-type", "valueColumnType"], parentKeys: ["parent-keys", "parentKeys"], queryMethod: ["query-method", "queryMethod"], serviceType: ["service-type", "serviceType"], translateArgsFn: ["translate-params", "translateArgsFn"], configureServiceArgs: ["configure-service-args", "configureServiceArgs"], orequired: ["required", "orequired"], showPlaceHolder: ["show-placeholder", "showPlaceHolder"], olabel: ["label", "olabel"], updateRecordOnEdit: ["update-record-on-edit", "updateRecordOnEdit"], showNotificationOnEdit: ["show-notification-on-edit", "showNotificationOnEdit"], enabled: "enabled", min: "min", max: "max", step: "step", locale: "locale", oStartView: ["start-view", "oStartView"], oTouchUi: ["touch-ui", "oTouchUi"], startAt: ["start-at", "startAt"], filterDate: ["filter-date", "filterDate"], dateValueType: ["date-value-type", "dateValueType"], oDateFormat: ["date-format", "oDateFormat"], oDateLocale: ["date-locale", "oDateLocale"], oDateStartView: ["date-start-view", "oDateStartView"], oMinDate: ["date-min", "oMinDate"], oMaxDate: ["date-max", "oMaxDate"], oDateTouchUi: ["date-touch-ui", "oDateTouchUi"], oDateStartAt: ["date-start-at", "oDateStartAt"], oHourFormat: ["hour-format", "oHourFormat"], oHourMin: ["hour-min", "oHourMin"], oHourMax: ["hour-max", "oHourMax"], oHourPlaceholder: ["hour-placeholder", "oHourPlaceholder"], oDatePlaceholder: ["date-placeholder", "oDatePlaceholder"] }, outputs: { onClick: "onClick", onDataLoaded: "onDataLoaded", editionStarted: "editionStarted", editionCancelled: "editionCancelled", editionCommitted: "editionCommitted", onPostUpdateRecord: "onPostUpdateRecord" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<span #container>\n</span>", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
369
369
  __decorate([
370
370
  BooleanInputConverter(),
371
371
  __metadata("design:type", Boolean)
@@ -430,7 +430,7 @@ __decorate([
430
430
  BooleanInputConverter(),
431
431
  __metadata("design:type", Boolean)
432
432
  ], OTableColumnComponent.prototype, "asyncLoad", void 0);
433
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableColumnComponent, decorators: [{
433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableColumnComponent, decorators: [{
434
434
  type: Component,
435
435
  args: [{ selector: 'o-table-column', changeDetection: ChangeDetectionStrategy.OnPush, inputs: DEFAULT_INPUTS_O_TABLE_COLUMN, outputs: DEFAULT_OUTPUTS_O_TABLE_COLUMN, template: "<span #container>\n</span>" }]
436
436
  }], ctorParameters: function () { return [{ type: i1.OTableComponent, decorators: [{
@@ -440,4 +440,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
440
440
  type: ViewChild,
441
441
  args: ['container', { read: ViewContainerRef, static: true }]
442
442
  }] } });
443
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvY29sdW1uL28tdGFibGUtY29sdW1uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9vLXRhYmxlLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUdSLFNBQVMsRUFDVCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU9sRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSwyQkFBMkIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSw4QkFBOEIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7QUFFaEksTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUc7SUFFM0MsTUFBTTtJQUdOLE9BQU87SUFHUCx5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REFDUztBQUVqQztJQUFDLHFCQUFxQixFQUFFOztpRUFDVztBQUNuQztJQUFDLHFCQUFxQixFQUFFOztxRUFDZ0I7QUFPeEM7SUFBQyxxQkFBcUIsRUFBRTs7dURBQ1k7QUFNcEM7SUFBQyxvQkFBb0IsRUFBRTs7a0RBQ1g7QUFDWjtJQUFDLG9CQUFvQixFQUFFOztrREFDWDtBQUNaO0lBQUMsb0JBQW9CLEVBQUU7O21EQUNWO0FBQ2I7SUFBQyxvQkFBb0IsRUFBRTs7K0RBQ007QUFDN0I7SUFBQyxvQkFBb0IsRUFBRTs7K0RBQ007QUFHN0I7SUFBQyxxQkFBcUIsRUFBRTs7a0VBQ2E7QUFDckM7SUFBQyxxQkFBcUIsRUFBRTs7eURBQ0o7QUFXcEI7SUFBQyxxQkFBcUIsRUFBRTs7d0RBQ0c7MkZBakpoQixxQkFBcUI7a0JBUmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sVUFDdkMsNkJBQTZCLFdBQzVCLDhCQUE4Qjs7MEJBMkpwQyxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7bUVBeklwQyxRQUFRLE1BS1IsT0FBTyxNQWdFSixTQUFTLE1BWVQsU0FBUyxNQUVuQixlQUFlLE1BR2Ysa0JBQWtCLE1BRWxCLHNCQUFzQixNQVFaLFFBQVEsTUFPbEIsR0FBRyxNQUVILEdBQUcsTUFFSCxJQUFJLE1BRUosZ0JBQWdCLE1BRWhCLGdCQUFnQixNQUloQixtQkFBbUIsTUFFbkIsVUFBVSxNQVlWLFNBQVMsTUFHVCxTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBc3luY1ZhbGlkYXRvckZuLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIsIE51bWJlcklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgT1RhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9vLXRhYmxlLWNvbHVtbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT1BlcmNlbnRhZ2VWYWx1ZUJhc2VUeXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvby1wZXJjZW50YWdlLnBpcGUnO1xuaW1wb3J0IHsgRGF0ZUZpbHRlckZ1bmN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvZGF0ZS1maWx0ZXItZnVuY3Rpb24udHlwZSc7XG5pbXBvcnQgeyBFcnJvckRhdGEgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9lcnJvci1kYXRhLnR5cGUnO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2V4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBPRGF0ZVZhbHVlVHlwZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL28tZGF0ZS12YWx1ZS50eXBlJztcbmltcG9ydCB7IENvZGVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9jb2Rlcyc7XG5pbXBvcnQgeyBTUUxUeXBlcyB9IGZyb20gJy4uLy4uLy4uL3V0aWwvc3FsdHlwZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9vLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBlZGl0b3JzTWFwcGluZywgT19UQUJMRV9DRUxMX0VESVRPUlNfSU5QVVRTLCBPX1RBQkxFX0NFTExfRURJVE9SU19PVVRQVVRTIH0gZnJvbSAnLi9jZWxsLWVkaXRvci9jZWxsLWVkaXRvcic7XG5pbXBvcnQgeyBPX1RBQkxFX0NFTExfUkVOREVSRVJTX0lOUFVUUywgT19UQUJMRV9DRUxMX1JFTkRFUkVSU19PVVRQVVRTLCByZW5kZXJlcnNNYXBwaW5nIH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyL2NlbGwtcmVuZGVyZXInO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DT0xVTU4gPSBbXG4gIC8vIGF0dHIgW3N0cmluZ106IGNvbHVtbiBuYW1lLlxuICAnYXR0cicsXG5cbiAgLy8gdGl0bGUgW3N0cmluZ106IGNvbHVtbiB0aXRsZS4gRGVmYXVsdDogbm8gdmFsdWUuXG4gICd0aXRsZScsXG5cbiAgLy8gdGl0bGUtYWxpZ24gW3N0YXJ0IHwgY2VudGVyIHwgZW5kXTogY29sdW1uIHRpdGxlIGFsaWdubWVudC4gRGVmYXVsdDogY2VudGVyLlxuICAndGl0bGVBbGlnbjogdGl0bGUtYWxpZ24nLFxuXG4gIC8vIGNvbnRlbnQtYWxpZ24gW3N0YXJ0IHwgY2VudGVyIHwgZW5kXTogY29sdW1uIGNvbnRlbnQgYWxpZ25tZW50LlxuICAnY29udGVudEFsaWduOiBjb250ZW50LWFsaWduJyxcblxuICAvLyBvcmRlcmFibGUgW25vfHllc106IGNvbHVtbiBjYW4gYmUgc29ydGVkLiBEZWZhdWx0OiB5ZXMuXG4gICdvcmRlcmFibGUnLFxuXG4gIC8vIHNlYXJjaGFibGUgW25vfHllc106IHNlYXJjaGluZ3MgYXJlIHBlcmZvcm1lZCBpbnRvIGNvbHVtbiBjb250ZW50LiBEZWZhdWx0OiB5ZXMuXG4gICdzZWFyY2hhYmxlJyxcblxuICAvLyBncm91cGFibGUgW25vfHllc3x0cnVlfGZhbHNlXTogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBjb2x1bW4gY2FuIGJlIGdyb3VwYWJsZVxuICAnZ3JvdXBhYmxlJyxcblxuICAvLyB0eXBlIFtib29sZWFufGludGVnZXJ8cmVhbHxjdXJyZW5jeXxkYXRlfGltYWdlXTogY29sdW1uIHR5cGUuIERlZmF1bHQ6IG5vIHZhbHVlIChzdHJpbmcpLlxuICAndHlwZScsXG5cbiAgLy8gZWRpdGFibGUgW25vfHllc106IGNvbHVtbiBjYW4gYmUgZWRpdGVkIGRpcmVjdGx5IG92ZXIgdGhlIHRhYmxlLiBEZWZhdWx0OiBuby5cbiAgJ2VkaXRhYmxlJyxcblxuICAnd2lkdGgnLFxuXG4gIC8vIG9ubHkgaW4gcGl4ZWxzXG4gICdtaW5XaWR0aDogbWluLXdpZHRoJyxcblxuICAvLyBvbmx5IGluIHBpeGVsc1xuICAnbWF4V2lkdGg6IG1heC13aWR0aCcsXG5cbiAgLy8gYXN5bmMtbG9hZCBbbm98eWVzfHRydWV8ZmFsc2VdOiBhc3luY2hyb25vdXMgcXVlcnkuIERlZmF1bHQ6IG5vXG4gICdhc3luY0xvYWQgOiBhc3luYy1sb2FkJyxcblxuICAvLyBzcWx0eXBlW3N0cmluZ106IERhdGEgdHlwZSBhY2NvcmRpbmcgdG8gSmF2YSBzdGFuZGFyZC4gU2VlIFNRTFR5cGUgY2xhc3MuIERlZmF1bHQ6ICdPVEhFUidcbiAgJ3NxbFR5cGU6IHNxbC10eXBlJyxcblxuICAndG9vbHRpcCcsXG5cbiAgJ3Rvb2x0aXBWYWx1ZTogdG9vbHRpcC12YWx1ZScsXG5cbiAgJ3Rvb2x0aXBGdW5jdGlvbjogdG9vbHRpcC1mdW5jdGlvbicsXG5cbiAgJ211bHRpbGluZScsXG5cbiAgJ3Jlc2l6YWJsZScsXG5cbiAgJ2ZpbHRlckV4cHJlc3Npb25GdW5jdGlvbjogZmlsdGVyLWV4cHJlc3Npb24tZnVuY3Rpb24nLFxuXG4gICdjbGFzcycsXG5cbiAgJ2FuZ3VsYXJWYWxpZGF0b3JzRm46IHZhbGlkYXRvcnMnLFxuXG4gICdhbmd1bGFyVmFsaWRhdG9yc0ZuRXJyb3JzOiB2YWxpZGF0b3JzLWVycm9ycycsXG5cbiAgJ2FuZ3VsYXJBc3luY1ZhbGlkYXRvcnNGbjogYXN5bmMtdmFsaWRhdG9ycycsXG4gICd2YWx1ZUNvbHVtbjogdmFsdWUtY29sdW1uJyxcblxuICAuLi5PX1RBQkxFX0NFTExfUkVOREVSRVJTX0lOUFVUUyxcbiAgLi4uT19UQUJMRV9DRUxMX0VESVRPUlNfSU5QVVRTXG5dO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRQVVRTX09fVEFCTEVfQ09MVU1OID0gW1xuICAuLi5PX1RBQkxFX0NFTExfUkVOREVSRVJTX09VVFBVVFMsXG4gIC4uLk9fVEFCTEVfQ0VMTF9FRElUT1JTX09VVFBVVFNcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tdGFibGUtY29sdW1uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vby10YWJsZS1jb2x1bW4uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DT0xVTU4sXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX1RBQkxFX0NPTFVNTixcbn0pXG5leHBvcnQgY2xhc3MgT1RhYmxlQ29sdW1uQ29tcG9uZW50IGltcGxlbWVudHMgT1RhYmxlQ29sdW1uLCBPbkRlc3Ryb3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyByZW5kZXJlcjogYW55O1xuICBwdWJsaWMgZWRpdG9yOiBhbnk7XG5cbiAgcHVibGljIHR5cGU6IHN0cmluZztcbiAgcHVibGljIGF0dHI6IHN0cmluZztcbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyB0aXRsZUFsaWduOiBzdHJpbmc7XG4gIHB1YmxpYyBjb250ZW50QWxpZ246ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnO1xuICBwdWJsaWMgc3FsVHlwZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX1NRTFR5cGU6IG51bWJlcjtcbiAgcHJvdGVjdGVkIF9vcmRlcmFibGU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfcmVzaXphYmxlOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX3NlYXJjaGFibGU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfZ3JvdXBhYmxlOiBib29sZWFuO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHVibGljIGVkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyB3aWR0aDogc3RyaW5nO1xuICBwdWJsaWMgbWluV2lkdGg6IHN0cmluZztcbiAgcHVibGljIG1heFdpZHRoOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgdG9vbHRpcDogYm9vbGVhbiA9IGZhbHNlO1xuICB0b29sdGlwVmFsdWU6IHN0cmluZztcbiAgdG9vbHRpcEZ1bmN0aW9uOiAocm93RGF0YTogYW55KSA9PiBhbnk7XG4gIHB1YmxpYyBjbGFzczogc3RyaW5nO1xuICBwdWJsaWMgdmFsdWVDb2x1bW46IHN0cmluZztcblxuICBzZXQgbXVsdGlsaW5lKHZhbDogYm9vbGVhbikge1xuICAgIHZhbCA9IFV0aWwucGFyc2VCb29sZWFuKFN0cmluZyh2YWwpKTtcbiAgICB0aGlzLl9tdWx0aWxpbmUgPSB2YWw7XG4gIH1cbiAgZ2V0IG11bHRpbGluZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlsaW5lO1xuICB9XG4gIHByb3RlY3RlZCBfbXVsdGlsaW5lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGFuZ3VsYXJWYWxpZGF0b3JzRm46IFZhbGlkYXRvckZuW10gPSBbXTtcbiAgcHVibGljIGFuZ3VsYXJWYWxpZGF0b3JzRm5FcnJvcnM6IEVycm9yRGF0YVtdID0gW107XG5cbiAgcHVibGljIGFuZ3VsYXJBc3luY1ZhbGlkYXRvcnNGbjogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XG5cbiAgZmlsdGVyRXhwcmVzc2lvbkZ1bmN0aW9uOiAoY29sdW1uQXR0cjogc3RyaW5nLCBxdWlja0ZpbHRlcj86IHN0cmluZykgPT4gRXhwcmVzc2lvbjtcblxuICAvKiBpbnB1dCByZW5kZXJlciBiYXNlICovXG4gIHB1YmxpYyBfZmlsdGVyU291cmNlOiAncmVuZGVyJyB8ICdkYXRhJyB8ICdib3RoJyA9ICdyZW5kZXInO1xuICBwdWJsaWMgZmlsdGVyRnVuY3Rpb246IChjZWxsVmFsdWU6IGFueSwgcm93VmFsdWU6IGFueSwgcXVpY2tGaWx0ZXI/OiBzdHJpbmcpID0+IGJvb2xlYW47XG4gIC8qIGlucHV0IHJlbmRlcmVyIGRhdGUgKi9cbiAgcHJvdGVjdGVkIGZvcm1hdDogc3RyaW5nO1xuICAvKiBpbnB1dCByZW5kZXJlciBpbnRlZ2VyICovXG4gIHByb3RlY3RlZCBncm91cGluZzogYW55ID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIHRob3VzYW5kU2VwYXJhdG9yOiBzdHJpbmcgPSAnLCc7XG4gIC8qIGlucHV0IHJlbmRlcmVyIHJlYWwgKi9cbiAgcHJvdGVjdGVkIGRlY2ltYWxTZXBhcmF0b3I6IHN0cmluZyA9ICcuJztcblxuICAvKiBpbnB1dCByZW5kZXJlciBjdXJyZW5jeSAqL1xuICBwcm90ZWN0ZWQgY3VycmVuY3lTeW1ib2w6IHN0cmluZztcbiAgcHJvdGVjdGVkIGN1cnJlbmN5U3ltYm9sUG9zaXRpb246IHN0cmluZztcblxuICAvKiBpbnB1dCByZW5kZXJlciBib29sZWFuICovXG4gIHByb3RlY3RlZCB0cnVlVmFsdWU6IGFueTtcbiAgcHJvdGVjdGVkIGZhbHNlVmFsdWU6IGFueTtcbiAgcHJvdGVjdGVkIHJlbmRlclRydWVWYWx1ZTogYW55O1xuICBwcm90ZWN0ZWQgcmVuZGVyRmFsc2VWYWx1ZTogYW55O1xuICBwcm90ZWN0ZWQgcmVuZGVyVHlwZTogc3RyaW5nID0gJ3N0cmluZyc7XG4gIHByb3RlY3RlZCBib29sZWFuVHlwZTogc3RyaW5nID0gJ2Jvb2xlYW4nO1xuXG4gIC8qIGlucHV0IGltYWdlICovXG4gIHByb3RlY3RlZCBpbWFnZVR5cGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIGF2YXRhcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgZW1wdHlJbWFnZTogc3RyaW5nO1xuXG4gIC8qIGlucHV0IHJlbmRlcmVyIGFjdGlvbiAqL1xuICBwcm90ZWN0ZWQgaWNvbjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWN0aW9uOiBzdHJpbmc7XG4gIHByb3RlY3RlZCB0ZXh0OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBpY29uUG9zaXRpb246IHN0cmluZztcblxuICAvKiBpbnB1dCByZW5kZXJlciBzZXJ2aWNlICovXG4gIHByb3RlY3RlZCBlbnRpdHk6IHN0cmluZztcbiAgcHJvdGVjdGVkIHNlcnZpY2U6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNvbHVtbnM6IHN0cmluZztcbiAgcHJvdGVjdGVkIHBhcmVudEtleXM6IHN0cmluZztcbiAgcHJvdGVjdGVkIHF1ZXJ5TWV0aG9kOiBzdHJpbmcgPSBDb2Rlcy5RVUVSWV9NRVRIT0Q7XG4gIHByb3RlY3RlZCBzZXJ2aWNlVHlwZTogc3RyaW5nO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiBpbnB1dCByZW5kZXJlciB0cmFuc2xhdGUgKi9cbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZUFyZ3NGbjogKHJvd0RhdGE6IGFueSkgPT4gYW55W107XG4gIC8qIGlucHV0IHRpbWUgKi9cbiAgb0RhdGVGb3JtYXQgPSAnTCc7XG4gIG9Ib3VyRm9ybWF0ID0gMjQ7XG5cbiAgLyogaW5wdXQgcmVuZGVyZXIgcGVyY2VudGFnZSAqL1xuICB2YWx1ZUJhc2U6IE9QZXJjZW50YWdlVmFsdWVCYXNlVHlwZSA9IDE7XG5cbiAgLyogaW5wdXQgZWRpdG9yICovXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwcm90ZWN0ZWQgb3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBzaG93UGxhY2VIb2xkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgb2xhYmVsOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICB1cGRhdGVSZWNvcmRPbkVkaXQ6IGJvb2xlYW4gPSB0cnVlO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgc2hvd05vdGlmaWNhdGlvbk9uRWRpdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qIGlucHV0IGVkaXRvciBkYXRlICovXG4gIHByb3RlY3RlZCBsb2NhbGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIG9TdGFydFZpZXc6ICdtb250aCcgfCAneWVhcicgPSAnbW9udGgnO1xuICBwcm90ZWN0ZWQgb01pbkRhdGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIG9NYXhEYXRlOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwcm90ZWN0ZWQgb1RvdWNoVWk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIG9TdGFydEF0OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBmaWx0ZXJEYXRlOiBEYXRlRmlsdGVyRnVuY3Rpb247XG4gIHByb3RlY3RlZCBkYXRlVmFsdWVUeXBlOiBPRGF0ZVZhbHVlVHlwZSA9ICd0aW1lc3RhbXAnO1xuXG4gIC8qIGlucHV0IGVkaXRvciBpbnRlZ2VyICovXG4gIEBOdW1iZXJJbnB1dENvbnZlcnRlcigpXG4gIG1pbjogbnVtYmVyO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBtYXg6IG51bWJlcjtcbiAgQE51bWJlcklucHV0Q29udmVydGVyKClcbiAgc3RlcDogbnVtYmVyO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBtaW5EZWNpbWFsRGlnaXRzOiBudW1iZXIgPSAyO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBtYXhEZWNpbWFsRGlnaXRzOiBudW1iZXIgPSAyO1xuXG4gIC8qIGlucHV0IGVkaXRvciBib29sZWFuICovXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBpbmRldGVybWluYXRlT25OdWxsOiBib29sZWFuID0gZmFsc2U7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBhdXRvQ29tbWl0OiBib29sZWFuO1xuXG4gIC8qIG91dHB1dCBjZWxsIHJlbmRlcmVyIGFjdGlvbiAqL1xuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8b2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuXG4gIC8qIG91dHB1dCBjZWxsIGVkaXRvciAqL1xuICBlZGl0aW9uU3RhcnRlZDogRXZlbnRFbWl0dGVyPG9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcbiAgZWRpdGlvbkNhbmNlbGxlZDogRXZlbnRFbWl0dGVyPG9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcbiAgZWRpdGlvbkNvbW1pdHRlZDogRXZlbnRFbWl0dGVyPG9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcbiAgb25Qb3N0VXBkYXRlUmVjb3JkOiBFdmVudEVtaXR0ZXI8b2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBhc3luY0xvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBPVGFibGVDb21wb25lbnQpKSBwdWJsaWMgdGFibGU6IE9UYWJsZUNvbXBvbmVudCxcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yXG4gICkge1xuICB9XG5cbiAgc3RhdGljIGFkZEVkaXRvcih0eXBlOiBzdHJpbmcsIGVkaXRvckNsYXNzUmVmZXJlbmNlOiBhbnkpIHtcbiAgICBpZiAoIWVkaXRvcnNNYXBwaW5nLmhhc093blByb3BlcnR5KHR5cGUpICYmIFV0aWwuaXNEZWZpbmVkKGVkaXRvckNsYXNzUmVmZXJlbmNlKSkge1xuICAgICAgZWRpdG9yc01hcHBpbmdbdHlwZV0gPSBlZGl0b3JDbGFzc1JlZmVyZW5jZTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdyb3VwaW5nID0gVXRpbC5wYXJzZUJvb2xlYW4odGhpcy5ncm91cGluZywgdHJ1ZSk7XG4gICAgdGhpcy50aXRsZUFsaWduID0gdGhpcy5wYXJzZVRpdGxlQWxpZ24oKTtcbiAgICB0aGlzLnRhYmxlLnJlZ2lzdGVyQ29sdW1uKHRoaXMpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy50YWJsZS5vblJlaW5pdGlhbGl6ZS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50YWJsZS5yZWdpc3RlckNvbHVtbih0aGlzKSkpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlUmVuZGVyZXIoKTtcbiAgICB0aGlzLmNyZWF0ZUVkaXRvcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwYXJzZVRpdGxlQWxpZ24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBhbGlnbiA9ICh0aGlzLnRpdGxlQWxpZ24gfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIENvZGVzLkFWQUlMQUJMRV9DT0xVTU5fVElUTEVfQUxJR05TLmluZGV4T2YoYWxpZ24pICE9PSAtMSA/IGFsaWduIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IG9yaWdpbmFsV2lkdGgoKSB7XG4gICAgbGV0IG9yaWdpbmFsV2lkdGggPSB0aGlzLndpZHRoO1xuICAgIGNvbnN0IHB4VmFsID0gVXRpbC5leHRyYWN0UGl4ZWxzVmFsdWUob3JpZ2luYWxXaWR0aCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHB4VmFsKSkge1xuICAgICAgb3JpZ2luYWxXaWR0aCA9IHB4VmFsICsgJyc7XG4gICAgfVxuICAgIHJldHVybiBvcmlnaW5hbFdpZHRoO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlbmRlcmVyKCk6IHZvaWQge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5yZW5kZXJlcikgJiYgVXRpbC5pc0RlZmluZWQodGhpcy50eXBlKSkge1xuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gcmVuZGVyZXJzTWFwcGluZ1t0aGlzLnR5cGVdO1xuICAgICAgaWYgKGNvbXBvbmVudFJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxldCBuZXdSZW5kZXJlcjtcbiAgICAgICAgY29uc3QgcmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFJlZik7XG4gICAgICAgIG5ld1JlbmRlcmVyID0gcmVmLmluc3RhbmNlO1xuICAgICAgICBuZXdSZW5kZXJlci5maWx0ZXJTb3VyY2UgPSB0aGlzLmZpbHRlclNvdXJjZTtcbiAgICAgICAgbmV3UmVuZGVyZXIuZmlsdGVyRnVuY3Rpb24gPSB0aGlzLmZpbHRlckZ1bmN0aW9uO1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgIGNhc2UgJ2N1cnJlbmN5JzpcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmN1cnJlbmN5U3ltYm9sID0gdGhpcy5jdXJyZW5jeVN5bWJvbDtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmN1cnJlbmN5U3ltYm9sUG9zaXRpb24gPSB0aGlzLmN1cnJlbmN5U3ltYm9sUG9zaXRpb247XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5kZWNpbWFsU2VwYXJhdG9yID0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIubWluRGVjaW1hbERpZ2l0cyA9IHRoaXMubWluRGVjaW1hbERpZ2l0cztcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLm1heERlY2ltYWxEaWdpdHMgPSB0aGlzLm1heERlY2ltYWxEaWdpdHM7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5ncm91cGluZyA9IHRoaXMuZ3JvdXBpbmc7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci50aG91c2FuZFNlcGFyYXRvciA9IHRoaXMudGhvdXNhbmRTZXBhcmF0b3I7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmZvcm1hdCA9IHRoaXMuZm9ybWF0O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndGltZSc6XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5mb3JtYXQgPSB0aGlzLmZvcm1hdDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICAgICAgbmV3UmVuZGVyZXIuZ3JvdXBpbmcgPSB0aGlzLmdyb3VwaW5nO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIudGhvdXNhbmRTZXBhcmF0b3IgPSB0aGlzLnRob3VzYW5kU2VwYXJhdG9yO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICBuZXdSZW5kZXJlci50cnVlVmFsdWUgPSB0aGlzLnRydWVWYWx1ZTtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmZhbHNlVmFsdWUgPSB0aGlzLmZhbHNlVmFsdWU7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5yZW5kZXJUcnVlVmFsdWUgPSB0aGlzLnJlbmRlclRydWVWYWx1ZTtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLnJlbmRlckZhbHNlVmFsdWUgPSB0aGlzLnJlbmRlckZhbHNlVmFsdWU7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5yZW5kZXJUeXBlID0gdGhpcy5yZW5kZXJUeXBlO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIuYm9vbGVhblR5cGUgPSB0aGlzLmJvb2xlYW5UeXBlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncGVyY2VudGFnZSc6XG4gICAgICAgICAgICBuZXdSZW5kZXJlci52YWx1ZUJhc2UgPSB0aGlzLnZhbHVlQmFzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3JlYWwnOlxuICAgICAgICAgICAgbmV3UmVuZGVyZXIuZGVjaW1hbFNlcGFyYXRvciA9IHRoaXMuZGVjaW1hbFNlcGFyYXRvcjtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLm1pbkRlY2ltYWxEaWdpdHMgPSB0aGlzLm1pbkRlY2ltYWxEaWdpdHM7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5tYXhEZWNpbWFsRGlnaXRzID0gdGhpcy5tYXhEZWNpbWFsRGlnaXRzO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIuZ3JvdXBpbmcgPSB0aGlzLmdyb3VwaW5nO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIudGhvdXNhbmRTZXBhcmF0b3IgPSB0aGlzLnRob3VzYW5kU2VwYXJhdG9yO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnaW1hZ2UnOlxuICAgICAgICAgICAgbmV3UmVuZGVyZXIuaW1hZ2VUeXBlID0gdGhpcy5pbWFnZVR5cGU7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5hdmF0YXIgPSB0aGlzLmF2YXRhcjtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmVtcHR5SW1hZ2UgPSB0aGlzLmVtcHR5SW1hZ2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdhY3Rpb24nOlxuICAgICAgICAgICAgbmV3UmVuZGVyZXIuaWNvbiA9IHRoaXMuaWNvbjtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmFjdGlvbiA9IHRoaXMuYWN0aW9uO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIudGV4dCA9IHRoaXMudGV4dDtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmljb25Qb3NpdGlvbiA9IHRoaXMuaWNvblBvc2l0aW9uO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIub25DbGljayA9IHRoaXMub25DbGljaztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgICAgICAgbmV3UmVuZGVyZXIuZW50aXR5ID0gdGhpcy5lbnRpdHk7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5zZXJ2aWNlID0gdGhpcy5zZXJ2aWNlO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIuY29sdW1ucyA9IHRoaXMuY29sdW1ucztcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLnZhbHVlQ29sdW1uID0gdGhpcy52YWx1ZUNvbHVtbjtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLnBhcmVudEtleXMgPSB0aGlzLnBhcmVudEtleXM7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5xdWVyeU1ldGhvZCA9IHRoaXMucXVlcnlNZXRob2Q7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5zZXJ2aWNlVHlwZSA9IHRoaXMuc2VydmljZVR5cGU7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci50cmFuc2xhdGUgPSB0aGlzLnRyYW5zbGF0ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3RyYW5zbGF0ZSc6XG4gICAgICAgICAgICBuZXdSZW5kZXJlci50cmFuc2xhdGVBcmdzRm4gPSB0aGlzLnRyYW5zbGF0ZUFyZ3NGbjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVnaXN0ZXJSZW5kZXJlcihuZXdSZW5kZXJlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYnVpbGRDZWxsRWRpdG9yKHR5cGU6IHN0cmluZywgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLCBwcm9wc09yaWdpbjogYW55LCByZWdpc3RlckluQ29sdW1uOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGxldCBlZGl0b3I7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gZWRpdG9yc01hcHBpbmdbdHlwZV0gfHwgZWRpdG9yc01hcHBpbmcudGV4dDtcbiAgICBpZiAoY29tcG9uZW50UmVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBlZGl0b3I7XG4gICAgfVxuXG4gICAgY29uc3QgcmVmID0gY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRSZWYpO1xuICAgIGVkaXRvciA9IHJlZi5pbnN0YW5jZTtcbiAgICBpZiAocHJvcHNPcmlnaW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgIGVkaXRvci5mb3JtYXQgPSBwcm9wc09yaWdpbi5mb3JtYXQ7XG4gICAgICAgICAgZWRpdG9yLmxvY2FsZSA9IHByb3BzT3JpZ2luLmxvY2FsZTtcbiAgICAgICAgICBlZGl0b3Iub1N0YXJ0VmlldyA9IHByb3BzT3JpZ2luLm9TdGFydFZpZXc7XG4gICAgICAgICAgZWRpdG9yLm9NaW5EYXRlID0gcHJvcHNPcmlnaW4ub01pbkRhdGU7XG4gICAgICAgICAgZWRpdG9yLm9NYXhEYXRlID0gcHJvcHNPcmlnaW4ub01heERhdGU7XG4gICAgICAgICAgZWRpdG9yLm9Ub3VjaFVpID0gcHJvcHNPcmlnaW4ub1RvdWNoVWk7XG4gICAgICAgICAgZWRpdG9yLm9TdGFydEF0ID0gcHJvcHNPcmlnaW4ub1N0YXJ0QXQ7XG4gICAgICAgICAgZWRpdG9yLmZpbHRlckRhdGUgPSBwcm9wc09yaWdpbi5maWx0ZXJEYXRlO1xuICAgICAgICAgIGVkaXRvci5kYXRlVmFsdWVUeXBlID0gcHJvcHNPcmlnaW4uZGF0ZVZhbHVlVHlwZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndGltZSc6XG4gICAgICAgICAgZWRpdG9yLm9EYXRlRm9ybWF0ID0gcHJvcHNPcmlnaW4ub0RhdGVGb3JtYXQ7XG4gICAgICAgICAgZWRpdG9yLm9Ib3VyRm9ybWF0ID0gcHJvcHNPcmlnaW4ub0hvdXJGb3JtYXQ7XG4gICAgICAgICAgZWRpdG9yLm9EYXRlTG9jYWxlID0gcHJvcHNPcmlnaW4ub0RhdGVMb2NhbGU7XG4gICAgICAgICAgZWRpdG9yLm9NaW5EYXRlID0gcHJvcHNPcmlnaW4ub01pbkRhdGU7XG4gICAgICAgICAgZWRpdG9yLm9NYXhEYXRlID0gcHJvcHNPcmlnaW4ub01heERhdGU7XG5cbiAgICAgICAgICBlZGl0b3Iub1RvdWNoVWkgPSBwcm9wc09yaWdpbi5vVG91Y2hVaTtcbiAgICAgICAgICBlZGl0b3Iub0RhdGVTdGFydEF0ID0gcHJvcHNPcmlnaW4ub0RhdGVTdGFydEF0O1xuICAgICAgICAgIGVkaXRvci5vRGF0ZVRleHRJbnB1dEVuYWJsZWQgPSBwcm9wc09yaWdpbi5vRGF0ZVRleHRJbnB1dEVuYWJsZWQ7XG5cbiAgICAgICAgICBlZGl0b3Iub0hvdXJNaW4gPSBwcm9wc09yaWdpbi5vSG91ck1pbjtcbiAgICAgICAgICBlZGl0b3Iub0hvdXJNYXggPSBwcm9wc09yaWdpbi5vSG91ck1heDtcbiAgICAgICAgICBlZGl0b3Iub0hvdXJUZXh0SW5wdXRFbmFibGVkID0gcHJvcHNPcmlnaW4ub0hvdXJUZXh0SW5wdXRFbmFibGVkO1xuICAgICAgICAgIGVkaXRvci5vSG91clBsYWNlaG9sZGVyID0gcHJvcHNPcmlnaW4ub0hvdXJQbGFjZWhvbGRlcjtcbiAgICAgICAgICBlZGl0b3Iub0RhdGVQbGFjZWhvbGRlciA9IHByb3BzT3JpZ2luLm9EYXRlUGxhY2Vob2xkZXI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgIGVkaXRvci5ib29sZWFuVHlwZSA9IHByb3BzT3JpZ2luLmJvb2xlYW5UeXBlO1xuICAgICAgICAgIGVkaXRvci5pbmRldGVybWluYXRlT25OdWxsID0gcHJvcHNPcmlnaW4uaW5kZXRlcm1pbmF0ZU9uTnVsbDtcbiAgICAgICAgICBlZGl0b3IuYXV0b0NvbW1pdCA9IHByb3BzT3JpZ2luLmF1dG9Db21taXQ7XG4gICAgICAgICAgZWRpdG9yLnRydWVWYWx1ZSA9IHByb3BzT3JpZ2luLnRydWVWYWx1ZTtcbiAgICAgICAgICBlZGl0b3IuZmFsc2VWYWx1ZSA9IHByb3BzT3JpZ2luLmZhbHNlVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICBjYXNlICdwZXJjZW50YWdlJzpcbiAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICBjYXNlICdyZWFsJzpcbiAgICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQocHJvcHNPcmlnaW4ubWluKSkge1xuICAgICAgICAgICAgZWRpdG9yLm1pbiA9IHByb3BzT3JpZ2luLm1pbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKHByb3BzT3JpZ2luLm1heCkpIHtcbiAgICAgICAgICAgIGVkaXRvci5tYXggPSBwcm9wc09yaWdpbi5tYXg7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVkaXRvci5zdGVwID0gVXRpbC5pc0RlZmluZWQocHJvcHNPcmlnaW4uc3RlcCkgPyBwcm9wc09yaWdpbi5zdGVwIDogZWRpdG9yLnN0ZXA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2ltYWdlJzpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGVkaXRvci5vbGFiZWwgPSBwcm9wc09yaWdpbi5vbGFiZWw7XG4gICAgICBlZGl0b3IudHlwZSA9IHByb3BzT3JpZ2luLnR5cGU7XG4gICAgfVxuICAgIGVkaXRvci5yZWdpc3RlckluQ29sdW1uID0gcmVnaXN0ZXJJbkNvbHVtbjtcblxuICAgIHJldHVybiBlZGl0b3I7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlRWRpdG9yKCkge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5lZGl0b3IpICYmIHRoaXMuZWRpdGFibGUpIHtcbiAgICAgIGNvbnN0IG5ld0VkaXRvciA9IHRoaXMuYnVpbGRDZWxsRWRpdG9yKHRoaXMudHlwZSwgdGhpcy5jb250YWluZXIsIHRoaXMpO1xuICAgICAgaWYgKG5ld0VkaXRvcikge1xuICAgICAgICBuZXdFZGl0b3Iub3JlcXVpcmVkID0gdGhpcy5vcmVxdWlyZWQ7XG4gICAgICAgIG5ld0VkaXRvci5zaG93UGxhY2VIb2xkZXIgPSB0aGlzLnNob3dQbGFjZUhvbGRlcjtcbiAgICAgICAgbmV3RWRpdG9yLnVwZGF0ZVJlY29yZE9uRWRpdCA9IHRoaXMudXBkYXRlUmVjb3JkT25FZGl0O1xuICAgICAgICBuZXdFZGl0b3Iuc2hvd05vdGlmaWNhdGlvbk9uRWRpdCA9IHRoaXMuc2hvd05vdGlmaWNhdGlvbk9uRWRpdDtcbiAgICAgICAgbmV3RWRpdG9yLmVkaXRpb25TdGFydGVkID0gdGhpcy5lZGl0aW9uU3RhcnRlZDtcbiAgICAgICAgbmV3RWRpdG9yLmVkaXRpb25DYW5jZWxsZWQgPSB0aGlzLmVkaXRpb25DYW5jZWxsZWQ7XG4gICAgICAgIG5ld0VkaXRvci5lZGl0aW9uQ29tbWl0dGVkID0gdGhpcy5lZGl0aW9uQ29tbWl0dGVkO1xuICAgICAgICBuZXdFZGl0b3Iub25Qb3N0VXBkYXRlUmVjb3JkID0gdGhpcy5vblBvc3RVcGRhdGVSZWNvcmQ7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFZGl0b3IobmV3RWRpdG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJSZW5kZXJlcihyZW5kZXJlcjogYW55KSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xuICAgIGNvbnN0IG9Db2wgPSB0aGlzLnRhYmxlLmdldE9Db2x1bW4odGhpcy5hdHRyKTtcbiAgICBpZiAob0NvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvQ29sLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlcjtcbiAgICB9XG4gICAgdGhpcy5yZW5kZXJlci5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJFZGl0b3IoZWRpdG9yOiBhbnkpIHtcbiAgICB0aGlzLmVkaXRvciA9IGVkaXRvcjtcbiAgICBjb25zdCBvQ29sID0gdGhpcy50YWJsZS5nZXRPQ29sdW1uKHRoaXMuYXR0cik7XG4gICAgaWYgKG9Db2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb0NvbC5lZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICB9XG4gICAgdGhpcy5lZGl0b3IuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgc2V0IG9yZGVyYWJsZSh2YWw6IGFueSkge1xuICAgIHRoaXMuX29yZGVyYWJsZSA9IHR5cGVvZiB2YWwgPT09ICdib29sZWFuJyA/IHZhbCA6IFV0aWwucGFyc2VCb29sZWFuKHZhbCwgdHJ1ZSk7XG4gICAgY29uc3Qgb0NvbCA9IHRoaXMudGFibGUuZ2V0T0NvbHVtbih0aGlzLmF0dHIpO1xuICAgIGlmIChvQ29sKSB7XG4gICAgICBvQ29sLm9yZGVyYWJsZSA9IHRoaXMuX29yZGVyYWJsZTtcbiAgICB9XG4gIH1cblxuICBnZXQgb3JkZXJhYmxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX29yZGVyYWJsZTtcbiAgfVxuXG4gIHNldCByZXNpemFibGUodmFsOiBhbnkpIHtcbiAgICB0aGlzLl9yZXNpemFibGUgPSB0eXBlb2YgdmFsID09PSAnYm9vbGVhbicgPyB2YWwgOiBVdGlsLnBhcnNlQm9vbGVhbih2YWwsIHRydWUpO1xuICAgIGNvbnN0IG9Db2wgPSB0aGlzLnRhYmxlLmdldE9Db2x1bW4odGhpcy5hdHRyKTtcbiAgICBpZiAob0NvbCkge1xuICAgICAgb0NvbC5yZXNpemFibGUgPSB0aGlzLl9yZXNpemFibGU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHJlc2l6YWJsZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9yZXNpemFibGU7XG4gIH1cblxuICBzZXQgc2VhcmNoYWJsZSh2YWw6IGFueSkge1xuICAgIHRoaXMuX3NlYXJjaGFibGUgPSB0eXBlb2YgdmFsID09PSAnYm9vbGVhbicgPyB2YWwgOiBVdGlsLnBhcnNlQm9vbGVhbih2YWwsIHRydWUpO1xuICAgIGNvbnN0IG9Db2wgPSB0aGlzLnRhYmxlLmdldE9Db2x1bW4odGhpcy5hdHRyKTtcbiAgICBpZiAob0NvbCkge1xuICAgICAgb0NvbC5zZWFyY2hhYmxlID0gdGhpcy5fc2VhcmNoYWJsZTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2VhcmNoYWJsZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hhYmxlO1xuICB9XG5cbiAgc2V0IGdyb3VwYWJsZSh2YWw6IGFueSkge1xuICAgIHRoaXMuX2dyb3VwYWJsZSA9IHR5cGVvZiB2YWwgPT09ICdib29sZWFuJyA/IHZhbCA6IFV0aWwucGFyc2VCb29sZWFuKHZhbCwgdHJ1ZSk7XG4gICAgY29uc3Qgb0NvbCA9IHRoaXMudGFibGUuZ2V0T0NvbHVtbih0aGlzLmF0dHIpO1xuICAgIGlmIChvQ29sKSB7XG4gICAgICBvQ29sLmdyb3VwYWJsZSA9IHRoaXMuX2dyb3VwYWJsZTtcbiAgICB9XG4gIH1cblxuICBnZXQgZ3JvdXBhYmxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2dyb3VwYWJsZTtcbiAgfVxuXG4gIGdldFNRTFR5cGUoKTogbnVtYmVyIHtcbiAgICBpZiAoISh0aGlzLnNxbFR5cGUgJiYgdGhpcy5zcWxUeXBlLmxlbmd0aCA+IDApKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICB0aGlzLnNxbFR5cGUgPSAnVElNRVNUQU1QJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICAgICAgdGhpcy5zcWxUeXBlID0gJ0lOVEVHRVInO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICB0aGlzLnNxbFR5cGUgPSAnQk9PTEVBTic7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3JlYWwnOlxuICAgICAgICBjYXNlICdwZXJjZW50YWdlJzpcbiAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICAgIHRoaXMuc3FsVHlwZSA9ICdET1VCTEUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX1NRTFR5cGUgPSBTUUxUeXBlcy5nZXRTUUxUeXBlVmFsdWUodGhpcy5zcWxUeXBlKTtcbiAgICByZXR1cm4gdGhpcy5fU1FMVHlwZTtcbiAgfVxuXG4gIHNldCBmaWx0ZXJTb3VyY2UodmFsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBsb3dlclZhbCA9ICh2YWwgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5fZmlsdGVyU291cmNlID0gKGxvd2VyVmFsID09PSAncmVuZGVyJyB8fCBsb3dlclZhbCA9PT0gJ2RhdGEnIHx8IGxvd2VyVmFsID09PSAnYm90aCcpID8gbG93ZXJWYWwgOiAncmVuZGVyJztcbiAgfVxuXG4gIGdldCBmaWx0ZXJTb3VyY2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyU291cmNlO1xuICB9XG59XG4iLCI8c3BhbiAjY29udGFpbmVyPlxuPC9zcGFuPiJdfQ==
443
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvY29sdW1uL28tdGFibGUtY29sdW1uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9vLXRhYmxlLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUdSLFNBQVMsRUFDVCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU9sRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSwyQkFBMkIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSw4QkFBOEIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7QUFFaEksTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUc7SUFFM0MsTUFBTTtJQUdOLE9BQU87SUFHUCx5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REFDUztBQUVqQztJQUFDLHFCQUFxQixFQUFFOztpRUFDVztBQUNuQztJQUFDLHFCQUFxQixFQUFFOztxRUFDZ0I7QUFPeEM7SUFBQyxxQkFBcUIsRUFBRTs7dURBQ1k7QUFNcEM7SUFBQyxvQkFBb0IsRUFBRTs7a0RBQ1g7QUFDWjtJQUFDLG9CQUFvQixFQUFFOztrREFDWDtBQUNaO0lBQUMsb0JBQW9CLEVBQUU7O21EQUNWO0FBQ2I7SUFBQyxvQkFBb0IsRUFBRTs7K0RBQ007QUFDN0I7SUFBQyxvQkFBb0IsRUFBRTs7K0RBQ007QUFHN0I7SUFBQyxxQkFBcUIsRUFBRTs7a0VBQ2E7QUFDckM7SUFBQyxxQkFBcUIsRUFBRTs7eURBQ0o7QUFXcEI7SUFBQyxxQkFBcUIsRUFBRTs7d0RBQ0c7NEZBakpoQixxQkFBcUI7a0JBUmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sVUFDdkMsNkJBQTZCLFdBQzVCLDhCQUE4Qjs7MEJBMkpwQyxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7bUVBeklwQyxRQUFRLE1BS1IsT0FBTyxNQWdFSixTQUFTLE1BWVQsU0FBUyxNQUVuQixlQUFlLE1BR2Ysa0JBQWtCLE1BRWxCLHNCQUFzQixNQVFaLFFBQVEsTUFPbEIsR0FBRyxNQUVILEdBQUcsTUFFSCxJQUFJLE1BRUosZ0JBQWdCLE1BRWhCLGdCQUFnQixNQUloQixtQkFBbUIsTUFFbkIsVUFBVSxNQVlWLFNBQVMsTUFHVCxTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBc3luY1ZhbGlkYXRvckZuLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIsIE51bWJlcklucHV0Q29udmVydGVyIH0gZnJvbSAnLi4vLi4vLi4vZGVjb3JhdG9ycy9pbnB1dC1jb252ZXJ0ZXInO1xuaW1wb3J0IHsgT1RhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9vLXRhYmxlLWNvbHVtbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT1BlcmNlbnRhZ2VWYWx1ZUJhc2VUeXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvby1wZXJjZW50YWdlLnBpcGUnO1xuaW1wb3J0IHsgRGF0ZUZpbHRlckZ1bmN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvZGF0ZS1maWx0ZXItZnVuY3Rpb24udHlwZSc7XG5pbXBvcnQgeyBFcnJvckRhdGEgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9lcnJvci1kYXRhLnR5cGUnO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2V4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBPRGF0ZVZhbHVlVHlwZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL28tZGF0ZS12YWx1ZS50eXBlJztcbmltcG9ydCB7IENvZGVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9jb2Rlcyc7XG5pbXBvcnQgeyBTUUxUeXBlcyB9IGZyb20gJy4uLy4uLy4uL3V0aWwvc3FsdHlwZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9vLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBlZGl0b3JzTWFwcGluZywgT19UQUJMRV9DRUxMX0VESVRPUlNfSU5QVVRTLCBPX1RBQkxFX0NFTExfRURJVE9SU19PVVRQVVRTIH0gZnJvbSAnLi9jZWxsLWVkaXRvci9jZWxsLWVkaXRvcic7XG5pbXBvcnQgeyBPX1RBQkxFX0NFTExfUkVOREVSRVJTX0lOUFVUUywgT19UQUJMRV9DRUxMX1JFTkRFUkVSU19PVVRQVVRTLCByZW5kZXJlcnNNYXBwaW5nIH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyL2NlbGwtcmVuZGVyZXInO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DT0xVTU4gPSBbXG4gIC8vIGF0dHIgW3N0cmluZ106IGNvbHVtbiBuYW1lLlxuICAnYXR0cicsXG5cbiAgLy8gdGl0bGUgW3N0cmluZ106IGNvbHVtbiB0aXRsZS4gRGVmYXVsdDogbm8gdmFsdWUuXG4gICd0aXRsZScsXG5cbiAgLy8gdGl0bGUtYWxpZ24gW3N0YXJ0IHwgY2VudGVyIHwgZW5kXTogY29sdW1uIHRpdGxlIGFsaWdubWVudC4gRGVmYXVsdDogY2VudGVyLlxuICAndGl0bGVBbGlnbjogdGl0bGUtYWxpZ24nLFxuXG4gIC8vIGNvbnRlbnQtYWxpZ24gW3N0YXJ0IHwgY2VudGVyIHwgZW5kXTogY29sdW1uIGNvbnRlbnQgYWxpZ25tZW50LlxuICAnY29udGVudEFsaWduOiBjb250ZW50LWFsaWduJyxcblxuICAvLyBvcmRlcmFibGUgW25vfHllc106IGNvbHVtbiBjYW4gYmUgc29ydGVkLiBEZWZhdWx0OiB5ZXMuXG4gICdvcmRlcmFibGUnLFxuXG4gIC8vIHNlYXJjaGFibGUgW25vfHllc106IHNlYXJjaGluZ3MgYXJlIHBlcmZvcm1lZCBpbnRvIGNvbHVtbiBjb250ZW50LiBEZWZhdWx0OiB5ZXMuXG4gICdzZWFyY2hhYmxlJyxcblxuICAvLyBncm91cGFibGUgW25vfHllc3x0cnVlfGZhbHNlXTogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBjb2x1bW4gY2FuIGJlIGdyb3VwYWJsZVxuICAnZ3JvdXBhYmxlJyxcblxuICAvLyB0eXBlIFtib29sZWFufGludGVnZXJ8cmVhbHxjdXJyZW5jeXxkYXRlfGltYWdlXTogY29sdW1uIHR5cGUuIERlZmF1bHQ6IG5vIHZhbHVlIChzdHJpbmcpLlxuICAndHlwZScsXG5cbiAgLy8gZWRpdGFibGUgW25vfHllc106IGNvbHVtbiBjYW4gYmUgZWRpdGVkIGRpcmVjdGx5IG92ZXIgdGhlIHRhYmxlLiBEZWZhdWx0OiBuby5cbiAgJ2VkaXRhYmxlJyxcblxuICAnd2lkdGgnLFxuXG4gIC8vIG9ubHkgaW4gcGl4ZWxzXG4gICdtaW5XaWR0aDogbWluLXdpZHRoJyxcblxuICAvLyBvbmx5IGluIHBpeGVsc1xuICAnbWF4V2lkdGg6IG1heC13aWR0aCcsXG5cbiAgLy8gYXN5bmMtbG9hZCBbbm98eWVzfHRydWV8ZmFsc2VdOiBhc3luY2hyb25vdXMgcXVlcnkuIERlZmF1bHQ6IG5vXG4gICdhc3luY0xvYWQgOiBhc3luYy1sb2FkJyxcblxuICAvLyBzcWx0eXBlW3N0cmluZ106IERhdGEgdHlwZSBhY2NvcmRpbmcgdG8gSmF2YSBzdGFuZGFyZC4gU2VlIFNRTFR5cGUgY2xhc3MuIERlZmF1bHQ6ICdPVEhFUidcbiAgJ3NxbFR5cGU6IHNxbC10eXBlJyxcblxuICAndG9vbHRpcCcsXG5cbiAgJ3Rvb2x0aXBWYWx1ZTogdG9vbHRpcC12YWx1ZScsXG5cbiAgJ3Rvb2x0aXBGdW5jdGlvbjogdG9vbHRpcC1mdW5jdGlvbicsXG5cbiAgJ211bHRpbGluZScsXG5cbiAgJ3Jlc2l6YWJsZScsXG5cbiAgJ2ZpbHRlckV4cHJlc3Npb25GdW5jdGlvbjogZmlsdGVyLWV4cHJlc3Npb24tZnVuY3Rpb24nLFxuXG4gICdjbGFzcycsXG5cbiAgJ2FuZ3VsYXJWYWxpZGF0b3JzRm46IHZhbGlkYXRvcnMnLFxuXG4gICdhbmd1bGFyVmFsaWRhdG9yc0ZuRXJyb3JzOiB2YWxpZGF0b3JzLWVycm9ycycsXG5cbiAgJ2FuZ3VsYXJBc3luY1ZhbGlkYXRvcnNGbjogYXN5bmMtdmFsaWRhdG9ycycsXG4gICd2YWx1ZUNvbHVtbjogdmFsdWUtY29sdW1uJyxcblxuICAuLi5PX1RBQkxFX0NFTExfUkVOREVSRVJTX0lOUFVUUyxcbiAgLi4uT19UQUJMRV9DRUxMX0VESVRPUlNfSU5QVVRTXG5dO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRQVVRTX09fVEFCTEVfQ09MVU1OID0gW1xuICAuLi5PX1RBQkxFX0NFTExfUkVOREVSRVJTX09VVFBVVFMsXG4gIC4uLk9fVEFCTEVfQ0VMTF9FRElUT1JTX09VVFBVVFNcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tdGFibGUtY29sdW1uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tdGFibGUtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vby10YWJsZS1jb2x1bW4uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19UQUJMRV9DT0xVTU4sXG4gIG91dHB1dHM6IERFRkFVTFRfT1VUUFVUU19PX1RBQkxFX0NPTFVNTixcbn0pXG5leHBvcnQgY2xhc3MgT1RhYmxlQ29sdW1uQ29tcG9uZW50IGltcGxlbWVudHMgT1RhYmxlQ29sdW1uLCBPbkRlc3Ryb3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyByZW5kZXJlcjogYW55O1xuICBwdWJsaWMgZWRpdG9yOiBhbnk7XG5cbiAgcHVibGljIHR5cGU6IHN0cmluZztcbiAgcHVibGljIGF0dHI6IHN0cmluZztcbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyB0aXRsZUFsaWduOiBzdHJpbmc7XG4gIHB1YmxpYyBjb250ZW50QWxpZ246ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnO1xuICBwdWJsaWMgc3FsVHlwZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX1NRTFR5cGU6IG51bWJlcjtcbiAgcHJvdGVjdGVkIF9vcmRlcmFibGU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfcmVzaXphYmxlOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX3NlYXJjaGFibGU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfZ3JvdXBhYmxlOiBib29sZWFuO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHVibGljIGVkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyB3aWR0aDogc3RyaW5nO1xuICBwdWJsaWMgbWluV2lkdGg6IHN0cmluZztcbiAgcHVibGljIG1heFdpZHRoOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgdG9vbHRpcDogYm9vbGVhbiA9IGZhbHNlO1xuICB0b29sdGlwVmFsdWU6IHN0cmluZztcbiAgdG9vbHRpcEZ1bmN0aW9uOiAocm93RGF0YTogYW55KSA9PiBhbnk7XG4gIHB1YmxpYyBjbGFzczogc3RyaW5nO1xuICBwdWJsaWMgdmFsdWVDb2x1bW46IHN0cmluZztcblxuICBzZXQgbXVsdGlsaW5lKHZhbDogYm9vbGVhbikge1xuICAgIHZhbCA9IFV0aWwucGFyc2VCb29sZWFuKFN0cmluZyh2YWwpKTtcbiAgICB0aGlzLl9tdWx0aWxpbmUgPSB2YWw7XG4gIH1cbiAgZ2V0IG11bHRpbGluZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlsaW5lO1xuICB9XG4gIHByb3RlY3RlZCBfbXVsdGlsaW5lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGFuZ3VsYXJWYWxpZGF0b3JzRm46IFZhbGlkYXRvckZuW10gPSBbXTtcbiAgcHVibGljIGFuZ3VsYXJWYWxpZGF0b3JzRm5FcnJvcnM6IEVycm9yRGF0YVtdID0gW107XG5cbiAgcHVibGljIGFuZ3VsYXJBc3luY1ZhbGlkYXRvcnNGbjogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XG5cbiAgZmlsdGVyRXhwcmVzc2lvbkZ1bmN0aW9uOiAoY29sdW1uQXR0cjogc3RyaW5nLCBxdWlja0ZpbHRlcj86IHN0cmluZykgPT4gRXhwcmVzc2lvbjtcblxuICAvKiBpbnB1dCByZW5kZXJlciBiYXNlICovXG4gIHB1YmxpYyBfZmlsdGVyU291cmNlOiAncmVuZGVyJyB8ICdkYXRhJyB8ICdib3RoJyA9ICdyZW5kZXInO1xuICBwdWJsaWMgZmlsdGVyRnVuY3Rpb246IChjZWxsVmFsdWU6IGFueSwgcm93VmFsdWU6IGFueSwgcXVpY2tGaWx0ZXI/OiBzdHJpbmcpID0+IGJvb2xlYW47XG4gIC8qIGlucHV0IHJlbmRlcmVyIGRhdGUgKi9cbiAgcHJvdGVjdGVkIGZvcm1hdDogc3RyaW5nO1xuICAvKiBpbnB1dCByZW5kZXJlciBpbnRlZ2VyICovXG4gIHByb3RlY3RlZCBncm91cGluZzogYW55ID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIHRob3VzYW5kU2VwYXJhdG9yOiBzdHJpbmcgPSAnLCc7XG4gIC8qIGlucHV0IHJlbmRlcmVyIHJlYWwgKi9cbiAgcHJvdGVjdGVkIGRlY2ltYWxTZXBhcmF0b3I6IHN0cmluZyA9ICcuJztcblxuICAvKiBpbnB1dCByZW5kZXJlciBjdXJyZW5jeSAqL1xuICBwcm90ZWN0ZWQgY3VycmVuY3lTeW1ib2w6IHN0cmluZztcbiAgcHJvdGVjdGVkIGN1cnJlbmN5U3ltYm9sUG9zaXRpb246IHN0cmluZztcblxuICAvKiBpbnB1dCByZW5kZXJlciBib29sZWFuICovXG4gIHByb3RlY3RlZCB0cnVlVmFsdWU6IGFueTtcbiAgcHJvdGVjdGVkIGZhbHNlVmFsdWU6IGFueTtcbiAgcHJvdGVjdGVkIHJlbmRlclRydWVWYWx1ZTogYW55O1xuICBwcm90ZWN0ZWQgcmVuZGVyRmFsc2VWYWx1ZTogYW55O1xuICBwcm90ZWN0ZWQgcmVuZGVyVHlwZTogc3RyaW5nID0gJ3N0cmluZyc7XG4gIHByb3RlY3RlZCBib29sZWFuVHlwZTogc3RyaW5nID0gJ2Jvb2xlYW4nO1xuXG4gIC8qIGlucHV0IGltYWdlICovXG4gIHByb3RlY3RlZCBpbWFnZVR5cGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIGF2YXRhcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgZW1wdHlJbWFnZTogc3RyaW5nO1xuXG4gIC8qIGlucHV0IHJlbmRlcmVyIGFjdGlvbiAqL1xuICBwcm90ZWN0ZWQgaWNvbjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWN0aW9uOiBzdHJpbmc7XG4gIHByb3RlY3RlZCB0ZXh0OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBpY29uUG9zaXRpb246IHN0cmluZztcblxuICAvKiBpbnB1dCByZW5kZXJlciBzZXJ2aWNlICovXG4gIHByb3RlY3RlZCBlbnRpdHk6IHN0cmluZztcbiAgcHJvdGVjdGVkIHNlcnZpY2U6IHN0cmluZztcbiAgcHJvdGVjdGVkIGNvbHVtbnM6IHN0cmluZztcbiAgcHJvdGVjdGVkIHBhcmVudEtleXM6IHN0cmluZztcbiAgcHJvdGVjdGVkIHF1ZXJ5TWV0aG9kOiBzdHJpbmcgPSBDb2Rlcy5RVUVSWV9NRVRIT0Q7XG4gIHByb3RlY3RlZCBzZXJ2aWNlVHlwZTogc3RyaW5nO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiBpbnB1dCByZW5kZXJlciB0cmFuc2xhdGUgKi9cbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZUFyZ3NGbjogKHJvd0RhdGE6IGFueSkgPT4gYW55W107XG4gIC8qIGlucHV0IHRpbWUgKi9cbiAgb0RhdGVGb3JtYXQgPSAnTCc7XG4gIG9Ib3VyRm9ybWF0ID0gMjQ7XG5cbiAgLyogaW5wdXQgcmVuZGVyZXIgcGVyY2VudGFnZSAqL1xuICB2YWx1ZUJhc2U6IE9QZXJjZW50YWdlVmFsdWVCYXNlVHlwZSA9IDE7XG5cbiAgLyogaW5wdXQgZWRpdG9yICovXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwcm90ZWN0ZWQgb3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBzaG93UGxhY2VIb2xkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgb2xhYmVsOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICB1cGRhdGVSZWNvcmRPbkVkaXQ6IGJvb2xlYW4gPSB0cnVlO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgc2hvd05vdGlmaWNhdGlvbk9uRWRpdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qIGlucHV0IGVkaXRvciBkYXRlICovXG4gIHByb3RlY3RlZCBsb2NhbGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIG9TdGFydFZpZXc6ICdtb250aCcgfCAneWVhcicgPSAnbW9udGgnO1xuICBwcm90ZWN0ZWQgb01pbkRhdGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIG9NYXhEYXRlOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwcm90ZWN0ZWQgb1RvdWNoVWk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvdGVjdGVkIG9TdGFydEF0OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBmaWx0ZXJEYXRlOiBEYXRlRmlsdGVyRnVuY3Rpb247XG4gIHByb3RlY3RlZCBkYXRlVmFsdWVUeXBlOiBPRGF0ZVZhbHVlVHlwZSA9ICd0aW1lc3RhbXAnO1xuXG4gIC8qIGlucHV0IGVkaXRvciBpbnRlZ2VyICovXG4gIEBOdW1iZXJJbnB1dENvbnZlcnRlcigpXG4gIG1pbjogbnVtYmVyO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBtYXg6IG51bWJlcjtcbiAgQE51bWJlcklucHV0Q29udmVydGVyKClcbiAgc3RlcDogbnVtYmVyO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBtaW5EZWNpbWFsRGlnaXRzOiBudW1iZXIgPSAyO1xuICBATnVtYmVySW5wdXRDb252ZXJ0ZXIoKVxuICBtYXhEZWNpbWFsRGlnaXRzOiBudW1iZXIgPSAyO1xuXG4gIC8qIGlucHV0IGVkaXRvciBib29sZWFuICovXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBpbmRldGVybWluYXRlT25OdWxsOiBib29sZWFuID0gZmFsc2U7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBhdXRvQ29tbWl0OiBib29sZWFuO1xuXG4gIC8qIG91dHB1dCBjZWxsIHJlbmRlcmVyIGFjdGlvbiAqL1xuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8b2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuXG4gIC8qIG91dHB1dCBjZWxsIGVkaXRvciAqL1xuICBlZGl0aW9uU3RhcnRlZDogRXZlbnRFbWl0dGVyPG9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcbiAgZWRpdGlvbkNhbmNlbGxlZDogRXZlbnRFbWl0dGVyPG9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcbiAgZWRpdGlvbkNvbW1pdHRlZDogRXZlbnRFbWl0dGVyPG9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcbiAgb25Qb3N0VXBkYXRlUmVjb3JkOiBFdmVudEVtaXR0ZXI8b2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xuXG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBhc3luY0xvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBPVGFibGVDb21wb25lbnQpKSBwdWJsaWMgdGFibGU6IE9UYWJsZUNvbXBvbmVudCxcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yXG4gICkge1xuICB9XG5cbiAgc3RhdGljIGFkZEVkaXRvcih0eXBlOiBzdHJpbmcsIGVkaXRvckNsYXNzUmVmZXJlbmNlOiBhbnkpIHtcbiAgICBpZiAoIWVkaXRvcnNNYXBwaW5nLmhhc093blByb3BlcnR5KHR5cGUpICYmIFV0aWwuaXNEZWZpbmVkKGVkaXRvckNsYXNzUmVmZXJlbmNlKSkge1xuICAgICAgZWRpdG9yc01hcHBpbmdbdHlwZV0gPSBlZGl0b3JDbGFzc1JlZmVyZW5jZTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdyb3VwaW5nID0gVXRpbC5wYXJzZUJvb2xlYW4odGhpcy5ncm91cGluZywgdHJ1ZSk7XG4gICAgdGhpcy50aXRsZUFsaWduID0gdGhpcy5wYXJzZVRpdGxlQWxpZ24oKTtcbiAgICB0aGlzLnRhYmxlLnJlZ2lzdGVyQ29sdW1uKHRoaXMpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy50YWJsZS5vblJlaW5pdGlhbGl6ZS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50YWJsZS5yZWdpc3RlckNvbHVtbih0aGlzKSkpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlUmVuZGVyZXIoKTtcbiAgICB0aGlzLmNyZWF0ZUVkaXRvcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwYXJzZVRpdGxlQWxpZ24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBhbGlnbiA9ICh0aGlzLnRpdGxlQWxpZ24gfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIENvZGVzLkFWQUlMQUJMRV9DT0xVTU5fVElUTEVfQUxJR05TLmluZGV4T2YoYWxpZ24pICE9PSAtMSA/IGFsaWduIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IG9yaWdpbmFsV2lkdGgoKSB7XG4gICAgbGV0IG9yaWdpbmFsV2lkdGggPSB0aGlzLndpZHRoO1xuICAgIGNvbnN0IHB4VmFsID0gVXRpbC5leHRyYWN0UGl4ZWxzVmFsdWUob3JpZ2luYWxXaWR0aCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHB4VmFsKSkge1xuICAgICAgb3JpZ2luYWxXaWR0aCA9IHB4VmFsICsgJyc7XG4gICAgfVxuICAgIHJldHVybiBvcmlnaW5hbFdpZHRoO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlbmRlcmVyKCk6IHZvaWQge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5yZW5kZXJlcikgJiYgVXRpbC5pc0RlZmluZWQodGhpcy50eXBlKSkge1xuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gcmVuZGVyZXJzTWFwcGluZ1t0aGlzLnR5cGVdO1xuICAgICAgaWYgKGNvbXBvbmVudFJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxldCBuZXdSZW5kZXJlcjtcbiAgICAgICAgY29uc3QgcmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFJlZik7XG4gICAgICAgIG5ld1JlbmRlcmVyID0gcmVmLmluc3RhbmNlO1xuICAgICAgICBuZXdSZW5kZXJlci5maWx0ZXJTb3VyY2UgPSB0aGlzLmZpbHRlclNvdXJjZTtcbiAgICAgICAgbmV3UmVuZGVyZXIuZmlsdGVyRnVuY3Rpb24gPSB0aGlzLmZpbHRlckZ1bmN0aW9uO1xuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgIGNhc2UgJ2N1cnJlbmN5JzpcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmN1cnJlbmN5U3ltYm9sID0gdGhpcy5jdXJyZW5jeVN5bWJvbDtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmN1cnJlbmN5U3ltYm9sUG9zaXRpb24gPSB0aGlzLmN1cnJlbmN5U3ltYm9sUG9zaXRpb247XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5kZWNpbWFsU2VwYXJhdG9yID0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIubWluRGVjaW1hbERpZ2l0cyA9IHRoaXMubWluRGVjaW1hbERpZ2l0cztcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLm1heERlY2ltYWxEaWdpdHMgPSB0aGlzLm1heERlY2ltYWxEaWdpdHM7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5ncm91cGluZyA9IHRoaXMuZ3JvdXBpbmc7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci50aG91c2FuZFNlcGFyYXRvciA9IHRoaXMudGhvdXNhbmRTZXBhcmF0b3I7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmZvcm1hdCA9IHRoaXMuZm9ybWF0O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAndGltZSc6XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5mb3JtYXQgPSB0aGlzLmZvcm1hdDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICAgICAgbmV3UmVuZGVyZXIuZ3JvdXBpbmcgPSB0aGlzLmdyb3VwaW5nO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIudGhvdXNhbmRTZXBhcmF0b3IgPSB0aGlzLnRob3VzYW5kU2VwYXJhdG9yO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICBuZXdSZW5kZXJlci50cnVlVmFsdWUgPSB0aGlzLnRydWVWYWx1ZTtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmZhbHNlVmFsdWUgPSB0aGlzLmZhbHNlVmFsdWU7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5yZW5kZXJUcnVlVmFsdWUgPSB0aGlzLnJlbmRlclRydWVWYWx1ZTtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLnJlbmRlckZhbHNlVmFsdWUgPSB0aGlzLnJlbmRlckZhbHNlVmFsdWU7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5yZW5kZXJUeXBlID0gdGhpcy5yZW5kZXJUeXBlO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIuYm9vbGVhblR5cGUgPSB0aGlzLmJvb2xlYW5UeXBlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncGVyY2VudGFnZSc6XG4gICAgICAgICAgICBuZXdSZW5kZXJlci52YWx1ZUJhc2UgPSB0aGlzLnZhbHVlQmFzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3JlYWwnOlxuICAgICAgICAgICAgbmV3UmVuZGVyZXIuZGVjaW1hbFNlcGFyYXRvciA9IHRoaXMuZGVjaW1hbFNlcGFyYXRvcjtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLm1pbkRlY2ltYWxEaWdpdHMgPSB0aGlzLm1pbkRlY2ltYWxEaWdpdHM7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5tYXhEZWNpbWFsRGlnaXRzID0gdGhpcy5tYXhEZWNpbWFsRGlnaXRzO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIuZ3JvdXBpbmcgPSB0aGlzLmdyb3VwaW5nO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIudGhvdXNhbmRTZXBhcmF0b3IgPSB0aGlzLnRob3VzYW5kU2VwYXJhdG9yO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnaW1hZ2UnOlxuICAgICAgICAgICAgbmV3UmVuZGVyZXIuaW1hZ2VUeXBlID0gdGhpcy5pbWFnZVR5cGU7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5hdmF0YXIgPSB0aGlzLmF2YXRhcjtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmVtcHR5SW1hZ2UgPSB0aGlzLmVtcHR5SW1hZ2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdhY3Rpb24nOlxuICAgICAgICAgICAgbmV3UmVuZGVyZXIuaWNvbiA9IHRoaXMuaWNvbjtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmFjdGlvbiA9IHRoaXMuYWN0aW9uO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIudGV4dCA9IHRoaXMudGV4dDtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLmljb25Qb3NpdGlvbiA9IHRoaXMuaWNvblBvc2l0aW9uO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIub25DbGljayA9IHRoaXMub25DbGljaztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAgICAgICAgbmV3UmVuZGVyZXIuZW50aXR5ID0gdGhpcy5lbnRpdHk7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5zZXJ2aWNlID0gdGhpcy5zZXJ2aWNlO1xuICAgICAgICAgICAgbmV3UmVuZGVyZXIuY29sdW1ucyA9IHRoaXMuY29sdW1ucztcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLnZhbHVlQ29sdW1uID0gdGhpcy52YWx1ZUNvbHVtbjtcbiAgICAgICAgICAgIG5ld1JlbmRlcmVyLnBhcmVudEtleXMgPSB0aGlzLnBhcmVudEtleXM7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5xdWVyeU1ldGhvZCA9IHRoaXMucXVlcnlNZXRob2Q7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci5zZXJ2aWNlVHlwZSA9IHRoaXMuc2VydmljZVR5cGU7XG4gICAgICAgICAgICBuZXdSZW5kZXJlci50cmFuc2xhdGUgPSB0aGlzLnRyYW5zbGF0ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3RyYW5zbGF0ZSc6XG4gICAgICAgICAgICBuZXdSZW5kZXJlci50cmFuc2xhdGVBcmdzRm4gPSB0aGlzLnRyYW5zbGF0ZUFyZ3NGbjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVnaXN0ZXJSZW5kZXJlcihuZXdSZW5kZXJlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYnVpbGRDZWxsRWRpdG9yKHR5cGU6IHN0cmluZywgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLCBwcm9wc09yaWdpbjogYW55LCByZWdpc3RlckluQ29sdW1uOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGxldCBlZGl0b3I7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gZWRpdG9yc01hcHBpbmdbdHlwZV0gfHwgZWRpdG9yc01hcHBpbmcudGV4dDtcbiAgICBpZiAoY29tcG9uZW50UmVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBlZGl0b3I7XG4gICAgfVxuXG4gICAgY29uc3QgcmVmID0gY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRSZWYpO1xuICAgIGVkaXRvciA9IHJlZi5pbnN0YW5jZTtcbiAgICBpZiAocHJvcHNPcmlnaW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgIGVkaXRvci5mb3JtYXQgPSBwcm9wc09yaWdpbi5mb3JtYXQ7XG4gICAgICAgICAgZWRpdG9yLmxvY2FsZSA9IHByb3BzT3JpZ2luLmxvY2FsZTtcbiAgICAgICAgICBlZGl0b3Iub1N0YXJ0VmlldyA9IHByb3BzT3JpZ2luLm9TdGFydFZpZXc7XG4gICAgICAgICAgZWRpdG9yLm9NaW5EYXRlID0gcHJvcHNPcmlnaW4ub01pbkRhdGU7XG4gICAgICAgICAgZWRpdG9yLm9NYXhEYXRlID0gcHJvcHNPcmlnaW4ub01heERhdGU7XG4gICAgICAgICAgZWRpdG9yLm9Ub3VjaFVpID0gcHJvcHNPcmlnaW4ub1RvdWNoVWk7XG4gICAgICAgICAgZWRpdG9yLm9TdGFydEF0ID0gcHJvcHNPcmlnaW4ub1N0YXJ0QXQ7XG4gICAgICAgICAgZWRpdG9yLmZpbHRlckRhdGUgPSBwcm9wc09yaWdpbi5maWx0ZXJEYXRlO1xuICAgICAgICAgIGVkaXRvci5kYXRlVmFsdWVUeXBlID0gcHJvcHNPcmlnaW4uZGF0ZVZhbHVlVHlwZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndGltZSc6XG4gICAgICAgICAgZWRpdG9yLm9EYXRlRm9ybWF0ID0gcHJvcHNPcmlnaW4ub0RhdGVGb3JtYXQ7XG4gICAgICAgICAgZWRpdG9yLm9Ib3VyRm9ybWF0ID0gcHJvcHNPcmlnaW4ub0hvdXJGb3JtYXQ7XG4gICAgICAgICAgZWRpdG9yLm9EYXRlTG9jYWxlID0gcHJvcHNPcmlnaW4ub0RhdGVMb2NhbGU7XG4gICAgICAgICAgZWRpdG9yLm9NaW5EYXRlID0gcHJvcHNPcmlnaW4ub01pbkRhdGU7XG4gICAgICAgICAgZWRpdG9yLm9NYXhEYXRlID0gcHJvcHNPcmlnaW4ub01heERhdGU7XG5cbiAgICAgICAgICBlZGl0b3Iub1RvdWNoVWkgPSBwcm9wc09yaWdpbi5vVG91Y2hVaTtcbiAgICAgICAgICBlZGl0b3Iub0RhdGVTdGFydEF0ID0gcHJvcHNPcmlnaW4ub0RhdGVTdGFydEF0O1xuICAgICAgICAgIGVkaXRvci5vRGF0ZVRleHRJbnB1dEVuYWJsZWQgPSBwcm9wc09yaWdpbi5vRGF0ZVRleHRJbnB1dEVuYWJsZWQ7XG5cbiAgICAgICAgICBlZGl0b3Iub0hvdXJNaW4gPSBwcm9wc09yaWdpbi5vSG91ck1pbjtcbiAgICAgICAgICBlZGl0b3Iub0hvdXJNYXggPSBwcm9wc09yaWdpbi5vSG91ck1heDtcbiAgICAgICAgICBlZGl0b3Iub0hvdXJUZXh0SW5wdXRFbmFibGVkID0gcHJvcHNPcmlnaW4ub0hvdXJUZXh0SW5wdXRFbmFibGVkO1xuICAgICAgICAgIGVkaXRvci5vSG91clBsYWNlaG9sZGVyID0gcHJvcHNPcmlnaW4ub0hvdXJQbGFjZWhvbGRlcjtcbiAgICAgICAgICBlZGl0b3Iub0RhdGVQbGFjZWhvbGRlciA9IHByb3BzT3JpZ2luLm9EYXRlUGxhY2Vob2xkZXI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgIGVkaXRvci5ib29sZWFuVHlwZSA9IHByb3BzT3JpZ2luLmJvb2xlYW5UeXBlO1xuICAgICAgICAgIGVkaXRvci5pbmRldGVybWluYXRlT25OdWxsID0gcHJvcHNPcmlnaW4uaW5kZXRlcm1pbmF0ZU9uTnVsbDtcbiAgICAgICAgICBlZGl0b3IuYXV0b0NvbW1pdCA9IHByb3BzT3JpZ2luLmF1dG9Db21taXQ7XG4gICAgICAgICAgZWRpdG9yLnRydWVWYWx1ZSA9IHByb3BzT3JpZ2luLnRydWVWYWx1ZTtcbiAgICAgICAgICBlZGl0b3IuZmFsc2VWYWx1ZSA9IHByb3BzT3JpZ2luLmZhbHNlVmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICBjYXNlICdwZXJjZW50YWdlJzpcbiAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICBjYXNlICdyZWFsJzpcbiAgICAgICAgICBpZiAoVXRpbC5pc0RlZmluZWQocHJvcHNPcmlnaW4ubWluKSkge1xuICAgICAgICAgICAgZWRpdG9yLm1pbiA9IHByb3BzT3JpZ2luLm1pbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKHByb3BzT3JpZ2luLm1heCkpIHtcbiAgICAgICAgICAgIGVkaXRvci5tYXggPSBwcm9wc09yaWdpbi5tYXg7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVkaXRvci5zdGVwID0gVXRpbC5pc0RlZmluZWQocHJvcHNPcmlnaW4uc3RlcCkgPyBwcm9wc09yaWdpbi5zdGVwIDogZWRpdG9yLnN0ZXA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2ltYWdlJzpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGVkaXRvci5vbGFiZWwgPSBwcm9wc09yaWdpbi5vbGFiZWw7XG4gICAgICBlZGl0b3IudHlwZSA9IHByb3BzT3JpZ2luLnR5cGU7XG4gICAgfVxuICAgIGVkaXRvci5yZWdpc3RlckluQ29sdW1uID0gcmVnaXN0ZXJJbkNvbHVtbjtcblxuICAgIHJldHVybiBlZGl0b3I7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlRWRpdG9yKCkge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5lZGl0b3IpICYmIHRoaXMuZWRpdGFibGUpIHtcbiAgICAgIGNvbnN0IG5ld0VkaXRvciA9IHRoaXMuYnVpbGRDZWxsRWRpdG9yKHRoaXMudHlwZSwgdGhpcy5jb250YWluZXIsIHRoaXMpO1xuICAgICAgaWYgKG5ld0VkaXRvcikge1xuICAgICAgICBuZXdFZGl0b3Iub3JlcXVpcmVkID0gdGhpcy5vcmVxdWlyZWQ7XG4gICAgICAgIG5ld0VkaXRvci5zaG93UGxhY2VIb2xkZXIgPSB0aGlzLnNob3dQbGFjZUhvbGRlcjtcbiAgICAgICAgbmV3RWRpdG9yLnVwZGF0ZVJlY29yZE9uRWRpdCA9IHRoaXMudXBkYXRlUmVjb3JkT25FZGl0O1xuICAgICAgICBuZXdFZGl0b3Iuc2hvd05vdGlmaWNhdGlvbk9uRWRpdCA9IHRoaXMuc2hvd05vdGlmaWNhdGlvbk9uRWRpdDtcbiAgICAgICAgbmV3RWRpdG9yLmVkaXRpb25TdGFydGVkID0gdGhpcy5lZGl0aW9uU3RhcnRlZDtcbiAgICAgICAgbmV3RWRpdG9yLmVkaXRpb25DYW5jZWxsZWQgPSB0aGlzLmVkaXRpb25DYW5jZWxsZWQ7XG4gICAgICAgIG5ld0VkaXRvci5lZGl0aW9uQ29tbWl0dGVkID0gdGhpcy5lZGl0aW9uQ29tbWl0dGVkO1xuICAgICAgICBuZXdFZGl0b3Iub25Qb3N0VXBkYXRlUmVjb3JkID0gdGhpcy5vblBvc3RVcGRhdGVSZWNvcmQ7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFZGl0b3IobmV3RWRpdG9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJSZW5kZXJlcihyZW5kZXJlcjogYW55KSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xuICAgIGNvbnN0IG9Db2wgPSB0aGlzLnRhYmxlLmdldE9Db2x1bW4odGhpcy5hdHRyKTtcbiAgICBpZiAob0NvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvQ29sLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlcjtcbiAgICB9XG4gICAgdGhpcy5yZW5kZXJlci5pbml0aWFsaXplKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJFZGl0b3IoZWRpdG9yOiBhbnkpIHtcbiAgICB0aGlzLmVkaXRvciA9IGVkaXRvcjtcbiAgICBjb25zdCBvQ29sID0gdGhpcy50YWJsZS5nZXRPQ29sdW1uKHRoaXMuYXR0cik7XG4gICAgaWYgKG9Db2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb0NvbC5lZGl0b3IgPSB0aGlzLmVkaXRvcjtcbiAgICB9XG4gICAgdGhpcy5lZGl0b3IuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgc2V0IG9yZGVyYWJsZSh2YWw6IGFueSkge1xuICAgIHRoaXMuX29yZGVyYWJsZSA9IHR5cGVvZiB2YWwgPT09ICdib29sZWFuJyA/IHZhbCA6IFV0aWwucGFyc2VCb29sZWFuKHZhbCwgdHJ1ZSk7XG4gICAgY29uc3Qgb0NvbCA9IHRoaXMudGFibGUuZ2V0T0NvbHVtbih0aGlzLmF0dHIpO1xuICAgIGlmIChvQ29sKSB7XG4gICAgICBvQ29sLm9yZGVyYWJsZSA9IHRoaXMuX29yZGVyYWJsZTtcbiAgICB9XG4gIH1cblxuICBnZXQgb3JkZXJhYmxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX29yZGVyYWJsZTtcbiAgfVxuXG4gIHNldCByZXNpemFibGUodmFsOiBhbnkpIHtcbiAgICB0aGlzLl9yZXNpemFibGUgPSB0eXBlb2YgdmFsID09PSAnYm9vbGVhbicgPyB2YWwgOiBVdGlsLnBhcnNlQm9vbGVhbih2YWwsIHRydWUpO1xuICAgIGNvbnN0IG9Db2wgPSB0aGlzLnRhYmxlLmdldE9Db2x1bW4odGhpcy5hdHRyKTtcbiAgICBpZiAob0NvbCkge1xuICAgICAgb0NvbC5yZXNpemFibGUgPSB0aGlzLl9yZXNpemFibGU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHJlc2l6YWJsZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9yZXNpemFibGU7XG4gIH1cblxuICBzZXQgc2VhcmNoYWJsZSh2YWw6IGFueSkge1xuICAgIHRoaXMuX3NlYXJjaGFibGUgPSB0eXBlb2YgdmFsID09PSAnYm9vbGVhbicgPyB2YWwgOiBVdGlsLnBhcnNlQm9vbGVhbih2YWwsIHRydWUpO1xuICAgIGNvbnN0IG9Db2wgPSB0aGlzLnRhYmxlLmdldE9Db2x1bW4odGhpcy5hdHRyKTtcbiAgICBpZiAob0NvbCkge1xuICAgICAgb0NvbC5zZWFyY2hhYmxlID0gdGhpcy5fc2VhcmNoYWJsZTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2VhcmNoYWJsZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hhYmxlO1xuICB9XG5cbiAgc2V0IGdyb3VwYWJsZSh2YWw6IGFueSkge1xuICAgIHRoaXMuX2dyb3VwYWJsZSA9IHR5cGVvZiB2YWwgPT09ICdib29sZWFuJyA/IHZhbCA6IFV0aWwucGFyc2VCb29sZWFuKHZhbCwgdHJ1ZSk7XG4gICAgY29uc3Qgb0NvbCA9IHRoaXMudGFibGUuZ2V0T0NvbHVtbih0aGlzLmF0dHIpO1xuICAgIGlmIChvQ29sKSB7XG4gICAgICBvQ29sLmdyb3VwYWJsZSA9IHRoaXMuX2dyb3VwYWJsZTtcbiAgICB9XG4gIH1cblxuICBnZXQgZ3JvdXBhYmxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2dyb3VwYWJsZTtcbiAgfVxuXG4gIGdldFNRTFR5cGUoKTogbnVtYmVyIHtcbiAgICBpZiAoISh0aGlzLnNxbFR5cGUgJiYgdGhpcy5zcWxUeXBlLmxlbmd0aCA+IDApKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICB0aGlzLnNxbFR5cGUgPSAnVElNRVNUQU1QJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICAgICAgdGhpcy5zcWxUeXBlID0gJ0lOVEVHRVInO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICB0aGlzLnNxbFR5cGUgPSAnQk9PTEVBTic7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3JlYWwnOlxuICAgICAgICBjYXNlICdwZXJjZW50YWdlJzpcbiAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICAgIHRoaXMuc3FsVHlwZSA9ICdET1VCTEUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX1NRTFR5cGUgPSBTUUxUeXBlcy5nZXRTUUxUeXBlVmFsdWUodGhpcy5zcWxUeXBlKTtcbiAgICByZXR1cm4gdGhpcy5fU1FMVHlwZTtcbiAgfVxuXG4gIHNldCBmaWx0ZXJTb3VyY2UodmFsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBsb3dlclZhbCA9ICh2YWwgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5fZmlsdGVyU291cmNlID0gKGxvd2VyVmFsID09PSAncmVuZGVyJyB8fCBsb3dlclZhbCA9PT0gJ2RhdGEnIHx8IGxvd2VyVmFsID09PSAnYm90aCcpID8gbG93ZXJWYWwgOiAncmVuZGVyJztcbiAgfVxuXG4gIGdldCBmaWx0ZXJTb3VyY2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyU291cmNlO1xuICB9XG59XG4iLCI8c3BhbiAjY29udGFpbmVyPlxuPC9zcGFuPiJdfQ==