@igo2/common 16.2.0 → 17.0.0-next.0

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 (313) hide show
  1. package/esm2022/lib/action/action.module.mjs +11 -11
  2. package/esm2022/lib/action/actionbar/actionbar-item.component.mjs +29 -13
  3. package/esm2022/lib/action/actionbar/actionbar.component.mjs +32 -13
  4. package/esm2022/lib/action/actionbar/actionbar.module.mjs +8 -45
  5. package/esm2022/lib/action/index.mjs +1 -1
  6. package/esm2022/lib/action/shared/action.enums.mjs +1 -1
  7. package/esm2022/lib/action/shared/action.interfaces.mjs +1 -1
  8. package/esm2022/lib/action/shared/index.mjs +1 -1
  9. package/esm2022/lib/action/shared/store.mjs +1 -1
  10. package/esm2022/lib/backdrop/backdrop.component.mjs +7 -7
  11. package/esm2022/lib/backdrop/backdrop.module.mjs +9 -8
  12. package/esm2022/lib/backdrop/index.mjs +1 -1
  13. package/esm2022/lib/badge-icon/badge-icon.directive.mjs +9 -7
  14. package/esm2022/lib/badge-icon/badge-icon.module.mjs +10 -10
  15. package/esm2022/lib/badge-icon/index.mjs +1 -1
  16. package/esm2022/lib/clickout/clickout.directive.mjs +7 -6
  17. package/esm2022/lib/clickout/clickout.module.mjs +9 -7
  18. package/esm2022/lib/clickout/index.mjs +1 -1
  19. package/esm2022/lib/clone/clone.module.mjs +9 -7
  20. package/esm2022/lib/clone/clone.pipe.mjs +6 -5
  21. package/esm2022/lib/clone/index.mjs +1 -1
  22. package/esm2022/lib/collapsible/collapse.directive.mjs +7 -6
  23. package/esm2022/lib/collapsible/collapsible.component.mjs +10 -8
  24. package/esm2022/lib/collapsible/collapsible.module.mjs +9 -9
  25. package/esm2022/lib/collapsible/index.mjs +7 -1
  26. package/esm2022/lib/color-picker-form-field/color-picker-form-field.component.mjs +25 -12
  27. package/esm2022/lib/color-picker-form-field/color-picker-form-field.module.mjs +9 -41
  28. package/esm2022/lib/color-picker-form-field/index.mjs +1 -1
  29. package/esm2022/lib/confirm-dialog/confirm-dialog.component.mjs +15 -7
  30. package/esm2022/lib/confirm-dialog/confirm-dialog.interface.mjs +1 -1
  31. package/esm2022/lib/confirm-dialog/confirm-dialog.module.mjs +9 -10
  32. package/esm2022/lib/confirm-dialog/confirm-dialog.service.mjs +7 -6
  33. package/esm2022/lib/confirm-dialog/index.mjs +1 -1
  34. package/esm2022/lib/context-menu/context-menu.directive.mjs +7 -6
  35. package/esm2022/lib/context-menu/context-menu.module.mjs +9 -7
  36. package/esm2022/lib/context-menu/index.mjs +7 -1
  37. package/esm2022/lib/context-menu/long-press.directive.mjs +7 -6
  38. package/esm2022/lib/custom-html/custom-html.component.mjs +7 -7
  39. package/esm2022/lib/custom-html/custom-html.module.mjs +10 -31
  40. package/esm2022/lib/custom-html/custom-html.pipe.mjs +9 -6
  41. package/esm2022/lib/custom-html/index.mjs +7 -1
  42. package/esm2022/lib/dom/dom.interfaces.mjs +1 -1
  43. package/esm2022/lib/dom/dom.module.mjs +11 -5
  44. package/esm2022/lib/dom/dom.service.mjs +5 -5
  45. package/esm2022/lib/dom/index.mjs +1 -1
  46. package/esm2022/lib/drag-drop/drag-drop.directive.mjs +6 -5
  47. package/esm2022/lib/drag-drop/drag-drop.module.mjs +9 -7
  48. package/esm2022/lib/drag-drop/index.mjs +1 -1
  49. package/esm2022/lib/dynamic-component/dynamic-component.module.mjs +11 -11
  50. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +6 -6
  51. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +8 -10
  52. package/esm2022/lib/dynamic-component/index.mjs +1 -1
  53. package/esm2022/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +1 -1
  54. package/esm2022/lib/dynamic-component/shared/dynamic-component.mjs +1 -1
  55. package/esm2022/lib/dynamic-component/shared/dynamic-component.service.mjs +5 -5
  56. package/esm2022/lib/dynamic-component/shared/index.mjs +1 -1
  57. package/esm2022/lib/entity/entity-selector/entity-selector.component.mjs +20 -10
  58. package/esm2022/lib/entity/entity-selector/entity-selector.module.mjs +8 -12
  59. package/esm2022/lib/entity/entity-table/entity-table-row.directive.mjs +7 -6
  60. package/esm2022/lib/entity/entity-table/entity-table.component.mjs +75 -33
  61. package/esm2022/lib/entity/entity-table/entity-table.module.mjs +8 -84
  62. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +7 -7
  63. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +1 -1
  64. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +8 -10
  65. package/esm2022/lib/entity/entity-table-paginator/index.mjs +3 -0
  66. package/esm2022/lib/entity/entity.module.mjs +14 -20
  67. package/esm2022/lib/entity/index.mjs +9 -1
  68. package/esm2022/lib/entity/shared/entity.enums.mjs +1 -1
  69. package/esm2022/lib/entity/shared/entity.interfaces.mjs +1 -1
  70. package/esm2022/lib/entity/shared/entity.utils.mjs +1 -1
  71. package/esm2022/lib/entity/shared/state.mjs +1 -1
  72. package/esm2022/lib/entity/shared/store.mjs +1 -1
  73. package/esm2022/lib/entity/shared/strategies/filter-custom-function.mjs +1 -1
  74. package/esm2022/lib/entity/shared/strategies/filter-selection.mjs +1 -1
  75. package/esm2022/lib/entity/shared/strategies/index.mjs +1 -1
  76. package/esm2022/lib/entity/shared/strategies/strategy.mjs +1 -1
  77. package/esm2022/lib/entity/shared/transaction.mjs +1 -1
  78. package/esm2022/lib/entity/shared/view.mjs +1 -1
  79. package/esm2022/lib/entity/shared/watcher.mjs +1 -1
  80. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  81. package/esm2022/lib/environment/index.mjs +1 -1
  82. package/esm2022/lib/flexible/flexible.component.mjs +6 -6
  83. package/esm2022/lib/flexible/flexible.module.mjs +9 -7
  84. package/esm2022/lib/flexible/flexible.type.mjs +1 -1
  85. package/esm2022/lib/flexible/index.mjs +1 -1
  86. package/esm2022/lib/form/form/form.component.mjs +9 -8
  87. package/esm2022/lib/form/form/form.module.mjs +8 -11
  88. package/esm2022/lib/form/form-field/form-field-select.component.mjs +31 -13
  89. package/esm2022/lib/form/form-field/form-field-text.component.mjs +31 -14
  90. package/esm2022/lib/form/form-field/form-field-textarea.component.mjs +27 -12
  91. package/esm2022/lib/form/form-field/form-field.component.mjs +8 -8
  92. package/esm2022/lib/form/form-field/form-field.module.mjs +13 -67
  93. package/esm2022/lib/form/form-field/index.mjs +11 -1
  94. package/esm2022/lib/form/form-group/form-group.component.mjs +19 -10
  95. package/esm2022/lib/form/form-group/form-group.module.mjs +8 -24
  96. package/esm2022/lib/form/form.module.mjs +15 -16
  97. package/esm2022/lib/form/index.mjs +9 -1
  98. package/esm2022/lib/form/shared/form-field-component.mjs +1 -1
  99. package/esm2022/lib/form/shared/form-field.service.mjs +5 -5
  100. package/esm2022/lib/form/shared/form.interfaces.mjs +1 -1
  101. package/esm2022/lib/form/shared/form.service.mjs +5 -5
  102. package/esm2022/lib/form/shared/form.utils.mjs +1 -1
  103. package/esm2022/lib/form/shared/index.mjs +1 -1
  104. package/esm2022/lib/form-dialog/form-dialog.component.mjs +29 -15
  105. package/esm2022/lib/form-dialog/form-dialog.interface.mjs +1 -1
  106. package/esm2022/lib/form-dialog/form-dialog.module.mjs +12 -33
  107. package/esm2022/lib/form-dialog/form-dialog.service.mjs +5 -5
  108. package/esm2022/lib/form-dialog/index.mjs +1 -1
  109. package/esm2022/lib/home-button/home-button.component.mjs +13 -9
  110. package/esm2022/lib/home-button/home-button.module.mjs +8 -29
  111. package/esm2022/lib/home-button/index.mjs +1 -1
  112. package/esm2022/lib/image/image-error.directive.mjs +7 -6
  113. package/esm2022/lib/image/image.module.mjs +9 -7
  114. package/esm2022/lib/image/index.mjs +4 -1
  115. package/esm2022/lib/image/secure-image.pipe.mjs +7 -6
  116. package/esm2022/lib/interactive-tour/index.mjs +1 -1
  117. package/esm2022/lib/interactive-tour/interactive-tour.component.mjs +23 -11
  118. package/esm2022/lib/interactive-tour/interactive-tour.interface.mjs +1 -1
  119. package/esm2022/lib/interactive-tour/interactive-tour.loader.mjs +5 -5
  120. package/esm2022/lib/interactive-tour/interactive-tour.module.mjs +8 -28
  121. package/esm2022/lib/interactive-tour/interactive-tour.service.mjs +5 -5
  122. package/esm2022/lib/json-dialog/index.mjs +1 -1
  123. package/esm2022/lib/json-dialog/json-dialog.component.mjs +19 -10
  124. package/esm2022/lib/json-dialog/json-dialog.module.mjs +9 -11
  125. package/esm2022/lib/json-dialog/json-dialog.service.mjs +5 -5
  126. package/esm2022/lib/keyvalue/index.mjs +1 -1
  127. package/esm2022/lib/keyvalue/keyvalue.module.mjs +9 -7
  128. package/esm2022/lib/keyvalue/keyvalue.pipe.mjs +6 -5
  129. package/esm2022/lib/list/index.mjs +4 -1
  130. package/esm2022/lib/list/list-item.directive.mjs +7 -6
  131. package/esm2022/lib/list/list.component.mjs +10 -9
  132. package/esm2022/lib/list/list.module.mjs +9 -11
  133. package/esm2022/lib/panel/index.mjs +1 -1
  134. package/esm2022/lib/panel/panel.component.mjs +6 -6
  135. package/esm2022/lib/panel/panel.module.mjs +10 -9
  136. package/esm2022/lib/select-value-dialog/index.mjs +1 -1
  137. package/esm2022/lib/select-value-dialog/select-value-check-radio-dialog.component.mjs +29 -13
  138. package/esm2022/lib/select-value-dialog/select-value-dialog.enums.mjs +1 -1
  139. package/esm2022/lib/select-value-dialog/select-value-dialog.interface.mjs +1 -1
  140. package/esm2022/lib/select-value-dialog/select-value-dialog.module.mjs +9 -41
  141. package/esm2022/lib/select-value-dialog/select-value-dialog.service.mjs +5 -5
  142. package/esm2022/lib/sidenav/index.mjs +1 -1
  143. package/esm2022/lib/sidenav/sidenav-shim.directive.mjs +8 -7
  144. package/esm2022/lib/sidenav/sidenav.module.mjs +9 -7
  145. package/esm2022/lib/spinner/index.mjs +7 -1
  146. package/esm2022/lib/spinner/spinner-activity.directive.mjs +8 -7
  147. package/esm2022/lib/spinner/spinner.component.mjs +8 -8
  148. package/esm2022/lib/spinner/spinner.module.mjs +13 -12
  149. package/esm2022/lib/stop-propagation/index.mjs +7 -1
  150. package/esm2022/lib/stop-propagation/stop-drop-propagation.directive.mjs +6 -5
  151. package/esm2022/lib/stop-propagation/stop-propagation.directive.mjs +6 -5
  152. package/esm2022/lib/stop-propagation/stop-propagation.module.mjs +9 -7
  153. package/esm2022/lib/table/index.mjs +1 -1
  154. package/esm2022/lib/table/table-action-color.enum.mjs +1 -1
  155. package/esm2022/lib/table/table-database.mjs +1 -1
  156. package/esm2022/lib/table/table-datasource.mjs +1 -1
  157. package/esm2022/lib/table/table-model.interface.mjs +1 -1
  158. package/esm2022/lib/table/table.component.mjs +34 -15
  159. package/esm2022/lib/table/table.module.mjs +9 -50
  160. package/esm2022/lib/tool/index.mjs +1 -1
  161. package/esm2022/lib/tool/shared/index.mjs +1 -1
  162. package/esm2022/lib/tool/shared/tool-component.mjs +1 -1
  163. package/esm2022/lib/tool/shared/tool.interface.mjs +1 -1
  164. package/esm2022/lib/tool/shared/tool.service.mjs +5 -5
  165. package/esm2022/lib/tool/shared/toolbox.enums.mjs +2 -7
  166. package/esm2022/lib/tool/shared/toolbox.mjs +1 -1
  167. package/esm2022/lib/tool/tool.module.mjs +12 -9
  168. package/esm2022/lib/tool/toolbox/toolbox.animation.mjs +1 -1
  169. package/esm2022/lib/tool/toolbox/toolbox.component.mjs +17 -12
  170. package/esm2022/lib/tool/toolbox/toolbox.module.mjs +8 -12
  171. package/esm2022/lib/widget/index.mjs +1 -1
  172. package/esm2022/lib/widget/shared/index.mjs +1 -1
  173. package/esm2022/lib/widget/shared/widget.interfaces.mjs +1 -1
  174. package/esm2022/lib/widget/shared/widget.mjs +1 -1
  175. package/esm2022/lib/widget/shared/widget.service.mjs +5 -5
  176. package/esm2022/lib/widget/widget-outlet/widget-outlet.component.mjs +8 -8
  177. package/esm2022/lib/widget/widget-outlet/widget-outlet.module.mjs +8 -11
  178. package/esm2022/lib/widget/widget.module.mjs +9 -7
  179. package/esm2022/lib/workspace/index.mjs +7 -1
  180. package/esm2022/lib/workspace/shared/index.mjs +1 -1
  181. package/esm2022/lib/workspace/shared/store.mjs +1 -1
  182. package/esm2022/lib/workspace/shared/workspace.interfaces.mjs +1 -1
  183. package/esm2022/lib/workspace/shared/workspace.mjs +1 -1
  184. package/esm2022/lib/workspace/workspace-selector/workspace-selector.component.mjs +6 -6
  185. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +8 -11
  186. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +8 -8
  187. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +8 -11
  188. package/esm2022/lib/workspace/workspace.module.mjs +13 -10
  189. package/esm2022/public_api.mjs +18 -18
  190. package/fesm2022/igo2-common.mjs +2991 -3000
  191. package/fesm2022/igo2-common.mjs.map +1 -1
  192. package/lib/action/action.module.d.ts +5 -3
  193. package/lib/action/actionbar/actionbar-item.component.d.ts +1 -1
  194. package/lib/action/actionbar/actionbar.component.d.ts +4 -3
  195. package/lib/action/actionbar/actionbar.module.d.ts +2 -12
  196. package/lib/backdrop/backdrop.component.d.ts +1 -1
  197. package/lib/backdrop/backdrop.module.d.ts +4 -2
  198. package/lib/badge-icon/badge-icon.directive.d.ts +1 -1
  199. package/lib/badge-icon/badge-icon.module.d.ts +4 -3
  200. package/lib/clickout/clickout.directive.d.ts +1 -1
  201. package/lib/clickout/clickout.module.d.ts +4 -1
  202. package/lib/clone/clone.module.d.ts +4 -1
  203. package/lib/clone/clone.pipe.d.ts +1 -1
  204. package/lib/collapsible/collapse.directive.d.ts +1 -1
  205. package/lib/collapsible/collapsible.component.d.ts +1 -1
  206. package/lib/collapsible/collapsible.module.d.ts +4 -3
  207. package/lib/collapsible/index.d.ts +3 -0
  208. package/lib/color-picker-form-field/color-picker-form-field.component.d.ts +1 -1
  209. package/lib/color-picker-form-field/color-picker-form-field.module.d.ts +4 -9
  210. package/lib/confirm-dialog/confirm-dialog.component.d.ts +1 -1
  211. package/lib/confirm-dialog/confirm-dialog.module.d.ts +4 -4
  212. package/lib/context-menu/context-menu.directive.d.ts +1 -1
  213. package/lib/context-menu/context-menu.module.d.ts +4 -1
  214. package/lib/context-menu/index.d.ts +3 -0
  215. package/lib/context-menu/long-press.directive.d.ts +1 -1
  216. package/lib/custom-html/custom-html.component.d.ts +1 -1
  217. package/lib/custom-html/custom-html.module.d.ts +4 -7
  218. package/lib/custom-html/custom-html.pipe.d.ts +1 -1
  219. package/lib/custom-html/index.d.ts +3 -0
  220. package/lib/dom/dom.module.d.ts +6 -0
  221. package/lib/drag-drop/drag-drop.directive.d.ts +1 -1
  222. package/lib/drag-drop/drag-drop.module.d.ts +4 -1
  223. package/lib/dynamic-component/dynamic-component.module.d.ts +5 -3
  224. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +1 -1
  225. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +2 -3
  226. package/lib/entity/entity-selector/entity-selector.component.d.ts +6 -5
  227. package/lib/entity/entity-selector/entity-selector.module.d.ts +2 -5
  228. package/lib/entity/entity-table/entity-table-row.directive.d.ts +1 -1
  229. package/lib/entity/entity-table/entity-table.component.d.ts +2 -2
  230. package/lib/entity/entity-table/entity-table.module.d.ts +2 -21
  231. package/lib/entity/entity-table-paginator/entity-table-paginator.component.d.ts +1 -1
  232. package/lib/entity/entity-table-paginator/entity-table-paginator.module.d.ts +2 -3
  233. package/lib/entity/entity-table-paginator/index.d.ts +2 -0
  234. package/lib/entity/entity.module.d.ts +7 -5
  235. package/lib/entity/index.d.ts +4 -0
  236. package/lib/entity/shared/entity.interfaces.d.ts +7 -0
  237. package/lib/flexible/flexible.component.d.ts +1 -1
  238. package/lib/flexible/flexible.module.d.ts +4 -1
  239. package/lib/form/form/form.component.d.ts +1 -1
  240. package/lib/form/form/form.module.d.ts +2 -4
  241. package/lib/form/form-field/form-field-select.component.d.ts +1 -1
  242. package/lib/form/form-field/form-field-text.component.d.ts +1 -1
  243. package/lib/form/form-field/form-field-textarea.component.d.ts +1 -1
  244. package/lib/form/form-field/form-field.component.d.ts +1 -1
  245. package/lib/form/form-field/form-field.module.d.ts +2 -11
  246. package/lib/form/form-field/index.d.ts +5 -0
  247. package/lib/form/form-group/form-group.component.d.ts +1 -1
  248. package/lib/form/form-group/form-group.module.d.ts +2 -6
  249. package/lib/form/form.module.d.ts +8 -6
  250. package/lib/form/index.d.ts +3 -0
  251. package/lib/form-dialog/form-dialog.component.d.ts +1 -1
  252. package/lib/form-dialog/form-dialog.module.d.ts +9 -9
  253. package/lib/home-button/home-button.component.d.ts +1 -1
  254. package/lib/home-button/home-button.module.d.ts +2 -7
  255. package/lib/image/image-error.directive.d.ts +1 -1
  256. package/lib/image/image.module.d.ts +4 -1
  257. package/lib/image/index.d.ts +3 -0
  258. package/lib/image/secure-image.pipe.d.ts +1 -1
  259. package/lib/interactive-tour/interactive-tour.component.d.ts +1 -1
  260. package/lib/interactive-tour/interactive-tour.module.d.ts +1 -6
  261. package/lib/json-dialog/json-dialog.component.d.ts +1 -1
  262. package/lib/json-dialog/json-dialog.module.d.ts +4 -5
  263. package/lib/keyvalue/keyvalue.module.d.ts +4 -1
  264. package/lib/keyvalue/keyvalue.pipe.d.ts +1 -1
  265. package/lib/list/index.d.ts +3 -0
  266. package/lib/list/list-item.directive.d.ts +1 -1
  267. package/lib/list/list.component.d.ts +1 -1
  268. package/lib/list/list.module.d.ts +4 -5
  269. package/lib/panel/panel.component.d.ts +1 -1
  270. package/lib/panel/panel.module.d.ts +4 -2
  271. package/lib/select-value-dialog/select-value-check-radio-dialog.component.d.ts +1 -1
  272. package/lib/select-value-dialog/select-value-dialog.module.d.ts +4 -9
  273. package/lib/sidenav/sidenav-shim.directive.d.ts +1 -1
  274. package/lib/sidenav/sidenav.module.d.ts +4 -1
  275. package/lib/spinner/index.d.ts +3 -0
  276. package/lib/spinner/spinner-activity.directive.d.ts +1 -1
  277. package/lib/spinner/spinner.component.d.ts +1 -1
  278. package/lib/spinner/spinner.module.d.ts +4 -3
  279. package/lib/stop-propagation/index.d.ts +3 -0
  280. package/lib/stop-propagation/stop-drop-propagation.directive.d.ts +1 -1
  281. package/lib/stop-propagation/stop-propagation.directive.d.ts +1 -1
  282. package/lib/stop-propagation/stop-propagation.module.d.ts +4 -1
  283. package/lib/table/table.component.d.ts +1 -1
  284. package/lib/table/table.module.d.ts +4 -12
  285. package/lib/tool/shared/toolbox.enums.d.ts +1 -5
  286. package/lib/tool/tool.module.d.ts +8 -3
  287. package/lib/tool/toolbox/toolbox.component.d.ts +1 -1
  288. package/lib/tool/toolbox/toolbox.module.d.ts +2 -5
  289. package/lib/widget/widget-outlet/widget-outlet.component.d.ts +1 -1
  290. package/lib/widget/widget-outlet/widget-outlet.module.d.ts +2 -4
  291. package/lib/widget/widget.module.d.ts +5 -3
  292. package/lib/workspace/index.d.ts +3 -0
  293. package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +3 -4
  294. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +2 -4
  295. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +1 -1
  296. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +2 -4
  297. package/lib/workspace/workspace.module.d.ts +6 -4
  298. package/package.json +9 -9
  299. package/public_api.d.ts +17 -17
  300. package/src/common-theme.scss +19 -19
  301. package/src/lib/action/action.theming.scss +5 -5
  302. package/src/lib/action/actionbar/actionbar-item.theming.scss +32 -32
  303. package/src/lib/action/actionbar/actionbar.theming.scss +22 -22
  304. package/src/lib/collapsible/collapsible.theming.scss +22 -22
  305. package/src/lib/entity/entity-selector/entity-selector.theming.scss +21 -21
  306. package/src/lib/entity/entity-table/entity-table.theming.scss +37 -37
  307. package/src/lib/entity/entity.theming.scss +7 -7
  308. package/src/lib/home-button/home-button.theming.scss +18 -18
  309. package/src/lib/interactive-tour/interactive-tour.theming.scss +32 -32
  310. package/src/lib/list/list.theming.scss +58 -58
  311. package/src/lib/panel/panel.theming.scss +30 -30
  312. package/src/lib/tool/tool.theming.scss +5 -5
  313. package/src/lib/tool/toolbox/toolbox.theming.scss +105 -105
@@ -319,4 +319,4 @@ export class EntityStore {
319
319
  return currentStateIsEmpty && newStateIsEmpty;
320
320
  }
321
321
  }
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBT3BDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQUl0Qjs7T0FFRztJQUNNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztJQUVsRDs7T0FFRztJQUNNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNNLEtBQUssQ0FBMkI7SUFFekM7O09BRUc7SUFDTSxJQUFJLENBQWdCO0lBRTdCOztPQUVHO0lBQ00sU0FBUyxDQUFvQztJQUV0RDs7T0FFRztJQUNNLE1BQU0sQ0FBbUI7SUFFbEM7O09BRUc7SUFDTSxXQUFXLENBQTJCO0lBRS9DOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDTyxNQUFNLENBQW9CO0lBRWxDOztPQUVH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TUFBTSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUMxQyxDQUFDO1NBQ0YsQ0FBQzthQUNELFdBQVcsQ0FBQyxDQUFDLE1BQTBCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFlBQWUsRUFBRSxRQUFXO1FBQ25ELElBQUksWUFBWSxLQUFLLFFBQVEsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDbkUsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBQzNELE9BQU8sbUJBQW1CLElBQUksZUFBZSxDQUFDO0lBQ2hELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRW50aXR5S2V5LCBFbnRpdHlSZWNvcmQsIEVudGl0eVN0YXRlIH0gZnJvbSAnLi9lbnRpdHkuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IGdldEVudGl0eUlkLCBnZXRFbnRpdHlQcm9wZXJ0eSB9IGZyb20gJy4vZW50aXR5LnV0aWxzJztcclxuaW1wb3J0IHsgRW50aXR5U3RhdGVNYW5hZ2VyIH0gZnJvbSAnLi9zdGF0ZSc7XHJcbmltcG9ydCB0eXBlIHsgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ2llcy9zdHJhdGVneSc7XHJcbmltcG9ydCB7IEVudGl0eVZpZXcgfSBmcm9tICcuL3ZpZXcnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdG9yZU9wdGlvbnMge1xyXG4gIGdldEtleT86IChlbnRpdHk6IG9iamVjdCkgPT4gRW50aXR5S2V5O1xyXG4gIGdldFByb3BlcnR5PzogKGVudGl0eTogb2JqZWN0LCBwcm9wZXJ0eTogc3RyaW5nKSA9PiBhbnk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBbiBlbnRpdHkgc3RvcmUgY2xhc3MgaG9sZHMgYW55IG51bWJlciBvZiBlbnRpdGllc1xyXG4gKiBhcyB3ZWxsIGFzIHRoZWlyIHN0YXRlLiBJdCBjYW4gYmUgb2JzZXJ2ZWQsIGZpbHRlcmVkIGFuZCBzb3J0ZWQgYW5kXHJcbiAqIHByb3ZpZGVzIG1ldGhvZHMgdG8gaW5zZXJ0LCB1cGRhdGUgb3IgZGVsZXRlIGVudGl0aWVzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVudGl0eVN0b3JlPFxyXG4gIEUgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3QsXHJcbiAgUyBleHRlbmRzIEVudGl0eVN0YXRlID0gRW50aXR5U3RhdGVcclxuPiB7XHJcbiAgLyoqXHJcbiAgICogT2JzZXJ2YWJsZSBvZiB0aGUgcmF3IGVudGl0aWVzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZW50aXRpZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFW10+KFtdKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTnVtYmVyIG9mIGVudGl0aWVzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgY291bnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG4gIGdldCBjb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY291bnQkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGUgc3RvcmUgaXMgZW1wdHlcclxuICAgKi9cclxuICByZWFkb25seSBlbXB0eSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmVtcHR5JC52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVudGl0eSBzdG9yZSBzdGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHN0YXRlOiBFbnRpdHlTdGF0ZU1hbmFnZXI8RSwgUz47XHJcblxyXG4gIC8qKlxyXG4gICAqIFZpZXcgb2YgYWxsIHRoZSBlbnRpdGllc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHZpZXc6IEVudGl0eVZpZXc8RT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFZpZXcgb2YgYWxsIHRoZSBlbnRpdGllcyBhbmQgdGhlaXIgc3RhdGVcclxuICAgKi9cclxuICByZWFkb25seSBzdGF0ZVZpZXc6IEVudGl0eVZpZXc8RSwgRW50aXR5UmVjb3JkPEUsIFM+PjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHRvIGdldCBhbiBlbnRpdHkncyBpZFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGdldEtleTogKEUpID0+IEVudGl0eUtleTtcclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHRvIGdldCBhbiBlbnRpdHkncyBuYW1lZCBwcm9wZXJ0eVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGdldFByb3BlcnR5OiAoRSwgcHJvcDogc3RyaW5nKSA9PiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3JlIGluZGV4XHJcbiAgICovXHJcbiAgZ2V0IGluZGV4KCk6IE1hcDxFbnRpdHlLZXksIEU+IHtcclxuICAgIHJldHVybiB0aGlzLl9pbmRleDtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaW5kZXg6IE1hcDxFbnRpdHlLZXksIEU+O1xyXG5cclxuICAvKipcclxuICAgKiBTdG9yZSBpbmRleFxyXG4gICAqL1xyXG4gIGdldCBwcmlzdGluZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9wcmlzdGluZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcHJpc3RpbmU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBTdHJhdGVnaWVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdHJhdGVnaWVzOiBFbnRpdHlTdG9yZVN0cmF0ZWd5W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoZW50aXRpZXM6IEVbXSwgb3B0aW9uczogRW50aXR5U3RvcmVPcHRpb25zID0ge30pIHtcclxuICAgIHRoaXMuZ2V0S2V5ID0gb3B0aW9ucy5nZXRLZXkgPyBvcHRpb25zLmdldEtleSA6IGdldEVudGl0eUlkO1xyXG4gICAgdGhpcy5nZXRQcm9wZXJ0eSA9IG9wdGlvbnMuZ2V0UHJvcGVydHlcclxuICAgICAgPyBvcHRpb25zLmdldFByb3BlcnR5XHJcbiAgICAgIDogZ2V0RW50aXR5UHJvcGVydHk7XHJcblxyXG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuY3JlYXRlU3RhdGVNYW5hZ2VyKCk7XHJcbiAgICB0aGlzLnZpZXcgPSB0aGlzLmNyZWF0ZURhdGFWaWV3KCk7XHJcbiAgICB0aGlzLnN0YXRlVmlldyA9IHRoaXMuY3JlYXRlU3RhdGVWaWV3KCk7XHJcblxyXG4gICAgdGhpcy52aWV3LmxpZnQoKTtcclxuICAgIHRoaXMuc3RhdGVWaWV3LmxpZnQoKTtcclxuXHJcbiAgICBpZiAoZW50aXRpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmxvYWQoZW50aXRpZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faW5kZXggPSB0aGlzLmdlbmVyYXRlSW5kZXgoZW50aXRpZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFuIGVudGl0eSBmcm9tIHRoZSBzdG9yZSBieSBrZXlcclxuICAgKiBAcGFyYW0ga2V5IEtleVxyXG4gICAqIEByZXR1cm5zIEVudGl0eVxyXG4gICAqL1xyXG4gIGdldChrZXk6IEVudGl0eUtleSk6IEUge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5kZXguZ2V0KGtleSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgYWxsIGVudGl0aWVzIGluIHRoZSBzdG9yZVxyXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGVudGl0aWVzXHJcbiAgICovXHJcbiAgYWxsKCk6IEVbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnRpdGllcyQudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhpcyBzdG9yZSdzIGVudGl0aWVzXHJcbiAgICogQHBhcmFtIGVudGl0aWVzIEVudGl0aWVzXHJcbiAgICovXHJcbiAgbG9hZChlbnRpdGllczogRVtdLCBwcmlzdGluZTogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIHRoaXMuX2luZGV4ID0gdGhpcy5nZW5lcmF0ZUluZGV4KGVudGl0aWVzKTtcclxuICAgIHRoaXMuX3ByaXN0aW5lID0gcHJpc3RpbmU7XHJcbiAgICB0aGlzLm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSBzdG9yZSdzIGVudGl0aWVzIGJ1dCBrZWVwIHRoZSBzdGF0ZSBhbmQgdmlld3MgaW50YWN0LlxyXG4gICAqIFZpZXdzIHdvbid0IHJldHVybiBhbnkgZGF0YSBidXQgZnV0dXJlIGRhdGEgd2lsbCBiZSBzdWJqZWN0IHRvIHRoZVxyXG4gICAqIGN1cnJlbnQgdmlld3MgZmlsdGVyIGFuZCBzb3J0XHJcbiAgICovXHJcbiAgc29mdENsZWFyKCkge1xyXG4gICAgaWYgKHRoaXMuaW5kZXggJiYgdGhpcy5pbmRleC5zaXplID4gMCkge1xyXG4gICAgICB0aGlzLmluZGV4LmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuX3ByaXN0aW5lID0gdHJ1ZTtcclxuICAgICAgdGhpcy5uZXh0KCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5kZXgpIHtcclxuICAgICAgdGhpcy51cGRhdGVDb3VudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgdGhlIHN0b3JlJ3MgZW50aXRpZXMsIHN0YXRlIGFuZCB2aWV3c1xyXG4gICAqL1xyXG4gIGNsZWFyKCkge1xyXG4gICAgdGhpcy5zdGF0ZVZpZXcuY2xlYXIoKTtcclxuICAgIHRoaXMudmlldy5jbGVhcigpO1xyXG4gICAgdGhpcy5zdGF0ZS5jbGVhcigpO1xyXG4gICAgdGhpcy5zb2Z0Q2xlYXIoKTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnN0YXRlVmlldy5kZXN0cm95KCk7XHJcbiAgICB0aGlzLnZpZXcuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5zZXJ0IGFuIGVudGl0eSBpbnRvIHRoZSBzdG9yZVxyXG4gICAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XHJcbiAgICovXHJcbiAgaW5zZXJ0KGVudGl0eTogRSkge1xyXG4gICAgdGhpcy5pbnNlcnRNYW55KFtlbnRpdHldKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluc2VydCBtYW55IGVudGl0aWVzIGludG8gdGhlIHN0b3JlXHJcbiAgICogQHBhcmFtIGVudGl0aWVzIEVudGl0aWVzXHJcbiAgICovXHJcbiAgaW5zZXJ0TWFueShlbnRpdGllczogRVtdKSB7XHJcbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IEUpID0+XHJcbiAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuZ2V0S2V5KGVudGl0eSksIGVudGl0eSlcclxuICAgICk7XHJcbiAgICB0aGlzLl9wcmlzdGluZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgb3IgaW5zZXJ0IGFuIGVudGl0eSBpbnRvIHRoZSBzdG9yZVxyXG4gICAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XHJcbiAgICovXHJcbiAgdXBkYXRlKGVudGl0eTogRSkge1xyXG4gICAgdGhpcy51cGRhdGVNYW55KFtlbnRpdHldKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBvciBpbnNlcnQgbWFueSBlbnRpdGllcyBpbnRvIHRoZSBzdG9yZVxyXG4gICAqIEBwYXJhbSBlbnRpdGllcyBFbnRpdGllc1xyXG4gICAqL1xyXG4gIHVwZGF0ZU1hbnkoZW50aXRpZXM6IEVbXSkge1xyXG4gICAgZW50aXRpZXMuZm9yRWFjaCgoZW50aXR5OiBFKSA9PlxyXG4gICAgICB0aGlzLmluZGV4LnNldCh0aGlzLmdldEtleShlbnRpdHkpLCBlbnRpdHkpXHJcbiAgICApO1xyXG4gICAgdGhpcy5fcHJpc3RpbmUgPSBmYWxzZTtcclxuICAgIHRoaXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgc3RyYXRlZ3kgdG8gdGhpcyBzdG9yZVxyXG4gICAqIEBwYXJhbSBzdHJhdGVneSBFbnRpdHkgc3RvcmUgc3RyYXRlZ3lcclxuICAgKiBAcmV0dXJucyBFbnRpdHkgc3RvcmVcclxuICAgKi9cclxuICBhZGRTdHJhdGVneShcclxuICAgIHN0cmF0ZWd5OiBFbnRpdHlTdG9yZVN0cmF0ZWd5LFxyXG4gICAgYWN0aXZhdGU6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICk6IEVudGl0eVN0b3JlIHtcclxuICAgIGNvbnN0IGV4aXN0aW5nU3RyYXRlZ3kgPSB0aGlzLnN0cmF0ZWdpZXMuZmluZChcclxuICAgICAgKF9zdHJhdGVneTogRW50aXR5U3RvcmVTdHJhdGVneSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBzdHJhdGVneS5jb25zdHJ1Y3RvciA9PT0gX3N0cmF0ZWd5LmNvbnN0cnVjdG9yO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgaWYgKGV4aXN0aW5nU3RyYXRlZ3kgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ0Egc3RyYXRlZ3kgb2YgdGhpcyB0eXBlIGFscmVhZHkgZXhpc3RzIG9uIHRoYXQgRW50aXR5U3RvcmUuJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RyYXRlZ2llcy5wdXNoKHN0cmF0ZWd5KTtcclxuICAgIHN0cmF0ZWd5LmJpbmRTdG9yZSh0aGlzKTtcclxuXHJcbiAgICBpZiAoYWN0aXZhdGUgPT09IHRydWUpIHtcclxuICAgICAgc3RyYXRlZ3kuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBhIHN0cmF0ZWd5IGZyb20gdGhpcyBzdG9yZVxyXG4gICAqIEBwYXJhbSBzdHJhdGVneSBFbnRpdHkgc3RvcmUgc3RyYXRlZ3lcclxuICAgKiBAcmV0dXJucyBFbnRpdHkgc3RvcmVcclxuICAgKi9cclxuICByZW1vdmVTdHJhdGVneShzdHJhdGVneTogRW50aXR5U3RvcmVTdHJhdGVneSk6IEVudGl0eVN0b3JlIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdHJhdGVnaWVzLmluZGV4T2Yoc3RyYXRlZ3kpO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5zdHJhdGVnaWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHN0cmF0ZWd5LnVuYmluZFN0b3JlKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gc3RyYXRlZ2llcyBvZiBhIGdpdmVuIHR5cGVcclxuICAgKiBAcGFyYW0gdHlwZSBFbnRpdHkgc3RvcmUgc3RyYXRlZ3kgY2xhc3NcclxuICAgKiBAcmV0dXJucyBTdHJhdGVnaWVzXHJcbiAgICovXHJcbiAgZ2V0U3RyYXRlZ3lPZlR5cGUodHlwZTogdHlwZW9mIEVudGl0eVN0b3JlU3RyYXRlZ3kpOiBFbnRpdHlTdG9yZVN0cmF0ZWd5IHtcclxuICAgIHJldHVybiB0aGlzLnN0cmF0ZWdpZXMuZmluZCgoc3RyYXRlZ3k6IEVudGl0eVN0b3JlU3RyYXRlZ3kpID0+IHtcclxuICAgICAgcmV0dXJuIHN0cmF0ZWd5IGluc3RhbmNlb2YgdHlwZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWN0aXZhdGUgc3RyYXRlZ2llcyBvZiBhIGdpdmVuIHR5cGVcclxuICAgKiBAcGFyYW0gdHlwZSBFbnRpdHkgc3RvcmUgc3RyYXRlZ3kgY2xhc3NcclxuICAgKi9cclxuICBhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKHR5cGU6IHR5cGVvZiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSB7XHJcbiAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuZ2V0U3RyYXRlZ3lPZlR5cGUodHlwZSk7XHJcbiAgICBpZiAoc3RyYXRlZ3kgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzdHJhdGVneS5hY3RpdmF0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVhY3RpdmF0ZSBzdHJhdGVnaWVzIG9mIGEgZ2l2ZW4gdHlwZVxyXG4gICAqIEBwYXJhbSB0eXBlIEVudGl0eSBzdG9yZSBzdHJhdGVneSBjbGFzc1xyXG4gICAqL1xyXG4gIGRlYWN0aXZhdGVTdHJhdGVneU9mVHlwZSh0eXBlOiB0eXBlb2YgRW50aXR5U3RvcmVTdHJhdGVneSkge1xyXG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLmdldFN0cmF0ZWd5T2ZUeXBlKHR5cGUpO1xyXG4gICAgaWYgKHN0cmF0ZWd5ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgc3RyYXRlZ3kuZGVhY3RpdmF0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGFuIGVudGl0eSBmcm9tIHRoZSBzdG9yZVxyXG4gICAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XHJcbiAgICovXHJcbiAgZGVsZXRlKGVudGl0eTogRSkge1xyXG4gICAgdGhpcy5kZWxldGVNYW55KFtlbnRpdHldKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZSBtYW55IGVudGl0aWVzIGZyb20gdGhlIHN0b3JlXHJcbiAgICogQHBhcmFtIGVudGl0aWVzIEVudGl0aWVzXHJcbiAgICovXHJcbiAgZGVsZXRlTWFueShlbnRpdGllczogRVtdKSB7XHJcbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IEUpID0+IHRoaXMuaW5kZXguZGVsZXRlKHRoaXMuZ2V0S2V5KGVudGl0eSkpKTtcclxuICAgIHRoaXMuX3ByaXN0aW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlbmVyYXRlIGEgY29tcGxldGUgaW5kZXggb2YgYWxsIHRoZSBlbnRpdGllc1xyXG4gICAqIEBwYXJhbSBlbnRpdGllcyBFbnRpdGllc1xyXG4gICAqIEByZXR1cm5zIEluZGV4XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUluZGV4KGVudGl0aWVzOiBFW10pOiBNYXA8RW50aXR5S2V5LCBFPiB7XHJcbiAgICBjb25zdCBlbnRyaWVzID0gZW50aXRpZXMubWFwKChlbnRpdHk6IEUpID0+IFt0aGlzLmdldEtleShlbnRpdHkpLCBlbnRpdHldKTtcclxuICAgIHJldHVybiBuZXcgTWFwKGVudHJpZXMgYXMgW0VudGl0eUtleSwgRV1bXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQdXNoIHRoZSBpbmRleCdzIGVudGl0aWVzIGludG8gdGhlIGVudGl0aWVzJCBvYnNlcnZhYmxlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBuZXh0KCkge1xyXG4gICAgdGhpcy5lbnRpdGllcyQubmV4dChBcnJheS5mcm9tKHRoaXMuaW5kZXgudmFsdWVzKCkpKTtcclxuICAgIHRoaXMudXBkYXRlQ291bnQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgc3RvcmUncyBjb3VudCBhbmQgZW1wdHlcclxuICAgKi9cclxuICBwcml2YXRlIHVwZGF0ZUNvdW50KCkge1xyXG4gICAgY29uc3QgY291bnQgPSB0aGlzLmluZGV4LnNpemU7XHJcbiAgICBjb25zdCBlbXB0eSA9IGNvdW50ID09PSAwO1xyXG4gICAgdGhpcy5jb3VudCQubmV4dChjb3VudCk7XHJcbiAgICB0aGlzLmVtcHR5JC5uZXh0KGVtcHR5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSB0aGUgZW50aXR5IHN0YXRlIG1hbmFnZXJcclxuICAgKiBAcmV0dXJucyBFbnRpdHlTdGF0ZU1hbmFnZXJcclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZVN0YXRlTWFuYWdlcigpIHtcclxuICAgIHJldHVybiBuZXcgRW50aXR5U3RhdGVNYW5hZ2VyPEUsIFM+KHtcclxuICAgICAgZ2V0S2V5OiB0aGlzLmdldEtleSxcclxuICAgICAgaW5kZXg6IHRoaXMuaW5kZXhcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRoZSBkYXRhIHZpZXdcclxuICAgKiBAcmV0dXJucyBFbnRpdHlWaWV3PEU+XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVEYXRhVmlldygpIHtcclxuICAgIHJldHVybiBuZXcgRW50aXR5VmlldzxFPih0aGlzLmVudGl0aWVzJCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgdGhlIHN0YXRlIHZpZXdcclxuICAgKiBAcmV0dXJucyBFbnRpdHlWaWV3PEVudGl0eVJlY29yZDxFPj5cclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZVN0YXRlVmlldygpIHtcclxuICAgIHJldHVybiBuZXcgRW50aXR5VmlldzxFLCBFbnRpdHlSZWNvcmQ8RSwgUz4+KHRoaXMudmlldy5hbGwkKCkpXHJcbiAgICAgIC5qb2luKHtcclxuICAgICAgICBzb3VyY2U6IHRoaXMuc3RhdGUuY2hhbmdlJCxcclxuICAgICAgICByZWR1Y2U6IChlbnRpdHk6IEUpOiBFbnRpdHlSZWNvcmQ8RSwgUz4gPT4ge1xyXG4gICAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5nZXRLZXkoZW50aXR5KTtcclxuICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZS5nZXQoZW50aXR5KTtcclxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRSZWNvcmQgPSB0aGlzLnN0YXRlVmlldy5nZXQoa2V5KTtcclxuXHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGN1cnJlbnRSZWNvcmQgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICBjdXJyZW50UmVjb3JkLmVudGl0eSA9PT0gZW50aXR5ICYmXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGVzQXJlVGhlU2FtZShjdXJyZW50UmVjb3JkLnN0YXRlLCBzdGF0ZSlcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICByZXR1cm4gY3VycmVudFJlY29yZDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjb25zdCByZXZpc2lvbiA9IGN1cnJlbnRSZWNvcmQgPyBjdXJyZW50UmVjb3JkLnJldmlzaW9uICsgMSA6IDE7XHJcbiAgICAgICAgICBjb25zdCByZWYgPSBgJHtrZXl9LSR7cmV2aXNpb259YDtcclxuICAgICAgICAgIHJldHVybiB7IGVudGl0eSwgc3RhdGUsIHJldmlzaW9uLCByZWYgfTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jcmVhdGVJbmRleCgocmVjb3JkOiBFbnRpdHlSZWNvcmQ8RSwgUz4pID0+IHRoaXMuZ2V0S2V5KHJlY29yZC5lbnRpdHkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGVzQXJlVGhlU2FtZShjdXJyZW50U3RhdGU6IFMsIG5ld1N0YXRlOiBTKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoY3VycmVudFN0YXRlID09PSBuZXdTdGF0ZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjdXJyZW50U3RhdGVJc0VtcHR5ID0gT2JqZWN0LmtleXMoY3VycmVudFN0YXRlKS5sZW5ndGggPT09IDA7XHJcbiAgICBjb25zdCBuZXdTdGF0ZUlzRW1wdHkgPSBPYmplY3Qua2V5cyhuZXdTdGF0ZSkubGVuZ3RoID09PSAwO1xyXG4gICAgcmV0dXJuIGN1cnJlbnRTdGF0ZUlzRW1wdHkgJiYgbmV3U3RhdGVJc0VtcHR5O1xyXG4gIH1cclxufVxyXG4iXX0=
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBT3BDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQUl0Qjs7T0FFRztJQUNNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztJQUVsRDs7T0FFRztJQUNNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNNLEtBQUssQ0FBMkI7SUFFekM7O09BRUc7SUFDTSxJQUFJLENBQWdCO0lBRTdCOztPQUVHO0lBQ00sU0FBUyxDQUFvQztJQUV0RDs7T0FFRztJQUNNLE1BQU0sQ0FBbUI7SUFFbEM7O09BRUc7SUFDTSxXQUFXLENBQTJCO0lBRS9DOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDTyxNQUFNLENBQW9CO0lBRWxDOztPQUVH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QztnQkFFRCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDMUMsQ0FBQztTQUNGLENBQUM7YUFDRCxXQUFXLENBQUMsQ0FBQyxNQUEwQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxZQUFlLEVBQUUsUUFBVztRQUNuRCxJQUFJLFlBQVksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUNuRSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDM0QsT0FBTyxtQkFBbUIsSUFBSSxlQUFlLENBQUM7SUFDaEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBFbnRpdHlLZXksIEVudGl0eVJlY29yZCwgRW50aXR5U3RhdGUgfSBmcm9tICcuL2VudGl0eS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgZ2V0RW50aXR5SWQsIGdldEVudGl0eVByb3BlcnR5IH0gZnJvbSAnLi9lbnRpdHkudXRpbHMnO1xyXG5pbXBvcnQgeyBFbnRpdHlTdGF0ZU1hbmFnZXIgfSBmcm9tICcuL3N0YXRlJztcclxuaW1wb3J0IHR5cGUgeyBFbnRpdHlTdG9yZVN0cmF0ZWd5IH0gZnJvbSAnLi9zdHJhdGVnaWVzL3N0cmF0ZWd5JztcclxuaW1wb3J0IHsgRW50aXR5VmlldyB9IGZyb20gJy4vdmlldyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0b3JlT3B0aW9ucyB7XHJcbiAgZ2V0S2V5PzogKGVudGl0eTogb2JqZWN0KSA9PiBFbnRpdHlLZXk7XHJcbiAgZ2V0UHJvcGVydHk/OiAoZW50aXR5OiBvYmplY3QsIHByb3BlcnR5OiBzdHJpbmcpID0+IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFuIGVudGl0eSBzdG9yZSBjbGFzcyBob2xkcyBhbnkgbnVtYmVyIG9mIGVudGl0aWVzXHJcbiAqIGFzIHdlbGwgYXMgdGhlaXIgc3RhdGUuIEl0IGNhbiBiZSBvYnNlcnZlZCwgZmlsdGVyZWQgYW5kIHNvcnRlZCBhbmRcclxuICogcHJvdmlkZXMgbWV0aG9kcyB0byBpbnNlcnQsIHVwZGF0ZSBvciBkZWxldGUgZW50aXRpZXMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmU8XHJcbiAgRSBleHRlbmRzIG9iamVjdCA9IG9iamVjdCxcclxuICBTIGV4dGVuZHMgRW50aXR5U3RhdGUgPSBFbnRpdHlTdGF0ZVxyXG4+IHtcclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIG9mIHRoZSByYXcgZW50aXRpZXNcclxuICAgKi9cclxuICByZWFkb25seSBlbnRpdGllcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVbXT4oW10pO1xyXG5cclxuICAvKipcclxuICAgKiBOdW1iZXIgb2YgZW50aXRpZXNcclxuICAgKi9cclxuICByZWFkb25seSBjb3VudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XHJcbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb3VudCQudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSBzdG9yZSBpcyBlbXB0eVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGVtcHR5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wdHkkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW50aXR5IHN0b3JlIHN0YXRlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc3RhdGU6IEVudGl0eVN0YXRlTWFuYWdlcjxFLCBTPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVmlldyBvZiBhbGwgdGhlIGVudGl0aWVzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgdmlldzogRW50aXR5VmlldzxFPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVmlldyBvZiBhbGwgdGhlIGVudGl0aWVzIGFuZCB0aGVpciBzdGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHN0YXRlVmlldzogRW50aXR5VmlldzxFLCBFbnRpdHlSZWNvcmQ8RSwgUz4+O1xyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gZ2V0IGFuIGVudGl0eSdzIGlkXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZ2V0S2V5OiAoRSkgPT4gRW50aXR5S2V5O1xyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gZ2V0IGFuIGVudGl0eSdzIG5hbWVkIHByb3BlcnR5XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZ2V0UHJvcGVydHk6IChFLCBwcm9wOiBzdHJpbmcpID0+IGFueTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcmUgaW5kZXhcclxuICAgKi9cclxuICBnZXQgaW5kZXgoKTogTWFwPEVudGl0eUtleSwgRT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luZGV4O1xyXG4gIH1cclxuICBwcml2YXRlIF9pbmRleDogTWFwPEVudGl0eUtleSwgRT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3JlIGluZGV4XHJcbiAgICovXHJcbiAgZ2V0IHByaXN0aW5lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ByaXN0aW5lO1xyXG4gIH1cclxuICBwcml2YXRlIF9wcmlzdGluZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0cmF0ZWdpZXNcclxuICAgKi9cclxuICBwcml2YXRlIHN0cmF0ZWdpZXM6IEVudGl0eVN0b3JlU3RyYXRlZ3lbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihlbnRpdGllczogRVtdLCBvcHRpb25zOiBFbnRpdHlTdG9yZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgdGhpcy5nZXRLZXkgPSBvcHRpb25zLmdldEtleSA/IG9wdGlvbnMuZ2V0S2V5IDogZ2V0RW50aXR5SWQ7XHJcbiAgICB0aGlzLmdldFByb3BlcnR5ID0gb3B0aW9ucy5nZXRQcm9wZXJ0eVxyXG4gICAgICA/IG9wdGlvbnMuZ2V0UHJvcGVydHlcclxuICAgICAgOiBnZXRFbnRpdHlQcm9wZXJ0eTtcclxuXHJcbiAgICB0aGlzLnN0YXRlID0gdGhpcy5jcmVhdGVTdGF0ZU1hbmFnZXIoKTtcclxuICAgIHRoaXMudmlldyA9IHRoaXMuY3JlYXRlRGF0YVZpZXcoKTtcclxuICAgIHRoaXMuc3RhdGVWaWV3ID0gdGhpcy5jcmVhdGVTdGF0ZVZpZXcoKTtcclxuXHJcbiAgICB0aGlzLnZpZXcubGlmdCgpO1xyXG4gICAgdGhpcy5zdGF0ZVZpZXcubGlmdCgpO1xyXG5cclxuICAgIGlmIChlbnRpdGllcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubG9hZChlbnRpdGllcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9pbmRleCA9IHRoaXMuZ2VuZXJhdGVJbmRleChlbnRpdGllcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgYW4gZW50aXR5IGZyb20gdGhlIHN0b3JlIGJ5IGtleVxyXG4gICAqIEBwYXJhbSBrZXkgS2V5XHJcbiAgICogQHJldHVybnMgRW50aXR5XHJcbiAgICovXHJcbiAgZ2V0KGtleTogRW50aXR5S2V5KTogRSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbmRleC5nZXQoa2V5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBhbGwgZW50aXRpZXMgaW4gdGhlIHN0b3JlXHJcbiAgICogQHJldHVybnMgQXJyYXkgb2YgZW50aXRpZXNcclxuICAgKi9cclxuICBhbGwoKTogRVtdIHtcclxuICAgIHJldHVybiB0aGlzLmVudGl0aWVzJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGlzIHN0b3JlJ3MgZW50aXRpZXNcclxuICAgKiBAcGFyYW0gZW50aXRpZXMgRW50aXRpZXNcclxuICAgKi9cclxuICBsb2FkKGVudGl0aWVzOiBFW10sIHByaXN0aW5lOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5faW5kZXggPSB0aGlzLmdlbmVyYXRlSW5kZXgoZW50aXRpZXMpO1xyXG4gICAgdGhpcy5fcHJpc3RpbmUgPSBwcmlzdGluZTtcclxuICAgIHRoaXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgdGhlIHN0b3JlJ3MgZW50aXRpZXMgYnV0IGtlZXAgdGhlIHN0YXRlIGFuZCB2aWV3cyBpbnRhY3QuXHJcbiAgICogVmlld3Mgd29uJ3QgcmV0dXJuIGFueSBkYXRhIGJ1dCBmdXR1cmUgZGF0YSB3aWxsIGJlIHN1YmplY3QgdG8gdGhlXHJcbiAgICogY3VycmVudCB2aWV3cyBmaWx0ZXIgYW5kIHNvcnRcclxuICAgKi9cclxuICBzb2Z0Q2xlYXIoKSB7XHJcbiAgICBpZiAodGhpcy5pbmRleCAmJiB0aGlzLmluZGV4LnNpemUgPiAwKSB7XHJcbiAgICAgIHRoaXMuaW5kZXguY2xlYXIoKTtcclxuICAgICAgdGhpcy5fcHJpc3RpbmUgPSB0cnVlO1xyXG4gICAgICB0aGlzLm5leHQoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbmRleCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvdW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciB0aGUgc3RvcmUncyBlbnRpdGllcywgc3RhdGUgYW5kIHZpZXdzXHJcbiAgICovXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnN0YXRlVmlldy5jbGVhcigpO1xyXG4gICAgdGhpcy52aWV3LmNsZWFyKCk7XHJcbiAgICB0aGlzLnN0YXRlLmNsZWFyKCk7XHJcbiAgICB0aGlzLnNvZnRDbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3RhdGVWaWV3LmRlc3Ryb3koKTtcclxuICAgIHRoaXMudmlldy5kZXN0cm95KCk7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnNlcnQgYW4gZW50aXR5IGludG8gdGhlIHN0b3JlXHJcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcclxuICAgKi9cclxuICBpbnNlcnQoZW50aXR5OiBFKSB7XHJcbiAgICB0aGlzLmluc2VydE1hbnkoW2VudGl0eV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5zZXJ0IG1hbnkgZW50aXRpZXMgaW50byB0aGUgc3RvcmVcclxuICAgKiBAcGFyYW0gZW50aXRpZXMgRW50aXRpZXNcclxuICAgKi9cclxuICBpbnNlcnRNYW55KGVudGl0aWVzOiBFW10pIHtcclxuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eTogRSkgPT5cclxuICAgICAgdGhpcy5pbmRleC5zZXQodGhpcy5nZXRLZXkoZW50aXR5KSwgZW50aXR5KVxyXG4gICAgKTtcclxuICAgIHRoaXMuX3ByaXN0aW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBvciBpbnNlcnQgYW4gZW50aXR5IGludG8gdGhlIHN0b3JlXHJcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcclxuICAgKi9cclxuICB1cGRhdGUoZW50aXR5OiBFKSB7XHJcbiAgICB0aGlzLnVwZGF0ZU1hbnkoW2VudGl0eV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIG9yIGluc2VydCBtYW55IGVudGl0aWVzIGludG8gdGhlIHN0b3JlXHJcbiAgICogQHBhcmFtIGVudGl0aWVzIEVudGl0aWVzXHJcbiAgICovXHJcbiAgdXBkYXRlTWFueShlbnRpdGllczogRVtdKSB7XHJcbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IEUpID0+XHJcbiAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuZ2V0S2V5KGVudGl0eSksIGVudGl0eSlcclxuICAgICk7XHJcbiAgICB0aGlzLl9wcmlzdGluZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBzdHJhdGVneSB0byB0aGlzIHN0b3JlXHJcbiAgICogQHBhcmFtIHN0cmF0ZWd5IEVudGl0eSBzdG9yZSBzdHJhdGVneVxyXG4gICAqIEByZXR1cm5zIEVudGl0eSBzdG9yZVxyXG4gICAqL1xyXG4gIGFkZFN0cmF0ZWd5KFxyXG4gICAgc3RyYXRlZ3k6IEVudGl0eVN0b3JlU3RyYXRlZ3ksXHJcbiAgICBhY3RpdmF0ZTogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogRW50aXR5U3RvcmUge1xyXG4gICAgY29uc3QgZXhpc3RpbmdTdHJhdGVneSA9IHRoaXMuc3RyYXRlZ2llcy5maW5kKFxyXG4gICAgICAoX3N0cmF0ZWd5OiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHN0cmF0ZWd5LmNvbnN0cnVjdG9yID09PSBfc3RyYXRlZ3kuY29uc3RydWN0b3I7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAoZXhpc3RpbmdTdHJhdGVneSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnQSBzdHJhdGVneSBvZiB0aGlzIHR5cGUgYWxyZWFkeSBleGlzdHMgb24gdGhhdCBFbnRpdHlTdG9yZS4nXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdHJhdGVnaWVzLnB1c2goc3RyYXRlZ3kpO1xyXG4gICAgc3RyYXRlZ3kuYmluZFN0b3JlKHRoaXMpO1xyXG5cclxuICAgIGlmIChhY3RpdmF0ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICBzdHJhdGVneS5hY3RpdmF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGEgc3RyYXRlZ3kgZnJvbSB0aGlzIHN0b3JlXHJcbiAgICogQHBhcmFtIHN0cmF0ZWd5IEVudGl0eSBzdG9yZSBzdHJhdGVneVxyXG4gICAqIEByZXR1cm5zIEVudGl0eSBzdG9yZVxyXG4gICAqL1xyXG4gIHJlbW92ZVN0cmF0ZWd5KHN0cmF0ZWd5OiBFbnRpdHlTdG9yZVN0cmF0ZWd5KTogRW50aXR5U3RvcmUge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnN0cmF0ZWdpZXMuaW5kZXhPZihzdHJhdGVneSk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICB0aGlzLnN0cmF0ZWdpZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgc3RyYXRlZ3kudW5iaW5kU3RvcmUodGhpcyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiBzdHJhdGVnaWVzIG9mIGEgZ2l2ZW4gdHlwZVxyXG4gICAqIEBwYXJhbSB0eXBlIEVudGl0eSBzdG9yZSBzdHJhdGVneSBjbGFzc1xyXG4gICAqIEByZXR1cm5zIFN0cmF0ZWdpZXNcclxuICAgKi9cclxuICBnZXRTdHJhdGVneU9mVHlwZSh0eXBlOiB0eXBlb2YgRW50aXR5U3RvcmVTdHJhdGVneSk6IEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RyYXRlZ2llcy5maW5kKChzdHJhdGVneTogRW50aXR5U3RvcmVTdHJhdGVneSkgPT4ge1xyXG4gICAgICByZXR1cm4gc3RyYXRlZ3kgaW5zdGFuY2VvZiB0eXBlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSBzdHJhdGVnaWVzIG9mIGEgZ2l2ZW4gdHlwZVxyXG4gICAqIEBwYXJhbSB0eXBlIEVudGl0eSBzdG9yZSBzdHJhdGVneSBjbGFzc1xyXG4gICAqL1xyXG4gIGFjdGl2YXRlU3RyYXRlZ3lPZlR5cGUodHlwZTogdHlwZW9mIEVudGl0eVN0b3JlU3RyYXRlZ3kpIHtcclxuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5nZXRTdHJhdGVneU9mVHlwZSh0eXBlKTtcclxuICAgIGlmIChzdHJhdGVneSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHN0cmF0ZWd5LmFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWFjdGl2YXRlIHN0cmF0ZWdpZXMgb2YgYSBnaXZlbiB0eXBlXHJcbiAgICogQHBhcmFtIHR5cGUgRW50aXR5IHN0b3JlIHN0cmF0ZWd5IGNsYXNzXHJcbiAgICovXHJcbiAgZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKHR5cGU6IHR5cGVvZiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSB7XHJcbiAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuZ2V0U3RyYXRlZ3lPZlR5cGUodHlwZSk7XHJcbiAgICBpZiAoc3RyYXRlZ3kgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzdHJhdGVneS5kZWFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgYW4gZW50aXR5IGZyb20gdGhlIHN0b3JlXHJcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcclxuICAgKi9cclxuICBkZWxldGUoZW50aXR5OiBFKSB7XHJcbiAgICB0aGlzLmRlbGV0ZU1hbnkoW2VudGl0eV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIG1hbnkgZW50aXRpZXMgZnJvbSB0aGUgc3RvcmVcclxuICAgKiBAcGFyYW0gZW50aXRpZXMgRW50aXRpZXNcclxuICAgKi9cclxuICBkZWxldGVNYW55KGVudGl0aWVzOiBFW10pIHtcclxuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eTogRSkgPT4gdGhpcy5pbmRleC5kZWxldGUodGhpcy5nZXRLZXkoZW50aXR5KSkpO1xyXG4gICAgdGhpcy5fcHJpc3RpbmUgPSBmYWxzZTtcclxuICAgIHRoaXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGUgYSBjb21wbGV0ZSBpbmRleCBvZiBhbGwgdGhlIGVudGl0aWVzXHJcbiAgICogQHBhcmFtIGVudGl0aWVzIEVudGl0aWVzXHJcbiAgICogQHJldHVybnMgSW5kZXhcclxuICAgKi9cclxuICBwcml2YXRlIGdlbmVyYXRlSW5kZXgoZW50aXRpZXM6IEVbXSk6IE1hcDxFbnRpdHlLZXksIEU+IHtcclxuICAgIGNvbnN0IGVudHJpZXMgPSBlbnRpdGllcy5tYXAoKGVudGl0eTogRSkgPT4gW3RoaXMuZ2V0S2V5KGVudGl0eSksIGVudGl0eV0pO1xyXG4gICAgcmV0dXJuIG5ldyBNYXAoZW50cmllcyBhcyBbRW50aXR5S2V5LCBFXVtdKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFB1c2ggdGhlIGluZGV4J3MgZW50aXRpZXMgaW50byB0aGUgZW50aXRpZXMkIG9ic2VydmFibGVcclxuICAgKi9cclxuICBwcml2YXRlIG5leHQoKSB7XHJcbiAgICB0aGlzLmVudGl0aWVzJC5uZXh0KEFycmF5LmZyb20odGhpcy5pbmRleC52YWx1ZXMoKSkpO1xyXG4gICAgdGhpcy51cGRhdGVDb3VudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHRoZSBzdG9yZSdzIGNvdW50IGFuZCBlbXB0eVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlQ291bnQoKSB7XHJcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuaW5kZXguc2l6ZTtcclxuICAgIGNvbnN0IGVtcHR5ID0gY291bnQgPT09IDA7XHJcbiAgICB0aGlzLmNvdW50JC5uZXh0KGNvdW50KTtcclxuICAgIHRoaXMuZW1wdHkkLm5leHQoZW1wdHkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRoZSBlbnRpdHkgc3RhdGUgbWFuYWdlclxyXG4gICAqIEByZXR1cm5zIEVudGl0eVN0YXRlTWFuYWdlclxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlU3RhdGVNYW5hZ2VyKCkge1xyXG4gICAgcmV0dXJuIG5ldyBFbnRpdHlTdGF0ZU1hbmFnZXI8RSwgUz4oe1xyXG4gICAgICBnZXRLZXk6IHRoaXMuZ2V0S2V5LFxyXG4gICAgICBpbmRleDogdGhpcy5pbmRleFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgdGhlIGRhdGEgdmlld1xyXG4gICAqIEByZXR1cm5zIEVudGl0eVZpZXc8RT5cclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZURhdGFWaWV3KCkge1xyXG4gICAgcmV0dXJuIG5ldyBFbnRpdHlWaWV3PEU+KHRoaXMuZW50aXRpZXMkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSB0aGUgc3RhdGUgdmlld1xyXG4gICAqIEByZXR1cm5zIEVudGl0eVZpZXc8RW50aXR5UmVjb3JkPEU+PlxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlU3RhdGVWaWV3KCkge1xyXG4gICAgcmV0dXJuIG5ldyBFbnRpdHlWaWV3PEUsIEVudGl0eVJlY29yZDxFLCBTPj4odGhpcy52aWV3LmFsbCQoKSlcclxuICAgICAgLmpvaW4oe1xyXG4gICAgICAgIHNvdXJjZTogdGhpcy5zdGF0ZS5jaGFuZ2UkLFxyXG4gICAgICAgIHJlZHVjZTogKGVudGl0eTogRSk6IEVudGl0eVJlY29yZDxFLCBTPiA9PiB7XHJcbiAgICAgICAgICBjb25zdCBrZXkgPSB0aGlzLmdldEtleShlbnRpdHkpO1xyXG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlLmdldChlbnRpdHkpO1xyXG4gICAgICAgICAgY29uc3QgY3VycmVudFJlY29yZCA9IHRoaXMuc3RhdGVWaWV3LmdldChrZXkpO1xyXG5cclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgY3VycmVudFJlY29yZCAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgIGN1cnJlbnRSZWNvcmQuZW50aXR5ID09PSBlbnRpdHkgJiZcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZXNBcmVUaGVTYW1lKGN1cnJlbnRSZWNvcmQuc3RhdGUsIHN0YXRlKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50UmVjb3JkO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGNvbnN0IHJldmlzaW9uID0gY3VycmVudFJlY29yZCA/IGN1cnJlbnRSZWNvcmQucmV2aXNpb24gKyAxIDogMTtcclxuICAgICAgICAgIGNvbnN0IHJlZiA9IGAke2tleX0tJHtyZXZpc2lvbn1gO1xyXG4gICAgICAgICAgcmV0dXJuIHsgZW50aXR5LCBzdGF0ZSwgcmV2aXNpb24sIHJlZiB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgLmNyZWF0ZUluZGV4KChyZWNvcmQ6IEVudGl0eVJlY29yZDxFLCBTPikgPT4gdGhpcy5nZXRLZXkocmVjb3JkLmVudGl0eSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0ZXNBcmVUaGVTYW1lKGN1cnJlbnRTdGF0ZTogUywgbmV3U3RhdGU6IFMpOiBib29sZWFuIHtcclxuICAgIGlmIChjdXJyZW50U3RhdGUgPT09IG5ld1N0YXRlKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZUlzRW1wdHkgPSBPYmplY3Qua2V5cyhjdXJyZW50U3RhdGUpLmxlbmd0aCA9PT0gMDtcclxuICAgIGNvbnN0IG5ld1N0YXRlSXNFbXB0eSA9IE9iamVjdC5rZXlzKG5ld1N0YXRlKS5sZW5ndGggPT09IDA7XHJcbiAgICByZXR1cm4gY3VycmVudFN0YXRlSXNFbXB0eSAmJiBuZXdTdGF0ZUlzRW1wdHk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -77,4 +77,4 @@ export class EntityStoreFilterCustomFuncStrategy extends EntityStoreStrategy {
77
77
  this.filters.delete(store);
78
78
  }
79
79
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWN1c3RvbS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2VudGl0eS9zaGFyZWQvc3RyYXRlZ2llcy9maWx0ZXItY3VzdG9tLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsbUJBQW1CO0lBQ3BEO0lBQXRCLFlBQXNCLE9BQXVDO1FBQzNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURLLFlBQU8sR0FBUCxPQUFPLENBQWdDO0lBRTdELENBQUM7SUFFRDs7T0FFRztJQUNLLE9BQU8sR0FBNkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUV0RDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBa0I7UUFDMUIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQWtCO1FBQzVCLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFVBQVU7UUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDTyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSyxTQUFTO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVztRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxXQUFXLENBQUMsS0FBa0I7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQ2QsS0FBSyxFQUNMLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWEsQ0FBQyxLQUFrQjtRQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDMUIsT0FBTztTQUNSO1FBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneUZ1bmNPcHRpb25zIH0gZnJvbSAnLi4vZW50aXR5LmludGVyZmFjZXMnO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZVN0cmF0ZWd5IH0gZnJvbSAnLi9zdHJhdGVneSc7XG5cbi8qKlxuICogV2hlbiBhY3RpdmUsIHRoaXMgc3RyYXRlZ3kgZmlsdGVycyBhIHN0b3JlJ3Mgc3RhdGVWaWV3IHRvIHJldHVyblxuICogc2VsZWN0ZWQgZW50aXRpZXMgb25seS5cbiAqL1xuZXhwb3J0IGNsYXNzIEVudGl0eVN0b3JlRmlsdGVyQ3VzdG9tRnVuY1N0cmF0ZWd5IGV4dGVuZHMgRW50aXR5U3RvcmVTdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBFbnRpdHlTdG9yZVN0cmF0ZWd5RnVuY09wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZSAvIGZpbHRlciBpZHMgbWFwXG4gICAqL1xuICBwcml2YXRlIGZpbHRlcnM6IE1hcDxFbnRpdHlTdG9yZSwgc3RyaW5nPiA9IG5ldyBNYXAoKTtcblxuICAvKipcbiAgICogQmluZCB0aGlzIHN0cmF0ZWd5IHRvIGEgc3RvcmUgYW5kIHN0YXJ0IGZpbHRlcmluZyBpdFxuICAgKiBAcGFyYW0gc3RvcmUgRW50aXR5IHN0b3JlXG4gICAqL1xuICBiaW5kU3RvcmUoc3RvcmU6IEVudGl0eVN0b3JlKSB7XG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuZmlsdGVyU3RvcmUoc3RvcmUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIHN0b3AgZmlsdGVyaW5nIGl0XG4gICAqIEBwYXJhbSBzdG9yZSBFbnRpdHkgc3RvcmVcbiAgICovXG4gIHVuYmluZFN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xuICAgIHN1cGVyLnVuYmluZFN0b3JlKHN0b3JlKTtcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMudW5maWx0ZXJTdG9yZShzdG9yZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IGZpbHRlcmluZyBhbGwgc3RvcmVzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIGRvQWN0aXZhdGUoKSB7XG4gICAgdGhpcy5maWx0ZXJBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIGZpbHRlcmluZyBhbGwgc3RvcmVzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIGRvRGVhY3RpdmF0ZSgpIHtcbiAgICB0aGlzLnVuZmlsdGVyQWxsKCk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGFsbCBzdG9yZXNcbiAgICovXG4gIHByaXZhdGUgZmlsdGVyQWxsKCkge1xuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBFbnRpdHlTdG9yZSkgPT4gdGhpcy5maWx0ZXJTdG9yZShzdG9yZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuZmlsdGVyIGFsbCBzdG9yZXNcbiAgICovXG4gIHByaXZhdGUgdW5maWx0ZXJBbGwoKSB7XG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEVudGl0eVN0b3JlKSA9PiB0aGlzLnVuZmlsdGVyU3RvcmUoc3RvcmUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgYSBzdG9yZSBhbmQgYWRkIGl0IHRvIHRoZSBmaWx0ZXJzIG1hcFxuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcbiAgICB0aGlzLmZpbHRlcnMuc2V0KFxuICAgICAgc3RvcmUsXG4gICAgICBzdG9yZS5zdGF0ZVZpZXcuYWRkRmlsdGVyKHRoaXMub3B0aW9ucy5maWx0ZXJDbGF1c2VGdW5jKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVW5maWx0ZXIgYSBzdG9yZSBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGZpbHRlcnMgbWFwXG4gICAqL1xuICBwcml2YXRlIHVuZmlsdGVyU3RvcmUoc3RvcmU6IEVudGl0eVN0b3JlKSB7XG4gICAgY29uc3QgZmlsdGVySWQgPSB0aGlzLmZpbHRlcnMuZ2V0KHN0b3JlKTtcbiAgICBpZiAoZmlsdGVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN0b3JlLnN0YXRlVmlldy5yZW1vdmVGaWx0ZXIoZmlsdGVySWQpO1xuICAgIHRoaXMuZmlsdGVycy5kZWxldGUoc3RvcmUpO1xuICB9XG59XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWN1c3RvbS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2VudGl0eS9zaGFyZWQvc3RyYXRlZ2llcy9maWx0ZXItY3VzdG9tLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsbUJBQW1CO0lBQ3BEO0lBQXRCLFlBQXNCLE9BQXVDO1FBQzNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURLLFlBQU8sR0FBUCxPQUFPLENBQWdDO0lBRTdELENBQUM7SUFFRDs7T0FFRztJQUNLLE9BQU8sR0FBNkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUV0RDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBa0I7UUFDMUIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFrQjtRQUM1QixLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVTtRQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVk7UUFDcEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVM7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxLQUFrQjtRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FDZCxLQUFLLEVBQ0wsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYSxDQUFDLEtBQWtCO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneUZ1bmNPcHRpb25zIH0gZnJvbSAnLi4vZW50aXR5LmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFbnRpdHlTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcclxuaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ3knO1xyXG5cclxuLyoqXHJcbiAqIFdoZW4gYWN0aXZlLCB0aGlzIHN0cmF0ZWd5IGZpbHRlcnMgYSBzdG9yZSdzIHN0YXRlVmlldyB0byByZXR1cm5cclxuICogc2VsZWN0ZWQgZW50aXRpZXMgb25seS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZUZpbHRlckN1c3RvbUZ1bmNTdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBFbnRpdHlTdG9yZVN0cmF0ZWd5RnVuY09wdGlvbnMpIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcmUgLyBmaWx0ZXIgaWRzIG1hcFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmlsdGVyczogTWFwPEVudGl0eVN0b3JlLCBzdHJpbmc+ID0gbmV3IE1hcCgpO1xyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgZmlsdGVyaW5nIGl0XHJcbiAgICogQHBhcmFtIHN0b3JlIEVudGl0eSBzdG9yZVxyXG4gICAqL1xyXG4gIGJpbmRTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcclxuICAgIHN1cGVyLmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5maWx0ZXJTdG9yZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIHN0b3AgZmlsdGVyaW5nIGl0XHJcbiAgICogQHBhcmFtIHN0b3JlIEVudGl0eSBzdG9yZVxyXG4gICAqL1xyXG4gIHVuYmluZFN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xyXG4gICAgc3VwZXIudW5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudW5maWx0ZXJTdG9yZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdGFydCBmaWx0ZXJpbmcgYWxsIHN0b3Jlc1xyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0FjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5maWx0ZXJBbGwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3AgZmlsdGVyaW5nIGFsbCBzdG9yZXNcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy51bmZpbHRlckFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIGFsbCBzdG9yZXNcclxuICAgKi9cclxuICBwcml2YXRlIGZpbHRlckFsbCgpIHtcclxuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBFbnRpdHlTdG9yZSkgPT4gdGhpcy5maWx0ZXJTdG9yZShzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5maWx0ZXIgYWxsIHN0b3Jlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdW5maWx0ZXJBbGwoKSB7XHJcbiAgICB0aGlzLnN0b3Jlcy5mb3JFYWNoKChzdG9yZTogRW50aXR5U3RvcmUpID0+IHRoaXMudW5maWx0ZXJTdG9yZShzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIGEgc3RvcmUgYW5kIGFkZCBpdCB0byB0aGUgZmlsdGVycyBtYXBcclxuICAgKi9cclxuICBwcml2YXRlIGZpbHRlclN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xyXG4gICAgdGhpcy5maWx0ZXJzLnNldChcclxuICAgICAgc3RvcmUsXHJcbiAgICAgIHN0b3JlLnN0YXRlVmlldy5hZGRGaWx0ZXIodGhpcy5vcHRpb25zLmZpbHRlckNsYXVzZUZ1bmMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5maWx0ZXIgYSBzdG9yZSBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGZpbHRlcnMgbWFwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bmZpbHRlclN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xyXG4gICAgY29uc3QgZmlsdGVySWQgPSB0aGlzLmZpbHRlcnMuZ2V0KHN0b3JlKTtcclxuICAgIGlmIChmaWx0ZXJJZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZS5zdGF0ZVZpZXcucmVtb3ZlRmlsdGVyKGZpbHRlcklkKTtcclxuICAgIHRoaXMuZmlsdGVycy5kZWxldGUoc3RvcmUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -78,4 +78,4 @@ export class EntityStoreFilterSelectionStrategy extends EntityStoreStrategy {
78
78
  this.filters.delete(store);
79
79
  }
80
80
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNlbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2VudGl0eS9zaGFyZWQvc3RyYXRlZ2llcy9maWx0ZXItc2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsbUJBQW1CO0lBQ3pFOztPQUVHO0lBQ0ssT0FBTyxHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXREOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFrQjtRQUMxQixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsS0FBa0I7UUFDNUIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVTtRQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVk7UUFDcEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVM7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxLQUFrQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLE9BQU87U0FDUjtRQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBNEIsRUFBRSxFQUFFO1lBQzlDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDO1FBQ3hDLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWEsQ0FBQyxLQUFrQjtRQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDMUIsT0FBTztTQUNSO1FBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5UmVjb3JkIH0gZnJvbSAnLi4vZW50aXR5LmludGVyZmFjZXMnO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZVN0cmF0ZWd5IH0gZnJvbSAnLi9zdHJhdGVneSc7XG5cbi8qKlxuICogV2hlbiBhY3RpdmUsIHRoaXMgc3RyYXRlZ3kgZmlsdGVycyBhIHN0b3JlJ3Mgc3RhdGVWaWV3IHRvIHJldHVyblxuICogc2VsZWN0ZWQgZW50aXRpZXMgb25seS5cbiAqL1xuZXhwb3J0IGNsYXNzIEVudGl0eVN0b3JlRmlsdGVyU2VsZWN0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBFbnRpdHlTdG9yZVN0cmF0ZWd5IHtcbiAgLyoqXG4gICAqIFN0b3JlIC8gZmlsdGVyIGlkcyBtYXBcbiAgICovXG4gIHByaXZhdGUgZmlsdGVyczogTWFwPEVudGl0eVN0b3JlLCBzdHJpbmc+ID0gbmV3IE1hcCgpO1xuXG4gIC8qKlxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgZmlsdGVyaW5nIGl0XG4gICAqIEBwYXJhbSBzdG9yZSBFbnRpdHkgc3RvcmVcbiAgICovXG4gIGJpbmRTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcbiAgICBzdXBlci5iaW5kU3RvcmUoc3RvcmUpO1xuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5maWx0ZXJTdG9yZShzdG9yZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVuYmluZCB0aGlzIHN0cmF0ZWd5IGZyb20gYSBzdG9yZSBhbmQgc3RvcCBmaWx0ZXJpbmcgaXRcbiAgICogQHBhcmFtIHN0b3JlIEVudGl0eSBzdG9yZVxuICAgKi9cbiAgdW5iaW5kU3RvcmUoc3RvcmU6IEVudGl0eVN0b3JlKSB7XG4gICAgc3VwZXIudW5iaW5kU3RvcmUoc3RvcmUpO1xuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy51bmZpbHRlclN0b3JlKHN0b3JlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgZmlsdGVyaW5nIGFsbCBzdG9yZXNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgZG9BY3RpdmF0ZSgpIHtcbiAgICB0aGlzLmZpbHRlckFsbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgZmlsdGVyaW5nIGFsbCBzdG9yZXNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xuICAgIHRoaXMudW5maWx0ZXJBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgYWxsIHN0b3Jlc1xuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJBbGwoKSB7XG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEVudGl0eVN0b3JlKSA9PiB0aGlzLmZpbHRlclN0b3JlKHN0b3JlKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5maWx0ZXIgYWxsIHN0b3Jlc1xuICAgKi9cbiAgcHJpdmF0ZSB1bmZpbHRlckFsbCgpIHtcbiAgICB0aGlzLnN0b3Jlcy5mb3JFYWNoKChzdG9yZTogRW50aXR5U3RvcmUpID0+IHRoaXMudW5maWx0ZXJTdG9yZShzdG9yZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlciBhIHN0b3JlIGFuZCBhZGQgaXQgdG8gdGhlIGZpbHRlcnMgbWFwXG4gICAqL1xuICBwcml2YXRlIGZpbHRlclN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xuICAgIGlmICh0aGlzLmZpbHRlcnMuaGFzKHN0b3JlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbHRlciA9IChyZWNvcmQ6IEVudGl0eVJlY29yZDxvYmplY3Q+KSA9PiB7XG4gICAgICByZXR1cm4gcmVjb3JkLnN0YXRlLnNlbGVjdGVkID09PSB0cnVlO1xuICAgIH07XG4gICAgdGhpcy5maWx0ZXJzLnNldChzdG9yZSwgc3RvcmUuc3RhdGVWaWV3LmFkZEZpbHRlcihmaWx0ZXIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmZpbHRlciBhIHN0b3JlIGFuZCBkZWxldGUgaXQgZnJvbSB0aGUgZmlsdGVycyBtYXBcbiAgICovXG4gIHByaXZhdGUgdW5maWx0ZXJTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcbiAgICBjb25zdCBmaWx0ZXJJZCA9IHRoaXMuZmlsdGVycy5nZXQoc3RvcmUpO1xuICAgIGlmIChmaWx0ZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3RvcmUuc3RhdGVWaWV3LnJlbW92ZUZpbHRlcihmaWx0ZXJJZCk7XG4gICAgdGhpcy5maWx0ZXJzLmRlbGV0ZShzdG9yZSk7XG4gIH1cbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNlbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2VudGl0eS9zaGFyZWQvc3RyYXRlZ2llcy9maWx0ZXItc2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsbUJBQW1CO0lBQ3pFOztPQUVHO0lBQ0ssT0FBTyxHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXREOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFrQjtRQUMxQixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQWtCO1FBQzVCLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDTyxVQUFVO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ08sWUFBWTtRQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUztRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVc7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVyxDQUFDLEtBQWtCO1FBQ3BDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBNEIsRUFBRSxFQUFFO1lBQzlDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDO1FBQ3hDLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWEsQ0FBQyxLQUFrQjtRQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQixPQUFPO1FBQ1QsQ0FBQztRQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVJlY29yZCB9IGZyb20gJy4uL2VudGl0eS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XHJcbmltcG9ydCB7IEVudGl0eVN0b3JlU3RyYXRlZ3kgfSBmcm9tICcuL3N0cmF0ZWd5JztcclxuXHJcbi8qKlxyXG4gKiBXaGVuIGFjdGl2ZSwgdGhpcyBzdHJhdGVneSBmaWx0ZXJzIGEgc3RvcmUncyBzdGF0ZVZpZXcgdG8gcmV0dXJuXHJcbiAqIHNlbGVjdGVkIGVudGl0aWVzIG9ubHkuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmVGaWx0ZXJTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gIC8qKlxyXG4gICAqIFN0b3JlIC8gZmlsdGVyIGlkcyBtYXBcclxuICAgKi9cclxuICBwcml2YXRlIGZpbHRlcnM6IE1hcDxFbnRpdHlTdG9yZSwgc3RyaW5nPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQmluZCB0aGlzIHN0cmF0ZWd5IHRvIGEgc3RvcmUgYW5kIHN0YXJ0IGZpbHRlcmluZyBpdFxyXG4gICAqIEBwYXJhbSBzdG9yZSBFbnRpdHkgc3RvcmVcclxuICAgKi9cclxuICBiaW5kU3RvcmUoc3RvcmU6IEVudGl0eVN0b3JlKSB7XHJcbiAgICBzdXBlci5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5iaW5kIHRoaXMgc3RyYXRlZ3kgZnJvbSBhIHN0b3JlIGFuZCBzdG9wIGZpbHRlcmluZyBpdFxyXG4gICAqIEBwYXJhbSBzdG9yZSBFbnRpdHkgc3RvcmVcclxuICAgKi9cclxuICB1bmJpbmRTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcclxuICAgIHN1cGVyLnVuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnVuZmlsdGVyU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnQgZmlsdGVyaW5nIGFsbCBzdG9yZXNcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9BY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMuZmlsdGVyQWxsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIGZpbHRlcmluZyBhbGwgc3RvcmVzXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvRGVhY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMudW5maWx0ZXJBbGwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbHRlciBhbGwgc3RvcmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmaWx0ZXJBbGwoKSB7XHJcbiAgICB0aGlzLnN0b3Jlcy5mb3JFYWNoKChzdG9yZTogRW50aXR5U3RvcmUpID0+IHRoaXMuZmlsdGVyU3RvcmUoc3RvcmUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuZmlsdGVyIGFsbCBzdG9yZXNcclxuICAgKi9cclxuICBwcml2YXRlIHVuZmlsdGVyQWxsKCkge1xyXG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEVudGl0eVN0b3JlKSA9PiB0aGlzLnVuZmlsdGVyU3RvcmUoc3RvcmUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbHRlciBhIHN0b3JlIGFuZCBhZGQgaXQgdG8gdGhlIGZpbHRlcnMgbWFwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmaWx0ZXJTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlcnMuaGFzKHN0b3JlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmlsdGVyID0gKHJlY29yZDogRW50aXR5UmVjb3JkPG9iamVjdD4pID0+IHtcclxuICAgICAgcmV0dXJuIHJlY29yZC5zdGF0ZS5zZWxlY3RlZCA9PT0gdHJ1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmZpbHRlcnMuc2V0KHN0b3JlLCBzdG9yZS5zdGF0ZVZpZXcuYWRkRmlsdGVyKGZpbHRlcikpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5maWx0ZXIgYSBzdG9yZSBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGZpbHRlcnMgbWFwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bmZpbHRlclN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xyXG4gICAgY29uc3QgZmlsdGVySWQgPSB0aGlzLmZpbHRlcnMuZ2V0KHN0b3JlKTtcclxuICAgIGlmIChmaWx0ZXJJZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZS5zdGF0ZVZpZXcucmVtb3ZlRmlsdGVyKGZpbHRlcklkKTtcclxuICAgIHRoaXMuZmlsdGVycy5kZWxldGUoc3RvcmUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,4 +1,4 @@
1
1
  export * from './strategy';
2
2
  export * from './filter-custom-function';
3
3
  export * from './filter-selection';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0cmF0ZWdpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci1jdXN0b20tZnVuY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItc2VsZWN0aW9uJztcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0cmF0ZWdpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLWN1c3RvbS1mdW5jdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLXNlbGVjdGlvbic7XHJcbiJdfQ==
@@ -75,4 +75,4 @@ export class EntityStoreStrategy {
75
75
  */
76
76
  doDeactivate() { }
77
77
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0cmF0ZWdpZXMvc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUt2Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQWdCUjtJQWZ0Qjs7O09BR0c7SUFDTyxNQUFNLEdBQWtCLEVBQUUsQ0FBQztJQUVyQzs7O09BR0c7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFDUSxPQUFPLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhFLFlBQXNCLFVBQXNDLEVBQUU7UUFBeEMsWUFBTyxHQUFQLE9BQU8sQ0FBaUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLEtBQWtCO1FBQzFCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFrQjtRQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVSxLQUFJLENBQUM7SUFFekI7OztPQUdHO0lBQ08sWUFBWSxLQUFJLENBQUM7Q0FDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEVudGl0eVN0b3JlU3RyYXRlZ3lPcHRpb25zIH0gZnJvbSAnLi4vZW50aXR5LmludGVyZmFjZXMnO1xyXG5pbXBvcnQgdHlwZSB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xyXG5cclxuLyoqXHJcbiAqIEVudGl0eSBzdG9yZSBzdHJhdGVnaWVzLiBUaGV5IGNhbiBkbyBwcmV0dHkgbXVjaCBhbnl0aGluZyBkdXJpbmcgYSBzdG9yZSdzXHJcbiAqIGxpZmV0aW1lLiBGb3IgZXhhbXBsZSwgdGhleSBtYXkgYWN0IGFzIHRyaWdnZXJzIHdoZW4gc29tZXRoaW5nIGhhcHBlbnMuXHJcbiAqIFNoYXJpbmcgYSBzdHJhdGVneSBpcyBhIGdvb2QgaWRlYSB3aGVuIG11bHRpcGxlIHN0cmF0ZWdpZXMgd291bGQgaGF2ZVxyXG4gKiBvbiBjYW5jZWxsaW5nIGVmZmVjdCBvbiBlYWNoIG90aGVyLlxyXG4gKlxyXG4gKiBBdCBjcmVhdGlvbiwgc3RyYXRlZ3kgaXMgaW5hY3RpdmUgYW5kIG5lZWRzIHRvIGJlIG1hbnVhbGx5IGFjdGl2YXRlZC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZVN0cmF0ZWd5IHtcclxuICAvKipcclxuICAgKiBGZWF0dXJlIHN0b3JlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHN0b3JlczogRW50aXR5U3RvcmVbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoaXMgc3RyYXRlZ3kgaXMgYWN0aXZlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZSQudmFsdWU7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IGFjdGl2ZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3B0aW9uczogRW50aXR5U3RvcmVTdHJhdGVneU9wdGlvbnMgPSB7fSkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGl2YXRlIHRoZSBzdHJhdGVneS4gSWYgaXQncyBhbHJlYWR5IGFjdGl2ZSwgaXQnbGwgYmUgZGVhY3RpdmF0ZWRcclxuICAgKiBhbmQgYWN0aXZhdGVkIGFnYWluLlxyXG4gICAqL1xyXG4gIGFjdGl2YXRlKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZG9EZWFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2ZSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZG9BY3RpdmF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWN0aXZhdGUgdGhlIHN0cmF0ZWd5LiBJZiBpdCdzIGFscmVhZHkgYWN0aXZlLCBpdCdsbCBiZSBkZWFjdGl2YXRlZFxyXG4gICAqIGFuZCBhY3RpdmF0ZWQgYWdhaW4uXHJcbiAgICovXHJcbiAgZGVhY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMuYWN0aXZlJC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuZG9EZWFjdGl2YXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZVxyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgYmluZFN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xyXG4gICAgaWYgKHRoaXMuc3RvcmVzLmluZGV4T2Yoc3RvcmUpIDwgMCkge1xyXG4gICAgICB0aGlzLnN0b3Jlcy5wdXNoKHN0b3JlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuYmluZCB0aGlzIHN0cmF0ZWd5IGZyb20gc3RvcmVcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHVuYmluZFN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnN0b3Jlcy5pbmRleE9mKHN0b3JlKTtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEbyB0aGUgc3RhdGFlZ3kgYWN0aXZhdGlvblxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0FjdGl2YXRlKCkge31cclxuXHJcbiAgLyoqXHJcbiAgICogRG8gdGhlIHN0cmF0ZWd5IGRlYWN0aXZhdGlvblxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0RlYWN0aXZhdGUoKSB7fVxyXG59XHJcbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0cmF0ZWdpZXMvc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUt2Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQWdCUjtJQWZ0Qjs7O09BR0c7SUFDTyxNQUFNLEdBQWtCLEVBQUUsQ0FBQztJQUVyQzs7O09BR0c7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFDUSxPQUFPLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhFLFlBQXNCLFVBQXNDLEVBQUU7UUFBeEMsWUFBTyxHQUFQLE9BQU8sQ0FBaUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFrQjtRQUMxQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQWtCO1FBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVSxLQUFJLENBQUM7SUFFekI7OztPQUdHO0lBQ08sWUFBWSxLQUFJLENBQUM7Q0FDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEVudGl0eVN0b3JlU3RyYXRlZ3lPcHRpb25zIH0gZnJvbSAnLi4vZW50aXR5LmludGVyZmFjZXMnO1xyXG5pbXBvcnQgdHlwZSB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xyXG5cclxuLyoqXHJcbiAqIEVudGl0eSBzdG9yZSBzdHJhdGVnaWVzLiBUaGV5IGNhbiBkbyBwcmV0dHkgbXVjaCBhbnl0aGluZyBkdXJpbmcgYSBzdG9yZSdzXHJcbiAqIGxpZmV0aW1lLiBGb3IgZXhhbXBsZSwgdGhleSBtYXkgYWN0IGFzIHRyaWdnZXJzIHdoZW4gc29tZXRoaW5nIGhhcHBlbnMuXHJcbiAqIFNoYXJpbmcgYSBzdHJhdGVneSBpcyBhIGdvb2QgaWRlYSB3aGVuIG11bHRpcGxlIHN0cmF0ZWdpZXMgd291bGQgaGF2ZVxyXG4gKiBvbiBjYW5jZWxsaW5nIGVmZmVjdCBvbiBlYWNoIG90aGVyLlxyXG4gKlxyXG4gKiBBdCBjcmVhdGlvbiwgc3RyYXRlZ3kgaXMgaW5hY3RpdmUgYW5kIG5lZWRzIHRvIGJlIG1hbnVhbGx5IGFjdGl2YXRlZC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZVN0cmF0ZWd5IHtcclxuICAvKipcclxuICAgKiBGZWF0dXJlIHN0b3JlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHN0b3JlczogRW50aXR5U3RvcmVbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoaXMgc3RyYXRlZ3kgaXMgYWN0aXZlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZSQudmFsdWU7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IGFjdGl2ZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3B0aW9uczogRW50aXR5U3RvcmVTdHJhdGVneU9wdGlvbnMgPSB7fSkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGl2YXRlIHRoZSBzdHJhdGVneS4gSWYgaXQncyBhbHJlYWR5IGFjdGl2ZSwgaXQnbGwgYmUgZGVhY3RpdmF0ZWRcclxuICAgKiBhbmQgYWN0aXZhdGVkIGFnYWluLlxyXG4gICAqL1xyXG4gIGFjdGl2YXRlKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZG9EZWFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2ZSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZG9BY3RpdmF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWN0aXZhdGUgdGhlIHN0cmF0ZWd5LiBJZiBpdCdzIGFscmVhZHkgYWN0aXZlLCBpdCdsbCBiZSBkZWFjdGl2YXRlZFxyXG4gICAqIGFuZCBhY3RpdmF0ZWQgYWdhaW4uXHJcbiAgICovXHJcbiAgZGVhY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMuYWN0aXZlJC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuZG9EZWFjdGl2YXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZVxyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgYmluZFN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xyXG4gICAgaWYgKHRoaXMuc3RvcmVzLmluZGV4T2Yoc3RvcmUpIDwgMCkge1xyXG4gICAgICB0aGlzLnN0b3Jlcy5wdXNoKHN0b3JlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuYmluZCB0aGlzIHN0cmF0ZWd5IGZyb20gc3RvcmVcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHVuYmluZFN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnN0b3Jlcy5pbmRleE9mKHN0b3JlKTtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEbyB0aGUgc3RhdGFlZ3kgYWN0aXZhdGlvblxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0FjdGl2YXRlKCkge31cclxuXHJcbiAgLyoqXHJcbiAgICogRG8gdGhlIHN0cmF0ZWd5IGRlYWN0aXZhdGlvblxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0RlYWN0aXZhdGUoKSB7fVxyXG59XHJcbiJdfQ==
@@ -326,4 +326,4 @@ export class EntityTransaction {
326
326
  }
327
327
  }
328
328
  }
329
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXJELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBZ0J0Qzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7T0FFRztJQUNNLFVBQVUsQ0FBcUQ7SUFFeEU7O09BRUc7SUFDTSxNQUFNLENBQW1CO0lBRWxDOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUNRLGNBQWMsR0FBNkIsSUFBSSxlQUFlLENBQ3JFLEtBQUssQ0FDTixDQUFDO0lBRUYsWUFBWSxVQUFvQyxFQUFFO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENB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QUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZLENBQUMsU0FBMEI7UUFDN0MsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7O09BR0c7SUFDSyxlQUFlLENBQUMsU0FBMEI7UUFDaEQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7O09BR0c7SUFDSyxxQkFBcUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVM7YUFDN0IsTUFBTSxDQUNMLENBQUMsS0FBK0QsRUFBRSxFQUFFO1lBQ2xFLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDO1FBQ3BDLENBQUMsQ0FDRjthQUNBLEdBQUcsQ0FDRixDQUFDLEtBQStELEVBQUUsRUFBRSxDQUNsRSxLQUFLLENBQUMsTUFBTSxDQUNmLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksRUFBRTtZQUMvQixNQUFNLElBQUksS0FBSyxDQUNiLDBFQUEwRSxDQUMzRSxDQUFDO1NBQ0g7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEVudGl0eU9wZXJhdGlvblR5cGUgfSBmcm9tICcuL2VudGl0eS5lbnVtcyc7XG5pbXBvcnQge1xuICBFbnRpdHlLZXksXG4gIEVudGl0eU9wZXJhdGlvblN0YXRlLFxuICBFbnRpdHlUcmFuc2FjdGlvbk9wdGlvbnNcbn0gZnJvbSAnLi9lbnRpdHkuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRFbnRpdHlJZCB9IGZyb20gJy4vZW50aXR5LnV0aWxzJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5cbmludGVyZmFjZSBFbnRpdHlPcGVyYXRpb248RSBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4ge1xuICBrZXk6IEVudGl0eUtleTtcbiAgdHlwZTogRW50aXR5T3BlcmF0aW9uVHlwZTtcbiAgcHJldmlvdXM6IEUgfCB1bmRlZmluZWQ7XG4gIGN1cnJlbnQ6IEUgfCB1bmRlZmluZWQ7XG4gIHN0b3JlPzogRW50aXR5U3RvcmU8RT47XG4gIG1ldGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlUcmFuc2FjdGlvbkNvbW1pdEhhbmRsZXIgPSAoXG4gIHRyYW5zYWN0aW9uOiBFbnRpdHlUcmFuc2FjdGlvbixcbiAgb3BlcmF0aW9uczogRW50aXR5T3BlcmF0aW9uW11cbikgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGluc2VydCwgdXBkYXRlIGFuZCBkZWxldGVcbiAqIG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9uIGEgc3RvcmUuIFRoaXMgaXMgdXNlZnVsIHRvIGNvbW1pdFxuICogdGhlc2Ugb3BlcmF0aW9ucyBpbiBhIHNpbmdsZSBwYXNzIG9yIHRvIGNhbmNlbCB0aGVtLlxuICovXG5leHBvcnQgY2xhc3MgRW50aXR5VHJhbnNhY3Rpb24ge1xuICAvKipcbiAgICogU3RvcmUgaG9sZGluZyB0aGUgb3BlcmF0aW9ucyBvbiBhbm90aGVyIHN0b3JlXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25zOiBFbnRpdHlTdG9yZTxFbnRpdHlPcGVyYXRpb24sIEVudGl0eU9wZXJhdGlvblN0YXRlPjtcblxuICAvKipcbiAgICogTWV0aG9kIHRvIGdldCBhbiBlbnRpdHkncyBpZFxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0S2V5OiAoRSkgPT4gRW50aXR5S2V5O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZXJlIGFyZSBwZW5kaW5nIG9wZXJhdGlvbnNcbiAgICovXG4gIGdldCBlbXB0eSQoKTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb25zLmVtcHR5JDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZXJlIGFyZSBwZW5kaW5nIG9wZXJhdGlvbnNcbiAgICovXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbXB0eSQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGlzZSBzdG9yZSBpcyBpbiBjb21taXQgcGhhc2VcbiAgICovXG4gIGdldCBpbkNvbW1pdFBoYXNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmluQ29tbWl0UGhhc2UkLnZhbHVlO1xuICB9XG4gIHJlYWRvbmx5IGluQ29tbWl0UGhhc2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxuICAgIGZhbHNlXG4gICk7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogRW50aXR5VHJhbnNhY3Rpb25PcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmdldEtleSA9IG9wdGlvbnMuZ2V0S2V5ID8gb3B0aW9ucy5nZXRLZXkgOiBnZXRFbnRpdHlJZDtcbiAgICB0aGlzLm9wZXJhdGlvbnMgPSBuZXcgRW50aXR5U3RvcmU8RW50aXR5T3BlcmF0aW9uLCBFbnRpdHlPcGVyYXRpb25TdGF0ZT4oXG4gICAgICBbXSxcbiAgICAgIHtcbiAgICAgICAgZ2V0S2V5OiAob3BlcmF0aW9uOiBFbnRpdHlPcGVyYXRpb24pID0+IG9wZXJhdGlvbi5rZXlcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLm9wZXJhdGlvbnMuZGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydCBhbiBlbnRpdHkgaW50byBhIHN0b3JlLiBJZiBubyBzdG9yZSBpcyBzcGVjaWZpZWQsIGFuIGluc2VydFxuICAgKiBvcGVyYXRpb24gaXMgc3RpbGwgY3JlYXRlZCBidXQgdGhlIHRyYW5zYWN0aW9uIHdvbid0IGFkZCB0aGUgbmV3XG4gICAqIGVudGl0eSB0byB0aGUgc3RvcmUuXG4gICAqIEBwYXJhbSBjdXJyZW50IFRoZSBlbnRpdHkgdG8gaW5zZXJ0XG4gICAqIEBwYXJhbSBzdG9yZSBPcHRpb25hbDogVGhlIHN0b3JlIHRvIGluc2VydCB0aGUgZW50aXR5IGludG9cbiAgICogQHBhcmFtIG1ldGEgT3B0aW9uYWw6IEFueSBtZXRhZGF0YSBvbiB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICBpbnNlcnQoXG4gICAgY3VycmVudDogb2JqZWN0LFxuICAgIHN0b3JlPzogRW50aXR5U3RvcmU8b2JqZWN0PixcbiAgICBtZXRhPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICApIHtcbiAgICBjb25zdCBleGlzdGluZ09wZXJhdGlvbiA9IHRoaXMuZ2V0T3BlcmF0aW9uQnlFbnRpdHkoY3VycmVudCk7XG4gICAgaWYgKGV4aXN0aW5nT3BlcmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVtb3ZlT3BlcmF0aW9uKGV4aXN0aW5nT3BlcmF0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmRvSW5zZXJ0KGN1cnJlbnQsIHN0b3JlLCBtZXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYW4gZW50aXR5IGluIGEgc3RvcmUuIElmIG5vIHN0b3JlIGlzIHNwZWNpZmllZCwgYW4gdXBkYXRlXG4gICAqIG9wZXJhdGlvbiBpcyBzdGlsbCBjcmVhdGVkIGJ1dCB0aGUgdHJhbnNhY3Rpb24gd29uJ3QgdXBkYXRlIHRoZVxuICAgKiBlbnRpdHkgaW50byB0aGUgc3RvcmUuXG4gICAqIEBwYXJhbSBwcmV2aW91cyBUaGUgZW50aXR5IGJlZm9yZSB1cGRhdGVcbiAgICogQHBhcmFtIGN1cnJlbnQgVGhlIGVudGl0eSBhZnRlciB1cGRhdGVcbiAgICogQHBhcmFtIHN0b3JlIE9wdGlvbmFsOiBUaGUgc3RvcmUgdG8gdXBkYXRlIHRoZSBlbnRpdHkgaW50b1xuICAgKiBAcGFyYW0gbWV0YSBPcHRpb25hbDogQW55IG1ldGFkYXRhIG9uIHRoZSBvcGVyYXRpb25cbiAgICovXG4gIHVwZGF0ZShcbiAgICBwcmV2aW91czogb2JqZWN0LFxuICAgIGN1cnJlbnQ6IG9iamVjdCxcbiAgICBzdG9yZT86IEVudGl0eVN0b3JlPG9iamVjdD4sXG4gICAgbWV0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgKSB7XG4gICAgY29uc3QgZXhpc3RpbmdPcGVyYXRpb24gPSB0aGlzLmdldE9wZXJhdGlvbkJ5RW50aXR5KGN1cnJlbnQpO1xuICAgIGlmIChleGlzdGluZ09wZXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnJlbW92ZU9wZXJhdGlvbihleGlzdGluZ09wZXJhdGlvbik7XG4gICAgICBpZiAoZXhpc3RpbmdPcGVyYXRpb24udHlwZSA9PT0gRW50aXR5T3BlcmF0aW9uVHlwZS5JbnNlcnQpIHtcbiAgICAgICAgdGhpcy5kb0luc2VydChjdXJyZW50LCBzdG9yZSwgbWV0YSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSBpZiAoZXhpc3RpbmdPcGVyYXRpb24udHlwZSA9PT0gRW50aXR5T3BlcmF0aW9uVHlwZS5VcGRhdGUpIHtcbiAgICAgICAgcHJldmlvdXMgPSBleGlzdGluZ09wZXJhdGlvbi5wcmV2aW91cztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmRvVXBkYXRlKHByZXZpb3VzLCBjdXJyZW50LCBzdG9yZSwgbWV0YSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGFuIGVudGl0eSBmcm9tIGEgc3RvcmUuIElmIG5vIHN0b3JlIGlzIHNwZWNpZmllZCwgYSBkZWxldGVcbiAgICogb3BlcmF0aW9uIGlzIHN0aWxsIGNyZWF0ZWQgYnV0IHRoZSB0cmFuc2FjdGlvbiB3b24ndCByZW1vdmUgdGhlXG4gICAqIGVudGl0eSBmcm9tIHRoZSBzdG9yZS5cbiAgICogQHBhcmFtIHByZXZpb3VzIFRoZSBlbnRpdHkgYmVmb3JlIGRlbGV0ZVxuICAgKiBAcGFyYW0gc3RvcmUgT3B0aW9uYWw6IFRoZSBzdG9yZSB0byBkZWxldGUgdGhlIGVudGl0eSBmcm9tXG4gICAqIEBwYXJhbSBtZXRhIE9wdGlvbmFsOiBBbnkgbWV0YWRhdGEgb24gdGhlIG9wZXJhdGlvblxuICAgKi9cbiAgZGVsZXRlKFxuICAgIHByZXZpb3VzOiBvYmplY3QsXG4gICAgc3RvcmU/OiBFbnRpdHlTdG9yZTxvYmplY3Q+LFxuICAgIG1ldGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICkge1xuICAgIGNvbnN0IGV4aXN0aW5nT3BlcmF0aW9uID0gdGhpcy5nZXRPcGVyYXRpb25CeUVudGl0eShwcmV2aW91cyk7XG4gICAgaWYgKGV4aXN0aW5nT3BlcmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVtb3ZlT3BlcmF0aW9uKGV4aXN0aW5nT3BlcmF0aW9uKTtcbiAgICAgIGlmIChleGlzdGluZ09wZXJhdGlvbi50eXBlID09PSBFbnRpdHlPcGVyYXRpb25UeXBlLkluc2VydCkge1xuICAgICAgICBpZiAoc3RvcmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHN0b3JlLmRlbGV0ZShwcmV2aW91cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZG9EZWxldGUocHJldmlvdXMsIHN0b3JlLCBtZXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21taXQgb3BlcmF0aW9ucyB0aGUgdHJhbnNhY3Rpb24uIFRoaXMgbWV0aG9kIGRvZXNuJ3QgZG8gbXVjaFxuICAgKiBpbiBpdHNlbGYuIFRoZSBoYW5kbGVyIGl0IHJlY2VpdmVzIGRvZXMgdGhlIGhhcmQgd29yayBhbmQgaXQnc1xuICAgKiBpbXBsZW1lbnRhdGlvbiBpcyBsZWZ0IHRvIHRoZSBjYWxsZXIuIFRoaXMgbWV0aG9kIHNpbXBseSB3cmFwc1xuICAgKiB0aGUgaGFuZGxlciBpbnRvIGFuIGVycm9yIGNhdGNoaW5nIG1lY2hhbmlzbSB0byB1cGRhdGVcbiAgICogdGhlIHRyYW5zYWN0aW9uIGFmdGVyd2FyZC4gVGhlIGNhbGxlciBuZWVkcyB0byBzdWJzY3JpYmUgdG8gdGhpc1xuICAgKiBtZXRob2QncyBvdXRwdXQgKG9ic2VydmFibGUpIGZvciB0aGUgY29tbWl0IHRvIGJlIHBlcmZvcm1lZC5cbiAgICogQHBhcmFtIG9wZXJhdGlvbnMgT3BlcmF0aW9ucyB0byBjb21taXRcbiAgICogQHBhcmFtIGhhbmRsZXIgRnVuY3Rpb24gdGhhdCBoYW5kbGVzIHRoZSBjb21taXQgb3BlcmF0aW9uXG4gICAqIEByZXR1cm5zIFRoZSBoYW5kbGVyIG91dHB1dCAob2JzZXJ2YWJsZSlcbiAgICovXG4gIGNvbW1pdChcbiAgICBvcGVyYXRpb25zOiBFbnRpdHlPcGVyYXRpb25bXSxcbiAgICBoYW5kbGVyOiBFbnRpdHlUcmFuc2FjdGlvbkNvbW1pdEhhbmRsZXJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICB0aGlzLmluQ29tbWl0UGhhc2UkLm5leHQodHJ1ZSk7XG5cbiAgICByZXR1cm4gaGFuZGxlcih0aGlzLCBvcGVyYXRpb25zKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihuZXcgRXJyb3IoKSkpLFxuICAgICAgdGFwKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICB0aGlzLm9uQ29tbWl0RXJyb3Iob3BlcmF0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vbkNvbW1pdFN1Y2Nlc3Mob3BlcmF0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21taXQgYWxsIHRoZSBvcGVyYXRpb25zIG9mIHRoZSB0cmFuc2FjdGlvbi5cbiAgICogQHBhcmFtIGhhbmRsZXIgRnVuY3Rpb24gdGhhdCBoYW5kbGVzIHRoZSBjb21taXQgb3BlcmF0aW9uXG4gICAqIEByZXR1cm5zIFRoZSBoYW5kbGVyIG91dHB1dCAob2JzZXJ2YWJsZSlcbiAgICovXG4gIGNvbW1pdEFsbChoYW5kbGVyOiBFbnRpdHlUcmFuc2FjdGlvbkNvbW1pdEhhbmRsZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9wZXJhdGlvbnMgPSB0aGlzLmdldE9wZXJhdGlvbnNJbkNvbW1pdCgpO1xuICAgIHJldHVybiB0aGlzLmNvbW1pdChvcGVyYXRpb25zLCBoYW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb2xsYmFjayB0aGlzIHRyYW5zYWN0aW9uXG4gICAqL1xuICByb2xsYmFjaygpIHtcbiAgICB0aGlzLnJvbGxiYWNrT3BlcmF0aW9ucyh0aGlzLm9wZXJhdGlvbnMuYWxsKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJvbGxiYWNrIHNwZWNpZmljIG9wZXJhdGlvbnNcbiAgICovXG4gIHJvbGxiYWNrT3BlcmF0aW9ucyhvcGVyYXRpb25zOiBFbnRpdHlPcGVyYXRpb25bXSkge1xuICAgIHRoaXMuY2hlY2tJbkNvbW1pdFBoYXNlKCk7XG5cbiAgICBjb25zdCBvcGVyYXRpb25zRmFjdG9yeSA9ICgpID0+XG4gICAgICBuZXcgTWFwKFtcbiAgICAgICAgW0VudGl0eU9wZXJhdGlvblR5cGUuRGVsZXRlLCBbXV0sXG4gICAgICAgIFtFbnRpdHlPcGVyYXRpb25UeXBlLlVwZGF0ZSwgW11dLFxuICAgICAgICBbRW50aXR5T3BlcmF0aW9uVHlwZS5JbnNlcnQsIFtdXVxuICAgICAgXSk7XG4gICAgY29uc3Qgc3RvcmVzT3BlcmF0aW9ucyA9IG5ldyBNYXAoKTtcblxuICAgIC8vIEdyb3VwIG9wZXJhdGlvbnMgYnkgc3RvcmUgYW5kIGJ5IG9wZXJhdGlvbiB0eXBlLlxuICAgIC8vIEdyb3VwaW5nIG9wZXJhdGlvbnMgYWxsb3dzIHVzIHRvIHJldmVydCB0aGVtIGluIGJhY3RoLCB0aHVzLCB0cmlnZ2VyaW5nXG4gICAgLy8gb2JzZXJ2YWJsZXMgb25seSBvbmUgcGVyIG9wZXJhdGlvbiB0eXBlLlxuICAgIGZvciAoY29uc3Qgb3BlcmF0aW9uIG9mIG9wZXJhdGlvbnMpIHtcbiAgICAgIGNvbnN0IHN0b3JlID0gb3BlcmF0aW9uLnN0b3JlO1xuICAgICAgaWYgKG9wZXJhdGlvbi5zdG9yZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBsZXQgc3RvcmVPcGVyYXRpb25zID0gc3RvcmVzT3BlcmF0aW9ucy5nZXQoc3RvcmUpO1xuICAgICAgaWYgKHN0b3JlT3BlcmF0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHN0b3JlT3BlcmF0aW9ucyA9IG9wZXJhdGlvbnNGYWN0b3J5KCk7XG4gICAgICAgIHN0b3Jlc09wZXJhdGlvbnMuc2V0KHN0b3JlLCBzdG9yZU9wZXJhdGlvbnMpO1xuICAgICAgfVxuICAgICAgc3RvcmVPcGVyYXRpb25zLmdldChvcGVyYXRpb24udHlwZSkucHVzaChvcGVyYXRpb24pO1xuICAgIH1cblxuICAgIEFycmF5LmZyb20oc3RvcmVzT3BlcmF0aW9ucy5rZXlzKCkpLmZvckVhY2goXG4gICAgICAoc3RvcmU6IEVudGl0eVN0b3JlPG9iamVjdD4pID0+IHtcbiAgICAgICAgY29uc3Qgc3RvcmVPcGVyYXRpb25zID0gc3RvcmVzT3BlcmF0aW9ucy5nZXQoc3RvcmUpO1xuXG4gICAgICAgIGNvbnN0IGRlbGV0ZXMgPSBzdG9yZU9wZXJhdGlvbnMuZ2V0KEVudGl0eU9wZXJhdGlvblR5cGUuRGVsZXRlKTtcbiAgICAgICAgc3RvcmUuaW5zZXJ0TWFueShcbiAgICAgICAgICBkZWxldGVzLm1hcCgoX2RlbGV0ZTogRW50aXR5T3BlcmF0aW9uKSA9PiBfZGVsZXRlLnByZXZpb3VzKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHVwZGF0ZXMgPSBzdG9yZU9wZXJhdGlvbnMuZ2V0KEVudGl0eU9wZXJhdGlvblR5cGUuVXBkYXRlKTtcbiAgICAgICAgc3RvcmUudXBkYXRlTWFueShcbiAgICAgICAgICB1cGRhdGVzLm1hcCgoX3VwZGF0ZTogRW50aXR5T3BlcmF0aW9uKSA9PiBfdXBkYXRlLnByZXZpb3VzKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGluc2VydHMgPSBzdG9yZU9wZXJhdGlvbnMuZ2V0KEVudGl0eU9wZXJhdGlvblR5cGUuSW5zZXJ0KTtcbiAgICAgICAgc3RvcmUuZGVsZXRlTWFueShcbiAgICAgICAgICBpbnNlcnRzLm1hcCgoX2luc2VydDogRW50aXR5T3BlcmF0aW9uKSA9PiBfaW5zZXJ0LmN1cnJlbnQpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMub3BlcmF0aW9ucy5kZWxldGVNYW55KG9wZXJhdGlvbnMpO1xuICAgIHRoaXMuaW5Db21taXRQaGFzZSQubmV4dChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhpcyB0cmFuc2FjdGlvblxuICAgKiBAdG9kbyBSYWlzZSBldmVudCBhbmQgc3luY2hyb25pemUgc3RvcmVzP1xuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5vcGVyYXRpb25zLmNsZWFyKCk7XG4gICAgdGhpcy5pbkNvbW1pdFBoYXNlJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW55IGV4aXN0aW5nIG9wZXJhdGlvbiBvbiBhbiBlbnRpdHlcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAgICogQHJldHVybnMgRWl0aGVyIGFuIGluc2VydCwgdXBkYXRlIG9yIGRlbGV0ZSBvcGVyYXRpb25cbiAgICovXG4gIGdldE9wZXJhdGlvbkJ5RW50aXR5KGVudGl0eTogb2JqZWN0KTogRW50aXR5T3BlcmF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb25zLmdldCh0aGlzLmdldEtleShlbnRpdHkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZSBhbm90aGVyIHRyYW5zYWN0aW9uIGluIHRoaXMgb25lXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiBBbm90aGVyIHRyYW5zYWN0aW9uXG4gICAqL1xuICBtZXJnZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBFbnRpdHlUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuY2hlY2tJbkNvbW1pdFBoYXNlKCk7XG5cbiAgICBjb25zdCBvcGVyYXRpb25zID0gdHJhbnNhY3Rpb24ub3BlcmF0aW9ucy5hbGwoKTtcbiAgICBvcGVyYXRpb25zLmZvckVhY2goKG9wZXJhdGlvbjogRW50aXR5T3BlcmF0aW9uKSA9PiB7XG4gICAgICB0aGlzLmFkZE9wZXJhdGlvbihvcGVyYXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpbnNlcnQgb3BlcmF0aW9uIGFuZCBhZGQgYW4gZW50aXR5IHRvIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gY3VycmVudCBUaGUgZW50aXR5IHRvIGluc2VydFxuICAgKiBAcGFyYW0gc3RvcmUgT3B0aW9uYWw6IFRoZSBzdG9yZSB0byBpbnNlcnQgdGhlIGVudGl0eSBpbnRvXG4gICAqIEBwYXJhbSBtZXRhIE9wdGlvbmFsOiBBbnkgbWV0YWRhdGEgb24gdGhlIG9wZXJhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBkb0luc2VydChcbiAgICBjdXJyZW50OiBvYmplY3QsXG4gICAgc3RvcmU/OiBFbnRpdHlTdG9yZTxvYmplY3Q+LFxuICAgIG1ldGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICkge1xuICAgIHRoaXMuYWRkT3BlcmF0aW9uKHtcbiAgICAgIGtleTogdGhpcy5nZXRLZXkoY3VycmVudCksXG4gICAgICB0eXBlOiBFbnRpdHlPcGVyYXRpb25UeXBlLkluc2VydCxcbiAgICAgIHByZXZpb3VzOiB1bmRlZmluZWQsXG4gICAgICBjdXJyZW50LFxuICAgICAgc3RvcmUsXG4gICAgICBtZXRhXG4gICAgfSk7XG5cbiAgICBpZiAoc3RvcmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc3RvcmUuaW5zZXJ0KGN1cnJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gdXBkYXRlIG9wZXJhdGlvbiBhbmQgdXBkYXRlIGFuIGVudGl0eSBpbnRvIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gcHJldmlvdXMgVGhlIGVudGl0eSBiZWZvcmUgdXBkYXRlXG4gICAqIEBwYXJhbSBjdXJyZW50IFRoZSBlbnRpdHkgYWZ0ZXIgdXBkYXRlXG4gICAqIEBwYXJhbSBzdG9yZSBPcHRpb25hbDogVGhlIHN0b3JlIHRvIHVwZGF0ZSB0aGUgZW50aXR5IGludG9cbiAgICogQHBhcmFtIG1ldGEgT3B0aW9uYWw6IEFueSBtZXRhZGF0YSBvbiB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICBwcml2YXRlIGRvVXBkYXRlKFxuICAgIHByZXZpb3VzOiBvYmplY3QsXG4gICAgY3VycmVudDogb2JqZWN0LFxuICAgIHN0b3JlPzogRW50aXR5U3RvcmU8b2JqZWN0PixcbiAgICBtZXRhPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICApIHtcbiAgICB0aGlzLmFkZE9wZXJhdGlvbih7XG4gICAgICBrZXk6IHRoaXMuZ2V0S2V5KGN1cnJlbnQpLFxuICAgICAgdHlwZTogRW50aXR5T3BlcmF0aW9uVHlwZS5VcGRhdGUsXG4gICAgICBwcmV2aW91cyxcbiAgICAgIGN1cnJlbnQsXG4gICAgICBzdG9yZSxcbiAgICAgIG1ldGFcbiAgICB9KTtcblxuICAgIGlmIChzdG9yZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdG9yZS51cGRhdGUoY3VycmVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGRlbGV0ZSBvcGVyYXRpb24gYW5kIGRlbGV0ZSBhbiBlbnRpdHkgZnJvbSB0aGUgc3RvcmVcbiAgICogQHBhcmFtIHByZXZpb3VzIFRoZSBlbnRpdHkgYmVmb3JlIGRlbGV0ZVxuICAgKiBAcGFyYW0gc3RvcmUgT3B0aW9uYWw6IFRoZSBzdG9yZSB0byBkZWxldGUgdGhlIGVudGl0eSBmcm9tXG4gICAqIEBwYXJhbSBtZXRhIE9wdGlvbmFsOiBBbnkgbWV0YWRhdGEgb24gdGhlIG9wZXJhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBkb0RlbGV0ZShcbiAgICBwcmV2aW91czogb2JqZWN0LFxuICAgIHN0b3JlPzogRW50aXR5U3RvcmU8b2JqZWN0PixcbiAgICBtZXRhPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICApIHtcbiAgICB0aGlzLmFkZE9wZXJhdGlvbih7XG4gICAgICBrZXk6IHRoaXMuZ2V0S2V5KHByZXZpb3VzKSxcbiAgICAgIHR5cGU6IEVudGl0eU9wZXJhdGlvblR5cGUuRGVsZXRlLFxuICAgICAgcHJldmlvdXMsXG4gICAgICBjdXJyZW50OiB1bmRlZmluZWQsXG4gICAgICBzdG9yZSxcbiAgICAgIG1ldGFcbiAgICB9KTtcblxuICAgIGlmIChzdG9yZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdG9yZS5kZWxldGUocHJldmlvdXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgY29tbWl0dGVkIG9wZXJhdGlvbnMgZnJvbSBzdG9yZVxuICAgKiBAcGFyYW0gb3BlcmF0aW9ucyBDb21taXRlZCBvcGVyYXRpb25zXG4gICAqIEB0b2RvIFJhaXNlIGV2ZW50IGFuZCBzeW5jaHJvbml6ZSBzdG9yZXM/XG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVPcGVyYXRpb25zKG9wZXJhdGlvbnM6IEVudGl0eU9wZXJhdGlvbltdKSB7XG4gICAgdGhpcy5vcGVyYXRpb25zLmRlbGV0ZU1hbnkob3BlcmF0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogT24gY29tbWl0IHN1Y2Nlc3MsIHJlc29sdmUgY29tbWl0ZWQgb3BlcmF0aW9ucyBhbmQgZXhpdCBjb21taXQgcGhhc2VcbiAgICogQHBhcmFtIG9wZXJhdGlvbnMgQ29tbWl0ZWQgb3BlcmF0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBvbkNvbW1pdFN1Y2Nlc3Mob3BlcmF0aW9uczogRW50aXR5T3BlcmF0aW9uW10pIHtcbiAgICB0aGlzLnJlc29sdmVPcGVyYXRpb25zKG9wZXJhdGlvbnMpO1xuICAgIHRoaXMuaW5Db21taXRQaGFzZSQubmV4dChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogT24gY29tbWl0IGVycm9yLCBhYm9ydCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gb3BlcmF0aW9ucyBDb21taXRlZCBvcGVyYXRpb25zXG4gICAqL1xuICBwcml2YXRlIG9uQ29tbWl0RXJyb3Iob3BlcmF0aW9uczogRW50aXR5T3BlcmF0aW9uW10pIHtcbiAgICB0aGlzLmluQ29tbWl0UGhhc2UkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBvcGVyYXRpb24gdG8gdGhlIG9wZXJhdGlvbnMgc3RvcmVcbiAgICogQHBhcmFtIG9wZXJhdGlvbiBPcGVyYXRpb24gdG8gYWRkXG4gICAqL1xuICBwcml2YXRlIGFkZE9wZXJhdGlvbihvcGVyYXRpb246IEVudGl0eU9wZXJhdGlvbikge1xuICAgIHRoaXMuY2hlY2tJbkNvbW1pdFBoYXNlKCk7XG5cbiAgICB0aGlzLm9wZXJhdGlvbnMuaW5zZXJ0KG9wZXJhdGlvbik7XG4gICAgdGhpcy5vcGVyYXRpb25zLnN0YXRlLnVwZGF0ZShvcGVyYXRpb24sIHsgYWRkZWQ6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIG9wZXJhdGlvbiBmcm9tIHRoZSBvcGVyYXRpb25zIHN0b3JlXG4gICAqIEBwYXJhbSBvcGVyYXRpb24gT3BlcmF0aW9uIHRvIHJlbW92ZVxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVPcGVyYXRpb24ob3BlcmF0aW9uOiBFbnRpdHlPcGVyYXRpb24pIHtcbiAgICB0aGlzLmNoZWNrSW5Db21taXRQaGFzZSgpO1xuXG4gICAgdGhpcy5vcGVyYXRpb25zLmRlbGV0ZShvcGVyYXRpb24pO1xuICAgIHRoaXMub3BlcmF0aW9ucy5zdGF0ZS51cGRhdGUob3BlcmF0aW9uLCB7IGFkZGVkOiBmYWxzZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHRoZSBvcGVyYXRpb25zIHRvIGNvbW1pdFxuICAgKiBAcmV0dXJucyBPcGVyYXRpb25zIHRvIGNvbW1pdFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRPcGVyYXRpb25zSW5Db21taXQoKTogRW50aXR5T3BlcmF0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbnMuc3RhdGVWaWV3XG4gICAgICAubWFueUJ5KFxuICAgICAgICAodmFsdWU6IHsgZW50aXR5OiBFbnRpdHlPcGVyYXRpb247IHN0YXRlOiBFbnRpdHlPcGVyYXRpb25TdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlLnN0YXRlLmFkZGVkID09PSB0cnVlO1xuICAgICAgICB9XG4gICAgICApXG4gICAgICAubWFwKFxuICAgICAgICAodmFsdWU6IHsgZW50aXR5OiBFbnRpdHlPcGVyYXRpb247IHN0YXRlOiBFbnRpdHlPcGVyYXRpb25TdGF0ZSB9KSA9PlxuICAgICAgICAgIHZhbHVlLmVudGl0eVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgaW4gdGhlIGNvbW1pdCBwaGFzZSBhbmQgdGhyb3cgYW4gZXJyb3IgaWYgaXQgaXNcbiAgICovXG4gIHByaXZhdGUgY2hlY2tJbkNvbW1pdFBoYXNlKCkge1xuICAgIGlmICh0aGlzLmluQ29tbWl0UGhhc2UgPT09IHRydWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoaXMgdHJhbnNhY3Rpb24gaXMgaW4gdGhlIGNvbW1pdCBwaGFzZS4gQ2Fubm90IGNvbXBsZXRlIHRoaXMgb3BlcmF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
329
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXJELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBZ0J0Qzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7T0FFRztJQUNNLFVBQVUsQ0FBcUQ7SUFFeEU7O09BRUc7SUFDTSxNQUFNLENBQW1CO0lBRWxDOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUNRLGNBQWMsR0FBNkIsSUFBSSxlQUFlLENBQ3JFLEtBQUssQ0FDTixDQUFDO0lBRUYsWUFBWSxVQUFvQyxFQUFFO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENB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QUksRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQ2IsMEVBQTBFLENBQzNFLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVudGl0eU9wZXJhdGlvblR5cGUgfSBmcm9tICcuL2VudGl0eS5lbnVtcyc7XHJcbmltcG9ydCB7XHJcbiAgRW50aXR5S2V5LFxyXG4gIEVudGl0eU9wZXJhdGlvblN0YXRlLFxyXG4gIEVudGl0eVRyYW5zYWN0aW9uT3B0aW9uc1xyXG59IGZyb20gJy4vZW50aXR5LmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBnZXRFbnRpdHlJZCB9IGZyb20gJy4vZW50aXR5LnV0aWxzJztcclxuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICcuL3N0b3JlJztcclxuXHJcbmludGVyZmFjZSBFbnRpdHlPcGVyYXRpb248RSBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4ge1xyXG4gIGtleTogRW50aXR5S2V5O1xyXG4gIHR5cGU6IEVudGl0eU9wZXJhdGlvblR5cGU7XHJcbiAgcHJldmlvdXM6IEUgfCB1bmRlZmluZWQ7XHJcbiAgY3VycmVudDogRSB8IHVuZGVmaW5lZDtcclxuICBzdG9yZT86IEVudGl0eVN0b3JlPEU+O1xyXG4gIG1ldGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFbnRpdHlUcmFuc2FjdGlvbkNvbW1pdEhhbmRsZXIgPSAoXHJcbiAgdHJhbnNhY3Rpb246IEVudGl0eVRyYW5zYWN0aW9uLFxyXG4gIG9wZXJhdGlvbnM6IEVudGl0eU9wZXJhdGlvbltdXHJcbikgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgY2xhc3MgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIGluc2VydCwgdXBkYXRlIGFuZCBkZWxldGVcclxuICogb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gYSBzdG9yZS4gVGhpcyBpcyB1c2VmdWwgdG8gY29tbWl0XHJcbiAqIHRoZXNlIG9wZXJhdGlvbnMgaW4gYSBzaW5nbGUgcGFzcyBvciB0byBjYW5jZWwgdGhlbS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlUcmFuc2FjdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogU3RvcmUgaG9sZGluZyB0aGUgb3BlcmF0aW9ucyBvbiBhbm90aGVyIHN0b3JlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgb3BlcmF0aW9uczogRW50aXR5U3RvcmU8RW50aXR5T3BlcmF0aW9uLCBFbnRpdHlPcGVyYXRpb25TdGF0ZT47XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZCB0byBnZXQgYW4gZW50aXR5J3MgaWRcclxuICAgKi9cclxuICByZWFkb25seSBnZXRLZXk6IChFKSA9PiBFbnRpdHlLZXk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdGhlcmUgYXJlIHBlbmRpbmcgb3BlcmF0aW9uc1xyXG4gICAqL1xyXG4gIGdldCBlbXB0eSQoKTogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbnMuZW1wdHkkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGVyZSBhcmUgcGVuZGluZyBvcGVyYXRpb25zXHJcbiAgICovXHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wdHkkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGlzZSBzdG9yZSBpcyBpbiBjb21taXQgcGhhc2VcclxuICAgKi9cclxuICBnZXQgaW5Db21taXRQaGFzZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmluQ29tbWl0UGhhc2UkLnZhbHVlO1xyXG4gIH1cclxuICByZWFkb25seSBpbkNvbW1pdFBoYXNlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcclxuICAgIGZhbHNlXHJcbiAgKTtcclxuXHJcbiAgY29uc3RydWN0b3Iob3B0aW9uczogRW50aXR5VHJhbnNhY3Rpb25PcHRpb25zID0ge30pIHtcclxuICAgIHRoaXMuZ2V0S2V5ID0gb3B0aW9ucy5nZXRLZXkgPyBvcHRpb25zLmdldEtleSA6IGdldEVudGl0eUlkO1xyXG4gICAgdGhpcy5vcGVyYXRpb25zID0gbmV3IEVudGl0eVN0b3JlPEVudGl0eU9wZXJhdGlvbiwgRW50aXR5T3BlcmF0aW9uU3RhdGU+KFxyXG4gICAgICBbXSxcclxuICAgICAge1xyXG4gICAgICAgIGdldEtleTogKG9wZXJhdGlvbjogRW50aXR5T3BlcmF0aW9uKSA9PiBvcGVyYXRpb24ua2V5XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95KCkge1xyXG4gICAgdGhpcy5vcGVyYXRpb25zLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluc2VydCBhbiBlbnRpdHkgaW50byBhIHN0b3JlLiBJZiBubyBzdG9yZSBpcyBzcGVjaWZpZWQsIGFuIGluc2VydFxyXG4gICAqIG9wZXJhdGlvbiBpcyBzdGlsbCBjcmVhdGVkIGJ1dCB0aGUgdHJhbnNhY3Rpb24gd29uJ3QgYWRkIHRoZSBuZXdcclxuICAgKiBlbnRpdHkgdG8gdGhlIHN0b3JlLlxyXG4gICAqIEBwYXJhbSBjdXJyZW50IFRoZSBlbnRpdHkgdG8gaW5zZXJ0XHJcbiAgICogQHBhcmFtIHN0b3JlIE9wdGlvbmFsOiBUaGUgc3RvcmUgdG8gaW5zZXJ0IHRoZSBlbnRpdHkgaW50b1xyXG4gICAqIEBwYXJhbSBtZXRhIE9wdGlvbmFsOiBBbnkgbWV0YWRhdGEgb24gdGhlIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIGluc2VydChcclxuICAgIGN1cnJlbnQ6IG9iamVjdCxcclxuICAgIHN0b3JlPzogRW50aXR5U3RvcmU8b2JqZWN0PixcclxuICAgIG1ldGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9XHJcbiAgKSB7XHJcbiAgICBjb25zdCBleGlzdGluZ09wZXJhdGlvbiA9IHRoaXMuZ2V0T3BlcmF0aW9uQnlFbnRpdHkoY3VycmVudCk7XHJcbiAgICBpZiAoZXhpc3RpbmdPcGVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnJlbW92ZU9wZXJhdGlvbihleGlzdGluZ09wZXJhdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kb0luc2VydChjdXJyZW50LCBzdG9yZSwgbWV0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgYW4gZW50aXR5IGluIGEgc3RvcmUuIElmIG5vIHN0b3JlIGlzIHNwZWNpZmllZCwgYW4gdXBkYXRlXHJcbiAgICogb3BlcmF0aW9uIGlzIHN0aWxsIGNyZWF0ZWQgYnV0IHRoZSB0cmFuc2FjdGlvbiB3b24ndCB1cGRhdGUgdGhlXHJcbiAgICogZW50aXR5IGludG8gdGhlIHN0b3JlLlxyXG4gICAqIEBwYXJhbSBwcmV2aW91cyBUaGUgZW50aXR5IGJlZm9yZSB1cGRhdGVcclxuICAgKiBAcGFyYW0gY3VycmVudCBUaGUgZW50aXR5IGFmdGVyIHVwZGF0ZVxyXG4gICAqIEBwYXJhbSBzdG9yZSBPcHRpb25hbDogVGhlIHN0b3JlIHRvIHVwZGF0ZSB0aGUgZW50aXR5IGludG9cclxuICAgKiBAcGFyYW0gbWV0YSBPcHRpb25hbDogQW55IG1ldGFkYXRhIG9uIHRoZSBvcGVyYXRpb25cclxuICAgKi9cclxuICB1cGRhdGUoXHJcbiAgICBwcmV2aW91czogb2JqZWN0LFxyXG4gICAgY3VycmVudDogb2JqZWN0LFxyXG4gICAgc3RvcmU/OiBFbnRpdHlTdG9yZTxvYmplY3Q+LFxyXG4gICAgbWV0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH1cclxuICApIHtcclxuICAgIGNvbnN0IGV4aXN0aW5nT3BlcmF0aW9uID0gdGhpcy5nZXRPcGVyYXRpb25CeUVudGl0eShjdXJyZW50KTtcclxuICAgIGlmIChleGlzdGluZ09wZXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlT3BlcmF0aW9uKGV4aXN0aW5nT3BlcmF0aW9uKTtcclxuICAgICAgaWYgKGV4aXN0aW5nT3BlcmF0aW9uLnR5cGUgPT09IEVudGl0eU9wZXJhdGlvblR5cGUuSW5zZXJ0KSB7XHJcbiAgICAgICAgdGhpcy5kb0luc2VydChjdXJyZW50LCBzdG9yZSwgbWV0YSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9IGVsc2UgaWYgKGV4aXN0aW5nT3BlcmF0aW9uLnR5cGUgPT09IEVudGl0eU9wZXJhdGlvblR5cGUuVXBkYXRlKSB7XHJcbiAgICAgICAgcHJldmlvdXMgPSBleGlzdGluZ09wZXJhdGlvbi5wcmV2aW91cztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZG9VcGRhdGUocHJldmlvdXMsIGN1cnJlbnQsIHN0b3JlLCBtZXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZSBhbiBlbnRpdHkgZnJvbSBhIHN0b3JlLiBJZiBubyBzdG9yZSBpcyBzcGVjaWZpZWQsIGEgZGVsZXRlXHJcbiAgICogb3BlcmF0aW9uIGlzIHN0aWxsIGNyZWF0ZWQgYnV0IHRoZSB0cmFuc2FjdGlvbiB3b24ndCByZW1vdmUgdGhlXHJcbiAgICogZW50aXR5IGZyb20gdGhlIHN0b3JlLlxyXG4gICAqIEBwYXJhbSBwcmV2aW91cyBUaGUgZW50aXR5IGJlZm9yZSBkZWxldGVcclxuICAgKiBAcGFyYW0gc3RvcmUgT3B0aW9uYWw6IFRoZSBzdG9yZSB0byBkZWxldGUgdGhlIGVudGl0eSBmcm9tXHJcbiAgICogQHBhcmFtIG1ldGEgT3B0aW9uYWw6IEFueSBtZXRhZGF0YSBvbiB0aGUgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgZGVsZXRlKFxyXG4gICAgcHJldmlvdXM6IG9iamVjdCxcclxuICAgIHN0b3JlPzogRW50aXR5U3RvcmU8b2JqZWN0PixcclxuICAgIG1ldGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9XHJcbiAgKSB7XHJcbiAgICBjb25zdCBleGlzdGluZ09wZXJhdGlvbiA9IHRoaXMuZ2V0T3BlcmF0aW9uQnlFbnRpdHkocHJldmlvdXMpO1xyXG4gICAgaWYgKGV4aXN0aW5nT3BlcmF0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5yZW1vdmVPcGVyYXRpb24oZXhpc3RpbmdPcGVyYXRpb24pO1xyXG4gICAgICBpZiAoZXhpc3RpbmdPcGVyYXRpb24udHlwZSA9PT0gRW50aXR5T3BlcmF0aW9uVHlwZS5JbnNlcnQpIHtcclxuICAgICAgICBpZiAoc3RvcmUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgc3RvcmUuZGVsZXRlKHByZXZpb3VzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kb0RlbGV0ZShwcmV2aW91cywgc3RvcmUsIG1ldGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tbWl0IG9wZXJhdGlvbnMgdGhlIHRyYW5zYWN0aW9uLiBUaGlzIG1ldGhvZCBkb2Vzbid0IGRvIG11Y2hcclxuICAgKiBpbiBpdHNlbGYuIFRoZSBoYW5kbGVyIGl0IHJlY2VpdmVzIGRvZXMgdGhlIGhhcmQgd29yayBhbmQgaXQnc1xyXG4gICAqIGltcGxlbWVudGF0aW9uIGlzIGxlZnQgdG8gdGhlIGNhbGxlci4gVGhpcyBtZXRob2Qgc2ltcGx5IHdyYXBzXHJcbiAgICogdGhlIGhhbmRsZXIgaW50byBhbiBlcnJvciBjYXRjaGluZyBtZWNoYW5pc20gdG8gdXBkYXRlXHJcbiAgICogdGhlIHRyYW5zYWN0aW9uIGFmdGVyd2FyZC4gVGhlIGNhbGxlciBuZWVkcyB0byBzdWJzY3JpYmUgdG8gdGhpc1xyXG4gICAqIG1ldGhvZCdzIG91dHB1dCAob2JzZXJ2YWJsZSkgZm9yIHRoZSBjb21taXQgdG8gYmUgcGVyZm9ybWVkLlxyXG4gICAqIEBwYXJhbSBvcGVyYXRpb25zIE9wZXJhdGlvbnMgdG8gY29tbWl0XHJcbiAgICogQHBhcmFtIGhhbmRsZXIgRnVuY3Rpb24gdGhhdCBoYW5kbGVzIHRoZSBjb21taXQgb3BlcmF0aW9uXHJcbiAgICogQHJldHVybnMgVGhlIGhhbmRsZXIgb3V0cHV0IChvYnNlcnZhYmxlKVxyXG4gICAqL1xyXG4gIGNvbW1pdChcclxuICAgIG9wZXJhdGlvbnM6IEVudGl0eU9wZXJhdGlvbltdLFxyXG4gICAgaGFuZGxlcjogRW50aXR5VHJhbnNhY3Rpb25Db21taXRIYW5kbGVyXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMuaW5Db21taXRQaGFzZSQubmV4dCh0cnVlKTtcclxuXHJcbiAgICByZXR1cm4gaGFuZGxlcih0aGlzLCBvcGVyYXRpb25zKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKG5ldyBFcnJvcigpKSksXHJcbiAgICAgIHRhcCgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgRXJyb3IpIHtcclxuICAgICAgICAgIHRoaXMub25Db21taXRFcnJvcihvcGVyYXRpb25zKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5vbkNvbW1pdFN1Y2Nlc3Mob3BlcmF0aW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbW1pdCBhbGwgdGhlIG9wZXJhdGlvbnMgb2YgdGhlIHRyYW5zYWN0aW9uLlxyXG4gICAqIEBwYXJhbSBoYW5kbGVyIEZ1bmN0aW9uIHRoYXQgaGFuZGxlcyB0aGUgY29tbWl0IG9wZXJhdGlvblxyXG4gICAqIEByZXR1cm5zIFRoZSBoYW5kbGVyIG91dHB1dCAob2JzZXJ2YWJsZSlcclxuICAgKi9cclxuICBjb21taXRBbGwoaGFuZGxlcjogRW50aXR5VHJhbnNhY3Rpb25Db21taXRIYW5kbGVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IG9wZXJhdGlvbnMgPSB0aGlzLmdldE9wZXJhdGlvbnNJbkNvbW1pdCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuY29tbWl0KG9wZXJhdGlvbnMsIGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUm9sbGJhY2sgdGhpcyB0cmFuc2FjdGlvblxyXG4gICAqL1xyXG4gIHJvbGxiYWNrKCkge1xyXG4gICAgdGhpcy5yb2xsYmFja09wZXJhdGlvbnModGhpcy5vcGVyYXRpb25zLmFsbCgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJvbGxiYWNrIHNwZWNpZmljIG9wZXJhdGlvbnNcclxuICAgKi9cclxuICByb2xsYmFja09wZXJhdGlvbnMob3BlcmF0aW9uczogRW50aXR5T3BlcmF0aW9uW10pIHtcclxuICAgIHRoaXMuY2hlY2tJbkNvbW1pdFBoYXNlKCk7XHJcblxyXG4gICAgY29uc3Qgb3BlcmF0aW9uc0ZhY3RvcnkgPSAoKSA9PlxyXG4gICAgICBuZXcgTWFwKFtcclxuICAgICAgICBbRW50aXR5T3BlcmF0aW9uVHlwZS5EZWxldGUsIFtdXSxcclxuICAgICAgICBbRW50aXR5T3BlcmF0aW9uVHlwZS5VcGRhdGUsIFtdXSxcclxuICAgICAgICBbRW50aXR5T3BlcmF0aW9uVHlwZS5JbnNlcnQsIFtdXVxyXG4gICAgICBdKTtcclxuICAgIGNvbnN0IHN0b3Jlc09wZXJhdGlvbnMgPSBuZXcgTWFwKCk7XHJcblxyXG4gICAgLy8gR3JvdXAgb3BlcmF0aW9ucyBieSBzdG9yZSBhbmQgYnkgb3BlcmF0aW9uIHR5cGUuXHJcbiAgICAvLyBHcm91cGluZyBvcGVyYXRpb25zIGFsbG93cyB1cyB0byByZXZlcnQgdGhlbSBpbiBiYWN0aCwgdGh1cywgdHJpZ2dlcmluZ1xyXG4gICAgLy8gb2JzZXJ2YWJsZXMgb25seSBvbmUgcGVyIG9wZXJhdGlvbiB0eXBlLlxyXG4gICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2Ygb3BlcmF0aW9ucykge1xyXG4gICAgICBjb25zdCBzdG9yZSA9IG9wZXJhdGlvbi5zdG9yZTtcclxuICAgICAgaWYgKG9wZXJhdGlvbi5zdG9yZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBzdG9yZU9wZXJhdGlvbnMgPSBzdG9yZXNPcGVyYXRpb25zLmdldChzdG9yZSk7XHJcbiAgICAgIGlmIChzdG9yZU9wZXJhdGlvbnMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHN0b3JlT3BlcmF0aW9ucyA9IG9wZXJhdGlvbnNGYWN0b3J5KCk7XHJcbiAgICAgICAgc3RvcmVzT3BlcmF0aW9ucy5zZXQoc3RvcmUsIHN0b3JlT3BlcmF0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgICAgc3RvcmVPcGVyYXRpb25zLmdldChvcGVyYXRpb24udHlwZSkucHVzaChvcGVyYXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIEFycmF5LmZyb20oc3RvcmVzT3BlcmF0aW9ucy5rZXlzKCkpLmZvckVhY2goXHJcbiAgICAgIChzdG9yZTogRW50aXR5U3RvcmU8b2JqZWN0PikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0b3JlT3BlcmF0aW9ucyA9IHN0b3Jlc09wZXJhdGlvbnMuZ2V0KHN0b3JlKTtcclxuXHJcbiAgICAgICAgY29uc3QgZGVsZXRlcyA9IHN0b3JlT3BlcmF0aW9ucy5nZXQoRW50aXR5T3BlcmF0aW9uVHlwZS5EZWxldGUpO1xyXG4gICAgICAgIHN0b3JlLmluc2VydE1hbnkoXHJcbiAgICAgICAgICBkZWxldGVzLm1hcCgoX2RlbGV0ZTogRW50aXR5T3BlcmF0aW9uKSA9PiBfZGVsZXRlLnByZXZpb3VzKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHVwZGF0ZXMgPSBzdG9yZU9wZXJhdGlvbnMuZ2V0KEVudGl0eU9wZXJhdGlvblR5cGUuVXBkYXRlKTtcclxuICAgICAgICBzdG9yZS51cGRhdGVNYW55KFxyXG4gICAgICAgICAgdXBkYXRlcy5tYXAoKF91cGRhdGU6IEVudGl0eU9wZXJhdGlvbikgPT4gX3VwZGF0ZS5wcmV2aW91cylcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBjb25zdCBpbnNlcnRzID0gc3RvcmVPcGVyYXRpb25zLmdldChFbnRpdHlPcGVyYXRpb25UeXBlLkluc2VydCk7XHJcbiAgICAgICAgc3RvcmUuZGVsZXRlTWFueShcclxuICAgICAgICAgIGluc2VydHMubWFwKChfaW5zZXJ0OiBFbnRpdHlPcGVyYXRpb24pID0+IF9pbnNlcnQuY3VycmVudClcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMub3BlcmF0aW9ucy5kZWxldGVNYW55KG9wZXJhdGlvbnMpO1xyXG4gICAgdGhpcy5pbkNvbW1pdFBoYXNlJC5uZXh0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoaXMgdHJhbnNhY3Rpb25cclxuICAgKiBAdG9kbyBSYWlzZSBldmVudCBhbmQgc3luY2hyb25pemUgc3RvcmVzP1xyXG4gICAqL1xyXG4gIGNsZWFyKCkge1xyXG4gICAgdGhpcy5vcGVyYXRpb25zLmNsZWFyKCk7XHJcbiAgICB0aGlzLmluQ29tbWl0UGhhc2UkLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFueSBleGlzdGluZyBvcGVyYXRpb24gb24gYW4gZW50aXR5XHJcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcclxuICAgKiBAcmV0dXJucyBFaXRoZXIgYW4gaW5zZXJ0LCB1cGRhdGUgb3IgZGVsZXRlIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIGdldE9wZXJhdGlvbkJ5RW50aXR5KGVudGl0eTogb2JqZWN0KTogRW50aXR5T3BlcmF0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbnMuZ2V0KHRoaXMuZ2V0S2V5KGVudGl0eSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWVyZ2UgYW5vdGhlciB0cmFuc2FjdGlvbiBpbiB0aGlzIG9uZVxyXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiBBbm90aGVyIHRyYW5zYWN0aW9uXHJcbiAgICovXHJcbiAgbWVyZ2VUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogRW50aXR5VHJhbnNhY3Rpb24pIHtcclxuICAgIHRoaXMuY2hlY2tJbkNvbW1pdFBoYXNlKCk7XHJcblxyXG4gICAgY29uc3Qgb3BlcmF0aW9ucyA9IHRyYW5zYWN0aW9uLm9wZXJhdGlvbnMuYWxsKCk7XHJcbiAgICBvcGVyYXRpb25zLmZvckVhY2goKG9wZXJhdGlvbjogRW50aXR5T3BlcmF0aW9uKSA9PiB7XHJcbiAgICAgIHRoaXMuYWRkT3BlcmF0aW9uKG9wZXJhdGlvbik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbiBpbnNlcnQgb3BlcmF0aW9uIGFuZCBhZGQgYW4gZW50aXR5IHRvIHRoZSBzdG9yZVxyXG4gICAqIEBwYXJhbSBjdXJyZW50IFRoZSBlbnRpdHkgdG8gaW5zZXJ0XHJcbiAgICogQHBhcmFtIHN0b3JlIE9wdGlvbmFsOiBUaGUgc3RvcmUgdG8gaW5zZXJ0IHRoZSBlbnRpdHkgaW50b1xyXG4gICAqIEBwYXJhbSBtZXRhIE9wdGlvbmFsOiBBbnkgbWV0YWRhdGEgb24gdGhlIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgZG9JbnNlcnQoXHJcbiAgICBjdXJyZW50OiBvYmplY3QsXHJcbiAgICBzdG9yZT86IEVudGl0eVN0b3JlPG9iamVjdD4sXHJcbiAgICBtZXRhPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxyXG4gICkge1xyXG4gICAgdGhpcy5hZGRPcGVyYXRpb24oe1xyXG4gICAgICBrZXk6IHRoaXMuZ2V0S2V5KGN1cnJlbnQpLFxyXG4gICAgICB0eXBlOiBFbnRpdHlPcGVyYXRpb25UeXBlLkluc2VydCxcclxuICAgICAgcHJldmlvdXM6IHVuZGVmaW5lZCxcclxuICAgICAgY3VycmVudCxcclxuICAgICAgc3RvcmUsXHJcbiAgICAgIG1ldGFcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChzdG9yZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHN0b3JlLmluc2VydChjdXJyZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbiB1cGRhdGUgb3BlcmF0aW9uIGFuZCB1cGRhdGUgYW4gZW50aXR5IGludG8gdGhlIHN0b3JlXHJcbiAgICogQHBhcmFtIHByZXZpb3VzIFRoZSBlbnRpdHkgYmVmb3JlIHVwZGF0ZVxyXG4gICAqIEBwYXJhbSBjdXJyZW50IFRoZSBlbnRpdHkgYWZ0ZXIgdXBkYXRlXHJcbiAgICogQHBhcmFtIHN0b3JlIE9wdGlvbmFsOiBUaGUgc3RvcmUgdG8gdXBkYXRlIHRoZSBlbnRpdHkgaW50b1xyXG4gICAqIEBwYXJhbSBtZXRhIE9wdGlvbmFsOiBBbnkgbWV0YWRhdGEgb24gdGhlIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgZG9VcGRhdGUoXHJcbiAgICBwcmV2aW91czogb2JqZWN0LFxyXG4gICAgY3VycmVudDogb2JqZWN0LFxyXG4gICAgc3RvcmU/OiBFbnRpdHlTdG9yZTxvYmplY3Q+LFxyXG4gICAgbWV0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH1cclxuICApIHtcclxuICAgIHRoaXMuYWRkT3BlcmF0aW9uKHtcclxuICAgICAga2V5OiB0aGlzLmdldEtleShjdXJyZW50KSxcclxuICAgICAgdHlwZTogRW50aXR5T3BlcmF0aW9uVHlwZS5VcGRhdGUsXHJcbiAgICAgIHByZXZpb3VzLFxyXG4gICAgICBjdXJyZW50LFxyXG4gICAgICBzdG9yZSxcclxuICAgICAgbWV0YVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHN0b3JlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgc3RvcmUudXBkYXRlKGN1cnJlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgZGVsZXRlIG9wZXJhdGlvbiBhbmQgZGVsZXRlIGFuIGVudGl0eSBmcm9tIHRoZSBzdG9yZVxyXG4gICAqIEBwYXJhbSBwcmV2aW91cyBUaGUgZW50aXR5IGJlZm9yZSBkZWxldGVcclxuICAgKiBAcGFyYW0gc3RvcmUgT3B0aW9uYWw6IFRoZSBzdG9yZSB0byBkZWxldGUgdGhlIGVudGl0eSBmcm9tXHJcbiAgICogQHBhcmFtIG1ldGEgT3B0aW9uYWw6IEFueSBtZXRhZGF0YSBvbiB0aGUgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkb0RlbGV0ZShcclxuICAgIHByZXZpb3VzOiBvYmplY3QsXHJcbiAgICBzdG9yZT86IEVudGl0eVN0b3JlPG9iamVjdD4sXHJcbiAgICBtZXRhPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxyXG4gICkge1xyXG4gICAgdGhpcy5hZGRPcGVyYXRpb24oe1xyXG4gICAgICBrZXk6IHRoaXMuZ2V0S2V5KHByZXZpb3VzKSxcclxuICAgICAgdHlwZTogRW50aXR5T3BlcmF0aW9uVHlwZS5EZWxldGUsXHJcbiAgICAgIHByZXZpb3VzLFxyXG4gICAgICBjdXJyZW50OiB1bmRlZmluZWQsXHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBtZXRhXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoc3RvcmUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzdG9yZS5kZWxldGUocHJldmlvdXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGNvbW1pdHRlZCBvcGVyYXRpb25zIGZyb20gc3RvcmVcclxuICAgKiBAcGFyYW0gb3BlcmF0aW9ucyBDb21taXRlZCBvcGVyYXRpb25zXHJcbiAgICogQHRvZG8gUmFpc2UgZXZlbnQgYW5kIHN5bmNocm9uaXplIHN0b3Jlcz9cclxuICAgKi9cclxuICBwcml2YXRlIHJlc29sdmVPcGVyYXRpb25zKG9wZXJhdGlvbnM6IEVudGl0eU9wZXJhdGlvbltdKSB7XHJcbiAgICB0aGlzLm9wZXJhdGlvbnMuZGVsZXRlTWFueShvcGVyYXRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGNvbW1pdCBzdWNjZXNzLCByZXNvbHZlIGNvbW1pdGVkIG9wZXJhdGlvbnMgYW5kIGV4aXQgY29tbWl0IHBoYXNlXHJcbiAgICogQHBhcmFtIG9wZXJhdGlvbnMgQ29tbWl0ZWQgb3BlcmF0aW9uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgb25Db21taXRTdWNjZXNzKG9wZXJhdGlvbnM6IEVudGl0eU9wZXJhdGlvbltdKSB7XHJcbiAgICB0aGlzLnJlc29sdmVPcGVyYXRpb25zKG9wZXJhdGlvbnMpO1xyXG4gICAgdGhpcy5pbkNvbW1pdFBoYXNlJC5uZXh0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGNvbW1pdCBlcnJvciwgYWJvcnQgdHJhbnNhY3Rpb25cclxuICAgKiBAcGFyYW0gb3BlcmF0aW9ucyBDb21taXRlZCBvcGVyYXRpb25zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvbkNvbW1pdEVycm9yKG9wZXJhdGlvbnM6IEVudGl0eU9wZXJhdGlvbltdKSB7XHJcbiAgICB0aGlzLmluQ29tbWl0UGhhc2UkLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGFuIG9wZXJhdGlvbiB0byB0aGUgb3BlcmF0aW9ucyBzdG9yZVxyXG4gICAqIEBwYXJhbSBvcGVyYXRpb24gT3BlcmF0aW9uIHRvIGFkZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkT3BlcmF0aW9uKG9wZXJhdGlvbjogRW50aXR5T3BlcmF0aW9uKSB7XHJcbiAgICB0aGlzLmNoZWNrSW5Db21taXRQaGFzZSgpO1xyXG5cclxuICAgIHRoaXMub3BlcmF0aW9ucy5pbnNlcnQob3BlcmF0aW9uKTtcclxuICAgIHRoaXMub3BlcmF0aW9ucy5zdGF0ZS51cGRhdGUob3BlcmF0aW9uLCB7IGFkZGVkOiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGFuIG9wZXJhdGlvbiBmcm9tIHRoZSBvcGVyYXRpb25zIHN0b3JlXHJcbiAgICogQHBhcmFtIG9wZXJhdGlvbiBPcGVyYXRpb24gdG8gcmVtb3ZlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVPcGVyYXRpb24ob3BlcmF0aW9uOiBFbnRpdHlPcGVyYXRpb24pIHtcclxuICAgIHRoaXMuY2hlY2tJbkNvbW1pdFBoYXNlKCk7XHJcblxyXG4gICAgdGhpcy5vcGVyYXRpb25zLmRlbGV0ZShvcGVyYXRpb24pO1xyXG4gICAgdGhpcy5vcGVyYXRpb25zLnN0YXRlLnVwZGF0ZShvcGVyYXRpb24sIHsgYWRkZWQ6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCB0aGUgb3BlcmF0aW9ucyB0byBjb21taXRcclxuICAgKiBAcmV0dXJucyBPcGVyYXRpb25zIHRvIGNvbW1pdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0T3BlcmF0aW9uc0luQ29tbWl0KCk6IEVudGl0eU9wZXJhdGlvbltdIHtcclxuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbnMuc3RhdGVWaWV3XHJcbiAgICAgIC5tYW55QnkoXHJcbiAgICAgICAgKHZhbHVlOiB7IGVudGl0eTogRW50aXR5T3BlcmF0aW9uOyBzdGF0ZTogRW50aXR5T3BlcmF0aW9uU3RhdGUgfSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHZhbHVlLnN0YXRlLmFkZGVkID09PSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgICAubWFwKFxyXG4gICAgICAgICh2YWx1ZTogeyBlbnRpdHk6IEVudGl0eU9wZXJhdGlvbjsgc3RhdGU6IEVudGl0eU9wZXJhdGlvblN0YXRlIH0pID0+XHJcbiAgICAgICAgICB2YWx1ZS5lbnRpdHlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyBpbiB0aGUgY29tbWl0IHBoYXNlIGFuZCB0aHJvdyBhbiBlcnJvciBpZiBpdCBpc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgY2hlY2tJbkNvbW1pdFBoYXNlKCkge1xyXG4gICAgaWYgKHRoaXMuaW5Db21taXRQaGFzZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1RoaXMgdHJhbnNhY3Rpb24gaXMgaW4gdGhlIGNvbW1pdCBwaGFzZS4gQ2Fubm90IGNvbXBsZXRlIHRoaXMgb3BlcmF0aW9uLidcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -327,4 +327,4 @@ export class EntityView {
327
327
  return new Map(entries);
328
328
  }
329
329
  }
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2VudGl0eS9zaGFyZWQvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZUFBZSxFQUE0QixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTekQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBNkVEO0lBNUVwQjs7T0FFRztJQUNNLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztJQUVoRDs7T0FFRztJQUNLLFFBQVEsQ0FBZTtJQUUvQjs7T0FFRztJQUNLLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFdkI7O09BRUc7SUFDSyxLQUFLLEdBQXVCLEVBQUUsQ0FBQztJQUV2Qzs7T0FFRztJQUNLLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVqRDs7T0FFRztJQUNLLFFBQVEsR0FBMEMsSUFBSSxlQUFlLENBQzNFLEVBQUUsQ0FDSCxDQUFDO0lBRUY7O09BRUc7SUFDSyxXQUFXLEdBQW9DLElBQUksR0FBRyxFQUFFLENBQUM7SUFFakU7O09BRUc7SUFDSyxLQUFLLEdBQUcsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0M7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFDTyxPQUFPLEdBQXNDLElBQUksZUFBZSxDQUN0RSxTQUFTLENBQ1YsQ0FBQztJQUVGOztPQUVHO0lBQ00sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFTLENB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TSxDQUFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxQixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVCLE1BQU0sS0FBSyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxhQUFhLENBQUMsTUFBVztRQUMvQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0RSxPQUFPLElBQUksR0FBRyxDQUFDLE9BQTJCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYmplY3RVdGlscywgdXVpZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBFbnRpdHlGaWx0ZXJDbGF1c2UsXG4gIEVudGl0eUpvaW5DbGF1c2UsXG4gIEVudGl0eUtleSxcbiAgRW50aXR5U29ydENsYXVzZVxufSBmcm9tICcuL2VudGl0eS5pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBBbiBlbnRpdHkgdmlldyBzdHJlYW1zIGVudGl0aWVzIGZyb20gYW4gb2JzZXJ2YWJsZSBzb3VyY2UuIFRoZXNlIGVudGl0aWVzXG4gKiBjYW4gYmUgZmlsdGVyZWQgb3Igc29ydGVkIHdpdGhvdXQgYWZmZWN0aW5nIHRoZSBzb3VyY2UuIEEgdmlldyBjYW4gYWxzb1xuICogY29tYmluZSBkYXRhIGZyb20gbXVsdGlwbGUgc291cmNlcywgam9pbmVkIHRvZ2V0aGVyLlxuICovXG5leHBvcnQgY2xhc3MgRW50aXR5VmlldzxFIGV4dGVuZHMgb2JqZWN0LCBWIGV4dGVuZHMgb2JqZWN0ID0gRT4ge1xuICAvKipcbiAgICogT2JzZXJ2YWJsZSBzdHJlYW0gb2YgdmFsdWVzXG4gICAqL1xuICByZWFkb25seSB2YWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWW10+KFtdKTtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBzb3VyY2UgKGFuZCBqb2luZWQgc291cmNlcykgdmFsdWVzXG4gICAqL1xuICBwcml2YXRlIHZhbHVlcyQkOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyB2aWV3IGhhcyBiZWVuIGxpZnRlZFxuICAgKi9cbiAgcHJpdmF0ZSBsaWZ0ZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogSm9pbiBjbGF1c2VzXG4gICAqL1xuICBwcml2YXRlIGpvaW5zOiBFbnRpdHlKb2luQ2xhdXNlW10gPSBbXTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiBhIGZpbHRlciBjbGF1c2VcbiAgICovXG4gIHByaXZhdGUgZmlsdGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiBmaWx0ZXIgY2xhdXNlc1xuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJzJDogQmVoYXZpb3JTdWJqZWN0PEVudGl0eUZpbHRlckNsYXVzZVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgW11cbiAgKTtcblxuICAvKipcbiAgICogRmlsdGVycyBpbmRleFxuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJJbmRleDogTWFwPHN0cmluZywgRW50aXR5RmlsdGVyQ2xhdXNlPiA9IG5ldyBNYXAoKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiBhIHNvcnQgY2xhdXNlXG4gICAqL1xuICBwcml2YXRlIHNvcnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xuXG4gIC8qKlxuICAgKiBNZXRob2QgZm9yIGluZGV4aW5nXG4gICAqL1xuICBnZXQgZ2V0S2V5KCk6IChWKSA9PiBFbnRpdHlLZXkge1xuICAgIHJldHVybiB0aGlzLmdldEtleSQudmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBnZXRLZXkkOiBCZWhhdmlvclN1YmplY3Q8KFYpID0+IEVudGl0eUtleT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxuICAgIHVuZGVmaW5lZFxuICApO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZW50aXRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGNvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY291bnQkLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0b3JlIGlzIGVtcHR5XG4gICAqL1xuICByZWFkb25seSBlbXB0eSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW1wdHkkLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlIGluZGV4XG4gICAqL1xuICBnZXQgaW5kZXgoKTogTWFwPEVudGl0eUtleSwgVj4ge1xuICAgIHJldHVybiB0aGlzLl9pbmRleDtcbiAgfVxuICBwcml2YXRlIF9pbmRleDogTWFwPEVudGl0eUtleSwgVj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzb3VyY2UkOiBCZWhhdmlvclN1YmplY3Q8RVtdPikge31cblxuICAvKipcbiAgICogR2V0IGEgdmFsdWUgZnJvbSB0aGUgdmlldyBieSBrZXlcbiAgICogQHBhcmFtIGtleSBLZXlcbiAgICogQHJldHVybnMgVmFsdWVcbiAgICovXG4gIGdldChrZXk6IEVudGl0eUtleSk6IFYge1xuICAgIGlmICh0aGlzLl9pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdUaGlzIHZpZXcgaGFzIG5vIGluZGV4LCB0aGVyZWZvcmUsIHRoaXMgbWV0aG9kIGlzIHVuYXZhaWxhYmxlLidcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmluZGV4LmdldChrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgdGhlIHZhbHVlc1xuICAgKiBAcmV0dXJucyBBcnJheSBvZiB2YWx1ZXNcbiAgICovXG4gIGFsbCgpOiBWW10ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcyQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogT2JzZXJ2ZSBhbGwgdGhlIHZhbHVlc1xuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHZhbHVlc1xuICAgKi9cbiAgYWxsJCgpOiBCZWhhdmlvclN1YmplY3Q8VltdPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzJDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZpcnN0IHZhbHVlIHRoYXQgcmVzcGVjdHMgYSBjcml0ZXJpYVxuICAgKiBAcmV0dXJucyBBIHZhbHVlXG4gICAqL1xuICBmaXJzdEJ5KGNsYXVzZTogRW50aXR5RmlsdGVyQ2xhdXNlPFY+KTogViB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzJC52YWx1ZS5maW5kKGNsYXVzZSk7XG4gIH1cblxuICAvKipcbiAgICogT2JzZXJ2ZSB0aGUgZmlyc3QgdmFsdWUgdGhhdCByZXNwZWN0cyBhIGNyaXRlcmlhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgYSB2YWx1ZVxuICAgKi9cbiAgZmlyc3RCeSQoY2xhdXNlOiBFbnRpdHlGaWx0ZXJDbGF1c2U8Vj4pOiBPYnNlcnZhYmxlPFY+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMkLnBpcGUobWFwKCh2YWx1ZXM6IFZbXSkgPT4gdmFsdWVzLmZpbmQoY2xhdXNlKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgdGhlIHZhbHVlcyB0aGF0IHJlc3BlY3QgYSBjcml0ZXJpYVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiB2YWx1ZXNcbiAgICovXG4gIG1hbnlCeShjbGF1c2U6IEVudGl0eUZpbHRlckNsYXVzZTxWPik6IFZbXSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzJC52YWx1ZS5maWx0ZXIoY2xhdXNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnNlcnZlIGFsbCB0aGUgdmFsdWVzIHRoYXQgcmVzcGVjdCBhIGNyaXRlcmlhXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgdmFsdWVzXG4gICAqL1xuICBtYW55QnkkKGNsYXVzZTogRW50aXR5RmlsdGVyQ2xhdXNlPFY+KTogT2JzZXJ2YWJsZTxWW10+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMkLnBpcGUobWFwKCh2YWx1ZXM6IFZbXSkgPT4gdmFsdWVzLmZpbHRlcihjbGF1c2UpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIGZpbHRlciBhbmQgc29ydCBhbmQgdW5zdWJzY3JpYmUgZnJvbSB0aGUgc291cmNlXG4gICAqL1xuICBjbGVhcigpIHtcbiAgICB0aGlzLmZpbHRlcih1bmRlZmluZWQpO1xuICAgIHRoaXMuc29ydCh1bmRlZmluZWQpO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy52YWx1ZXMkJCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZhbHVlcyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gaW5kZXhcbiAgICogQHBhcmFtIGdldEtleSBNZXRob2QgdG8gZ2V0IGEgdmFsdWUncyBpZFxuICAgKiBAcmV0dXJucyBUaGUgdmlld1xuICAgKi9cbiAgY3JlYXRlSW5kZXgoZ2V0S2V5OiAoRSkgPT4gRW50aXR5S2V5KTogRW50aXR5VmlldzxFLCBWPiB7XG4gICAgdGhpcy5faW5kZXggPSBuZXcgTWFwKCk7XG4gICAgdGhpcy5nZXRLZXkkLm5leHQoZ2V0S2V5KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBKb2luIGFub3RoZXIgc291cmNlIHRvIHRoZSBzdHJlYW0gKGNoYWluYWJsZSlcbiAgICogQHBhcmFtIGNsYXVzZSBKb2luIGNsYXVzZVxuICAgKiBAcmV0dXJucyBUaGUgdmlld1xuICAgKi9cbiAgam9pbihjbGF1c2U6IEVudGl0eUpvaW5DbGF1c2UpOiBFbnRpdHlWaWV3PEUsIFY+IHtcbiAgICBpZiAodGhpcy5saWZ0ZWQgPT09IHRydWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoaXMgdmlldyBoYXMgYWxyZWFkeSBiZWVuIGxpZnRlZCwgdGhlcmVmb3JlLCBubyBqb2luIGlzIGFsbG93ZWQuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5qb2lucy5wdXNoKGNsYXVzZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIHZhbHVlcyAoY2hhaW5hYmxlKVxuICAgKiBAcGFyYW0gY2xhdXNlIEZpbHRlciBjbGF1c2VcbiAgICogQHJldHVybnMgVGhlIHZpZXdcbiAgICovXG4gIGZpbHRlcihjbGF1c2U6IEVudGl0eUZpbHRlckNsYXVzZTxWPik6IEVudGl0eVZpZXc8RSwgVj4ge1xuICAgIHRoaXMuZmlsdGVyJC5uZXh0KGNsYXVzZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGNsYXVzZSBGaWx0ZXIgY2xhdXNlXG4gICAqIEByZXR1cm5zIFRoZSBmaWx0ZXIgaWRcbiAgICovXG4gIGFkZEZpbHRlcihjbGF1c2U6IEVudGl0eUZpbHRlckNsYXVzZTxWPik6IHN0cmluZyB7XG4gICAgY29uc3QgaWQgPSB1dWlkKCk7XG4gICAgdGhpcy5maWx0ZXJJbmRleC5zZXQoaWQsIGNsYXVzZSk7XG4gICAgdGhpcy5maWx0ZXJzJC5uZXh0KEFycmF5LmZyb20odGhpcy5maWx0ZXJJbmRleC52YWx1ZXMoKSkpO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSBmaWx0ZXIgYnkgaWRcbiAgICogQHBhcmFtIGNsYXVzZSBGaWx0ZXIgY2xhdXNlXG4gICAqL1xuICByZW1vdmVGaWx0ZXIoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVySW5kZXguZGVsZXRlKGlkKTtcbiAgICB0aGlzLmZpbHRlcnMkLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbHRlckluZGV4LnZhbHVlcygpKSk7XG4gIH1cblxuICAvKipcbiAgICogU29ydCB2YWx1ZXMgKGNoYWluYWJsZSlcbiAgICogQHBhcmFtIGNsYXVzZVNvcnQgY2xhdXNlXG4gICAqIEByZXR1cm5zIFRoZSB2aWV3XG4gICAqL1xuICBzb3J0KGNsYXVzZTogRW50aXR5U29ydENsYXVzZTxWPik6IEVudGl0eVZpZXc8RSwgVj4ge1xuICAgIHRoaXMuc29ydCQubmV4dChjbGF1c2UpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgZmluYWwgb2JzZXJ2YWJsZVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlXG4gICAqL1xuICBsaWZ0KCkge1xuICAgIHRoaXMubGlmdGVkID0gdHJ1ZTtcbiAgICBjb25zdCBzb3VyY2UkID1cbiAgICAgIHRoaXMuam9pbnMubGVuZ3RoID4gMCA/IHRoaXMubGlmdEpvaW5lZFNvdXJjZSgpIDogdGhpcy5saWZ0U291cmNlKCk7XG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMkID0gW1xuICAgICAgc291cmNlJCxcbiAgICAgIHRoaXMuZmlsdGVycyQsXG4gICAgICB0aGlzLmZpbHRlciQsXG4gICAgICB0aGlzLnNvcnQkLFxuICAgICAgdGhpcy5nZXRLZXkkXG4gICAgXTtcblxuICAgIHRoaXMudmFsdWVzJCQgPSBjb21iaW5lTGF0ZXN0KG9ic2VydmFibGVzJClcbiAgICAgIC5waXBlKHNraXAoMSksIGRlYm91bmNlVGltZSg1KSlcbiAgICAgIC5zdWJzY3JpYmUoKGJ1bmNoOiBhbnlbXSkgPT4ge1xuICAgICAgICBjb25zdCBbX3ZhbHVlcywgZmlsdGVycywgZmlsdGVyLCBzb3J0LCBnZXRLZXldID0gYnVuY2g7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMucHJvY2Vzc1ZhbHVlcyhfdmFsdWVzLCBmaWx0ZXJzLCBmaWx0ZXIsIHNvcnQpO1xuICAgICAgICBjb25zdCBnZW5lcmF0ZUluZGV4ID0gZ2V0S2V5ICE9PSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc2V0VmFsdWVzKHZhbHVlcywgZ2VuZXJhdGVJbmRleCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHNvdXJjZSBvYnNlcnZhYmxlIHdoZW4gbm8gam9pbnMgYXJlIGRlZmluZWRcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZVxuICAgKi9cbiAgcHJpdmF0ZSBsaWZ0U291cmNlKCk6IE9ic2VydmFibGU8VltdPiB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlJCBhcyBhbnkgYXMgT2JzZXJ2YWJsZTxWW10+O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgc291cmNlIG9ic2VydmFibGUgd2hlbiBqb2lucyBhcmUgZGVmaW5lZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlXG4gICAqL1xuICBwcml2YXRlIGxpZnRKb2luZWRTb3VyY2UoKTogT2JzZXJ2YWJsZTxWW10+IHtcbiAgICBjb25zdCBzb3VyY2VzJCA9IFtcbiAgICAgIHRoaXMuc291cmNlJCxcbiAgICAgIGNvbWJpbmVMYXRlc3QodGhpcy5qb2lucy5tYXAoKGpvaW46IEVudGl0eUpvaW5DbGF1c2UpID0+IGpvaW4uc291cmNlKSlcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qoc291cmNlcyQpLnBpcGUoXG4gICAgICBtYXAoKGJ1bmNoOiBbRVtdLCBhbnlbXV0pID0+IHtcbiAgICAgICAgY29uc3QgW2VudGl0aWVzLCBqb2luRGF0YV0gPSBidW5jaDtcbiAgICAgICAgcmV0dXJuIGVudGl0aWVzLnJlZHVjZSgodmFsdWVzOiBWW10sIGVudGl0eTogRSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb21wdXRlSm9pbmVkVmFsdWUoZW50aXR5LCBqb2luRGF0YSk7XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICAgICAgfSwgW10pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IGpvaW5zIHRvIGEgc291cmNlJ3MgZW50aXR5IGFuZCByZXR1cm4gdGhlIGZpbmFsIHZhbHVlXG4gICAqIEByZXR1cm5zIEZpbmFsIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIGNvbXB1dGVKb2luZWRWYWx1ZShlbnRpdHk6IEUsIGpvaW5EYXRhOiBhbnlbXSk6IFYgfCB1bmRlZmluZWQge1xuICAgIGxldCB2YWx1ZSA9IGVudGl0eSBhcyBQYXJ0aWFsPFY+O1xuICAgIGxldCBqb2luSW5kZXggPSAwO1xuICAgIHdoaWxlICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIGpvaW5JbmRleCA8IHRoaXMuam9pbnMubGVuZ3RoKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuam9pbnNbam9pbkluZGV4XS5yZWR1Y2UodmFsdWUsIGpvaW5EYXRhW2pvaW5JbmRleF0pO1xuICAgICAgam9pbkluZGV4ICs9IDE7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZSBhcyBWO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlciBhbmQgc29ydCB2YWx1ZXMgYmVmb3JlIHN0cmVhbWluZyB0aGVtXG4gICAqIEBwYXJhbSB2YWx1ZXMgVmFsdWVzXG4gICAqIEBwYXJhbSBmaWx0ZXJzIEZpbHRlciBjbGF1c2VzXG4gICAqIEBwYXJhbSBmaWx0ZXIgRmlsdGVyIGNsYXVzZVxuICAgKiBAcGFyYW0gc29ydCBTb3J0IGNsYXVzZVxuICAgKiBAcmV0dXJucyBGaWx0ZXJlZCBhbmQgc29ydGVkIHZhbHVlc1xuICAgKi9cbiAgcHJpdmF0ZSBwcm9jZXNzVmFsdWVzKFxuICAgIHZhbHVlczogVltdLFxuICAgIGZpbHRlcnM6IEVudGl0eUZpbHRlckNsYXVzZVtdLFxuICAgIGZpbHRlcjogRW50aXR5RmlsdGVyQ2xhdXNlLFxuICAgIHNvcnQ6IEVudGl0eVNvcnRDbGF1c2VcbiAgKTogVltdIHtcbiAgICB2YWx1ZXMgPSB2YWx1ZXMuc2xpY2UoMCk7XG4gICAgdmFsdWVzID0gdGhpcy5maWx0ZXJWYWx1ZXModmFsdWVzLCBmaWx0ZXJzLmNvbmNhdChbZmlsdGVyXSkpO1xuICAgIHZhbHVlcyA9IHRoaXMuc29ydFZhbHVlcyh2YWx1ZXMsIHNvcnQpO1xuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIHZhbHVlc1xuICAgKiBAcGFyYW0gdmFsdWVzIFZhbHVlc1xuICAgKiBAcGFyYW0gZmlsdGVycyBGaWx0ZXIgY2xhdXNlc1xuICAgKiBAcmV0dXJucyBGaWx0ZXJlZCB2YWx1ZXNcbiAgICovXG4gIHByaXZhdGUgZmlsdGVyVmFsdWVzKHZhbHVlczogVltdLCBjbGF1c2VzOiBFbnRpdHlGaWx0ZXJDbGF1c2VbXSk6IFZbXSB7XG4gICAgaWYgKGNsYXVzZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdmFsdWVzO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZXMuZmlsdGVyKCh2YWx1ZTogVikgPT4ge1xuICAgICAgcmV0dXJuIGNsYXVzZXNcbiAgICAgICAgLmZpbHRlcigoY2xhdXNlOiBFbnRpdHlGaWx0ZXJDbGF1c2UpID0+IGNsYXVzZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAuZXZlcnkoKGNsYXVzZTogRW50aXR5RmlsdGVyQ2xhdXNlKSA9PiBjbGF1c2UodmFsdWUpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb3J0IHZhbHVlc1xuICAgKiBAcGFyYW0gdmFsdWVzIFZhbHVlc1xuICAgKiBAcGFyYW0gc29ydCBTb3J0IGNsYXVzZVxuICAgKiBAcmV0dXJucyBTb3J0ZWQgdmFsdWVzXG4gICAqL1xuICBwcml2YXRlIHNvcnRWYWx1ZXModmFsdWVzOiBWW10sIGNsYXVzZTogRW50aXR5U29ydENsYXVzZSk6IFZbXSB7XG4gICAgaWYgKGNsYXVzZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdmFsdWVzO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVzLnNvcnQoKHYxOiBWLCB2MjogVikgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLm5hdHVyYWxDb21wYXJlKFxuICAgICAgICBjbGF1c2UudmFsdWVBY2Nlc3Nvcih2MSksXG4gICAgICAgIGNsYXVzZS52YWx1ZUFjY2Vzc29yKHYyKSxcbiAgICAgICAgY2xhdXNlLmRpcmVjdGlvbixcbiAgICAgICAgY2xhdXNlLm51bGxzRmlyc3RcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHZhbHVlIGFuZCBvcHRpb25hbGx5IGdlbmVyYXRlIGFuIGluZGV4XG4gICAqIEBwYXJhbSB2YWx1ZXMgVmFsdWVzXG4gICAqIEBwYXJhbSBnZW5lcmF0ZUluZGV4IGJvb2xlYW5cbiAgICovXG4gIHByaXZhdGUgc2V0VmFsdWVzKHZhbHVlczogVltdLCBnZW5lcmF0ZUluZGV4OiBib29sZWFuKSB7XG4gICAgaWYgKGdlbmVyYXRlSW5kZXggPT09IHRydWUpIHtcbiAgICAgIHRoaXMuX2luZGV4ID0gdGhpcy5nZW5lcmF0ZUluZGV4KHZhbHVlcyk7XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZXMkLm5leHQodmFsdWVzKTtcblxuICAgIGNvbnN0IGNvdW50ID0gdmFsdWVzLmxlbmd0aDtcbiAgICBjb25zdCBlbXB0eSA9IGNvdW50ID09PSAwO1xuICAgIHRoaXMuY291bnQkLm5leHQoY291bnQpO1xuICAgIHRoaXMuZW1wdHkkLm5leHQoZW1wdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgY29tcGxldGUgaW5kZXggb2YgYWxsIHRoZSB2YWx1ZXNcbiAgICogQHBhcmFtIGVudGl0aWVzIEVudGl0aWVzXG4gICAqIEByZXR1cm5zIEluZGV4XG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlSW5kZXgodmFsdWVzOiBWW10pOiBNYXA8RW50aXR5S2V5LCBWPiB7XG4gICAgY29uc3QgZW50cmllcyA9IHZhbHVlcy5tYXAoKHZhbHVlOiBWKSA9PiBbdGhpcy5nZXRLZXkodmFsdWUpLCB2YWx1ZV0pO1xuICAgIHJldHVybiBuZXcgTWFwKGVudHJpZXMgYXMgW0VudGl0eUtleSwgVl1bXSk7XG4gIH1cbn1cbiJdfQ==
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2VudGl0eS9zaGFyZWQvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZUFBZSxFQUE0QixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTekQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBNkVEO0lBNUVwQjs7T0FFRztJQUNNLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztJQUVoRDs7T0FFRztJQUNLLFFBQVEsQ0FBZTtJQUUvQjs7T0FFRztJQUNLLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFdkI7O09BRUc7SUFDSyxLQUFLLEdBQXVCLEVBQUUsQ0FBQztJQUV2Qzs7T0FFRztJQUNLLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVqRDs7T0FFRztJQUNLLFFBQVEsR0FBMEMsSUFBSSxlQUFlLENBQzNFLEVBQUUsQ0FDSCxDQUFDO0lBRUY7O09BRUc7SUFDSyxXQUFXLEdBQW9DLElBQUksR0FBRyxFQUFFLENBQUM7SUFFakU7O09BRUc7SUFDSyxLQUFLLEdBQUcsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0M7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFDTyxPQUFPLEdBQXNDLElBQUksZUFBZSxDQUN0RSxTQUFTLENBQ1YsQ0FBQztJQUVGOztPQUVHO0lBQ00sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFTLENB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QUksYUFBYSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM1QixNQUFNLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssYUFBYSxDQUFDLE1BQVc7UUFDL0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEUsT0FBTyxJQUFJLEdBQUcsQ0FBQyxPQUEyQixDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JqZWN0VXRpbHMsIHV1aWQgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgc2tpcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgRW50aXR5RmlsdGVyQ2xhdXNlLFxyXG4gIEVudGl0eUpvaW5DbGF1c2UsXHJcbiAgRW50aXR5S2V5LFxyXG4gIEVudGl0eVNvcnRDbGF1c2VcclxufSBmcm9tICcuL2VudGl0eS5pbnRlcmZhY2VzJztcclxuXHJcbi8qKlxyXG4gKiBBbiBlbnRpdHkgdmlldyBzdHJlYW1zIGVudGl0aWVzIGZyb20gYW4gb2JzZXJ2YWJsZSBzb3VyY2UuIFRoZXNlIGVudGl0aWVzXHJcbiAqIGNhbiBiZSBmaWx0ZXJlZCBvciBzb3J0ZWQgd2l0aG91dCBhZmZlY3RpbmcgdGhlIHNvdXJjZS4gQSB2aWV3IGNhbiBhbHNvXHJcbiAqIGNvbWJpbmUgZGF0YSBmcm9tIG11bHRpcGxlIHNvdXJjZXMsIGpvaW5lZCB0b2dldGhlci5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlWaWV3PEUgZXh0ZW5kcyBvYmplY3QsIFYgZXh0ZW5kcyBvYmplY3QgPSBFPiB7XHJcbiAgLyoqXHJcbiAgICogT2JzZXJ2YWJsZSBzdHJlYW0gb2YgdmFsdWVzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgdmFsdWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VltdPihbXSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgc291cmNlIChhbmQgam9pbmVkIHNvdXJjZXMpIHZhbHVlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdmFsdWVzJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGlzIHZpZXcgaGFzIGJlZW4gbGlmdGVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBsaWZ0ZWQgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogSm9pbiBjbGF1c2VzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBqb2luczogRW50aXR5Sm9pbkNsYXVzZVtdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIE9ic2VydmFibGUgb2YgYSBmaWx0ZXIgY2xhdXNlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmaWx0ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIG9mIGZpbHRlciBjbGF1c2VzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmaWx0ZXJzJDogQmVoYXZpb3JTdWJqZWN0PEVudGl0eUZpbHRlckNsYXVzZVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXHJcbiAgICBbXVxyXG4gICk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbHRlcnMgaW5kZXhcclxuICAgKi9cclxuICBwcml2YXRlIGZpbHRlckluZGV4OiBNYXA8c3RyaW5nLCBFbnRpdHlGaWx0ZXJDbGF1c2U+ID0gbmV3IE1hcCgpO1xyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIG9mIGEgc29ydCBjbGF1c2VcclxuICAgKi9cclxuICBwcml2YXRlIHNvcnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgZm9yIGluZGV4aW5nXHJcbiAgICovXHJcbiAgZ2V0IGdldEtleSgpOiAoVikgPT4gRW50aXR5S2V5IHtcclxuICAgIHJldHVybiB0aGlzLmdldEtleSQudmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgZ2V0S2V5JDogQmVoYXZpb3JTdWJqZWN0PChWKSA9PiBFbnRpdHlLZXk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcclxuICAgIHVuZGVmaW5lZFxyXG4gICk7XHJcblxyXG4gIC8qKlxyXG4gICAqIE51bWJlciBvZiBlbnRpdGllc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcclxuICBnZXQgY291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmNvdW50JC52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdGhlIHN0b3JlIGlzIGVtcHR5XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZW1wdHkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5lbXB0eSQudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9yZSBpbmRleFxyXG4gICAqL1xyXG4gIGdldCBpbmRleCgpOiBNYXA8RW50aXR5S2V5LCBWPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faW5kZXg7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luZGV4OiBNYXA8RW50aXR5S2V5LCBWPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzb3VyY2UkOiBCZWhhdmlvclN1YmplY3Q8RVtdPikge31cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGEgdmFsdWUgZnJvbSB0aGUgdmlldyBieSBrZXlcclxuICAgKiBAcGFyYW0ga2V5IEtleVxyXG4gICAqIEByZXR1cm5zIFZhbHVlXHJcbiAgICovXHJcbiAgZ2V0KGtleTogRW50aXR5S2V5KTogViB7XHJcbiAgICBpZiAodGhpcy5faW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1RoaXMgdmlldyBoYXMgbm8gaW5kZXgsIHRoZXJlZm9yZSwgdGhpcyBtZXRob2QgaXMgdW5hdmFpbGFibGUuJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaW5kZXguZ2V0KGtleSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgYWxsIHRoZSB2YWx1ZXNcclxuICAgKiBAcmV0dXJucyBBcnJheSBvZiB2YWx1ZXNcclxuICAgKi9cclxuICBhbGwoKTogVltdIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlcyQudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZlIGFsbCB0aGUgdmFsdWVzXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB2YWx1ZXNcclxuICAgKi9cclxuICBhbGwkKCk6IEJlaGF2aW9yU3ViamVjdDxWW10+IHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlcyQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGZpcnN0IHZhbHVlIHRoYXQgcmVzcGVjdHMgYSBjcml0ZXJpYVxyXG4gICAqIEByZXR1cm5zIEEgdmFsdWVcclxuICAgKi9cclxuICBmaXJzdEJ5KGNsYXVzZTogRW50aXR5RmlsdGVyQ2xhdXNlPFY+KTogViB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMkLnZhbHVlLmZpbmQoY2xhdXNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9ic2VydmUgdGhlIGZpcnN0IHZhbHVlIHRoYXQgcmVzcGVjdHMgYSBjcml0ZXJpYVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgYSB2YWx1ZVxyXG4gICAqL1xyXG4gIGZpcnN0QnkkKGNsYXVzZTogRW50aXR5RmlsdGVyQ2xhdXNlPFY+KTogT2JzZXJ2YWJsZTxWPiB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZXMkLnBpcGUobWFwKCh2YWx1ZXM6IFZbXSkgPT4gdmFsdWVzLmZpbmQoY2xhdXNlKSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCB0aGUgdmFsdWVzIHRoYXQgcmVzcGVjdCBhIGNyaXRlcmlhXHJcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsdWVzXHJcbiAgICovXHJcbiAgbWFueUJ5KGNsYXVzZTogRW50aXR5RmlsdGVyQ2xhdXNlPFY+KTogVltdIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlcyQudmFsdWUuZmlsdGVyKGNsYXVzZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZlIGFsbCB0aGUgdmFsdWVzIHRoYXQgcmVzcGVjdCBhIGNyaXRlcmlhXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB2YWx1ZXNcclxuICAgKi9cclxuICBtYW55QnkkKGNsYXVzZTogRW50aXR5RmlsdGVyQ2xhdXNlPFY+KTogT2JzZXJ2YWJsZTxWW10+IHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlcyQucGlwZShtYXAoKHZhbHVlczogVltdKSA9PiB2YWx1ZXMuZmlsdGVyKGNsYXVzZSkpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSBmaWx0ZXIgYW5kIHNvcnQgYW5kIHVuc3Vic2NyaWJlIGZyb20gdGhlIHNvdXJjZVxyXG4gICAqL1xyXG4gIGNsZWFyKCkge1xyXG4gICAgdGhpcy5maWx0ZXIodW5kZWZpbmVkKTtcclxuICAgIHRoaXMuc29ydCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLnZhbHVlcyQkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy52YWx1ZXMkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGFuIGluZGV4XHJcbiAgICogQHBhcmFtIGdldEtleSBNZXRob2QgdG8gZ2V0IGEgdmFsdWUncyBpZFxyXG4gICAqIEByZXR1cm5zIFRoZSB2aWV3XHJcbiAgICovXHJcbiAgY3JlYXRlSW5kZXgoZ2V0S2V5OiAoRSkgPT4gRW50aXR5S2V5KTogRW50aXR5VmlldzxFLCBWPiB7XHJcbiAgICB0aGlzLl9pbmRleCA9IG5ldyBNYXAoKTtcclxuICAgIHRoaXMuZ2V0S2V5JC5uZXh0KGdldEtleSk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEpvaW4gYW5vdGhlciBzb3VyY2UgdG8gdGhlIHN0cmVhbSAoY2hhaW5hYmxlKVxyXG4gICAqIEBwYXJhbSBjbGF1c2UgSm9pbiBjbGF1c2VcclxuICAgKiBAcmV0dXJucyBUaGUgdmlld1xyXG4gICAqL1xyXG4gIGpvaW4oY2xhdXNlOiBFbnRpdHlKb2luQ2xhdXNlKTogRW50aXR5VmlldzxFLCBWPiB7XHJcbiAgICBpZiAodGhpcy5saWZ0ZWQgPT09IHRydWUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICdUaGlzIHZpZXcgaGFzIGFscmVhZHkgYmVlbiBsaWZ0ZWQsIHRoZXJlZm9yZSwgbm8gam9pbiBpcyBhbGxvd2VkLidcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuam9pbnMucHVzaChjbGF1c2UpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaWx0ZXIgdmFsdWVzIChjaGFpbmFibGUpXHJcbiAgICogQHBhcmFtIGNsYXVzZSBGaWx0ZXIgY2xhdXNlXHJcbiAgICogQHJldHVybnMgVGhlIHZpZXdcclxuICAgKi9cclxuICBmaWx0ZXIoY2xhdXNlOiBFbnRpdHlGaWx0ZXJDbGF1c2U8Vj4pOiBFbnRpdHlWaWV3PEUsIFY+IHtcclxuICAgIHRoaXMuZmlsdGVyJC5uZXh0KGNsYXVzZSk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBjbGF1c2UgRmlsdGVyIGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIFRoZSBmaWx0ZXIgaWRcclxuICAgKi9cclxuICBhZGRGaWx0ZXIoY2xhdXNlOiBFbnRpdHlGaWx0ZXJDbGF1c2U8Vj4pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgaWQgPSB1dWlkKCk7XHJcbiAgICB0aGlzLmZpbHRlckluZGV4LnNldChpZCwgY2xhdXNlKTtcclxuICAgIHRoaXMuZmlsdGVycyQubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsdGVySW5kZXgudmFsdWVzKCkpKTtcclxuICAgIHJldHVybiBpZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBhIGZpbHRlciBieSBpZFxyXG4gICAqIEBwYXJhbSBjbGF1c2UgRmlsdGVyIGNsYXVzZVxyXG4gICAqL1xyXG4gIHJlbW92ZUZpbHRlcihpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmZpbHRlckluZGV4LmRlbGV0ZShpZCk7XHJcbiAgICB0aGlzLmZpbHRlcnMkLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbHRlckluZGV4LnZhbHVlcygpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTb3J0IHZhbHVlcyAoY2hhaW5hYmxlKVxyXG4gICAqIEBwYXJhbSBjbGF1c2VTb3J0IGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIFRoZSB2aWV3XHJcbiAgICovXHJcbiAgc29ydChjbGF1c2U6IEVudGl0eVNvcnRDbGF1c2U8Vj4pOiBFbnRpdHlWaWV3PEUsIFY+IHtcclxuICAgIHRoaXMuc29ydCQubmV4dChjbGF1c2UpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgdGhlIGZpbmFsIG9ic2VydmFibGVcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlXHJcbiAgICovXHJcbiAgbGlmdCgpIHtcclxuICAgIHRoaXMubGlmdGVkID0gdHJ1ZTtcclxuICAgIGNvbnN0IHNvdXJjZSQgPVxyXG4gICAgICB0aGlzLmpvaW5zLmxlbmd0aCA+IDAgPyB0aGlzLmxpZnRKb2luZWRTb3VyY2UoKSA6IHRoaXMubGlmdFNvdXJjZSgpO1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMkID0gW1xyXG4gICAgICBzb3VyY2UkLFxyXG4gICAgICB0aGlzLmZpbHRlcnMkLFxyXG4gICAgICB0aGlzLmZpbHRlciQsXHJcbiAgICAgIHRoaXMuc29ydCQsXHJcbiAgICAgIHRoaXMuZ2V0S2V5JFxyXG4gICAgXTtcclxuXHJcbiAgICB0aGlzLnZhbHVlcyQkID0gY29tYmluZUxhdGVzdChvYnNlcnZhYmxlcyQpXHJcbiAgICAgIC5waXBlKHNraXAoMSksIGRlYm91bmNlVGltZSg1KSlcclxuICAgICAgLnN1YnNjcmliZSgoYnVuY2g6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3QgW192YWx1ZXMsIGZpbHRlcnMsIGZpbHRlciwgc29ydCwgZ2V0S2V5XSA9IGJ1bmNoO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMucHJvY2Vzc1ZhbHVlcyhfdmFsdWVzLCBmaWx0ZXJzLCBmaWx0ZXIsIHNvcnQpO1xyXG4gICAgICAgIGNvbnN0IGdlbmVyYXRlSW5kZXggPSBnZXRLZXkgIT09IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLnNldFZhbHVlcyh2YWx1ZXMsIGdlbmVyYXRlSW5kZXgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSB0aGUgc291cmNlIG9ic2VydmFibGUgd2hlbiBubyBqb2lucyBhcmUgZGVmaW5lZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGVcclxuICAgKi9cclxuICBwcml2YXRlIGxpZnRTb3VyY2UoKTogT2JzZXJ2YWJsZTxWW10+IHtcclxuICAgIHJldHVybiB0aGlzLnNvdXJjZSQgYXMgYW55IGFzIE9ic2VydmFibGU8VltdPjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSB0aGUgc291cmNlIG9ic2VydmFibGUgd2hlbiBqb2lucyBhcmUgZGVmaW5lZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGVcclxuICAgKi9cclxuICBwcml2YXRlIGxpZnRKb2luZWRTb3VyY2UoKTogT2JzZXJ2YWJsZTxWW10+IHtcclxuICAgIGNvbnN0IHNvdXJjZXMkID0gW1xyXG4gICAgICB0aGlzLnNvdXJjZSQsXHJcbiAgICAgIGNvbWJpbmVMYXRlc3QodGhpcy5qb2lucy5tYXAoKGpvaW46IEVudGl0eUpvaW5DbGF1c2UpID0+IGpvaW4uc291cmNlKSlcclxuICAgIF07XHJcblxyXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qoc291cmNlcyQpLnBpcGUoXHJcbiAgICAgIG1hcCgoYnVuY2g6IFtFW10sIGFueVtdXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IFtlbnRpdGllcywgam9pbkRhdGFdID0gYnVuY2g7XHJcbiAgICAgICAgcmV0dXJuIGVudGl0aWVzLnJlZHVjZSgodmFsdWVzOiBWW10sIGVudGl0eTogRSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvbXB1dGVKb2luZWRWYWx1ZShlbnRpdHksIGpvaW5EYXRhKTtcclxuICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB2YWx1ZXM7XHJcbiAgICAgICAgfSwgW10pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwcGx5IGpvaW5zIHRvIGEgc291cmNlJ3MgZW50aXR5IGFuZCByZXR1cm4gdGhlIGZpbmFsIHZhbHVlXHJcbiAgICogQHJldHVybnMgRmluYWwgdmFsdWVcclxuICAgKi9cclxuICBwcml2YXRlIGNvbXB1dGVKb2luZWRWYWx1ZShlbnRpdHk6IEUsIGpvaW5EYXRhOiBhbnlbXSk6IFYgfCB1bmRlZmluZWQge1xyXG4gICAgbGV0IHZhbHVlID0gZW50aXR5IGFzIFBhcnRpYWw8Vj47XHJcbiAgICBsZXQgam9pbkluZGV4ID0gMDtcclxuICAgIHdoaWxlICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIGpvaW5JbmRleCA8IHRoaXMuam9pbnMubGVuZ3RoKSB7XHJcbiAgICAgIHZhbHVlID0gdGhpcy5qb2luc1tqb2luSW5kZXhdLnJlZHVjZSh2YWx1ZSwgam9pbkRhdGFbam9pbkluZGV4XSk7XHJcbiAgICAgIGpvaW5JbmRleCArPSAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlIGFzIFY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaWx0ZXIgYW5kIHNvcnQgdmFsdWVzIGJlZm9yZSBzdHJlYW1pbmcgdGhlbVxyXG4gICAqIEBwYXJhbSB2YWx1ZXMgVmFsdWVzXHJcbiAgICogQHBhcmFtIGZpbHRlcnMgRmlsdGVyIGNsYXVzZXNcclxuICAgKiBAcGFyYW0gZmlsdGVyIEZpbHRlciBjbGF1c2VcclxuICAgKiBAcGFyYW0gc29ydCBTb3J0IGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIEZpbHRlcmVkIGFuZCBzb3J0ZWQgdmFsdWVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBwcm9jZXNzVmFsdWVzKFxyXG4gICAgdmFsdWVzOiBWW10sXHJcbiAgICBmaWx0ZXJzOiBFbnRpdHlGaWx0ZXJDbGF1c2VbXSxcclxuICAgIGZpbHRlcjogRW50aXR5RmlsdGVyQ2xhdXNlLFxyXG4gICAgc29ydDogRW50aXR5U29ydENsYXVzZVxyXG4gICk6IFZbXSB7XHJcbiAgICB2YWx1ZXMgPSB2YWx1ZXMuc2xpY2UoMCk7XHJcbiAgICB2YWx1ZXMgPSB0aGlzLmZpbHRlclZhbHVlcyh2YWx1ZXMsIGZpbHRlcnMuY29uY2F0KFtmaWx0ZXJdKSk7XHJcbiAgICB2YWx1ZXMgPSB0aGlzLnNvcnRWYWx1ZXModmFsdWVzLCBzb3J0KTtcclxuICAgIHJldHVybiB2YWx1ZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaWx0ZXIgdmFsdWVzXHJcbiAgICogQHBhcmFtIHZhbHVlcyBWYWx1ZXNcclxuICAgKiBAcGFyYW0gZmlsdGVycyBGaWx0ZXIgY2xhdXNlc1xyXG4gICAqIEByZXR1cm5zIEZpbHRlcmVkIHZhbHVlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZmlsdGVyVmFsdWVzKHZhbHVlczogVltdLCBjbGF1c2VzOiBFbnRpdHlGaWx0ZXJDbGF1c2VbXSk6IFZbXSB7XHJcbiAgICBpZiAoY2xhdXNlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHZhbHVlcztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsdWVzLmZpbHRlcigodmFsdWU6IFYpID0+IHtcclxuICAgICAgcmV0dXJuIGNsYXVzZXNcclxuICAgICAgICAuZmlsdGVyKChjbGF1c2U6IEVudGl0eUZpbHRlckNsYXVzZSkgPT4gY2xhdXNlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgLmV2ZXJ5KChjbGF1c2U6IEVudGl0eUZpbHRlckNsYXVzZSkgPT4gY2xhdXNlKHZhbHVlKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvcnQgdmFsdWVzXHJcbiAgICogQHBhcmFtIHZhbHVlcyBWYWx1ZXNcclxuICAgKiBAcGFyYW0gc29ydCBTb3J0IGNsYXVzZVxyXG4gICAqIEByZXR1cm5zIFNvcnRlZCB2YWx1ZXNcclxuICAgKi9cclxuICBwcml2YXRlIHNvcnRWYWx1ZXModmFsdWVzOiBWW10sIGNsYXVzZTogRW50aXR5U29ydENsYXVzZSk6IFZbXSB7XHJcbiAgICBpZiAoY2xhdXNlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlcztcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZXMuc29ydCgodjE6IFYsIHYyOiBWKSA9PiB7XHJcbiAgICAgIHJldHVybiBPYmplY3RVdGlscy5uYXR1cmFsQ29tcGFyZShcclxuICAgICAgICBjbGF1c2UudmFsdWVBY2Nlc3Nvcih2MSksXHJcbiAgICAgICAgY2xhdXNlLnZhbHVlQWNjZXNzb3IodjIpLFxyXG4gICAgICAgIGNsYXVzZS5kaXJlY3Rpb24sXHJcbiAgICAgICAgY2xhdXNlLm51bGxzRmlyc3RcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHZhbHVlIGFuZCBvcHRpb25hbGx5IGdlbmVyYXRlIGFuIGluZGV4XHJcbiAgICogQHBhcmFtIHZhbHVlcyBWYWx1ZXNcclxuICAgKiBAcGFyYW0gZ2VuZXJhdGVJbmRleCBib29sZWFuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZXModmFsdWVzOiBWW10sIGdlbmVyYXRlSW5kZXg6IGJvb2xlYW4pIHtcclxuICAgIGlmIChnZW5lcmF0ZUluZGV4ID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuX2luZGV4ID0gdGhpcy5nZW5lcmF0ZUluZGV4KHZhbHVlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52YWx1ZXMkLm5leHQodmFsdWVzKTtcclxuXHJcbiAgICBjb25zdCBjb3VudCA9IHZhbHVlcy5sZW5ndGg7XHJcbiAgICBjb25zdCBlbXB0eSA9IGNvdW50ID09PSAwO1xyXG4gICAgdGhpcy5jb3VudCQubmV4dChjb3VudCk7XHJcbiAgICB0aGlzLmVtcHR5JC5uZXh0KGVtcHR5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlbmVyYXRlIGEgY29tcGxldGUgaW5kZXggb2YgYWxsIHRoZSB2YWx1ZXNcclxuICAgKiBAcGFyYW0gZW50aXRpZXMgRW50aXRpZXNcclxuICAgKiBAcmV0dXJucyBJbmRleFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2VuZXJhdGVJbmRleCh2YWx1ZXM6IFZbXSk6IE1hcDxFbnRpdHlLZXksIFY+IHtcclxuICAgIGNvbnN0IGVudHJpZXMgPSB2YWx1ZXMubWFwKCh2YWx1ZTogVikgPT4gW3RoaXMuZ2V0S2V5KHZhbHVlKSwgdmFsdWVdKTtcclxuICAgIHJldHVybiBuZXcgTWFwKGVudHJpZXMgYXMgW0VudGl0eUtleSwgVl1bXSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -132,4 +132,4 @@ export class EntityStoreWatcher {
132
132
  return true;
133
133
  }
134
134
  }
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2VudGl0eS9zaGFyZWQvd2F0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUt0Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCOztPQUVHO0lBQ0ssS0FBSyxDQUFvQjtJQUVqQzs7T0FFRztJQUNLLEtBQUssQ0FBaUI7SUFFOUI7O09BRUc7SUFDSyxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXFDLENBQUM7SUFFdkU7O09BRUc7SUFDSyxVQUFVLENBQWU7SUFFakM7O09BRUc7SUFDSyxPQUFPLENBQWU7SUFFOUIsWUFBWSxLQUFzQixFQUFFLEtBQXlCO1FBQzNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFzQjtRQUM3QixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUN2QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pC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QUMsYUFBYSxFQUFFLENBQUM7U0FDNUI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNraXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEVudGl0eUtleSB9IGZyb20gJy4vZW50aXR5LmludGVyZmFjZXMnO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICcuL3N0b3JlJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gc3luY2hyb25pemUgYSBjb21wb25lbnQncyBjaGFuZ2VzXG4gKiBkZXRlY3Rpb24gd2l0aCBhbiBFbnRpdHlTdG9yZSBjaGFuZ2VzLiBGb3IgZXhhbXBsZSwgaXQgaXMgZnJlcXVlbnRcbiAqIHRvIGhhdmUgYSBjb21wb25lbnQgc3Vic2NyaWJlIHRvIGEgc3RvcmUncyBzZWxlY3RlZCBlbnRpdHkgYW5kLCBhdCB0aGUgc2FtZSB0aW1lLFxuICogdGhpcyBjb21wb25lbnQgcHJvdmlkZXMgYSB3YXkgdG8gc2VsZWN0IGFuIGVudGl0eSB3aXRoLCBsZXQncyBzYXksIGEgY2xpY2suXG4gKlxuICogVGhpcyBjbGFzcyBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdGhvc2UgY2FzZSBhbmQgdHJpZ2dlcnMgdGhlIGNvbXBvZW50J3NcbiAqIGNoYW5nZSBkZXRlY3Rpb24gd2hlbiBuZWVkZWQuXG4gKlxuICogTm90ZTogSWYgdGhlIGNvbXBvbmVudCBvYnNlcnZlcyB0aGUgc3RvcmUncyBzdGF0ZVZpZXcsIGEgd29ya3NwYWNlIGlzXG4gKiBwcm9iYWJseSBub3QgcmVxdWlyZWQgYmVjYXVzZSB0aGUgc3RhdGVWaWV3IGNhdGNoZXMgYW55IGNoYW5nZXMgdG8gdGhlXG4gKiBlbnRpdGllcyBhbmQgdGhlaXIgc3RhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZVdhdGNoZXI8RSBleHRlbmRzIG9iamVjdD4ge1xuICAvKipcbiAgICogQ29tcG9uZW50IGNoYW5nZSBkZXRlY3RvclxuICAgKi9cbiAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG5cbiAgLyoqXG4gICAqIEVudGl0eSBzdG9yZVxuICAgKi9cbiAgcHJpdmF0ZSBzdG9yZTogRW50aXR5U3RvcmU8RT47XG5cbiAgLyoqXG4gICAqIENvbXBvbmVudCBpbm5lciBzdGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBpbm5lclN0YXRlSW5kZXggPSBuZXcgTWFwPEVudGl0eUtleSwgeyBba2V5OiBzdHJpbmddOiBhbnkgfT4oKTtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBzdG9yZSdzIGVudGl0aWVzXG4gICAqL1xuICBwcml2YXRlIGVudGl0aWVzJCQ6IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBzdG9yZSdzIHN0YXRlXG4gICAqL1xuICBwcml2YXRlIHN0YXRlJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihzdG9yZT86IEVudGl0eVN0b3JlPEU+LCBjZFJlZj86IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5zZXRDaGFuZ2VEZXRlY3RvcihjZFJlZik7XG4gICAgdGhpcy5zZXRTdG9yZShzdG9yZSk7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuc2V0Q2hhbmdlRGV0ZWN0b3IodW5kZWZpbmVkKTtcbiAgICB0aGlzLnNldFN0b3JlKHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogQmluZCB0aGlzIHdvcmtzcGFjZSB0byBhIHN0b3JlIGFuZCBzdGFydCB3YXRjaGluZyBmb3IgY2hhbmdlc1xuICAgKiBAcGFyYW0gc3RvcmUgRW50aXR5IHN0b3JlXG4gICAqL1xuICBzZXRTdG9yZShzdG9yZT86IEVudGl0eVN0b3JlPEU+KSB7XG4gICAgaWYgKHN0b3JlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudGVhcmRvd25PYnNlcnZlcnMoKTtcbiAgICAgIHRoaXMuaW5uZXJTdGF0ZUluZGV4LmNsZWFyKCk7XG4gICAgICB0aGlzLnN0b3JlID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3RvcmUodW5kZWZpbmVkKTtcbiAgICB0aGlzLnN0b3JlID0gc3RvcmU7XG4gICAgdGhpcy5zZXR1cE9ic2VydmVycygpO1xuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJpbmQgdGhpcyB3b3Jrc3BhY2UgdG8gYSBjb21wb25lbnQncyBjaGFuZ2UgZGV0ZWN0b3JcbiAgICogQHBhcmFtIGNkUmVmIENoYW5nZSBkZXRlY3RvclxuICAgKi9cbiAgc2V0Q2hhbmdlRGV0ZWN0b3IoY2RSZWY/OiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuY2RSZWYgPSBjZFJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdXAgb2JzZXJ2ZXJzIG9uIGEgc3RvcmUncyBlbnRpdGllcyBhbmQgdGhlaXIgc3RhdGVcbiAgICogQHBhcmFtIHN0b3JlIEVudGl0eSBzdG9yZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cE9ic2VydmVycygpIHtcbiAgICB0aGlzLnRlYXJkb3duT2JzZXJ2ZXJzKCk7XG5cbiAgICB0aGlzLmVudGl0aWVzJCQgPSB0aGlzLnN0b3JlLmVudGl0aWVzJC5zdWJzY3JpYmUoKGVudGl0aWVzOiBFW10pID0+XG4gICAgICB0aGlzLm9uRW50aXRpZXNDaGFuZ2UoZW50aXRpZXMpXG4gICAgKTtcblxuICAgIHRoaXMuc3RhdGUkJCA9IHRoaXMuc3RvcmUuc3RhdGUuY2hhbmdlJFxuICAgICAgLnBpcGUoc2tpcCgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblN0YXRlQ2hhbmdlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRlYXJkb3duIHN0b3JlIG9ic2VydmVyc1xuICAgKi9cbiAgcHJpdmF0ZSB0ZWFyZG93bk9ic2VydmVycygpIHtcbiAgICBpZiAodGhpcy5lbnRpdGllcyQkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZW50aXRpZXMkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGF0ZSQkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc3RhdGUkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLmVudGl0aWVzJCQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zdGF0ZSQkID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIGVudGl0aWVzIGNoYW5nZSwgYWx3YXlzIHRyaWdnZXIgdGhlIGNoYW5nZXMgZGV0ZWN0aW9uXG4gICAqL1xuICBwcml2YXRlIG9uRW50aXRpZXNDaGFuZ2UoZW50aXRpZXM6IEVbXSkge1xuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIGVudGl0aWVzIHN0YXRlIGNoYW5nZSwgdHJpZ2dlciB0aGUgY2hhbmdlIGRldGVjdGlvblxuICAgKiBvbmx5IGlmIHRoZSBjb21wb25lbnQgaGFzIG5vdCBoYW5kbGVkIHRoZXNlIGNoYW5nZXMgeWV0LiBGb3IgZXhhbXBsZSxcbiAgICogdGhlIGNvbXBvbmVudCBtaWdodCBoYXZlIGluaXRpYXRlZCB0aG9zZXMgY2hhbmdlcyBpdHNlbGYuXG4gICAqL1xuICBwcml2YXRlIG9uU3RhdGVDaGFuZ2UoKSB7XG4gICAgbGV0IGNoYW5nZXNEZXRlY3RlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHN0b3JlSW5kZXggPSB0aGlzLnN0b3JlLnN0YXRlLmluZGV4O1xuICAgIGNvbnN0IGlubmVySW5kZXggPSB0aGlzLmlubmVyU3RhdGVJbmRleDtcblxuICAgIGlmIChzdG9yZUluZGV4LnNpemUgIT09IGlubmVySW5kZXguc2l6ZSkge1xuICAgICAgY2hhbmdlc0RldGVjdGVkID0gdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVLZXlzID0gQXJyYXkuZnJvbShzdG9yZUluZGV4LmtleXMoKSk7XG4gICAgZm9yIChjb25zdCBrZXkgb2Ygc3RvcmVLZXlzKSB7XG4gICAgICBjb25zdCBzdG9yZVZhbHVlID0gc3RvcmVJbmRleC5nZXQoa2V5KTtcbiAgICAgIGNvbnN0IGlubmVyVmFsdWUgPSBpbm5lckluZGV4LmdldChrZXkpO1xuICAgICAgaWYgKGNoYW5nZXNEZXRlY3RlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGlubmVyVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNoYW5nZXNEZXRlY3RlZCA9IHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3RVdGlscy5vYmplY3RzQXJlRXF1aXZhbGVudChzdG9yZVZhbHVlLCBpbm5lclZhbHVlKSkge1xuICAgICAgICAgIGNoYW5nZXNEZXRlY3RlZCA9IHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaW5uZXJTdGF0ZUluZGV4LnNldChrZXksIE9iamVjdC5hc3NpZ24oe30sIHN0b3JlVmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlciB0aGUgY2hhbmdlIGRldGVjdGlvbiBvZiB0aGUgd29ya3NwYWNlIGlzIGJvdW5kIHRvIGEgY2hhbmdlIGRldGVjdG9yXG4gICAqL1xuICBwcml2YXRlIGRldGVjdENoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMuY2RSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2VudGl0eS9zaGFyZWQvd2F0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUt0Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCOztPQUVHO0lBQ0ssS0FBSyxDQUFvQjtJQUVqQzs7T0FFRztJQUNLLEtBQUssQ0FBaUI7SUFFOUI7O09BRUc7SUFDSyxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXFDLENBQUM7SUFFdkU7O09BRUc7SUFDSyxVQUFVLENBQWU7SUFFakM7O09BRUc7SUFDSyxPQUFPLENBQWU7SUFFOUIsWUFBWSxLQUFzQixFQUFFLEtBQXlCO1FBQzNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFzQjtRQUM3QixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ3ZCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMs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O09BRUc7SUFDSyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRW50aXR5S2V5IH0gZnJvbSAnLi9lbnRpdHkuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XHJcblxyXG4vKipcclxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHN5bmNocm9uaXplIGEgY29tcG9uZW50J3MgY2hhbmdlc1xyXG4gKiBkZXRlY3Rpb24gd2l0aCBhbiBFbnRpdHlTdG9yZSBjaGFuZ2VzLiBGb3IgZXhhbXBsZSwgaXQgaXMgZnJlcXVlbnRcclxuICogdG8gaGF2ZSBhIGNvbXBvbmVudCBzdWJzY3JpYmUgdG8gYSBzdG9yZSdzIHNlbGVjdGVkIGVudGl0eSBhbmQsIGF0IHRoZSBzYW1lIHRpbWUsXHJcbiAqIHRoaXMgY29tcG9uZW50IHByb3ZpZGVzIGEgd2F5IHRvIHNlbGVjdCBhbiBlbnRpdHkgd2l0aCwgbGV0J3Mgc2F5LCBhIGNsaWNrLlxyXG4gKlxyXG4gKiBUaGlzIGNsYXNzIGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB0aG9zZSBjYXNlIGFuZCB0cmlnZ2VycyB0aGUgY29tcG9lbnQnc1xyXG4gKiBjaGFuZ2UgZGV0ZWN0aW9uIHdoZW4gbmVlZGVkLlxyXG4gKlxyXG4gKiBOb3RlOiBJZiB0aGUgY29tcG9uZW50IG9ic2VydmVzIHRoZSBzdG9yZSdzIHN0YXRlVmlldywgYSB3b3Jrc3BhY2UgaXNcclxuICogcHJvYmFibHkgbm90IHJlcXVpcmVkIGJlY2F1c2UgdGhlIHN0YXRlVmlldyBjYXRjaGVzIGFueSBjaGFuZ2VzIHRvIHRoZVxyXG4gKiBlbnRpdGllcyBhbmQgdGhlaXIgc3RhdGUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmVXYXRjaGVyPEUgZXh0ZW5kcyBvYmplY3Q+IHtcclxuICAvKipcclxuICAgKiBDb21wb25lbnQgY2hhbmdlIGRldGVjdG9yXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVudGl0eSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RvcmU6IEVudGl0eVN0b3JlPEU+O1xyXG5cclxuICAvKipcclxuICAgKiBDb21wb25lbnQgaW5uZXIgc3RhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGlubmVyU3RhdGVJbmRleCA9IG5ldyBNYXA8RW50aXR5S2V5LCB7IFtrZXk6IHN0cmluZ106IGFueSB9PigpO1xyXG5cclxuICAvKipcclxuICAgKiBTdWJzY3JpcHRpb24gdG8gdGhlIHN0b3JlJ3MgZW50aXRpZXNcclxuICAgKi9cclxuICBwcml2YXRlIGVudGl0aWVzJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBzdG9yZSdzIHN0YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdGF0ZSQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHN0b3JlPzogRW50aXR5U3RvcmU8RT4sIGNkUmVmPzogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHRoaXMuc2V0Q2hhbmdlRGV0ZWN0b3IoY2RSZWYpO1xyXG4gICAgdGhpcy5zZXRTdG9yZShzdG9yZSk7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95KCkge1xyXG4gICAgdGhpcy5zZXRDaGFuZ2VEZXRlY3Rvcih1bmRlZmluZWQpO1xyXG4gICAgdGhpcy5zZXRTdG9yZSh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZCB0aGlzIHdvcmtzcGFjZSB0byBhIHN0b3JlIGFuZCBzdGFydCB3YXRjaGluZyBmb3IgY2hhbmdlc1xyXG4gICAqIEBwYXJhbSBzdG9yZSBFbnRpdHkgc3RvcmVcclxuICAgKi9cclxuICBzZXRTdG9yZShzdG9yZT86IEVudGl0eVN0b3JlPEU+KSB7XHJcbiAgICBpZiAoc3RvcmUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnRlYXJkb3duT2JzZXJ2ZXJzKCk7XHJcbiAgICAgIHRoaXMuaW5uZXJTdGF0ZUluZGV4LmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuc3RvcmUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldFN0b3JlKHVuZGVmaW5lZCk7XHJcbiAgICB0aGlzLnN0b3JlID0gc3RvcmU7XHJcbiAgICB0aGlzLnNldHVwT2JzZXJ2ZXJzKCk7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmQgdGhpcyB3b3Jrc3BhY2UgdG8gYSBjb21wb25lbnQncyBjaGFuZ2UgZGV0ZWN0b3JcclxuICAgKiBAcGFyYW0gY2RSZWYgQ2hhbmdlIGRldGVjdG9yXHJcbiAgICovXHJcbiAgc2V0Q2hhbmdlRGV0ZWN0b3IoY2RSZWY/OiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgdGhpcy5jZFJlZiA9IGNkUmVmO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHVwIG9ic2VydmVycyBvbiBhIHN0b3JlJ3MgZW50aXRpZXMgYW5kIHRoZWlyIHN0YXRlXHJcbiAgICogQHBhcmFtIHN0b3JlIEVudGl0eSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0dXBPYnNlcnZlcnMoKSB7XHJcbiAgICB0aGlzLnRlYXJkb3duT2JzZXJ2ZXJzKCk7XHJcblxyXG4gICAgdGhpcy5lbnRpdGllcyQkID0gdGhpcy5zdG9yZS5lbnRpdGllcyQuc3Vic2NyaWJlKChlbnRpdGllczogRVtdKSA9PlxyXG4gICAgICB0aGlzLm9uRW50aXRpZXNDaGFuZ2UoZW50aXRpZXMpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuc3RhdGUkJCA9IHRoaXMuc3RvcmUuc3RhdGUuY2hhbmdlJFxyXG4gICAgICAucGlwZShza2lwKDEpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub25TdGF0ZUNoYW5nZSgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRlYXJkb3duIHN0b3JlIG9ic2VydmVyc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdGVhcmRvd25PYnNlcnZlcnMoKSB7XHJcbiAgICBpZiAodGhpcy5lbnRpdGllcyQkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5lbnRpdGllcyQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zdGF0ZSQkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zdGF0ZSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVudGl0aWVzJCQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnN0YXRlJCQgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHRoZSBlbnRpdGllcyBjaGFuZ2UsIGFsd2F5cyB0cmlnZ2VyIHRoZSBjaGFuZ2VzIGRldGVjdGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25FbnRpdGllc0NoYW5nZShlbnRpdGllczogRVtdKSB7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gdGhlIGVudGl0aWVzIHN0YXRlIGNoYW5nZSwgdHJpZ2dlciB0aGUgY2hhbmdlIGRldGVjdGlvblxyXG4gICAqIG9ubHkgaWYgdGhlIGNvbXBvbmVudCBoYXMgbm90IGhhbmRsZWQgdGhlc2UgY2hhbmdlcyB5ZXQuIEZvciBleGFtcGxlLFxyXG4gICAqIHRoZSBjb21wb25lbnQgbWlnaHQgaGF2ZSBpbml0aWF0ZWQgdGhvc2VzIGNoYW5nZXMgaXRzZWxmLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25TdGF0ZUNoYW5nZSgpIHtcclxuICAgIGxldCBjaGFuZ2VzRGV0ZWN0ZWQgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN0b3JlSW5kZXggPSB0aGlzLnN0b3JlLnN0YXRlLmluZGV4O1xyXG4gICAgY29uc3QgaW5uZXJJbmRleCA9IHRoaXMuaW5uZXJTdGF0ZUluZGV4O1xyXG5cclxuICAgIGlmIChzdG9yZUluZGV4LnNpemUgIT09IGlubmVySW5kZXguc2l6ZSkge1xyXG4gICAgICBjaGFuZ2VzRGV0ZWN0ZWQgPSB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdG9yZUtleXMgPSBBcnJheS5mcm9tKHN0b3JlSW5kZXgua2V5cygpKTtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIHN0b3JlS2V5cykge1xyXG4gICAgICBjb25zdCBzdG9yZVZhbHVlID0gc3RvcmVJbmRleC5nZXQoa2V5KTtcclxuICAgICAgY29uc3QgaW5uZXJWYWx1ZSA9IGlubmVySW5kZXguZ2V0KGtleSk7XHJcbiAgICAgIGlmIChjaGFuZ2VzRGV0ZWN0ZWQgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKGlubmVyVmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgY2hhbmdlc0RldGVjdGVkID0gdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghT2JqZWN0VXRpbHMub2JqZWN0c0FyZUVxdWl2YWxlbnQoc3RvcmVWYWx1ZSwgaW5uZXJWYWx1ZSkpIHtcclxuICAgICAgICAgIGNoYW5nZXNEZXRlY3RlZCA9IHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5pbm5lclN0YXRlSW5kZXguc2V0KGtleSwgT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVWYWx1ZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlciB0aGUgY2hhbmdlIGRldGVjdGlvbiBvZiB0aGUgd29ya3NwYWNlIGlzIGJvdW5kIHRvIGEgY2hhbmdlIGRldGVjdG9yXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXRlY3RDaGFuZ2VzKCkge1xyXG4gICAgaWYgKHRoaXMuY2RSZWYgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvZW52aXJvbm1lbnQvZW52aXJvbm1lbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50T3B0aW9ucyB7XG4gIGRlcG90PzogRGVwb3RPcHRpb25zO1xuICBpbnRlcmFjdGl2ZVRvdXI/OiBJbnRlcmFjdGl2ZVRvdXJDb25maWdPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcG90T3B0aW9ucyB7XG4gIHVybDogc3RyaW5nO1xuICB0cmFpbmluZ0d1aWRlcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVyYWN0aXZlVG91ckNvbmZpZ09wdGlvbnMge1xuICBhY3RpdmF0ZUludGVyYWN0aXZlVG91cj86IGJvb2xlYW47XG4gIHRvdXJJbk1vYmlsZT86IGJvb2xlYW47XG4gIHBhdGhUb0NvbmZpZ0ZpbGU/OiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvZW52aXJvbm1lbnQvZW52aXJvbm1lbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50T3B0aW9ucyB7XHJcbiAgZGVwb3Q/OiBEZXBvdE9wdGlvbnM7XHJcbiAgaW50ZXJhY3RpdmVUb3VyPzogSW50ZXJhY3RpdmVUb3VyQ29uZmlnT3B0aW9ucztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZXBvdE9wdGlvbnMge1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIHRyYWluaW5nR3VpZGVzPzogc3RyaW5nW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJhY3RpdmVUb3VyQ29uZmlnT3B0aW9ucyB7XHJcbiAgYWN0aXZhdGVJbnRlcmFjdGl2ZVRvdXI/OiBib29sZWFuO1xyXG4gIHRvdXJJbk1vYmlsZT86IGJvb2xlYW47XHJcbiAgcGF0aFRvQ29uZmlnRmlsZT86IHN0cmluZztcclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export * from './environment.interface';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnZpcm9ubWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudC5pbnRlcmZhY2UnO1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnZpcm9ubWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudC5pbnRlcmZhY2UnO1xyXG4iXX0=